{"version":3,"file":"Flip.min.js","sources":["../src/utils/matrix.js","../src/Flip.js"],"sourcesContent":["/*!\n * matrix 3.12.2\n * https://greensock.com\n *\n * Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nlet _doc, _win, _docElement, _body,\t_divContainer, _svgContainer, _identityMatrix, _gEl,\n\t_transformProp = \"transform\",\n\t_transformOriginProp = _transformProp + \"Origin\",\n\t_hasOffsetBug,\n\t_setDoc = element => {\n\t\tlet doc = element.ownerDocument || element;\n\t\tif (!(_transformProp in element.style) && \"msTransform\" in element.style) { //to improve compatibility with old Microsoft browsers\n\t\t\t_transformProp = \"msTransform\";\n\t\t\t_transformOriginProp = _transformProp + \"Origin\";\n\t\t}\n\t\twhile (doc.parentNode && (doc = doc.parentNode)) {\t}\n\t\t_win = window;\n\t\t_identityMatrix = new Matrix2D();\n\t\tif (doc) {\n\t\t\t_doc = doc;\n\t\t\t_docElement = doc.documentElement;\n\t\t\t_body = doc.body;\n\t\t\t_gEl = _doc.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n\t\t\t// prevent any existing CSS from transforming it\n\t\t\t_gEl.style.transform = \"none\";\n\t\t\t// now test for the offset reporting bug. Use feature detection instead of browser sniffing to make things more bulletproof and future-proof. Hopefully Safari will fix their bug soon but it's 2020 and it's still not fixed.\n\t\t\tlet d1 = doc.createElement(\"div\"),\n\t\t\t\td2 = doc.createElement(\"div\");\n\t\t\t_body.appendChild(d1);\n\t\t\td1.appendChild(d2);\n\t\t\td1.style.position = \"static\";\n\t\t\td1.style[_transformProp] = \"translate3d(0,0,1px)\";\n\t\t\t_hasOffsetBug = (d2.offsetParent !== d1);\n\t\t\t_body.removeChild(d1);\n\t\t}\n\t\treturn doc;\n\t},\n\t_forceNonZeroScale = e => { // walks up the element's ancestors and finds any that had their scale set to 0 via GSAP, and changes them to 0.0001 to ensure that measurements work. Firefox has a bug that causes it to incorrectly report getBoundingClientRect() when scale is 0.\n\t\tlet a, cache;\n\t\twhile (e && e !== _body) {\n\t\t\tcache = e._gsap;\n\t\t\tcache && cache.uncache && cache.get(e, \"x\"); // force re-parsing of transforms if necessary\n\t\t\tif (cache && !cache.scaleX && !cache.scaleY && cache.renderTransform) {\n\t\t\t\tcache.scaleX = cache.scaleY = 1e-4;\n\t\t\t\tcache.renderTransform(1, cache);\n\t\t\t\ta ? a.push(cache) : (a = [cache]);\n\t\t\t}\n\t\t\te = e.parentNode;\n\t\t}\n\t\treturn a;\n\t},\n\t// possible future addition: pass an element to _forceDisplay() and it'll walk up all its ancestors and make sure anything with display: none is set to display: block, and if there's no parentNode, it'll add it to the body. It returns an Array that you can then feed to _revertDisplay() to have it revert all the changes it made.\n\t// _forceDisplay = e => {\n\t// \tlet a = [],\n\t// \t\tparent;\n\t// \twhile (e && e !== _body) {\n\t// \t\tparent = e.parentNode;\n\t// \t\t(_win.getComputedStyle(e).display === \"none\" || !parent) && a.push(e, e.style.display, parent) && (e.style.display = \"block\");\n\t// \t\tparent || _body.appendChild(e);\n\t// \t\te = parent;\n\t// \t}\n\t// \treturn a;\n\t// },\n\t// _revertDisplay = a => {\n\t// \tfor (let i = 0; i < a.length; i+=3) {\n\t// \t\ta[i+1] ? (a[i].style.display = a[i+1]) : a[i].style.removeProperty(\"display\");\n\t// \t\ta[i+2] || a[i].parentNode.removeChild(a[i]);\n\t// \t}\n\t// },\n\t_svgTemps = [], //we create 3 elements for SVG, and 3 for other DOM elements and cache them for performance reasons. They get nested in _divContainer and _svgContainer so that just one element is added to the DOM on each successive attempt. Again, performance is key.\n\t_divTemps = [],\n\t_getDocScrollTop = () => _win.pageYOffset || _doc.scrollTop || _docElement.scrollTop || _body.scrollTop || 0,\n\t_getDocScrollLeft = () => _win.pageXOffset || _doc.scrollLeft || _docElement.scrollLeft || _body.scrollLeft || 0,\n\t_svgOwner = element => element.ownerSVGElement || ((element.tagName + \"\").toLowerCase() === \"svg\" ? element : null),\n\t_isFixed = element => {\n\t\tif (_win.getComputedStyle(element).position === \"fixed\") {\n\t\t\treturn true;\n\t\t}\n\t\telement = element.parentNode;\n\t\tif (element && element.nodeType === 1) { // avoid document fragments which will throw an error.\n\t\t\treturn _isFixed(element);\n\t\t}\n\t},\n\t_createSibling = (element, i) => {\n\t\tif (element.parentNode && (_doc || _setDoc(element))) {\n\t\t\tlet svg = _svgOwner(element),\n\t\t\t\tns = svg ? (svg.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\") : \"http://www.w3.org/1999/xhtml\",\n\t\t\t\ttype = svg ? (i ? \"rect\" : \"g\") : \"div\",\n\t\t\t\tx = i !== 2 ? 0 : 100,\n\t\t\t\ty = i === 3 ? 100 : 0,\n\t\t\t\tcss = \"position:absolute;display:block;pointer-events:none;margin:0;padding:0;\",\n\t\t\t\te = _doc.createElementNS ? _doc.createElementNS(ns.replace(/^https/, \"http\"), type) : _doc.createElement(type);\n\t\t\tif (i) {\n\t\t\t\tif (!svg) {\n\t\t\t\t\tif (!_divContainer) {\n\t\t\t\t\t\t_divContainer = _createSibling(element);\n\t\t\t\t\t\t_divContainer.style.cssText = css;\n\t\t\t\t\t}\n\t\t\t\t\te.style.cssText = css + \"width:0.1px;height:0.1px;top:\" + y + \"px;left:\" + x + \"px\";\n\t\t\t\t\t_divContainer.appendChild(e);\n\n\t\t\t\t} else {\n\t\t\t\t\t_svgContainer || (_svgContainer = _createSibling(element));\n\t\t\t\t\te.setAttribute(\"width\", 0.01);\n\t\t\t\t\te.setAttribute(\"height\", 0.01);\n\t\t\t\t\te.setAttribute(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n\t\t\t\t\t_svgContainer.appendChild(e);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn e;\n\t\t}\n\t\tthrow \"Need document and parent.\";\n\t},\n\t_consolidate = m => { // replaces SVGTransformList.consolidate() because a bug in Firefox causes it to break pointer events. See https://greensock.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n\t\tlet c = new Matrix2D(),\n\t\t\ti = 0;\n\t\tfor (; i < m.numberOfItems; i++) {\n\t\t\tc.multiply(m.getItem(i).matrix);\n\t\t}\n\t\treturn c;\n\t},\n\t_getCTM = svg => {\n\t\tlet m = svg.getCTM(),\n\t\t\ttransform;\n\t\tif (!m) { // Firefox returns null for getCTM() on root elements, so this is a workaround using a that we temporarily append.\n\t\t\ttransform = svg.style[_transformProp];\n\t\t\tsvg.style[_transformProp] = \"none\"; // a bug in Firefox causes css transforms to contaminate the getCTM()\n\t\t\tsvg.appendChild(_gEl);\n\t\t\tm = _gEl.getCTM();\n\t\t\tsvg.removeChild(_gEl);\n\t\t\ttransform ? (svg.style[_transformProp] = transform) : svg.style.removeProperty(_transformProp.replace(/([A-Z])/g, \"-$1\").toLowerCase());\n\t\t}\n\t\treturn m || _identityMatrix.clone(); // Firefox will still return null if the has a width/height of 0 in the browser.\n\t},\n\t_placeSiblings = (element, adjustGOffset) => {\n\t\tlet svg = _svgOwner(element),\n\t\t\tisRootSVG = element === svg,\n\t\t\tsiblings = svg ? _svgTemps : _divTemps,\n\t\t\tparent = element.parentNode,\n\t\t\tcontainer, m, b, x, y, cs;\n\t\tif (element === _win) {\n\t\t\treturn element;\n\t\t}\n\t\tsiblings.length || siblings.push(_createSibling(element, 1), _createSibling(element, 2), _createSibling(element, 3));\n\t\tcontainer = svg ? _svgContainer : _divContainer;\n\t\tif (svg) {\n\t\t\tif (isRootSVG) {\n\t\t\t\tb = _getCTM(element);\n\t\t\t\tx = -b.e / b.a;\n\t\t\t\ty = -b.f / b.d;\n\t\t\t\tm = _identityMatrix;\n\t\t\t} else if (element.getBBox) {\n\t\t\t\tb = element.getBBox();\n\t\t\t\tm = element.transform ? element.transform.baseVal : {}; // IE11 doesn't follow the spec.\n\t\t\t\tm = !m.numberOfItems ? _identityMatrix : m.numberOfItems > 1 ? _consolidate(m) : m.getItem(0).matrix; // don't call m.consolidate().matrix because a bug in Firefox makes pointer events not work when consolidate() is called on the same tick as getBoundingClientRect()! See https://greensock.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n\t\t\t\tx = m.a * b.x + m.c * b.y;\n\t\t\t\ty = m.b * b.x + m.d * b.y;\n\t\t\t} else { // may be a which has no getBBox() so just use defaults instead of throwing errors.\n\t\t\t\tm = new Matrix2D();\n\t\t\t\tx = y = 0;\n\t\t\t}\n\t\t\tif (adjustGOffset && element.tagName.toLowerCase() === \"g\") {\n\t\t\t\tx = y = 0;\n\t\t\t}\n\t\t\t(isRootSVG ? svg : parent).appendChild(container);\n\t\t\tcontainer.setAttribute(\"transform\", \"matrix(\" + m.a + \",\" + m.b + \",\" + m.c + \",\" + m.d + \",\" + (m.e + x) + \",\" + (m.f + y) + \")\");\n\t\t} else {\n\t\t\tx = y = 0;\n\t\t\tif (_hasOffsetBug) { // some browsers (like Safari) have a bug that causes them to misreport offset values. When an ancestor element has a transform applied, it's supposed to treat it as if it's position: relative (new context). Safari botches this, so we need to find the closest ancestor (between the element and its offsetParent) that has a transform applied and if one is found, grab its offsetTop/Left and subtract them to compensate.\n\t\t\t\tm = element.offsetParent;\n\t\t\t\tb = element;\n\t\t\t\twhile (b && (b = b.parentNode) && b !== m && b.parentNode) {\n\t\t\t\t\tif ((_win.getComputedStyle(b)[_transformProp] + \"\").length > 4) {\n\t\t\t\t\t\tx = b.offsetLeft;\n\t\t\t\t\t\ty = b.offsetTop;\n\t\t\t\t\t\tb = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcs = _win.getComputedStyle(element);\n\t\t\tif (cs.position !== \"absolute\" && cs.position !== \"fixed\") {\n\t\t\t\tm = element.offsetParent;\n\t\t\t\twhile (parent && parent !== m) { // if there's an ancestor element between the element and its offsetParent that's scrolled, we must factor that in.\n\t\t\t\t\tx += parent.scrollLeft || 0;\n\t\t\t\t\ty += parent.scrollTop || 0;\n\t\t\t\t\tparent = parent.parentNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tb = container.style;\n\t\t\tb.top = (element.offsetTop - y) + \"px\";\n\t\t\tb.left = (element.offsetLeft - x) + \"px\";\n\t\t\tb[_transformProp] = cs[_transformProp];\n\t\t\tb[_transformOriginProp] = cs[_transformOriginProp];\n\t\t\t// b.border = m.border;\n\t\t\t// b.borderLeftStyle = m.borderLeftStyle;\n\t\t\t// b.borderTopStyle = m.borderTopStyle;\n\t\t\t// b.borderLeftWidth = m.borderLeftWidth;\n\t\t\t// b.borderTopWidth = m.borderTopWidth;\n\t\t\tb.position = cs.position === \"fixed\" ? \"fixed\" : \"absolute\";\n\t\t\telement.parentNode.appendChild(container);\n\t\t}\n\t\treturn container;\n\t},\n\t_setMatrix = (m, a, b, c, d, e, f) => {\n\t\tm.a = a;\n\t\tm.b = b;\n\t\tm.c = c;\n\t\tm.d = d;\n\t\tm.e = e;\n\t\tm.f = f;\n\t\treturn m;\n\t};\n\nexport class Matrix2D {\n\tconstructor(a=1, b=0, c=0, d=1, e=0, f=0) {\n\t\t_setMatrix(this, a, b, c, d, e, f);\n\t}\n\n\tinverse() {\n\t\tlet {a, b, c, d, e, f} = this,\n\t\t\tdeterminant = (a * d - b * c) || 1e-10;\n\t\treturn _setMatrix(\n\t\t\tthis,\n\t\t\td / determinant,\n\t\t\t-b / determinant,\n\t\t\t-c / determinant,\n\t\t\ta / determinant,\n\t\t\t(c * f - d * e) / determinant,\n\t\t\t-(a * f - b * e) / determinant\n\t\t);\n\t}\n\n\tmultiply(matrix) {\n\t\tlet {a, b, c, d, e, f} = this,\n\t\t\ta2 = matrix.a,\n\t\t\tb2 = matrix.c,\n\t\t\tc2 = matrix.b,\n\t\t\td2 = matrix.d,\n\t\t\te2 = matrix.e,\n\t\t\tf2 = matrix.f;\n\t\treturn _setMatrix(this,\n\t\t\ta2 * a + c2 * c,\n\t\t\ta2 * b + c2 * d,\n\t\t\tb2 * a + d2 * c,\n\t\t\tb2 * b + d2 * d,\n\t\t\te + e2 * a + f2 * c,\n\t\t\tf + e2 * b + f2 * d);\n\t}\n\n\tclone() {\n\t\treturn new Matrix2D(this.a, this.b, this.c, this.d, this.e, this.f);\n\t}\n\n\tequals(matrix) {\n\t\tlet {a, b, c, d, e, f} = this;\n\t\treturn (a === matrix.a && b === matrix.b && c === matrix.c && d === matrix.d && e === matrix.e && f === matrix.f);\n\t}\n\n\tapply(point, decoratee={}) {\n\t\tlet {x, y} = point,\n\t\t\t{a, b, c, d, e, f} = this;\n\t\tdecoratee.x = (x * a + y * c + e) || 0;\n\t\tdecoratee.y = (x * b + y * d + f) || 0;\n\t\treturn decoratee;\n\t}\n\n}\n\n// Feed in an element and it'll return a 2D matrix (optionally inverted) so that you can translate between coordinate spaces.\n// Inverting lets you translate a global point into a local coordinate space. No inverting lets you go the other way.\n// We needed this to work around various browser bugs, like Firefox doesn't accurately report getScreenCTM() when there\n// are transforms applied to ancestor elements.\n// The matrix math to convert any x/y coordinate is as follows, which is wrapped in a convenient apply() method of Matrix2D above:\n// tx = m.a * x + m.c * y + m.e\n// ty = m.b * x + m.d * y + m.f\nexport function getGlobalMatrix(element, inverse, adjustGOffset, includeScrollInFixed) { // adjustGOffset is typically used only when grabbing an element's PARENT's global matrix, and it ignores the x/y offset of any SVG elements because they behave in a special way.\n\tif (!element || !element.parentNode || (_doc || _setDoc(element)).documentElement === element) {\n\t\treturn new Matrix2D();\n\t}\n\tlet zeroScales = _forceNonZeroScale(element),\n\t\tsvg = _svgOwner(element),\n\t\ttemps = svg ? _svgTemps : _divTemps,\n\t\tcontainer = _placeSiblings(element, adjustGOffset),\n\t\tb1 = temps[0].getBoundingClientRect(),\n\t\tb2 = temps[1].getBoundingClientRect(),\n\t\tb3 = temps[2].getBoundingClientRect(),\n\t\tparent = container.parentNode,\n\t\tisFixed = !includeScrollInFixed && _isFixed(element),\n\t\tm = new Matrix2D(\n\t\t\t(b2.left - b1.left) / 100,\n\t\t\t(b2.top - b1.top) / 100,\n\t\t\t(b3.left - b1.left) / 100,\n\t\t\t(b3.top - b1.top) / 100,\n\t\t\tb1.left + (isFixed ? 0 : _getDocScrollLeft()),\n\t\t\tb1.top + (isFixed ? 0 : _getDocScrollTop())\n\t\t);\n\tparent.removeChild(container);\n\tif (zeroScales) {\n\t\tb1 = zeroScales.length;\n\t\twhile (b1--) {\n\t\t\tb2 = zeroScales[b1];\n\t\t\tb2.scaleX = b2.scaleY = 0;\n\t\t\tb2.renderTransform(1, b2);\n\t\t}\n\t}\n\treturn inverse ? m.inverse() : m;\n}\n\nexport { _getDocScrollTop, _getDocScrollLeft, _setDoc, _isFixed, _getCTM };\n\n// export function getMatrix(element) {\n// \t_doc || _setDoc(element);\n// \tlet m = (_win.getComputedStyle(element)[_transformProp] + \"\").substr(7).match(/[-.]*\\d+[.e\\-+]*\\d*[e\\-\\+]*\\d*/g),\n// \t\tis2D = m && m.length === 6;\n// \treturn !m || m.length < 6 ? new Matrix2D() : new Matrix2D(+m[0], +m[1], +m[is2D ? 2 : 4], +m[is2D ? 3 : 5], +m[is2D ? 4 : 12], +m[is2D ? 5 : 13]);\n// }","/*!\n * Flip 3.12.2\n * https://greensock.com\n *\n * @license Copyright 2008-2023, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nimport { getGlobalMatrix, _getDocScrollTop, _getDocScrollLeft, Matrix2D, _setDoc, _getCTM } from \"./utils/matrix.js\";\n\nlet _id = 1,\n\t_toArray, gsap, _batch, _batchAction, _body, _closestTenth, _getStyleSaver,\n\t_forEachBatch = (batch, name) => batch.actions.forEach(a => a.vars[name] && a.vars[name](a)),\n\t_batchLookup = {},\n\t_RAD2DEG = 180 / Math.PI,\n\t_DEG2RAD = Math.PI / 180,\n\t_emptyObj = {},\n\t_dashedNameLookup = {},\n\t_memoizedRemoveProps = {},\n\t_listToArray = list => typeof(list) === \"string\" ? list.split(\" \").join(\"\").split(\",\") : list, // removes extra spaces contaminating the names, returns an Array.\n\t_callbacks = _listToArray(\"onStart,onUpdate,onComplete,onReverseComplete,onInterrupt\"),\n\t_removeProps = _listToArray(\"transform,transformOrigin,width,height,position,top,left,opacity,zIndex,maxWidth,maxHeight,minWidth,minHeight\"),\n\t_getEl = target => _toArray(target)[0] || console.warn(\"Element not found:\", target),\n\t_round = value => Math.round(value * 10000) / 10000 || 0,\n\t_toggleClass = (targets, className, action) => targets.forEach(el => el.classList[action](className)),\n\t_reserved = {zIndex:1, kill:1, simple:1, spin:1, clearProps:1, targets:1, toggleClass:1, onComplete:1, onUpdate:1, onInterrupt:1, onStart:1, delay:1, repeat:1, repeatDelay:1, yoyo:1, scale:1, fade:1, absolute:1, props:1, onEnter:1, onLeave:1, custom:1, paused:1, nested:1, prune:1, absoluteOnLeave: 1},\n\t_fitReserved = {zIndex:1, simple:1, clearProps:1, scale:1, absolute:1, fitChild:1, getVars:1, props:1},\n\t_camelToDashed = p => p.replace(/([A-Z])/g, \"-$1\").toLowerCase(),\n\t_copy = (obj, exclude) => {\n\t\tlet result = {}, p;\n\t\tfor (p in obj) {\n\t\t\texclude[p] || (result[p] = obj[p]);\n\t\t}\n\t\treturn result;\n\t},\n\t_memoizedProps = {},\n\t_memoizeProps = props => {\n\t\tlet p = _memoizedProps[props] = _listToArray(props);\n\t\t_memoizedRemoveProps[props] = p.concat(_removeProps);\n\t\treturn p;\n\t},\n\t_getInverseGlobalMatrix = el => { // integrates caching for improved performance\n\t\tlet cache = el._gsap || gsap.core.getCache(el);\n\t\tif (cache.gmCache === gsap.ticker.frame) {\n\t\t\treturn cache.gMatrix;\n\t\t}\n\t\tcache.gmCache = gsap.ticker.frame;\n\t\treturn (cache.gMatrix = getGlobalMatrix(el, true, false, true));\n\t},\n\t_getDOMDepth = (el, invert, level = 0) => { // In invert is true, the sibling depth is increments of 1, and parent/nesting depth is increments of 1000. This lets us order elements in an Array to reflect document flow.\n\t\tlet parent = el.parentNode,\n\t\t\tinc = 1000 * (10 ** level) * (invert ? -1 : 1),\n\t\t\tl = invert ? -inc * 900 : 0;\n\t\twhile (el) {\n\t\t\tl += inc;\n\t\t\tel = el.previousSibling;\n\t\t}\n\t\treturn parent ? l + _getDOMDepth(parent, invert, level + 1) : l;\n\t},\n\t_orderByDOMDepth = (comps, invert, isElStates) => {\n\t\tcomps.forEach(comp => comp.d = _getDOMDepth(isElStates ? comp.element : comp.t, invert));\n\t\tcomps.sort((c1, c2) => c1.d - c2.d);\n\t\treturn comps;\n\t},\n\t_recordInlineStyles = (elState, props) => { // records the current inline CSS properties into an Array in alternating name/value pairs that's stored in a \"css\" property on the state object so that we can revert later.\n\t\tlet style = elState.element.style,\n\t\t\ta = elState.css = elState.css || [],\n\t\t\ti = props.length,\n\t\t\tp, v;\n\t\twhile (i--) {\n\t\t\tp = props[i];\n\t\t\tv = style[p] || style.getPropertyValue(p);\n\t\t\ta.push(v ? p : _dashedNameLookup[p] || (_dashedNameLookup[p] = _camelToDashed(p)), v);\n\t\t}\n\t\treturn style;\n\t},\n\t_applyInlineStyles = state => {\n\t\tlet css = state.css,\n\t\t\tstyle = state.element.style,\n\t\t\ti = 0;\n\t\tstate.cache.uncache = 1;\n\t\tfor (; i < css.length; i+=2) {\n\t\t\tcss[i+1] ? (style[css[i]] = css[i+1]) : style.removeProperty(css[i]);\n\t\t}\n\t\tif (!css[css.indexOf(\"transform\")+1] && style.translate) { // CSSPlugin adds scale, translate, and rotate inline CSS as \"none\" in order to keep CSS rules from contaminating transforms.\n\t\t\tstyle.removeProperty(\"translate\");\n\t\t\tstyle.removeProperty(\"scale\");\n\t\t\tstyle.removeProperty(\"rotate\");\n\t\t}\n\t},\n\t_setFinalStates = (comps, onlyTransforms) => {\n\t\tcomps.forEach(c => c.a.cache.uncache = 1);\n\t\tonlyTransforms || comps.finalStates.forEach(_applyInlineStyles);\n\t},\n\t_absoluteProps = \"paddingTop,paddingRight,paddingBottom,paddingLeft,gridArea,transition\".split(\",\"), // properties that we must record just\n\t_makeAbsolute = (elState, fallbackNode, ignoreBatch) => {\n\t\tlet { element, width, height, uncache, getProp } = elState,\n\t\t\tstyle = element.style,\n\t\t\ti = 4,\n\t\t\tresult, displayIsNone, cs;\n\t\t(typeof(fallbackNode) !== \"object\") && (fallbackNode = elState);\n\t\tif (_batch && ignoreBatch !== 1) {\n\t\t\t_batch._abs.push({t: element, b: elState, a: elState, sd: 0});\n\t\t\t_batch._final.push(() => (elState.cache.uncache = 1) && _applyInlineStyles(elState));\n\t\t\treturn element;\n\t\t}\n\t\tdisplayIsNone = getProp(\"display\") === \"none\";\n\n\t\tif (!elState.isVisible || displayIsNone) {\n\t\t\tdisplayIsNone && (_recordInlineStyles(elState, [\"display\"]).display = fallbackNode.display);\n\t\t\telState.matrix = fallbackNode.matrix;\n\t\t\telState.width = width = elState.width || fallbackNode.width;\n\t\t\telState.height = height = elState.height || fallbackNode.height;\n\t\t}\n\n\t\t_recordInlineStyles(elState, _absoluteProps);\n\t\tcs = window.getComputedStyle(element);\n\t\twhile (i--) {\n\t\t\tstyle[_absoluteProps[i]] = cs[_absoluteProps[i]]; // record paddings as px-based because if removed from grid, percentage-based ones could be altered.\n\t\t}\n\t\tstyle.gridArea = \"1 / 1 / 1 / 1\";\n\t\tstyle.transition = \"none\";\n\n\t\tstyle.position = \"absolute\";\n\t\tstyle.width = width + \"px\";\n\t\tstyle.height = height + \"px\";\n\t\tstyle.top || (style.top = \"0px\");\n\t\tstyle.left || (style.left = \"0px\");\n\t\tif (uncache) {\n\t\t\tresult = new ElementState(element);\n\t\t} else { // better performance\n\t\t\tresult = _copy(elState, _emptyObj);\n\t\t\tresult.position = \"absolute\";\n\t\t\tif (elState.simple) {\n\t\t\t\tlet bounds = element.getBoundingClientRect();\n\t\t\t\tresult.matrix = new Matrix2D(1, 0, 0, 1, bounds.left + _getDocScrollLeft(), bounds.top + _getDocScrollTop());\n\t\t\t} else {\n\t\t\t\tresult.matrix = getGlobalMatrix(element, false, false, true);\n\t\t\t}\n\t\t}\n\t\tresult = _fit(result, elState, true);\n\t\telState.x = _closestTenth(result.x, 0.01);\n\t\telState.y = _closestTenth(result.y, 0.01);\n\t\treturn element;\n\t},\n\t_filterComps = (comps, targets) => {\n\t\tif (targets !== true) {\n\t\t\ttargets = _toArray(targets);\n\t\t\tcomps = comps.filter(c => {\n\t\t\t\tif (targets.indexOf((c.sd < 0 ? c.b : c.a).element) !== -1) {\n\t\t\t\t return true;\n\t\t\t\t} else {\n\t\t\t\t\tc.t._gsap.renderTransform(1); // we must force transforms to render on anything that isn't being made position: absolute, otherwise the absolute position happens and then when animation begins it applies transforms which can create a new stacking context, throwing off positioning!\n\t\t\t\t\tif (c.b.isVisible) {\n\t\t\t\t\t\tc.t.style.width = c.b.width + \"px\"; // otherwise things can collapse when contents are made position: absolute.\n\t\t\t\t\t\tc.t.style.height = c.b.height + \"px\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn comps;\n\t},\n\t_makeCompsAbsolute = comps => _orderByDOMDepth(comps, true).forEach(c => (c.a.isVisible || c.b.isVisible) && _makeAbsolute(c.sd < 0 ? c.b : c.a, c.b, 1)),\n\t_findElStateInState = (state, other) => (other && state.idLookup[_parseElementState(other).id]) || state.elementStates[0],\n\t_parseElementState = (elOrNode, props, simple, other) => elOrNode instanceof ElementState ? elOrNode : elOrNode instanceof FlipState ? _findElStateInState(elOrNode, other) : new ElementState(typeof(elOrNode) === \"string\" ? _getEl(elOrNode) || console.warn(elOrNode + \" not found\") : elOrNode, props, simple),\n\t_recordProps = (elState, props) => {\n\t\tlet getProp = gsap.getProperty(elState.element, null, \"native\"),\n\t\t\tobj = elState.props = {},\n\t\t\ti = props.length;\n\t\twhile (i--) {\n\t\t\tobj[props[i]] = (getProp(props[i]) + \"\").trim();\n\t\t}\n\t\tobj.zIndex && (obj.zIndex = parseFloat(obj.zIndex) || 0);\n\t\treturn elState;\n\t},\n\t_applyProps = (element, props) => {\n\t\tlet style = element.style || element, // could pass in a vars object.\n\t\t\tp;\n\t\tfor (p in props) {\n\t\t\tstyle[p] = props[p];\n\t\t}\n\t},\n\t_getID = el => {\n\t\tlet id = el.getAttribute(\"data-flip-id\");\n\t\tid || el.setAttribute(\"data-flip-id\", (id = \"auto-\" + _id++));\n\t\treturn id;\n\t},\n\t_elementsFromElementStates = elStates => elStates.map(elState => elState.element),\n\t_handleCallback = (callback, elStates, tl) => callback && elStates.length && tl.add(callback(_elementsFromElementStates(elStates), tl, new FlipState(elStates, 0, true)), 0),\n\n\t_fit = (fromState, toState, scale, applyProps, fitChild, vars) => {\n\t\tlet { element, cache, parent, x, y } = fromState,\n\t\t\t{ width, height, scaleX, scaleY, rotation, bounds } = toState,\n\t\t\tstyles = vars && _getStyleSaver && _getStyleSaver(element, \"transform\"), // requires at least 3.11.5\n\t\t\tdimensionState = fromState,\n\t\t\t{e, f} = toState.matrix,\n\t\t\tdeep = fromState.bounds.width !== bounds.width || fromState.bounds.height !== bounds.height || fromState.scaleX !== scaleX || fromState.scaleY !== scaleY || fromState.rotation !== rotation,\n\t\t\tsimple = !deep && fromState.simple && toState.simple && !fitChild,\n\t\t\tskewX, fromPoint, toPoint, getProp, parentMatrix, matrix, bbox;\n\t\tif (simple || !parent) {\n\t\t\tscaleX = scaleY = 1;\n\t\t\trotation = skewX = 0;\n\t\t} else {\n\t\t\tparentMatrix = _getInverseGlobalMatrix(parent);\n\t\t\tmatrix = parentMatrix.clone().multiply(toState.ctm ? toState.matrix.clone().multiply(toState.ctm) : toState.matrix); // root SVG elements have a ctm that we must factor out (for example, viewBox:\"0 0 94 94\" with a width of 200px would scale the internals by 2.127 but when we're matching the size of the root element itself, that scaling shouldn't factor in!)\n\t\t\trotation = _round(Math.atan2(matrix.b, matrix.a) * _RAD2DEG);\n\t\t\tskewX = _round(Math.atan2(matrix.c, matrix.d) * _RAD2DEG + rotation) % 360; // in very rare cases, minor rounding might end up with 360 which should be 0.\n\t\t\tscaleX = Math.sqrt(matrix.a ** 2 + matrix.b ** 2);\n\t\t\tscaleY = Math.sqrt(matrix.c ** 2 + matrix.d ** 2) * Math.cos(skewX * _DEG2RAD);\n\t\t\tif (fitChild) {\n\t\t\t\tfitChild = _toArray(fitChild)[0];\n\t\t\t\tgetProp = gsap.getProperty(fitChild);\n\t\t\t\tbbox = fitChild.getBBox && typeof(fitChild.getBBox) === \"function\" && fitChild.getBBox();\n\t\t\t\tdimensionState = {scaleX: getProp(\"scaleX\"), scaleY: getProp(\"scaleY\"), width: bbox ? bbox.width : Math.ceil(parseFloat(getProp(\"width\", \"px\"))), height: bbox ? bbox.height : parseFloat(getProp(\"height\", \"px\")) };\n\t\t\t}\n\t\t\tcache.rotation = rotation + \"deg\";\n\t\t\tcache.skewX = skewX + \"deg\";\n\t\t}\n\t\tif (scale) {\n\t\t\tscaleX *= width === dimensionState.width || !dimensionState.width ? 1 : width / dimensionState.width; // note if widths are both 0, we should make scaleX 1 - some elements have box-sizing that incorporates padding, etc. and we don't want it to collapse in that case.\n\t\t\tscaleY *= height === dimensionState.height || !dimensionState.height ? 1 : height / dimensionState.height;\n\t\t\tcache.scaleX = scaleX;\n\t\t\tcache.scaleY = scaleY;\n\t\t} else {\n\t\t\twidth = _closestTenth(width * scaleX / dimensionState.scaleX, 0);\n\t\t\theight = _closestTenth(height * scaleY / dimensionState.scaleY, 0);\n\t\t\telement.style.width = width + \"px\";\n\t\t\telement.style.height = height + \"px\";\n\t\t}\n\t\t// if (fromState.isFixed) { // commented out because it's now taken care of in getGlobalMatrix() with a flag at the end.\n\t\t// \te -= _getDocScrollLeft();\n\t\t// \tf -= _getDocScrollTop();\n\t\t// }\n\t\tapplyProps && _applyProps(element, toState.props);\n\t\tif (simple || !parent) {\n\t\t\tx += e - fromState.matrix.e;\n\t\t\ty += f - fromState.matrix.f;\n\t\t} else if (deep || parent !== toState.parent) {\n\t\t\tcache.renderTransform(1, cache);\n\t\t\tmatrix = getGlobalMatrix(fitChild || element, false, false, true);\n\t\t\tfromPoint = parentMatrix.apply({x: matrix.e, y: matrix.f});\n\t\t\ttoPoint = parentMatrix.apply({x: e, y: f});\n\t\t\tx += toPoint.x - fromPoint.x;\n\t\t\ty += toPoint.y - fromPoint.y;\n\t\t} else { // use a faster/cheaper algorithm if we're just moving x/y\n\t\t\tparentMatrix.e = parentMatrix.f = 0;\n\t\t\ttoPoint = parentMatrix.apply({x: e - fromState.matrix.e, y: f - fromState.matrix.f});\n\t\t\tx += toPoint.x;\n\t\t\ty += toPoint.y;\n\t\t}\n\t\tx = _closestTenth(x, 0.02);\n\t\ty = _closestTenth(y, 0.02);\n\t\tif (vars && !(vars instanceof ElementState)) { // revert\n\t\t\tstyles && styles.revert();\n\t\t} else { // or apply the transform immediately\n\t\t\tcache.x = x + \"px\";\n\t\t\tcache.y = y + \"px\";\n\t\t\tcache.renderTransform(1, cache);\n\t\t}\n\t\tif (vars) {\n\t\t\tvars.x = x;\n\t\t\tvars.y = y;\n\t\t\tvars.rotation = rotation;\n\t\t\tvars.skewX = skewX;\n\t\t\tif (scale) {\n\t\t\t\tvars.scaleX = scaleX;\n\t\t\t\tvars.scaleY = scaleY;\n\t\t\t} else {\n\t\t\t\tvars.width = width;\n\t\t\t\tvars.height = height;\n\t\t\t}\n\t\t}\n\t\treturn vars || cache;\n\t},\n\n\t_parseState = (targetsOrState, vars) => targetsOrState instanceof FlipState ? targetsOrState : new FlipState(targetsOrState, vars),\n\t_getChangingElState = (toState, fromState, id) => {\n\t\tlet to1 = toState.idLookup[id],\n\t\t\tto2 = toState.alt[id];\n\t\treturn to2.isVisible && (!(fromState.getElementState(to2.element) || to2).isVisible || !to1.isVisible) ? to2 : to1;\n\t},\n\t_bodyMetrics = [], _bodyProps = \"width,height,overflowX,overflowY\".split(\",\"), _bodyLocked,\n\t_lockBodyScroll = lock => { // if there's no scrollbar, we should lock that so that measurements don't get affected by temporary repositioning, like if something is centered in the window.\n\t\tif (lock !== _bodyLocked) {\n\t\t\tlet s = _body.style,\n\t\t\t\tw = _body.clientWidth === window.outerWidth,\n\t\t\t\th = _body.clientHeight === window.outerHeight,\n\t\t\t\ti = 4;\n\t\t\tif (lock && (w || h)) {\n\t\t\t\twhile (i--) {\n\t\t\t\t\t_bodyMetrics[i] = s[_bodyProps[i]];\n\t\t\t\t}\n\t\t\t\tif (w) {\n\t\t\t\t\ts.width = _body.clientWidth + \"px\";\n\t\t\t\t\ts.overflowY = \"hidden\";\n\t\t\t\t}\n\t\t\t\tif (h) {\n\t\t\t\t\ts.height = _body.clientHeight + \"px\";\n\t\t\t\t\ts.overflowX = \"hidden\";\n\t\t\t\t}\n\t\t\t\t_bodyLocked= lock;\n\t\t\t} else if (_bodyLocked) {\n\t\t\t\twhile (i--) {\n\t\t\t\t\t_bodyMetrics[i] ? (s[_bodyProps[i]] = _bodyMetrics[i]) : s.removeProperty(_camelToDashed(_bodyProps[i]));\n\t\t\t\t}\n\t\t\t\t_bodyLocked = lock;\n\t\t\t}\n\t\t}\n\t},\n\n\t_fromTo = (fromState, toState, vars, relative) => { // relative is -1 if \"from()\", and 1 if \"to()\"\n\t\t(fromState instanceof FlipState && toState instanceof FlipState) || console.warn(\"Not a valid state object.\");\n\t\tvars = vars || {};\n\t\tlet { clearProps, onEnter, onLeave, absolute, absoluteOnLeave, custom, delay, paused, repeat, repeatDelay, yoyo, toggleClass, nested, zIndex, scale, fade, stagger, spin, prune } = vars,\n\t\t\tprops = (\"props\" in vars ? vars : fromState).props,\n\t\t\ttweenVars = _copy(vars, _reserved),\n\t\t\tanimation = gsap.timeline({ delay, paused, repeat, repeatDelay, yoyo, data: \"isFlip\" }),\n\t\t\tremainingProps = tweenVars,\n\t\t\tentering = [],\n\t\t\tleaving = [],\n\t\t\tcomps = [],\n\t\t\tswapOutTargets = [],\n\t\t\tspinNum = spin === true ? 1 : spin || 0,\n\t\t\tspinFunc = typeof(spin) === \"function\" ? spin : () => spinNum,\n\t\t\tinterrupted = fromState.interrupted || toState.interrupted,\n\t\t\taddFunc = animation[relative !== 1 ? \"to\" : \"from\"],\n\t\t\tv, p, endTime, i, el, comp, state, targets, finalStates, fromNode, toNode, run, a, b;\n\t\t//relative || (toState = (new FlipState(toState.targets, {props: props})).fit(toState, scale));\n\t\tfor (p in toState.idLookup) {\n\t\t\ttoNode = !toState.alt[p] ? toState.idLookup[p] : _getChangingElState(toState, fromState, p);\n\t\t\tel = toNode.element;\n\t\t\tfromNode = fromState.idLookup[p];\n\t\t\tfromState.alt[p] && el === fromNode.element && (fromState.alt[p].isVisible || !toNode.isVisible) && (fromNode = fromState.alt[p]);\n\t\t\tif (fromNode) {\n\t\t\t\tcomp = {t: el, b: fromNode, a: toNode, sd: fromNode.element === el ? 0 : toNode.isVisible ? 1 : -1};\n\t\t\t\tcomps.push(comp);\n\t\t\t\tif (comp.sd) {\n\t\t\t\t\tif (comp.sd < 0) {\n\t\t\t\t\t\tcomp.b = toNode;\n\t\t\t\t\t\tcomp.a = fromNode;\n\t\t\t\t\t}\n\t\t\t\t\t// for swapping elements that got interrupted, we must re-record the inline styles to ensure they're not tainted. Remember, .batch() permits getState() not to force in-progress flips to their end state.\n\t\t\t\t\tinterrupted && _recordInlineStyles(comp.b, props ? _memoizedRemoveProps[props] : _removeProps);\n\t\t\t\t\tfade && comps.push(comp.swap = {t: fromNode.element, b: comp.b, a: comp.a, sd: -comp.sd, swap: comp});\n\t\t\t\t}\n\t\t\t\tel._flip = fromNode.element._flip = _batch ? _batch.timeline : animation;\n\t\t\t} else if (toNode.isVisible) {\n\t\t\t\tcomps.push({t: el, b: _copy(toNode, {isVisible:1}), a: toNode, sd: 0, entering: 1}); // to include it in the \"entering\" Array and do absolute positioning if necessary\n\t\t\t\tel._flip = _batch ? _batch.timeline : animation;\n\t\t\t}\n\t\t}\n\n\t\tprops && (_memoizedProps[props] || _memoizeProps(props)).forEach(p => tweenVars[p] = i => comps[i].a.props[p]);\n\t\tcomps.finalStates = finalStates = [];\n\n\t\trun = () => {\n\t\t\t_orderByDOMDepth(comps);\n\t\t\t_lockBodyScroll(true); // otherwise, measurements may get thrown off when things get fit.\n\t\t\t// TODO: cache the matrix, especially for parent because it'll probably get reused quite a bit, but lock it to a particular cycle(?).\n\t\t\tfor (i = 0; i < comps.length; i++) {\n\t\t\t\tcomp = comps[i];\n\t\t\t\ta = comp.a;\n\t\t\t\tb = comp.b;\n\t\t\t\tif (prune && !a.isDifferent(b) && !comp.entering) { // only flip if things changed! Don't omit it from comps initially because that'd prevent the element from being positioned absolutely (if necessary)\n\t\t\t\t\tcomps.splice(i--, 1);\n\t\t\t\t} else {\n\t\t\t\t\tel = comp.t;\n\t\t\t\t\tnested && !(comp.sd < 0) && i && (a.matrix = getGlobalMatrix(el, false, false, true)); // moving a parent affects the position of children\n\t\t\t\t\tif (b.isVisible && a.isVisible) {\n\t\t\t\t\t\tif (comp.sd < 0) { // swapping OUT (swap direction of -1 is out)\n\t\t\t\t\t\t\tstate = new ElementState(el, props, fromState.simple);\n\t\t\t\t\t\t\t_fit(state, a, scale, 0, 0, state);\n\t\t\t\t\t\t\tstate.matrix = getGlobalMatrix(el, false, false, true);\n\t\t\t\t\t\t\tstate.css = comp.b.css;\n\t\t\t\t\t\t\tcomp.a = a = state;\n\t\t\t\t\t\t\tfade && (el.style.opacity = interrupted ? b.opacity : a.opacity);\n\t\t\t\t\t\t\tstagger && swapOutTargets.push(el);\n\t\t\t\t\t\t} else if (comp.sd > 0 && fade) { // swapping IN (swap direction of 1 is in)\n\t\t\t\t\t\t\tel.style.opacity = interrupted ? a.opacity - b.opacity : \"0\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_fit(a, b, scale, props);\n\n\t\t\t\t\t} else if (b.isVisible !== a.isVisible) { // either entering or leaving (one side is invisible)\n\t\t\t\t\t\tif (!b.isVisible) { // entering\n\t\t\t\t\t\t\ta.isVisible && entering.push(a);\n\t\t\t\t\t\t\tcomps.splice(i--, 1);\n\t\t\t\t\t\t} else if (!a.isVisible) { // leaving\n\t\t\t\t\t\t\tb.css = a.css;\n\t\t\t\t\t\t\tleaving.push(b);\n\t\t\t\t\t\t\tcomps.splice(i--, 1);\n\t\t\t\t\t\t\tabsolute && nested && _fit(a, b, scale, props);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!scale) {\n\t\t\t\t\t\tel.style.maxWidth = Math.max(a.width, b.width) + \"px\";\n\t\t\t\t\t\tel.style.maxHeight = Math.max(a.height, b.height) + \"px\";\n\t\t\t\t\t\tel.style.minWidth = Math.min(a.width, b.width) + \"px\";\n\t\t\t\t\t\tel.style.minHeight = Math.min(a.height, b.height) + \"px\";\n\t\t\t\t\t}\n\t\t\t\t\tnested && toggleClass && el.classList.add(toggleClass);\n\t\t\t\t}\n\t\t\t\tfinalStates.push(a);\n\t\t\t}\n\t\t\tlet classTargets;\n\t\t\tif (toggleClass) {\n\t\t\t\tclassTargets = finalStates.map(s => s.element);\n\t\t\t\tnested && classTargets.forEach(e => e.classList.remove(toggleClass)); // there could be a delay, so don't leave the classes applied (we'll do it in a timeline callback)\n\t\t\t}\n\n\t\t\t_lockBodyScroll(false);\n\n\t\t\tif (scale) {\n\t\t\t\ttweenVars.scaleX = i => comps[i].a.scaleX;\n\t\t\t\ttweenVars.scaleY = i => comps[i].a.scaleY;\n\t\t\t} else {\n\t\t\t\ttweenVars.width = i => comps[i].a.width + \"px\";\n\t\t\t\ttweenVars.height = i => comps[i].a.height + \"px\";\n\t\t\t\ttweenVars.autoRound = vars.autoRound || false;\n\t\t\t}\n\t\t\ttweenVars.x = i => comps[i].a.x + \"px\";\n\t\t\ttweenVars.y = i => comps[i].a.y + \"px\";\n\t\t\ttweenVars.rotation = i => comps[i].a.rotation + (spin ? spinFunc(i, targets[i], targets) * 360 : 0);\n\t\t\ttweenVars.skewX = i => comps[i].a.skewX;\n\n\t\t\ttargets = comps.map(c => c.t);\n\n\t\t\tif (zIndex || zIndex === 0) {\n\t\t\t\ttweenVars.modifiers = {zIndex: () => zIndex};\n\t\t\t\ttweenVars.zIndex = zIndex;\n\t\t\t\ttweenVars.immediateRender = vars.immediateRender !== false;\n\t\t\t}\n\n\t\t\tfade && (tweenVars.opacity = i => comps[i].sd < 0 ? 0 : comps[i].sd > 0 ? comps[i].a.opacity : \"+=0\");\n\n\t\t\tif (swapOutTargets.length) {\n\t\t\t\tstagger = gsap.utils.distribute(stagger);\n\t\t\t\tlet dummyArray = targets.slice(swapOutTargets.length);\n\t\t\t\ttweenVars.stagger = (i, el) => stagger(~swapOutTargets.indexOf(el) ? targets.indexOf(comps[i].swap.t) : i, el, dummyArray);\n\t\t\t}\n\n\t\t\t// // for testing...\n\t\t\t// gsap.delayedCall(vars.data ? 50 : 1, function() {\n\t\t\t// \tanimation.eventCallback(\"onComplete\", () => _setFinalStates(comps, !clearProps));\n\t\t\t// \taddFunc.call(animation, targets, tweenVars, 0).play();\n\t\t\t// });\n\t\t\t// return;\n\n\t\t\t_callbacks.forEach(name => vars[name] && animation.eventCallback(name, vars[name], vars[name + \"Params\"])); // apply callbacks to the timeline, not tweens (because \"custom\" timing can make multiple tweens)\n\n\t\t\tif (custom && targets.length) { // bust out the custom properties as their own tweens so they can use different eases, durations, etc.\n\t\t\t\tremainingProps = _copy(tweenVars, _reserved);\n\t\t\t\tif (\"scale\" in custom) {\n\t\t\t\t\tcustom.scaleX = custom.scaleY = custom.scale;\n\t\t\t\t\tdelete custom.scale;\n\t\t\t\t}\n\t\t\t\tfor (p in custom) {\n\t\t\t\t\tv = _copy(custom[p], _fitReserved);\n\t\t\t\t\tv[p] = tweenVars[p];\n\t\t\t\t\t!(\"duration\" in v) && (\"duration\" in tweenVars) && (v.duration = tweenVars.duration);\n\t\t\t\t\tv.stagger = tweenVars.stagger;\n\t\t\t\t\taddFunc.call(animation, targets, v, 0);\n\t\t\t\t\tdelete remainingProps[p];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (targets.length || leaving.length || entering.length) {\n\t\t\t\ttoggleClass && animation.add(() => _toggleClass(classTargets, toggleClass, animation._zTime < 0 ? \"remove\" : \"add\"), 0) && !paused && _toggleClass(classTargets, toggleClass, \"add\");\n\t\t\t\ttargets.length && addFunc.call(animation, targets, remainingProps, 0);\n\t\t\t}\n\n\t\t\t_handleCallback(onEnter, entering, animation);\n\t\t\t_handleCallback(onLeave, leaving, animation);\n\n\t\t\tlet batchTl = _batch && _batch.timeline;\n\n\t\t\tif (batchTl) {\n\t\t\t\tbatchTl.add(animation, 0);\n\t\t\t\t_batch._final.push(() => _setFinalStates(comps, !clearProps));\n\t\t\t}\n\n\t\t\tendTime = animation.duration();\n\t\t\tanimation.call(() => {\n\t\t\t\tlet forward = animation.time() >= endTime;\n\t\t\t\tforward && !batchTl && _setFinalStates(comps, !clearProps);\n\t\t\t\ttoggleClass && _toggleClass(classTargets, toggleClass, forward ? \"remove\" : \"add\");\n\t\t\t});\n\t\t};\n\n\t\tabsoluteOnLeave && (absolute = comps.filter(comp => !comp.sd && !comp.a.isVisible && comp.b.isVisible).map(comp => comp.a.element));\n\t\tif (_batch) {\n\t\t\tabsolute && _batch._abs.push(..._filterComps(comps, absolute));\n\t\t\t_batch._run.push(run);\n\t\t} else {\n\t\t\tabsolute && _makeCompsAbsolute(_filterComps(comps, absolute)); // when making absolute, we must go in a very particular order so that document flow changes don't affect things. Don't make it visible if both the before and after states are invisible! There's no point, and it could make things appear visible during the flip that shouldn't be.\n\t\t\trun();\n\t\t}\n\n\t\tlet anim = _batch ? _batch.timeline : animation;\n\t\tanim.revert = () => _killFlip(anim, 1, 1); // a Flip timeline should behave very different when reverting - it should actually jump to the end so that styles get cleared out.\n\n\t\treturn anim;\n\t},\n\t_interrupt = tl => {\n\t\ttl.vars.onInterrupt && tl.vars.onInterrupt.apply(tl, tl.vars.onInterruptParams || []);\n\t\ttl.getChildren(true, false, true).forEach(_interrupt);\n\t},\n\t_killFlip = (tl, action, force) => { // action: 0 = nothing, 1 = complete, 2 = only kill (don't complete)\n\t\tif (tl && tl.progress() < 1 && (!tl.paused() || force)) {\n\t\t\tif (action) {\n\t\t\t\t_interrupt(tl);\n\t\t\t\taction < 2 && tl.progress(1); // we should also kill it in case it was added to a parent timeline.\n\t\t\t\ttl.kill();\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t},\n\t_createLookup = state => {\n\t\tlet lookup = state.idLookup = {},\n\t\t\talt = state.alt = {},\n\t\t\telStates = state.elementStates,\n\t\t\ti = elStates.length,\n\t\t\telState;\n\t\twhile (i--) {\n\t\t\telState = elStates[i];\n\t\t\tlookup[elState.id] ? (alt[elState.id] = elState) : (lookup[elState.id] = elState);\n\t\t}\n\t};\n\n\n\n\n\n\nclass FlipState {\n\n\tconstructor(targets, vars, targetsAreElementStates) {\n\t\tthis.props = vars && vars.props;\n\t\tthis.simple = !!(vars && vars.simple);\n\t\tif (targetsAreElementStates) {\n\t\t\tthis.targets = _elementsFromElementStates(targets);\n\t\t\tthis.elementStates = targets;\n\t\t\t_createLookup(this);\n\t\t} else {\n\t\t\tthis.targets = _toArray(targets);\n\t\t\tlet soft = vars && (vars.kill === false || (vars.batch && !vars.kill));\n\t\t\t_batch && !soft && _batch._kill.push(this);\n\t\t\tthis.update(soft || !!_batch); // when batching, don't force in-progress flips to their end; we need to do that AFTER all getStates() are called.\n\t\t}\n\t}\n\n\tupdate(soft) {\n\t\tthis.elementStates = this.targets.map(el => new ElementState(el, this.props, this.simple));\n\t\t_createLookup(this);\n\t\tthis.interrupt(soft);\n\t\tthis.recordInlineStyles();\n\t\treturn this;\n\t}\n\n\tclear() {\n\t\tthis.targets.length = this.elementStates.length = 0;\n\t\t_createLookup(this);\n\t\treturn this;\n\t}\n\n\tfit(state, scale, nested) {\n\t\tlet elStatesInOrder = _orderByDOMDepth(this.elementStates.slice(0), false, true),\n\t\t\ttoElStates = (state || this).idLookup,\n\t\t\ti = 0,\n\t\t\tfromNode, toNode;\n\t\tfor (; i < elStatesInOrder.length; i++) {\n\t\t\tfromNode = elStatesInOrder[i];\n\t\t\tnested && (fromNode.matrix = getGlobalMatrix(fromNode.element, false, false, true)); // moving a parent affects the position of children\n\t\t\ttoNode = toElStates[fromNode.id];\n\t\t\ttoNode && _fit(fromNode, toNode, scale, true, 0, fromNode);\n\t\t\tfromNode.matrix = getGlobalMatrix(fromNode.element, false, false, true);\n\t\t}\n\t\treturn this;\n\t}\n\n\tgetProperty(element, property) {\n\t\tlet es = this.getElementState(element) || _emptyObj;\n\t\treturn (property in es ? es : es.props || _emptyObj)[property];\n\t}\n\n\tadd(state) {\n\t\tlet i = state.targets.length,\n\t\t\tlookup = this.idLookup,\n\t\t\talt = this.alt,\n\t\t\tindex, es, es2;\n\t\twhile (i--) {\n\t\t\tes = state.elementStates[i];\n\t\t\tes2 = lookup[es.id];\n\t\t\tif (es2 && (es.element === es2.element || (alt[es.id] && alt[es.id].element === es.element))) { // if the flip id is already in this FlipState, replace it!\n\t\t\t\tindex = this.elementStates.indexOf(es.element === es2.element ? es2 : alt[es.id]);\n\t\t\t\tthis.targets.splice(index, 1, state.targets[i]);\n\t\t\t\tthis.elementStates.splice(index, 1, es);\n\t\t\t} else {\n\t\t\t\tthis.targets.push(state.targets[i]);\n\t\t\t\tthis.elementStates.push(es);\n\t\t\t}\n\t\t}\n\t\tstate.interrupted && (this.interrupted = true);\n\t\tstate.simple || (this.simple = false);\n\t\t_createLookup(this);\n\t\treturn this;\n\t}\n\n\tcompare(state) {\n\t\tlet l1 = state.idLookup,\n\t\t\tl2 = this.idLookup,\n\t\t\tunchanged = [],\n\t\t\tchanged = [],\n\t\t\tenter = [],\n\t\t\tleave = [],\n\t\t\ttargets = [],\n\t\t\ta1 = state.alt,\n\t\t\ta2 = this.alt,\n\t\t\tplace = (s1, s2, el) => (s1.isVisible !== s2.isVisible ? (s1.isVisible ? enter : leave) : s1.isVisible ? changed : unchanged).push(el) && targets.push(el),\n\t\t\tplaceIfDoesNotExist = (s1, s2, el) => targets.indexOf(el) < 0 && place(s1, s2, el),\n\t\t\ts1, s2, p, el, s1Alt, s2Alt, c1, c2;\n\t\tfor (p in l1) {\n\t\t\ts1Alt = a1[p];\n\t\t\ts2Alt = a2[p];\n\t\t\ts1 = !s1Alt ? l1[p] : _getChangingElState(state, this, p);\n\t\t\tel = s1.element;\n\t\t\ts2 = l2[p];\n\t\t\tif (s2Alt) {\n\t\t\t\tc2 = s2.isVisible || (!s2Alt.isVisible && el === s2.element) ? s2 : s2Alt;\n\t\t\t\tc1 = s1Alt && !s1.isVisible && !s1Alt.isVisible && c2.element === s1Alt.element ? s1Alt : s1;\n\t\t\t\t//c1.element !== c2.element && c1.element === s2.element && (c2 = s2);\n\t\t\t\tif (c1.isVisible && c2.isVisible && c1.element !== c2.element) { // swapping, so force into \"changed\" array\n\t\t\t\t\t(c1.isDifferent(c2) ? changed : unchanged).push(c1.element, c2.element);\n\t\t\t\t\ttargets.push(c1.element, c2.element);\n\t\t\t\t} else {\n\t\t\t\t\tplace(c1, c2, c1.element);\n\t\t\t\t}\n\t\t\t\ts1Alt && c1.element === s1Alt.element && (s1Alt = l1[p]);\n\t\t\t\tplaceIfDoesNotExist(c1.element !== s2.element && s1Alt ? s1Alt : c1, s2, s2.element);\n\t\t\t\tplaceIfDoesNotExist(s1Alt && s1Alt.element === s2Alt.element ? s1Alt : c1, s2Alt, s2Alt.element);\n\t\t\t\ts1Alt && placeIfDoesNotExist(s1Alt, s2Alt.element === s1Alt.element ? s2Alt : s2, s1Alt.element);\n\t\t\t} else {\n\t\t\t\t!s2 ? enter.push(el) : !s2.isDifferent(s1) ? unchanged.push(el) : place(s1, s2, el);\n\t\t\t\ts1Alt && placeIfDoesNotExist(s1Alt, s2, s1Alt.element);\n\t\t\t}\n\t\t}\n\t\tfor (p in l2) {\n\t\t\tif (!l1[p]) {\n\t\t\t\tleave.push(l2[p].element);\n\t\t\t\ta2[p] && leave.push(a2[p].element);\n\t\t\t}\n\t\t}\n\t\treturn {changed, unchanged, enter, leave};\n\t}\n\n\trecordInlineStyles() {\n\t\tlet props = _memoizedRemoveProps[this.props] || _removeProps,\n\t\t\ti = this.elementStates.length;\n\t\twhile (i--) {\n\t\t\t_recordInlineStyles(this.elementStates[i], props);\n\t\t}\n\t}\n\n\tinterrupt(soft) { // soft = DON'T force in-progress flip animations to completion (like when running a batch, we can't immediately kill flips when getting states because it could contaminate positioning and other .getState() calls that will run in the batch (we kill AFTER all the .getState() calls complete).\n\t\tlet timelines = [];\n\t\tthis.targets.forEach(t => {\n\t\t\tlet tl = t._flip,\n\t\t\t\tfoundInProgress = _killFlip(tl, soft ? 0 : 1);\n\t\t\tsoft && foundInProgress && timelines.indexOf(tl) < 0 && tl.add(() => this.updateVisibility());\n\t\t\tfoundInProgress && timelines.push(tl);\n\t\t});\n\t\t!soft && timelines.length && this.updateVisibility(); // if we found an in-progress Flip animation, we must record all the values in their current state at that point BUT we should update the isVisible value AFTER pushing that flip to completion so that elements that are entering or leaving will populate those Arrays properly.\n\t\tthis.interrupted || (this.interrupted = !!timelines.length);\n\t}\n\n\tupdateVisibility() {\n\t\tthis.elementStates.forEach(es => {\n\t\t\tlet b = es.element.getBoundingClientRect();\n\t\t\tes.isVisible = !!(b.width || b.height || b.top || b.left);\n\t\t\tes.uncache = 1;\n\t\t});\n\t}\n\n\tgetElementState(element) {\n\t\treturn this.elementStates[this.targets.indexOf(_getEl(element))];\n\t}\n\n\tmakeAbsolute() {\n\t\treturn _orderByDOMDepth(this.elementStates.slice(0), true, true).map(_makeAbsolute);\n\t}\n\n}\n\n\n\nclass ElementState {\n\n\tconstructor(element, props, simple) {\n\t\tthis.element = element;\n\t\tthis.update(props, simple);\n\t}\n\n\tisDifferent(state) {\n\t\tlet b1 = this.bounds,\n\t\t\tb2 = state.bounds;\n\t\treturn b1.top !== b2.top || b1.left !== b2.left || b1.width !== b2.width || b1.height !== b2.height || !this.matrix.equals(state.matrix) || this.opacity !== state.opacity || (this.props && state.props && JSON.stringify(this.props) !== JSON.stringify(state.props));\n\t}\n\n\tupdate(props, simple) {\n\t\tlet self = this,\n\t\t\telement = self.element,\n\t\t\tgetProp = gsap.getProperty(element),\n\t\t\tcache = gsap.core.getCache(element),\n\t\t\tbounds = element.getBoundingClientRect(),\n\t\t\tbbox = element.getBBox && typeof(element.getBBox) === \"function\" && element.nodeName.toLowerCase() !== \"svg\" && element.getBBox(),\n\t\t\tm = simple ? new Matrix2D(1, 0, 0, 1, bounds.left + _getDocScrollLeft(), bounds.top + _getDocScrollTop()) : getGlobalMatrix(element, false, false, true);\n\t\tself.getProp = getProp;\n\t\tself.element = element;\n\t\tself.id = _getID(element);\n\t\tself.matrix = m;\n\t\tself.cache = cache;\n\t\tself.bounds = bounds;\n\t\tself.isVisible = !!(bounds.width || bounds.height || bounds.left || bounds.top);\n\t\tself.display = getProp(\"display\");\n\t\tself.position = getProp(\"position\");\n\t\tself.parent = element.parentNode;\n\t\tself.x = getProp(\"x\");\n\t\tself.y = getProp(\"y\");\n\t\tself.scaleX = cache.scaleX;\n\t\tself.scaleY = cache.scaleY;\n\t\tself.rotation = getProp(\"rotation\");\n\t\tself.skewX = getProp(\"skewX\");\n\t\tself.opacity = getProp(\"opacity\");\n\t\tself.width = bbox ? bbox.width : _closestTenth(getProp(\"width\", \"px\"), 0.04); // round up to the closest 0.1 so that text doesn't wrap.\n\t\tself.height = bbox ? bbox.height : _closestTenth(getProp(\"height\", \"px\"), 0.04);\n\t\tprops && _recordProps(self, _memoizedProps[props] || _memoizeProps(props));\n\t\tself.ctm = element.getCTM && element.nodeName.toLowerCase() === \"svg\" && _getCTM(element).inverse();\n\t\tself.simple = simple || (_round(m.a) === 1 && !_round(m.b) && !_round(m.c) && _round(m.d) === 1); // allows us to speed through some other tasks if it's not scale/rotated\n\t\tself.uncache = 0;\n\t}\n\n}\n\nclass FlipAction {\n\tconstructor(vars, batch) {\n\t\tthis.vars = vars;\n\t\tthis.batch = batch;\n\t\tthis.states = [];\n\t\tthis.timeline = batch.timeline;\n\t}\n\n\tgetStateById(id) {\n\t\tlet i = this.states.length;\n\t\twhile (i--) {\n\t\t\tif (this.states[i].idLookup[id]) {\n\t\t\t\treturn this.states[i];\n\t\t\t}\n\t\t}\n\t}\n\n\tkill() {\n\t\tthis.batch.remove(this);\n\t}\n}\n\nclass FlipBatch {\n\tconstructor(id) {\n\t\tthis.id = id;\n\t\tthis.actions = [];\n\t\tthis._kill = [];\n\t\tthis._final = [];\n\t\tthis._abs = [];\n\t\tthis._run = [];\n\t\tthis.data = {};\n\t\tthis.state = new FlipState();\n\t\tthis.timeline = gsap.timeline();\n\t}\n\n\tadd(config) {\n\t\tlet result = this.actions.filter(action => action.vars === config);\n\t\tif (result.length) {\n\t\t\treturn result[0];\n\t\t}\n\t\tresult = new FlipAction(typeof(config) === \"function\" ? {animate: config} : config, this);\n\t\tthis.actions.push(result);\n\t\treturn result;\n\t}\n\n\tremove(action) {\n\t\tlet i = this.actions.indexOf(action);\n\t\ti >= 0 && this.actions.splice(i, 1);\n\t\treturn this;\n\t}\n\n\tgetState(merge) {\n\t\tlet prevBatch = _batch,\n\t\t\tprevAction = _batchAction;\n\t\t_batch = this;\n\t\tthis.state.clear();\n\t\tthis._kill.length = 0;\n\t\tthis.actions.forEach(action => {\n\t\t\tif (action.vars.getState) {\n\t\t\t\taction.states.length = 0;\n\t\t\t\t_batchAction = action;\n\t\t\t\taction.state = action.vars.getState(action);\n\t\t\t}\n\t\t\tmerge && action.states.forEach(s => this.state.add(s));\n\t\t});\n\t\t_batchAction = prevAction;\n\t\t_batch = prevBatch;\n\t\tthis.killConflicts();\n\t\treturn this;\n\t}\n\n\tanimate() {\n\t\tlet prevBatch = _batch,\n\t\t\ttl = this.timeline,\n\t\t\ti = this.actions.length,\n\t\t\tfinalStates, endTime;\n\t\t_batch = this;\n\t\ttl.clear();\n\t\tthis._abs.length = this._final.length = this._run.length = 0;\n\t\tthis.actions.forEach(a => {\n\t\t\ta.vars.animate && a.vars.animate(a);\n\t\t\tlet onEnter = a.vars.onEnter,\n\t\t\t\tonLeave = a.vars.onLeave,\n\t\t\t\ttargets = a.targets, s, result;\n\t\t\tif (targets && targets.length && (onEnter || onLeave)) {\n\t\t\t\ts = new FlipState();\n\t\t\t\ta.states.forEach(state => s.add(state));\n\t\t\t\tresult = s.compare(Flip.getState(targets));\n\t\t\t\tresult.enter.length && onEnter && onEnter(result.enter);\n\t\t\t\tresult.leave.length && onLeave && onLeave(result.leave);\n\t\t\t}\n\t\t});\n\t\t_makeCompsAbsolute(this._abs);\n\t\tthis._run.forEach(f => f());\n\t\tendTime = tl.duration();\n\t\tfinalStates = this._final.slice(0);\n\t\ttl.add(() => {\n\t\t\tif (endTime <= tl.time()) { // only call if moving forward in the timeline (in case it's nested in a timeline that gets reversed)\n\t\t\t\tfinalStates.forEach(f => f());\n\t\t\t\t_forEachBatch(this, \"onComplete\");\n\t\t\t}\n\t\t});\n\t\t_batch = prevBatch;\n\t\twhile (i--) {\n\t\t\tthis.actions[i].vars.once && this.actions[i].kill();\n\t\t}\n\t\t_forEachBatch(this, \"onStart\");\n\t\ttl.restart();\n\t\treturn this;\n\t}\n\n\tloadState(done) {\n\t\tdone || (done = () => 0);\n\t\tlet queue = [];\n\t\tthis.actions.forEach(c => {\n\t\t\tif (c.vars.loadState) {\n\t\t\t\tlet i, f = targets => {\n\t\t\t\t\ttargets && (c.targets = targets);\n\t\t\t\t\ti = queue.indexOf(f);\n\t\t\t\t\tif (~i) {\n\t\t\t\t\t\tqueue.splice(i, 1);\n\t\t\t\t\t\tqueue.length || done();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tqueue.push(f);\n\t\t\t\tc.vars.loadState(f);\n\t\t\t}\n\t\t});\n\t\tqueue.length || done();\n\t\treturn this;\n\t}\n\n\tsetState() {\n\t\tthis.actions.forEach(c => c.targets = c.vars.setState && c.vars.setState(c));\n\t\treturn this;\n\t}\n\n\tkillConflicts(soft) {\n\t\tthis.state.interrupt(soft);\n\t\tthis._kill.forEach(state => state.interrupt(soft));\n\t\treturn this;\n\t}\n\n\trun(skipGetState, merge) {\n\t\tif (this !== _batch) {\n\t\t\tskipGetState || this.getState(merge);\n\t\t\tthis.loadState(() => {\n\t\t\t\tif (!this._killed) {\n\t\t\t\t\tthis.setState();\n\t\t\t\t\tthis.animate();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn this;\n\t}\n\n\tclear(stateOnly) {\n\t\tthis.state.clear();\n\t\tstateOnly || (this.actions.length = 0);\n\t}\n\n\tgetStateById(id) {\n\t\tlet i = this.actions.length,\n\t\t\ts;\n\t\twhile (i--) {\n\t\t\ts = this.actions[i].getStateById(id);\n\t\t\tif (s) {\n\t\t\t\treturn s;\n\t\t\t}\n\t\t}\n\t\treturn this.state.idLookup[id] && this.state;\n\t}\n\n\tkill() {\n\t\tthis._killed = 1;\n\t\tthis.clear();\n\t\tdelete _batchLookup[this.id];\n\t}\n}\n\n\nexport class Flip {\n\n\tstatic getState(targets, vars) {\n\t\tlet state = _parseState(targets, vars);\n\t\t_batchAction && _batchAction.states.push(state);\n\t\tvars && vars.batch && Flip.batch(vars.batch).state.add(state);\n\t\treturn state;\n\t}\n\n\tstatic from(state, vars) {\n\t\tvars = vars || {};\n\t\t(\"clearProps\" in vars) || (vars.clearProps = true);\n\t\treturn _fromTo(state, _parseState(vars.targets || state.targets, {props: vars.props || state.props, simple: vars.simple, kill: !!vars.kill}), vars, -1);\n\t}\n\n\tstatic to(state, vars) {\n\t\treturn _fromTo(state, _parseState(vars.targets || state.targets, {props: vars.props || state.props, simple: vars.simple, kill: !!vars.kill}), vars, 1);\n\t}\n\n\tstatic fromTo(fromState, toState, vars) {\n\t\treturn _fromTo(fromState, toState, vars);\n\t}\n\n\tstatic fit(fromEl, toEl, vars) {\n\t\tlet v = vars ? _copy(vars, _fitReserved) : {},\n\t\t\t{absolute, scale, getVars, props, runBackwards, onComplete, simple} = vars || v,\n\t\t\tfitChild = vars && vars.fitChild && _getEl(vars.fitChild),\n\t\t\tbefore = _parseElementState(toEl, props, simple, fromEl),\n\t\t\tafter = _parseElementState(fromEl, 0, simple, before),\n\t\t\tinlineProps = props ? _memoizedRemoveProps[props] : _removeProps;\n\t\tprops && _applyProps(v, before.props);\n\t\tif (runBackwards) {\n\t\t\t_recordInlineStyles(after, inlineProps);\n\t\t\t(\"immediateRender\" in v) || (v.immediateRender = true);\n\t\t\tv.onComplete = function() {\n\t\t\t\t_applyInlineStyles(after);\n\t\t\t\tonComplete && onComplete.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t\tabsolute && _makeAbsolute(after, before);\n\t\tv = _fit(after, before, scale || fitChild, props, fitChild, v.duration || getVars ? v : 0);\n\t\treturn getVars ? v : v.duration ? gsap.to(after.element, v) : null;\n\t}\n\n\tstatic makeAbsolute(targetsOrStates, vars) {\n\t\treturn (targetsOrStates instanceof FlipState ? targetsOrStates : new FlipState(targetsOrStates, vars)).makeAbsolute();\n\t}\n\n\tstatic batch(id) {\n\t\tid || (id = \"default\");\n\t\treturn _batchLookup[id] || (_batchLookup[id] = new FlipBatch(id));\n\t}\n\n\tstatic killFlipsOf(targets, complete) {\n\t\t(targets instanceof FlipState ? targets.targets : _toArray(targets)).forEach(t => t && _killFlip(t._flip, complete !== false ? 1 : 2));\n\t}\n\n\tstatic isFlipping(target) {\n\t\tlet f = Flip.getByTarget(target);\n\t\treturn !!f && f.isActive();\n\t}\n\n\tstatic getByTarget(target) {\n\t\treturn (_getEl(target) || _emptyObj)._flip;\n\t}\n\n\tstatic getElementState(target, props) {\n\t\treturn new ElementState(_getEl(target), props);\n\t}\n\n\tstatic convertCoordinates(fromElement, toElement, point) {\n\t\tlet m = getGlobalMatrix(toElement, true, true).multiply(getGlobalMatrix(fromElement));\n\t\treturn point ? m.apply(point) : m;\n\t}\n\n\n\tstatic register(core) {\n\t\t_body = typeof(document) !== \"undefined\" && document.body;\n\t\tif (_body) {\n\t\t\tgsap = core;\n\t\t\t_setDoc(_body);\n\t\t\t_toArray = gsap.utils.toArray;\n\t\t\t_getStyleSaver = gsap.core.getStyleSaver;\n\t\t\tlet snap = gsap.utils.snap(0.1);\n\t\t\t_closestTenth = (value, add) => snap(parseFloat(value) + add);\n\t\t}\n\t}\n}\n\nFlip.version = \"3.12.2\";\n\n// function whenImagesLoad(el, func) {\n// \tlet pending = [],\n// \t\tonLoad = e => {\n// \t\t\tpending.splice(pending.indexOf(e.target), 1);\n// \t\t\te.target.removeEventListener(\"load\", onLoad);\n// \t\t\tpending.length || func();\n// \t\t};\n// \tgsap.utils.toArray(el.tagName.toLowerCase() === \"img\" ? el : el.querySelectorAll(\"img\")).forEach(img => img.complete || img.addEventListener(\"load\", onLoad) || pending.push(img));\n// \tpending.length || func();\n// }\n\ntypeof(window) !== \"undefined\" && window.gsap && window.gsap.registerPlugin(Flip);\n\nexport { Flip as default };"],"names":["_setDoc","element","doc","ownerDocument","_transformProp","style","_transformOriginProp","parentNode","_win","window","_identityMatrix","Matrix2D","_docElement","_doc","documentElement","_body","body","_gEl","createElementNS","transform","d1","createElement","d2","appendChild","position","_hasOffsetBug","offsetParent","removeChild","_getDocScrollTop","pageYOffset","scrollTop","_getDocScrollLeft","pageXOffset","scrollLeft","_svgOwner","ownerSVGElement","tagName","toLowerCase","_createSibling","i","svg","ns","getAttribute","type","x","y","css","e","replace","_svgContainer","setAttribute","_divContainer","cssText","_getCTM","m","getCTM","removeProperty","clone","_placeSiblings","adjustGOffset","container","b","cs","isRootSVG","siblings","_svgTemps","_divTemps","parent","length","push","a","f","d","getBBox","baseVal","numberOfItems","_consolidate","c","multiply","getItem","matrix","getComputedStyle","offsetLeft","offsetTop","top","left","_setMatrix","inverse","this","determinant","a2","b2","c2","e2","f2","equals","apply","point","decoratee","getGlobalMatrix","includeScrollInFixed","zeroScales","_forceNonZeroScale","cache","_gsap","uncache","get","scaleX","scaleY","renderTransform","temps","b1","getBoundingClientRect","b3","isFixed","_isFixed","nodeType","_forEachBatch","batch","name","actions","forEach","vars","_listToArray","list","split","join","_getEl","target","_toArray","console","warn","_round","value","Math","round","_toggleClass","targets","className","action","el","classList","_camelToDashed","p","_copy","obj","exclude","result","_memoizeProps","props","_memoizedProps","_memoizedRemoveProps","concat","_removeProps","_orderByDOMDepth","comps","invert","isElStates","comp","_getDOMDepth","level","inc","l","previousSibling","t","sort","c1","_recordInlineStyles","elState","v","getPropertyValue","_dashedNameLookup","_applyInlineStyles","state","indexOf","translate","_setFinalStates","onlyTransforms","finalStates","_makeAbsolute","fallbackNode","ignoreBatch","displayIsNone","width","height","getProp","_batch","_abs","sd","_final","isVisible","display","_absoluteProps","gridArea","transition","ElementState","_emptyObj","simple","bounds","_fit","_closestTenth","_filterComps","filter","_makeCompsAbsolute","_applyProps","_elementsFromElementStates","elStates","map","_handleCallback","callback","tl","add","FlipState","_parseState","targetsOrState","_getChangingElState","toState","fromState","id","to1","idLookup","to2","alt","getElementState","_lockBodyScroll","lock","_bodyLocked","s","w","clientWidth","outerWidth","h","clientHeight","outerHeight","_bodyMetrics","_bodyProps","overflowY","overflowX","_fromTo","relative","endTime","fromNode","toNode","run","clearProps","onEnter","onLeave","absolute","absoluteOnLeave","custom","delay","paused","repeat","repeatDelay","yoyo","toggleClass","nested","zIndex","scale","fade","stagger","spin","prune","tweenVars","_reserved","animation","gsap","timeline","data","remainingProps","entering","leaving","swapOutTargets","spinNum","spinFunc","interrupted","addFunc","swap","_flip","isDifferent","opacity","splice","maxWidth","max","maxHeight","minWidth","min","minHeight","classTargets","remove","autoRound","rotation","skewX","modifiers","immediateRender","utils","distribute","dummyArray","slice","_callbacks","eventCallback","_fitReserved","duration","call","_zTime","batchTl","forward","time","_run","anim","revert","_killFlip","_createLookup","lookup","elementStates","_batchAction","_getStyleSaver","_id","_batchLookup","_RAD2DEG","PI","_DEG2RAD","kill","onComplete","onUpdate","onInterrupt","onStart","fitChild","getVars","_parseElementState","elOrNode","other","_findElStateInState","applyProps","fromPoint","toPoint","parentMatrix","bbox","styles","dimensionState","deep","_getInverseGlobalMatrix","core","getCache","gmCache","ticker","frame","gMatrix","ctm","atan2","sqrt","cos","getProperty","ceil","parseFloat","force","progress","_interrupt","onInterruptParams","getChildren","update","soft","_this","interrupt","recordInlineStyles","clear","fit","elStatesInOrder","toElStates","property","es","index","es2","compare","place","s1","s2","enter","leave","changed","unchanged","placeIfDoesNotExist","s1Alt","s2Alt","l1","l2","a1","timelines","foundInProgress","_this2","updateVisibility","makeAbsolute","targetsAreElementStates","_kill","JSON","stringify","self","nodeName","_getID","_recordProps","trim","FlipAction","getStateById","states","FlipBatch","config","animate","getState","merge","prevBatch","prevAction","_this3","killConflicts","Flip","_this4","once","restart","loadState","done","queue","setState","skipGetState","_this5","_killed","stateOnly","from","to","fromTo","fromEl","toEl","runBackwards","before","after","inlineProps","arguments","targetsOrStates","killFlipsOf","complete","isFlipping","getByTarget","isActive","convertCoordinates","fromElement","toElement","register","document","toArray","getStyleSaver","snap","version","registerPlugin"],"mappings":"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"}