{"version":3,"sources":["core/animate.js","components/animate.js","attributes/animateInview.js","attributes/animateInOut.js"],"names":["dmx","animate","node","effect","duration","delay","removeAllEffects","requestAnimationFrame","style","setProperty","classList","add","removeProperty","remove","array","forEach","className","effects","indexOf","this","nodes","watch","push","update","length","win","window","pageXOffset","pageYOffset","innerWidth","innerHeight","filter","offsetParent","p","x","offsetLeft","y","offsetTop","w","offsetWidth","h","offsetHeight","wr","animateRatio","hr","isNaN","animateVisible","animateOutview","animateInDelay","animateInDuration","animateInview","animateOutDelay","animateOutDuration","handler","wait","event","setTimeout","addEventListener","Component","initialData","visible","animating","tag","attributes","showEffect","type","String","default","hideEffect","showDuration","Number","hideDuration","showDelay","hideDelay","Boolean","methods","props","$node","render","BaseComponent","prototype","call","set","Attribute","attr","value","modifiers","parseInt","argument","random","Math","data","$index","self","preventDefault","pos","appendChild","dom","parent","key","repeater","easing","onUpdate","getBoundingClientRect","onUpdated","left","top","removeEventListener","console","warn"],"mappings":"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","file":"../dmxAnimateCSS/dmxAnimateCSS.js","sourcesContent":["dmx.animate = function(node, effect, duration, delay) {\r\n dmx.animate.removeAllEffects(node);\r\n\r\n requestAnimationFrame(function() {\r\n dmx.animate.removeAllEffects(node);\r\n\r\n if (delay) {\r\n node.style.setProperty('animation-delay', delay + 'ms');\r\n }\r\n\r\n if (duration) {\r\n node.style.setProperty('animation-duration', duration + 'ms');\r\n }\r\n\r\n node.classList.add('animated', effect);\r\n });\r\n};\r\n\r\ndmx.animate.removeAllEffects = function(node) {\r\n node.style.removeProperty('animation-delay');\r\n node.style.removeProperty('animation-duration');\r\n node.classList.remove('animated');\r\n dmx.array(node.classList).forEach(function(className) {\r\n if (dmx.animate.effects.indexOf(className) >= 0) {\r\n node.classList.remove(className);\r\n }\r\n }, this);\r\n};\r\n\r\ndmx.animate.effects = ['bounce', 'flash', 'pulse', 'rubberBand', 'shake', 'headShake', 'swing', 'tada', 'wobble', 'jello',\r\n'bounceIn', 'bounceInDown', 'bounceInLeft', 'bounceInRight', 'bounceInUp', 'bounceOut', 'bounceOutDown', 'bounceOutLeft',\r\n'bounceOutRight', 'bounceOutUp', 'fadeIn', 'fadeInDown', 'fadeInDownBig', 'fadeInLeft', 'fadeInLeftBig', 'fadeInRight',\r\n'fadeInRightBig', 'fadeInUp', 'fadeInUpBig', 'fadeOut', 'fadeOutDown', 'fadeOutDownBig', 'fadeOutLeft', 'fadeOutLeftBig',\r\n'fadeOutRight', 'fadeOutRightBig', 'fadeOutUp', 'fadeOutUpBig', 'flipInX', 'flipInY', 'flipOutX', 'flipOutY', 'lightSpeedIn',\r\n'lightSpeedOut', 'rotateIn', 'rotateInDownLeft', 'rotateInDownRight', 'rotateInUpLeft', 'rotateInUpRight', 'rotateOut',\r\n'rotateOutDownLeft', 'rotateOutDownRight', 'rotateOutUpLeft', 'rotateOutUpRight', 'hinge', 'rollIn', 'rollOut', 'zoomIn',\r\n'zoomInDown', 'zoomInLeft', 'zoomInRight', 'zoomInUp', 'zoomOut', 'zoomOutDown', 'zoomOutLeft', 'zoomOutRight', 'zoomOutUp',\r\n'slideInDown', 'slideInLeft', 'slideInRight', 'slideInUp', 'slideOutDown', 'slideOutLeft', 'slideOutRight', 'slideOutUp'];\r\n\r\ndmx.animate.nodes = [];\r\n\r\ndmx.animate.watch = function(node) {\r\n if (dmx.animate.nodes.indexOf(node) === -1) {\r\n dmx.animate.nodes.push(node);\r\n }\r\n};\r\n\r\ndmx.animate.update = function() {\r\n if (!dmx.animate.nodes.length) return;\r\n\r\n var win = { x: window.pageXOffset, y: window.pageYOffset, w: window.innerWidth, h: window.innerHeight };\r\n\r\n dmx.animate.nodes = dmx.animate.nodes.filter(function(node) {\r\n if (!node.offsetParent) return true;\r\n\r\n var p = node.offsetParent;\r\n var x = node.offsetLeft;\r\n var y = node.offsetTop;\r\n var w = node.offsetWidth;\r\n var h = node.offsetHeight;\r\n var wr = w * node.animateRatio;\r\n var hr = h * node.animateRatio;\r\n\r\n while (p) {\r\n if (!isNaN(p.offsetLeft)) x += p.offsetLeft;\r\n if (!isNaN(p.offsetTop)) y += p.offsetTop;\r\n p = p.offsetParent;\r\n }\r\n\r\n if (y + hr <= win.y + win.h && y + h - hr >= win.y && x + wr <= win.x + win.w && x + w - wr >= win.x) {\r\n if (!node.animateVisible) {\r\n node.style.removeProperty('animation-delay');\r\n node.style.removeProperty('animation-duration');\r\n node.classList.remove(node.animateOutview, 'animated');\r\n\r\n requestAnimationFrame(function() {\r\n node.style.removeProperty('visibility');\r\n if (node.animateInDelay) node.style.setProperty('animation-delay', node.animateInDelay + 'ms');\r\n if (node.animateInDuration) node.style.setProperty('animation-duration', node.animateInDuration + 'ms');\r\n node.classList.add(node.animateInview, 'animated');\r\n });\r\n\r\n node.animateVisible = true;\r\n\r\n if (!node.animateOutview) return false;\r\n }\r\n } else {\r\n if (node.animateOutview && node.animateVisible !== false) {\r\n node.style.removeProperty('animation-delay');\r\n node.style.removeProperty('animation-duration');\r\n node.classList.remove(node.animateInview, 'animated');\r\n\r\n requestAnimationFrame(function() {\r\n if (node.animateOutDelay) node.style.setProperty('animation-delay', node.animateOutDelay + 'ms');\r\n if (node.animateOutDuration) node.style.setProperty('animation-duration', node.animateOutDuration + 'ms');\r\n node.classList.add(node.animateOutview, 'animated');\r\n });\r\n\r\n node.animateVisible = false;\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n};\r\n\r\ndmx.animate.handler = (function() {\r\n var wait;\r\n\r\n return function(event) {\r\n if (!!wait) return;\r\n\r\n wait = setTimeout(function() {\r\n requestAnimationFrame(dmx.animate.update);\r\n wait = null;\r\n }, 250);\r\n };\r\n})();\r\n\r\n['load', 'resize', 'scroll', 'touchmove', 'lazyloaded'].forEach(function(event) {\r\n window.addEventListener(event, dmx.animate.handler);\r\n});\r\n","dmx.Component('animate', {\r\n\r\n initialData: {\r\n visible: false,\r\n animating: false\r\n },\r\n\r\n tag: 'div',\r\n\r\n attributes: {\r\n showEffect: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n hideEffect: {\r\n type: String,\r\n default: ''\r\n },\r\n\r\n showDuration: {\r\n type: Number,\r\n default: null\r\n },\r\n\r\n hideDuration: {\r\n type: Number,\r\n default: null\r\n },\r\n\r\n showDelay: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n hideDelay: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n methods: {\r\n animate: function(effect, duration) {\r\n if (this.props.visible) {\r\n dmx.animate(this.$node, effect, duration);\r\n }\r\n }\r\n },\r\n\r\n render: function(node) {\r\n dmx.BaseComponent.prototype.render.call(this, node);\r\n\r\n if (!this.props.visible) {\r\n if (this.props.hideEffect) {\r\n dmx.animate(this.$node, this.props.hideEffect, 1);\r\n } else {\r\n this.$node.style.setProperty('visibility', 'hidden');\r\n }\r\n }\r\n },\r\n\r\n update: function(props) {\r\n if (this.props.visible != props.visible) {\r\n if (this.props.visible) {\r\n if (this.props.showEffect) {\r\n dmx.animate(this.$node, this.props.showEffect, this.props.showDuration, this.props.showDelay);\r\n }\r\n this.$node.style.removeProperty('visibility');\r\n } else {\r\n if (this.props.hideEffect) {\r\n dmx.animate(this.$node, this.props.hideEffect, this.props.hideDuration, this.props.hideDelay);\r\n } else {\r\n this.$node.style.setProperty('visibility', 'hidden');\r\n }\r\n }\r\n\r\n this.set('visible', this.props.visible);\r\n }\r\n }\r\n\r\n});\r\n","dmx.Attribute('animate-inview', 'mounted', function(node, attr) {\r\n node.animateInview = attr.value;\r\n node.animateInDelay = attr.modifiers.delay;\r\n node.animateInDuration = attr.modifiers.duration;\r\n node.animateRatio = (parseInt(attr.argument, 10) || 100) / 100;\r\n node.style.setProperty('visibility', 'hidden');\r\n dmx.animate.watch(node);\r\n});\r\n\r\ndmx.Attribute('animate-outview', 'mounted', function(node, attr) {\r\n node.animateOutview = attr.value;\r\n node.animateOutDelay = attr.modifiers.delay;\r\n node.animateOutDuration = attr.modifiers.duration;\r\n});\r\n","dmx.Attribute('animate-enter', 'mounted', function(node, attr) {\r\n node.addEventListener('animationend', function() {\r\n dmx.animate.removeAllEffects(node);\r\n });\r\n dmx.animate(node, attr.value, attr.modifiers.duration, (attr.modifiers.random ? Math.random() * 10 : this.data.$index) * attr.modifiers.delay);\r\n});\r\n\r\ndmx.Attribute('animate-leave', 'mounted', function(node, attr) {\r\n var self = this;\r\n\r\n node.addEventListener('remove', function(event) {\r\n event.preventDefault();\r\n var pos = {\r\n left: node.offsetLeft,\r\n top: node.offsetTop,\r\n width: node.offsetWidth,\r\n height: node.offsetHeight\r\n };\r\n requestAnimationFrame(function() {\r\n node.style.setProperty('position', 'absolute');\r\n node.style.setProperty('left', pos.left + 'px');\r\n node.style.setProperty('top', pos.top + 'px');\r\n node.style.setProperty('width', pos.width + 'px');\r\n node.style.setProperty('height', pos.height + 'px');\r\n node.offsetParent.appendChild(node);\r\n node.addEventListener('animationend', function() {\r\n dmx.dom.remove(node);\r\n });\r\n dmx.animate(node, attr.value, attr.modifiers.duration, (attr.modifiers.random ? Math.random() * 10 : self.data.$index) * attr.modifiers.delay);\r\n });\r\n });\r\n});\r\n\r\ndmx.Attribute('animate-move', 'mounted', function(node, attr) {\r\n if (this.type !== 'repeat-item') {\r\n console.warn('Cannot use animate-move on a component that is not a repeat item');\r\n return;\r\n }\r\n\r\n if (!this.parent.props.key) {\r\n console.warn('Cannot use animate-move on non keyed repeat');\r\n return;\r\n }\r\n\r\n var self = this;\r\n var repeater = this.parent;\r\n var easing = ['linear', 'ease-in', 'ease-out', 'ease-in-out'].filter(function(easing) { return !!attr.modifiers[easing]; });\r\n var onUpdate = function(event) {\r\n node.pos = node.getBoundingClientRect();\r\n };\r\n var onUpdated = function(event) {\r\n if (node.pos) {\r\n node.style.removeProperty('transform');\r\n node.style.removeProperty('transition');\r\n requestAnimationFrame(function() {\r\n var pos = node.getBoundingClientRect();\r\n node.style.setProperty('transform', 'translate(' + (node.pos.left - pos.left) + 'px,' + (node.pos.top - pos.top) + 'px)');\r\n requestAnimationFrame(function() {\r\n node.style.setProperty('transition-property', 'all');\r\n if (attr.modifiers.delay) {\r\n node.style.setProperty('transition-delay', ((attr.modifiers.random ? Math.random() * 10 : self.data.$index) * attr.modifiers.delay) + 'ms');\r\n } else {\r\n node.style.removeProperty('transition-delay');\r\n }\r\n node.style.setProperty('transition-duration', (attr.modifiers.duration || 800) + 'ms');\r\n node.style.setProperty('transition-timing-function', easing[0] || 'ease');\r\n node.style.removeProperty('transform');\r\n });\r\n });\r\n }\r\n };\r\n\r\n repeater.addEventListener('update', onUpdate);\r\n repeater.addEventListener('updated', onUpdated);\r\n\r\n this.addEventListener('destroy', function(event) {\r\n repeater.removeEventListener('update', onUpdate);\r\n repeater.removeEventListener('updated', onUpdated);\r\n });\r\n});\r\n"]}