mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
1 line
85 KiB
JSON
1 line
85 KiB
JSON
{"ast":null,"code":"import { r as raf } from './helpers-1457892a.js';\nlet animationPrefix;\n/**\n * Web Animations requires hyphenated CSS properties\n * to be written in camelCase when animating\n */\nconst processKeyframes = keyframes => {\n keyframes.forEach(keyframe => {\n for (const key in keyframe) {\n if (keyframe.hasOwnProperty(key)) {\n const value = keyframe[key];\n if (key === 'easing') {\n const newKey = 'animation-timing-function';\n keyframe[newKey] = value;\n delete keyframe[key];\n } else {\n const newKey = convertCamelCaseToHypen(key);\n if (newKey !== key) {\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n }\n }\n }\n });\n return keyframes;\n};\nconst convertCamelCaseToHypen = str => {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n};\nconst getAnimationPrefix = el => {\n if (animationPrefix === undefined) {\n const supportsUnprefixed = el.style.animationName !== undefined;\n const supportsWebkitPrefix = el.style.webkitAnimationName !== undefined;\n animationPrefix = !supportsUnprefixed && supportsWebkitPrefix ? '-webkit-' : '';\n }\n return animationPrefix;\n};\nconst setStyleProperty = (element, propertyName, value) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.setProperty(prefix + propertyName, value);\n};\nconst removeStyleProperty = (element, propertyName) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.removeProperty(prefix + propertyName);\n};\nconst animationEnd = (el, callback) => {\n let unRegTrans;\n const opts = {\n passive: true\n };\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = ev => {\n if (el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.addEventListener('animationend', onTransitionEnd, opts);\n unRegTrans = () => {\n el.removeEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.removeEventListener('animationend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\nconst generateKeyframeRules = (keyframes = []) => {\n return keyframes.map(keyframe => {\n const offset = keyframe.offset;\n const frameString = [];\n for (const property in keyframe) {\n if (keyframe.hasOwnProperty(property) && property !== 'offset') {\n frameString.push(`${property}: ${keyframe[property]};`);\n }\n }\n return `${offset * 100}% { ${frameString.join(' ')} }`;\n }).join(' ');\n};\nconst keyframeIds = [];\nconst generateKeyframeName = keyframeRules => {\n let index = keyframeIds.indexOf(keyframeRules);\n if (index < 0) {\n index = keyframeIds.push(keyframeRules) - 1;\n }\n return `ion-animation-${index}`;\n};\nconst getStyleContainer = element => {\n const rootNode = element.getRootNode();\n return rootNode.head || rootNode;\n};\nconst createKeyframeStylesheet = (keyframeName, keyframeRules, element) => {\n const styleContainer = getStyleContainer(element);\n const keyframePrefix = getAnimationPrefix(element);\n const existingStylesheet = styleContainer.querySelector('#' + keyframeName);\n if (existingStylesheet) {\n return existingStylesheet;\n }\n const stylesheet = (element.ownerDocument || document).createElement('style');\n stylesheet.id = keyframeName;\n stylesheet.textContent = `@${keyframePrefix}keyframes ${keyframeName} { ${keyframeRules} } @${keyframePrefix}keyframes ${keyframeName}-alt { ${keyframeRules} }`;\n styleContainer.appendChild(stylesheet);\n return stylesheet;\n};\nconst addClassToArray = (classes = [], className) => {\n if (className !== undefined) {\n const classNameToAppend = Array.isArray(className) ? className : [className];\n return [...classes, ...classNameToAppend];\n }\n return classes;\n};\nconst createAnimation = animationId => {\n let _delay;\n let _duration;\n let _easing;\n let _iterations;\n let _fill;\n let _direction;\n let _keyframes = [];\n let beforeAddClasses = [];\n let beforeRemoveClasses = [];\n let initialized = false;\n let parentAnimation;\n let beforeStylesValue = {};\n let afterAddClasses = [];\n let afterRemoveClasses = [];\n let afterStylesValue = {};\n let numAnimationsRunning = 0;\n let shouldForceLinearEasing = false;\n let shouldForceSyncPlayback = false;\n let cssAnimationsTimerFallback;\n let forceDirectionValue;\n let forceDurationValue;\n let forceDelayValue;\n let willComplete = true;\n let finished = false;\n let shouldCalculateNumAnimations = true;\n let keyframeName;\n let ani;\n const id = animationId;\n const onFinishCallbacks = [];\n const onFinishOneTimeCallbacks = [];\n const elements = [];\n const childAnimations = [];\n const stylesheets = [];\n const _beforeAddReadFunctions = [];\n const _beforeAddWriteFunctions = [];\n const _afterAddReadFunctions = [];\n const _afterAddWriteFunctions = [];\n const webAnimations = [];\n const supportsAnimationEffect = typeof AnimationEffect === 'function' || typeof window.AnimationEffect === 'function';\n const supportsWebAnimations = typeof Element === 'function' && typeof Element.prototype.animate === 'function' && supportsAnimationEffect;\n const ANIMATION_END_FALLBACK_PADDING_MS = 100;\n const getWebAnimations = () => {\n return webAnimations;\n };\n const destroy = clearStyleSheets => {\n childAnimations.forEach(childAnimation => {\n childAnimation.destroy(clearStyleSheets);\n });\n cleanUp(clearStyleSheets);\n elements.length = 0;\n childAnimations.length = 0;\n _keyframes.length = 0;\n clearOnFinish();\n initialized = false;\n shouldCalculateNumAnimations = true;\n return ani;\n };\n /**\n * Cancels any Web Animations, removes\n * any animation properties from the\n * animation's elements, and removes the\n * animation's stylesheets from the DOM.\n */\n const cleanUp = clearStyleSheets => {\n cleanUpElements();\n if (clearStyleSheets) {\n cleanUpStyleSheets();\n }\n };\n const resetFlags = () => {\n shouldForceLinearEasing = false;\n shouldForceSyncPlayback = false;\n shouldCalculateNumAnimations = true;\n forceDirectionValue = undefined;\n forceDurationValue = undefined;\n forceDelayValue = undefined;\n numAnimationsRunning = 0;\n finished = false;\n willComplete = true;\n };\n const onFinish = (callback, opts) => {\n const callbacks = opts && opts.oneTimeCallback ? onFinishOneTimeCallbacks : onFinishCallbacks;\n callbacks.push({\n c: callback,\n o: opts\n });\n return ani;\n };\n const clearOnFinish = () => {\n onFinishCallbacks.length = 0;\n onFinishOneTimeCallbacks.length = 0;\n return ani;\n };\n /**\n * Cancels any Web Animations and removes\n * any animation properties from the\n * the animation's elements.\n */\n const cleanUpElements = () => {\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.cancel();\n });\n webAnimations.length = 0;\n } else {\n const elementsArray = elements.slice();\n raf(() => {\n elementsArray.forEach(element => {\n removeStyleProperty(element, 'animation-name');\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-timing-function');\n removeStyleProperty(element, 'animation-iteration-count');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n removeStyleProperty(element, 'animation-fill-mode');\n removeStyleProperty(element, 'animation-direction');\n });\n });\n }\n };\n /**\n * Removes the animation's stylesheets\n * from the DOM.\n */\n const cleanUpStyleSheets = () => {\n stylesheets.forEach(stylesheet => {\n /**\n * When sharing stylesheets, it's possible\n * for another animation to have already\n * cleaned up a particular stylesheet\n */\n if (stylesheet && stylesheet.parentNode) {\n stylesheet.parentNode.removeChild(stylesheet);\n }\n });\n stylesheets.length = 0;\n };\n const beforeAddRead = readFn => {\n _beforeAddReadFunctions.push(readFn);\n return ani;\n };\n const beforeAddWrite = writeFn => {\n _beforeAddWriteFunctions.push(writeFn);\n return ani;\n };\n const afterAddRead = readFn => {\n _afterAddReadFunctions.push(readFn);\n return ani;\n };\n const afterAddWrite = writeFn => {\n _afterAddWriteFunctions.push(writeFn);\n return ani;\n };\n const beforeAddClass = className => {\n beforeAddClasses = addClassToArray(beforeAddClasses, className);\n return ani;\n };\n const beforeRemoveClass = className => {\n beforeRemoveClasses = addClassToArray(beforeRemoveClasses, className);\n return ani;\n };\n /**\n * Set CSS inline styles to the animation's\n * elements before the animation begins.\n */\n const beforeStyles = (styles = {}) => {\n beforeStylesValue = styles;\n return ani;\n };\n /**\n * Clear CSS inline styles from the animation's\n * elements before the animation begins.\n */\n const beforeClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n beforeStylesValue[property] = '';\n }\n return ani;\n };\n const afterAddClass = className => {\n afterAddClasses = addClassToArray(afterAddClasses, className);\n return ani;\n };\n const afterRemoveClass = className => {\n afterRemoveClasses = addClassToArray(afterRemoveClasses, className);\n return ani;\n };\n const afterStyles = (styles = {}) => {\n afterStylesValue = styles;\n return ani;\n };\n const afterClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n afterStylesValue[property] = '';\n }\n return ani;\n };\n const getFill = () => {\n if (_fill !== undefined) {\n return _fill;\n }\n if (parentAnimation) {\n return parentAnimation.getFill();\n }\n return 'both';\n };\n const getDirection = () => {\n if (forceDirectionValue !== undefined) {\n return forceDirectionValue;\n }\n if (_direction !== undefined) {\n return _direction;\n }\n if (parentAnimation) {\n return parentAnimation.getDirection();\n }\n return 'normal';\n };\n const getEasing = () => {\n if (shouldForceLinearEasing) {\n return 'linear';\n }\n if (_easing !== undefined) {\n return _easing;\n }\n if (parentAnimation) {\n return parentAnimation.getEasing();\n }\n return 'linear';\n };\n const getDuration = () => {\n if (shouldForceSyncPlayback) {\n return 0;\n }\n if (forceDurationValue !== undefined) {\n return forceDurationValue;\n }\n if (_duration !== undefined) {\n return _duration;\n }\n if (parentAnimation) {\n return parentAnimation.getDuration();\n }\n return 0;\n };\n const getIterations = () => {\n if (_iterations !== undefined) {\n return _iterations;\n }\n if (parentAnimation) {\n return parentAnimation.getIterations();\n }\n return 1;\n };\n const getDelay = () => {\n if (forceDelayValue !== undefined) {\n return forceDelayValue;\n }\n if (_delay !== undefined) {\n return _delay;\n }\n if (parentAnimation) {\n return parentAnimation.getDelay();\n }\n return 0;\n };\n const getKeyframes = () => {\n return _keyframes;\n };\n const direction = animationDirection => {\n _direction = animationDirection;\n update(true);\n return ani;\n };\n const fill = animationFill => {\n _fill = animationFill;\n update(true);\n return ani;\n };\n const delay = animationDelay => {\n _delay = animationDelay;\n update(true);\n return ani;\n };\n const easing = animationEasing => {\n _easing = animationEasing;\n update(true);\n return ani;\n };\n const duration = animationDuration => {\n /**\n * CSS Animation Durations of 0ms work fine on Chrome\n * but do not run on Safari, so force it to 1ms to\n * get it to run on both platforms.\n */\n if (!supportsWebAnimations && animationDuration === 0) {\n animationDuration = 1;\n }\n _duration = animationDuration;\n update(true);\n return ani;\n };\n const iterations = animationIterations => {\n _iterations = animationIterations;\n update(true);\n return ani;\n };\n const parent = animation => {\n parentAnimation = animation;\n return ani;\n };\n const addElement = el => {\n if (el != null) {\n if (el.nodeType === 1) {\n elements.push(el);\n } else if (el.length >= 0) {\n for (let i = 0; i < el.length; i++) {\n elements.push(el[i]);\n }\n } else {\n console.error('Invalid addElement value');\n }\n }\n return ani;\n };\n const addAnimation = animationToAdd => {\n if (animationToAdd != null) {\n if (Array.isArray(animationToAdd)) {\n for (const animation of animationToAdd) {\n animation.parent(ani);\n childAnimations.push(animation);\n }\n } else {\n animationToAdd.parent(ani);\n childAnimations.push(animationToAdd);\n }\n }\n return ani;\n };\n const keyframes = keyframeValues => {\n _keyframes = keyframeValues;\n return ani;\n };\n /**\n * Run all \"before\" animation hooks.\n */\n const beforeAnimation = () => {\n // Runs all before read callbacks\n _beforeAddReadFunctions.forEach(callback => callback());\n // Runs all before write callbacks\n _beforeAddWriteFunctions.forEach(callback => callback());\n // Updates styles and classes before animation runs\n const addClasses = beforeAddClasses;\n const removeClasses = beforeRemoveClasses;\n const styles = beforeStylesValue;\n elements.forEach(el => {\n const elementClassList = el.classList;\n addClasses.forEach(c => elementClassList.add(c));\n removeClasses.forEach(c => elementClassList.remove(c));\n for (const property in styles) {\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n };\n /**\n * Run all \"after\" animation hooks.\n */\n const afterAnimation = () => {\n clearCSSAnimationsTimeout();\n // Runs all after read callbacks\n _afterAddReadFunctions.forEach(callback => callback());\n // Runs all after write callbacks\n _afterAddWriteFunctions.forEach(callback => callback());\n // Updates styles and classes before animation ends\n const currentStep = willComplete ? 1 : 0;\n const addClasses = afterAddClasses;\n const removeClasses = afterRemoveClasses;\n const styles = afterStylesValue;\n elements.forEach(el => {\n const elementClassList = el.classList;\n addClasses.forEach(c => elementClassList.add(c));\n removeClasses.forEach(c => elementClassList.remove(c));\n for (const property in styles) {\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n onFinishCallbacks.forEach(onFinishCallback => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.forEach(onFinishCallback => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.length = 0;\n shouldCalculateNumAnimations = true;\n if (willComplete) {\n finished = true;\n }\n willComplete = true;\n };\n const animationFinish = () => {\n if (numAnimationsRunning === 0) {\n return;\n }\n numAnimationsRunning--;\n if (numAnimationsRunning === 0) {\n afterAnimation();\n if (parentAnimation) {\n parentAnimation.animationFinish();\n }\n }\n };\n const initializeCSSAnimation = (toggleAnimationName = true) => {\n cleanUpStyleSheets();\n const processedKeyframes = processKeyframes(_keyframes);\n elements.forEach(element => {\n if (processedKeyframes.length > 0) {\n const keyframeRules = generateKeyframeRules(processedKeyframes);\n keyframeName = animationId !== undefined ? animationId : generateKeyframeName(keyframeRules);\n const stylesheet = createKeyframeStylesheet(keyframeName, keyframeRules, element);\n stylesheets.push(stylesheet);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill());\n setStyleProperty(element, 'animation-direction', getDirection());\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n setStyleProperty(element, 'animation-play-state', 'paused');\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${stylesheet.id}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', stylesheet.id || null);\n });\n }\n });\n };\n const initializeWebAnimation = () => {\n elements.forEach(element => {\n const animation = element.animate(_keyframes, {\n id,\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection()\n });\n animation.pause();\n webAnimations.push(animation);\n });\n if (webAnimations.length > 0) {\n webAnimations[0].onfinish = () => {\n animationFinish();\n };\n }\n };\n const initializeAnimation = (toggleAnimationName = true) => {\n beforeAnimation();\n if (_keyframes.length > 0) {\n if (supportsWebAnimations) {\n initializeWebAnimation();\n } else {\n initializeCSSAnimation(toggleAnimationName);\n }\n }\n initialized = true;\n };\n const setAnimationStep = step => {\n step = Math.min(Math.max(step, 0), 0.9999);\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.currentTime = animation.effect.getComputedTiming().delay + getDuration() * step;\n animation.pause();\n });\n } else {\n const animationDuration = `-${getDuration() * step}ms`;\n elements.forEach(element => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-delay', animationDuration);\n setStyleProperty(element, 'animation-play-state', 'paused');\n }\n });\n }\n };\n const updateWebAnimation = step => {\n webAnimations.forEach(animation => {\n animation.effect.updateTiming({\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection()\n });\n });\n if (step !== undefined) {\n setAnimationStep(step);\n }\n };\n const updateCSSAnimation = (toggleAnimationName = true, step) => {\n raf(() => {\n elements.forEach(element => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', step !== undefined ? `-${step * getDuration()}ms` : `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill() || null);\n setStyleProperty(element, 'animation-direction', getDirection() || null);\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${keyframeName}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n });\n });\n });\n };\n const update = (deep = false, toggleAnimationName = true, step) => {\n if (deep) {\n childAnimations.forEach(animation => {\n animation.update(deep, toggleAnimationName, step);\n });\n }\n if (supportsWebAnimations) {\n updateWebAnimation(step);\n } else {\n updateCSSAnimation(toggleAnimationName, step);\n }\n return ani;\n };\n const progressStart = (forceLinearEasing = false, step) => {\n childAnimations.forEach(animation => {\n animation.progressStart(forceLinearEasing, step);\n });\n pauseAnimation();\n shouldForceLinearEasing = forceLinearEasing;\n if (!initialized) {\n initializeAnimation();\n } else {\n update(false, true, step);\n }\n return ani;\n };\n const progressStep = step => {\n childAnimations.forEach(animation => {\n animation.progressStep(step);\n });\n setAnimationStep(step);\n return ani;\n };\n const progressEnd = (playTo, step, dur) => {\n shouldForceLinearEasing = false;\n childAnimations.forEach(animation => {\n animation.progressEnd(playTo, step, dur);\n });\n if (dur !== undefined) {\n forceDurationValue = dur;\n }\n finished = false;\n // tslint:disable-next-line: strict-boolean-conditions\n willComplete = true;\n if (playTo === 0) {\n forceDirectionValue = getDirection() === 'reverse' ? 'normal' : 'reverse';\n if (forceDirectionValue === 'reverse') {\n willComplete = false;\n }\n if (supportsWebAnimations) {\n update();\n setAnimationStep(1 - step);\n } else {\n forceDelayValue = (1 - step) * getDuration() * -1;\n update(false, false);\n }\n } else if (playTo === 1) {\n if (supportsWebAnimations) {\n update();\n setAnimationStep(step);\n } else {\n forceDelayValue = step * getDuration() * -1;\n update(false, false);\n }\n }\n if (playTo !== undefined) {\n onFinish(() => {\n forceDurationValue = undefined;\n forceDirectionValue = undefined;\n forceDelayValue = undefined;\n }, {\n oneTimeCallback: true\n });\n if (!parentAnimation) {\n play();\n }\n }\n return ani;\n };\n const pauseAnimation = () => {\n if (initialized) {\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.pause();\n });\n } else {\n elements.forEach(element => {\n setStyleProperty(element, 'animation-play-state', 'paused');\n });\n }\n }\n };\n const pause = () => {\n childAnimations.forEach(animation => {\n animation.pause();\n });\n pauseAnimation();\n return ani;\n };\n const onAnimationEndFallback = () => {\n cssAnimationsTimerFallback = undefined;\n animationFinish();\n };\n const clearCSSAnimationsTimeout = () => {\n if (cssAnimationsTimerFallback) {\n clearTimeout(cssAnimationsTimerFallback);\n }\n };\n const playCSSAnimations = () => {\n clearCSSAnimationsTimeout();\n raf(() => {\n elements.forEach(element => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-play-state', 'running');\n }\n });\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n } else {\n /**\n * This is a catchall in the event that a CSS Animation did not finish.\n * The Web Animations API has mechanisms in place for preventing this.\n * CSS Animations will not fire an `animationend` event\n * for elements with `display: none`. The Web Animations API\n * accounts for this, but using raw CSS Animations requires\n * this workaround.\n */\n const animationDelay = getDelay() || 0;\n const animationDuration = getDuration() || 0;\n const animationIterations = getIterations() || 1;\n // No need to set a timeout when animation has infinite iterations\n if (isFinite(animationIterations)) {\n cssAnimationsTimerFallback = setTimeout(onAnimationEndFallback, animationDelay + animationDuration * animationIterations + ANIMATION_END_FALLBACK_PADDING_MS);\n }\n animationEnd(elements[0], () => {\n clearCSSAnimationsTimeout();\n /**\n * Ensure that clean up\n * is always done a frame\n * before the onFinish handlers\n * are fired. Otherwise, there\n * may be flickering if a new\n * animation is started on the same\n * element too quickly\n *\n * TODO: Is there a cleaner way to do this?\n */\n raf(() => {\n clearCSSAnimationPlayState();\n raf(animationFinish);\n });\n });\n }\n };\n const clearCSSAnimationPlayState = () => {\n elements.forEach(element => {\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n });\n };\n const playWebAnimations = () => {\n webAnimations.forEach(animation => {\n animation.play();\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n };\n const resetAnimation = () => {\n if (supportsWebAnimations) {\n setAnimationStep(0);\n updateWebAnimation();\n } else {\n updateCSSAnimation();\n }\n };\n const play = opts => {\n return new Promise(resolve => {\n if (opts && opts.sync) {\n shouldForceSyncPlayback = true;\n onFinish(() => shouldForceSyncPlayback = false, {\n oneTimeCallback: true\n });\n }\n if (!initialized) {\n initializeAnimation();\n }\n if (finished) {\n resetAnimation();\n finished = false;\n }\n if (shouldCalculateNumAnimations) {\n numAnimationsRunning = childAnimations.length + 1;\n shouldCalculateNumAnimations = false;\n }\n onFinish(() => resolve(), {\n oneTimeCallback: true\n });\n childAnimations.forEach(animation => {\n animation.play();\n });\n if (supportsWebAnimations) {\n playWebAnimations();\n } else {\n playCSSAnimations();\n }\n });\n };\n const stop = () => {\n childAnimations.forEach(animation => {\n animation.stop();\n });\n if (initialized) {\n cleanUpElements();\n initialized = false;\n }\n resetFlags();\n };\n const from = (property, value) => {\n const firstFrame = _keyframes[0];\n if (firstFrame !== undefined && (firstFrame.offset === undefined || firstFrame.offset === 0)) {\n firstFrame[property] = value;\n } else {\n _keyframes = [{\n offset: 0,\n [property]: value\n }, ..._keyframes];\n }\n return ani;\n };\n const to = (property, value) => {\n const lastFrame = _keyframes[_keyframes.length - 1];\n if (lastFrame !== undefined && (lastFrame.offset === undefined || lastFrame.offset === 1)) {\n lastFrame[property] = value;\n } else {\n _keyframes = [..._keyframes, {\n offset: 1,\n [property]: value\n }];\n }\n return ani;\n };\n const fromTo = (property, fromValue, toValue) => {\n return from(property, fromValue).to(property, toValue);\n };\n return ani = {\n parentAnimation,\n elements,\n childAnimations,\n id,\n animationFinish,\n from,\n to,\n fromTo,\n parent,\n play,\n pause,\n stop,\n destroy,\n keyframes,\n addAnimation,\n addElement,\n update,\n fill,\n direction,\n iterations,\n duration,\n easing,\n delay,\n getWebAnimations,\n getKeyframes,\n getFill,\n getDirection,\n getDelay,\n getIterations,\n getEasing,\n getDuration,\n afterAddRead,\n afterAddWrite,\n afterClearStyles,\n afterStyles,\n afterRemoveClass,\n afterAddClass,\n beforeAddRead,\n beforeAddWrite,\n beforeClearStyles,\n beforeStyles,\n beforeRemoveClass,\n beforeAddClass,\n onFinish,\n progressStart,\n progressStep,\n progressEnd\n };\n};\nexport { createAnimation as c };","map":{"version":3,"names":["r","raf","animationPrefix","processKeyframes","keyframes","forEach","keyframe","key","hasOwnProperty","value","newKey","convertCamelCaseToHypen","str","replace","toLowerCase","getAnimationPrefix","el","undefined","supportsUnprefixed","style","animationName","supportsWebkitPrefix","webkitAnimationName","setStyleProperty","element","propertyName","prefix","startsWith","setProperty","removeStyleProperty","removeProperty","animationEnd","callback","unRegTrans","opts","passive","unregister","onTransitionEnd","ev","target","addEventListener","removeEventListener","generateKeyframeRules","map","offset","frameString","property","push","join","keyframeIds","generateKeyframeName","keyframeRules","index","indexOf","getStyleContainer","rootNode","getRootNode","head","createKeyframeStylesheet","keyframeName","styleContainer","keyframePrefix","existingStylesheet","querySelector","stylesheet","ownerDocument","document","createElement","id","textContent","appendChild","addClassToArray","classes","className","classNameToAppend","Array","isArray","createAnimation","animationId","_delay","_duration","_easing","_iterations","_fill","_direction","_keyframes","beforeAddClasses","beforeRemoveClasses","initialized","parentAnimation","beforeStylesValue","afterAddClasses","afterRemoveClasses","afterStylesValue","numAnimationsRunning","shouldForceLinearEasing","shouldForceSyncPlayback","cssAnimationsTimerFallback","forceDirectionValue","forceDurationValue","forceDelayValue","willComplete","finished","shouldCalculateNumAnimations","ani","onFinishCallbacks","onFinishOneTimeCallbacks","elements","childAnimations","stylesheets","_beforeAddReadFunctions","_beforeAddWriteFunctions","_afterAddReadFunctions","_afterAddWriteFunctions","webAnimations","supportsAnimationEffect","AnimationEffect","window","supportsWebAnimations","Element","prototype","animate","ANIMATION_END_FALLBACK_PADDING_MS","getWebAnimations","destroy","clearStyleSheets","childAnimation","cleanUp","length","clearOnFinish","cleanUpElements","cleanUpStyleSheets","resetFlags","onFinish","callbacks","oneTimeCallback","c","o","animation","cancel","elementsArray","slice","parentNode","removeChild","beforeAddRead","readFn","beforeAddWrite","writeFn","afterAddRead","afterAddWrite","beforeAddClass","beforeRemoveClass","beforeStyles","styles","beforeClearStyles","propertyNames","afterAddClass","afterRemoveClass","afterStyles","afterClearStyles","getFill","getDirection","getEasing","getDuration","getIterations","getDelay","getKeyframes","direction","animationDirection","update","fill","animationFill","delay","animationDelay","easing","animationEasing","duration","animationDuration","iterations","animationIterations","parent","addElement","nodeType","i","console","error","addAnimation","animationToAdd","keyframeValues","beforeAnimation","addClasses","removeClasses","elementClassList","classList","add","remove","afterAnimation","clearCSSAnimationsTimeout","currentStep","onFinishCallback","animationFinish","initializeCSSAnimation","toggleAnimationName","processedKeyframes","iterationsCount","Infinity","toString","initializeWebAnimation","pause","onfinish","initializeAnimation","setAnimationStep","step","Math","min","max","currentTime","effect","getComputedTiming","updateWebAnimation","updateTiming","updateCSSAnimation","deep","progressStart","forceLinearEasing","pauseAnimation","progressStep","progressEnd","playTo","dur","play","onAnimationEndFallback","clearTimeout","playCSSAnimations","isFinite","setTimeout","clearCSSAnimationPlayState","playWebAnimations","resetAnimation","Promise","resolve","sync","stop","from","firstFrame","to","lastFrame","fromTo","fromValue","toValue"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@ionic/core/dist/esm/animation-822d986b.js"],"sourcesContent":["import { r as raf } from './helpers-1457892a.js';\n\nlet animationPrefix;\n/**\n * Web Animations requires hyphenated CSS properties\n * to be written in camelCase when animating\n */\nconst processKeyframes = (keyframes) => {\n keyframes.forEach(keyframe => {\n for (const key in keyframe) {\n if (keyframe.hasOwnProperty(key)) {\n const value = keyframe[key];\n if (key === 'easing') {\n const newKey = 'animation-timing-function';\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n else {\n const newKey = convertCamelCaseToHypen(key);\n if (newKey !== key) {\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n }\n }\n }\n });\n return keyframes;\n};\nconst convertCamelCaseToHypen = (str) => {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n};\nconst getAnimationPrefix = (el) => {\n if (animationPrefix === undefined) {\n const supportsUnprefixed = el.style.animationName !== undefined;\n const supportsWebkitPrefix = el.style.webkitAnimationName !== undefined;\n animationPrefix = (!supportsUnprefixed && supportsWebkitPrefix) ? '-webkit-' : '';\n }\n return animationPrefix;\n};\nconst setStyleProperty = (element, propertyName, value) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.setProperty(prefix + propertyName, value);\n};\nconst removeStyleProperty = (element, propertyName) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.removeProperty(prefix + propertyName);\n};\nconst animationEnd = (el, callback) => {\n let unRegTrans;\n const opts = { passive: true };\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = (ev) => {\n if (el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.addEventListener('animationend', onTransitionEnd, opts);\n unRegTrans = () => {\n el.removeEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.removeEventListener('animationend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\nconst generateKeyframeRules = (keyframes = []) => {\n return keyframes.map(keyframe => {\n const offset = keyframe.offset;\n const frameString = [];\n for (const property in keyframe) {\n if (keyframe.hasOwnProperty(property) && property !== 'offset') {\n frameString.push(`${property}: ${keyframe[property]};`);\n }\n }\n return `${offset * 100}% { ${frameString.join(' ')} }`;\n }).join(' ');\n};\nconst keyframeIds = [];\nconst generateKeyframeName = (keyframeRules) => {\n let index = keyframeIds.indexOf(keyframeRules);\n if (index < 0) {\n index = (keyframeIds.push(keyframeRules) - 1);\n }\n return `ion-animation-${index}`;\n};\nconst getStyleContainer = (element) => {\n const rootNode = element.getRootNode();\n return (rootNode.head || rootNode);\n};\nconst createKeyframeStylesheet = (keyframeName, keyframeRules, element) => {\n const styleContainer = getStyleContainer(element);\n const keyframePrefix = getAnimationPrefix(element);\n const existingStylesheet = styleContainer.querySelector('#' + keyframeName);\n if (existingStylesheet) {\n return existingStylesheet;\n }\n const stylesheet = (element.ownerDocument || document).createElement('style');\n stylesheet.id = keyframeName;\n stylesheet.textContent = `@${keyframePrefix}keyframes ${keyframeName} { ${keyframeRules} } @${keyframePrefix}keyframes ${keyframeName}-alt { ${keyframeRules} }`;\n styleContainer.appendChild(stylesheet);\n return stylesheet;\n};\nconst addClassToArray = (classes = [], className) => {\n if (className !== undefined) {\n const classNameToAppend = (Array.isArray(className)) ? className : [className];\n return [...classes, ...classNameToAppend];\n }\n return classes;\n};\n\nconst createAnimation = (animationId) => {\n let _delay;\n let _duration;\n let _easing;\n let _iterations;\n let _fill;\n let _direction;\n let _keyframes = [];\n let beforeAddClasses = [];\n let beforeRemoveClasses = [];\n let initialized = false;\n let parentAnimation;\n let beforeStylesValue = {};\n let afterAddClasses = [];\n let afterRemoveClasses = [];\n let afterStylesValue = {};\n let numAnimationsRunning = 0;\n let shouldForceLinearEasing = false;\n let shouldForceSyncPlayback = false;\n let cssAnimationsTimerFallback;\n let forceDirectionValue;\n let forceDurationValue;\n let forceDelayValue;\n let willComplete = true;\n let finished = false;\n let shouldCalculateNumAnimations = true;\n let keyframeName;\n let ani;\n const id = animationId;\n const onFinishCallbacks = [];\n const onFinishOneTimeCallbacks = [];\n const elements = [];\n const childAnimations = [];\n const stylesheets = [];\n const _beforeAddReadFunctions = [];\n const _beforeAddWriteFunctions = [];\n const _afterAddReadFunctions = [];\n const _afterAddWriteFunctions = [];\n const webAnimations = [];\n const supportsAnimationEffect = (typeof AnimationEffect === 'function' || typeof window.AnimationEffect === 'function');\n const supportsWebAnimations = (typeof Element === 'function') && (typeof Element.prototype.animate === 'function') && supportsAnimationEffect;\n const ANIMATION_END_FALLBACK_PADDING_MS = 100;\n const getWebAnimations = () => {\n return webAnimations;\n };\n const destroy = (clearStyleSheets) => {\n childAnimations.forEach(childAnimation => {\n childAnimation.destroy(clearStyleSheets);\n });\n cleanUp(clearStyleSheets);\n elements.length = 0;\n childAnimations.length = 0;\n _keyframes.length = 0;\n clearOnFinish();\n initialized = false;\n shouldCalculateNumAnimations = true;\n return ani;\n };\n /**\n * Cancels any Web Animations, removes\n * any animation properties from the\n * animation's elements, and removes the\n * animation's stylesheets from the DOM.\n */\n const cleanUp = (clearStyleSheets) => {\n cleanUpElements();\n if (clearStyleSheets) {\n cleanUpStyleSheets();\n }\n };\n const resetFlags = () => {\n shouldForceLinearEasing = false;\n shouldForceSyncPlayback = false;\n shouldCalculateNumAnimations = true;\n forceDirectionValue = undefined;\n forceDurationValue = undefined;\n forceDelayValue = undefined;\n numAnimationsRunning = 0;\n finished = false;\n willComplete = true;\n };\n const onFinish = (callback, opts) => {\n const callbacks = (opts && opts.oneTimeCallback) ? onFinishOneTimeCallbacks : onFinishCallbacks;\n callbacks.push({ c: callback, o: opts });\n return ani;\n };\n const clearOnFinish = () => {\n onFinishCallbacks.length = 0;\n onFinishOneTimeCallbacks.length = 0;\n return ani;\n };\n /**\n * Cancels any Web Animations and removes\n * any animation properties from the\n * the animation's elements.\n */\n const cleanUpElements = () => {\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.cancel();\n });\n webAnimations.length = 0;\n }\n else {\n const elementsArray = elements.slice();\n raf(() => {\n elementsArray.forEach(element => {\n removeStyleProperty(element, 'animation-name');\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-timing-function');\n removeStyleProperty(element, 'animation-iteration-count');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n removeStyleProperty(element, 'animation-fill-mode');\n removeStyleProperty(element, 'animation-direction');\n });\n });\n }\n };\n /**\n * Removes the animation's stylesheets\n * from the DOM.\n */\n const cleanUpStyleSheets = () => {\n stylesheets.forEach(stylesheet => {\n /**\n * When sharing stylesheets, it's possible\n * for another animation to have already\n * cleaned up a particular stylesheet\n */\n if (stylesheet && stylesheet.parentNode) {\n stylesheet.parentNode.removeChild(stylesheet);\n }\n });\n stylesheets.length = 0;\n };\n const beforeAddRead = (readFn) => {\n _beforeAddReadFunctions.push(readFn);\n return ani;\n };\n const beforeAddWrite = (writeFn) => {\n _beforeAddWriteFunctions.push(writeFn);\n return ani;\n };\n const afterAddRead = (readFn) => {\n _afterAddReadFunctions.push(readFn);\n return ani;\n };\n const afterAddWrite = (writeFn) => {\n _afterAddWriteFunctions.push(writeFn);\n return ani;\n };\n const beforeAddClass = (className) => {\n beforeAddClasses = addClassToArray(beforeAddClasses, className);\n return ani;\n };\n const beforeRemoveClass = (className) => {\n beforeRemoveClasses = addClassToArray(beforeRemoveClasses, className);\n return ani;\n };\n /**\n * Set CSS inline styles to the animation's\n * elements before the animation begins.\n */\n const beforeStyles = (styles = {}) => {\n beforeStylesValue = styles;\n return ani;\n };\n /**\n * Clear CSS inline styles from the animation's\n * elements before the animation begins.\n */\n const beforeClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n beforeStylesValue[property] = '';\n }\n return ani;\n };\n const afterAddClass = (className) => {\n afterAddClasses = addClassToArray(afterAddClasses, className);\n return ani;\n };\n const afterRemoveClass = (className) => {\n afterRemoveClasses = addClassToArray(afterRemoveClasses, className);\n return ani;\n };\n const afterStyles = (styles = {}) => {\n afterStylesValue = styles;\n return ani;\n };\n const afterClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n afterStylesValue[property] = '';\n }\n return ani;\n };\n const getFill = () => {\n if (_fill !== undefined) {\n return _fill;\n }\n if (parentAnimation) {\n return parentAnimation.getFill();\n }\n return 'both';\n };\n const getDirection = () => {\n if (forceDirectionValue !== undefined) {\n return forceDirectionValue;\n }\n if (_direction !== undefined) {\n return _direction;\n }\n if (parentAnimation) {\n return parentAnimation.getDirection();\n }\n return 'normal';\n };\n const getEasing = () => {\n if (shouldForceLinearEasing) {\n return 'linear';\n }\n if (_easing !== undefined) {\n return _easing;\n }\n if (parentAnimation) {\n return parentAnimation.getEasing();\n }\n return 'linear';\n };\n const getDuration = () => {\n if (shouldForceSyncPlayback) {\n return 0;\n }\n if (forceDurationValue !== undefined) {\n return forceDurationValue;\n }\n if (_duration !== undefined) {\n return _duration;\n }\n if (parentAnimation) {\n return parentAnimation.getDuration();\n }\n return 0;\n };\n const getIterations = () => {\n if (_iterations !== undefined) {\n return _iterations;\n }\n if (parentAnimation) {\n return parentAnimation.getIterations();\n }\n return 1;\n };\n const getDelay = () => {\n if (forceDelayValue !== undefined) {\n return forceDelayValue;\n }\n if (_delay !== undefined) {\n return _delay;\n }\n if (parentAnimation) {\n return parentAnimation.getDelay();\n }\n return 0;\n };\n const getKeyframes = () => {\n return _keyframes;\n };\n const direction = (animationDirection) => {\n _direction = animationDirection;\n update(true);\n return ani;\n };\n const fill = (animationFill) => {\n _fill = animationFill;\n update(true);\n return ani;\n };\n const delay = (animationDelay) => {\n _delay = animationDelay;\n update(true);\n return ani;\n };\n const easing = (animationEasing) => {\n _easing = animationEasing;\n update(true);\n return ani;\n };\n const duration = (animationDuration) => {\n /**\n * CSS Animation Durations of 0ms work fine on Chrome\n * but do not run on Safari, so force it to 1ms to\n * get it to run on both platforms.\n */\n if (!supportsWebAnimations && animationDuration === 0) {\n animationDuration = 1;\n }\n _duration = animationDuration;\n update(true);\n return ani;\n };\n const iterations = (animationIterations) => {\n _iterations = animationIterations;\n update(true);\n return ani;\n };\n const parent = (animation) => {\n parentAnimation = animation;\n return ani;\n };\n const addElement = (el) => {\n if (el != null) {\n if (el.nodeType === 1) {\n elements.push(el);\n }\n else if (el.length >= 0) {\n for (let i = 0; i < el.length; i++) {\n elements.push(el[i]);\n }\n }\n else {\n console.error('Invalid addElement value');\n }\n }\n return ani;\n };\n const addAnimation = (animationToAdd) => {\n if (animationToAdd != null) {\n if (Array.isArray(animationToAdd)) {\n for (const animation of animationToAdd) {\n animation.parent(ani);\n childAnimations.push(animation);\n }\n }\n else {\n animationToAdd.parent(ani);\n childAnimations.push(animationToAdd);\n }\n }\n return ani;\n };\n const keyframes = (keyframeValues) => {\n _keyframes = keyframeValues;\n return ani;\n };\n /**\n * Run all \"before\" animation hooks.\n */\n const beforeAnimation = () => {\n // Runs all before read callbacks\n _beforeAddReadFunctions.forEach(callback => callback());\n // Runs all before write callbacks\n _beforeAddWriteFunctions.forEach(callback => callback());\n // Updates styles and classes before animation runs\n const addClasses = beforeAddClasses;\n const removeClasses = beforeRemoveClasses;\n const styles = beforeStylesValue;\n elements.forEach(el => {\n const elementClassList = el.classList;\n addClasses.forEach(c => elementClassList.add(c));\n removeClasses.forEach(c => elementClassList.remove(c));\n for (const property in styles) {\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n };\n /**\n * Run all \"after\" animation hooks.\n */\n const afterAnimation = () => {\n clearCSSAnimationsTimeout();\n // Runs all after read callbacks\n _afterAddReadFunctions.forEach(callback => callback());\n // Runs all after write callbacks\n _afterAddWriteFunctions.forEach(callback => callback());\n // Updates styles and classes before animation ends\n const currentStep = willComplete ? 1 : 0;\n const addClasses = afterAddClasses;\n const removeClasses = afterRemoveClasses;\n const styles = afterStylesValue;\n elements.forEach(el => {\n const elementClassList = el.classList;\n addClasses.forEach(c => elementClassList.add(c));\n removeClasses.forEach(c => elementClassList.remove(c));\n for (const property in styles) {\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n onFinishCallbacks.forEach(onFinishCallback => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.forEach(onFinishCallback => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.length = 0;\n shouldCalculateNumAnimations = true;\n if (willComplete) {\n finished = true;\n }\n willComplete = true;\n };\n const animationFinish = () => {\n if (numAnimationsRunning === 0) {\n return;\n }\n numAnimationsRunning--;\n if (numAnimationsRunning === 0) {\n afterAnimation();\n if (parentAnimation) {\n parentAnimation.animationFinish();\n }\n }\n };\n const initializeCSSAnimation = (toggleAnimationName = true) => {\n cleanUpStyleSheets();\n const processedKeyframes = processKeyframes(_keyframes);\n elements.forEach(element => {\n if (processedKeyframes.length > 0) {\n const keyframeRules = generateKeyframeRules(processedKeyframes);\n keyframeName = (animationId !== undefined) ? animationId : generateKeyframeName(keyframeRules);\n const stylesheet = createKeyframeStylesheet(keyframeName, keyframeRules, element);\n stylesheets.push(stylesheet);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill());\n setStyleProperty(element, 'animation-direction', getDirection());\n const iterationsCount = (getIterations() === Infinity)\n ? 'infinite'\n : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n setStyleProperty(element, 'animation-play-state', 'paused');\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${stylesheet.id}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', stylesheet.id || null);\n });\n }\n });\n };\n const initializeWebAnimation = () => {\n elements.forEach(element => {\n const animation = element.animate(_keyframes, {\n id,\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection()\n });\n animation.pause();\n webAnimations.push(animation);\n });\n if (webAnimations.length > 0) {\n webAnimations[0].onfinish = () => {\n animationFinish();\n };\n }\n };\n const initializeAnimation = (toggleAnimationName = true) => {\n beforeAnimation();\n if (_keyframes.length > 0) {\n if (supportsWebAnimations) {\n initializeWebAnimation();\n }\n else {\n initializeCSSAnimation(toggleAnimationName);\n }\n }\n initialized = true;\n };\n const setAnimationStep = (step) => {\n step = Math.min(Math.max(step, 0), 0.9999);\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.currentTime = animation.effect.getComputedTiming().delay + (getDuration() * step);\n animation.pause();\n });\n }\n else {\n const animationDuration = `-${getDuration() * step}ms`;\n elements.forEach(element => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-delay', animationDuration);\n setStyleProperty(element, 'animation-play-state', 'paused');\n }\n });\n }\n };\n const updateWebAnimation = (step) => {\n webAnimations.forEach(animation => {\n animation.effect.updateTiming({\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection()\n });\n });\n if (step !== undefined) {\n setAnimationStep(step);\n }\n };\n const updateCSSAnimation = (toggleAnimationName = true, step) => {\n raf(() => {\n elements.forEach(element => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', (step !== undefined) ? `-${step * getDuration()}ms` : `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill() || null);\n setStyleProperty(element, 'animation-direction', getDirection() || null);\n const iterationsCount = (getIterations() === Infinity)\n ? 'infinite'\n : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${keyframeName}-alt`);\n }\n raf(() => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n });\n });\n });\n };\n const update = (deep = false, toggleAnimationName = true, step) => {\n if (deep) {\n childAnimations.forEach(animation => {\n animation.update(deep, toggleAnimationName, step);\n });\n }\n if (supportsWebAnimations) {\n updateWebAnimation(step);\n }\n else {\n updateCSSAnimation(toggleAnimationName, step);\n }\n return ani;\n };\n const progressStart = (forceLinearEasing = false, step) => {\n childAnimations.forEach(animation => {\n animation.progressStart(forceLinearEasing, step);\n });\n pauseAnimation();\n shouldForceLinearEasing = forceLinearEasing;\n if (!initialized) {\n initializeAnimation();\n }\n else {\n update(false, true, step);\n }\n return ani;\n };\n const progressStep = (step) => {\n childAnimations.forEach(animation => {\n animation.progressStep(step);\n });\n setAnimationStep(step);\n return ani;\n };\n const progressEnd = (playTo, step, dur) => {\n shouldForceLinearEasing = false;\n childAnimations.forEach(animation => {\n animation.progressEnd(playTo, step, dur);\n });\n if (dur !== undefined) {\n forceDurationValue = dur;\n }\n finished = false;\n // tslint:disable-next-line: strict-boolean-conditions\n willComplete = true;\n if (playTo === 0) {\n forceDirectionValue = (getDirection() === 'reverse') ? 'normal' : 'reverse';\n if (forceDirectionValue === 'reverse') {\n willComplete = false;\n }\n if (supportsWebAnimations) {\n update();\n setAnimationStep(1 - step);\n }\n else {\n forceDelayValue = ((1 - step) * getDuration()) * -1;\n update(false, false);\n }\n }\n else if (playTo === 1) {\n if (supportsWebAnimations) {\n update();\n setAnimationStep(step);\n }\n else {\n forceDelayValue = (step * getDuration()) * -1;\n update(false, false);\n }\n }\n if (playTo !== undefined) {\n onFinish(() => {\n forceDurationValue = undefined;\n forceDirectionValue = undefined;\n forceDelayValue = undefined;\n }, {\n oneTimeCallback: true\n });\n if (!parentAnimation) {\n play();\n }\n }\n return ani;\n };\n const pauseAnimation = () => {\n if (initialized) {\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.pause();\n });\n }\n else {\n elements.forEach(element => {\n setStyleProperty(element, 'animation-play-state', 'paused');\n });\n }\n }\n };\n const pause = () => {\n childAnimations.forEach(animation => {\n animation.pause();\n });\n pauseAnimation();\n return ani;\n };\n const onAnimationEndFallback = () => {\n cssAnimationsTimerFallback = undefined;\n animationFinish();\n };\n const clearCSSAnimationsTimeout = () => {\n if (cssAnimationsTimerFallback) {\n clearTimeout(cssAnimationsTimerFallback);\n }\n };\n const playCSSAnimations = () => {\n clearCSSAnimationsTimeout();\n raf(() => {\n elements.forEach(element => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-play-state', 'running');\n }\n });\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n else {\n /**\n * This is a catchall in the event that a CSS Animation did not finish.\n * The Web Animations API has mechanisms in place for preventing this.\n * CSS Animations will not fire an `animationend` event\n * for elements with `display: none`. The Web Animations API\n * accounts for this, but using raw CSS Animations requires\n * this workaround.\n */\n const animationDelay = getDelay() || 0;\n const animationDuration = getDuration() || 0;\n const animationIterations = getIterations() || 1;\n // No need to set a timeout when animation has infinite iterations\n if (isFinite(animationIterations)) {\n cssAnimationsTimerFallback = setTimeout(onAnimationEndFallback, animationDelay + (animationDuration * animationIterations) + ANIMATION_END_FALLBACK_PADDING_MS);\n }\n animationEnd(elements[0], () => {\n clearCSSAnimationsTimeout();\n /**\n * Ensure that clean up\n * is always done a frame\n * before the onFinish handlers\n * are fired. Otherwise, there\n * may be flickering if a new\n * animation is started on the same\n * element too quickly\n *\n * TODO: Is there a cleaner way to do this?\n */\n raf(() => {\n clearCSSAnimationPlayState();\n raf(animationFinish);\n });\n });\n }\n };\n const clearCSSAnimationPlayState = () => {\n elements.forEach(element => {\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n });\n };\n const playWebAnimations = () => {\n webAnimations.forEach(animation => {\n animation.play();\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n };\n const resetAnimation = () => {\n if (supportsWebAnimations) {\n setAnimationStep(0);\n updateWebAnimation();\n }\n else {\n updateCSSAnimation();\n }\n };\n const play = (opts) => {\n return new Promise(resolve => {\n if (opts && opts.sync) {\n shouldForceSyncPlayback = true;\n onFinish(() => shouldForceSyncPlayback = false, { oneTimeCallback: true });\n }\n if (!initialized) {\n initializeAnimation();\n }\n if (finished) {\n resetAnimation();\n finished = false;\n }\n if (shouldCalculateNumAnimations) {\n numAnimationsRunning = childAnimations.length + 1;\n shouldCalculateNumAnimations = false;\n }\n onFinish(() => resolve(), { oneTimeCallback: true });\n childAnimations.forEach(animation => {\n animation.play();\n });\n if (supportsWebAnimations) {\n playWebAnimations();\n }\n else {\n playCSSAnimations();\n }\n });\n };\n const stop = () => {\n childAnimations.forEach(animation => {\n animation.stop();\n });\n if (initialized) {\n cleanUpElements();\n initialized = false;\n }\n resetFlags();\n };\n const from = (property, value) => {\n const firstFrame = _keyframes[0];\n if (firstFrame !== undefined && (firstFrame.offset === undefined || firstFrame.offset === 0)) {\n firstFrame[property] = value;\n }\n else {\n _keyframes = [\n { offset: 0, [property]: value },\n ..._keyframes\n ];\n }\n return ani;\n };\n const to = (property, value) => {\n const lastFrame = _keyframes[_keyframes.length - 1];\n if (lastFrame !== undefined && (lastFrame.offset === undefined || lastFrame.offset === 1)) {\n lastFrame[property] = value;\n }\n else {\n _keyframes = [\n ..._keyframes,\n { offset: 1, [property]: value }\n ];\n }\n return ani;\n };\n const fromTo = (property, fromValue, toValue) => {\n return from(property, fromValue).to(property, toValue);\n };\n return ani = {\n parentAnimation,\n elements,\n childAnimations,\n id,\n animationFinish,\n from,\n to,\n fromTo,\n parent,\n play,\n pause,\n stop,\n destroy,\n keyframes,\n addAnimation,\n addElement,\n update,\n fill,\n direction,\n iterations,\n duration,\n easing,\n delay,\n getWebAnimations,\n getKeyframes,\n getFill,\n getDirection,\n getDelay,\n getIterations,\n getEasing,\n getDuration,\n afterAddRead,\n afterAddWrite,\n afterClearStyles,\n afterStyles,\n afterRemoveClass,\n afterAddClass,\n beforeAddRead,\n beforeAddWrite,\n beforeClearStyles,\n beforeStyles,\n beforeRemoveClass,\n beforeAddClass,\n onFinish,\n progressStart,\n progressStep,\n progressEnd\n };\n};\n\nexport { createAnimation as c };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} |