{"mappings":"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","sources":["src/partials/scripts/agreements.js","src/partials/scripts/checkbox.js","src/partials/scripts/field.js","src/partials/scripts/modal.js","src/partials/scripts/navigation.js","node_modules/progressbar.js/src/main.js","node_modules/progressbar.js/src/line.js","node_modules/progressbar.js/src/shape.js","node_modules/progressbar.js/src/path.js","node_modules/shifty/dist/webpack:/shifty/webpack/universalModuleDefinition","node_modules/shifty/dist/webpack:/shifty/src/easing-functions.js","node_modules/shifty/dist/webpack:/shifty/src/tweenable.js","node_modules/shifty/dist/webpack:/shifty/src/token.js","node_modules/shifty/dist/webpack:/shifty/src/interpolate.js","node_modules/shifty/dist/webpack:/shifty/src/scene.js","node_modules/shifty/dist/webpack:/shifty/src/bezier.js","node_modules/shifty/dist/webpack:/shifty/src/index.js","node_modules/shifty/dist/webpack:/shifty/webpack/bootstrap","node_modules/shifty/dist/webpack:/shifty/webpack/startup","node_modules/shifty/dist/webpack:/shifty/webpack/runtime/define property getters","node_modules/shifty/dist/webpack:/shifty/webpack/runtime/global","node_modules/shifty/dist/webpack:/shifty/webpack/runtime/hasOwnProperty shorthand","node_modules/shifty/dist/webpack:/shifty/webpack/runtime/make namespace object","node_modules/progressbar.js/src/utils.js","node_modules/progressbar.js/src/circle.js","node_modules/progressbar.js/src/semicircle.js","node_modules/progressbar.js/src/square.js","src/partials/scripts/resender.js","src/partials/scripts/uploader.js"],"sourcesContent":["window.addEventListener('DOMContentLoaded', () => {\n let agreements = document.querySelector('.agreements');\n let checkbox = agreements.querySelector('input[name=\"agreementAll\"]');\n let checkboxes = agreements.querySelectorAll('.checkbox__input');\n\n agreements.querySelector('.agreements__bar').addEventListener('click', () => {\n if (agreements.classList.contains('agreements--collapsed')) {\n agreements.classList.remove('agreements--collapsed');\n } else {\n agreements.classList.add('agreements--collapsed');\n }\n });\n\n checkbox.addEventListener('click', () => {\n if (checkbox.checked) {\n checkboxes.forEach((input) => {\n input.checked = true;\n input.dispatchEvent(new Event('change'));\n });\n } else {\n checkboxes.forEach((input) => {\n input.checked = false;\n input.dispatchEvent(new Event('change'));\n });\n }\n });\n});","window.addEventListener('DOMContentLoaded', () => {\n document.querySelectorAll('.checkbox__input').forEach((input) => {\n input.addEventListener('change', () => {\n if (input.required) {\n let field = input.parentElement.parentElement.classList;\n\n if (input.checked) {\n field.remove('checkbox--invalid');\n } else {\n field.add('checkbox--invalid');\n }\n }\n });\n });\n});","window.addEventListener('DOMContentLoaded', () => {\n const validate = (input) => {\n let field = input.parentElement.classList;\n let value = input.value;\n let isValid;\n\n switch (input.name) {\n case 'bankAccountNumber':\n isValid = /^\\d{26}$/.test(value);\n break;\n case 'buyerName':\n case 'city':\n case 'firstName':\n case 'flatNumber':\n case 'invoiceNumber':\n case 'lastName':\n case 'password':\n case 'repeatedPassword':\n case 'sellerName':\n case 'street':\n case 'streetNumber':\n isValid = /^.+$/.test(value);\n break;\n case 'buyerNip':\n case 'nip':\n case 'sellerNip':\n isValid = /^\\d{10}$/.test(value);\n break;\n case 'clientsNumber':\n case 'income':\n case 'revenue':\n isValid = /^\\d+$/.test(value);\n break;\n case 'eMailAddress':\n isValid = /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value);\n break;\n case 'expiryDate':\n case 'issueDate':\n isValid = /^\\d{2}.\\d{2}.\\d{4}$/.test(value) && (new Date(value.split('.')[2], parseInt(value.split('.')[1]) - 1, value.split('.')[0]) >= new Date().setHours(0, 0, 0, 0));\n break;\n case 'grossValue':\n case 'netWorth':\n case 'toPay':\n case 'vatRate':\n isValid = /^\\d+[,.]*\\d*$/.test(value);\n break;\n case 'identityCardNumber':\n isValid = /^[a-zA-Z]{3}\\d{6}$/.test(value);\n break;\n case 'invoiceDate':\n case 'paymentDate':\n case 'saleDate':\n isValid = /^\\d{2}.\\d{2}.\\d{4}$/.test(value);\n break;\n case 'pesel':\n isValid = /^\\d{11}$/.test(value);\n break;\n case 'phoneNumber':\n isValid = /^\\d{9}$/.test(value);\n break;\n case 'postCode':\n isValid = /^\\d\\d-\\d\\d\\d$/.test(value);\n break;\n }\n\n if (isValid) {\n field.add('field--valid');\n field.remove('field--invalid');\n } else {\n field.add('field--invalid');\n field.remove('field--valid');\n }\n };\n\n document.querySelectorAll('.field__picker').forEach((picker) => {\n picker.addEventListener('focus', () => {\n picker.parentElement.classList.remove('field--valid', 'field--invalid');\n\n document.querySelectorAll('.day').forEach((day) => {\n day.addEventListener('click', () => {\n setTimeout(() => {\n picker.dispatchEvent(new Event('change'));\n });\n });\n });\n });\n\n picker.addEventListener('blur', () => {\n validate(picker);\n });\n\n picker.addEventListener('change', () => {\n validate(picker);\n });\n });\n\n document.querySelectorAll('.field__input').forEach((input) => {\n input.addEventListener('focus', () => {\n input.parentElement.classList.remove('field--valid', 'field--invalid');\n });\n\n input.addEventListener('blur', () => {\n validate(input);\n });\n });\n});","window.addEventListener('DOMContentLoaded', () => {\n let overlay = document.querySelector('.overlay');\n\n document.querySelector('.link__target').addEventListener('click', (event) => {\n event.preventDefault();\n\n overlay.style.display = 'flex';\n });\n\n overlay.querySelector('.buttons__button--cancel').addEventListener('click', () => {\n overlay.style.display = 'none';\n });\n\n overlay.querySelector('.modal__form').addEventListener('submit', (event) => {\n event.preventDefault();\n\n for (let input of event.target.elements) {\n if (input.type === 'text') {\n input.dispatchEvent(new Event('blur'));\n }\n }\n });\n});","export const initialize = (step, substep, percent, text) => {\n const ProgressBar = require('progressbar.js');\n\n let navigation = document.querySelectorAll('.list__item');\n let subnaviagtion = navigation[step].querySelectorAll('.sublist__item')[substep];\n\n let circle = new ProgressBar.Circle('.navigation__progress', {\n strokeWidth: 8,\n trailWidth: 8,\n color: '#ffffff',\n trailColor: '#313280',\n text: {\n value: text\n }\n });\n\n circle.path.setAttribute('stroke-linecap', 'round');\n circle.animate(percent);\n\n for (let i = 0; i < step; i++) {\n navigation[i].classList.add('list__item--checked');\n }\n\n navigation[step].classList.add('list__item--active');\n\n if (subnaviagtion) {\n subnaviagtion.classList.add('sublist__item--active');\n }\n}","module.exports = {\n // Higher level API, different shaped progress bars\n Line: require('./line'),\n Circle: require('./circle'),\n SemiCircle: require('./semicircle'),\n Square: require('./square'),\n\n // Lower level API to use any SVG path\n Path: require('./path'),\n\n // Base-class for creating new custom shapes\n // to be in line with the API of built-in shapes\n // Undocumented.\n Shape: require('./shape'),\n\n // Internal utils, undocumented.\n utils: require('./utils')\n};\n","// Line shaped progress bar\n\nvar Shape = require('./shape');\nvar utils = require('./utils');\n\nvar Line = function Line(container, options) {\n this._pathTemplate = 'M 0,{center} L 100,{center}';\n Shape.apply(this, arguments);\n};\n\nLine.prototype = new Shape();\nLine.prototype.constructor = Line;\n\nLine.prototype._initializeSvg = function _initializeSvg(svg, opts) {\n svg.setAttribute('viewBox', '0 0 100 ' + opts.strokeWidth);\n svg.setAttribute('preserveAspectRatio', 'none');\n};\n\nLine.prototype._pathString = function _pathString(opts) {\n return utils.render(this._pathTemplate, {\n center: opts.strokeWidth / 2\n });\n};\n\nLine.prototype._trailString = function _trailString(opts) {\n return this._pathString(opts);\n};\n\nmodule.exports = Line;\n","// Base object for different progress bar shapes\n\nvar Path = require('./path');\nvar utils = require('./utils');\n\nvar DESTROYED_ERROR = 'Object is destroyed';\n\nvar Shape = function Shape(container, opts) {\n // Throw a better error if progress bars are not initialized with `new`\n // keyword\n if (!(this instanceof Shape)) {\n throw new Error('Constructor was called without new keyword');\n }\n\n // Prevent calling constructor without parameters so inheritance\n // works correctly. To understand, this is how Shape is inherited:\n //\n // Line.prototype = new Shape();\n //\n // We just want to set the prototype for Line.\n if (arguments.length === 0) {\n return;\n }\n\n // Default parameters for progress bar creation\n this._opts = utils.extend({\n color: '#555',\n strokeWidth: 1.0,\n trailColor: null,\n trailWidth: null,\n fill: null,\n text: {\n style: {\n color: null,\n position: 'absolute',\n left: '50%',\n top: '50%',\n padding: 0,\n margin: 0,\n transform: {\n prefix: true,\n value: 'translate(-50%, -50%)'\n }\n },\n autoStyleContainer: true,\n alignToBottom: true,\n value: null,\n className: 'progressbar-text'\n },\n svgStyle: {\n display: 'block',\n width: '100%'\n },\n warnings: false\n }, opts, true); // Use recursive extend\n\n // If user specifies e.g. svgStyle or text style, the whole object\n // should replace the defaults to make working with styles easier\n if (utils.isObject(opts) && opts.svgStyle !== undefined) {\n this._opts.svgStyle = opts.svgStyle;\n }\n if (utils.isObject(opts) && utils.isObject(opts.text) && opts.text.style !== undefined) {\n this._opts.text.style = opts.text.style;\n }\n\n var svgView = this._createSvgView(this._opts);\n\n var element;\n if (utils.isString(container)) {\n element = document.querySelector(container);\n } else {\n element = container;\n }\n\n if (!element) {\n throw new Error('Container does not exist: ' + container);\n }\n\n this._container = element;\n this._container.appendChild(svgView.svg);\n if (this._opts.warnings) {\n this._warnContainerAspectRatio(this._container);\n }\n\n if (this._opts.svgStyle) {\n utils.setStyles(svgView.svg, this._opts.svgStyle);\n }\n\n // Expose public attributes before Path initialization\n this.svg = svgView.svg;\n this.path = svgView.path;\n this.trail = svgView.trail;\n this.text = null;\n\n var newOpts = utils.extend({\n attachment: undefined,\n shape: this\n }, this._opts);\n this._progressPath = new Path(svgView.path, newOpts);\n\n if (utils.isObject(this._opts.text) && this._opts.text.value !== null) {\n this.setText(this._opts.text.value);\n }\n};\n\nShape.prototype.animate = function animate(progress, opts, cb) {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n this._progressPath.animate(progress, opts, cb);\n};\n\nShape.prototype.stop = function stop() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n // Don't crash if stop is called inside step function\n if (this._progressPath === undefined) {\n return;\n }\n\n this._progressPath.stop();\n};\n\nShape.prototype.pause = function pause() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this._progressPath === undefined) {\n return;\n }\n\n if (!this._progressPath._tweenable) {\n // It seems that we can't pause this\n return;\n }\n\n this._progressPath._tweenable.pause();\n};\n\nShape.prototype.resume = function resume() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this._progressPath === undefined) {\n return;\n }\n\n if (!this._progressPath._tweenable) {\n // It seems that we can't resume this\n return;\n }\n\n this._progressPath._tweenable.resume();\n};\n\nShape.prototype.destroy = function destroy() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n this.stop();\n this.svg.parentNode.removeChild(this.svg);\n this.svg = null;\n this.path = null;\n this.trail = null;\n this._progressPath = null;\n\n if (this.text !== null) {\n this.text.parentNode.removeChild(this.text);\n this.text = null;\n }\n};\n\nShape.prototype.set = function set(progress) {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n this._progressPath.set(progress);\n};\n\nShape.prototype.value = function value() {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this._progressPath === undefined) {\n return 0;\n }\n\n return this._progressPath.value();\n};\n\nShape.prototype.setText = function setText(newText) {\n if (this._progressPath === null) {\n throw new Error(DESTROYED_ERROR);\n }\n\n if (this.text === null) {\n // Create new text node\n this.text = this._createTextContainer(this._opts, this._container);\n this._container.appendChild(this.text);\n }\n\n // Remove previous text and add new\n if (utils.isObject(newText)) {\n utils.removeChildren(this.text);\n this.text.appendChild(newText);\n } else {\n this.text.innerHTML = newText;\n }\n};\n\nShape.prototype._createSvgView = function _createSvgView(opts) {\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n this._initializeSvg(svg, opts);\n\n var trailPath = null;\n // Each option listed in the if condition are 'triggers' for creating\n // the trail path\n if (opts.trailColor || opts.trailWidth) {\n trailPath = this._createTrail(opts);\n svg.appendChild(trailPath);\n }\n\n var path = this._createPath(opts);\n svg.appendChild(path);\n\n return {\n svg: svg,\n path: path,\n trail: trailPath\n };\n};\n\nShape.prototype._initializeSvg = function _initializeSvg(svg, opts) {\n svg.setAttribute('viewBox', '0 0 100 100');\n};\n\nShape.prototype._createPath = function _createPath(opts) {\n var pathString = this._pathString(opts);\n return this._createPathElement(pathString, opts);\n};\n\nShape.prototype._createTrail = function _createTrail(opts) {\n // Create path string with original passed options\n var pathString = this._trailString(opts);\n\n // Prevent modifying original\n var newOpts = utils.extend({}, opts);\n\n // Defaults for parameters which modify trail path\n if (!newOpts.trailColor) {\n newOpts.trailColor = '#eee';\n }\n if (!newOpts.trailWidth) {\n newOpts.trailWidth = newOpts.strokeWidth;\n }\n\n newOpts.color = newOpts.trailColor;\n newOpts.strokeWidth = newOpts.trailWidth;\n\n // When trail path is set, fill must be set for it instead of the\n // actual path to prevent trail stroke from clipping\n newOpts.fill = null;\n\n return this._createPathElement(pathString, newOpts);\n};\n\nShape.prototype._createPathElement = function _createPathElement(pathString, opts) {\n var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttribute('d', pathString);\n path.setAttribute('stroke', opts.color);\n path.setAttribute('stroke-width', opts.strokeWidth);\n\n if (opts.fill) {\n path.setAttribute('fill', opts.fill);\n } else {\n path.setAttribute('fill-opacity', '0');\n }\n\n return path;\n};\n\nShape.prototype._createTextContainer = function _createTextContainer(opts, container) {\n var textContainer = document.createElement('div');\n textContainer.className = opts.text.className;\n\n var textStyle = opts.text.style;\n if (textStyle) {\n if (opts.text.autoStyleContainer) {\n container.style.position = 'relative';\n }\n\n utils.setStyles(textContainer, textStyle);\n // Default text color to progress bar's color\n if (!textStyle.color) {\n textContainer.style.color = opts.color;\n }\n }\n\n this._initializeTextContainer(opts, container, textContainer);\n return textContainer;\n};\n\n// Give custom shapes possibility to modify text element\nShape.prototype._initializeTextContainer = function(opts, container, element) {\n // By default, no-op\n // Custom shapes should respect API options, such as text.style\n};\n\nShape.prototype._pathString = function _pathString(opts) {\n throw new Error('Override this function for each progress bar');\n};\n\nShape.prototype._trailString = function _trailString(opts) {\n throw new Error('Override this function for each progress bar');\n};\n\nShape.prototype._warnContainerAspectRatio = function _warnContainerAspectRatio(container) {\n if (!this.containerAspectRatio) {\n return;\n }\n\n var computedStyle = window.getComputedStyle(container, null);\n var width = parseFloat(computedStyle.getPropertyValue('width'), 10);\n var height = parseFloat(computedStyle.getPropertyValue('height'), 10);\n if (!utils.floatEquals(this.containerAspectRatio, width / height)) {\n console.warn(\n 'Incorrect aspect ratio of container',\n '#' + container.id,\n 'detected:',\n computedStyle.getPropertyValue('width') + '(width)',\n '/',\n computedStyle.getPropertyValue('height') + '(height)',\n '=',\n width / height\n );\n\n console.warn(\n 'Aspect ratio of should be',\n this.containerAspectRatio\n );\n }\n};\n\nmodule.exports = Shape;\n","// Lower level API to animate any kind of svg path\n\nvar shifty = require('shifty');\nvar utils = require('./utils');\n\nvar Tweenable = shifty.Tweenable;\n\nvar EASING_ALIASES = {\n easeIn: 'easeInCubic',\n easeOut: 'easeOutCubic',\n easeInOut: 'easeInOutCubic'\n};\n\nvar Path = function Path(path, opts) {\n // Throw a better error if not initialized with `new` keyword\n if (!(this instanceof Path)) {\n throw new Error('Constructor was called without new keyword');\n }\n\n // Default parameters for animation\n opts = utils.extend({\n delay: 0,\n duration: 800,\n easing: 'linear',\n from: {},\n to: {},\n step: function() {}\n }, opts);\n\n var element;\n if (utils.isString(path)) {\n element = document.querySelector(path);\n } else {\n element = path;\n }\n\n // Reveal .path as public attribute\n this.path = element;\n this._opts = opts;\n this._tweenable = null;\n\n // Set up the starting positions\n var length = this.path.getTotalLength();\n this.path.style.strokeDasharray = length + ' ' + length;\n this.set(0);\n};\n\nPath.prototype.value = function value() {\n var offset = this._getComputedDashOffset();\n var length = this.path.getTotalLength();\n\n var progress = 1 - offset / length;\n // Round number to prevent returning very small number like 1e-30, which\n // is practically 0\n return parseFloat(progress.toFixed(6), 10);\n};\n\nPath.prototype.set = function set(progress) {\n this.stop();\n\n this.path.style.strokeDashoffset = this._progressToOffset(progress);\n\n var step = this._opts.step;\n if (utils.isFunction(step)) {\n var easing = this._easing(this._opts.easing);\n var values = this._calculateTo(progress, easing);\n var reference = this._opts.shape || this;\n step(values, reference, this._opts.attachment);\n }\n};\n\nPath.prototype.stop = function stop() {\n this._stopTween();\n this.path.style.strokeDashoffset = this._getComputedDashOffset();\n};\n\n// Method introduced here:\n// http://jakearchibald.com/2013/animated-line-drawing-svg/\nPath.prototype.animate = function animate(progress, opts, cb) {\n opts = opts || {};\n\n if (utils.isFunction(opts)) {\n cb = opts;\n opts = {};\n }\n\n var passedOpts = utils.extend({}, opts);\n\n // Copy default opts to new object so defaults are not modified\n var defaultOpts = utils.extend({}, this._opts);\n opts = utils.extend(defaultOpts, opts);\n\n var shiftyEasing = this._easing(opts.easing);\n var values = this._resolveFromAndTo(progress, shiftyEasing, passedOpts);\n\n this.stop();\n\n // Trigger a layout so styles are calculated & the browser\n // picks up the starting position before animating\n this.path.getBoundingClientRect();\n\n var offset = this._getComputedDashOffset();\n var newOffset = this._progressToOffset(progress);\n\n var self = this;\n this._tweenable = new Tweenable();\n this._tweenable.tween({\n from: utils.extend({ offset: offset }, values.from),\n to: utils.extend({ offset: newOffset }, values.to),\n duration: opts.duration,\n delay: opts.delay,\n easing: shiftyEasing,\n step: function(state) {\n self.path.style.strokeDashoffset = state.offset;\n var reference = opts.shape || self;\n opts.step(state, reference, opts.attachment);\n }\n }).then(function(state) {\n if (utils.isFunction(cb)) {\n cb();\n }\n });\n};\n\nPath.prototype._getComputedDashOffset = function _getComputedDashOffset() {\n var computedStyle = window.getComputedStyle(this.path, null);\n return parseFloat(computedStyle.getPropertyValue('stroke-dashoffset'), 10);\n};\n\nPath.prototype._progressToOffset = function _progressToOffset(progress) {\n var length = this.path.getTotalLength();\n return length - progress * length;\n};\n\n// Resolves from and to values for animation.\nPath.prototype._resolveFromAndTo = function _resolveFromAndTo(progress, easing, opts) {\n if (opts.from && opts.to) {\n return {\n from: opts.from,\n to: opts.to\n };\n }\n\n return {\n from: this._calculateFrom(easing),\n to: this._calculateTo(progress, easing)\n };\n};\n\n// Calculate `from` values from options passed at initialization\nPath.prototype._calculateFrom = function _calculateFrom(easing) {\n return shifty.interpolate(this._opts.from, this._opts.to, this.value(), easing);\n};\n\n// Calculate `to` values from options passed at initialization\nPath.prototype._calculateTo = function _calculateTo(progress, easing) {\n return shifty.interpolate(this._opts.from, this._opts.to, progress, easing);\n};\n\nPath.prototype._stopTween = function _stopTween() {\n if (this._tweenable !== null) {\n this._tweenable.stop();\n this._tweenable = null;\n }\n};\n\nPath.prototype._easing = function _easing(easing) {\n if (EASING_ALIASES.hasOwnProperty(easing)) {\n return EASING_ALIASES[easing];\n }\n\n return easing;\n};\n\nmodule.exports = Path;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"shifty\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"shifty\"] = factory();\n\telse\n\t\troot[\"shifty\"] = factory();\n})(self, function() {\nreturn ","/*!\n * All equations are adapted from Thomas Fuchs'\n * [Scripty2](https://github.com/madrobby/scripty2/blob/master/src/effects/transitions/penner.js).\n *\n * Based on Easing Equations (c) 2003 [Robert\n * Penner](http://www.robertpenner.com/), all rights reserved. This work is\n * [subject to terms](http://www.robertpenner.com/easing_terms_of_use.html).\n */\n\n/*!\n * TERMS OF USE - EASING EQUATIONS\n * Open source under the BSD License.\n * Easing Equations (c) 2003 Robert Penner, all rights reserved.\n */\n\n/**\n * @member shifty.Tweenable.formulas\n * @description A static Object of {@link shifty.easingFunction}s that can by\n * used by Shifty. The default values are defined in\n * [`easing-functions.js`](easing-functions.js.html), but you can add your own\n * {@link shifty.easingFunction}s by defining them as keys to this Object.\n *\n * Shifty ships with an implementation of [Robert Penner's easing\n * equations](http://robertpenner.com/easing/), as adapted from\n * [Scripty2](https://github.com/madrobby/scripty2/blob/master/src/effects/transitions/penner.js)'s\n * implementation.\n *

See the Pen Shifty - Easing formula\n * names by Jeremy Kahn (@jeremyckahn) on CodePen.

\n * \n * @type {Object.}\n * @static\n */\n\nexport const linear = pos => pos\n\nexport const easeInQuad = pos => Math.pow(pos, 2)\n\nexport const easeOutQuad = pos => -(Math.pow(pos - 1, 2) - 1)\n\nexport const easeInOutQuad = pos =>\n (pos /= 0.5) < 1 ? 0.5 * Math.pow(pos, 2) : -0.5 * ((pos -= 2) * pos - 2)\n\nexport const easeInCubic = pos => Math.pow(pos, 3)\n\nexport const easeOutCubic = pos => Math.pow(pos - 1, 3) + 1\n\nexport const easeInOutCubic = pos =>\n (pos /= 0.5) < 1 ? 0.5 * Math.pow(pos, 3) : 0.5 * (Math.pow(pos - 2, 3) + 2)\n\nexport const easeInQuart = pos => Math.pow(pos, 4)\n\nexport const easeOutQuart = pos => -(Math.pow(pos - 1, 4) - 1)\n\nexport const easeInOutQuart = pos =>\n (pos /= 0.5) < 1\n ? 0.5 * Math.pow(pos, 4)\n : -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2)\n\nexport const easeInQuint = pos => Math.pow(pos, 5)\n\nexport const easeOutQuint = pos => Math.pow(pos - 1, 5) + 1\n\nexport const easeInOutQuint = pos =>\n (pos /= 0.5) < 1 ? 0.5 * Math.pow(pos, 5) : 0.5 * (Math.pow(pos - 2, 5) + 2)\n\nexport const easeInSine = pos => -Math.cos(pos * (Math.PI / 2)) + 1\n\nexport const easeOutSine = pos => Math.sin(pos * (Math.PI / 2))\n\nexport const easeInOutSine = pos => -0.5 * (Math.cos(Math.PI * pos) - 1)\n\nexport const easeInExpo = pos => (pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)))\n\nexport const easeOutExpo = pos => (pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1)\n\nexport const easeInOutExpo = pos => {\n if (pos === 0) {\n return 0\n }\n\n if (pos === 1) {\n return 1\n }\n\n if ((pos /= 0.5) < 1) {\n return 0.5 * Math.pow(2, 10 * (pos - 1))\n }\n\n return 0.5 * (-Math.pow(2, -10 * --pos) + 2)\n}\n\nexport const easeInCirc = pos => -(Math.sqrt(1 - pos * pos) - 1)\n\nexport const easeOutCirc = pos => Math.sqrt(1 - Math.pow(pos - 1, 2))\n\nexport const easeInOutCirc = pos =>\n (pos /= 0.5) < 1\n ? -0.5 * (Math.sqrt(1 - pos * pos) - 1)\n : 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1)\n\nexport const easeOutBounce = pos => {\n if (pos < 1 / 2.75) {\n return 7.5625 * pos * pos\n } else if (pos < 2 / 2.75) {\n return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75\n } else if (pos < 2.5 / 2.75) {\n return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375\n } else {\n return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375\n }\n}\n\nexport const easeInBack = pos => {\n const s = 1.70158\n return pos * pos * ((s + 1) * pos - s)\n}\n\nexport const easeOutBack = pos => {\n const s = 1.70158\n return (pos = pos - 1) * pos * ((s + 1) * pos + s) + 1\n}\n\nexport const easeInOutBack = pos => {\n let s = 1.70158\n if ((pos /= 0.5) < 1) {\n return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s))\n }\n return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2)\n}\n\nexport const elastic = pos =>\n -1 * Math.pow(4, -8 * pos) * Math.sin(((pos * 6 - 1) * (2 * Math.PI)) / 2) + 1\n\nexport const swingFromTo = pos => {\n let s = 1.70158\n return (pos /= 0.5) < 1\n ? 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s))\n : 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2)\n}\n\nexport const swingFrom = pos => {\n const s = 1.70158\n return pos * pos * ((s + 1) * pos - s)\n}\n\nexport const swingTo = pos => {\n const s = 1.70158\n return (pos -= 1) * pos * ((s + 1) * pos + s) + 1\n}\n\nexport const bounce = pos => {\n if (pos < 1 / 2.75) {\n return 7.5625 * pos * pos\n } else if (pos < 2 / 2.75) {\n return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75\n } else if (pos < 2.5 / 2.75) {\n return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375\n } else {\n return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375\n }\n}\n\nexport const bouncePast = pos => {\n if (pos < 1 / 2.75) {\n return 7.5625 * pos * pos\n } else if (pos < 2 / 2.75) {\n return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75)\n } else if (pos < 2.5 / 2.75) {\n return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375)\n } else {\n return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375)\n }\n}\n\nexport const easeFromTo = pos =>\n (pos /= 0.5) < 1\n ? 0.5 * Math.pow(pos, 4)\n : -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2)\n\nexport const easeFrom = pos => Math.pow(pos, 4)\n\nexport const easeTo = pos => Math.pow(pos, 0.25)\n","import * as easingFunctions from './easing-functions'\n\n// CONSTANTS\nconst DEFAULT_EASING = 'linear'\nconst DEFAULT_DURATION = 500\nconst UPDATE_TIME = 1000 / 60\nconst root = typeof window !== 'undefined' ? window : global\n\nconst AFTER_TWEEN = 'afterTween'\nconst AFTER_TWEEN_END = 'afterTweenEnd'\nconst BEFORE_TWEEN = 'beforeTween'\nconst TWEEN_CREATED = 'tweenCreated'\nconst TYPE_FUNCTION = 'function'\nconst TYPE_STRING = 'string'\n\n// requestAnimationFrame() shim by Paul Irish (modified for Shifty)\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\nlet scheduleFunction =\n root.requestAnimationFrame ||\n root.webkitRequestAnimationFrame ||\n root.oRequestAnimationFrame ||\n root.msRequestAnimationFrame ||\n (root.mozCancelRequestAnimationFrame && root.mozRequestAnimationFrame) ||\n setTimeout\n\nconst noop = () => {}\n\nlet listHead = null\nlet listTail = null\n\n// Strictly used for testing\nexport const resetList = () => (listHead = listTail = null)\nexport const getListHead = () => listHead\nexport const getListTail = () => listTail\n\nconst formulas = { ...easingFunctions }\n\n/**\n * Calculates the interpolated tween values of an Object for a given\n * timestamp.\n * @param {number} forPosition The position to compute the state for.\n * @param {Object} currentState Current state properties.\n * @param {Object} originalState: The original state properties the Object is\n * tweening from.\n * @param {Object} targetState: The destination state properties the Object\n * is tweening to.\n * @param {number} duration: The length of the tween in milliseconds.\n * @param {number} timestamp: The UNIX epoch time at which the tween began.\n * @param {Object} easing: This Object's keys must correspond\n * to the keys in targetState.\n * @returns {Object}\n * @private\n */\nexport const tweenProps = (\n forPosition,\n currentState,\n originalState,\n targetState,\n duration,\n timestamp,\n easing\n) => {\n let easedPosition\n let easingObjectProp\n let start\n\n const normalizedPosition =\n forPosition < timestamp ? 0 : (forPosition - timestamp) / duration\n\n let easingFn = null\n let hasOneEase = false\n\n if (easing && easing.call) {\n hasOneEase = true\n easedPosition = easing(normalizedPosition)\n }\n\n for (const key in currentState) {\n if (!hasOneEase) {\n easingObjectProp = easing[key]\n easingFn = easingObjectProp.call\n ? easingObjectProp\n : formulas[easingObjectProp]\n\n easedPosition = easingFn(normalizedPosition)\n }\n\n start = originalState[key]\n\n currentState[key] = start + (targetState[key] - start) * easedPosition\n }\n\n return currentState\n}\n\nconst processTween = (tween, currentTime) => {\n let timestamp = tween._timestamp\n const currentState = tween._currentState\n const delay = tween._delay\n\n if (currentTime < timestamp + delay) {\n return\n }\n\n let duration = tween._duration\n const targetState = tween._targetState\n\n const endTime = timestamp + delay + duration\n let timeToCompute = currentTime > endTime ? endTime : currentTime\n const hasEnded = timeToCompute >= endTime\n const offset = duration - (endTime - timeToCompute)\n const hasFilters = tween._filters.length > 0\n\n if (hasEnded) {\n tween._render(targetState, tween._data, offset)\n return tween.stop(true)\n }\n\n if (hasFilters) {\n tween._applyFilter(BEFORE_TWEEN)\n }\n\n // If the animation has not yet reached the start point (e.g., there was\n // delay that has not yet completed), just interpolate the starting\n // position of the tween.\n if (timeToCompute < timestamp + delay) {\n timestamp = duration = timeToCompute = 1\n } else {\n timestamp += delay\n }\n\n tweenProps(\n timeToCompute,\n currentState,\n tween._originalState,\n targetState,\n duration,\n timestamp,\n tween._easing\n )\n\n if (hasFilters) {\n tween._applyFilter(AFTER_TWEEN)\n }\n\n tween._render(currentState, tween._data, offset)\n}\n\n/**\n * Process all tweens currently managed by Shifty for the current tick. This\n * does not perform any timing or update scheduling; it is the logic that is\n * run *by* the scheduling functionality. Specifically, it computes the state\n * and calls all of the relevant {@link shifty.tweenConfig} functions supplied\n * to each of the tweens for the current point in time (as determined by {@link\n * shifty.Tweenable.now}.\n *\n * This is a low-level API that won't be needed in the majority of situations.\n * It is primarily useful as a hook for higher-level animation systems that are\n * built on top of Shifty. If you need this function, it is likely you need to\n * pass something like `() => {}` to {@link\n * shifty.Tweenable.setScheduleFunction}, override {@link shifty.Tweenable.now}\n * and manage the scheduling logic yourself.\n *\n * @method shifty.processTweens\n * @see https://github.com/jeremyckahn/shifty/issues/109\n */\nexport const processTweens = () => {\n let nextTweenToProcess\n\n const currentTime = Tweenable.now()\n let currentTween = listHead\n\n while (currentTween) {\n nextTweenToProcess = currentTween._next\n processTween(currentTween, currentTime)\n currentTween = nextTweenToProcess\n }\n}\n\nconst getCurrentTime = Date.now || (() => +new Date())\nlet now\n\n/**\n * Handles the update logic for one tick of a tween.\n * @param {number} [currentTimeOverride] Needed for accurate timestamp in\n * shifty.Tweenable#seek.\n * @private\n */\nexport const scheduleUpdate = () => {\n now = getCurrentTime()\n scheduleFunction.call(root, scheduleUpdate, UPDATE_TIME)\n\n processTweens()\n}\n\n/**\n * Creates a usable easing Object from a string, a function or another easing\n * Object. If `easing` is an Object, then this function clones it and fills\n * in the missing properties with `\"linear\"`.\n *\n * If the tween has only one easing across all properties, that function is\n * returned directly.\n * @param {Object.} fromTweenParams\n * @param {Object|string|Function} [easing]\n * @param {Object} [composedEasing] Reused composedEasing object (used internally)\n * @return {Object.|Function}\n * @private\n */\nexport const composeEasingObject = (\n fromTweenParams,\n easing = DEFAULT_EASING,\n composedEasing = {}\n) => {\n let typeofEasing = typeof easing\n\n if (formulas[easing]) {\n return formulas[easing]\n }\n\n if (typeofEasing === TYPE_STRING || typeofEasing === TYPE_FUNCTION) {\n for (const prop in fromTweenParams) {\n composedEasing[prop] = easing\n }\n } else {\n for (const prop in fromTweenParams) {\n composedEasing[prop] = easing[prop] || DEFAULT_EASING\n }\n }\n\n return composedEasing\n}\n\n// Private declarations used below\n\nconst remove = ((previousTween, nextTween) => tween => {\n // Adapted from:\n // https://github.com/trekhleb/javascript-algorithms/blob/7c9601df3e8ca4206d419ce50b88bd13ff39deb6/src/data-structures/doubly-linked-list/DoublyLinkedList.js#L73-L121\n if (tween === listHead) {\n listHead = tween._next\n\n if (listHead) {\n listHead._previous = null\n } else {\n listTail = null\n }\n } else if (tween === listTail) {\n listTail = tween._previous\n\n if (listTail) {\n listTail._next = null\n } else {\n listHead = null\n }\n } else {\n previousTween = tween._previous\n nextTween = tween._next\n\n previousTween._next = nextTween\n nextTween._previous = previousTween\n }\n\n // Clean up any references in case the tween is restarted later.\n tween._previous = tween._next = null\n})()\n\nconst defaultPromiseCtor = typeof Promise === 'function' ? Promise : null\n\nexport class Tweenable {\n /**\n * @method shifty.Tweenable.now\n * @static\n * @returns {number} The current timestamp.\n */\n static now = () => now\n\n /**\n * @param {Object} [initialState={}] The values that the initial tween should\n * start at if a `from` value is not provided to {@link\n * shifty.Tweenable#tween} or {@link shifty.Tweenable#setConfig}.\n * @param {shifty.tweenConfig} [config] Configuration object to be passed to\n * {@link shifty.Tweenable#setConfig}.\n * @constructs shifty.Tweenable\n */\n constructor(initialState = {}, config = undefined) {\n this._config = {}\n this._data = {}\n this._delay = 0\n this._filters = []\n this._next = null\n this._previous = null\n this._timestamp = null\n this._resolve = null\n this._reject = null\n this._currentState = initialState || {}\n this._originalState = {}\n this._targetState = {}\n this._start = noop\n this._render = noop\n this._promiseCtor = defaultPromiseCtor\n\n // To prevent unnecessary calls to setConfig do not set default\n // configuration here. Only set default configuration immediately before\n // tweening if none has been set.\n if (config) {\n this.setConfig(config)\n }\n }\n\n /**\n * Applies a filter to Tweenable instance.\n * @param {string} filterName The name of the filter to apply.\n * @private\n */\n _applyFilter(filterName) {\n for (let i = this._filters.length; i > 0; i--) {\n const filterType = this._filters[i - i]\n const filter = filterType[filterName]\n\n if (filter) {\n filter(this)\n }\n }\n }\n\n /**\n * Configure and start a tween. If this {@link shifty.Tweenable}'s instance\n * is already running, then it will stop playing the old tween and\n * immediately play the new one.\n * @method shifty.Tweenable#tween\n * @param {shifty.tweenConfig} [config] Gets passed to {@link\n * shifty.Tweenable#setConfig}.\n * @return {shifty.Tweenable}\n */\n tween(config = undefined) {\n if (this._isPlaying) {\n this.stop()\n }\n\n if (config || !this._config) {\n this.setConfig(config)\n }\n\n this._pausedAtTime = null\n this._timestamp = Tweenable.now()\n this._start(this.get(), this._data)\n\n if (this._delay) {\n this._render(this._currentState, this._data, 0)\n }\n\n return this._resume(this._timestamp)\n }\n\n /**\n * Configure a tween that will start at some point in the future. Aside from\n * `delay`, `from`, and `to`, each configuration option will automatically\n * default to the same option used in the preceding tween of this {@link\n * shifty.Tweenable} instance.\n * @method shifty.Tweenable#setConfig\n * @param {shifty.tweenConfig} [config={}]\n * @return {shifty.Tweenable}\n */\n setConfig(config = {}) {\n const { _config } = this\n\n for (const key in config) {\n _config[key] = config[key]\n }\n\n // Configuration options to reuse from previous tweens\n const {\n promise = this._promiseCtor,\n start = noop,\n finish,\n render = this._config.step || noop,\n\n // Legacy option. Superseded by `render`.\n step = noop,\n } = _config\n\n // Attach something to this Tweenable instance (e.g.: a DOM element, an\n // object, a string, etc.);\n this._data = _config.data || _config.attachment || this._data\n\n // Init the internal state\n this._isPlaying = false\n this._pausedAtTime = null\n this._scheduleId = null\n this._delay = config.delay || 0\n this._start = start\n this._render = render || step\n this._duration = _config.duration || DEFAULT_DURATION\n this._promiseCtor = promise\n\n if (finish) {\n this._resolve = finish\n }\n\n const { from, to = {} } = config\n const { _currentState, _originalState, _targetState } = this\n\n for (const key in from) {\n _currentState[key] = from[key]\n }\n\n let anyPropsAreStrings = false\n\n for (const key in _currentState) {\n const currentProp = _currentState[key]\n\n if (!anyPropsAreStrings && typeof currentProp === TYPE_STRING) {\n anyPropsAreStrings = true\n }\n\n _originalState[key] = currentProp\n\n // Ensure that there is always something to tween to.\n _targetState[key] = to.hasOwnProperty(key) ? to[key] : currentProp\n }\n\n this._easing = composeEasingObject(\n this._currentState,\n _config.easing,\n this._easing\n )\n\n this._filters.length = 0\n\n if (anyPropsAreStrings) {\n for (const key in Tweenable.filters) {\n if (Tweenable.filters[key].doesApply(this)) {\n this._filters.push(Tweenable.filters[key])\n }\n }\n\n this._applyFilter(TWEEN_CREATED)\n }\n\n return this\n }\n\n /**\n * Overrides any `finish` function passed via a {@link shifty.tweenConfig}.\n * @method shifty.Tweenable#then\n * @param {function} onFulfilled Receives {@link shifty.promisedData} as the\n * first parameter.\n * @param {function} onRejected Receives {@link shifty.promisedData} as the\n * first parameter.\n * @return {external:Promise}\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then\n */\n then(onFulfilled, onRejected) {\n this._promise = new this._promiseCtor((resolve, reject) => {\n this._resolve = resolve\n this._reject = reject\n })\n\n return this._promise.then(onFulfilled, onRejected)\n }\n\n /**\n * @method shifty.Tweenable#catch\n * @param {function} onRejected Receives {@link shifty.promisedData} as the\n * first parameter.\n * @return {external:Promise}\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch\n */\n catch(onRejected) {\n return this.then().catch(onRejected)\n }\n\n /**\n * @method shifty.Tweenable#get\n * @return {Object} The current state.\n */\n get() {\n return { ...this._currentState }\n }\n\n /**\n * Set the current state.\n * @method shifty.Tweenable#set\n * @param {Object} state The state to set.\n */\n set(state) {\n this._currentState = state\n }\n\n /**\n * Pause a tween. Paused tweens can be resumed from the point at which they\n * were paused. If a tween is not running, this is a no-op.\n * @method shifty.Tweenable#pause\n * @return {shifty.Tweenable}\n */\n pause() {\n if (!this._isPlaying) {\n return\n }\n\n this._pausedAtTime = Tweenable.now()\n this._isPlaying = false\n remove(this)\n\n return this\n }\n\n /**\n * Resume a paused tween.\n * @method shifty.Tweenable#resume\n * @return {shifty.Tweenable}\n */\n resume() {\n return this._resume()\n }\n\n _resume(currentTime = Tweenable.now()) {\n if (this._timestamp === null) {\n return this.tween()\n }\n\n if (this._isPlaying) {\n return this._promise\n }\n\n if (this._pausedAtTime) {\n this._timestamp += currentTime - this._pausedAtTime\n this._pausedAtTime = null\n }\n\n this._isPlaying = true\n\n if (listHead === null) {\n listHead = this\n listTail = this\n } else {\n this._previous = listTail\n listTail._next = this\n\n listTail = this\n }\n\n return this\n }\n\n /**\n * Move the state of the animation to a specific point in the tween's\n * timeline. If the animation is not running, this will cause {@link\n * shifty.renderFunction} handlers to be called.\n * @method shifty.Tweenable#seek\n * @param {millisecond} millisecond The millisecond of the animation to seek\n * to. This must not be less than `0`.\n * @return {shifty.Tweenable}\n */\n seek(millisecond) {\n millisecond = Math.max(millisecond, 0)\n const currentTime = Tweenable.now()\n\n if (this._timestamp + millisecond === 0) {\n return this\n }\n\n this._timestamp = currentTime - millisecond\n\n // Make sure that any render handlers are run.\n processTween(this, currentTime)\n\n return this\n }\n\n /**\n * Stops a tween. If a tween is not running, this is a no-op. This method\n * does not cancel the tween {@link external:Promise}. For that, use {@link\n * shifty.Tweenable#cancel}.\n * @param {boolean} [gotoEnd] If `false`, the tween just stops at its current\n * state. If `true`, the tweened object's values are instantly set to the\n * target values.\n * @method shifty.Tweenable#stop\n * @return {shifty.Tweenable}\n */\n stop(gotoEnd = false) {\n if (!this._isPlaying) {\n return this\n }\n\n this._isPlaying = false\n\n remove(this)\n\n const hasFilters = this._filters.length > 0\n\n if (gotoEnd) {\n if (hasFilters) {\n this._applyFilter(BEFORE_TWEEN)\n }\n\n tweenProps(\n 1,\n this._currentState,\n this._originalState,\n this._targetState,\n 1,\n 0,\n this._easing\n )\n\n if (hasFilters) {\n this._applyFilter(AFTER_TWEEN)\n this._applyFilter(AFTER_TWEEN_END)\n }\n }\n\n if (this._resolve) {\n this._resolve({\n data: this._data,\n state: this._currentState,\n tweenable: this,\n })\n }\n\n this._resolve = null\n this._reject = null\n\n return this\n }\n\n /**\n * {@link shifty.Tweenable#stop}s a tween and also `reject`s its {@link\n * external:Promise}. If a tween is not running, this is a no-op. Prevents\n * calling any provided `finish` function.\n * @param {boolean} [gotoEnd] Is propagated to {@link shifty.Tweenable#stop}.\n * @method shifty.Tweenable#cancel\n * @return {shifty.Tweenable}\n * @see https://github.com/jeremyckahn/shifty/issues/122\n */\n cancel(gotoEnd = false) {\n const { _currentState, _data, _isPlaying } = this\n\n if (!_isPlaying) {\n return this\n }\n\n if (this._reject) {\n this._reject({\n data: _data,\n state: _currentState,\n tweenable: this,\n })\n }\n\n this._resolve = null\n this._reject = null\n\n return this.stop(gotoEnd)\n }\n\n /**\n * Whether or not a tween is running.\n * @method shifty.Tweenable#isPlaying\n * @return {boolean}\n */\n isPlaying() {\n return this._isPlaying\n }\n\n /**\n * @method shifty.Tweenable#setScheduleFunction\n * @param {shifty.scheduleFunction} scheduleFunction\n * @deprecated Will be removed in favor of {@link shifty.Tweenable.setScheduleFunction} in 3.0.\n */\n setScheduleFunction(scheduleFunction) {\n Tweenable.setScheduleFunction(scheduleFunction)\n }\n\n /**\n * Get and optionally set the data that gets passed as `data` to {@link\n * shifty.promisedData}, {@link shifty.startFunction} and {@link\n * shifty.renderFunction}.\n * @param {Object} [data]\n * @method shifty.Tweenable#data\n * @return {Object} The internally stored `data`.\n */\n data(data = null) {\n if (data) {\n this._data = { ...data }\n }\n\n return this._data\n }\n\n /**\n * `delete` all \"own\" properties. Call this when the {@link\n * shifty.Tweenable} instance is no longer needed to free memory.\n * @method shifty.Tweenable#dispose\n */\n dispose() {\n for (const prop in this) {\n delete this[prop]\n }\n }\n}\n\n// TODO: Make these proper static methods.\n\n/**\n * Set a custom schedule function.\n *\n * By default,\n * [`requestAnimationFrame`](https://developer.mozilla.org/en-US/docs/Web/API/window.requestAnimationFrame)\n * is used if available, otherwise\n * [`setTimeout`](https://developer.mozilla.org/en-US/docs/Web/API/Window.setTimeout)\n * is used.\n * @method shifty.Tweenable.setScheduleFunction\n * @param {shifty.scheduleFunction} fn The function to be\n * used to schedule the next frame to be rendered.\n * @return {shifty.scheduleFunction} The function that was set.\n */\nTweenable.setScheduleFunction = fn => (scheduleFunction = fn)\n\nTweenable.formulas = formulas\n\n/**\n * The {@link shifty.filter}s available for use. These filters are\n * automatically applied at tween-time by Shifty. You can define your own\n * {@link shifty.filter}s and attach them to this object.\n * @member shifty.Tweenable.filters\n * @type {Object.}\n */\nTweenable.filters = {}\n\n/**\n * @method shifty.tween\n * @param {shifty.tweenConfig} [config={}]\n * @description Standalone convenience method that functions identically to\n * {@link shifty.Tweenable#tween}. You can use this to create tweens without\n * needing to set up a {@link shifty.Tweenable} instance.\n *\n * ```\n * import { tween } from 'shifty';\n *\n * tween({ from: { x: 0 }, to: { x: 10 } }).then(\n * () => console.log('All done!')\n * );\n * ```\n *\n * @returns {shifty.Tweenable} A new {@link shifty.Tweenable} instance.\n */\nexport function tween(config = {}) {\n const tweenable = new Tweenable()\n tweenable.tween(config)\n\n // This is strictly a legacy shim from when this function returned a Promise.\n // REMOVE THIS LINE IN THE NEXT MAJOR VERSION\n tweenable.tweenable = tweenable\n\n return tweenable\n}\n\nscheduleUpdate()\n","const R_NUMBER_COMPONENT = /(\\d|-|\\.)/\nconst R_FORMAT_CHUNKS = /([^\\-0-9.]+)/g\nconst R_UNFORMATTED_VALUES = /[0-9.-]+/g\nconst R_RGB = (() => {\n const number = R_UNFORMATTED_VALUES.source\n const comma = /,\\s*/.source\n\n return new RegExp(`rgb\\\\(${number}${comma}${number}${comma}${number}\\\\)`, 'g')\n})()\nconst R_RGB_PREFIX = /^.*\\(/\nconst R_HEX = /#([0-9]|[a-f]){3,6}/gi\nconst VALUE_PLACEHOLDER = 'VAL'\n\n// HELPERS\n\n/**\n * @param {Array.number} rawValues\n * @param {string} prefix\n *\n * @return {Array.}\n * @private\n */\nconst getFormatChunksFrom = (rawValues, prefix) =>\n rawValues.map((val, i) => `_${prefix}_${i}`)\n\n/**\n * @param {string} formattedString\n *\n * @return {string}\n * @private\n */\nconst getFormatStringFrom = formattedString => {\n let chunks = formattedString.match(R_FORMAT_CHUNKS)\n\n if (!chunks) {\n // chunks will be null if there were no tokens to parse in\n // formattedString (for example, if formattedString is '2'). Coerce\n // chunks to be useful here.\n chunks = ['', '']\n\n // If there is only one chunk, assume that the string is a number\n // followed by a token...\n // NOTE: This may be an unwise assumption.\n } else if (\n chunks.length === 1 ||\n // ...or if the string starts with a number component (\".\", \"-\", or a\n // digit)...\n formattedString.charAt(0).match(R_NUMBER_COMPONENT)\n ) {\n // ...prepend an empty string here to make sure that the formatted number\n // is properly replaced by VALUE_PLACEHOLDER\n chunks.unshift('')\n }\n\n return chunks.join(VALUE_PLACEHOLDER)\n}\n\n/**\n * Convert a base-16 number to base-10.\n *\n * @param {number|string} hex The value to convert.\n *\n * @returns {number} The base-10 equivalent of `hex`.\n * @private\n */\nfunction hexToDec(hex) {\n return parseInt(hex, 16)\n}\n\n/**\n * Convert a hexadecimal string to an array with three items, one each for\n * the red, blue, and green decimal values.\n *\n * @param {string} hex A hexadecimal string.\n *\n * @returns {Array.} The converted Array of RGB values if `hex` is a\n * valid string, or an Array of three 0's.\n * @private\n */\nconst hexToRGBArray = hex => {\n hex = hex.replace(/#/, '')\n\n // If the string is a shorthand three digit hex notation, normalize it to\n // the standard six digit notation\n if (hex.length === 3) {\n hex = hex.split('')\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n\n return [\n hexToDec(hex.substr(0, 2)),\n hexToDec(hex.substr(2, 2)),\n hexToDec(hex.substr(4, 2)),\n ]\n}\n\n/**\n * @param {string} hexString\n *\n * @return {string}\n * @private\n */\nconst convertHexToRGB = hexString =>\n `rgb(${hexToRGBArray(hexString).join(',')})`\n\n/**\n * TODO: Can this be rewritten to leverage String#replace more efficiently?\n * Runs a filter operation on all chunks of a string that match a RegExp.\n *\n * @param {RegExp} pattern\n * @param {string} unfilteredString\n * @param {function(string)} filter\n *\n * @return {string}\n * @private\n */\nconst filterStringChunks = (pattern, unfilteredString, filter) => {\n const patternMatches = unfilteredString.match(pattern)\n let filteredString = unfilteredString.replace(pattern, VALUE_PLACEHOLDER)\n\n if (patternMatches) {\n patternMatches.forEach(\n match =>\n (filteredString = filteredString.replace(\n VALUE_PLACEHOLDER,\n filter(match)\n ))\n )\n }\n\n return filteredString\n}\n\n/**\n * @param {string} str\n *\n * @return {string}\n * @private\n */\nconst sanitizeHexChunksToRGB = str =>\n filterStringChunks(R_HEX, str, convertHexToRGB)\n\n/**\n * Convert all hex color values within a string to an rgb string.\n *\n * @param {Object} stateObject\n * @private\n */\nconst sanitizeObjectForHexProps = stateObject => {\n for (const prop in stateObject) {\n const currentProp = stateObject[prop]\n\n if (typeof currentProp === 'string' && currentProp.match(R_HEX)) {\n stateObject[prop] = sanitizeHexChunksToRGB(currentProp)\n }\n }\n}\n\n/**\n * @param {string} rgbChunk\n *\n * @return {string}\n * @private\n */\nconst sanitizeRGBChunk = rgbChunk => {\n const numbers = rgbChunk.match(R_UNFORMATTED_VALUES).map(Math.floor)\n const prefix = rgbChunk.match(R_RGB_PREFIX)[0]\n\n return `${prefix}${numbers.join(',')})`\n}\n\n/**\n * Check for floating point values within rgb strings and round them.\n *\n * @param {string} formattedString\n *\n * @return {string}\n * @private\n */\nconst sanitizeRGBChunks = formattedString =>\n filterStringChunks(R_RGB, formattedString, sanitizeRGBChunk)\n\n/**\n * Note: It's the duty of the caller to convert the Array elements of the\n * return value into numbers. This is a performance optimization.\n *\n * @param {string} formattedString\n *\n * @return {Array.|null}\n * @private\n */\nconst getValuesFrom = formattedString =>\n formattedString.match(R_UNFORMATTED_VALUES)\n\n/**\n * @param {Object} stateObject\n *\n * @return {Object} An Object of formatSignatures that correspond to\n * the string properties of stateObject.\n * @private\n */\nconst getFormatSignatures = stateObject => {\n const signatures = {}\n\n for (const propertyName in stateObject) {\n const property = stateObject[propertyName]\n\n if (typeof property === 'string') {\n signatures[propertyName] = {\n formatString: getFormatStringFrom(property),\n chunkNames: getFormatChunksFrom(getValuesFrom(property), propertyName),\n }\n }\n }\n\n return signatures\n}\n\n/**\n * @param {Object} stateObject\n * @param {Object} formatSignatures\n * @private\n */\nconst expandFormattedProperties = (stateObject, formatSignatures) => {\n for (const propertyName in formatSignatures) {\n getValuesFrom(stateObject[propertyName]).forEach(\n (number, i) =>\n (stateObject[formatSignatures[propertyName].chunkNames[i]] = +number)\n )\n\n delete stateObject[propertyName]\n }\n}\n\n/**\n * @param {Object} stateObject\n * @param {Array.} chunkNames\n *\n * @return {Object} The extracted value chunks.\n * @private\n */\nconst extractPropertyChunks = (stateObject, chunkNames) => {\n const extractedValues = {}\n\n chunkNames.forEach(chunkName => {\n extractedValues[chunkName] = stateObject[chunkName]\n delete stateObject[chunkName]\n })\n\n return extractedValues\n}\n\n/**\n * @param {Object} stateObject\n * @param {Array.} chunkNames\n *\n * @return {Array.}\n * @private\n */\nconst getValuesList = (stateObject, chunkNames) =>\n chunkNames.map(chunkName => stateObject[chunkName])\n\n/**\n * @param {string} formatString\n * @param {Array.} rawValues\n *\n * @return {string}\n * @private\n */\nconst getFormattedValues = (formatString, rawValues) => {\n rawValues.forEach(\n rawValue =>\n (formatString = formatString.replace(\n VALUE_PLACEHOLDER,\n +rawValue.toFixed(4)\n ))\n )\n\n return formatString\n}\n\n/**\n * @param {Object} stateObject\n * @param {Object} formatSignatures\n * @private\n */\nconst collapseFormattedProperties = (stateObject, formatSignatures) => {\n for (const prop in formatSignatures) {\n const { chunkNames, formatString } = formatSignatures[prop]\n\n const currentProp = getFormattedValues(\n formatString,\n getValuesList(extractPropertyChunks(stateObject, chunkNames), chunkNames)\n )\n\n stateObject[prop] = sanitizeRGBChunks(currentProp)\n }\n}\n\n/**\n * @param {Object} easingObject\n * @param {Object} tokenData\n * @private\n */\nconst expandEasingObject = (easingObject, tokenData) => {\n for (const prop in tokenData) {\n const { chunkNames } = tokenData[prop]\n const easing = easingObject[prop]\n\n if (typeof easing === 'string') {\n const easingNames = easing.split(' ')\n const defaultEasing = easingNames[easingNames.length - 1]\n\n chunkNames.forEach(\n (chunkName, i) =>\n (easingObject[chunkName] = easingNames[i] || defaultEasing)\n )\n } else {\n // easing is a function\n chunkNames.forEach(chunkName => (easingObject[chunkName] = easing))\n }\n\n delete easingObject[prop]\n }\n}\n\n/**\n * @param {Object} easingObject\n * @param {Object} tokenData\n * @private\n */\nconst collapseEasingObject = (easingObject, tokenData) => {\n for (const prop in tokenData) {\n const { chunkNames } = tokenData[prop]\n const firstEasing = easingObject[chunkNames[0]]\n\n if (typeof firstEasing === 'string') {\n easingObject[prop] = chunkNames\n .map(chunkName => {\n const easingName = easingObject[chunkName]\n delete easingObject[chunkName]\n\n return easingName\n })\n .join(' ')\n } else {\n // firstEasing is a function\n easingObject[prop] = firstEasing\n }\n }\n}\n\nexport const doesApply = tweenable => {\n for (const key in tweenable._currentState) {\n if (typeof tweenable._currentState[key] === 'string') {\n return true\n }\n }\n\n return false\n}\n\nexport function tweenCreated(tweenable) {\n const { _currentState, _originalState, _targetState } = tweenable\n\n ;[_currentState, _originalState, _targetState].forEach(\n sanitizeObjectForHexProps\n )\n\n tweenable._tokenData = getFormatSignatures(_currentState)\n}\n\nexport function beforeTween(tweenable) {\n const {\n _currentState,\n _originalState,\n _targetState,\n _easing,\n _tokenData,\n } = tweenable\n\n expandEasingObject(_easing, _tokenData)\n ;[_currentState, _originalState, _targetState].forEach(state =>\n expandFormattedProperties(state, _tokenData)\n )\n}\n\nexport function afterTween(tweenable) {\n const {\n _currentState,\n _originalState,\n _targetState,\n _easing,\n _tokenData,\n } = tweenable\n ;[_currentState, _originalState, _targetState].forEach(state =>\n collapseFormattedProperties(state, _tokenData)\n )\n\n collapseEasingObject(_easing, _tokenData)\n}\n","import { Tweenable, composeEasingObject, tweenProps } from './tweenable'\n\n// Fake a Tweenable and patch some internals. This approach allows us to\n// skip uneccessary processing and object recreation, cutting down on garbage\n// collection pauses.\nconst mockTweenable = new Tweenable()\nconst { filters } = Tweenable\n\n/**\n * Compute the midpoint of two Objects. This method effectively calculates a\n * specific frame of animation that {@link shifty.Tweenable#tween} does many times\n * over the course of a full tween.\n *\n * ```\n * import { interpolate } from 'shifty';\n *\n * const interpolatedValues = interpolate({\n * width: '100px',\n * opacity: 0,\n * color: '#fff'\n * }, {\n * width: '200px',\n * opacity: 1,\n * color: '#000'\n * },\n * 0.5\n * );\n *\n * console.log(interpolatedValues); // Logs: {opacity: 0.5, width: \"150px\", color: \"rgb(127,127,127)\"}\n * ```\n *\n * @method shifty.interpolate\n * @param {Object} from The starting values to tween from.\n * @param {Object} to The ending values to tween to.\n * @param {number} position The normalized position value (between `0.0` and\n * `1.0`) to interpolate the values between `from` and `to` for. `from`\n * represents `0` and `to` represents `1`.\n * @param {Object.|string|shifty.easingFunction}\n * easing The easing curve(s) to calculate the midpoint against. You can\n * reference any easing function attached to {@link shifty.Tweenable.formulas},\n * or provide the {@link shifty.easingFunction}(s) directly. If omitted, this\n * defaults to \"linear\".\n * @param {number} [delay=0] Optional delay to pad the beginning of the\n * interpolated tween with. This increases the range of `position` from (`0`\n * through `1`) to (`0` through `1 + delay`). So, a delay of `0.5` would\n * increase all valid values of `position` to numbers between `0` and `1.5`.\n * @return {Object}\n */\nexport const interpolate = (from, to, position, easing, delay = 0) => {\n const current = { ...from }\n const easingObject = composeEasingObject(from, easing)\n\n mockTweenable._filters.length = 0\n\n mockTweenable.set({})\n mockTweenable._currentState = current\n mockTweenable._originalState = from\n mockTweenable._targetState = to\n mockTweenable._easing = easingObject\n\n for (const name in filters) {\n if (filters[name].doesApply(mockTweenable)) {\n mockTweenable._filters.push(filters[name])\n }\n }\n\n // Any defined value transformation must be applied\n mockTweenable._applyFilter('tweenCreated')\n mockTweenable._applyFilter('beforeTween')\n\n const interpolatedValues = tweenProps(\n position,\n current,\n from,\n to,\n 1,\n delay,\n easingObject\n )\n\n // Transform data in interpolatedValues back into its original format\n mockTweenable._applyFilter('afterTween')\n\n return interpolatedValues\n}\n","export class Scene {\n #tweenables = []\n\n /**\n * The {@link shifty.Scene} class provides a way to control groups of {@link\n * shifty.Tweenable}s. It is lightweight, minimalistic, and meant to provide\n * performant {@link shifty.Tweenable} batch control that users of Shifty\n * might otherwise have to implement themselves. It is **not** a robust\n * timeline solution, and it does **not** provide utilities for sophisticated\n * animation sequencing or orchestration. If that is what you need for your\n * project, consider using a more robust tool such as\n * [Rekapi](http://jeremyckahn.github.io/rekapi/doc/) (a timeline layer built\n * on top of Shifty).\n *\n * Please be aware that {@link shifty.Scene} does **not** perform any\n * automatic cleanup. If you want to remove a {@link shifty.Tweenable} from a\n * {@link shifty.Scene}, you must do so explicitly with either {@link\n * shifty.Scene#remove} or {@link shifty.Scene#empty}.\n *\n *

\n * See the Pen \n * Shifty Scene Demo by Jeremy Kahn (@jeremyckahn)\n * on CodePen.\n *

\n * \n * @param {...shifty.Tweenable} tweenables\n * @see https://codepen.io/jeremyckahn/pen/qvZKbe\n * @constructs shifty.Scene\n */\n constructor(...tweenables) {\n tweenables.forEach(this.add.bind(this))\n }\n\n /**\n * A copy of the internal {@link shifty.Tweenable}s array.\n * @member shifty.Scene#tweenables\n * @type {Array.}\n * @readonly\n */\n get tweenables() {\n return [...this.#tweenables]\n }\n\n /**\n * The {@link external:Promise}s for all {@link shifty.Tweenable}s in this\n * {@link shifty.Scene} that have been configured with {@link\n * shifty.Tweenable#setConfig}. Note that each call of {@link\n * shifty.Scene#play} or {@link shifty.Scene#pause} creates new {@link\n * external:Promise}s:\n *\n * const scene = new Scene(new Tweenable());\n * scene.play();\n *\n * Promise.all(scene.promises).then(() =>\n * // Plays the scene again upon completion, but a new promise is\n * // created so this line only runs once.\n * scene.play()\n * );\n *\n * @member shifty.Scene#promises\n * @type {Array.}\n * @readonly\n */\n get promises() {\n return this.#tweenables.map(tweenable => tweenable.then())\n }\n\n /**\n * Add a {@link shifty.Tweenable} to be controlled by this {@link\n * shifty.Scene}.\n * @method shifty.Scene#add\n * @param {shifty.Tweenable} tweenable\n * @return {shifty.Tweenable} The {@link shifty.Tweenable} that was added.\n */\n add(tweenable) {\n this.#tweenables.push(tweenable)\n\n return tweenable\n }\n\n /**\n * Remove a {@link shifty.Tweenable} that is controlled by this {@link\n * shifty.Scene}.\n * @method shifty.Scene#remove\n * @param {shifty.Tweenable} tweenable\n * @return {shifty.Tweenable} The {@link shifty.Tweenable} that was removed.\n */\n remove(tweenable) {\n const index = this.#tweenables.indexOf(tweenable)\n\n if (~index) {\n this.#tweenables.splice(index, 1)\n }\n\n return tweenable\n }\n\n /**\n * [Remove]{@link shifty.Scene#remove} all {@link shifty.Tweenable}s in this {@link\n * shifty.Scene}.\n * @method shifty.Scene#empty\n * @return {Array.} The {@link shifty.Tweenable}s that were\n * removed.\n */\n empty() {\n // Deliberate of the tweenables getter here to create a temporary array\n return this.tweenables.map(this.remove.bind(this))\n }\n\n /**\n * Is `true` if any {@link shifty.Tweenable} in this {@link shifty.Scene} is\n * playing.\n * @method shifty.Scene#isPlaying\n * @return {boolean}\n */\n isPlaying() {\n return this.#tweenables.some(tweenable => tweenable.isPlaying())\n }\n\n /**\n * Play all {@link shifty.Tweenable}s from their beginning.\n * @method shifty.Scene#play\n * @return {shifty.Scene}\n */\n play() {\n this.#tweenables.forEach(tweenable => tweenable.tween())\n\n return this\n }\n\n /**\n * {@link shifty.Tweenable#pause} all {@link shifty.Tweenable}s in this\n * {@link shifty.Scene}.\n * @method shifty.Scene#pause\n * @return {shifty.Scene}\n */\n pause() {\n this.#tweenables.forEach(tweenable => tweenable.pause())\n return this\n }\n\n /**\n * {@link shifty.Tweenable#resume} all paused {@link shifty.Tweenable}s.\n * @method shifty.Scene#resume\n * @return {shifty.Scene}\n */\n resume() {\n this.#tweenables.forEach(tweenable => tweenable.resume())\n\n return this\n }\n\n /**\n * {@link shifty.Tweenable#stop} all {@link shifty.Tweenable}s in this {@link\n * shifty.Scene}.\n * @method shifty.Scene#stop\n * @param {boolean} [gotoEnd]\n * @return {shifty.Scene}\n */\n stop(gotoEnd) {\n this.#tweenables.forEach(tweenable => tweenable.stop(gotoEnd))\n return this\n }\n}\n","import { Tweenable } from './tweenable'\n\n/**\n * The Bezier magic in this file is adapted/copied almost wholesale from\n * [Scripty2](https://github.com/madrobby/scripty2/blob/master/src/effects/transitions/cubic-bezier.js),\n * which was adapted from Apple code (which probably came from\n * [here](http://opensource.apple.com/source/WebCore/WebCore-955.66/platform/graphics/UnitBezier.h)).\n * Special thanks to Apple and Thomas Fuchs for much of this code.\n */\n\n/**\n * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of the copyright holder(s) nor the names of any\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n// port of webkit cubic bezier handling by http://www.netzgesta.de/dev/\n\n/**\n * @param {number} t\n * @param {number} p1x\n * @param {number} p1y\n * @param {number} p2x\n * @param {number} p2y\n * @param {number} duration\n * @returns {Function}\n * @private\n */\nfunction cubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\n let ax = 0,\n bx = 0,\n cx = 0,\n ay = 0,\n by = 0,\n cy = 0\n\n const sampleCurveX = t => ((ax * t + bx) * t + cx) * t\n\n const sampleCurveY = t => ((ay * t + by) * t + cy) * t\n\n const sampleCurveDerivativeX = t => (3 * ax * t + 2 * bx) * t + cx\n\n const solveEpsilon = duration => 1 / (200 * duration)\n\n const fabs = n => (n >= 0 ? n : 0 - n)\n\n const solveCurveX = (x, epsilon) => {\n let t0, t1, t2, x2, d2, i\n\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = sampleCurveX(t2) - x\n\n if (fabs(x2) < epsilon) {\n return t2\n }\n\n d2 = sampleCurveDerivativeX(t2)\n\n if (fabs(d2) < 1e-6) {\n break\n }\n\n t2 = t2 - x2 / d2\n }\n\n t0 = 0\n t1 = 1\n t2 = x\n\n if (t2 < t0) {\n return t0\n }\n\n if (t2 > t1) {\n return t1\n }\n\n while (t0 < t1) {\n x2 = sampleCurveX(t2)\n\n if (fabs(x2 - x) < epsilon) {\n return t2\n }\n\n if (x > x2) {\n t0 = t2\n } else {\n t1 = t2\n }\n\n t2 = (t1 - t0) * 0.5 + t0\n }\n\n return t2 // Failure.\n }\n\n const solve = (x, epsilon) => sampleCurveY(solveCurveX(x, epsilon))\n\n cx = 3 * p1x\n bx = 3 * (p2x - p1x) - cx\n ax = 1 - cx - bx\n cy = 3 * p1y\n by = 3 * (p2y - p1y) - cy\n ay = 1 - cy - by\n\n return solve(t, solveEpsilon(duration))\n}\n// End ported code\n\n/**\n * GetCubicBezierTransition(x1, y1, x2, y2) -> Function.\n *\n * Generates a transition easing function that is compatible\n * with WebKit's CSS transitions `-webkit-transition-timing-function`\n * CSS property.\n *\n * The W3C has more information about CSS3 transition timing functions:\n * http://www.w3.org/TR/css3-transitions/#transition-timing-function_tag\n *\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @return {Function}\n * @private\n */\nconst getCubicBezierTransition = (x1, y1, x2, y2) => pos =>\n cubicBezierAtTime(pos, x1, y1, x2, y2, 1)\n\n/**\n * Create a Bezier easing function and attach it to {@link\n * shifty.Tweenable.formulas}. This function gives you total control over the\n * easing curve. Matthew Lein's [Ceaser](http://matthewlein.com/ceaser/) is a\n * useful tool for visualizing the curves you can make with this function.\n * @method shifty.setBezierFunction\n * @param {string} name The name of the easing curve. Overwrites the old\n * easing function on {@link shifty.Tweenable.formulas} if it exists.\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @return {shifty.easingFunction} The {@link shifty.easingFunction} that was\n * attached to {@link shifty.Tweenable.formulas}.\n */\nexport const setBezierFunction = (name, x1, y1, x2, y2) => {\n const cubicBezierTransition = getCubicBezierTransition(x1, y1, x2, y2)\n\n cubicBezierTransition.displayName = name\n cubicBezierTransition.x1 = x1\n cubicBezierTransition.y1 = y1\n cubicBezierTransition.x2 = x2\n cubicBezierTransition.y2 = y2\n\n return (Tweenable.formulas[name] = cubicBezierTransition)\n}\n\n/**\n * `delete` an easing function from {@link shifty.Tweenable.formulas}. Be\n * careful with this method, as it `delete`s whatever easing formula matches\n * `name` (which means you can delete standard Shifty easing functions).\n * @method shifty.unsetBezierFunction\n * @param {string} name The name of the easing function to delete.\n * @return {boolean} Whether or not the functions was `delete`d.\n */\nexport const unsetBezierFunction = name => delete Tweenable.formulas[name]\n","/**\n * @namespace shifty\n */\n\nimport { processTweens, Tweenable, tween } from './tweenable'\nimport * as token from './token'\n\nTweenable.filters.token = token\n\nexport { processTweens, Tweenable, tween }\nexport { interpolate } from './interpolate'\nexport { Scene } from './scene'\nexport { setBezierFunction, unsetBezierFunction } from './bezier'\n\n/**\n * @external Promise\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise}\n */\n\n/**\n * @external thenable\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then}\n */\n\n/**\n * @callback {Function} shifty.easingFunction\n * @param {number} position The normalized (0-1) position of the tween.\n * @return {number} The curve-adjusted value.\n */\n\n/**\n * @callback {Function} shifty.startFunction\n * @param {Object} state The current state of the tween.\n * @param {Object|undefined} [data] User-defined data provided via a {@link\n * shifty.tweenConfig}.\n */\n\n/**\n * @callback {Function} shifty.finishFunction\n * @param {shifty.promisedData} promisedData\n */\n\n/**\n * Gets called for every tick of the tween. This function is not called on the\n * final tick of the animation.\n * @callback {Function} shifty.renderFunction\n * @param {Object} state The current state of the tween.\n * @param {Object|undefined} [data] User-defined data provided via a {@link\n * shifty.tweenConfig}.\n * @param {number} timeElapsed The time elapsed since the start of the tween.\n */\n\n/**\n * @callback shifty.scheduleFunction\n * @param {Function} callback\n * @param {number} timeout\n */\n\n/**\n * @typedef {Object} shifty.tweenConfig\n * @property {Object} [from] Starting position. If omitted, {@link\n * shifty.Tweenable#get} is used.\n * @property {Object} [to] Ending position. The keys of this Object should\n * match those of `to`.\n * @property {number} [duration] How many milliseconds to animate for.\n * @property {number} [delay] How many milliseconds to wait before starting the\n * tween.\n * @property {shifty.startFunction} [start] Executes when the tween begins.\n * @property {shifty.finishFunction} [finish] Executes when the tween\n * completes. This will get overridden by {@link shifty.Tweenable#then} if that\n * is called, and it will not fire if {@link shifty.Tweenable#cancel} is\n * called.\n * @property {shifty.renderFunction} [render] Executes on every tick. Shifty\n * assumes a [retained mode](https://en.wikipedia.org/wiki/Retained_mode)\n * rendering environment, which in practice means that `render` only gets\n * called when the tween state changes. Importantly, this means that `render`\n * is _not_ called when a tween is not animating (for instance, when it is\n * paused or waiting to start via the `delay` option). This works naturally\n * with DOM environments, but you may need to account for this design in more\n * custom environments such as ``.\n *\n * Legacy property name: `step`.\n * @property\n * {Object.|string|shifty.easingFunction}\n * [easing] Easing curve name(s) or {@link shifty.easingFunction}(s) to apply\n * to the properties of the tween. If this is an Object, the keys should\n * correspond to `to`/`from`. You can learn more about this in the {@tutorial\n * easing-function-in-depth} tutorial.\n * @property {Object} [data] Data that is passed to {@link\n * shifty.startFunction}, {@link shifty.renderFunction}, and {@link\n * shifty.promisedData}. Legacy property name: `attachment`.\n * @property {Function} [promise] Promise constructor for when you want\n * to use Promise library or polyfill Promises in unsupported environments.\n */\n\n/**\n * @typedef {Object} shifty.promisedData\n * @property {Object} state The current state of the tween.\n * @property {Object} data The `data` Object that the tween was configured with.\n * @property {shifty.Tweenable} tweenable The {@link shifty.Tweenable} instance to\n * which the tween belonged.\n */\n\n/**\n * Is called when a tween is created to determine if a filter is needed.\n * Filters are only added to a tween when it is created so that they are not\n * unnecessarily processed if they don't apply during an update tick.\n * @callback {Function} shifty.doesApplyFilter\n * @param {shifty.Tweenable} tweenable The {@link shifty.Tweenable} instance.\n * @return {boolean}\n */\n\n/**\n * Is called when a tween is created. This should perform any setup needed by\n * subsequent per-tick calls to {@link shifty.beforeTween} and {@link\n * shifty.afterTween}.\n * @callback {Function} shifty.tweenCreatedFilter\n * @param {shifty.Tweenable} tweenable The {@link shifty.Tweenable} instance.\n */\n\n/**\n * Is called right before a tween is processed in a tick.\n * @callback {Function} shifty.beforeTweenFilter\n * @param {shifty.Tweenable} tweenable The {@link shifty.Tweenable} instance.\n */\n\n/**\n * Is called right after a tween is processed in a tick.\n * @callback {Function} shifty.afterTweenFilter\n * @param {shifty.Tweenable} tweenable The {@link shifty.Tweenable} instance.\n */\n\n/**\n * An Object that contains functions that are called at key points in a tween's\n * lifecycle. Shifty can only process `Number`s internally, but filters can\n * expand support for any type of data. This is the mechanism that powers\n * [string interpolation]{@tutorial string-interpolation}.\n * @typedef {Object} shifty.filter\n * @property {shifty.doesApplyFilter} doesApply Is called when a tween is\n * created.\n * @property {shifty.tweenCreatedFilter} tweenCreated Is called when a tween is\n * created.\n * @property {shifty.beforeTweenFilter} beforeTween Is called right before a\n * tween starts.\n * @property {shifty.afterTweenFilter} afterTween Is called right after a tween\n * ends.\n */\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(720);\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// Utility functions\n\nvar PREFIXES = 'Webkit Moz O ms'.split(' ');\nvar FLOAT_COMPARISON_EPSILON = 0.001;\n\n// Copy all attributes from source object to destination object.\n// destination object is mutated.\nfunction extend(destination, source, recursive) {\n destination = destination || {};\n source = source || {};\n recursive = recursive || false;\n\n for (var attrName in source) {\n if (source.hasOwnProperty(attrName)) {\n var destVal = destination[attrName];\n var sourceVal = source[attrName];\n if (recursive && isObject(destVal) && isObject(sourceVal)) {\n destination[attrName] = extend(destVal, sourceVal, recursive);\n } else {\n destination[attrName] = sourceVal;\n }\n }\n }\n\n return destination;\n}\n\n// Renders templates with given variables. Variables must be surrounded with\n// braces without any spaces, e.g. {variable}\n// All instances of variable placeholders will be replaced with given content\n// Example:\n// render('Hello, {message}!', {message: 'world'})\nfunction render(template, vars) {\n var rendered = template;\n\n for (var key in vars) {\n if (vars.hasOwnProperty(key)) {\n var val = vars[key];\n var regExpString = '\\\\{' + key + '\\\\}';\n var regExp = new RegExp(regExpString, 'g');\n\n rendered = rendered.replace(regExp, val);\n }\n }\n\n return rendered;\n}\n\nfunction setStyle(element, style, value) {\n var elStyle = element.style; // cache for performance\n\n for (var i = 0; i < PREFIXES.length; ++i) {\n var prefix = PREFIXES[i];\n elStyle[prefix + capitalize(style)] = value;\n }\n\n elStyle[style] = value;\n}\n\nfunction setStyles(element, styles) {\n forEachObject(styles, function(styleValue, styleName) {\n // Allow disabling some individual styles by setting them\n // to null or undefined\n if (styleValue === null || styleValue === undefined) {\n return;\n }\n\n // If style's value is {prefix: true, value: '50%'},\n // Set also browser prefixed styles\n if (isObject(styleValue) && styleValue.prefix === true) {\n setStyle(element, styleName, styleValue.value);\n } else {\n element.style[styleName] = styleValue;\n }\n });\n}\n\nfunction capitalize(text) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\n\nfunction isString(obj) {\n return typeof obj === 'string' || obj instanceof String;\n}\n\nfunction isFunction(obj) {\n return typeof obj === 'function';\n}\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\n// Returns true if `obj` is object as in {a: 1, b: 2}, not if it's function or\n// array\nfunction isObject(obj) {\n if (isArray(obj)) {\n return false;\n }\n\n var type = typeof obj;\n return type === 'object' && !!obj;\n}\n\nfunction forEachObject(object, callback) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n var val = object[key];\n callback(val, key);\n }\n }\n}\n\nfunction floatEquals(a, b) {\n return Math.abs(a - b) < FLOAT_COMPARISON_EPSILON;\n}\n\n// https://coderwall.com/p/nygghw/don-t-use-innerhtml-to-empty-dom-elements\nfunction removeChildren(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n\nmodule.exports = {\n extend: extend,\n render: render,\n setStyle: setStyle,\n setStyles: setStyles,\n capitalize: capitalize,\n isString: isString,\n isFunction: isFunction,\n isObject: isObject,\n forEachObject: forEachObject,\n floatEquals: floatEquals,\n removeChildren: removeChildren\n};\n","// Circle shaped progress bar\n\nvar Shape = require('./shape');\nvar utils = require('./utils');\n\nvar Circle = function Circle(container, options) {\n // Use two arcs to form a circle\n // See this answer http://stackoverflow.com/a/10477334/1446092\n this._pathTemplate =\n 'M 50,50 m 0,-{radius}' +\n ' a {radius},{radius} 0 1 1 0,{2radius}' +\n ' a {radius},{radius} 0 1 1 0,-{2radius}';\n\n this.containerAspectRatio = 1;\n\n Shape.apply(this, arguments);\n};\n\nCircle.prototype = new Shape();\nCircle.prototype.constructor = Circle;\n\nCircle.prototype._pathString = function _pathString(opts) {\n var widthOfWider = opts.strokeWidth;\n if (opts.trailWidth && opts.trailWidth > opts.strokeWidth) {\n widthOfWider = opts.trailWidth;\n }\n\n var r = 50 - widthOfWider / 2;\n\n return utils.render(this._pathTemplate, {\n radius: r,\n '2radius': r * 2\n });\n};\n\nCircle.prototype._trailString = function _trailString(opts) {\n return this._pathString(opts);\n};\n\nmodule.exports = Circle;\n","// Semi-SemiCircle shaped progress bar\n\nvar Shape = require('./shape');\nvar Circle = require('./circle');\nvar utils = require('./utils');\n\nvar SemiCircle = function SemiCircle(container, options) {\n // Use one arc to form a SemiCircle\n // See this answer http://stackoverflow.com/a/10477334/1446092\n this._pathTemplate =\n 'M 50,50 m -{radius},0' +\n ' a {radius},{radius} 0 1 1 {2radius},0';\n\n this.containerAspectRatio = 2;\n\n Shape.apply(this, arguments);\n};\n\nSemiCircle.prototype = new Shape();\nSemiCircle.prototype.constructor = SemiCircle;\n\nSemiCircle.prototype._initializeSvg = function _initializeSvg(svg, opts) {\n svg.setAttribute('viewBox', '0 0 100 50');\n};\n\nSemiCircle.prototype._initializeTextContainer = function _initializeTextContainer(\n opts,\n container,\n textContainer\n) {\n if (opts.text.style) {\n // Reset top style\n textContainer.style.top = 'auto';\n textContainer.style.bottom = '0';\n\n if (opts.text.alignToBottom) {\n utils.setStyle(textContainer, 'transform', 'translate(-50%, 0)');\n } else {\n utils.setStyle(textContainer, 'transform', 'translate(-50%, 50%)');\n }\n }\n};\n\n// Share functionality with Circle, just have different path\nSemiCircle.prototype._pathString = Circle.prototype._pathString;\nSemiCircle.prototype._trailString = Circle.prototype._trailString;\n\nmodule.exports = SemiCircle;\n","// Square shaped progress bar\n// Note: Square is not core part of API anymore. It's left here\n// for reference. square is not included to the progressbar\n// build anymore\n\nvar Shape = require('./shape');\nvar utils = require('./utils');\n\nvar Square = function Square(container, options) {\n this._pathTemplate =\n 'M 0,{halfOfStrokeWidth}' +\n ' L {width},{halfOfStrokeWidth}' +\n ' L {width},{width}' +\n ' L {halfOfStrokeWidth},{width}' +\n ' L {halfOfStrokeWidth},{strokeWidth}';\n\n this._trailTemplate =\n 'M {startMargin},{halfOfStrokeWidth}' +\n ' L {width},{halfOfStrokeWidth}' +\n ' L {width},{width}' +\n ' L {halfOfStrokeWidth},{width}' +\n ' L {halfOfStrokeWidth},{halfOfStrokeWidth}';\n\n Shape.apply(this, arguments);\n};\n\nSquare.prototype = new Shape();\nSquare.prototype.constructor = Square;\n\nSquare.prototype._pathString = function _pathString(opts) {\n var w = 100 - opts.strokeWidth / 2;\n\n return utils.render(this._pathTemplate, {\n width: w,\n strokeWidth: opts.strokeWidth,\n halfOfStrokeWidth: opts.strokeWidth / 2\n });\n};\n\nSquare.prototype._trailString = function _trailString(opts) {\n var w = 100 - opts.strokeWidth / 2;\n\n return utils.render(this._trailTemplate, {\n width: w,\n strokeWidth: opts.strokeWidth,\n halfOfStrokeWidth: opts.strokeWidth / 2,\n startMargin: opts.strokeWidth / 2 - opts.trailWidth / 2\n });\n};\n\nmodule.exports = Square;\n","window.addEventListener('DOMContentLoaded', () => {\n let resender = document.querySelector('.resender');\n let confirmation = document.querySelector('.confirmation');\n\n resender.querySelector('.resender__button').addEventListener('click', () => {\n resender.style.display = 'none';\n confirmation.style.display = 'block';\n\n setTimeout(() => {\n resender.style.display = 'block';\n confirmation.style.display = 'none';\n }, 10000)\n });\n});","window.addEventListener('DOMContentLoaded', () => {\n let extension = document.querySelector('.main__extension');\n let uploader = document.querySelector('.uploader');\n let field = uploader.querySelector('.uploader__field');\n let input = uploader.querySelector('.field__input');\n let dataTransfer = new DataTransfer();\n\n const createItem = (title) => {\n let item = uploader.querySelector('.list__item').cloneNode(true);\n\n item.querySelector('.item__title').innerText = title;\n item.querySelector('.item__icon--cross').addEventListener('click', () => {\n dataTransfer.items.remove(Array.from(item.parentNode.children).indexOf(item) - 1);\n input.files = dataTransfer.files;\n item.remove();\n });\n\n uploader.querySelector('.uploader__list').append(item);\n };\n\n input.addEventListener('change', (event) => {\n event.preventDefault();\n\n let files = event.target.files;\n\n for (let i = 0; i < files.length; i++) {\n if (files[i].type === 'application/pdf') {\n dataTransfer.items.add(files[i]);\n createItem(files[i].name);\n }\n }\n\n input.files = dataTransfer.files;\n\n uploader.classList.remove('uploader--invalid');\n\n if (extension) {\n extension.style.display = 'block';\n }\n });\n\n field.addEventListener('drop', (event) => {\n event.preventDefault();\n\n let files = event.dataTransfer.files;\n\n for (let i = 0; i < files.length; i++) {\n if (files[i].type === 'application/pdf') {\n dataTransfer.items.add(files[i]);\n createItem(files[i].name);\n }\n }\n\n input.files = dataTransfer.files;\n\n uploader.classList.remove('uploader--invalid');\n uploader.classList.remove('uploader--active');\n\n if (extension) {\n extension.style.display = 'block';\n }\n });\n\n field.addEventListener('dragenter', (event) => {\n event.preventDefault();\n\n uploader.classList.add('uploader--active');\n });\n\n field.addEventListener('dragover', (event) => {\n event.preventDefault();\n\n uploader.classList.add('uploader--active');\n });\n\n field.addEventListener('dragleave', (event) => {\n event.preventDefault();\n\n uploader.classList.remove('uploader--active');\n });\n});"],"names":["window","addEventListener","agreements","document","querySelector","checkbox","checkboxes","querySelectorAll","classList","contains","remove","add","checked","forEach","input","dispatchEvent","Event","required","field","parentElement","validate","isValid","value","name","test","Date","split","parseInt","setHours","picker","day","setTimeout","overlay","event","preventDefault","style","display","target","elements","type","$82f19d5b03287c89$export$2a47f398eeff8b01","step","substep","percent","text","ProgressBar","parcelRequire","navigation","subnaviagtion","circle","Circle","strokeWidth","trailWidth","color","trailColor","path","setAttribute","animate","i","module","exports","Line","SemiCircle","Square","Path","Shape","utils","$24701b76b207fa4d$var$Line","container","options","this","_pathTemplate","$ibjRT","apply","arguments","prototype","constructor","_initializeSvg","svg","opts","_pathString","$gfkok","render","center","_trailString","$d3c8aa805dbe132f$var$DESTROYED_ERROR","$d3c8aa805dbe132f$var$Shape","Error","length","_opts","extend","fill","position","left","top","padding","margin","transform","prefix","autoStyleContainer","alignToBottom","className","svgStyle","width","warnings","isObject","undefined","element","svgView","_createSvgView","isString","_container","appendChild","_warnContainerAspectRatio","setStyles","trail","newOpts","attachment","shape","_progressPath","$3t0ib","setText","progress","cb","stop","pause","_tweenable","resume","destroy","parentNode","removeChild","set","newText","_createTextContainer","removeChildren","innerHTML","createElementNS","trailPath","_createTrail","_createPath","pathString","_createPathElement","textContainer","createElement","textStyle","_initializeTextContainer","containerAspectRatio","computedStyle","getComputedStyle","parseFloat","getPropertyValue","height","floatEquals","console","warn","id","$28644e9051af6408$var$Tweenable","$hylU0","Tweenable","$28644e9051af6408$var$EASING_ALIASES","easeIn","easeOut","easeInOut","$28644e9051af6408$var$Path","delay","duration","easing","from","to","getTotalLength","strokeDasharray","offset","_getComputedDashOffset","toFixed","strokeDashoffset","_progressToOffset","isFunction","_easing","_calculateTo","_stopTween","passedOpts","defaultOpts","shiftyEasing","values","_resolveFromAndTo","getBoundingClientRect","newOffset","self","tween","state","reference","then","_calculateFrom","interpolate","hasOwnProperty","root","factory","linear","pos","easeInQuad","Math","pow","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","PI","easeOutSine","sin","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeOutBounce","easeInBack","s","easeOutBack","easeInOutBack","elastic","swingFromTo","swingFrom","swingTo","bounce","bouncePast","easeFromTo","easeFrom","easeTo","now","previousTween","nextTween","DEFAULT_EASING","global","AFTER_TWEEN","AFTER_TWEEN_END","BEFORE_TWEEN","TWEEN_CREATED","TYPE_FUNCTION","TYPE_STRING","scheduleFunction","requestAnimationFrame","webkitRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","mozCancelRequestAnimationFrame","mozRequestAnimationFrame","noop","listHead","listTail","formulas","V","easingFunctions","tweenProps","forPosition","currentState","originalState","targetState","timestamp","easedPosition","easingObjectProp","start","normalizedPosition","hasOneEase","key","call","processTween","currentTime","_timestamp","_currentState","_delay","_duration","_targetState","endTime","timeToCompute","hasEnded","hasFilters","_filters","_render","_data","_applyFilter","_originalState","processTweens","nextTweenToProcess","currentTween","_next","getCurrentTime","composeEasingObject","fromTweenParams","composedEasing","typeofEasing","L","prop","_previous","defaultPromiseCtor","Promise","t4","initialState","config","R","_config","_resolve","_reject","_start","_promiseCtor","setConfig","filterName","filter","_isPlaying","_pausedAtTime","get","_resume","promise","o","finish","c","l","data","_scheduleId","v","anyPropsAreStrings","currentProp","filters","doesApply","push","onFulfilled","onRejected","e","_promise","resolve","reject","catch","millisecond","max","gotoEnd","tweenable","setScheduleFunction","fn","scheduleUpdate","number","comma","R_NUMBER_COMPONENT","R_FORMAT_CHUNKS","R_UNFORMATTED_VALUES","R_RGB","source","RegExp","concat","R_RGB_PREFIX","R_HEX","VALUE_PLACEHOLDER","getFormatChunksFrom","rawValues","map","val","hexToDec","hex","convertHexToRGB","hexString","replace","substr","join","filterStringChunks","pattern","unfilteredString","patternMatches","match","filteredString","sanitizeObjectForHexProps","stateObject","sanitizeRGBChunk","rgbChunk","numbers","floor","getValuesFrom","formattedString","extractPropertyChunks","chunkNames","extractedValues","chunkName","getValuesList","getFormattedValues","formatString","rawValue","tweenCreated","_tokenData","chunks","signatures","propertyName","property","charAt","unshift","beforeTween","easingObject","tokenData","easingNames","defaultEasing","formatSignatures","afterTween","r","firstEasing","easingName","mockTweenable","current","zt","interpolatedValues","Scene","t12","Gt","Kt","writable","n","tweenables","Array","bind","Jt","index","indexOf","splice","some","isPlaying","setBezierFunction","x1","y1","x2","y2","cubicBezierTransition","p1x","p1y","ay","by","cy","ax","bx","cx","sampleCurveX","sampleCurveDerivativeX","fabs","t","x","epsilon","t0","t1","t2","d2","displayName","unsetBezierFunction","token","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","d","definition","Object","defineProperty","enumerable","g","globalThis","Function","obj","Symbol","toStringTag","define","amd","shifty","$bd3ddd61c5881e49$var$PREFIXES","$bd3ddd61c5881e49$var$setStyle","elStyle","$bd3ddd61c5881e49$var$capitalize","toUpperCase","slice","$bd3ddd61c5881e49$var$isObject","toString","$bd3ddd61c5881e49$var$isArray","$bd3ddd61c5881e49$var$forEachObject","object","callback","$bd3ddd61c5881e49$var$extend","destination","recursive","attrName","destVal","sourceVal","template","vars","rendered","regExp","setStyle","styles","styleValue","styleName","capitalize","String","forEachObject","a","b","abs","el","firstChild","$03799720469cebde$var$Circle","widthOfWider","radius","$658c828b6def1a08$var$SemiCircle","bottom","$iuP0Y","$c0ad288e002c676c$var$Square","_trailTemplate","w","halfOfStrokeWidth","startMargin","resender","confirmation","extension","uploader","dataTransfer","DataTransfer","createItem","title","item","cloneNode","innerText","items","children","files","append"],"version":3,"file":"script.2f7ede8c.js.map"}