react-voodoo 2.5.11 → 2.5.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"react-voodoo.js","mappings":"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","sources":["webpack://react-voodoo/./src/.___layerPackIndexUtils.js","webpack://react-voodoo/./src/MapOf.react_voodoo_utils_css_demux_typed_____js.gen.js","webpack://react-voodoo/./src/utils/css/cssUtils.js","webpack://react-voodoo/./src/utils/css/demux/filter.js","webpack://react-voodoo/./src/utils/css/demux/transform.js","webpack://react-voodoo/./src/utils/css/demux/typed/any.js","webpack://react-voodoo/./src/utils/css/demux/typed/bool.js","webpack://react-voodoo/external commonjs \"color-rgba\"","webpack://react-voodoo/./src/utils/css/demux/typed/color.js","webpack://react-voodoo/./src/utils/css/demux/typed/length.js","webpack://react-voodoo/./src/utils/css/demux/typed/multi.js","webpack://react-voodoo/./src/utils/css/demux/typed/number.js","webpack://react-voodoo/./src/utils/css/demux/typed/ratio.js","webpack://react-voodoo/./src/utils/css/demux/typed/shadow.js","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/slicedToArray\"","webpack://react-voodoo/external commonjs \"d3-ease\"","webpack://react-voodoo/external commonjs \"is\"","webpack://react-voodoo/webpack/bootstrap","webpack://react-voodoo/webpack/runtime/compat get default export","webpack://react-voodoo/webpack/runtime/define property getters","webpack://react-voodoo/webpack/runtime/hasOwnProperty shorthand","webpack://react-voodoo/webpack/runtime/make namespace object","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/classCallCheck\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/createClass\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/getPrototypeOf\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/inherits\"","webpack://react-voodoo/external commonjs \"react\"","webpack://react-voodoo/external commonjs \"fast-deep-equal\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/extends\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://react-voodoo/./src/comps/TweenerContext.js","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/toConsumableArray\"","webpack://react-voodoo/external commonjs \"@babel/runtime/helpers/get\"","webpack://react-voodoo/external commonjs \"react-dom\"","webpack://react-voodoo/./src/utils/tweenTools.js","webpack://react-voodoo/./src/MapOf.react_voodoo_utils_css_demux_____js.gen.js","webpack://react-voodoo/./src/utils/css/index.js","webpack://react-voodoo/external commonjs \"tween-axis\"","webpack://react-voodoo/./src/utils/CssTweenAxis.js","webpack://react-voodoo/./src/utils/dom.js","webpack://react-voodoo/./src/utils/inertia.js","webpack://react-voodoo/./src/comps/Tweener.js","webpack://react-voodoo/./src/hooks/useVoodoo.js","webpack://react-voodoo/./src/comps/Axis.js","webpack://react-voodoo/external commonjs \"shortid\"","webpack://react-voodoo/./src/utils/react.js","webpack://react-voodoo/./src/comps/Node.js","webpack://react-voodoo/./src/comps/Draggable.js","webpack://react-voodoo/./src/hooks/useTweener.js","webpack://react-voodoo/./src/spells/asTweener.js","webpack://react-voodoo/./src/spells/withTweener.js","webpack://react-voodoo/./src/index.js"],"sourcesContent":["/*\n * Copyright 2021 BRAUN Nathanael\n *\n * Use of this source code is governed by an MIT-style\n * license that can be found in the LICENSE file or at\n * https://opensource.org/licenses/MIT.\n */\nmodule.exports = {\n\t/**\n\t * Walk & set executables from globs requires\n\t * @param _target\n\t * @param path\n\t * @param value\n\t */\n\twalknSetExport( _target, path, value ) {\n\t\tlet fPath = path.split('/'),\n\t\t target = _target, i, module;\n\t\t\n\t\ti = 0;\n\t\twhile ( i < fPath.length - 1 ) target = target[fPath[i]] = target[fPath[i]] || {}, i++;\n\t\t\n\t\tmodule = Object.keys(value).length === 1 && value.default || value;\n\t\t\n\t\tif ( !target[fPath[i]] ) {\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse if ( !target[fPath[i]].__esModule ) {// if this is simple path obj write over\n\t\t\tObject.assign(module, target[fPath[i]]);\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse {// when we are in hot reload this may delete some sub modules... @todo\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t}\n};","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\nconst _react_voodoo_utils_css_demux_typed_any_js = require(\"react-voodoo/utils/css/demux/typed/any.js\");\nwalknSetExport(_exports, \"any\", _react_voodoo_utils_css_demux_typed_any_js);\nconst _react_voodoo_utils_css_demux_typed_bool_js = require(\"react-voodoo/utils/css/demux/typed/bool.js\");\nwalknSetExport(_exports, \"bool\", _react_voodoo_utils_css_demux_typed_bool_js);\nconst _react_voodoo_utils_css_demux_typed_color_js = require(\"react-voodoo/utils/css/demux/typed/color.js\");\nwalknSetExport(_exports, \"color\", _react_voodoo_utils_css_demux_typed_color_js);\nconst _react_voodoo_utils_css_demux_typed_multi_js = require(\"react-voodoo/utils/css/demux/typed/multi.js\");\nwalknSetExport(_exports, \"multi\", _react_voodoo_utils_css_demux_typed_multi_js);\nconst _react_voodoo_utils_css_demux_typed_ratio_js = require(\"react-voodoo/utils/css/demux/typed/ratio.js\");\nwalknSetExport(_exports, \"ratio\", _react_voodoo_utils_css_demux_typed_ratio_js);\nconst _react_voodoo_utils_css_demux_typed_length_js = require(\"react-voodoo/utils/css/demux/typed/length.js\");\nwalknSetExport(_exports, \"length\", _react_voodoo_utils_css_demux_typed_length_js);\nconst _react_voodoo_utils_css_demux_typed_number_js = require(\"react-voodoo/utils/css/demux/typed/number.js\");\nwalknSetExport(_exports, \"number\", _react_voodoo_utils_css_demux_typed_number_js);\nconst _react_voodoo_utils_css_demux_typed_shadow_js = require(\"react-voodoo/utils/css/demux/typed/shadow.js\");\nwalknSetExport(_exports, \"shadow\", _react_voodoo_utils_css_demux_typed_shadow_js);\n\nexport const any = _exports.any;\n\nexport const bool = _exports.bool;\n\nexport const color = _exports.color;\n\nexport const length = _exports.length;\n\nexport const multi = _exports.multi;\n\nexport const number = _exports.number;\n\nexport const ratio = _exports.ratio;\n\nexport const shadow = _exports.shadow;\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nexport const props = {\n\t\"margin\" : { \"properties\": [\"marginTop\", \"marginRight\", \"marginBottom\", \"marginLeft\"], \"multiple\": true },\n\t\"marginBottom\" : { \"types\": [\"length\"] },\n\t\"marginLeft\" : { \"types\": [\"length\"] },\n\t\"marginRight\" : { \"types\": [\"length\"] },\n\t\"marginTop\" : { \"types\": [\"length\"] },\n\t\"padding\" : { \"properties\": [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"], \"multiple\": true },\n\t\"paddingBottom\": { \"types\": [\"length\"] },\n\t\"paddingLeft\" : { \"types\": [\"length\"] },\n\t\"paddingRight\" : { \"types\": [\"length\"] },\n\t\"paddingTop\" : { \"types\": [\"length\"] },\n\t\"bottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"left\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"right\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"top\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"zIndex\" : { \"types\": [\"integer\"] },\n\t\"width\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"height\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"lineHeight\" : { \"types\": [\"length\"] },\n\t\"verticalAlign\": { \"types\": [\"length\"] },\n\t\"visibility\" : { \"types\": [\"visibility\"] },\n\t\"borderSpacing\": { \"types\": [\"length\"], \"multiple\": true },\n\t\"color\" : { \"types\": [\"color\"] },\n\t\"opacity\" : { \"types\": [\"number\"] },\n\t//\"background\" : { \"properties\": [\"backgroundColor\", \"backgroundPosition\", \"backgroundSize\"] },\n\t\"backgroundColor\" : { \"types\": [\"color\"] },\n\t\"backgroundPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"backgroundSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"border\" : { \"properties\": [\"borderStyle\", \"borderWidth\", \"borderColor\"] },\n\t\"borderBottom\" : { \"properties\": [\"borderBottomStyle\", \"borderBottomWidth\", \"borderBottomColor\"] },\n\t\"borderLeft\" : { \"properties\": [\"borderLeftStyle\", \"borderLeftWidth\", \"borderLeftColor\"] },\n\t\"borderRight\" : { \"properties\": [\"borderRightStyle\", \"borderRightWidth\", \"borderRightColor\"] },\n\t\"borderTop\" : { \"properties\": [\"borderTopStyle\", \"borderTopWidth\", \"borderTopColor\"] },\n\t\"borderColor\" : { \"properties\": [\"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\"] },\n\t\"borderWidth\" : { \"properties\": [\"borderTopWidth\", \"borderRightWidth\", \"borderBottomWidth\", \"borderLeftWidth\"] },\n\t\"borderBottomColor\" : { \"types\": [\"color\"] },\n\t\"borderLeftColor\" : { \"types\": [\"color\"] },\n\t\"borderRightColor\" : { \"types\": [\"color\"] },\n\t\"borderTopColor\" : { \"types\": [\"color\"] },\n\t\"borderBottomWidth\" : { \"types\": [\"length\"] },\n\t\"borderLeftWidth\" : { \"types\": [\"length\"] },\n\t\"borderRightWidth\" : { \"types\": [\"length\"] },\n\t\"borderTopWidth\" : { \"types\": [\"length\"] },\n\t\"borderRadius\" : { \"properties\": [\"borderTopLeftRadius\", \"borderTopRightRadius\", \"borderBottomRightRadius\", \"borderBottomLeftRadius\"] },\n\t\"borderTopLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderTopRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"boxShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"caretColor\" : { \"types\": [\"color\"] },\n\t\"outline\" : { \"properties\": [\"outlineColor\", \"outlineWidth\"] },\n\t\"outlineColor\" : { \"types\": [\"color\"] },\n\t\"outlineWidth\" : { \"types\": [\"length\"] },\n\t\"outlineOffset\" : { \"types\": [\"length\"] },\n\t\"flex\" : { \"properties\": [\"flexGrow\", \"flexShrink\", \"flexBasis\"] },\n\t\"flexGrow\" : { \"types\": [\"number\"] },\n\t\"flexShrink\" : { \"types\": [\"number\"] },\n\t\"flexBasis\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"order\" : { \"types\": [\"integer\"] },\n\t\"font\" : { \"properties\": [\"fontWeight\", \"fontStretch\", \"fontSize\", \"lineHeight\"] },\n\t\"fontWeight\" : { \"types\": [\"font-weight\"] },\n\t\"fontStretch\" : { \"types\": [\"font-stretch\"] },\n\t\"fontSize\" : { \"types\": [\"length\"] },\n\t\"fontSizeAdjust\" : { \"types\": [\"number\"] },\n\t\"gridTemplateColumns\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplateRows\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplate\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"grid\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"gridRowGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridColumnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridGap\" : { \"properties\": [\"gridRowGap\", \"gridColumnGap\"] },\n\t\"clip\" : { \"types\": [\"rectangle\"] },\n\t\"clipPath\" : { \"types\": [\"basic-shape\"] },\n\t\"mask\" : { \"properties\": [\"maskPosition\", \"maskSize\"] },\n\t\"maskPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"maskSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"shapeOutside\" : { \"types\": [\"basic-shape\"] },\n\t\"shapeMargin\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"shapeImageThreshold\" : { \"types\": [\"number\"] },\n\t\"scrollPadding\" : { \"properties\": [\"scrollPaddingTop\", \"scrollPaddingRight\", \"scrollPaddingBottom\", \"scrollPaddingLeft\"] },\n\t\"scrollPaddingTop\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingRight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingLeft\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlock\" : { \"properties\": [\"scrollPaddingBlockStart\", \"scrollPaddingBlockEnd\"] },\n\t\"scrollPaddingBlockStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlockEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInline\" : { \"properties\": [\"scrollPaddingInlineStart\", \"scrollPaddingInlineEnd\"] },\n\t\"scrollPaddingInlineStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInlineEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollSnapMargin\" : { \"properties\": [\"scrollSnapMarginTop\", \"scrollSnapMarginRight\", \"scrollSnapMarginBottom\", \"scrollSnapMarginLeft\"] },\n\t\"scrollSnapMarginTop\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginRight\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBottom\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginLeft\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlock\" : { \"properties\": [\"scrollSnapMarginBlockStart\", \"scrollSnapMarginBlockEnd\"] },\n\t\"scrollSnapMarginBlockStart\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlockEnd\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInline\" : { \"properties\": [\"scrollSnapMarginInlineStart\", \"scrollSnapMarginInlineEnd\"] },\n\t\"scrollSnapMarginInlineStart\": { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInlineEnd\" : { \"types\": [\"length\"] },\n\t\"textDecoration\" : { \"properties\": [\"textDecorationColor\"] },\n\t\"textDecorationColor\" : { \"types\": [\"color\"] },\n\t\"textEmphasis\" : { \"properties\": [\"textEmphasisColor\"] },\n\t\"textEmphasisColor\" : { \"types\": [\"color\"] },\n\t\"textShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"columns\" : { \"properties\": [\"columnWidth\", \"columnCount\"] },\n\t\"columnWidth\" : { \"types\": [\"length\"] },\n\t\"columnCount\" : { \"types\": [\"integer\"] },\n\t\"columnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"columnRule\" : { \"properties\": [\"columnRuleColor\", \"columnRuleWidth\"] },\n\t\"columnRuleColor\" : { \"types\": [\"color\"] },\n\t\"columnRuleWidth\" : { \"types\": [\"length\"] },\n\t\"letterSpacing\" : { \"types\": [\"length\"] },\n\t\"tabSize\" : { \"types\": [\"length\"] },\n\t\"textIndent\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"wordSpacing\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"transform\" : { \"types\": [\"transform\"] },\n\t\"transformOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"perspective\" : { \"types\": [\"length\"] },\n\t\"perspectiveOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t}\n}\n\nexport const units = ['', 'deg', 'box', 'bz', 'bh', 'bw', 'deg', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'];\nexport const unitsRe = new RegExp(\n\t\"([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['\\\\w+', 'deg', 'bz', 'bh', 'bw', 'cap', 'ch', 'deg', 'em', 'ic', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\"\n);\nexport const floatCut = ( v = 0 ) => Number(v.toFixed(3));\n\nexport function expandShorthandProperty( property, value, target = {} ) {\n\tlet type = props[property],\n\t childProps = type && type.properties,\n\t values = value.split(' ');\n\t\n\tif ( type.multiple )\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\ttarget[k] = values[i % values.length];\n\t\t\t}\n\t\t)\n\telse\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\tif ( values[i] )\n\t\t\t\t\ttarget[k] = values[i];\n\t\t\t}\n\t\t)\n\treturn target;\n};\n\nexport function isShorthandProperty( property ) {\n\tlet type = props[property],\n\t childProps = type && type.properties;\n\treturn childProps && !!childProps.length;\n};\n\n\n\nexport function isValidDeclaration( property, value ) {\n\treturn !!props[property];\n};\n\n/**\n * Check if a CSS property can be animated\n * @param {string} property CSS property name\n * @return {boolean} True if the property can be animated\n */\nexport function canAnimate( property ) {\n\treturn props.hasOwnProperty(property);\n};\n\n/**\n * Get a definition of how a CSS property can be animated\n * @param {string} property CSS property name\n * @param {boolean} expand Expand definitions for sub-properties, when available\n * @return {object} Property definition, or null if it can't be animated\n */\nexport function getProperty( property, expand ) {\n\tif ( !exports.canAnimate(property) ) {\n\t\treturn null;\n\t}\n\tvar prop = props[property];\n\tvar ret = { name: property };\n\tObject.keys(prop).forEach(function ( key ) {\n\t\tvar value = prop[key];\n\t\tif ( Array.isArray(value) ) {\n\t\t\tif ( key === 'properties' && expand ) {\n\t\t\t\tvalue = value.map(function ( subProp ) {\n\t\t\t\t\treturn exports.getProperty(subProp, expand);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalue = value.slice(); // clone\n\t\t\t}\n\t\t}\n\t\tret[key] = value;\n\t});\n\treturn ret;\n};\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\nconst\n\tdefaultUnits = {\n\t\tblur : 'px',\n\t\tbrightness: '%',\n\t\tcontrast : '%',\n\t\tdropShadow: true,\n\t\tgrayscale : '%',\n\t\thueRotate : 'deg',\n\t\tinvert : \"%\",\n\t\topacity : \"%\",\n\t\tsaturate : \"%\",\n\t\tsepia : \"%\"\n\t}, defaultValue = {};\n\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length === 4 ) {\n\t\t//console.warn(\"dec\", twKey, dataMap[path[0]][path[1]][path[2]])\n\t\t// dec count on filter\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free filter layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\t//if ( unit === 'box' ) {\n\t//\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t//\tunit = 'px';\n\t//}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet filters = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\tfilters += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.filter = filters;\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\nconst defaultUnits = {\n\t //matrix : true,\n\t //translate : 'px',\n\t translateX: 'px',\n\t translateY: 'px',\n\t translateZ: 'px',\n\t scale : '',\n\t scaleZ : '',\n\t scaleX : '',\n\t scaleY : '',\n\t rotate : 'deg',\n\t //skew : 'deg',\n\t skewX: 'deg',\n\t skewY: 'deg',\n\t //matrix3d : true,\n\t //translate3d: true,\n\t //scale3d : true,\n\t //rotate3d : true,\n\t rotateX : 'deg',\n\t rotateY : 'deg',\n\t rotateZ : 'deg',\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n\t translateY: 'y',\n\t translateZ: 'z',\n\t rotateX : 'x',\n\t rotateY : 'y',\n\t rotateZ : 'z',\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom : 'y',\n\t width : 'x',\n\t height : 'y',\n }, defaultValue = {\n\t //skew : 1,\n\t //skewX : 1,\n\t //skewY : 1,\n\t scale : 1,\n\t scaleX: 1,\n\t scaleY: 1,\n\t scaleZ: 1\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length === 4 ) {\n\t\t//console.warn(\"dec\", twKey, dataMap[path[0]][path[1]][path[2]])\n\t\t// dec count on transform\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet transforms = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\ttransforms += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.transform = transforms;\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) && !is.object(value) ) {\n\t\tconsole.warn(\"React-Voodoo: Ignore unexpected value \", key, \":\", value, \" on \", target);\n\t\treturn demux;\n\t}\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport { floatCut, units, unitsRe } from \"../../cssUtils\";\n\nconst defaultUnits = {\n left : 'px',\n right : 'px',\n top : 'px',\n bottom : 'px',\n width : 'px',\n height : 'px',\n perspective: 'px',\n },\n defaultBox = {\n left : 'x',\n right : 'x',\n top : 'y',\n bottom: 'y',\n width : 'x',\n height: 'y',\n }, defaultValue = {\n opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n let path = twKey.split('_'), tmpKey;// not optimal at all\n \n if ( path.length === 2 ) {\n //console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n if ( !--dataMap[ path[ 0 ] ][ path[ 1 ] ] && !keepValues ) {\n delete tweenableMap[ twKey ];\n //dataMap[path[0]][path[1]] = undefined;\n }\n \n if ( !keepValues )\n while ( dataMap[ path[ 0 ] ].length && !dataMap[ path[ 0 ] ][ dataMap[ path[ 0 ] ].length - 1 ] )\n dataMap[ path[ 0 ] ].pop();\n \n if ( dataMap[ path[ 0 ] ].length === 0 && !keepValues ) {\n delete dataMap[ path[ 0 ] ];\n delete muxerMap[ path[ 0 ] ];\n if ( cssMap ) delete cssMap[ path[ 0 ] ];\n //console.log(\"delete\", path[0])\n }\n }\n else {\n console.log(\"wtf\", path)\n }\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n let value = twVal,\n unit = units[ unitKey ] || defaultUnits[ baseKey ] || \"px\";\n \n if ( unit === 'box' ) {\n value = value * ( box[ defaultBox[ baseKey ] ] || box.x );\n unit = 'px';\n \n }\n if ( unit === 'bw' ) {\n value = value * box.x;\n unit = 'px';\n }\n if ( unit === 'bh' ) {\n value = value * box.y;\n unit = 'px';\n }\n if ( unit === 'bz' ) {\n value = value * box.z;\n unit = 'px';\n }\n return unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n let value, i = 0, y, rKey;\n \n value = \"\";\n \n //if ( key==\"height\" )\n //\tdebugger;\n \n if ( data[ key ].isString ) {\n target[ key ] = data[ key ].value;// + defaultUnits[key];\n return data[ key ].value;\n }\n \n for ( y = 0; y < data[ key ].length; y++ )\n if ( data[ key ][ y ] ) {\n rKey = key + \"_\" + y;\n if ( tweenable[ rKey ] < 0 )\n value += ( i\n ? \" - \"\n : \"-\" ) + demuxOne(y, -tweenable[ rKey ], baseKey || key, data, box);\n else\n value += ( i\n ? \" + \"\n : \"\" ) + demuxOne(y, tweenable[ rKey ], baseKey || key, data, box);\n i++;\n }\n if ( i > 1 )\n value = \"calc(\" + value + \")\";\n \n //console.log(key, ':', value)\n return target ? target[ key ] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n \n data[ key ] = data[ key ] || [];\n let seenUnits = [];\n if ( is.array(value) ) {\n for ( let i = 0; i < value.length; i++ ) {\n muxOne(key, value[ i ] || 0, target, data, initials, noPropLock, seenUnits)\n }\n }\n else {\n muxOne(key, value || 0, target, data, initials, noPropLock)\n }\n \n return demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n \n let match = is.string(value) ? value.match(unitsRe) : false,\n unit = match && match[ 2 ] || defaultUnits[ key ] || \"px\",\n unitKey = units.indexOf(unit),\n realKey = unitKey !== -1 && ( key + '_' + unitKey ) || key;\n \n initials[ realKey ] = defaultValue[ key ] || 0;\n data[ key ][ unitKey ] = data[ key ][ unitKey ] || 0;\n //\n if ( !match && is.string(value) ) {\n data[ key ].isString = true;\n data[ key ].value = value;\n return demux;\n }\n \n if ( seenUnits && seenUnits[ unitKey ] ) {\n //console.warn(key, ':', data[key][unitKey], value, noPropLock)\n if ( match ) {\n target[ realKey ] += parseFloat(match[ 1 ]);\n }\n else {\n target[ realKey ] += parseFloat(value);\n }\n }\n else {\n \n !noPropLock && data[ key ][ unitKey ]++;\n if ( match ) {\n target[ realKey ] = parseFloat(match[ 1 ]);\n }\n else {\n target[ realKey ] = parseFloat(value);\n }\n if ( seenUnits ) seenUnits[ unitKey ] = true;\n }\n \n return demux;\n};\n\nexport const mux = muxer;\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\tlet value = !!(tweenable[key]);\n\treturn target ? target[key] = value : value;\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value === false ? 0 : 1;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"color-rgba\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport rgba from \"color-rgba\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'),\n\t tmpKey = path.slice(0, path.length - 1).join('_');\n\t\n\t//console.log(\"dec\", tmpKey, path, dataMap[twKey])\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", twKey, path)\n\t}\n\tif ( !--dataMap[tmpKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", tmpKey)\n\t}\n\t//}\n}\n\nexport function demux( key, tweenable, target, data ) {\n\tlet value = \"rgba(\" + tweenable[key + '_r'] + \", \" + tweenable[key + '_g'] + \", \" + tweenable[key + '_b'] + \", \" + tweenable[key + '_a'] + \")\";\n\treturn target ?\n\t target[key] = value : value;\n}\n\nexport function mux( key, value, target, data, initials, noPropLock ) {\n\tlet vect = rgba(value);\n\t\n\tdata[key] = data[key] || 0;\n\tdata[key + '_r'] = data[key + '_r'] || 0;\n\tdata[key + '_g'] = data[key + '_g'] || 0;\n\tdata[key + '_b'] = data[key + '_b'] || 0;\n\tdata[key + '_a'] = data[key + '_a'] || 0;\n\tif ( !noPropLock ) {\n\t\tdata[key] += 4;\n\t\tdata[key + '_r']++;\n\t\tdata[key + '_g']++;\n\t\tdata[key + '_b']++;\n\t\tdata[key + '_a']++;\n\t}\n\t\n\ttarget[key + '_r'] = vect[0];\n\ttarget[key + '_g'] = vect[1];\n\ttarget[key + '_b'] = vect[2];\n\ttarget[key + '_a'] = vect[3];\n\t\n\tinitials[key] = 0;\n\t\n\tinitials[key + '_r'] = 0;\n\tinitials[key + '_g'] = 0;\n\tinitials[key + '_b'] = 0;\n\tinitials[key + '_a'] = 1;\n\t\n\treturn demux;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\n\nconst defaultUnits = {\n\t left : 'px',\n\t right : 'px',\n\t top : 'px',\n\t bottom : 'px',\n\t width : 'px',\n\t height : 'px',\n\t perspective: 'px',\n },\n defaultBox = {\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom: 'y',\n\t width : 'x',\n\t height: 'y',\n }, defaultValue = {\n\t opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\t\n\tif ( path.length === 2 ) {\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n\t\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//dataMap[path[0]][path[1]] = undefined;\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tif ( cssMap ) delete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitKey] || defaultUnits[baseKey] || \"px\";\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t\t\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n\tlet value, i = 0, y, rKey;\n\t\n\tvalue = \"\";\n\t\n\t//if ( key==\"height\" )\n\t//\tdebugger;\n\t\n\tfor ( y = 0; y < data[key].length; y++ )\n\t\tif ( data[key][y] ) {\n\t\t\trKey = key + \"_\" + y;\n\t\t\tif ( tweenable[rKey] < 0 )\n\t\t\t\tvalue += (i ? \" - \" : \"-\") + demuxOne(y, -tweenable[rKey], baseKey || key, data, box);\n\t\t\telse\n\t\t\t\tvalue += (i ? \" + \" : \"\") + demuxOne(y, tweenable[rKey], baseKey || key, data, box);\n\t\t\ti++;\n\t\t}\n\tif ( i > 1 )\n\t\tvalue = \"calc(\" + value + \")\";\n\t\n\t//console.log(key, ':', value)\n\treturn target ? target[key] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n\t\n\tdata[key] = data[key] || [];\n\tlet seenUnits = [];\n\tif ( is.array(value) ) {\n\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\tmuxOne(key, value[i] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t}\n\t}\n\telse {\n\t\tmuxOne(key, value || 0, target, data, initials, noPropLock)\n\t}\n\t\n\treturn demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[key] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[key] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\n\nexport const mux = muxer;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport * as length from \"./number\";\n\nconst\n alias = {\n top : '0%',\n bottom: '100%',\n center: '50%',\n left : '0%',\n right : '100%'\n };\n\nfunction demux( key, tweenable, target, data, box, offset ) {\n \n let count = data[ \"_\" + key ], v = '', nowhere = {};\n \n for ( let i = 0; i < count; i++ ) {\n length.demux(key + '_' + i, tweenable, nowhere, data, box, offset);\n v += nowhere[ key + '_' + i ] + ' ';\n }\n \n target[ key ] = v;\n}\n\n\nfunction release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n let path = twKey.split('_'), tmpKey;// not optimal at all\n \n //if ( path.length === 2 ) {\n //\tconsole.log(\"dec\", twKey, dataMap[path[0]][path[1]])\n //\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n //\t\tdelete tweenableMap[twKey];\n //\t\tdelete dataMap[path[0]][path[1]];\n //\t}\n //\n //\tif ( !keepValues )\n //\t\twhile ( dataMap[path[0]].length &&\n // !dataMap[path[0]][dataMap[path[0]].length - 1] ) dataMap[path[0]].pop(); if (\n // dataMap[path[0]].length === 0 && !keepValues ) { delete dataMap[path[0]]; delete\n // muxerMap[path[0]]; delete cssMap[path[0]]; console.log(\"delete\", path[0]) } } else\n // { console.log(\"wtf\", path) }\n}\n\nexport default ( count ) => ( {\n mux: ( key, value, target, data, initials, noPropLock ) => {\n let values = value.split(' '), v;\n \n data[ key ] = data[ key ] || 0;\n noPropLock && data[ key ]++;\n data[ \"_\" + key ] = count;\n \n for ( let i = 0; i < count; i++ ) {\n v = values[ i % values.length ];\n v = is.string(v) && alias[ v ] || v;\n length.mux(key + '_' + i, v, target, data, initials, noPropLock)\n }\n \n return demux;\n }, demux, release\n} )\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = ~~(tweenable[key]);// + defaultUnits[key];\n\t\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = 0;\n\ttarget[key] = ~~value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\nimport {floatCut} from \"../../cssUtils\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = Math.min(1, Math.max(0, floatCut(tweenable[key])));\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\nimport {bool, color} from \"./(*).js\";\n\n\nconst cssShadowParser = (() => {\n\tconst VALUES_REG = /,(?![^\\(]*\\))/\n\tconst PARTS_REG = /\\s(?![^(]*\\))/\n\tconst LENGTH_REG = /^[0-9]+[a-zA-Z%]+?$/\n\t\n\tconst parseValue = str => {\n\t\tconst parts = str.split(PARTS_REG)\n\t\tconst inset = parts.includes('inset')\n\t\tconst last = parts.slice(-1)[0]\n\t\tconst color = !isLength(last) ? last : undefined\n\t\t\n\t\tconst nums = parts\n\t\t\t.filter(n => n !== 'inset')\n\t\t\t.filter(n => n !== color)\n\t\t\t.map(toNum)\n\t\tconst [offsetX, offsetY, blurRadius, spreadRadius] = nums\n\t\t\n\t\treturn {\n\t\t\tinset,\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t}\n\t}\n\t\n\tconst stringifyValue = obj => {\n\t\tconst {\n\t\t\t inset,\n\t\t\t offsetX = 0,\n\t\t\t offsetY = 0,\n\t\t\t blurRadius = 0,\n\t\t\t spreadRadius,\n\t\t\t color\n\t\t } = obj || {}\n\t\t\n\t\treturn [\n\t\t\t(inset ? 'inset' : null),\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t].filter(v => v !== null && v !== undefined)\n\t\t .map(toPx)\n\t\t .map(s => ('' + s).trim())\n\t\t .join(' ')\n\t}\n\t\n\tconst isLength = v => v === '0' || LENGTH_REG.test(v)\n\tconst toNum = v => {\n\t\tif ( !/px$/.test(v) && v !== '0' ) return v\n\t\tconst n = parseFloat(v)\n\t\treturn !isNaN(n) ? n : v\n\t}\n\tconst toPx = n => typeof n === 'number' && n !== 0 ? (n + 'px') : n\n\t\n\tconst parse = str => str.split(VALUES_REG).map(s => s.trim()).map(parseValue)\n\tconst stringify = arr => arr.map(stringifyValue).join(', ')\n\t\n\treturn {\n\t\tparse,\n\t\tstringify\n\t}\n})()\n\n\nconst defaultUnits = {\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n },\n defaultMuxers = {\n\t //blurRadius : number,\n\t inset: bool,\n\t //offsetX : number,\n\t //offsetY : number,\n\t //spreadRadius: number,\n\t color: color\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length > 2 ) {\n\t\t// dec count on transform\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\tif ( defaultMuxers[path[2]] ) {\n\t\t\tdefaultMuxers[path[2]].release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n\t\t\tif ( !dataMap[tmpKey] ) {\n\t\t\t\t//console.log(\"dec\", tmpKey, dataMap[path[0]][path[1]][path[2]])\n\t\t\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\t\tdelete dataMap[path[0]];\n\t\t\t\tdelete muxerMap[path[0]];\n\t\t\t\tdelete cssMap[path[0]];\n\t\t\t\t//console.log(\"delete color\", twKey)\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]])\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\t//tmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t// units\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", tmpKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !Object.keys(dataMap[path[0]][dataMap[path[0]].length - 1]).length )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet shadows = [],\n\t tmpValue = {};\n\tlet ti = 0, shadowMap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\tshadowMap = data[key][ti];\n\t\ttmpValue = {};\n\t\tfor ( fkey in shadowMap )\n\t\t\tif ( shadowMap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif ( defaultMuxers[fkey] ) {\n\t\t\t\t\tvalue = defaultMuxers[fkey].demux(dkey, tweenable, undefined, data, box);\n\t\t\t\t\t//continue;\n\t\t\t\t\t//console.log(dkey, tweenable[dkey])\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t\ty = 0;\n\t\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\t\ty++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ( y > 1 )\n\t\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\ttmpValue[fkey] = (value || 0);\n\t\t\t}\n\t\tshadows.push(tmpValue);\n\t}\n\t\n\ttarget[key] = cssShadowParser.stringify(shadows);\n\t//console.log(key, shadows, target[key]);\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, shadowMap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\tshadowMap = value[ti];\n\t\tif ( is.string(shadowMap) )\n\t\t\tshadowMap = cssShadowParser.parse(shadowMap)[0];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in shadowMap ) {\n\t\t\tif ( shadowMap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = shadowMap[tFnKey];\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\tif ( defaultMuxers[tFnKey] ) {\n\t\t\t\t\tdefaultMuxers[tFnKey].mux(dkey, fValue, target, data, initials, noPropLock, reOrder);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t\n\t\t\t\t\tseenUnits = {};\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","module.exports = require(\"d3-ease\");","module.exports = require(\"is\");","// 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\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/classCallCheck\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/createClass\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/getPrototypeOf\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/inherits\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"fast-deep-equal\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/extends\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/objectWithoutProperties\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\n\nconst TweenerContext = React.createContext(null);\nexport default TweenerContext","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/toConsumableArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/get\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\n\nexport const re_cssValueWithUnit = new RegExp(\n\t\"([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['box', 'bz', 'bh', 'bw', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\"\n);\n\n/**\n * add any css val with it unit ( todo: optims&use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssAdd( val1, val2, ...argz ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\tif ( !is.array(val2) )\n\t\tval2 = [val2];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t units2 = val2.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 0;\n\t\tremap[units1[i][2]] += parseFloat(units1[i][1]);\n\t\ti++;\n\t}\n\ti = 0;\n\twhile ( i < units2.length ) {\n\t\tremap[units2[i][2]] = remap[units2[i][2]] || 0;\n\t\tremap[units2[i][2]] += parseFloat(units2[i][1]);\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn argz.length ? cssAdd(result, ...argz) : result;\n}\n\n/**\n * Multiply any css val with it unit ( todo: optims & use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssMult( val1, val ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 1;\n\t\tremap[units1[i][2]] = parseFloat(units1[i][1]) * val;\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn result;\n}\n\nexport function offset( items, start = 0 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom: item.from + start\n\t\t\t}\n\t\t)\n\t)\n}\n\nexport function scale( items, duration = 0, withOffset ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\t\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\titems = items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom : (item.from / iDuration) * duration,\n\t\t\t\tduration: (item.duration / iDuration) * duration\n\t\t\t}\n\t\t)\n\t)\n\treturn withOffset ? offset(items, withOffset) : items\n}\n\nfunction inverseValues( v ) {\n\tif ( is.number(v) )\n\t\treturn -v;\n\tif ( is.object(v) )\n\t\treturn Object.keys(v).reduce(( h, key ) => (h[key] = inverseValues(v[key]), h), {});\n\tif ( is.array(v) )\n\t\treturn v.map(( item ) => (inverseValues(item)));\n\t\n\tlet values = v.split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig);\n\t\n\treturn values.map(\n\t\t( val, i ) => (i % 2 ? -parseFloat(val) : val)\n\t).join(\"\");\n}\n\nexport function reverse( items ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\treturn items.map(\n\t\titem => {\n\t\t\titem =\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tfrom: iDuration - (item.from + item.duration),\n\t\t\t\t\t...(item.apply ? { apply: inverseValues(item.apply) } : undefined)\n\t\t\t\t};\n\t\t\treturn item;\n\t\t}\n\t)\n}\n\nconst MultiCssProps = { \"transform\": true, \"filter\": true, \"textShadow\": true, \"boxShadow\": true }\n\nexport function addCss( target, ...sources ) {\n\tlet source = sources.shift();\n\t\n\tfor ( const key in source ) {\n\t\tif ( !source.hasOwnProperty(key) )\n\t\t\tcontinue;\n\t\t\n\t\tif ( MultiCssProps[key] ) {\n\t\t\tif ( !target[key] ) {\n\t\t\t\ttarget[key] = [];\n\t\t\t}\n\t\t\tif ( !is.array(source[key]) ) {\n\t\t\t\taddCss(target[key], [source[key]]);\n\t\t\t}\n\t\t\telse addCss(target[key], source[key]);\n\t\t}\n\t\telse {\n\t\t\t// adding units\n\t\t\tif ( is.array(source[key]) ) {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\t\t\t\tif ( !is.array(target[key]) ) {\n\t\t\t\t\ttarget[key] = [...source[key], target[key]];\n\t\t\t\t}\n\t\t\t\telse target[key].push(...source[key]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\tif ( !is.object(source[key]) ) {\n\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttarget[key] = { ...source[key] };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( is.object(target[key]) && is.object(source[key]) ) {\n\t\t\t\t\taddCss(target[key], source[key]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t//else target[key].push(...source[key]);\n\t\t\t\t\ttarget[key] = addAllType(target[key], source[key])\n\t\t\t\t\t//console.log(key, target[key])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\treturn sources.length && addCss(target, ...sources) || target;\n}\n\nfunction addAllType( v1, v2 ) {\n\tif ( !v1 )\n\t\treturn v2;\n\tif ( !v2 )\n\t\treturn v1;\n\tlet values1 = ('' + v1).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t values2 = ('' + v2).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t r = values1.map(\n\t\t ( val, i ) => (i % 2 ? parseFloat(val) + parseFloat(values2[i] || 0) : val)\n\t ).filter(i => (i !== ''));\n\t\n\treturn r.length === 1 ? parseInt(r[0]) : r.join(\"\")\n}\n\nexport function extractCss( items, inverse ) {\n\tlet css = {};\n\titems = is.array(items) ? items : items && [items] || items;\n\titems.forEach(\n\t\titem => {\n\t\t\taddCss(css, item.apply)\n\t\t}\n\t);\n\tif ( inverse )\n\t\tcss = inverseValues(css);\n\t\n\t\n\t//if ( inverse && css.hasOwnProperty('opacity') )\n\t//\tcss.opacity -= 1;\n\treturn css;\n}\n\nexport function target( items, target ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\ttarget\n\t\t\t}\n\t\t)\n\t)\n}\n\nexport function shiftTransforms( items, shift = 1 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => {\n\t\t\tlet t = item.apply && item.apply.transform;\n\t\t\tif ( t ) {\n\t\t\t\tt = is.array(t) ? t : [t];\n\t\t\t\tfor ( let i = 0; i < shift; i++ )\n\t\t\t\t\tt.unshift({});\n\t\t\t\t\n\t\t\t\titem = { ...item, apply: { ...item.apply, transform: t } };\n\t\t\t}\n\t\t\treturn item;\n\t\t}\n\t)\n}","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\nconst _react_voodoo_utils_css_demux_filter_js = require(\"react-voodoo/utils/css/demux/filter.js\");\nwalknSetExport(_exports, \"filter\", _react_voodoo_utils_css_demux_filter_js);\nconst _react_voodoo_utils_css_demux_boxShadow_js = require(\"react-voodoo/utils/css/demux/boxShadow.js\");\nwalknSetExport(_exports, \"boxShadow\", _react_voodoo_utils_css_demux_boxShadow_js);\nconst _react_voodoo_utils_css_demux_transform_js = require(\"react-voodoo/utils/css/demux/transform.js\");\nwalknSetExport(_exports, \"transform\", _react_voodoo_utils_css_demux_transform_js);\nconst _react_voodoo_utils_css_demux_textShadow_js = require(\"react-voodoo/utils/css/demux/textShadow.js\");\nwalknSetExport(_exports, \"textShadow\", _react_voodoo_utils_css_demux_textShadow_js);\nconst _react_voodoo_utils_css_demux_backgroundColor_js = require(\"react-voodoo/utils/css/demux/backgroundColor.js\");\nwalknSetExport(_exports, \"backgroundColor\", _react_voodoo_utils_css_demux_backgroundColor_js);\n\nexport const backgroundColor = _exports.backgroundColor;\n\nexport const boxShadow = _exports.boxShadow;\n\nexport const filter = _exports.filter;\n\nexport const textShadow = _exports.textShadow;\n\nexport const transform = _exports.transform;\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\nimport {addCss} from \"../tweenTools\";\nimport {\n\texpandShorthandProperty, isShorthandProperty, isValidDeclaration, props\n} from \"./cssUtils\";\nimport cssDemuxers from \"./demux/(*).js\";\n\nimport primitiveTypes, {length, multi, number, ratio, color, any} from \"./demux/typed/(*).js\";\n\nconst cssDemux = {\n\t...cssDemuxers,\n\theight : length,\n\twidth : length,\n\ttop : length,\n\tleft : length,\n\tright : length,\n\tbottom : length,\n\tmarginTop : length,\n\tmarginLeft : length,\n\tmarginRight : length,\n\tmarginBottom : length,\n\tpaddingTop : length,\n\tpaddingLeft : length,\n\tpaddingRight : length,\n\tpaddingBottom : length,\n\tborderRadius : length,\n\tborderTopColor : color,\n\tborderLeftColor : color,\n\tborderRightColor : color,\n\tborderBottomColor: color,\n\tborderTopWidth : length,\n\tborderLeftWidth : length,\n\tborderRightWidth : length,\n\tborderBottomWidth: length,\n\ttransformOrigin : multi(2),\n\tzIndex : number,\n\topacity : ratio,\n};\n\n\nexport function getMuxerTypeOfProperty( property ) {\n\tlet type = props[property],\n\t types = type && type.types;\n\tif ( !types ) {\n\t\treturn any;\n\t}\n\tfor ( let i = 0; i < types.length; i++ ) {\n\t\tswitch ( types[i] ) {\n\t\t\tcase \"length\":\n\t\t\tcase \"length-percentage-calc\":\n\t\t\t\treturn length;\n\t\t\tcase \"number\":\n\t\t\tcase \"integer\":\n\t\t\t\treturn number;\n\t\t\tcase \"color\":\n\t\t\t\treturn color;\n\t\t}\n\t}\n\treturn any;\n};\n\nexport function clearTweenableValue( cssKey, twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tmuxerMap[path[0]]?.release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n}\n\n/**\n * Interpolate float/int values to css basing the css prop type\n * @param tweenable {Object} map of tweenable values\n * @param css {Object} map of css value to be push in DOM\n * @param demuxers {Object} map of numeric to css converter\n * @param data {Object} map of converters contexts\n * @param box {Object} xyz of the parent viewbox\n */\nexport function muxToCss( tweenable, css, demuxers, data, box ) {\n\tObject.keys(demuxers)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t demuxers[key].demux(key, tweenable, css, data, box)\n\t\t }\n\t )\n}\n\n/**\n * Instanciate interpolators & init css/tweenable values basing the tween\n * @param tween\n * @param deMuxedTween\n * @param initials\n * @param data\n * @param demuxers\n * @param noPropLock\n * @param reOrder\n * @returns {{}}\n */\nexport function deMuxTween( tween, deMuxedTween, initials, data, demuxers, noPropLock, reOrder ) {\n\tlet fTween = {}, excluded = {};\n\ttween && Object.keys(tween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] )\n\t\t\t\t fTween[key] = tween[key];\n\t\t\t else if ( isValidDeclaration(key, tween[key]) ) {\n\t\t\t\t\n\t\t\t\t if ( isShorthandProperty(key) ) {\n\t\t\t\t\t expandShorthandProperty(key, tween[key], fTween);\n\t\t\t\t }\n\t\t\t\t else fTween[key] = tween[key];\n\t\t\t }\n\t\t\t else excluded[key] = tween[key];\n\t\t });\n\t\n\tfTween && Object.keys(fTween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] ) {//key, value, target, data, initials\n\t\t\t\t (demuxers[key] = cssDemux[key]).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t\t }\n\t\t\t else\n\t\t\t\t (demuxers[key] = getMuxerTypeOfProperty(key)).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t }\n\t );\n\treturn excluded;\n}\n\n/**\n * Init/update muxers & initial css values of targets in a tween line / axis\n * @param tweenLine\n * @param initials\n * @param data\n * @param demuxers\n * @param noPropLock\n * @returns {*}\n */\nexport function deMuxLine( tweenLine, initials, data, demuxers, noPropLock ) {\n\tnoPropLock = noPropLock && {};\n\tlet allPropsById = {},\n\t twAxis = tweenLine.reduce(\n\t\t ( line, tween ) => {\n\t\t\t let demuxedTween = {};\n\t\t\t demuxers[tween.target] = demuxers[tween.target] || {};\n\t\t\t initials[tween.target] = initials[tween.target] || {};\n\t\t\t data[tween.target] = data[tween.target] || {};\n\t\t\t\n\t\t\t if ( !tween.type || tween.type === \"Tween\" ) {\n\t\t\t\t !noPropLock && addCss(allPropsById[tween.target] = allPropsById[tween.target] || {}, tween.apply);\n\t\t\t\t //console.log(\"merged\", tween.apply)\n\t\t\t\t deMuxTween(tween.apply, demuxedTween, initials[tween.target], data[tween.target], demuxers[tween.target], true);\n\t\t\t\t line.push(\n\t\t\t\t\t {\n\t\t\t\t\t\t ...tween,\n\t\t\t\t\t\t apply: demuxedTween\n\t\t\t\t\t });\n\t\t\t }\n\t\t\t else line.push({ ...tween });\n\t\t\t return line\n\t\t },\n\t\t []\n\t );\n\t!noPropLock && Object.keys(allPropsById)\n\t .forEach(\n\t\t id => deMuxTween(allPropsById[id], {}, {}, data[id], demuxers[id])\n\t )\n\t;\n\treturn twAxis;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"tween-axis\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport tweenAxis from \"tween-axis\";\n\n\nconst recyclableTweenAxis = [];\n\n/**\n * Override the TweenAxis Objects to automatically deal with recycling\n */\nexport default class CssTweenAxis extends tweenAxis {\n\t\n\tconstructor( cfg, scope ) {\n\t\tif ( recyclableTweenAxis.length ) {\n\t\t\tlet recyled = recyclableTweenAxis.pop();\n\t\t\trecyled.scope = scope;\n\t\t\tif ( is.array(cfg) ) {\n\t\t\t\trecyled.localLength = 1;\n\t\t\t\trecyled.mount(cfg, scope);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( cfg.Axis )\n\t\t\t\t\trecyled.mount(cfg.Axis, scope);\n\t\t\t}\n\t\t\treturn recyled;\n\t\t}\n\t\tsuper(...arguments)\n\t}\n\t\n\tdestroy() {\n\t\t\n\t\tthis.scope = undefined;\n\t\tthis.__marks.length = 0;\n\t\tthis.__marksLength.length = 0;\n\t\tthis.__marksKeys.length = 0;\n\t\tthis.__processors.length = 0;\n\t\tthis.__config.length = 0;\n\t\tthis.__activeProcess.length = 0;\n\t\t\n\t\tthis.__activeProcess.length = 0;\n\t\tthis.__outgoing.length = 0;\n\t\tthis.__incoming.length = 0;\n\t\tthis.__cPos = 0;\n\t\tthis.duration = 0;\n\t\tthis.__cIndex = 0;\n\t\tthis.__cMaxKey = 1;\n\t\trecyclableTweenAxis.push(this);\n\t}\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\n/**\n * Old school dom utils & events managers\n */\n\nlet\n is = require('is'),\n isBrowser = typeof window !== 'undefined',\n isTouch = isBrowser && ( function is_touch_device() {\n var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n var mq = function ( query ) {\n return window.matchMedia && window.matchMedia(query).matches;\n }\n \n if ( ( 'ontouchstart' in window ) || window.DocumentTouch && document instanceof DocumentTouch ) {\n return true;\n }\n \n // include the 'heartz' as a way to have a non matching MQ to help terminate the\n // join https://git.io/vznFH\n var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n }() ),\n _dom = isBrowser ? {\n prefix : ( /webkit/i ).test(navigator.appVersion) ? 'webkit' :\n ( /firefox/i ).test(navigator.userAgent) ? 'Moz' :\n ( /trident/i ).test(navigator.userAgent) ? 'ms' :\n 'opera' in window ? 'O' : '',\n dashedPrefix: ( /webkit/i ).test(navigator.appVersion) ? '-webkit-' :\n ( /firefox/i ).test(navigator.userAgent) ? '-moz-' :\n ( /trident/i ).test(navigator.userAgent) ? '-ms-' :\n 'opera' in window ? '-o-' : ''\n } : {\n prefix : '',\n dashedPrefix: ''\n },\n __ = {\n onPageHided : [],\n onPageShown : [],\n dragging : [],\n dragEnabled : [],\n dragEnabledDesc : [],\n fingers : {},\n nbFingers : 0,\n dragstartAnywhere: function ( e ) {\n let o,\n me = __,\n i = me.dragEnabled.indexOf(this),\n finger,\n desc, fingers = [];\n \n if ( i === -1 ) {\n return;\n }\n //e.preventDefault();\n //e.stopPropagation();\n \n if ( !me.nbFingers ) {\n Dom.addEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere,\n });\n Dom.addEvent(this,\n {\n 'click': me.dropWithoutClick\n }, null, null, null, true);\n }\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let t = 0, ln = fingers.length; t < ln; t++ ) {\n finger = fingers[ t ];\n \n \n desc = me.dragEnabledDesc[ i ];\n \n if ( desc.nbFingers ) continue;\n \n me.nbFingers++;\n \n me.fingers[ finger.identifier ] = me.fingers[ finger.identifier ] || [];\n me.fingers[ finger.identifier ].push(desc);\n \n \n desc.nbFingers++;\n \n desc._startPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._startPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n desc._startTs = e.timeStamp;\n \n \n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dragstart.length; o++ )\n desc.dragstart[ o ][ 0 ].call(desc.dragstart[ o ][ 1 ] ||\n this, e, finger, desc);\n }\n },\n dragAnywhere : function ( e ) {\n let o,\n me = __,\n finger, fingers = [], stopped,\n desc = __.dragging[ 0 ];\n \n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n desc = me.fingers[ finger.identifier ];\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n if ( stopped ) {\n desc._lastPos.x = desc._startPos.x = _dom.prefix == 'MS'\n ? finger.x\n : finger.pageX;\n desc._lastPos.y = desc._startPos.y = _dom.prefix == 'MS'\n ? finger.y\n : finger.pageY;\n return;\n }\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.drag.length; o++ )\n stopped = desc.drag[ o ][ 0 ].call(desc.drag[ o ][ 1 ] || this, e,\n finger,\n desc) === false;\n }\n )\n \n }\n },\n dropWithoutClick : function ( e ) {\n if ( __.preventNextClick ) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n __.preventNextClick = false;\n }\n Dom.removeEvent(this,\n {\n 'click': this.dropWithoutClick\n });\n },\n dropAnywhere : function ( e ) {\n let o,\n me = __, finger, fingers = [],\n prevent;\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n me.nbFingers--;\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n \n \n desc.nbFingers--;\n prevent = prevent || desc.mouseDrag && ( e.timeStamp - desc._startTs > 250 );\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dropped.length; o++ )\n desc.dropped[ o ][ 0 ].call(desc.dropped[ o ][ 1 ] ||\n this, e,\n finger, desc);\n \n \n }\n )\n me.fingers[ finger.identifier ] = null;\n }\n if ( prevent ) {\n me.preventNextClick = true;\n }\n if ( !me.nbFingers ) {\n Dom.removeEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere\n });\n }\n },\n getDraggable : function ( node, mouseDrag, touchDrag ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i === -1 ) {\n this.dragEnabled.push(node);\n this.dragEnabledDesc.push(\n desc = {\n mouseDrag,\n touchDrag,\n nbFingers: 0,\n locks : 0,\n _startPos: {\n x: 0,\n y: 0\n },\n _lastPos : {\n x: 0,\n y: 0\n },\n dragstart: [],\n drag : [],\n dragEnd : [],\n dropped : []\n }\n );\n //debugger;\n Dom.addEvent(node,\n {\n 'mousedown' : mouseDrag && this.dragstartAnywhere,\n 'touchstart': touchDrag && this.dragstartAnywhere\n }, null, null, null, true);\n }\n else desc = this.dragEnabledDesc[ i ];\n return desc;\n },\n freeDraggable : function ( node ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i !== -1 ) {\n this.dragEnabled.splice(i, 1);\n this.dragEnabledDesc.splice(i, 1);\n \n Dom.removeEvent(node,\n {\n 'mousedown' : this.dragstartAnywhere,\n 'touchstart': this.dragstartAnywhere\n });\n }\n },\n \n addEvent : function ( node, type, fn, bubble ) {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n },\n removeEvent: function ( node, type, fn, bubble ) {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n },\n rmDragFn : function ( arr, fn, scope ) {\n for ( let i = 0, ln = arr.length; i < ln; i++ ) {\n if ( arr[ i ][ 0 ] === fn )\n return arr.splice(i, 1);\n }\n \n console.warn(\"Rm event : Listener not found !!\");\n },\n },\n Dom = {\n addEvent : function ( node, type, fn, mouseDrag, touchDrag = true, bubble ) {\n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) && type[ o ] )\n this.addEvent(node, o, type[ o ], mouseDrag, touchDrag, bubble);\n return;\n }\n else if ( type === 'dragstart' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dragstart.push([fn]);\n }\n else if ( type === 'drag' ) {\n __.getDraggable(node, mouseDrag, touchDrag).drag.push([fn]);\n }\n else if ( type === 'dropped' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dropped.push([fn]);\n }\n else {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, { passive: false });\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n }\n \n },\n removeEvent: function ( node, type, fn, scope, bubble ) {\n let i, desc;\n \n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) )\n this.removeEvent(node, o, type[ o ], scope);\n \n }\n else if ( /^(drag|drop)/.test(type) ) {\n desc = __.getDraggable(node);\n __.rmDragFn(desc[ type ], fn, scope);\n if ( !desc.dragstart.length\n && !desc.drag.length\n && !desc.dragEnd.length\n && !desc.dropped.length )\n __.freeDraggable(node);\n }\n else {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n }\n \n },\n offset : function ( elem ) {// @todo\n let dims = {\n top : 0,\n left : 0,\n width : elem.offsetWidth,\n height: elem.offsetHeight\n };\n while ( elem ) {\n dims.top = dims.top + parseInt(elem.offsetTop);\n dims.left = dims.left + parseInt(elem.offsetLeft);\n elem = elem.offsetParent;\n }\n return dims;\n },\n \n \n /**\n * Find the react component that generate element dom node\n * @param element\n * @returns {[React.Component]}\n */\n findReactParents( element ) {\n let fiberNode, comps = [element];\n for ( const key in element ) {\n \n if ( key.startsWith('__reactInternalInstance$') || key.startsWith('__reactFiber$') ) {\n fiberNode = element[ key ];\n while ( fiberNode.return ) {\n if ( fiberNode.stateNode && !comps.includes(fiberNode.stateNode) )\n comps.push(fiberNode.stateNode)\n fiberNode = fiberNode.return;\n }\n return comps;\n }\n }\n return element.parentNode && this.findReactParents(element.parentNode);\n }\n \n };\nexport default Dom;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst\n\tis = require('is'),\n\teasingFn = require('d3-ease'),\n\tsignOf = function sign( x ) {\n\t\treturn typeof x === 'number' ? x ? x < 0 ? -1 : 1 : x === x ? x : NaN : NaN;\n\t},\n\tabs = Math.abs,\n\tfloor = Math.floor,\n\tround = Math.round,\n\tmin = Math.min,\n\tmax = Math.max,\n\tfloatCut = ( v = 0 ) => v.toFixed(3),\n\tconsts = {\n\t\tvelocityResetTm: .150,\n\t\tclickTm : 250\n\t};\n\n\n/**\n * Predict inertia dist & target basing velocity\n * @param _\n */\nexport function applyInertia( _ ) {\n\tlet velSign = signOf(_.lastVelocity);\n\t\n\tif ( _.disabled ) {\n\t\t_.loopsTarget = 0;\n\t\t_.loopsVelSum = 0;\n\t\t_.targetDist = 0;\n\t\t_.targetDuration = 0;\n\t}\n\telse {\n\t\t// calc momentum distance...\n\t\t// get nb loop needed to get vel < .05\n\t\t_.loopsTarget = floor(Math.log(.05 / abs(_.lastVelocity)) / Math.log(.9));\n\t\t\n\t\t// get velocity sum basing on nb loops needed\n\t\t_.loopsVelSum = (Math.pow(.9, _.loopsTarget) - abs(_.lastVelocity)) / (.9 - 1);\n\t\t\n\t\t// deduce real dist of momentum\n\t\t_.targetDist = (_.loopsVelSum * _.refFPS * velSign) / 1000 || 0;\n\t\t_.targetDuration = abs(_.loopsTarget * _.refFPS * velSign) || 0;\n\t\t//console.warn(\" _.targetDist\", _.targetDist, _.lastVelocity);\n\t}\n}\n\n/**\n * Main inertia class\n * @type {module.exports}\n */\nexport default class Inertia {\n\tstatic config = {\n\t\tbounds : true,\n\t\tsnapToBounds: true\n\t};\n\t\n\tconstructor( opt ) {\n\t\tlet _ = this._ = {};\n\t\t_.conf = {\n\t\t\t...this.constructor.config,\n\t\t\t...opt\n\t\t};\n\t\t\n\t\tthis.active = false;\n\t\t_.pos = opt.value || 0;\n\t\t_.refFPS = 16;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.currentStop = 0;\n\t\t_.lastInertiaPos = 0;\n\t\t_.stops = _.conf.stops;\n\t\t_.disabled = _.conf.disabled;\n\t\t_.wayPoints = _.conf.wayPoints;\n\t\t_.inertiaFn = easingFn.easePolyOut;\n\t\t_.targetWayPointIndex = 0;\n\t\t\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tupdateConf( opt ) {\n\t\tlet _ = this._;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.stops = opt.stops;\n\t\t_.disabled = opt.disabled;\n\t\t_.wayPoints = opt.wayPoints;\n\t\t_.conf.willStop = opt.willStop;\n\t\t_.conf.willSnap = opt.willSnap;\n\t\t_.conf.onStop = opt.onStop;\n\t\t_.conf.onSnap = opt.onSnap;\n\t\t_.conf.shouldLoop = opt.shouldLoop;\n\t}\n\t\n\tstartMove() {\n\t\tlet _ = this._;\n\t\t_.baseTS = _.startTS = Date.now() / 1000;\n\t\t_.lastVelocity = _.lastIVelocity = 0;\n\t\t_.lastAccel = 0;\n\t\t_.posDiff = 0;\n\t\t_.loopsDiff = 0;\n\t\tthis.active = true;\n\t\tthis.holding = true;\n\t\t_.inertia = false;\n\t}\n\t\n\thold( nextPos ) {\n\t\tlet _ = this._,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t loop,\n\t\t now = Date.now() / 1000,//e.timeStamp,\n\t\t sinceLastPos = (now - _.baseTS),\n\t\t pos = nextPos,//_.lastHoldPos + delta,\n\t\t iVel = delta / sinceLastPos;\n\t\t\n\t\t_.lastHoldPos = nextPos;\n\t\t//if (is.nan(pos))\n\t\t//\tdebugger\n\t\t\n\t\tif ( !_.lastBaseTs ) {// create base pts\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = _.baseTS;\n\t\t}\n\t\t\n\t\tif ( sinceLastPos < .003 ) {\n\t\t\t//console.log(\"hold fast\", delta, _.baseTS, sinceLastPos);\n\t\t\t// skip/ignore\n\t\t}\n\t\telse if (// direction changed for velocityResetTm\n\t\t\t(\n\t\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t\t||\n\t\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t\t||\n\t\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t\t) &&\n\t\t\t(now - _.lastBaseTs) > consts.velocityResetTm\n\t\t) {\n\t\t\t//console.log(\"reset\", _.lastBaseTs, _.lastVelocity);\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = now;\n\t\t\t_.lastVelocity = 0;\n\t\t\t_.lastIVelocity = 0;\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t}\n\t\telse if (// dir changed fast\n\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t||\n\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t||\n\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t) {\n\t\t\t//ignore\n\t\t}\n\t\telse {\n\t\t\t_.lastIVelocity = iVel;\n\t\t\t_.lastVelocity = ((pos) - (_.lastBasePos)) / (now - _.lastBaseTs);\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t// clear snap\n\t\t\t_.targetWayPoint = undefined;\n\t\t\t_.targetWayPointIndex = undefined;\n\t\t}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( pos > _.max ) {\n\t\t\t\tpos = _.max// + min((pos - _.max) / 10, 10);\n\t\t\t}\n\t\t\telse if ( pos < _.min ) {\n\t\t\t\tpos = _.min// - min((_.min - pos) / 10, 10);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\twhile ( (loop = _.conf.shouldLoop(pos, delta)) ) {\n\t\t\t\tpos += loop;\n\t\t\t}\n\t\t}\n\t\t_.pos = pos;\n\t\t\n\t}\n\t\n\trelease() {\n\t\tlet _ = this._,\n\t\t velSign = signOf(_.lastVelocity);\n\t\t\n\t\tthis.holding = false;\n\t\t\n\t\t// calc momentum distance...\n\t\tapplyInertia(_);\n\t\t\n\t\t_.lastHoldPos = undefined;\n\t\t\n\t\t_.lastBasePos = undefined;\n\t\t_.lastBaseTs = undefined;\n\t\t_.holding = false;\n\t\t\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\tlet loop, nPos=_.pos + _.targetDist;\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nPos, 0)) ) {\n\t\t//\t\tnPos += loop;\n\t\t//\t\tif ( _.inertia ) {\n\t\t//\t\t\t//_.targetDist+=loop;\n\t\t//\t\t\t//_.lastInertiaPos+=loop;\n\t\t//\t\t}\n\t\t//\t\t//this.teleport(loop);\n\t\t//\t}\n\t\t//\tif (nPos!==_.pos + _.targetDist)\n\t\t//}\n\t\tif ( _.conf.bounds && _.conf.snapToBounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\t//else {\n\t\tif ( !_.targetDuration )\n\t\t\t_.targetDuration = 50;\n\t\t\n\t\t//console.log(_);\n\t\tthis.active = true;\n\t\t_.inertia = true;\n\t\t_.lastInertiaPos = 0;\n\t\t_.inertiaStartTm =\n\t\t\t_.inertiaLastTm = Date.now();\n\t\t\n\t\t\n\t\t//}\n\t\tthis._doSnap(null, 500)\n\t\t_.conf.willEnd?.(_.targetDist + _.pos, _.targetDist, _.targetDuration);\n\t}\n\t\n\tupdate( at = Date.now() ) {\n\t\tlet _ = this._, nextValue, loop;\n\t\tlet\n\t\t\tpos = _.inertiaFn((at - _.inertiaStartTm) / _.targetDuration) * _.targetDist;\n\t\t\n\t\tif ( !_.inertia ) {\n\t\t\t//if ( _.conf.shouldLoop ) {\n\t\t\t//\twhile ( (loop = _.conf.shouldLoop(_.pos, 0)) ) {\n\t\t\t//\t\tthis.teleport(loop);\n\t\t\t//\t}\n\t\t\t//}\n\t\t\treturn _.pos;\n\t\t}\n\t\tlet\n\t\t\tdelta = pos - _.lastInertiaPos;\n\t\t_.lastInertiaPos = pos;\n\t\t\n\t\tif ( (at - _.inertiaStartTm) >= _.targetDuration ) {\n\t\t\t_.inertia = this.active = false;\n\t\t\t_.lastInertiaPos = delta = 0;\n\t\t\t_.targetDist = 0;\n\t\t\tif ( _.targetWayPoint ) {\n\t\t\t\tdelta = _.targetWayPoint.at - _.pos;\n\t\t\t\t//console.log(\"snap done \", _.targetWayPoint, _.pos + delta);\n\t\t\t\t_.currentWayPoint = _.targetWayPoint;\n\t\t\t\t_.currentWayPointIndex = _.targetWayPointIndex;\n\t\t\t\t_.targetWayPoint = null;\n\t\t\t\t_.targetWayPointIndex = null;\n\t\t\t\t//_.lastSnapTm = Date.now();\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.onStop ) {\n\t\t\t\t_.conf.onStop(_.pos, _.currentWayPoint)\n\t\t\t}\n\t\t\tif ( _.conf.onSnap ) {\n\t\t\t\t_.conf.onSnap(_.currentWayPointIndex, _.currentWayPoint)\n\t\t\t}\n\t\t}\n\t\t\n\t\tdelta = delta || 0;\n\t\t//console.log(_.pos + delta);\n\t\tnextValue = _.pos + delta;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet t = nextValue;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, delta)) ) {\n\t\t\t\t//console.warn(\"loop update\", loop, nextValue);\n\t\t\t\tnextValue += loop;\n\t\t\t\tif ( _.inertia ) {\n\t\t\t\t\t//_.targetDist+=loop;\n\t\t\t\t\t//_.lastInertiaPos+=loop;\n\t\t\t\t}\n\t\t\t\t//this.teleport(loop);\n\t\t\t}\n\t\t}\n\t\t\n\t\t_.pos = nextValue;\n\t\t\n\t\treturn nextValue;\n\t}\n\t\n\tsetPos( pos ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.inertia = false;\n\t\tthis.active = false;\n\t\t_.lastInertiaPos = 0;\n\t\t_.targetDist = 0;\n\t\t_.inertiaStartTm = 0;\n\t\t_.inertiaLastTm = 0;\n\t\t_.targetDuration = 0;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet loop, nextValue = pos;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, _.pos - pos)) ) {\n\t\t\t\tnextValue += loop;\n\t\t\t\t//this.teleport(loop);\n\t\t\t\t//console.warn(\"loop update\", nextValue, pos);\n\t\t\t}\n\t\t\tpos = nextValue;\n\t\t}\n\t\t_.pos = pos;\n\t\tif ( _.conf.bounds ) {\n\t\t\t_.pos = max(_.pos, _.min);\n\t\t\t_.pos = min(_.pos, _.max);\n\t\t}\n\t}\n\t\n\tsetWayPoints( wayPoints ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.wayPoints = wayPoints;\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tteleport( loopDist ) {\n\t\tlet _ = this._, nextValue;\n\t\tif ( !_.inertia )\n\t\t\treturn _.pos += loopDist;\n\t\t\n\t\t//_.lastInertiaPos += loopDist;\n\t\t_.pos += loopDist\n\t\t//console.log(\"setPos\", _.lastInertiaPos);\n\t}\n\t\n\tdispatch( delta, tm = 500 ) {\n\t\tlet _ = this._,\n\t\t now = Date.now(),\n\t\t pos;\n\t\t\n\t\tthis.active = true;\n\t\t\n\t\t// if no inertia has started || if direction has change\n\t\tif ( !_.inertia || signOf(delta) !== signOf(_.targetDist) ) {\n\t\t\t_.inertia = true;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t_.inertiaStartTm =\n\t\t\t\t_.inertiaLastTm = now;\n\t\t\t\n\t\t\t_.targetDist = delta;\n\t\t\t_.targetDuration = tm;\n\t\t}\n\t\telse {\n\t\t\t//_.inertiaStartTm =\n\t\t\t//_.inertiaLastTm = now;\n\t\t\t//_.lastInertiaPos = 0;\n\t\t\t_.targetDist += delta;\n\t\t\t_.targetDuration += tm / 2;\n\t\t}\n\t\t//\n\t\t//if ( _.conf.maxJump ) {\n\t\t//\n\t\t//}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\tthis._doSnap(signOf(delta), 750)\n\t}\n\t\n\t\n\t_detectCurrentSnap() {\n\t\tlet _ = this._,\n\t\t pos = _.pos,\n\t\t i;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( floatCut(_.wayPoints[i].at) === floatCut(pos) ) {\n\t\t\t\t\t_.currentWayPoint = _.wayPoints[i];\n\t\t\t\t\t_.currentWayPointIndex = i;\n\t\t\t\t\t//console.warn(\"snap set\", i);\n\t\t\t\t\t\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t}\n\t}\n\t\n\t_doSnap( forceSnap, maxDuration = 2000 ) {\n\t\tlet _ = this._,\n\t\t pos = _.targetDist + (_.pos - (_.lastInertiaPos || 0)),\n\t\t lPos = pos,\n\t\t loopDec = 0,\n\t\t target,\n\t\t mid,\n\t\t i,\n\t\t loop;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\t\n\t\t\t// apply loops to do to find the final wayPoint\n\t\t\tif ( _.conf.shouldLoop ) {\n\t\t\t\twhile ( (loop = _.conf.shouldLoop(lPos, 0)) ) {\n\t\t\t\t\tlPos += loop;\n\t\t\t\t\tloopDec += loop;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( _.wayPoints[i].at > lPos )\n\t\t\t\t\tbreak;\n\t\t\t\n\t\t\tif ( i === _.wayPoints.length ) {\n\t\t\t\ti--\n\t\t\t}\n\t\t\telse if ( i === 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmid = (_.wayPoints[i].at - _.wayPoints[i - 1].at) / 2;\n\t\t\t\tmid = _.wayPoints[i - 1].at + (mid * ((_.wayPoints[i].gravity || 1) / (_.wayPoints[i - 1].gravity || 1)));\n\t\t\t\t\n\t\t\t\tif ( forceSnap ) forceSnap < 0 && i--;\n\t\t\t\telse if ( lPos < mid ) i--;\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.maxJump && is.number(_.currentWayPointIndex) ) {\n\t\t\t\tlet d = (i - _.currentWayPointIndex);\n\t\t\t\t//console.log('Inertia::_doSnap:154: ', i, d);\n\t\t\t\tif ( abs(d) > _.conf.maxJump ) {\n\t\t\t\t\t//console.log('max: ', i, d);\n\t\t\t\t\ti = _.currentWayPointIndex + signOf(d) * _.conf.maxJump;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttarget = _.wayPoints[i].at;\n\t\t\t\n\t\t\tif ( _.conf.willSnap ) {\n\t\t\t\t_.conf.willSnap(i, _.wayPoints[i]);\n\t\t\t}\n\t\t\t\n\t\t\t_.lastInertiaPos = _.lastInertiaPos || 0;\n\t\t\ttarget = target - (_.pos - _.lastInertiaPos) - loopDec;\n\t\t\t_.targetDuration = max(50, min(maxDuration, abs((_.targetDuration / _.targetDist) * target))) || 0;\n\t\t\t//console.log(\"do snap\", i, target, loopDec);\n\t\t\t_.targetDist = target;\n\t\t\t_.targetWayPoint = _.wayPoints[i];\n\t\t\t_.targetWayPointIndex = i;\n\t\t}\n\t\telse {\n\t\t\ttarget = ~~(_.pos - _.lastInertiaPos);\n\t\t\t\n\t\t\tif ( !_.conf.infinite ) {\n\t\t\t\tif ( target > _.max ) {\n\t\t\t\t\ttarget = _.max - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t\telse if ( target < _.min ) {\n\t\t\t\t\ttarget = _.min - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\t\n\tsetBounds( min, max ) {\n\t\tlet _ = this._;\n\t\t//console.log('Inertia::setBounds:245: ', min, max);\n\t\t_.min = min;\n\t\t_.max = max;\n\t}\n\t\n\tisInbound( nextPos ) {\n\t\tlet _ = this._, loop,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t pos = (_.targetDist || 0) + (_.pos - (_.lastInertiaPos || 0)) + delta;\n\t\t//if ( _.conf.infinite ) return false;\n\t\t//\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nextValue)) ) {\n\t\t//!(pos >= _.min && pos <= _.max) && console.warn(\"out\", _.pos, pos, delta);\n\t\t//\t\tpos += loop;\n\t\t//\t}\n\t\t//}\n\t\treturn pos >= _.min && pos <= _.max;\n\t}\n\t\n}\n","/*\r\n * Copyright (c) 2022-2023 Braun Nathanael\r\n *\r\n * This project is dual licensed under one of the following licenses:\r\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\r\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\r\n *\r\n * You should have received a copy of theses licenses along with this work.\r\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\r\n */\r\n\r\nimport * as easingFn from \"d3-ease\";\r\nimport deepEqual from \"fast-deep-equal\";\r\nimport is from \"is\";\r\nimport React from \"react\";\r\nimport ReactDom from \"react-dom\";\r\nimport TweenerContext\r\n from \"../comps/TweenerContext\";\r\nimport {clearTweenableValue, deMuxLine, deMuxTween, muxToCss} from \"../utils/css\";\r\nimport tweenAxis\r\n from \"../utils/CssTweenAxis\";\r\nimport domUtils from \"../utils/dom\";\r\nimport Inertia from '../utils/inertia';\r\n\r\n\r\nlet isBrowserSide = (new Function(\"try {return this===window;}catch(e){ return false;}\"))(),\r\n isArray = is.array,\r\n _live, lastTm, _running = [];\r\n\r\n// Axis Interpolation timer ( not the rendering loop ! )\r\nconst Runner = {\r\n\trun : function ( tl, ctx, duration, cb ) {\r\n\t\tlet apply = ( pos, size ) => tl.go(pos / size, ctx);\r\n\t\t_running.push({ apply, duration, cpos: 0, cb });\r\n\t\ttl.go(0, ctx, true);//reset tl\r\n\t\t\r\n\t\tif ( !_live ) {\r\n\t\t\t_live = true;\r\n\t\t\tlastTm = Date.now();\r\n\t\t\t// console.log(\"TL runner On\");\r\n\t\t\tsetTimeout(this._tick, 16);\r\n\t\t}\r\n\t},\r\n\t_tick: function _tick() {\r\n\t\tlet i = 0, o, tm = Date.now(), delta = tm - lastTm;\r\n\t\tlastTm = tm;\r\n\t\tfor ( ; i < _running.length; i++ ) {\r\n\t\t\t_running[i].cpos = Math.min(delta + _running[i].cpos, _running[i].duration);//cpos\r\n\t\t\t_running[i].apply(\r\n\t\t\t\t_running[i].cpos, _running[i].duration\r\n\t\t\t);\r\n\t\t\t// console.log(\"TL runner \",_running[i][3]);\r\n\t\t\tif ( _running[i].cpos == _running[i].duration ) {\r\n\t\t\t\t\r\n\t\t\t\t_running[i].cb && setTimeout(_running[i].cb);\r\n\t\t\t\t_running.splice(i, 1), i--;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\tif ( _running.length )\r\n\t\t\tsetTimeout(_tick, 16);\r\n\t\telse {\r\n\t\t\t// console.log(\"TL runner Off\");\r\n\t\t\t_live = false;\r\n\t\t}\r\n\t},\r\n};\r\n/**\r\n * The main tweener component\r\n */\r\nexport default class Tweener extends React.Component {\r\n\t\r\n\taxes = {};\r\n\t_scrollWatcherByAxis = {};\r\n\t\r\n\t// ------------------------------------------------------------\r\n\t// -------------------- TweenRefs utils -----------------------\r\n\t// ------------------------------------------------------------\r\n\t_swap = {};\r\n\t\r\n\tconstructor( props ) {\r\n\t\tsuper(...arguments);\r\n\t\tlet _ = this._ = {\r\n\t\t\trefs : {},\r\n\t\t\tmuxByTarget: {},\r\n\t\t};\r\n\t\t_.box = {\r\n\t\t\tx: 100,\r\n\t\t\ty: 100,\r\n\t\t\tz: 800\r\n\t\t};\r\n\t\tthis.__isTweener = true;\r\n\t\t_._rafLoop = this._rafLoop.bind(this);\r\n\t\t_.rootRef = this.props.forwardedRef || React.createRef();\r\n\t\t_.options = {\r\n\t\t\tmaxClickTm : 200,\r\n\t\t\tmaxClickOffset: 5,\r\n\t\t\t...(props.tweenerOptions || {})\r\n\t\t};\r\n\t\t_.tweenRefCSS = {};\r\n\t\t_.tweenRefs = {};\r\n\t\t_.tweenRefMaps = {};\r\n\t\t_.iMapOrigin = {};\r\n\t\t_.tweenRefInitialData = {};\r\n\t\t_.tweenEnabled = true;\r\n\t\t_.tweenRefOrigin = {};\r\n\t\t_.tweenRefOriginCss = {};\r\n\t\t_.muxDataByTarget = _.muxDataByTarget || {};\r\n\t\t_.tweenRefDemuxed = _.tweenRefDemuxed || {};\r\n\t\t_.tweenRefTargets = _.tweenRefTargets || [];\r\n\t\t_.runningAnims = _.runningAnims || [];\r\n\t\t\r\n\t\t_.scrollHook = [];\r\n\t\t_.activeInertia = [];\r\n\t\tisBrowserSide && window.addEventListener(\r\n\t\t\t\"resize\",\r\n\t\t\tthis._.onResize = ( e ) => {//@todo\r\n\t\t\t\tthis._updateBox();\r\n\t\t\t\tthis._updateTweenRefs();\r\n\t\t\t\t_.rootRef?.current?.windowDidResize?.(e);\r\n\t\t\t});\r\n\t}\r\n\t\r\n\t/**\r\n\t * Register tweenable element\r\n\t * return its current style\r\n\t * @param id\r\n\t * @param iStyle\r\n\t * @param iMap\r\n\t * @param pos\r\n\t * @param noref\r\n\t * @param mapReset\r\n\t * @returns {style,ref}\r\n\t */\r\n\ttweenRef( id, iStyle = {}, iMap = {}, pos, ref, noref, mapReset ) {// ref initial style\r\n\t\t\r\n\t\t\r\n\t\tlet _ = this._,\r\n\t\t tweenableMap = {};\r\n\t\t\r\n\t\tlet initials = {};\r\n\t\tif ( !_.tweenRefs[id] )\r\n\t\t\t_.tweenRefTargets.push(id);\r\n\t\t//if ( id === \"items\" ) {\r\n\t\t//\tdebugger\r\n\t\t//}\r\n\t\t//ref && console.warn('ref ', id, ref)\r\n\t\t\r\n\t\tif ( _.tweenRefs[id] && (\r\n\t\t\tmapReset\r\n\t\t\t|| (_.iMapOrigin[id] !== iMap || !deepEqual(iMap, _.iMapOrigin[id]))\r\n\t\t\t|| (_.tweenRefOriginCss[id] !== iStyle || !deepEqual(iStyle, _.tweenRefOriginCss[id]))\r\n\t\t) ) {\r\n\t\t\t// hot switch initial values\r\n\t\t\t//console.warn('ref exist & style is !==', id, iStyle,\r\n\t\t\t// _.tweenRefOriginCss[id], mapReset)\r\n\t\t\t_.iMapOrigin[id] = iMap;\r\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\r\n\t\t\tiStyle = iStyle || {};\r\n\t\t\tiMap = iMap || {};\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\r\n\t\t\t\r\n\t\t\t//console.log(\"update ref\", id)\r\n\t\t\t\r\n\t\t\t// minus initial values\r\n\t\t\tObject.keys(_.tweenRefOrigin[id])\r\n\t\t\t .forEach(\r\n\t\t\t\t key => (_.tweenRefMaps[id][key] -= _.tweenRefOrigin[id][key])\r\n\t\t\t );\r\n\t\t\t// set defaults values in case of\r\n\t\t\tObject.keys(initials)\r\n\t\t\t .forEach(\r\n\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\r\n\t\t\t\t ? _.tweenRefMaps[id][key]\r\n\t\t\t\t : initials[key])\r\n\t\t\t );\r\n\t\t\t// add new initial values\r\n\t\t\tObject.keys(tweenableMap)\r\n\t\t\t .forEach(\r\n\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\r\n\t\t\t );\r\n\t\t\t\r\n\t\t\tObject.keys(_.tweenRefOrigin[id])// unset\r\n\t\t\t .forEach(\r\n\t\t\t\t key => {\r\n\t\t\t\t\t clearTweenableValue(key, key, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\r\n\t\t\t\t }\r\n\t\t\t );\r\n\t\t\tObject.keys(_.tweenRefCSS[id])// unset not tweened\r\n\t\t\t .forEach(\r\n\t\t\t\t key => {\r\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] && !_.muxByTarget[id][key] && !iStyle[key] )\r\n\t\t\t\t\t\t delete _.tweenRefCSS[id][key];\r\n\t\t\t\t }\r\n\t\t\t );\r\n\t\t\tObject.keys(iStyle)// reset not tweened\r\n\t\t\t .forEach(\r\n\t\t\t\t key => {\r\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] !== iStyle[key] && !_.muxByTarget[id][key] )\r\n\t\t\t\t\t\t _.tweenRefCSS[id][key] = iStyle[key];\r\n\t\t\t\t }\r\n\t\t\t );\r\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\r\n\t\t\t\r\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\r\n\t\t\tthis._updateTweenRef(id, true);\r\n\t\t}\r\n\t\telse if ( !_.tweenRefs[id] ) {\r\n\t\t\t//console.log(\"init ref\", id)\r\n\t\t\t\r\n\t\t\t_.iMapOrigin[id] = iMap;\r\n\t\t\tiStyle = iStyle || {};\r\n\t\t\tiMap = iMap || {};\r\n\t\t\t\r\n\t\t\t_.tweenRefs[id] = true;\r\n\t\t\t_.muxByTarget[id] = _.muxByTarget[id] || {};\r\n\t\t\t_.muxDataByTarget[id] = _.muxDataByTarget[id] || {};\r\n\t\t\t\r\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\r\n\t\t\t\r\n\t\t\t_.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\r\n\t\t\tif ( _.tweenRefOrigin[id] ) {\r\n\t\t\t\t//debugger\r\n\t\t\t\t// minus initial values from axis pre init\r\n\t\t\t\t//Object.keys(_.tweenRefOrigin[id])\r\n\t\t\t\t// .forEach(\r\n\t\t\t\t//\t key => (_.tweenRefMaps[id][key] -= _.tweenRefOrigin[id][key])\r\n\t\t\t\t// );\r\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\r\n\t\t\t\t\r\n\t\t\t\t//// set defaults values in case of\r\n\t\t\t\tObject.keys(initials)\r\n\t\t\t\t .forEach(\r\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\r\n\t\t\t\t\t ? _.tweenRefMaps[id][key] - initials[key]\r\n\t\t\t\t\t : 0)\r\n\t\t\t\t );\r\n\t\t\t\t//// add new initial values\r\n\t\t\t\tObject.keys(tweenableMap)\r\n\t\t\t\t .forEach(\r\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\r\n\t\t\t\t );\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id]) };\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t// init / reset or get the tweenable view\r\n\t\t\t\ttweenableMap = Object.assign({}, initials, tweenableMap || {});\r\n\t\t\t\t\r\n\t\t\t\t// set defaults values in case of\r\n\t\t\t\t// add new initial values\r\n\t\t\t\tObject.keys(tweenableMap)\r\n\t\t\t\t .forEach(\r\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = (_.tweenRefMaps[id][key] || 0) + tweenableMap[key])\r\n\t\t\t\t );\r\n\t\t\t}\r\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\r\n\t\t\t_.tweenRefCSS[id] = iStyle;\r\n\t\t\ttweenableMap = _.tweenRefMaps[id];\r\n\t\t\tmuxToCss(tweenableMap, iStyle, _.muxByTarget[id], _.muxDataByTarget[id], _.box);\r\n\t\t\t\r\n\t\t}\r\n\t\telse {\r\n\t\t\t\r\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\r\n\t\t}\r\n\t\t//console.log('tweenRef::tweenRef:519: ', id, { ..._.muxDataByTarget[id] }, {\r\n\t\t// ..._.tweenRefCSS[id] });\r\n\t\tif ( noref )\r\n\t\t\treturn {\r\n\t\t\t\tstyle: { ..._.tweenRefCSS[id] }\r\n\t\t\t};\r\n\t\telse\r\n\t\t\treturn {\r\n\t\t\t\tstyle: { ..._.tweenRefCSS[id] },\r\n\t\t\t\tref : is.function(ref)\r\n\t\t\t\t ? node => (_.refs[id] = ref(node))\r\n\t\t\t\t : ref\r\n\t\t\t\t ? node => (_.refs[id] = ref.current = node)\r\n\t\t\t\t : node => (_.refs[id] = node)\r\n\t\t\t};\r\n\t}\r\n\t\r\n\t/**\r\n\t * Delete tweenable element\r\n\t * @param id\r\n\t */\r\n\trmTweenRef( id ) {\r\n\t\tif ( this._.tweenRefs[id] ) {\r\n\t\t\tthis._.tweenRefTargets.splice(this._.tweenRefTargets.indexOf(id), 1);\r\n\t\t\tdelete this._.tweenRefs[id];\r\n\t\t\tdelete this._.muxByTarget[id];\r\n\t\t\tdelete this._.muxDataByTarget[id];\r\n\t\t\tdelete this._.iMapOrigin[id];\r\n\t\t\tdelete this._.tweenRefOrigin[id];\r\n\t\t\tdelete this._.tweenRefCSS[id];\r\n\t\t\tdelete this._.tweenRefMaps[id];\r\n\t\t\tdelete this._.refs[id];\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * Reset tweenRefs\r\n\t * @param targets\r\n\t */\r\n\tresetTweenable( ...targets ) {\r\n\t\tlet _ = this._;\r\n\t\ttargets.forEach(\r\n\t\t\t( t ) => {\r\n\t\t\t\tthis.tweenRef(t, _.tweenRefOriginCss[t], _.iMapOrigin[t], null, null, null, true)\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis._updateTweenRefs();\r\n\t}\r\n\t\r\n\t/**\r\n\t * Update tweenRefs style ( anims & axis will still update the ref )\r\n\t * @param target\r\n\t * @param style\r\n\t * @param postPone\r\n\t * @returns {*}\r\n\t */\r\n\tupdateRefStyle( target, style, postPone ) {\r\n\t\tlet _ = this._, initials = {}, pureCss;\r\n\t\t\r\n\t\t// allow batched stykes updates\r\n\t\tif ( isArray(target) && isArray(style) )\r\n\t\t\treturn target.map(( m, i ) => this.updateRefStyle(m, style[i], postPone));\r\n\t\tif ( isArray(target) )\r\n\t\t\treturn target.map(( m ) => this.updateRefStyle(m, style, postPone));\r\n\t\t\r\n\t\tif ( !_.tweenRefMaps[target] )\r\n\t\t\treturn console.warn(\"React-Voodoo : Can't update styles of an unknown Node id '\", target, \"'\");\r\n\t\t\r\n\t\tpureCss = deMuxTween(style, _.tweenRefMaps[target], initials, _.muxDataByTarget[target], _.muxByTarget[target]);\r\n\t\tObject.assign(_.tweenRefCSS[target], pureCss);\r\n\t\tObject.assign(_.tweenRefOriginCss[target], pureCss);\r\n\t\tmuxToCss(_.tweenRefMaps[target], _.tweenRefCSS[target], _.muxByTarget[target], _.muxDataByTarget[target], _.box);\r\n\t\tthis._updateTweenRef(target, true);\r\n\t}\r\n\t\r\n\t// ------------------------------------------------------------\r\n\t// -------------------- Pushable anims ------------------------\r\n\t// ------------------------------------------------------------\r\n\t\r\n\t/**\r\n\t * Retrieve the tween ref dom node\r\n\t * @param id\r\n\t * @returns {*}\r\n\t */\r\n\tgetTweenableRef( id ) {\r\n\t\tif ( is.element(this._.refs[id]) )\r\n\t\t\treturn this._.refs[id];\r\n\t\telse if ( this._.refs[id]?._?.rootRef?.current && is.element(this._.refs[id]._.rootRef.current) )\r\n\t\t\treturn this._.refs[id]._.rootRef.current\r\n\t\telse if ( !this._.tweenRefs[id] )\r\n\t\t\tconsole.warn(\"react-voodoo: Can't find voodooNode \", id)\r\n\t}\r\n\t\r\n\t/**\r\n\t * Get the root dom node of the tweener element\r\n\t * @returns {*}\r\n\t */\r\n\tgetRootNode() {\r\n\t\ttry {\r\n\t\t\treturn this._.rootRef && this._.rootRef.current;\r\n\t\t} catch ( e ) {\r\n\t\t\treturn this._.rootRef && this._.rootRef.current;\r\n\t\t}\r\n\t}\r\n\t\r\n\t// ------------------------------------------------------------\r\n\t// ------------------ Scrollable axes -------------------------\r\n\t// ------------------------------------------------------------\r\n\t\r\n\t/**\r\n\t * Push anims\r\n\t * @param anim\r\n\t * @param then\r\n\t * @param skipInit\r\n\t * @returns {tweenAxis}\r\n\t */\r\n\tpushAnim( anim, then, keepResults = true ) {\r\n\t\tlet sl,\r\n\t\t initial,\r\n\t\t _ = this._,\r\n\t\t initials = {},\r\n\t\t fail;\r\n\t\t\r\n\t\tif ( isArray(anim) ) {\r\n\t\t\tsl = anim;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsl = anim.anims;\r\n\t\t\tinitial = anim.initial;\r\n\t\t}\r\n\t\t\r\n\t\tif ( !(sl instanceof tweenAxis) ) {\r\n\t\t\t// tweenLine, initials, data, demuxers\r\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\r\n\t\t\tsl = new tweenAxis(sl, this._.tweenRefMaps);\r\n\t\t\tObject.keys(initials)\r\n\t\t\t .forEach(\r\n\t\t\t\t id => (\r\n\t\t\t\t\t this._.tweenRefMaps[id] &&\r\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\r\n\t\t\t\t\t\t ...initials[id],\r\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\r\n\t\t\t\t\t }) || (fail = console.warn(\"react-voodoo : Can't find tween target \", id, \" in \", Tweener.displayName) || true)\r\n\t\t\t\t )\r\n\t\t\t )\r\n\t\t}\r\n\t\tif ( fail )\r\n\t\t\treturn;\r\n\t\t\r\n\t\t\r\n\t\treturn new Promise(\r\n\t\t\tresolve => {\r\n\t\t\t\t\r\n\t\t\t\t// start timer launch @todo\r\n\t\t\t\tsl.run(this._.tweenRefMaps, () => {\r\n\t\t\t\t\tlet i = this._.runningAnims.indexOf(sl);\r\n\t\t\t\t\tif ( i != -1 )\r\n\t\t\t\t\t\tthis._.runningAnims.splice(i, 1);\r\n\t\t\t\t\t//console.log( _.muxDataByTarget)\r\n\t\t\t\t\tObject.keys(initials)// unset\r\n\t\t\t\t\t .forEach(\r\n\t\t\t\t\t\t id => {\r\n\t\t\t\t\t\t\t Object.keys(initials[id])// unset\r\n\t\t\t\t\t\t\t .forEach(\r\n\t\t\t\t\t\t\t\t rkey => {\r\n\t\t\t\t\t\t\t\t\t // todo\r\n\t\t\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id], keepResults)\r\n\t\t\t\t\t\t\t\t })\r\n\t\t\t\t\t\t });\r\n\t\t\t\t\tsl.destroy();\r\n\t\t\t\t\tresolve(sl);\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t\tthis._.runningAnims.push(sl);\r\n\t\t\t\t\r\n\t\t\t\tif ( !this._.live ) {\r\n\t\t\t\t\tthis._.live = true;\r\n\t\t\t\t\trequestAnimationFrame(this._._rafLoop = this._._rafLoop || this._rafLoop.bind(this));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t).then(sl => (then && then(sl)));\r\n\t\t\r\n\t}\r\n\t\r\n\t/**\r\n\t * Update tweenRef raw tweened values\r\n\t * @param id\r\n\t * @param map\r\n\t * @param reset\r\n\t */\r\n\tapplyTweenState( id, map, reset ) {\r\n\t\tlet tmap = {}, initials = {};\r\n\t\tdeMuxTween(map, tmap, initials, this._.muxDataByTarget[id], this._.muxByTarget[id], true)\r\n\t\tObject.keys(tmap).map(\r\n\t\t\t( p ) => this._.tweenRefMaps[id][p] = (!reset && this._.tweenRefMaps[id][p] || initials[p]) + tmap[p]\r\n\t\t);\r\n\t}\r\n\t\r\n\t/**\r\n\t * Will init / update a scrollable axis\r\n\t * @param axe\r\n\t * @param _inertia\r\n\t * @param _scrollableArea\r\n\t * @param _scrollableBounds\r\n\t * @param _scrollableWindow\r\n\t * @param defaultPosition\r\n\t * @param scrollFirst\r\n\t * @param reset\r\n\t */\r\n\tinitAxis( axe, {\r\n\t\tinertia : _inertia,\r\n\t\tscrollableArea : _scrollableArea = 0,\r\n\t\tscrollableBounds: _scrollableBounds,\r\n\t\tscrollableWindow: _scrollableWindow,\r\n\t\tdefaultPosition,\r\n\t\tscrollFirst\r\n\t}, reset ) {\r\n\t\t\r\n\t\t\r\n\t\tlet _ = this._,\r\n\t\t dim = this.axes[axe],\r\n\t\t scrollableBounds = _scrollableBounds,\r\n\t\t scrollPos = !reset && dim\r\n\t\t ? dim.scrollPos\r\n\t\t : defaultPosition || scrollableBounds && scrollableBounds.min || 0,\r\n\t\t scrollableArea = Math.max(dim && dim.scrollableArea || 0, _scrollableArea),\r\n\t\t scrollableWindow = Math.max(dim && dim.scrollableWindow || 0, _scrollableWindow),\r\n\t\t targetPos = dim ? dim.targetPos : scrollPos,\r\n\t\t inertia = (\r\n\t\t\t dim ? dim.inertia : new Inertia({// todo mk pure\r\n\t\t\t\t disabled: !_inertia,\r\n\t\t\t\t ...(_inertia || {}),\r\n\t\t\t\t value: scrollPos\r\n\t\t\t })),\r\n\t\t nextDescr = {\r\n\t\t\t //...(_inertia || {}),\r\n\t\t\t scrollFirst,\r\n\t\t\t tweenAxis: dim && dim.tweenAxis || [],\r\n\t\t\t scrollPos,\r\n\t\t\t targetPos,\r\n\t\t\t inertia,\r\n\t\t\t scrollableWindow,\r\n\t\t\t scrollableBounds,\r\n\t\t\t scrollableArea,\r\n\t\t\t scrollTo : ( pos, tm, ease, noEvents ) => {\r\n\t\t\t\t return this.scrollTo(pos, tm, axe, ease, noEvents)\r\n\t\t\t }\r\n\t\t };\r\n\t\t\r\n\t\tthis.axes[axe] = nextDescr;\r\n\t\t!_inertia && (inertia._.disabled = true);\r\n\t\t(_inertia) && inertia && !inertia.active && (inertia._.pos = scrollPos);\r\n\t\t(_inertia) && inertia && (inertia.updateConf(_inertia));\r\n\t\tif ( inertia && scrollableBounds )\r\n\t\t\tinertia.setBounds?.(scrollableBounds.min, scrollableBounds.max);\r\n\t\telse\r\n\t\t\tinertia && inertia.setBounds?.(0, scrollableArea)\r\n\t}\r\n\t\r\n\t_getAxis( axe = \"scrollY\" ) {\r\n\t\tlet _ = this._;\r\n\t\t\r\n\t\tthis.axes[axe] = this.axes[axe] || {\r\n\t\t\ttweenAxis : [],\r\n\t\t\tscrollPos : _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\r\n\t\t\ttargetPos : 0,\r\n\t\t\tscrollableWindow: 0,\r\n\t\t\tscrollableArea : 0,\r\n\t\t\tinertia : new Inertia({\r\n\t\t\t\t value: _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\r\n\t\t\t\t ...(_.options.axes && _.options.axes[axe] && _.options.axes[axe].inertia || {})\r\n\t\t\t }),\r\n\t\t\tscrollTo : ( pos, tm, ease, noEvents ) => {\r\n\t\t\t\treturn this.scrollTo(pos, tm, axe, ease, noEvents)\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\treturn this.axes[axe];\r\n\t}\r\n\t\r\n\t/**\r\n\t * Return axis infos\r\n\t */\r\n\tgetAxisState( axe ) {\r\n\t\tlet _ = this._, state = {};\r\n\t\tthis.axes && Object.keys(this.axes)\r\n\t\t .forEach(\r\n\t\t\t axe => (state[axe] = this.axes[axe].targetPos || this.axes[axe].scrollPos)\r\n\t\t );\r\n\t\treturn state;\r\n\t}\r\n\t\r\n\tgetScrollPos( axis = \"scrollY\" ) {\r\n\t\tlet _ = this._, state = {};\r\n\t\treturn this.axes[axis]\r\n\t\t ? this.axes[axis].targetPos || this.axes[axis].scrollPos\r\n\t\t : 0\r\n\t}\r\n\t\r\n\t/**\r\n\t * Do scroll an axis\r\n\t * @param newPos\r\n\t * @param ms\r\n\t * @param axe\r\n\t * @param ease\r\n\t * @returns {Promise<any | never>}\r\n\t */\r\n\tscrollTo( newPos, ms = 0, axe = \"scrollY\", ease, noEvents ) {\r\n\t\tlet _ = this._;\r\n\t\tif ( !isBrowserSide ) {\r\n\t\t\tconsole.warn(\"React-voodoo : scrollTo can't be used serverside, use Axis defaultPosition prop to set initial axes position\");\r\n\t\t\treturn Promise.resolve();\r\n\t\t}\r\n\t\treturn new Promise(\r\n\t\t\t(( resolve, reject ) => {\r\n\t\t\t\tif ( this.axes && this.axes[axe] ) {\r\n\t\t\t\t\tlet oldPos = this.axes[axe].targetPos,\r\n\t\t\t\t\t setPos = pos => {\r\n\t\t\t\t\t\t //console.log('TweenableComp::setPos:514: ', newPos,pos, ms,\r\n\t\t\t\t\t\t // axe);\r\n\t\t\t\t\t\t pos = (~~(pos * 10000)) / 10000;\r\n\t\t\t\t\t\t this.axes[axe].targetPos = this.axes[axe].scrollPos = pos;\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t //this.axes[axe].inertia._doSnap()\r\n\t\t\t\t\t\t if ( ~~pos !== oldPos ) {\r\n\t\t\t\t\t\t\t this.axisDidScroll(~~pos, axe);\r\n\t\t\t\t\t\t\t _.rootRef?.current?.componentDidScroll?.(~~pos, axe);\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t this._updateTweenRefs()\r\n\t\t\t\t\t };\r\n\t\t\t\t\t\r\n\t\t\t\t\tnewPos = Math.max(0, newPos);\r\n\t\t\t\t\tnewPos = Math.min(newPos, this.axes[axe].scrollableArea || 0);\r\n\t\t\t\t\t\r\n\t\t\t\t\tthis.axes[axe].targetPos = newPos;\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ( !ms ) {\r\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(newPos);\r\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\r\n\t\t\t\t\t\t\tnewPos = this.axes?.[axe]?.inertia?._.pos;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\r\n\t\t\t\t\t\t\tsl => sl.goTo(newPos, _.tweenRefMaps, false, noEvents)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tsetPos(newPos);\r\n\t\t\t\t\t\tresolve()\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis._runScrollGoTo(axe, newPos, ms, easingFn[ease], noEvents, setPos, resolve)\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ( !_.live ) {\r\n\t\t\t\t\t\t_.live = true;\r\n\t\t\t\t\t\trequestAnimationFrame(_._rafLoop);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})).then(\r\n\t\t\tp => {\r\n\t\t\t\tthis.axes?.[axe]?.inertia?._detectCurrentSnap();\r\n\t\t\t}\r\n\t\t)\r\n\t}\r\n\t\r\n\t/**\r\n\t * Add scrollable tween axis (scrollable anims) to a global axis\r\n\t * @param anim\r\n\t * @param axe\r\n\t * @param size\r\n\t * @returns {tweenAxis}\r\n\t */\r\n\taddScrollableAnim( anim, axe = \"scrollY\", size ) {\r\n\t\tlet sl,\r\n\t\t _ = this._,\r\n\t\t initials = {},\r\n\t\t dim = this._getAxis(axe);\r\n\t\t\r\n\t\tif ( isArray(anim) ) {\r\n\t\t\tsl = anim;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tsl = anim.anims;\r\n\t\t\tsize = anim.length;\r\n\t\t}\r\n\t\t\r\n\t\t//console.warn(\"add scrollable\")\r\n\t\tif ( !(sl instanceof tweenAxis) ) {\r\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\r\n\t\t\t\r\n\t\t\tsl = new tweenAxis(sl, _.tweenRefMaps);\r\n\t\t\tsl.initials = initials;\r\n\t\t\t\r\n\t\t\tObject.keys(initials)\r\n\t\t\t .forEach(\r\n\t\t\t\t id => {\r\n\t\t\t\t\t _.tweenRefOrigin[id] = _.tweenRefOrigin[id] || {};\r\n\t\t\t\t\t \r\n\t\t\t\t\t _.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\r\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\r\n\t\t\t\t\t\t ...initials[id],\r\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\r\n\t\t\t\t\t })\r\n\t\t\t\t }\r\n\t\t\t );\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\t\r\n\t\t// init scroll\r\n\t\tdim.tweenAxis.push(sl);\r\n\t\tdim.scrollPos = dim.scrollPos || 0;\r\n\t\tdim.scrollableArea = dim.scrollableArea || 0;\r\n\t\tdim.scrollableArea = Math.max(dim.scrollableArea, sl.duration);\r\n\t\t\r\n\t\tif ( !dim.scrollableBounds )\r\n\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea);\r\n\t\t\r\n\t\tsl.goTo(dim.scrollPos, this._.tweenRefMaps, false, true);\r\n\t\tthis._updateTweenRefs();\r\n\t\treturn sl;\r\n\t}\r\n\t\r\n\t/**\r\n\t * Remove a tweenAxis object from a component scrollable axis\r\n\t * @param sl\r\n\t * @param axe\r\n\t */\r\n\trmScrollableAnim( sl, axe = \"scrollY\" ) {\r\n\t\tlet _ = this._, found,\r\n\t\t dim = this._getAxis(axe), twAxis;\r\n\t\tlet i = dim.tweenAxis.indexOf(sl);\r\n\t\tif ( i !== -1 ) {\r\n\t\t\t\r\n\t\t\t//dim.tweenAxis[i].destroy();\r\n\t\t\tdim.tweenAxis.splice(i, 1);\r\n\t\t\tdim.scrollableArea = Math.max(...dim.tweenAxis.map(tl => tl.duration), 0);\r\n\t\t\tif ( !dim.scrollableBounds )\r\n\t\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea || 0);\r\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps })\r\n\t\t\tsl.goTo(0, this._.tweenRefMaps, false, true);\r\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps[\"card\"] })\r\n\t\t\t\r\n\t\t\tObject.keys(sl.initials)// unset\r\n\t\t\t .forEach(\r\n\t\t\t\t id => {\r\n\t\t\t\t\t Object.keys(sl.initials[id])// unset\r\n\t\t\t\t\t .forEach(\r\n\t\t\t\t\t\t rkey => {\r\n\t\t\t\t\t\t\t //debugger\r\n\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\r\n\t\t\t\t\t\t\t //!_.tweenRefCSS[id] &&\r\n\t\t\t\t\t\t\t //_.refs[id] && _.refs[id].style &&\r\n\t\t\t\t\t\t\t // _.refs[id].style[rkey] &&\r\n\t\t\t\t\t\t\t // (_.refs[id].style[rkey] = null);\r\n\t\t\t\t\t\t })\r\n\t\t\t\t });\r\n\t\t\tdelete sl.initials;\r\n\t\t\tsl.destroy();\r\n\t\t\tfound = true;\r\n\t\t\tthis._updateTweenRefs();\r\n\t\t}\r\n\t\t!found && console.warn(\"react-voodoo: Axis not found : \", axe)\r\n\t}\r\n\t\r\n\t/**\r\n\t * @private fn to push scrollTo\r\n\t * @param axe\r\n\t * @param to\r\n\t * @param tm\r\n\t * @param easing\r\n\t * @param tick\r\n\t * @param cb\r\n\t * @private\r\n\t */\r\n\t_runScrollGoTo( axe, to, tm, easing = x => x, noEvents, tick, cb ) {\r\n\t\tlet from = this.axes[axe].scrollPos,\r\n\t\t length = to - from;\r\n\t\t\r\n\t\t_running.push(\r\n\t\t\t{\r\n\t\t\t\tapply : ( pos, max ) => {\r\n\t\t\t\t\tlet x = (from + (easing(pos / max)) * length);\r\n\t\t\t\t\tif ( this._.tweenEnabled ) {\r\n\t\t\t\t\t\t// allow shouldLoop on scrollTo\r\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(x);\r\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\r\n\t\t\t\t\t\t\tx = this.axes?.[axe]?.inertia?._.pos;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\r\n\t\t\t\t\t\t\tsl => sl.goTo(x, this._.tweenRefMaps, false, noEvents)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\ttick && tick(x);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tduration: tm,\r\n\t\t\t\tcpos : 0,\r\n\t\t\t\tcb\r\n\t\t\t})\r\n\t\t;\r\n\t\t\r\n\t\tif ( !_live ) {\r\n\t\t\t_live = true;\r\n\t\t\tlastTm = Date.now();\r\n\t\t\t// console.log(\"TL runner On\");\r\n\t\t\tsetTimeout(Runner._tick, 16);\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * Hook to know if the composed element allow scrolling\r\n\t * @returns {boolean}\r\n\t */\r\n\tcomponentShouldScroll() {\r\n\t\tlet _ = this._;\r\n\t\treturn _.rootRef &&\r\n\t\t _.rootRef.current &&\r\n\t\t _.rootRef.current.componentShouldScroll ?\r\n\t\t _.rootRef.current.componentShouldScroll(...arguments) : true\r\n\t}\r\n\t\r\n\t/**\r\n\t * Add scroll listener to {axisId} axis, return unwatch\r\n\t * @param axisId\r\n\t * @param listener\r\n\t * @returns {function(...[*]=)}\r\n\t */\r\n\twatchAxis( axisId, listener ) {\r\n\t\tlet byId = this._scrollWatcherByAxis;\r\n\t\tbyId[axisId] = byId[axisId] || [];\r\n\t\tbyId[axisId].push(listener);\r\n\t\treturn () => {\r\n\t\t\tlet index = byId[axisId].indexOf(listener);\r\n\t\t\tbyId[axisId].splice(index, 1);\r\n\t\t}\r\n\t}\r\n\t\r\n\t// ------------------------------------------------------------\r\n\t// --------------- Inertia & scroll modifiers -----------------\r\n\t// ------------------------------------------------------------\r\n\t\r\n\taxisDidScroll( pos, axisId ) {\r\n\t\tlet watchers = this._scrollWatcherByAxis[axisId],\r\n\t\t i = watchers?.length;\r\n\t\tif ( watchers )\r\n\t\t\twhile ( i ) watchers[--i](pos);\r\n\t}\r\n\t\r\n\t/**\r\n\t * Retrieve updates from an axis inertia & apply them\r\n\t * @param dim\r\n\t * @param axe\r\n\t */\r\n\tapplyInertia( dim, axe ) {\r\n\t\tlet x = dim.inertia.update(), _ = this._;\r\n\t\t\r\n\t\tthis.axes[axe].tweenAxis.forEach(\r\n\t\t\tsl => {\r\n\t\t\t\tthis.axes[axe].targetPos = this.axes[axe].scrollPos = x;\r\n\t\t\t\tsl.goTo(x, this._.tweenRefMaps)\r\n\t\t\t}\r\n\t\t);\r\n\t\t//console.log(\"scroll at \" + x, axe, dim.inertia.active || dim.inertia.holding);\r\n\t\t//this.scrollTo(x, 0, axe);\r\n\t\t_.rootRef?.current?.componentDidScroll?.(x, axe);\r\n\t\tthis.axisDidScroll(x, axe);\r\n\t\tthis._updateTweenRefs()\r\n\t\tif ( dim.inertia.active || dim.inertia.holding ) {\r\n\t\t\tdim.inertiaFrame = setTimeout(this.applyInertia.bind(this, dim, axe), 33);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tdim.inertiaFrame = null;\r\n\t\t\t//console.log(\"complete\");\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * Return true if at least 1 of this tweener axis have it's inertia active\r\n\t * @returns {boolean}\r\n\t */\r\n\tisInertiaActive() {//todo\r\n\t\tlet _ = this._, active = false;\r\n\t\tthis.axes &&\r\n\t\tObject.keys(this.axes)\r\n\t\t .forEach(\r\n\t\t\t axe => (active = active || this.axes[axe] && this.axes[axe].inertia.active)\r\n\t\t );\r\n\t\treturn active;\r\n\t}\r\n\t\r\n\tisAxisOut( axis, v, abs ) {\r\n\t\tlet _ = this._,\r\n\t\t dim = this.axes && this.axes[axis],\r\n\t\t pos = abs ? v : dim && (dim.scrollPos + v);\r\n\t\t\r\n\t\tpos = pos && Math.round(pos);\r\n\t\t\r\n\t\treturn !dim\r\n\t\t\t|| (\r\n\t\t\t\tdim.scrollableBounds\r\n\t\t\t\t?\r\n\t\t\t\t(pos <= dim.scrollableBounds.min || pos >= dim.scrollableBounds.max)\r\n\t\t\t\t:\r\n\t\t\t\t(pos <= 0 || pos >= dim.scrollableArea)\r\n\t\t\t);\r\n\t}\r\n\t\r\n\t_activateNodeInertia( node ) {\r\n\t\tlet _ = this._,\r\n\t\t i = _.activeInertia.findIndex(item => (item.target === node));\r\n\t\tif ( i === -1 ) {\r\n\t\t\t_.activeInertia.push(\r\n\t\t\t\t{\r\n\t\t\t\t\tinertia: {\r\n\t\t\t\t\t\tx: new Inertia({\r\n\t\t\t\t\t\t\t max : node.scrollWidth - node.offsetLeft,\r\n\t\t\t\t\t\t\t value: node.scrollLeft\r\n\t\t\t\t\t\t }),\r\n\t\t\t\t\t\ty: new Inertia({\r\n\t\t\t\t\t\t\t max : node.scrollHeight - node.offsetHeight,\r\n\t\t\t\t\t\t\t value: node.scrollTop\r\n\t\t\t\t\t\t })\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttarget : node\r\n\t\t\t\t});\r\n\t\t\ti = _.activeInertia.length - 1;\r\n\t\t}\r\n\t\treturn _.activeInertia[i].inertia;\r\n\t\t\r\n\t}\r\n\t\r\n\t// ------------------------------------------------------------\r\n\t// --------------- Initialization & drawers -------------------\r\n\t// ------------------------------------------------------------\r\n\t\r\n\t_updateNodeInertia = () => {\r\n\t\tlet _ = this._, current, ln = _.activeInertia.length;\r\n\t\t\r\n\t\tif ( this._inertiaRaf )\r\n\t\t\tcancelAnimationFrame(this._inertiaRaf);\r\n\t\t\r\n\t\tfor ( let i = 0; ln > i; i++ ) {\r\n\t\t\tcurrent = _.activeInertia[i];\r\n\t\t\tif ( current.inertia.x.active || current.inertia.x.holding ) {\r\n\t\t\t\tcurrent.target.scrollLeft = ~~current.inertia.x.update()\r\n\t\t\t}\r\n\t\t\tif ( current.inertia.y.active || current.inertia.y.holding ) {\r\n\t\t\t\tcurrent.target.scrollTop = ~~current.inertia.y.update()\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif ( !current.inertia.x.active && !current.inertia.y.active && !current.inertia.x.holding && !current.inertia.y.holding ) {\r\n\t\t\t\t_.activeInertia.slice(i, 1);\r\n\t\t\t\ti--;\r\n\t\t\t\tln--;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ( ln !== 0 )\r\n\t\t\tthis._inertiaRaf = requestAnimationFrame(this._updateNodeInertia)\r\n\t\telse this._inertiaRaf = null;\r\n\t}\r\n\t\r\n\tsetRootRef( id ) {\r\n\t\tthis._.rootRef = id;\r\n\t}\r\n\t\r\n\t_updateBox() {\r\n\t\tlet node = this.getRootNode();\r\n\t\tif ( node ) {\r\n\t\t\tthis._.box.inited = true;\r\n\t\t\tthis._.box.x = node.offsetWidth;\r\n\t\t\tthis._.box.y = node.offsetHeight;\r\n\t\t}\r\n\t}\r\n\t\r\n\t_rafLoop() {\r\n\t\tthis._updateTweenRefs();\r\n\t\tif ( this._.runningAnims.length ) {\r\n\t\t\trequestAnimationFrame(this._._rafLoop);\r\n\t\t}\r\n\t\telse {\r\n\t\t\t//this._.live && console.log(\"RAF off\", this.constructor.displayName);\r\n\t\t\tthis._.live = false;\r\n\t\t}\r\n\t}\r\n\t\r\n\t_updateTweenRefs() {\r\n\t\tif ( this._.tweenEnabled ) {\r\n\t\t\tfor ( let i = 0, target, node, style; i < this._.tweenRefTargets.length; i++ ) {\r\n\t\t\t\ttarget = this._.tweenRefTargets[i];\r\n\t\t\t\tstyle = this._updateTweenRef(target);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\t_updateTweenRef( target, force ) {\r\n\t\tlet node, swap = this._swap, changes;\r\n\t\tthis._.tweenRefCSS[target] &&\r\n\t\tmuxToCss(this._.tweenRefMaps[target], swap, this._.muxByTarget[target], this._.muxDataByTarget[target], this._.box);\r\n\t\tnode = this.getTweenableRef(target);\r\n\t\tif ( node ) {\r\n\t\t\tfor ( let o in this._.tweenRefCSS[target] )\r\n\t\t\t\tif ( swap[o] === undefined ) {\r\n\t\t\t\t\tnode.style[o] = this._.tweenRefCSS[target][o];\r\n\t\t\t\t\t//\t\tnode.style[o] = null;\r\n\t\t\t\t\t//\t\tdelete this._.tweenRefCSS[target][o];\r\n\t\t\t\t}\r\n\t\t\tfor ( let o in swap )\r\n\t\t\t\tif ( this._.tweenRefCSS[target].hasOwnProperty(o) ) {\r\n\t\t\t\t\tif ( force || swap[o] !== this._.tweenRefCSS[target][o] ) {\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\tnode.style[o] = this._.tweenRefCSS[target][o] = swap[o];\r\n\t\t\t\t\t\t//if ( target == \"card\" ) console.log(target, o, node.style[o],\r\n\t\t\t\t\t\t// swap[o]);\r\n\t\t\t\t\t\tchanges = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdelete swap[o];\r\n\t\t\t\t}\r\n\t\t}\r\n\t\t//if ( !changes )\r\n\t\t//console.log('no changes', target, this._.tweenRefCSS[target], !!node, force)\r\n\t\treturn this._.tweenRefCSS[target];\r\n\t}\r\n\t\r\n\t\r\n\t// ------------------------------------------------------------\r\n\t// --------------- React Hooks --------------------------------\r\n\t// ------------------------------------------------------------\r\n\t\r\n\tcomponentWillUnmount() {\r\n\t\tlet node = this.getRootNode();\r\n\t\tif ( this._.tweenEnabled ) {\r\n\t\t\tthis._.tweenEnabled = false;\r\n\t\t\twindow.removeEventListener(\"resize\", this._.onResize);\r\n\t\t\t\r\n\t\t\tObject.keys(this.axes).forEach(\r\n\t\t\t\taxe => {\r\n\t\t\t\t\tthis.axes[axe].inertiaFrame &&\r\n\t\t\t\t\tclearTimeout(this.axes[axe].inertiaFrame);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t\tsuper.componentWillUnmount && super.componentWillUnmount(...arguments);\r\n\t}\r\n\t\r\n\tcomponentDidMount() {\r\n\t\tlet _static = this.constructor;\r\n\t\t\r\n\t\tthis._.rendered = true;\r\n\t\tif ( this._.tweenEnabled ) {\r\n\t\t\t// debugger;\r\n\t\t\tthis._updateBox();\r\n\t\t\tthis._updateTweenRefs();\r\n\t\t}\r\n\t\tif ( _static.scrollableAnim ) {\r\n\t\t\tif ( is.array(_static.scrollableAnim) )\r\n\t\t\t\tthis.addScrollableAnim(_static.scrollableAnim);\r\n\t\t\telse\r\n\t\t\t\tObject.keys(_static.scrollableAnim)\r\n\t\t\t\t .forEach(\r\n\t\t\t\t\t axe => this.addScrollableAnim(_static.scrollableAnim[axe], axe)\r\n\t\t\t\t )\r\n\t\t}\r\n\t\t//if ( this._.doRegister || this.__isFirst ) {\r\n\t\t//\r\n\t\t//\tthis._.doRegister = false;\r\n\t\t//}\r\n\t\tsuper.componentDidMount && super.componentDidMount(...arguments);\r\n\t}\r\n\t\r\n\tcomponentDidUpdate( prevProps, prevState ) {\r\n\t\t\r\n\t\tif ( this._.tweenEnabled ) {\r\n\t\t\tthis._updateBox();\r\n\t\t\tthis._updateTweenRefs();\r\n\t\t}\r\n\t\tsuper.componentDidUpdate && super.componentDidUpdate(...arguments);\r\n\t}\r\n\t\r\n\trender() {\r\n\t\tconst { BaseComponent, oProps } = this.props;\r\n\t\treturn <TweenerContext.Consumer>\r\n\t\t\t{\r\n\t\t\t\tparentTweener => {\r\n\t\t\t\t\tthis._parentTweener = parentTweener;\r\n\t\t\t\t\treturn <TweenerContext.Provider value={this}>\r\n\t\t\t\t\t\t<BaseComponent {...oProps} ref={this._.rootRef}\r\n\t\t\t\t\t\t tweener={this}/>\r\n\t\t\t\t\t</TweenerContext.Provider>;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t</TweenerContext.Consumer>;\r\n\t}\r\n}\r\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport is from \"is\";\nimport TweenerContext from \"../comps/TweenerContext\";\nimport Tweener from \"../comps/Tweener\";\n\n/**\n * Wrap & instanciate the Tweener Comp \"virtual\"\n * @param tweenerOptions\n * @param RootNodeComp\n */\nexport default ( tweenerOptions, RootNodeComp = 'div' ) => {\n\tconst parentTweener = React.useContext(TweenerContext),\n\t nodeRef = React.useRef(),\n\t lastTweener = React.useRef(),\n\t doUseParentTweener = React.useMemo(\n\t\t () => (tweenerOptions === true || is.string(tweenerOptions)),\n\t\t []\n\t ),\n\t tweener = React.useMemo(\n\t\t () => {\n\t\t\t if ( tweenerOptions === true )// keep tweener from context ( parent )\n\t\t\t\t return parentTweener;\n\t\t\t\n\t\t\t if ( is.string(tweenerOptions) ) {// return named tweener or most root tweener\n\t\t\t\t let pTweener = parentTweener;\n\t\t\t\t\n\t\t\t\t while ( pTweener?._ && pTweener._.options.name !== tweenerOptions )\n\t\t\t\t\t if ( pTweener._parentTweener )\n\t\t\t\t\t\t pTweener = pTweener._parentTweener;\n\t\t\t\t\t else {\n\t\t\t\t\t\t console.warn('react-voodoo: No parent tweener found with option.key === \"' + tweenerOptions + '\"');\n\t\t\t\t\t\t break;\n\t\t\t\t\t }\n\t\t\t\t\n\t\t\t\t return pTweener;\n\t\t\t }\n\t\t\t\n\t\t\t let tw = new Tweener({\n\t\t\t\t forwardedRef: nodeRef,\n\t\t\t\t tweenerOptions\n\t\t\t });\n\t\t\t tw.isMountedFromHook = true;\n\t\t\t tw._parentTweener = parentTweener;\n\t\t\t return tw;\n\t\t },\n\t\t []\n\t ),\n\t ViewBox = React.useMemo(\n\t\t () => (\n\t\t\t React.forwardRef(\n\t\t\t\t ( { children, ...props }, ref ) => {\n\t\t\t\t\t return <TweenerContext.Provider value={tweener}>\n\t\t\t\t\t\t <RootNodeComp\n\t\t\t\t\t\t\t ref={!ref\n\t\t\t\t\t\t\t ? nodeRef\n\t\t\t\t\t\t\t : ( node ) => (ref.current = nodeRef.current = node)} {...props}>\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t children\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t </RootNodeComp>\n\t\t\t\t\t </TweenerContext.Provider>\n\t\t\t\t }\n\t\t\t )\n\t\t ),\n\t\t []\n\t )\n\t\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\t//console.warn(\"didmount\", nodeRef.current, lastTweener.current === TweenerEl)\n\t\t\ttweener.componentDidMount();\n\t\t\tlastTweener.current = tweener;\n\t\t\treturn () => {\n\t\t\t\tif ( !lastTweener.current?._ )\n\t\t\t\t\treturn;\n\t\t\t\t//console.warn(\"unmount\")\n\t\t\t\tlastTweener.current.componentWillUnmount();\n\t\t\t\tlastTweener.current = null;\n\t\t\t}\n\t\t}, []\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\t//console.warn(\"didupdate\", nodeRef.current)\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t\t\n\t\t}\n\t\t,\n\t\t[nodeRef.current]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._parentTweener = parentTweener;\n\t\t},\n\t\t[parentTweener]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._.options = tweenerOptions;\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t},\n\t\t[tweenerOptions]\n\t)\n\treturn React.useMemo(\n\t\t() => ([tweener, ViewBox]),\n\t\t[ViewBox, tweener]\n\t);\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport React from 'react';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\n\nexport default ( {\n\t children,\n\t id,\n\t axe = id,\n\t scrollFirst, bounds,\n\t scrollableWindow, inertia, size, defaultPosition,\n\t items = [],\n } ) => {\n\tconst µ = React.useRef({}).current,\n\t [tweener] = useVoodoo(true);\n\t\n\tif ( !µ.previousAxis || µ.previousAxis !== axe ) {//....\n\t\tµ.previousAxis = axe;\n\t\tµ.previousInertia = inertia;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tsize,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t}, true);\n\t}\n\telse if ( !µ.previousInertia || µ.previousInertia !== inertia || µ.previousBounds !== bounds || µ.previousScrollableWindow !== scrollableWindow ) {//....\n\t\tµ.previousInertia = inertia;\n\t\tµ.previousAxis = axe;\n\t\tµ.previousBounds = bounds;\n\t\tµ.previousScrollableWindow = scrollableWindow;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tsize,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t});\n\t}\n\tif ( !µ.previousTweener || µ.previousTweener !== tweener ) {// mk axe not modifiable\n\t\tµ.previousTweener && µ.lastTL && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweener = tweener;\n\t\tµ.previousTweens = items;\n\t}\n\telse if ( µ.previousTweens !== items && !(µ.previousTweens && deepEqual(items, µ.previousTweens)) ) {// is deepEq really required ?\n\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tµ.lastTL = null;\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweens = items;\n\t}\n\t\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\treturn () => {\n\t\t\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\t\t\t\n\t\t\t\tdelete µ.previousTweener;\n\t\t\t\tdelete µ.previousScrollable;\n\t\t\t}\n\t\t}, [])\n\treturn <React.Fragment/>;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"shortid\");","/*\r\n * Copyright (c) 2022-2023 Braun Nathanael\r\n *\r\n * This project is dual licensed under one of the following licenses:\r\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\r\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\r\n *\r\n * You should have received a copy of theses licenses along with this work.\r\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\r\n */\r\n\r\n\r\nexport function isClassComponent(component) {\r\n return (\r\n typeof component === 'function' &&\r\n !!component.prototype.isReactComponent\r\n )\r\n}\r\nexport function isFunctionalComponent(Component) {\r\n return (\r\n typeof Component === 'function' // can be various things\r\n && !(\r\n Component.prototype // native arrows don't have prototypes\r\n && Component.prototype.isReactComponent // special property\r\n )\r\n );\r\n}\r\n\r\nexport function isReactComponent(component) {\r\n return (\r\n isClassComponent(component) ||\r\n isFunctionalComponent(component)\r\n )\r\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport is from \"is\";\nimport React from 'react';\nimport shortid from 'shortid';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\nimport {isFunctionalComponent} from '../utils/react';\n\nfunction setTarget( anims, target ) {\n\treturn anims.map(\n\t\ttween => ({\n\t\t\t...tween,\n\t\t\ttarget\n\t\t})\n\t)\n}\n\nconst Node = React.forwardRef(( {\n\t children,\n\t id = React.useMemo(() => shortid.generate(), []),\n\t style, initial, pos, noRef, reset, tweener,\n\t isRoot,\n\t axes,\n\t refProp = \"nodeRef\",\n\t tweenLines = axes,\n\t tweenAxis = tweenLines,\n\t ...props\n }, ref ) => {\n\tlet µ = React.useRef({}).current,\n\t [parentTweener] = useVoodoo(true);\n\tparentTweener = tweener || parentTweener;\n\t\n\tif ( !parentTweener ) {\n\t\tconsole.error(\"No Voodoo tweener found in the context, is there any parent ViewBox ?\")\n\t\treturn <React.Fragment/>;\n\t}\n\t//console.warn(\"render : \", this.__tweenableId, this._currentTweener,\n\t// parentTweener, this._currentTweener !== parentTweener)\n\tlet twRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t pos, ref, noRef),\n\t axisItemsChange;\n\t\n\t\n\t// remove refs when unmount\n\tReact.useEffect(\n\t\t() => () => {\n\t\t\tif ( µ._tweenAxisObj ) {\n\t\t\t\tObject.keys(µ._tweenAxisObj)\n\t\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t}\n\t\t\tif ( µ._currentTweener ) {\n\t\t\t\tµ._currentTweener.rmTweenRef(µ.__tweenableId)\n\t\t\t\tµ._currentTweener.setRootRef(undefined);\n\t\t\t}\n\t\t\tdelete µ._currentTweener;\n\t\t\tdelete µ._tweenAxisObj;\n\t\t\tdelete µ._previousScrollable;\n\t\t},\n\t\t[]\n\t)\n\t// register axes if tweener or node axis items change\n\taxisItemsChange = µ._tweenAxis !== tweenAxis && !(µ._tweenAxis && deepEqual(tweenAxis, µ._tweenAxis))\n\t\t|| (tweenAxis && !µ._tweenAxis);\n\tif ( axisItemsChange || µ._currentTweener !== parentTweener || µ._previousScrollable !== tweenAxis ) {\n\t\t\n\t\t// if items changes rm the old items\n\t\tif ( µ._currentTweener && axisItemsChange ) {\n\t\t\tµ._tweenAxisObj && Object.keys(µ._tweenAxisObj)\n\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t\n\t\t}\n\t\t//console.log(twRef, axisItemsChange, µ._tweenAxis, tweenAxis)\n\t\t\n\t\t// if tweener changes rm the node ref\n\t\tif ( µ._currentTweener && µ._currentTweener !== parentTweener ) {\n\t\t\tµ._currentTweener.rmTweenRef(id);\n\t\t}\n\t\t\n\t\t// if items changes reg the items on the tweener\n\t\tif ( axisItemsChange ) {\n\t\t\tµ._tweenAxis = tweenAxis;\n\t\t\tif ( tweenAxis && is.array(tweenAxis) )\n\t\t\t\tµ._tweenAxisObj = { scrollY: parentTweener.addScrollableAnim(setTarget(tweenAxis, id)) };\n\t\t\telse\n\t\t\t\tµ._tweenAxisObj = tweenAxis &&\n\t\t\t\t\tObject.keys(tweenAxis)\n\t\t\t\t\t .reduce(\n\t\t\t\t\t\t ( h, axe ) =>\n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t h[axe] = parentTweener.addScrollableAnim(setTarget(tweenAxis[axe], id), axe),\n\t\t\t\t\t\t\t\t\t h\n\t\t\t\t\t\t\t ), {});\n\t\t\ttwRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t\t\t pos, ref, noRef)\n\t\t}\n\t\t\n\t\t// anyway, if there change set the last css values\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };\n\t\t\n\t\tif ( props.hasOwnProperty(\"isRoot\") ) {\n\t\t\tµ._currentTweener && µ._currentTweener.setRootRef(undefined);\n\t\t\ttweener.setRootRef(id);\n\t\t}\n\t\t\n\t\tµ._currentTweener = parentTweener;\n\t\tµ._previousScrollable = tweenAxis;\n\t\t\n\t}\n\telse if ( twRef ) {\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };// should renew only if changed\n\t}\n\t\n\tlet RefChild = React.Children.only(children);\n\t\n\tif ( RefChild && React.isValidElement(RefChild) ) {//todo\n\t\tµ._lastRef = twRef;\n\t\t\n\t\tif ( isFunctionalComponent(RefChild.type) )\n\t\t\treturn <RefChild.type\n\t\t\t\t{...props}\n\t\t\t\t{...RefChild.props}\n\t\t\t\t{...twRef}\n\t\t\t\tref={undefined}\n\t\t\t\t{\n\t\t\t\t\t...{\n\t\t\t\t\t\t[refProp]: twRef.ref\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t/>;\n\t\t\n\t\treturn <RefChild.type\n\t\t\t{...props}\n\t\t\t{...RefChild.props}\n\t\t\t{...twRef}/>;\n\t\t\n\t}\n\telse {\n\t\tconsole.error(\"Invalid voodoo Node child : \", id)\n\t}\n\treturn <div>Invalid</div>;\n})\nexport default Node;\n\nNode.div = React.forwardRef(( { children, className, ...props }, ref ) => {\n\treturn <Node {...props} ref={ref}>\n\t\t<div className={className}>{children}</div>\n\t</Node>;\n})\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport React from 'react';\nimport ReactDom from \"react-dom\";\nimport useVoodoo from \"../hooks/useVoodoo\";\nimport domUtils from \"../utils/dom\";\n\nconst Draggable = React.forwardRef(( {\n\t children,\n\t Comp = 'div',\n\t nodeRef,\n\t items = [],\n\t xAxis, yAxis, yBoxRef,\n\t xBoxRef, yRef,\n\t yHook, xHook,\n\t tweener,\n\t mouseDrag = false,\n\t touchDrag = true,\n\t button = 0,\n\t ...props\n }, ref ) => {\n\tlet root = React.useRef(),\n\t µ = React.useRef({ root, _: {} }).current,\n\t [parentTweener] = useVoodoo(true),\n\t api = React.useMemo(\n\t\t () => ({\n\t\t\t \n\t\t\t /**\n\t\t\t * Return scrollable parent node list basing a dom node\n\t\t\t * @param node\n\t\t\t * @returns {T[]}\n\t\t\t */\n\t\t\t getScrollableNodes( node ) {\n\t\t\t\t let scrollable = [], parent = µ._parentTweener;//domUtils.findReactParents(node),\n\t\t\t\t // _ = µ._;\n\t\t\t\t \n\t\t\t\t while ( parent ) {\n\t\t\t\t\t scrollable.push(parent);\n\t\t\t\t\t parent = parent._parentTweener;\n\t\t\t\t }\n\t\t\t\t \n\t\t\t\t return scrollable\n\t\t\t },\n\t\t\t \n\t\t\t /**\n\t\t\t * Init touch & scroll listeners\n\t\t\t * Drive scroll & drag values updates\n\t\t\t * @private\n\t\t\t */\n\t\t\t _registerScrollListeners() {\n\t\t\t\t let rootNode = µ.root?.current,\n\t\t\t\t {\n\t\t\t\t\t xAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener, xBoxRef, yBoxRef, button\n\t\t\t\t } = µ.props,\n\t\t\t\t lastStartTm,\n\t\t\t\t cLock, dX,\n\t\t\t\t parents,\n\t\t\t\t dY, parentsState, refWidth, refHeight,\n\t\t\t\t _ = tweener._;\n\t\t\t\t \n\t\t\t\t if ( rootNode ) {\n\t\t\t\t\t domUtils.addEvent(\n\t\t\t\t\t\t rootNode, µ._.dragList = {\n\t\t\t\t\t\t\t 'dragstart': ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x,\n\t\t\t\t\t\t\t\t y, i, style;\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t parents = api.getScrollableNodes(e.target);\n\t\t\t\t\t\t\t\t lastStartTm = Date.now();\n\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t parentsState = [];\n\t\t\t\t\t\t\t\t refWidth = (xBoxRef?.current || rootNode)?.offsetWidth;\n\t\t\t\t\t\t\t\t refHeight = (yBoxRef?.current || rootNode)?.offsetHeight;\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t pTweener._updateBox();\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //tweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t //e.preventDefault();\n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t 'click' : ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm &&\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t (lastStartTm - Date.now() > _.options.maxClickTm) ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dY) > _.options.maxClickOffset ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dX) > _.options.maxClickOffset\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t ) {\n\t\t\t\t\t\t\t\t\t e.preventDefault();\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t\t //console.log(\"prevented click\", lastStartTm, Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t\t //console.log(':o ' + (lastStartTm - Date.now()) + ' ' + dX +\n\t\t\t\t\t\t\t\t\t //\t ' ' + dY, _.options.maxClickTm)\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //else console.log(\"click\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t 'drag' : ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, xBox,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, yBox,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t dX = -(descr._lastPos.x - descr._startPos.x);\n\t\t\t\t\t\t\t\t dY = -(descr._lastPos.y - descr._startPos.y);\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm && ((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY) < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip tap & click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t //console.log(':u ' + (lastStartTm - Date.now()) + ' ' + dX +\n\t\t\t\t\t\t\t\t\t // ' ' + dY)\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t else {\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t xDispatched = !dX;\n\t\t\t\t\t\t\t\t\t yDispatched = !dY;\n\t\t\t\t\t\t\t\t\t if ( _.options.dragDirectionLock ) {\n\t\t\t\t\t\t\t\t\t\t if ( cLock === \"Y\" || !cLock && Math.abs(dY * .5) > Math.abs(dX) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"Y\";\n\t\t\t\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t\t\t\t //xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t else if ( cLock === \"X\" || !cLock && Math.abs(dX * .5) > Math.abs(dY) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"X\";\n\t\t\t\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t\t\t\t //yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t\t //console.log(\"drag\", dX, dY, xAxis, yAxis,\n\t\t\t\t\t\t\t\t\t\t\t // pTweener.axes);\n\t\t\t\t\t\t\t\t\t\t\t if ( !x && !y )\n\t\t\t\t\t\t\t\t\t\t\t\t continue;\n\t\t\t\t\t\t\t\t\t\t\t //console.log('Draggable:::306: ', parents);\n\t\t\t\t\t\t\t\t\t\t\t if ( !parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t parentsState[i] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t x: x?.scrollPos,\n\t\t\t\t\t\t\t\t\t\t\t\t\t y: y?.scrollPos\n\t\t\t\t\t\t\t\t\t\t\t\t };\n\t\t\t\t\t\t\t\t\t\t\t\t x?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t y?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t xAxis && x && !x?.inertiaFrame && pTweener.applyInertia(x, xAxis);\n\t\t\t\t\t\t\t\t\t\t\t\t yAxis && y && !y?.inertiaFrame && pTweener.applyInertia(y, yAxis);\n\t\t\t\t\t\t\t\t\t\t\t\t //console.warn('Draggable::drag:190: ');\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t if ( x ) {\n\t\t\t\t\t\t\t\t\t\t\t\t xBox = xBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refWidth\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.x\n\t\t\t\t\t\t\t\t\t\t\t\t deltaX = dX && (dX / xBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( xHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaX = xHook(deltaX);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t if ( y ) {\n\t\t\t\t\t\t\t\t\t\t\t\t yBox = yBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refHeight\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.y\n\t\t\t\t\t\t\t\t\t\t\t\t deltaY = dY && (dY / yBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( yHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaY = yHook(deltaY);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t //console.log('scrollX ',\n\t\t\t\t\t\t\t\t\t\t\t // xDispatched,\n\t\t\t\t\t\t\t\t\t\t\t // x?.inertia?.isInbound(parentsState[ i\n\t\t\t\t\t\t\t\t\t\t\t // ].x + deltaX), parentsState[ i ].x + deltaX );\n\t\t\t\t\t\t\t\t\t\t\t if ( x && !xDispatched && deltaX && x?.inertia?.isInbound(parentsState[i].x + deltaX)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(xAxis, deltaX)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t x.inertia.hold(parentsState[i].x + deltaX);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].x = x.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t //console.log(\"scrollY\", yDispatched,\n\t\t\t\t\t\t\t\t\t\t\t // y?.inertia?.isInbound(parentsState[ i\n\t\t\t\t\t\t\t\t\t\t\t // ].y + deltaY), parentsState[ i ].y + deltaY);\n\t\t\t\t\t\t\t\t\t\t\t if ( y && !yDispatched && deltaY && y?.inertia?.isInbound(parentsState[i].y + deltaY)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(yAxis, deltaY)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t y.inertia.hold(parentsState[i].y + deltaY);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].y = y.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t //console.log('Draggable::drag:190: ',\n\t\t\t\t\t\t\t\t\t\t\t\t // parentsState[i].y,deltaY);\n\t\t\t\t\t\t\t\t\t\t\t\t yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t if ( yDispatched && xDispatched ) {\n\t\t\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t //e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //dX = 0;\n\t\t\t\t\t\t\t\t\t //dY = 0;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t ,\n\t\t\t\t\t\t\t 'dropped': ( e, touch, descr ) => {\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, vX,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, vY,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t cLock = undefined;\n\t\t\t\t\t\t\t\t //lastStartTm = undefined;\n\t\t\t\t\t\t\t\t //document.body.style.userSelect = '';\n\t\t\t\t\t\t\t\t //document.body.style.touchAction = '';\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener && parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t //console.log('Draggable::dropped:228: ',\n\t\t\t\t\t\t\t\t\t\t // pTweener._getAxis(xAxis)?.inertia);\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[xAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[yAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t //pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //else if ( is.element(tweener) ) {\n\t\t\t\t\t\t\t\t\t //\tcState = parentsState[i];\n\t\t\t\t\t\t\t\t\t //\tif ( cState ) {\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.x.release();\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.y.release();\n\t\t\t\t\t\t\t\t\t //\t}\n\t\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t if ( lastStartTm && !((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY)\n\t\t\t\t\t\t\t\t\t < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip\n\t\t\t\t\t\t\t\t // tap\n\t\t\t\t\t\t\t\t\t // &\n\t\t\t\t\t\t\t\t\t // click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t\t e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t //console.log(\"prevented\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //else {\n\t\t\t\t\t\t\t\t //console.log(\"not prevented\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t //lastStartTm = 0;\n\t\t\t\t\t\t\t\t parents = parentsState = null;\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t },\n\t\t\t\t\t\t null,\n\t\t\t\t\t\t _.options.enableMouseDrag || mouseDrag,\n\t\t\t\t\t\t touchDrag\n\t\t\t\t\t )\n\t\t\t\t\t µ._.doRegister = !!rootNode;\n\t\t\t\t }\n\t\t\t\t else {\n\t\t\t\t\t µ._.doRegister = true;\n\t\t\t\t }\n\t\t\t }\n\t\t\t \n\t\t }),\n\t\t []\n\t );\n\tReact.useEffect(\n\t\t() => {\n\t\t\tapi._registerScrollListeners();\n\t\t\treturn () => {\n\t\t\t\tlet node = µ.root?.current;\n\t\t\t\tif ( µ._.scrollEnabled ) {\n\t\t\t\t\tµ._.scrollEnabled = false;\n\t\t\t\t\t\n\t\t\t\t\tnode && µ._.dragList && domUtils.removeEvent(node\n\t\t\t\t\t\t, µ._.dragList)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( is.function(nodeRef) )\n\t\t\t\tnodeRef(root.current)\n\t\t\tif ( is.function(ref) )\n\t\t\t\tref(root.current)\n\t\t\telse if ( ref )\n\t\t\t\tref.current = root.current;\n\t\t},\n\t\t[nodeRef, ref]\n\t)\n\tµ.props = {\n\t\txAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener: tweener || parentTweener, xBoxRef, yBoxRef, button\n\t}\n\tµ._parentTweener = parentTweener;\n\treturn <Comp ref={root} {...props}>{children}</Comp>;\n})\nexport default Draggable;\n\nDraggable.div = ( props ) => {\n\treturn <Draggable {...props}/>;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport TweenerContext from \"../comps/TweenerContext\";\n\nexport default ()=>{\n\treturn React.useContext(TweenerContext)\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport Tweener from '../comps/Tweener';\nimport { isReactComponent } from '../utils/react';\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function asTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n options = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n if ( !BaseComponent ) {\n return function ( BaseComponent ) {\n return asTweener(BaseComponent, options)\n }\n }\n \n options = {\n wheelRatio : 5,\n maxClickTm : 200,\n maxClickOffset: 20,\n ...options,\n };\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <Tweener oProps={ props } forwardedRef={ ref }\n BaseComponent={ BaseComponent }\n tweenerOptions={ options }/>;\n });\n withRef.displayName = String.fromCharCode(0xD83E, 0xDDD9) + ( BaseComponent.displayName || BaseComponent.name );\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport is from \"is\";\n\nimport { isReactComponent } from '../utils/react';\nimport TweenerContext from \"../comps/TweenerContext\";\n\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function withTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n opts = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n \n if ( !( BaseComponent && ( BaseComponent.prototype instanceof React.Component || BaseComponent === React.Component ) ) ) {\n return function ( BaseComponent ) {\n return withTweener(BaseComponent, opts)\n }\n }\n \n class TweenerToProps extends React.Component {\n static displayName = ( BaseComponent.displayName || BaseComponent.name );\n \n render() {\n return <TweenerContext.Consumer>\n {\n tweener => {\n return <BaseComponent { ...this.props } tweener={ tweener }\n ref={ this.props.forwardedRef }/>;\n }\n }\n </TweenerContext.Consumer>;\n }\n }\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <TweenerToProps { ...props } forwardedRef={ ref }/>;\n });\n withRef.displayName = TweenerToProps.displayName;\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\nimport Axis from './comps/Axis';\nimport Context from './comps/TweenerContext';\nimport Node from './comps/Node';\nimport Draggable from './comps/Draggable';\nimport useVoodoo from './hooks/useVoodoo';\nimport useTweener from './hooks/useTweener';\nimport tweener from './spells/asTweener';\nimport child from './spells/withTweener';\nimport dom from './utils/dom.js';\nimport * as tools from './utils/tweenTools.js';\n\nimport TweenAxis from \"tween-axis\";\nimport * as D3Ease from \"d3-ease\";\n\nTweenAxis.EasingFunctions = D3Ease;\n\n@tweener\nclass Component extends React.Component {\n\trender() {\n\t\treturn this.props.children;\n\t}\n}\n\nexport {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\tuseVoodoo as hook,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom\n};\nexport default {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\thook: useVoodoo,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom\n};\n"],"names":["module","exports","walknSetExport","_target","path","value","i","fPath","split","target","length","Object","keys","default","__esModule","assign","_exports","require","any","bool","color","multi","number","ratio","props","units","unitsRe","RegExp","join","floatCut","Number","arguments","undefined","toFixed","expandShorthandProperty","property","type","childProps","properties","values","multiple","forEach","k","isShorthandProperty","isValidDeclaration","defaultUnits","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","opacity","saturate","sepia","defaultValue","release","twKey","tweenableMap","cssMap","dataMap","muxerMap","keepValues","tmpKey","pop","console","log","demuxOne","unitIndex","dkey","twVal","baseKey","data","box","unit","x","y","z","demux","key","tweenable","tmap","fkey","iValue","filters","ti","hasOwnProperty","substr","filter","muxOne","initials","noPropLock","seenUnits","match","is","unitKey","indexOf","realKey","parseFloat","mux","reOrder","tFnKey","baseData","fValue","u","_objectSpread","translateX","translateY","translateZ","scale","scaleZ","scaleX","scaleY","rotate","skewX","skewY","rotateX","rotateY","rotateZ","perspective","defaultBox","left","right","top","bottom","width","height","transforms","transform","warn","rKey","isString","muxer","slice","vect","rgba","alias","center","offset","count","v","nowhere","Math","min","max","VALUES_REG","PARTS_REG","LENGTH_REG","parseValue","stringifyValue","isLength","toNum","toPx","cssShadowParser","str","parts","inset","includes","last","nums","n","map","_nums","_slicedToArray","offsetX","offsetY","blurRadius","spreadRadius","obj","_ref","_ref$offsetX","_ref$offsetY","_ref$blurRadius","s","trim","test","isNaN","parse","stringify","arr","defaultMuxers","shadowMap","shadows","tmpValue","push","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","d","a","definition","o","defineProperty","enumerable","get","prop","prototype","call","r","Symbol","toStringTag","React","re_cssValueWithUnit","cssAdd","val1","val2","units1","units2","remap","result","_len","argz","Array","_key","apply","concat","cssMult","val","items","start","item","from","duration","withOffset","iDuration","inverseValues","reduce","h","reverse","MultiCssProps","addCss","_len2","sources","_key2","source","shift","_target$key","_toConsumableArray","addAllType","v1","v2","values1","values2","parseInt","extractCss","inverse","css","shiftTransforms","t","unshift","cssDemux","cssDemuxers","marginTop","marginLeft","marginRight","marginBottom","paddingTop","paddingLeft","paddingRight","paddingBottom","borderRadius","borderTopColor","borderLeftColor","borderRightColor","borderBottomColor","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","transformOrigin","zIndex","clearTweenableValue","cssKey","_muxerMap$path$","muxToCss","demuxers","deMuxTween","tween","deMuxedTween","fTween","excluded","types","getMuxerTypeOfProperty","deMuxLine","tweenLine","allPropsById","twAxis","line","demuxedTween","id","query","prefixes","recyclableTweenAxis","CssTweenAxis","_tweenAxis","cfg","scope","_classCallCheck","recyled","localLength","mount","Axis","_possibleConstructorReturn","_this","_callSuper","_inherits","_createClass","this","__marks","__marksLength","__marksKeys","__processors","__config","__activeProcess","__outgoing","__incoming","__cPos","__cIndex","__cMaxKey","tweenAxis","isBrowser","window","_dom","DocumentTouch","document","matchMedia","matches","prefix","navigator","appVersion","userAgent","dashedPrefix","__","onPageHided","onPageShown","dragging","dragEnabled","dragEnabledDesc","fingers","nbFingers","dragstartAnywhere","e","finger","desc","me","Dom","addEvent","dragAnywhere","dropAnywhere","dropWithoutClick","changedTouches","ln","identifier","_startPos","pageX","pageY","_startTs","timeStamp","_lastPos","dragstart","stopped","drag","preventNextClick","preventDefault","stopPropagation","stopImmediatePropagation","removeEvent","prevent","_this2","mouseDrag","dropped","getDraggable","node","touchDrag","locks","dragEnd","freeDraggable","splice","fn","bubble","addEventListener","attachEvent","related","removeEventListener","detachEvent","rmDragFn","object","passive","elem","dims","offsetWidth","offsetHeight","offsetTop","offsetLeft","offsetParent","findReactParents","element","fiberNode","comps","startsWith","return","stateNode","parentNode","easingFn","signOf","NaN","abs","floor","round","Inertia","opt","_","conf","constructor","config","active","pos","refFPS","currentStop","lastInertiaPos","stops","disabled","wayPoints","inertiaFn","easePolyOut","targetWayPointIndex","_detectCurrentSnap","willStop","willSnap","onStop","onSnap","shouldLoop","baseTS","startTS","Date","now","lastVelocity","lastIVelocity","lastAccel","posDiff","loopsDiff","holding","inertia","nextPos","loop","delta","lastHoldPos","sinceLastPos","iVel","lastBaseTs","lastBasePos","targetDist","targetWayPoint","bounds","_$conf$willEnd","_$conf","velSign","loopsTarget","loopsVelSum","targetDuration","pow","applyInertia","snapToBounds","inertiaStartTm","inertiaLastTm","_doSnap","willEnd","nextValue","at","currentWayPoint","currentWayPointIndex","loopDist","tm","forceSnap","mid","maxDuration","lPos","loopDec","gravity","maxJump","infinite","_defineProperty","_live","lastTm","isBrowserSide","Function","isArray","_running","Runner","_tick","cpos","cb","setTimeout","Tweener","_React$Component","current","activeInertia","_inertiaRaf","cancelAnimationFrame","scrollLeft","update","scrollTop","requestAnimationFrame","_updateNodeInertia","refs","muxByTarget","__isTweener","_rafLoop","bind","rootRef","forwardedRef","options","maxClickTm","maxClickOffset","tweenerOptions","tweenRefCSS","tweenRefs","tweenRefMaps","iMapOrigin","tweenRefInitialData","tweenEnabled","tweenRefOrigin","tweenRefOriginCss","muxDataByTarget","tweenRefDemuxed","tweenRefTargets","runningAnims","scrollHook","onResize","_$rootRef","_$rootRef$windowDidRe","_updateBox","_updateTweenRefs","windowDidResize","iStyle","iMap","ref","noref","mapReset","deepEqual","_updateTweenRef","style","targets","tweenRef","postPone","pureCss","_this3","m","updateRefStyle","_this$_$refs$id","anim","then","sl","fail","_this4","keepResults","anims","initial","displayName","Promise","resolve","run","rkey","destroy","live","reset","_this5","p","axe","_inertia$setBounds","_inertia$setBounds2","_this6","_inertia","_ref$scrollableArea","scrollableArea","_scrollableArea","_scrollableBounds","scrollableBounds","_scrollableWindow","scrollableWindow","defaultPosition","scrollFirst","dim","axes","scrollPos","targetPos","nextDescr","scrollTo","ease","noEvents","updateConf","setBounds","_this7","initialScrollPos","_this8","state","axis","newPos","_this9","ms","reject","_this9$axes","_this9$axes2","_this9$axes3","oldPos","setPos","_$rootRef2","_$rootRef2$componentD","axisDidScroll","componentDidScroll","_runScrollGoTo","goTo","_this9$axes4","_dim$inertia","_this10","_getAxis","found","_dim$inertia2","tl","to","_this11","easing","tick","_this11$axes","_this11$axes2","_this11$axes3","_$rootRef$current","componentShouldScroll","axisId","listener","byId","_scrollWatcherByAxis","index","watchers","_$rootRef3","_$rootRef3$componentD","_this12","inertiaFrame","_this13","findIndex","scrollWidth","scrollHeight","getRootNode","inited","force","swap","_swap","getTweenableRef","_this14","clearTimeout","_get","_getPrototypeOf","_this15","_static","rendered","scrollableAnim","addScrollableAnim","prevProps","prevState","_this16","_this$props","BaseComponent","oProps","TweenerContext","Consumer","parentTweener","_parentTweener","Provider","_extends","tweener","RootNodeComp","nodeRef","lastTweener","doUseParentTweener","pTweener","_pTweener","name","tw","isMountedFromHook","ViewBox","children","_objectWithoutProperties","_excluded","_lastTweener$current","componentDidMount","_lastTweener$current2","componentWillUnmount","_lastTweener$current3","_lastTweener$current4","_lastTweener$current5","_ref$axe","size","_ref$items","µ","_useVoodoo","useVoodoo","previousAxis","previousInertia","previousBounds","previousScrollableWindow","initAxis","previousTweener","previousTweens","lastTL","rmScrollableAnim","previousScrollable","isFunctionalComponent","Component","isReactComponent","component","isClassComponent","setTarget","Node","_ref$id","shortid","noRef","isRoot","_ref$refProp","refProp","_ref$tweenLines","tweenLines","_ref$tweenAxis","error","axisItemsChange","twRef","_tweenAxisObj","_currentTweener","rmTweenRef","__tweenableId","setRootRef","_previousScrollable","scrollY","RefChild","only","_lastRef","div","_ref3","className","_excluded2","Draggable","_ref$Comp","Comp","xAxis","yAxis","yBoxRef","xBoxRef","yHook","yRef","xHook","_ref$mouseDrag","_ref$touchDrag","_ref$button","button","root","api","getScrollableNodes","scrollable","parent","_registerScrollListeners","_µ$root","lastStartTm","cLock","dX","parents","dY","parentsState","refWidth","refHeight","rootNode","_µ$props","domUtils","dragList","touch","descr","_ref2","MouseEvent","_pTweener$axes","_pTweener$axes2","deltaX","xDispatched","xBox","deltaY","yDispatched","yBox","dragDirectionLock","_pTweener$axes3","_pTweener$axes4","_x4","_y4","_x","_y","_x2","_y2","_x3","_y3","startMove","isInbound","hold","_pTweener$axes5","_pTweener$axes6","cancelable","enableMouseDrag","doRegister","_µ$root2","scrollEnabled","SimpleObjectProto","asTweener","wheelRatio","withRef","String","fromCharCode","withTweener","opts","TweenerToProps","TweenAxis","D3Ease","_class","child","useTweener","hook","tools","Context","dom"],"sourceRoot":""}
1
+ {"version":3,"file":"react-voodoo.js","mappings":"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","sources":["webpack://react-voodoo/./src/utils/css/demux/transform.js","webpack://react-voodoo/./src/utils/css/demux/typed/number.js","webpack://react-voodoo/external commonjs-module \"color-rgba\"","webpack://react-voodoo/./src/utils/css/demux/typed/color.js","webpack://react-voodoo/./src/.___layerPackIndexUtils.js","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/defineProperty\"","webpack://react-voodoo/./src/MapOf.react_voodoo-S-utils-S-css-S-demux-S-typed-S-_-W-_-js.gen.js","webpack://react-voodoo/./src/utils/css/demux/typed/bool.js","webpack://react-voodoo/./src/utils/css/demux/typed/any.js","webpack://react-voodoo/./src/utils/css/demux/typed/ratio.js","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/slicedToArray\"","webpack://react-voodoo/./src/utils/css/cssUtils.js","webpack://react-voodoo/./src/utils/css/demux/typed/length.js","webpack://react-voodoo/./src/utils/css/demux/typed/multi.js","webpack://react-voodoo/./src/utils/css/demux/filter.js","webpack://react-voodoo/external commonjs-module \"is\"","webpack://react-voodoo/./src/utils/css/demux/typed/shadow.js","webpack://react-voodoo/external commonjs-module \"d3-ease\"","webpack://react-voodoo/webpack/bootstrap","webpack://react-voodoo/webpack/runtime/compat get default export","webpack://react-voodoo/webpack/runtime/define property getters","webpack://react-voodoo/webpack/runtime/hasOwnProperty shorthand","webpack://react-voodoo/webpack/runtime/make namespace object","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/classCallCheck\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/createClass\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/possibleConstructorReturn\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/getPrototypeOf\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/inherits\"","webpack://react-voodoo/external commonjs-module \"react\"","webpack://react-voodoo/external commonjs-module \"fast-deep-equal\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/extends\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://react-voodoo/./src/comps/TweenerContext.js","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/toConsumableArray\"","webpack://react-voodoo/external commonjs-module \"@babel/runtime/helpers/get\"","webpack://react-voodoo/external commonjs-module \"react-dom\"","webpack://react-voodoo/./src/utils/tweenTools.js","webpack://react-voodoo/./src/MapOf.react_voodoo-S-utils-S-css-S-demux-S-_-W-_-js.gen.js","webpack://react-voodoo/./src/utils/css/index.js","webpack://react-voodoo/external commonjs-module \"tween-axis\"","webpack://react-voodoo/./src/utils/CssTweenAxis.js","webpack://react-voodoo/./src/utils/dom.js","webpack://react-voodoo/./src/utils/inertia.js","webpack://react-voodoo/./src/comps/Tweener.js","webpack://react-voodoo/./src/hooks/useVoodoo.js","webpack://react-voodoo/./src/comps/Axis.js","webpack://react-voodoo/external commonjs-module \"shortid\"","webpack://react-voodoo/./src/utils/react.js","webpack://react-voodoo/./src/comps/Node.js","webpack://react-voodoo/./src/comps/Draggable.js","webpack://react-voodoo/./src/hooks/useTweener.js","webpack://react-voodoo/./src/spells/asTweener.js","webpack://react-voodoo/./src/spells/withTweener.js","webpack://react-voodoo/./src/index.js"],"sourcesContent":["/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\nconst defaultUnits = {\n\t //matrix : true,\n\t //translate : 'px',\n\t translateX: 'px',\n\t translateY: 'px',\n\t translateZ: 'px',\n\t scale : '',\n\t scaleZ : '',\n\t scaleX : '',\n\t scaleY : '',\n\t rotate : 'deg',\n\t //skew : 'deg',\n\t skewX: 'deg',\n\t skewY: 'deg',\n\t //matrix3d : true,\n\t //translate3d: true,\n\t //scale3d : true,\n\t //rotate3d : true,\n\t rotateX : 'deg',\n\t rotateY : 'deg',\n\t rotateZ : 'deg',\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n\t translateY: 'y',\n\t translateZ: 'z',\n\t rotateX : 'x',\n\t rotateY : 'y',\n\t rotateZ : 'z',\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom : 'y',\n\t width : 'x',\n\t height : 'y',\n }, defaultValue = {\n\t //skew : 1,\n\t //skewX : 1,\n\t //skewY : 1,\n\t scale : 1,\n\t scaleX: 1,\n\t scaleY: 1,\n\t scaleZ: 1\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length === 4 ) {\n\t\t//console.warn(\"dec\", twKey, dataMap[path[0]][path[1]][path[2]])\n\t\t// dec count on transform\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet transforms = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\ttransforms += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.transform = transforms;\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) && !is.object(value) ) {\n\t\tconsole.warn(\"React-Voodoo: Ignore unexpected value \", key, \":\", value, \" on \", target);\n\t\treturn demux;\n\t}\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = ~~(tweenable[key]);// + defaultUnits[key];\n\t\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = 0;\n\ttarget[key] = ~~value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"color-rgba\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport rgba from \"color-rgba\";\nimport is from \"is\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'),\n\t tmpKey = path.slice(0, path.length - 1).join('_');\n\t\n\t//console.log(\"dec\", tmpKey, path, dataMap[twKey])\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", twKey, path)\n\t}\n\tif ( tmpKey && !--dataMap[tmpKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\t//delete muxerMap[twKey];\n\t\t//delete cssMap[twKey];\n\t\t//console.log(\"delete\", tmpKey)\n\t}\n\t//}\n}\n\nexport function demux( key, tweenable, target, data ) {\n\tlet value = \"rgba(\" +\n\t\tMath.min(255, tweenable[key + '_r']) + \", \" +\n\t\tMath.min(255, tweenable[key + '_g']) + \", \" +\n\t\tMath.min(255, tweenable[key + '_b']) + \", \" +\n\t\tMath.min(1, tweenable[key + '_a']) + \")\";\n\t//console.log('demux::demux:38: ', value);\n\treturn target ?\n\t target[key] = value : value;\n}\n\nexport function mux( key, value, target, data, initials, noPropLock ) {\n\tlet vect = is.string(value)\n\t ? rgba(value)\n\t : value && [value.r || 0, value.g || 0, value.b || 0, value.a || 0];\n\t//console.log('mux::mux:44: ', value, vect);\n\tdata[key] = data[key] || 0;\n\tdata[key + '_r'] = data[key + '_r'] || 0;\n\tdata[key + '_g'] = data[key + '_g'] || 0;\n\tdata[key + '_b'] = data[key + '_b'] || 0;\n\tdata[key + '_a'] = data[key + '_a'] || 0;\n\tif ( !noPropLock ) {\n\t\tdata[key] += 4;\n\t\tdata[key + '_r']++;\n\t\tdata[key + '_g']++;\n\t\tdata[key + '_b']++;\n\t\tdata[key + '_a']++;\n\t}\n\t\n\ttarget[key + '_r'] = vect[0];\n\ttarget[key + '_g'] = vect[1];\n\ttarget[key + '_b'] = vect[2];\n\ttarget[key + '_a'] = vect[3];\n\t\n\tinitials[key] = 0;\n\t\n\tinitials[key + '_r'] = 0;\n\tinitials[key + '_g'] = 0;\n\tinitials[key + '_b'] = 0;\n\tinitials[key + '_a'] = 1;\n\t\n\treturn demux;\n}\n","/*\n * Copyright 2021 BRAUN Nathanael\n *\n * Use of this source code is governed by an MIT-style\n * license that can be found in the LICENSE file or at\n * https://opensource.org/licenses/MIT.\n */\nmodule.exports = {\n\t/**\n\t * Walk & set executables from globs requires\n\t * @param _target\n\t * @param path\n\t * @param value\n\t */\n\twalknSetExport( _target, path, value ) {\n\t\tlet fPath = path.split('/'),\n\t\t target = _target, i, module;\n\t\t\n\t\ti = 0;\n\t\twhile ( i < fPath.length - 1 ) target = target[fPath[i]] = target[fPath[i]] || {}, i++;\n\t\t\n\t\tmodule = Object.keys(value).length === 1 && value.default || value;\n\t\t\n\t\tif ( !target[fPath[i]] ) {\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse if ( !target[fPath[i]].__esModule ) {// if this is simple path obj write over\n\t\t\tObject.assign(module, target[fPath[i]]);\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t\telse {// when we are in hot reload this may delete some sub modules... @todo\n\t\t\ttarget[fPath[i]] = module;\n\t\t}\n\t}\n};","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\n\n\nconst _react_voodoo_utils_css_demux_typed_any_js = require(\"react-voodoo/utils/css/demux/typed/any.js\");\n\nwalknSetExport(_exports, \"any\", _react_voodoo_utils_css_demux_typed_any_js);\nconst _react_voodoo_utils_css_demux_typed_bool_js = require(\"react-voodoo/utils/css/demux/typed/bool.js\");\n\nwalknSetExport(_exports, \"bool\", _react_voodoo_utils_css_demux_typed_bool_js);\nconst _react_voodoo_utils_css_demux_typed_color_js = require(\"react-voodoo/utils/css/demux/typed/color.js\");\n\nwalknSetExport(_exports, \"color\", _react_voodoo_utils_css_demux_typed_color_js);\nconst _react_voodoo_utils_css_demux_typed_multi_js = require(\"react-voodoo/utils/css/demux/typed/multi.js\");\n\nwalknSetExport(_exports, \"multi\", _react_voodoo_utils_css_demux_typed_multi_js);\nconst _react_voodoo_utils_css_demux_typed_ratio_js = require(\"react-voodoo/utils/css/demux/typed/ratio.js\");\n\nwalknSetExport(_exports, \"ratio\", _react_voodoo_utils_css_demux_typed_ratio_js);\nconst _react_voodoo_utils_css_demux_typed_length_js = require(\"react-voodoo/utils/css/demux/typed/length.js\");\n\nwalknSetExport(_exports, \"length\", _react_voodoo_utils_css_demux_typed_length_js);\nconst _react_voodoo_utils_css_demux_typed_number_js = require(\"react-voodoo/utils/css/demux/typed/number.js\");\n\nwalknSetExport(_exports, \"number\", _react_voodoo_utils_css_demux_typed_number_js);\nconst _react_voodoo_utils_css_demux_typed_shadow_js = require(\"react-voodoo/utils/css/demux/typed/shadow.js\");\n\nwalknSetExport(_exports, \"shadow\", _react_voodoo_utils_css_demux_typed_shadow_js);\n\nexport const any = _exports.any;\n\nexport const bool = _exports.bool;\n\nexport const color = _exports.color;\n\nexport const length = _exports.length;\n\nexport const multi = _exports.multi;\n\nexport const number = _exports.number;\n\nexport const ratio = _exports.ratio;\n\nexport const shadow = _exports.shadow;\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\tlet value = !!(tweenable[key]);\n\treturn target ? target[key] = value : value;\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value === false ? 0 : 1;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\n\nconst defaultUnits = {\n\t left : 'px',\n\t right : 'px',\n\t top : 'px',\n\t bottom : 'px',\n\t width : 'px',\n\t height : 'px',\n\t perspective: 'px',\n },\n defaultBox = {\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom: 'y',\n\t width : 'x',\n\t height: 'y',\n }, defaultValue = {\n\t opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\t\n\tif ( path.length === 2 ) {\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n\t\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//dataMap[path[0]][path[1]] = undefined;\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tif ( cssMap ) delete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\t\n\t\tif ( !--dataMap[twKey].count && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\tdelete dataMap[twKey];\n\t\t\tdelete muxerMap[twKey];\n\t\t\tdelete cssMap[twKey];\n\t\t}\n\t\t//console.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitKey] || defaultUnits[baseKey] || \"px\";\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t\t\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n\tlet value, i = 0, y, rKey;\n\t\n\tvalue = \"\";\n\t\n\t//if ( key==\"height\" )\n\t//\tdebugger;\n\t\n\tif ( data[key].isString ) {\n\t\treturn target[key] = data[key].value[Math.round(tweenable[key])];\n\t}\n\t\n\tfor ( y = 0; y < data[key].length; y++ )\n\t\tif ( data[key][y] ) {\n\t\t\trKey = key + \"_\" + y;\n\t\t\tif ( tweenable[rKey] < 0 )\n\t\t\t\tvalue += (i\n\t\t\t\t ? \" - \"\n\t\t\t\t : \"-\") + demuxOne(y, -tweenable[rKey], baseKey || key, data, box);\n\t\t\telse\n\t\t\t\tvalue += (i\n\t\t\t\t ? \" + \"\n\t\t\t\t : \"\") + demuxOne(y, tweenable[rKey], baseKey || key, data, box);\n\t\t\ti++;\n\t\t}\n\tif ( i > 1 )\n\t\tvalue = \"calc(\" + value + \")\";\n\t\n\t//console.log(key, ':', value)\n\treturn target ? target[key] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n\t\n\tdata[key] = data[key] || [];\n\tlet seenUnits = [];\n\tif ( is.array(value) ) {\n\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\tmuxOne(key, value[i] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t}\n\t}\n\telse {\n\t\tmuxOne(key, value || 0, target, data, initials, noPropLock)\n\t}\n\t\n\treturn demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[key] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\t//\n\tif ( !match && is.string(value) ) {\n\t\tinitials[key] = defaultValue[key] || 0;\n\t\tdata[key].count = data[key].count||0;\n\t\tdata[key].count++;\n\t\tdata[key].isString = true;\n\t\tdata[key].value = data[key].value || [];\n\t\t!data[key].value.includes(value) && data[key].value.push(value);\n\t\ttarget[key] = data[key].value.indexOf(value);\n\t\treturn demux;\n\t}\n\tinitials[realKey] = defaultValue[key] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n}\n\nexport const mux = muxer;\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst defaultUnits = { opacity: 1 };\nimport {floatCut} from \"../../cssUtils\";\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\t\n\tif ( !--dataMap[twKey] && !keepValues ) {\n\t\tdelete tweenableMap[twKey];\n\t\tdelete dataMap[twKey];\n\t\tdelete muxerMap[twKey];\n\t\tdelete cssMap[twKey];\n\t}\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\ttarget[key] = Math.min(1, Math.max(0, floatCut(tweenable[key])));\n}\n\n\nexport const mux = ( key, value, target, data, initials, noPropLock ) => {\n\t\n\t\n\tinitials[key] = defaultUnits[key] || 0;\n\ttarget[key] = value;\n\tdata[key] = data[key] || 0;\n\t!noPropLock && data[key]++;\n\t\n\treturn demux;\n}","module.exports = require(\"@babel/runtime/helpers/slicedToArray\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nexport const props = {\n\t\"margin\" : { \"properties\": [\"marginTop\", \"marginRight\", \"marginBottom\", \"marginLeft\"], \"multiple\": true },\n\t\"marginBottom\" : { \"types\": [\"length\"] },\n\t\"marginLeft\" : { \"types\": [\"length\"] },\n\t\"marginRight\" : { \"types\": [\"length\"] },\n\t\"marginTop\" : { \"types\": [\"length\"] },\n\t\"padding\" : { \"properties\": [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"], \"multiple\": true },\n\t\"paddingBottom\": { \"types\": [\"length\"] },\n\t\"paddingLeft\" : { \"types\": [\"length\"] },\n\t\"paddingRight\" : { \"types\": [\"length\"] },\n\t\"paddingTop\" : { \"types\": [\"length\"] },\n\t\"bottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"left\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"right\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"top\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"zIndex\" : { \"types\": [\"integer\"] },\n\t\"width\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minWidth\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"height\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"maxHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"minHeight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"lineHeight\" : { \"types\": [\"length\"] },\n\t\"verticalAlign\": { \"types\": [\"length\"] },\n\t\"visibility\" : { \"types\": [\"visibility\"] },\n\t\"borderSpacing\": { \"types\": [\"length\"], \"multiple\": true },\n\t\"color\" : { \"types\": [\"color\"] },\n\t\"opacity\" : { \"types\": [\"number\"] },\n\t//\"background\" : { \"properties\": [\"backgroundColor\", \"backgroundPosition\", \"backgroundSize\"] },\n\t\"backgroundColor\" : { \"types\": [\"color\"] },\n\t\"backgroundPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"backgroundSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"border\" : { \"properties\": [\"borderStyle\", \"borderWidth\", \"borderColor\"] },\n\t\"borderBottom\" : { \"properties\": [\"borderBottomStyle\", \"borderBottomWidth\", \"borderBottomColor\"] },\n\t\"borderLeft\" : { \"properties\": [\"borderLeftStyle\", \"borderLeftWidth\", \"borderLeftColor\"] },\n\t\"borderRight\" : { \"properties\": [\"borderRightStyle\", \"borderRightWidth\", \"borderRightColor\"] },\n\t\"borderTop\" : { \"properties\": [\"borderTopStyle\", \"borderTopWidth\", \"borderTopColor\"] },\n\t\"borderColor\" : { \"properties\": [\"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\"] },\n\t\"borderWidth\" : { \"properties\": [\"borderTopWidth\", \"borderRightWidth\", \"borderBottomWidth\", \"borderLeftWidth\"] },\n\t\"borderBottomColor\" : { \"types\": [\"color\"] },\n\t\"borderLeftColor\" : { \"types\": [\"color\"] },\n\t\"borderRightColor\" : { \"types\": [\"color\"] },\n\t\"borderTopColor\" : { \"types\": [\"color\"] },\n\t\"borderBottomWidth\" : { \"types\": [\"length\"] },\n\t\"borderLeftWidth\" : { \"types\": [\"length\"] },\n\t\"borderRightWidth\" : { \"types\": [\"length\"] },\n\t\"borderTopWidth\" : { \"types\": [\"length\"] },\n\t\"borderRadius\" : { \"properties\": [\"borderTopLeftRadius\", \"borderTopRightRadius\", \"borderBottomRightRadius\", \"borderBottomLeftRadius\"] },\n\t\"borderTopLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderTopRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomRightRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"borderBottomLeftRadius\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"boxShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"caretColor\" : { \"types\": [\"color\"] },\n\t\"outline\" : { \"properties\": [\"outlineColor\", \"outlineWidth\"] },\n\t\"outlineColor\" : { \"types\": [\"color\"] },\n\t\"outlineWidth\" : { \"types\": [\"length\"] },\n\t\"outlineOffset\" : { \"types\": [\"length\"] },\n\t\"flex\" : { \"properties\": [\"flexGrow\", \"flexShrink\", \"flexBasis\"] },\n\t\"flexGrow\" : { \"types\": [\"number\"] },\n\t\"flexShrink\" : { \"types\": [\"number\"] },\n\t\"flexBasis\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"order\" : { \"types\": [\"integer\"] },\n\t\"font\" : { \"properties\": [\"fontWeight\", \"fontStretch\", \"fontSize\", \"lineHeight\"] },\n\t\"fontWeight\" : { \"types\": [\"font-weight\"] },\n\t\"fontStretch\" : { \"types\": [\"font-stretch\"] },\n\t\"fontSize\" : { \"types\": [\"length\"] },\n\t\"fontSizeAdjust\" : { \"types\": [\"number\"] },\n\t\"gridTemplateColumns\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplateRows\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"gridTemplate\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"grid\" : { \"properties\": [\"gridTemplateRows\", \"gridTemplateColumns\"] },\n\t\"gridRowGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridColumnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"gridGap\" : { \"properties\": [\"gridRowGap\", \"gridColumnGap\"] },\n\t\"clip\" : { \"types\": [\"rectangle\"] },\n\t\"clipPath\" : { \"types\": [\"basic-shape\"] },\n\t\"mask\" : { \"properties\": [\"maskPosition\", \"maskSize\"] },\n\t\"maskPosition\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"maskSize\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\" : true,\n\t\t\"repeatable\": true\n\t},\n\t\"shapeOutside\" : { \"types\": [\"basic-shape\"] },\n\t\"shapeMargin\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"shapeImageThreshold\" : { \"types\": [\"number\"] },\n\t\"scrollPadding\" : { \"properties\": [\"scrollPaddingTop\", \"scrollPaddingRight\", \"scrollPaddingBottom\", \"scrollPaddingLeft\"] },\n\t\"scrollPaddingTop\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingRight\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBottom\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingLeft\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlock\" : { \"properties\": [\"scrollPaddingBlockStart\", \"scrollPaddingBlockEnd\"] },\n\t\"scrollPaddingBlockStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingBlockEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInline\" : { \"properties\": [\"scrollPaddingInlineStart\", \"scrollPaddingInlineEnd\"] },\n\t\"scrollPaddingInlineStart\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollPaddingInlineEnd\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"scrollSnapMargin\" : { \"properties\": [\"scrollSnapMarginTop\", \"scrollSnapMarginRight\", \"scrollSnapMarginBottom\", \"scrollSnapMarginLeft\"] },\n\t\"scrollSnapMarginTop\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginRight\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBottom\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginLeft\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlock\" : { \"properties\": [\"scrollSnapMarginBlockStart\", \"scrollSnapMarginBlockEnd\"] },\n\t\"scrollSnapMarginBlockStart\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginBlockEnd\" : { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInline\" : { \"properties\": [\"scrollSnapMarginInlineStart\", \"scrollSnapMarginInlineEnd\"] },\n\t\"scrollSnapMarginInlineStart\": { \"types\": [\"length\"] },\n\t\"scrollSnapMarginInlineEnd\" : { \"types\": [\"length\"] },\n\t\"textDecoration\" : { \"properties\": [\"textDecorationColor\"] },\n\t\"textDecorationColor\" : { \"types\": [\"color\"] },\n\t\"textEmphasis\" : { \"properties\": [\"textEmphasisColor\"] },\n\t\"textEmphasisColor\" : { \"types\": [\"color\"] },\n\t\"textShadow\" : { \"types\": [\"shadow-list\"] },\n\t\"columns\" : { \"properties\": [\"columnWidth\", \"columnCount\"] },\n\t\"columnWidth\" : { \"types\": [\"length\"] },\n\t\"columnCount\" : { \"types\": [\"integer\"] },\n\t\"columnGap\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"columnRule\" : { \"properties\": [\"columnRuleColor\", \"columnRuleWidth\"] },\n\t\"columnRuleColor\" : { \"types\": [\"color\"] },\n\t\"columnRuleWidth\" : { \"types\": [\"length\"] },\n\t\"letterSpacing\" : { \"types\": [\"length\"] },\n\t\"tabSize\" : { \"types\": [\"length\"] },\n\t\"textIndent\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"wordSpacing\" : { \"types\": [\"length-percentage-calc\"] },\n\t\"transform\" : { \"types\": [\"transform\"] },\n\t\"transformOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t},\n\t\"perspective\" : { \"types\": [\"length\"] },\n\t\"perspectiveOrigin\" : {\n\t\t\"types\" : [\"length-percentage-calc\"],\n\t\t\"multiple\": true\n\t}\n}\n\nexport const units = ['', 'deg', 'box', 'bz', 'bh', 'bw', 'deg', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'];\nexport const unitsRe = new RegExp(\n\t\"([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['\\\\w+', 'deg', 'bz', 'bh', 'bw', 'cap', 'ch', 'deg', 'em', 'ic', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\"\n);\nexport const floatCut = ( v = 0 ) => Number(v.toFixed(3));\n\nexport function expandShorthandProperty( property, value, target = {} ) {\n\tlet type = props[property],\n\t childProps = type && type.properties,\n\t values = value.split(' ');\n\t\n\tif ( type.multiple )\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\ttarget[k] = values[i % values.length];\n\t\t\t}\n\t\t)\n\telse\n\t\tchildProps && childProps.forEach(\n\t\t\t( k, i ) => {\n\t\t\t\tif ( values[i] )\n\t\t\t\t\ttarget[k] = values[i];\n\t\t\t}\n\t\t)\n\treturn target;\n};\n\nexport function isShorthandProperty( property ) {\n\tlet type = props[property],\n\t childProps = type && type.properties;\n\treturn childProps && !!childProps.length;\n};\n\n\n\nexport function isValidDeclaration( property, value ) {\n\treturn !!props[property];\n};\n\n/**\n * Check if a CSS property can be animated\n * @param {string} property CSS property name\n * @return {boolean} True if the property can be animated\n */\nexport function canAnimate( property ) {\n\treturn props.hasOwnProperty(property);\n};\n\n/**\n * Get a definition of how a CSS property can be animated\n * @param {string} property CSS property name\n * @param {boolean} expand Expand definitions for sub-properties, when available\n * @return {object} Property definition, or null if it can't be animated\n */\nexport function getProperty( property, expand ) {\n\tif ( !exports.canAnimate(property) ) {\n\t\treturn null;\n\t}\n\tvar prop = props[property];\n\tvar ret = { name: property };\n\tObject.keys(prop).forEach(function ( key ) {\n\t\tvar value = prop[key];\n\t\tif ( Array.isArray(value) ) {\n\t\t\tif ( key === 'properties' && expand ) {\n\t\t\t\tvalue = value.map(function ( subProp ) {\n\t\t\t\t\treturn exports.getProperty(subProp, expand);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvalue = value.slice(); // clone\n\t\t\t}\n\t\t}\n\t\tret[key] = value;\n\t});\n\treturn ret;\n};\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\n\nconst defaultUnits = {\n\t left : 'px',\n\t right : 'px',\n\t top : 'px',\n\t bottom : 'px',\n\t width : 'px',\n\t height : 'px',\n\t perspective: 'px',\n },\n defaultBox = {\n\t left : 'x',\n\t right : 'x',\n\t top : 'y',\n\t bottom: 'y',\n\t width : 'x',\n\t height: 'y',\n }, defaultValue = {\n\t opacity: 0\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\t\n\tif ( path.length === 2 ) {\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]][path[1]], keepValues)\n\t\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//dataMap[path[0]][path[1]] = undefined;\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tif ( cssMap ) delete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitKey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitKey] || defaultUnits[baseKey] || \"px\";\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t\t\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box, baseKey ) {\n\tlet value, i = 0, y, rKey;\n\t\n\tvalue = \"\";\n\t\n\t//if ( key==\"height\" )\n\t//\tdebugger;\n\t\n\tfor ( y = 0; y < data[key].length; y++ )\n\t\tif ( data[key][y] ) {\n\t\t\trKey = key + \"_\" + y;\n\t\t\tif ( tweenable[rKey] < 0 )\n\t\t\t\tvalue += (i ? \" - \" : \"-\") + demuxOne(y, -tweenable[rKey], baseKey || key, data, box);\n\t\t\telse\n\t\t\t\tvalue += (i ? \" + \" : \"\") + demuxOne(y, tweenable[rKey], baseKey || key, data, box);\n\t\t\ti++;\n\t\t}\n\tif ( i > 1 )\n\t\tvalue = \"calc(\" + value + \")\";\n\t\n\t//console.log(key, ':', value)\n\treturn target ? target[key] = value : value;\n}\n\nexport function muxer( key, value, target, data, initials, noPropLock ) {\n\t\n\tdata[key] = data[key] || [];\n\tlet seenUnits = [];\n\tif ( is.array(value) ) {\n\t\tfor ( let i = 0; i < value.length; i++ ) {\n\t\t\tmuxOne(key, value[i] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t}\n\t}\n\telse {\n\t\tmuxOne(key, value || 0, target, data, initials, noPropLock)\n\t}\n\t\n\treturn demux;\n}\n\nexport function muxOne( key, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[key] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[key] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\n\nexport const mux = muxer;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport * as length from \"./number\";\n\nconst\n alias = {\n top : '0%',\n bottom: '100%',\n center: '50%',\n left : '0%',\n right : '100%'\n };\n\nfunction demux( key, tweenable, target, data, box, offset ) {\n \n let count = data[ \"_\" + key ], v = '', nowhere = {};\n \n for ( let i = 0; i < count; i++ ) {\n length.demux(key + '_' + i, tweenable, nowhere, data, box, offset);\n v += nowhere[ key + '_' + i ] + ' ';\n }\n \n target[ key ] = v;\n}\n\n\nfunction release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n let path = twKey.split('_'), tmpKey;// not optimal at all\n \n //if ( path.length === 2 ) {\n //\tconsole.log(\"dec\", twKey, dataMap[path[0]][path[1]])\n //\tif ( !--dataMap[path[0]][path[1]] && !keepValues ) {\n //\t\tdelete tweenableMap[twKey];\n //\t\tdelete dataMap[path[0]][path[1]];\n //\t}\n //\n //\tif ( !keepValues )\n //\t\twhile ( dataMap[path[0]].length &&\n // !dataMap[path[0]][dataMap[path[0]].length - 1] ) dataMap[path[0]].pop(); if (\n // dataMap[path[0]].length === 0 && !keepValues ) { delete dataMap[path[0]]; delete\n // muxerMap[path[0]]; delete cssMap[path[0]]; console.log(\"delete\", path[0]) } } else\n // { console.log(\"wtf\", path) }\n}\n\nexport default ( count ) => ( {\n mux: ( key, value, target, data, initials, noPropLock ) => {\n let values = value.split(' '), v;\n \n data[ key ] = data[ key ] || 0;\n noPropLock && data[ key ]++;\n data[ \"_\" + key ] = count;\n \n for ( let i = 0; i < count; i++ ) {\n v = values[ i % values.length ];\n v = is.string(v) && alias[ v ] || v;\n length.mux(key + '_' + i, v, target, data, initials, noPropLock)\n }\n \n return demux;\n }, demux, release\n} )\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../cssUtils\";\n\nconst\n\tdefaultUnits = {\n\t\tblur : 'px',\n\t\tbrightness: '%',\n\t\tcontrast : '%',\n\t\tdropShadow: true,\n\t\tgrayscale : '%',\n\t\thueRotate : 'deg',\n\t\tinvert : \"%\",\n\t\topacity : \"%\",\n\t\tsaturate : \"%\",\n\t\tsepia : \"%\"\n\t}, defaultValue = {};\n\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length === 4 ) {\n\t\t//console.warn(\"dec\", twKey, dataMap[path[0]][path[1]][path[2]])\n\t\t// dec count on filter\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free filter layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", twKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\t//if ( unit === 'box' ) {\n\t//\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t//\tunit = 'px';\n\t//}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet filters = \"\",\n\t tmpValue = {};\n\tlet ti = 0, tmap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\ttmap = data[key][ti];\n\t\tfor ( fkey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\tvalue = \"\";\n\t\t\t\ty = 0;\n\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t//console.log(\"mux \", key, dkey, unitKey)\n\t\t\t\t\t\t\n\t\t\t\t\t\t//if ( !tweenable[unitKey] )\n\t\t\t\t\t\t//\tcontinue;\n\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t//console.log(unitKey, tweenable[unitKey], iValue)\n\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\ty++;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif ( y > 1 )\n\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\n\t\t\t\tif ( y > 0 )\n\t\t\t\t\tfilters += fkey + \"(\" + (value || \"0\") + \") \";\n\t\t\t}\n\t}\n\ttarget.filter = filters;\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey],\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = defaultValue[baseKey] || 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', realKey, data[key][unitKey], initials[realKey], noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, tmap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\ttmap = value[ti];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in tmap )\n\t\t\tif ( tmap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = tmap[tFnKey];\n\t\t\t\tseenUnits = {};\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\t\n\t\t\t\t//console.warn(\"set \", key, dkey, noPropLock, baseData[tFnKey])\n\t\t\t\t\n\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t}\n\t\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","module.exports = require(\"is\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport {floatCut, units, unitsRe} from \"../../cssUtils\";\nimport {bool, color} from \"./(*).js\";\n\n\nconst cssShadowParser = (() => {\n\tconst VALUES_REG = /,(?![^\\(]*\\))/\n\tconst PARTS_REG = /\\s(?![^(]*\\))/\n\tconst LENGTH_REG = /^[0-9]+[a-zA-Z%]+?$/\n\t\n\tconst parseValue = str => {\n\t\tconst parts = str.split(PARTS_REG)\n\t\tconst inset = parts.includes('inset')\n\t\tconst last = parts.slice(-1)[0]\n\t\tconst color = !isLength(last) ? last : undefined\n\t\t\n\t\tconst nums = parts\n\t\t\t.filter(n => n !== 'inset')\n\t\t\t.filter(n => n !== color)\n\t\t\t.map(toNum)\n\t\tconst [offsetX, offsetY, blurRadius, spreadRadius] = nums\n\t\t\n\t\treturn {\n\t\t\tinset,\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t}\n\t}\n\t\n\tconst stringifyValue = obj => {\n\t\tconst {\n\t\t\t inset,\n\t\t\t offsetX = 0,\n\t\t\t offsetY = 0,\n\t\t\t blurRadius = 0,\n\t\t\t spreadRadius,\n\t\t\t color\n\t\t } = obj || {}\n\t\t\n\t\treturn [\n\t\t\t(inset ? 'inset' : null),\n\t\t\toffsetX,\n\t\t\toffsetY,\n\t\t\tblurRadius,\n\t\t\tspreadRadius,\n\t\t\tcolor\n\t\t].filter(v => v !== null && v !== undefined)\n\t\t .map(toPx)\n\t\t .map(s => ('' + s).trim())\n\t\t .join(' ')\n\t}\n\t\n\tconst isLength = v => v === '0' || LENGTH_REG.test(v)\n\tconst toNum = v => {\n\t\tif ( !/px$/.test(v) && v !== '0' ) return v\n\t\tconst n = parseFloat(v)\n\t\treturn !isNaN(n) ? n : v\n\t}\n\tconst toPx = n => typeof n === 'number' && n !== 0 ? (n + 'px') : n\n\t\n\tconst parse = str => str.split(VALUES_REG).map(s => s.trim()).map(parseValue)\n\tconst stringify = arr => arr.map(stringifyValue).join(', ')\n\t\n\treturn {\n\t\tparse,\n\t\tstringify\n\t}\n})()\n\n\nconst defaultUnits = {\n\t perspective: 'px',\n },\n defaultBox = {\n\t translateX: 'x',\n },\n defaultMuxers = {\n\t //blurRadius : number,\n\t inset: bool,\n\t //offsetX : number,\n\t //offsetY : number,\n\t //spreadRadius: number,\n\t color: color\n };\n\nexport function release( twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tif ( path.length > 2 ) {\n\t\t// dec count on transform\n\t\t\n\t\ttmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\tif ( defaultMuxers[path[2]] ) {\n\t\t\tdefaultMuxers[path[2]].release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n\t\t\tif ( !dataMap[tmpKey] ) {\n\t\t\t\t//console.log(\"dec\", tmpKey, dataMap[path[0]][path[1]][path[2]])\n\t\t\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\t\tdelete dataMap[path[0]];\n\t\t\t\tdelete muxerMap[path[0]];\n\t\t\t\tdelete cssMap[path[0]];\n\t\t\t\t//console.log(\"delete color\", twKey)\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t//console.log(\"dec\", twKey, dataMap[path[0]])\n\t\tif ( !--dataMap[path[0]][path[1]][path[2]] && !keepValues ) {\n\t\t\tdelete dataMap[path[0]][path[1]][path[2]];\n\t\t}\n\t\t//if ( Object.keys(dataMap[path[0]][path[1]]).length === 0 && !keepValues )\n\t\t//\tdelete dataMap[path[0]][path[1]];\n\t\t\n\t\t// free transform layers\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !dataMap[path[0]][dataMap[path[0]].length - 1] )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\t\n\t\t//tmpKey = path[0] + \"_\" + path[1] + \"_\" + path[2];\n\t\t// units\n\t\tif ( !--dataMap[tmpKey][path[3]] && !keepValues ) {\n\t\t\tdelete dataMap[tmpKey][path[3]];\n\t\t\t//dataMap[path[0]][path[3]] = undefined;\n\t\t\tdelete tweenableMap[twKey];\n\t\t\t//console.log(\"delete\", tmpKey)\n\t\t}\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[tmpKey].length && !dataMap[tmpKey][dataMap[tmpKey].length - 1] )\n\t\t\t\tdataMap[tmpKey].pop();\n\t\t\n\t\tif ( dataMap[tmpKey].length === 0 && !keepValues )\n\t\t\tdelete dataMap[tmpKey];\n\t\t\n\t\tif ( !keepValues )\n\t\t\twhile ( dataMap[path[0]].length && !Object.keys(dataMap[path[0]][dataMap[path[0]].length - 1]).length )\n\t\t\t\tdataMap[path[0]].pop();\n\t\t\n\t\tif ( dataMap[path[0]].length === 0 && !keepValues ) {\n\t\t\tdelete dataMap[path[0]];\n\t\t\tdelete muxerMap[path[0]];\n\t\t\tdelete cssMap[path[0]];\n\t\t\t//console.log(\"delete\", path[0])\n\t\t}\n\t}\n\telse {\n\t\tconsole.log(\"wtf\", path)\n\t}\n}\n\nexport function demuxOne( unitIndex, dkey, twVal, baseKey, data, box ) {\n\tlet value = twVal,\n\t unit = units[unitIndex] || defaultUnits[baseKey];\n\t\n\tif ( unit === 'box' ) {\n\t\tvalue = value * (box[defaultBox[baseKey]] || box.x);\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bw' ) {\n\t\tvalue = value * box.x;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'wh' ) {\n\t\tvalue = value * box.y;\n\t\tunit = 'px';\n\t}\n\tif ( unit === 'bz' ) {\n\t\tvalue = value * box.z;\n\t\tunit = 'px';\n\t}\n\t\n\tif ( unit === 'deg' )\n\t\tvalue = value % 360;\n\t\n\treturn unit ? floatCut(value) + unit : floatCut(value);\n}\n\nexport function demux( key, tweenable, target, data, box ) {\n\t//console.log(key)\n\tlet shadows = [],\n\t tmpValue = {};\n\tlet ti = 0, shadowMap, fkey, unitKey, unitIndex, dkey, u, iValue, y = 0, value;\n\tfor ( ; ti < data[key].length; ti++ ) {\n\t\tshadowMap = data[key][ti];\n\t\ttmpValue = {};\n\t\tfor ( fkey in shadowMap )\n\t\t\tif ( shadowMap.hasOwnProperty(fkey) ) {\n\t\t\t\tdkey = key + '_' + ti + '_' + fkey;\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tif ( defaultMuxers[fkey] ) {\n\t\t\t\t\tvalue = defaultMuxers[fkey].demux(dkey, tweenable, undefined, data, box);\n\t\t\t\t\t//continue;\n\t\t\t\t\t//console.log(dkey, tweenable[dkey])\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvalue = \"\";\n\t\t\t\t\ty = 0;\n\t\t\t\t\tfor ( unitIndex = 0; unitIndex < data[dkey].length; unitIndex++ )\n\t\t\t\t\t\tif ( data[dkey][unitIndex] ) {\n\t\t\t\t\t\t\tunitKey = dkey + \"_\" + unitIndex;\n\t\t\t\t\t\t\tiValue = demuxOne(unitIndex, dkey, tweenable[unitKey], fkey, data, box);\n\t\t\t\t\t\t\tif ( y && iValue[0] === '-' )\n\t\t\t\t\t\t\t\tiValue = \" - \" + iValue.substr(1);\n\t\t\t\t\t\t\telse if ( y )\n\t\t\t\t\t\t\t\tiValue = \" + \" + iValue;\n\t\t\t\t\t\t\tvalue += iValue;\n\t\t\t\t\t\t\ty++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ( y > 1 )\n\t\t\t\t\t\tvalue = \"calc(\" + value + \")\";\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\ttmpValue[fkey] = (value || 0);\n\t\t\t}\n\t\tshadows.push(tmpValue);\n\t}\n\t\n\ttarget[key] = cssShadowParser.stringify(shadows);\n\t//console.log(key, shadows, target[key]);\n\t\n}\n\nexport function muxOne( key, baseKey, value, target, data, initials, noPropLock, seenUnits ) {\n\t\n\tlet match = is.string(value) ? value.match(unitsRe) : false,\n\t unit = match && match[2] || defaultUnits[baseKey] || \"px\",\n\t unitKey = units.indexOf(unit),\n\t realKey = unitKey !== -1 && (key + '_' + unitKey) || key;\n\t\n\tinitials[realKey] = 0;\n\tdata[key][unitKey] = data[key][unitKey] || 0;\n\t//console.log(key, ':', data[key][unitKey], value, noPropLock)\n\t\n\tif ( seenUnits && seenUnits[unitKey] ) {\n\t\t//console.warn(key, ':', data[key][unitKey], value, noPropLock)\n\t\tif ( match ) {\n\t\t\ttarget[realKey] += parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] += parseFloat(value);\n\t\t}\n\t}\n\telse {\n\t\t\n\t\t!noPropLock && data[key][unitKey]++;\n\t\tif ( match ) {\n\t\t\ttarget[realKey] = parseFloat(match[1]);\n\t\t}\n\t\telse {\n\t\t\ttarget[realKey] = parseFloat(value);\n\t\t}\n\t\tif ( seenUnits ) seenUnits[unitKey] = true;\n\t}\n\t\n\treturn demux;\n};\nexport const mux = ( key, value, target, data, initials, noPropLock, reOrder ) => {\n\t\n\tdata[key] = data[key] || [];\n\t//initials[key] = 0;\n\t\n\tif ( !is.array(value) )\n\t\tvalue = [value];\n\tlet ti = 0, shadowMap, tFnKey, baseData, fValue, dkey, u, seenUnits;\n\tfor ( ; ti < value.length; ti++ ) {\n\t\tshadowMap = value[ti];\n\t\tif ( is.string(shadowMap) )\n\t\t\tshadowMap = cssShadowParser.parse(shadowMap)[0];\n\t\tbaseData = reOrder ? {} : { ...(data[key][ti] || {}) };\n\t\tfor ( tFnKey in shadowMap ) {\n\t\t\tif ( shadowMap.hasOwnProperty(tFnKey) ) {\n\t\t\t\tfValue = shadowMap[tFnKey];\n\t\t\t\tdkey = key + '_' + ti + '_' + tFnKey;\n\t\t\t\t\n\t\t\t\tbaseData[tFnKey] = baseData[tFnKey] || data[key][ti] && data[key][ti][tFnKey] || 0;\n\t\t\t\t!noPropLock && baseData[tFnKey]++;\n\t\t\t\tif ( defaultMuxers[tFnKey] ) {\n\t\t\t\t\tdefaultMuxers[tFnKey].mux(dkey, fValue, target, data, initials, noPropLock, reOrder);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t\n\t\t\t\t\tseenUnits = {};\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tdata[dkey] = data[dkey] || [];\n\t\t\t\t\tif ( is.array(fValue) ) {\n\t\t\t\t\t\tfor ( u = 0; u < fValue.length; u++ ) {\n\t\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue[u] || 0, target, data, initials, noPropLock, seenUnits)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tmuxOne(dkey, tFnKey, fValue || 0, target, data, initials, noPropLock)\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdata[key][ti] =\n\t\t\treOrder\n\t\t\t? { ...baseData, ...(data[key][ti] || {}), ...baseData }\n\t\t\t:\n\t\t\tbaseData;\n\t\t//console.log(key, reOrder, data[key][ti], baseData)\n\t}\n\treturn demux;\n}","module.exports = require(\"d3-ease\");","// 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\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/classCallCheck\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/createClass\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/possibleConstructorReturn\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/getPrototypeOf\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/inherits\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"fast-deep-equal\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/extends\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/objectWithoutProperties\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\n\nconst TweenerContext = React.createContext(null);\nexport default TweenerContext","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/toConsumableArray\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@babel/runtime/helpers/get\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dom\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\n\nexport const re_cssValueWithUnit = new RegExp(\n\t\"([+-]?(?:[0-9]*[.])?[0-9]+)\\\\s*(\" +\n\t['box', 'bz', 'bh', 'bw', 'em', 'ex', '%', 'px', 'cm', 'mm', 'in', 'pt', 'pc', 'ch', 'rem', 'vh', 'vw', 'vmin', 'vmax'].join('|')\n\t+ \")\"\n);\n\n/**\n * add any css val with it unit ( todo: optims&use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssAdd( val1, val2, ...argz ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\tif ( !is.array(val2) )\n\t\tval2 = [val2];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t units2 = val2.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 0;\n\t\tremap[units1[i][2]] += parseFloat(units1[i][1]);\n\t\ti++;\n\t}\n\ti = 0;\n\twhile ( i < units2.length ) {\n\t\tremap[units2[i][2]] = remap[units2[i][2]] || 0;\n\t\tremap[units2[i][2]] += parseFloat(units2[i][1]);\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn argz.length ? cssAdd(result, ...argz) : result;\n}\n\n/**\n * Multiply any css val with it unit ( todo: optims & use objects for multi unit\n * @param val1\n * @param val2\n * @returns {Array}\n */\nexport function cssMult( val1, val ) {\n\tif ( !is.array(val1) )\n\t\tval1 = [val1];\n\t\n\tlet units1 = val1.map(v => (v && v.match && v.match(re_cssValueWithUnit) || [, v || 0, 'px'])),\n\t remap = {}, result = [], i;\n\t\n\ti = 0;\n\twhile ( i < units1.length ) {\n\t\tremap[units1[i][2]] = remap[units1[i][2]] || 1;\n\t\tremap[units1[i][2]] = parseFloat(units1[i][1]) * val;\n\t\ti++;\n\t}\n\tObject.keys(remap)\n\t .forEach(\n\t\t unit => (result.push(remap[unit] + unit))\n\t );\n\treturn result;\n}\n\nexport function offset( items, start = 0 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom: item.from + start\n\t\t\t}\n\t\t)\n\t)\n}\n\nexport function scale( items, duration = 0, withOffset ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\t\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\titems = items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\tfrom : (item.from / iDuration) * duration,\n\t\t\t\tduration: (item.duration / iDuration) * duration\n\t\t\t}\n\t\t)\n\t)\n\treturn withOffset ? offset(items, withOffset) : items\n}\n\nfunction inverseValues( v ) {\n\tif ( is.number(v) )\n\t\treturn -v;\n\tif ( is.object(v) )\n\t\treturn Object.keys(v).reduce(( h, key ) => (h[key] = inverseValues(v[key]), h), {});\n\tif ( is.array(v) )\n\t\treturn v.map(( item ) => (inverseValues(item)));\n\t\n\tlet values = v.split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig);\n\t\n\treturn values.map(\n\t\t( val, i ) => (i % 2 ? -parseFloat(val) : val)\n\t).join(\"\");\n}\n\nexport function reverse( items ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\t// get items current duration\n\tlet iDuration = 0;\n\titems.forEach(\n\t\titem => {\n\t\t\tiDuration = Math.max(iDuration, item.from + item.duration)\n\t\t}\n\t)\n\t\n\treturn items.map(\n\t\titem => {\n\t\t\titem =\n\t\t\t\t{\n\t\t\t\t\t...item,\n\t\t\t\t\tfrom: iDuration - (item.from + item.duration),\n\t\t\t\t\t...(item.apply ? { apply: inverseValues(item.apply) } : undefined)\n\t\t\t\t};\n\t\t\treturn item;\n\t\t}\n\t)\n}\n\nconst MultiCssProps = { \"transform\": true, \"filter\": true, \"textShadow\": true, \"boxShadow\": true }\n\nexport function addCss( target, ...sources ) {\n\tlet source = sources.shift();\n\t\n\tfor ( const key in source ) {\n\t\tif ( !source.hasOwnProperty(key) )\n\t\t\tcontinue;\n\t\t\n\t\tif ( MultiCssProps[key] ) {\n\t\t\tif ( !target[key] ) {\n\t\t\t\ttarget[key] = [];\n\t\t\t}\n\t\t\tif ( !is.array(source[key]) ) {\n\t\t\t\taddCss(target[key], [source[key]]);\n\t\t\t}\n\t\t\telse addCss(target[key], source[key]);\n\t\t}\n\t\telse {\n\t\t\t// adding units\n\t\t\tif ( is.array(source[key]) ) {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\t\t\t\tif ( !is.array(target[key]) ) {\n\t\t\t\t\ttarget[key] = [...source[key], target[key]];\n\t\t\t\t}\n\t\t\t\telse target[key].push(...source[key]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( !target[key] ) {\n\t\t\t\t\tif ( !is.object(source[key]) ) {\n\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\ttarget[key] = { ...source[key] };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if ( is.object(target[key]) && is.object(source[key]) ) {\n\t\t\t\t\taddCss(target[key], source[key]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t//else target[key].push(...source[key]);\n\t\t\t\t\ttarget[key] = addAllType(target[key], source[key])\n\t\t\t\t\t//console.log(key, target[key])\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\treturn sources.length && addCss(target, ...sources) || target;\n}\n\nfunction addAllType( v1, v2 ) {\n\tif ( !v1 )\n\t\treturn v2;\n\tif ( !v2 )\n\t\treturn v1;\n\tlet values1 = ('' + v1).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t values2 = ('' + v2).split(/(\\-?\\d+(?:\\.\\d+)?|\\-?\\.\\d+)/ig),\n\t r = values1.map(\n\t\t ( val, i ) => (i % 2 ? parseFloat(val) + parseFloat(values2[i] || 0) : val)\n\t ).filter(i => (i !== ''));\n\t\n\treturn r.length === 1 ? parseInt(r[0]) : r.join(\"\")\n}\n\nexport function extractCss( items, inverse ) {\n\tlet css = {};\n\titems = is.array(items) ? items : items && [items] || items;\n\titems.forEach(\n\t\titem => {\n\t\t\taddCss(css, item.apply)\n\t\t}\n\t);\n\tif ( inverse )\n\t\tcss = inverseValues(css);\n\t\n\t\n\t//if ( inverse && css.hasOwnProperty('opacity') )\n\t//\tcss.opacity -= 1;\n\treturn css;\n}\n\nexport function target( items, target ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => (\n\t\t\t{\n\t\t\t\t...item,\n\t\t\t\ttarget\n\t\t\t}\n\t\t)\n\t)\n}\n\nexport function shiftTransforms( items, shift = 1 ) {\n\titems = is.array(items) ? items : items && [items] || items;\n\treturn items.map(\n\t\titem => {\n\t\t\tlet t = item.apply && item.apply.transform;\n\t\t\tif ( t ) {\n\t\t\t\tt = is.array(t) ? t : [t];\n\t\t\t\tfor ( let i = 0; i < shift; i++ )\n\t\t\t\t\tt.unshift({});\n\t\t\t\t\n\t\t\t\titem = { ...item, apply: { ...item.apply, transform: t } };\n\t\t\t}\n\t\t\treturn item;\n\t\t}\n\t)\n}","/* This is a virtual file generated by layer-pack */\nlet req, _exports = {}, walknSetExport=require('react-voodoo/.___layerPackIndexUtils').walknSetExport;\n\n\nconst _react_voodoo_utils_css_demux_filter_js = require(\"react-voodoo/utils/css/demux/filter.js\");\n\nwalknSetExport(_exports, \"filter\", _react_voodoo_utils_css_demux_filter_js);\nconst _react_voodoo_utils_css_demux_boxShadow_js = require(\"react-voodoo/utils/css/demux/boxShadow.js\");\n\nwalknSetExport(_exports, \"boxShadow\", _react_voodoo_utils_css_demux_boxShadow_js);\nconst _react_voodoo_utils_css_demux_transform_js = require(\"react-voodoo/utils/css/demux/transform.js\");\n\nwalknSetExport(_exports, \"transform\", _react_voodoo_utils_css_demux_transform_js);\nconst _react_voodoo_utils_css_demux_textShadow_js = require(\"react-voodoo/utils/css/demux/textShadow.js\");\n\nwalknSetExport(_exports, \"textShadow\", _react_voodoo_utils_css_demux_textShadow_js);\nconst _react_voodoo_utils_css_demux_backgroundColor_js = require(\"react-voodoo/utils/css/demux/backgroundColor.js\");\n\nwalknSetExport(_exports, \"backgroundColor\", _react_voodoo_utils_css_demux_backgroundColor_js);\n\nexport const backgroundColor = _exports.backgroundColor;\n\nexport const boxShadow = _exports.boxShadow;\n\nexport const filter = _exports.filter;\n\nexport const textShadow = _exports.textShadow;\n\nexport const transform = _exports.transform;\nexport default _exports;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\nimport {addCss} from \"../tweenTools\";\nimport {\n\texpandShorthandProperty, isShorthandProperty, isValidDeclaration, props\n} from \"./cssUtils\";\nimport cssDemuxers from \"./demux/(*).js\";\n\nimport primitiveTypes, {length, multi, number, ratio, color, any} from \"./demux/typed/(*).js\";\n\nconst cssDemux = {\n\t...cssDemuxers,\n\theight : length,\n\twidth : length,\n\ttop : length,\n\tleft : length,\n\tright : length,\n\tbottom : length,\n\tmarginTop : length,\n\tmarginLeft : length,\n\tmarginRight : length,\n\tmarginBottom : length,\n\tpaddingTop : length,\n\tpaddingLeft : length,\n\tpaddingRight : length,\n\tpaddingBottom : length,\n\tborderRadius : length,\n\tborderTopColor : color,\n\tborderLeftColor : color,\n\tborderRightColor : color,\n\tborderBottomColor: color,\n\tborderTopWidth : length,\n\tborderLeftWidth : length,\n\tborderRightWidth : length,\n\tborderBottomWidth: length,\n\ttransformOrigin : multi(2),\n\tzIndex : number,\n\topacity : ratio,\n};\n\n\nexport function getMuxerTypeOfProperty( property ) {\n\tlet type = props[property],\n\t types = type && type.types;\n\tif ( !types ) {\n\t\treturn any;\n\t}\n\tfor ( let i = 0; i < types.length; i++ ) {\n\t\tswitch ( types[i] ) {\n\t\t\tcase \"length\":\n\t\t\tcase \"length-percentage-calc\":\n\t\t\t\treturn length;\n\t\t\tcase \"number\":\n\t\t\tcase \"integer\":\n\t\t\t\treturn number;\n\t\t\tcase \"color\":\n\t\t\t\treturn color;\n\t\t}\n\t}\n\treturn any;\n};\n\nexport function clearTweenableValue( cssKey, twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues ) {\n\tlet path = twKey.split('_'), tmpKey;// not optimal at all\n\tmuxerMap[path[0]]?.release(twKey, tweenableMap, cssMap, dataMap, muxerMap, keepValues)\n}\n\n/**\n * Interpolate float/int values to css basing the css prop type\n * @param tweenable {Object} map of tweenable values\n * @param css {Object} map of css value to be push in DOM\n * @param demuxers {Object} map of numeric to css converter\n * @param data {Object} map of converters contexts\n * @param box {Object} xyz of the parent viewbox\n */\nexport function muxToCss( tweenable, css, demuxers, data, box ) {\n\tObject.keys(demuxers)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t demuxers[key].demux(key, tweenable, css, data, box)\n\t\t }\n\t )\n}\n\n/**\n * Instanciate interpolators & init css/tweenable values basing the tween\n * @param tween\n * @param deMuxedTween\n * @param initials\n * @param data\n * @param demuxers\n * @param noPropLock\n * @param reOrder\n * @returns {{}}\n */\nexport function deMuxTween( tween, deMuxedTween, initials, data, demuxers, noPropLock, reOrder ) {\n\tlet fTween = {}, excluded = {};\n\ttween && Object.keys(tween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] )\n\t\t\t\t fTween[key] = tween[key];\n\t\t\t else if ( isValidDeclaration(key, tween[key]) ) {\n\t\t\t\t\n\t\t\t\t if ( isShorthandProperty(key) ) {\n\t\t\t\t\t expandShorthandProperty(key, tween[key], fTween);\n\t\t\t\t }\n\t\t\t\t else fTween[key] = tween[key];\n\t\t\t }\n\t\t\t else {\n\t\t\t\t\t\t\t //console.log('deMuxTween:::121: ', key);\n\t\t\t\t\t\t\t //excluded[key] = tween[key];\n\t\t\t\t\t\t\t fTween[key] = tween[key];\n\t\t\t }\n\t\t });\n\t\n\tfTween && Object.keys(fTween)\n\t .forEach(\n\t\t ( key ) => {\n\t\t\t if ( cssDemux[key] ) {//key, value, target, data, initials\n\t\t\t\t (demuxers[key] = cssDemux[key]).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t\t }\n\t\t\t else if ( isValidDeclaration(key, tween[key]) )\n\t\t\t\t (demuxers[key] = getMuxerTypeOfProperty(key)).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t\t else\n\t\t\t\t (demuxers[key] = any).mux(key, fTween[key], deMuxedTween, data, initials, noPropLock, reOrder)\n\t\t }\n\t );\n\treturn excluded;\n}\n\n/**\n * Init/update muxers & initial css values of targets in a tween line / axis\n * @param tweenLine\n * @param initials\n * @param data\n * @param demuxers\n * @param noPropLock\n * @returns {*}\n */\nexport function deMuxLine( tweenLine, initials, data, demuxers, noPropLock ) {\n\tnoPropLock = noPropLock && {};\n\tlet allPropsById = {},\n\t twAxis = tweenLine.reduce(\n\t\t ( line, tween ) => {\n\t\t\t let demuxedTween = {};\n\t\t\t demuxers[tween.target] = demuxers[tween.target] || {};\n\t\t\t initials[tween.target] = initials[tween.target] || {};\n\t\t\t data[tween.target] = data[tween.target] || {};\n\t\t\t\n\t\t\t if ( !tween.type || tween.type === \"Tween\" ) {\n\t\t\t\t !noPropLock && addCss(allPropsById[tween.target] = allPropsById[tween.target] || {}, tween.apply);\n\t\t\t\t //console.log(\"merged\", tween.apply)\n\t\t\t\t deMuxTween(tween.apply, demuxedTween, initials[tween.target], data[tween.target], demuxers[tween.target], true);\n\t\t\t\t line.push(\n\t\t\t\t\t {\n\t\t\t\t\t\t ...tween,\n\t\t\t\t\t\t apply: demuxedTween\n\t\t\t\t\t });\n\t\t\t }\n\t\t\t else line.push({ ...tween });\n\t\t\t return line\n\t\t },\n\t\t []\n\t );\n\t!noPropLock && Object.keys(allPropsById)\n\t .forEach(\n\t\t id => deMuxTween(allPropsById[id], {}, {}, data[id], demuxers[id])\n\t )\n\t;\n\treturn twAxis;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"tween-axis\");","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport tweenAxis from \"tween-axis\";\n\n\nconst recyclableTweenAxis = [];\n\n/**\n * Override the TweenAxis Objects to automatically deal with recycling\n */\nexport default class CssTweenAxis extends tweenAxis {\n\t\n\tconstructor( cfg, scope ) {\n\t\tif ( recyclableTweenAxis.length ) {\n\t\t\tlet recyled = recyclableTweenAxis.pop();\n\t\t\trecyled.scope = scope;\n\t\t\tif ( is.array(cfg) ) {\n\t\t\t\trecyled.localLength = 1;\n\t\t\t\trecyled.mount(cfg, scope);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif ( cfg.Axis )\n\t\t\t\t\trecyled.mount(cfg.Axis, scope);\n\t\t\t}\n\t\t\treturn recyled;\n\t\t}\n\t\tsuper(...arguments)\n\t}\n\t\n\tdestroy() {\n\t\t\n\t\tthis.scope = undefined;\n\t\tthis.__marks.length = 0;\n\t\tthis.__marksLength.length = 0;\n\t\tthis.__marksKeys.length = 0;\n\t\tthis.__processors.length = 0;\n\t\tthis.__config.length = 0;\n\t\tthis.__activeProcess.length = 0;\n\t\t\n\t\tthis.__activeProcess.length = 0;\n\t\tthis.__outgoing.length = 0;\n\t\tthis.__incoming.length = 0;\n\t\tthis.__cPos = 0;\n\t\tthis.duration = 0;\n\t\tthis.__cIndex = 0;\n\t\tthis.__cMaxKey = 1;\n\t\trecyclableTweenAxis.push(this);\n\t}\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\n\n/**\n * Old school dom utils & events managers\n */\n\nlet\n is = require('is'),\n isBrowser = typeof window !== 'undefined',\n isTouch = isBrowser && ( function is_touch_device() {\n var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n var mq = function ( query ) {\n return window.matchMedia && window.matchMedia(query).matches;\n }\n \n if ( ( 'ontouchstart' in window ) || window.DocumentTouch && document instanceof DocumentTouch ) {\n return true;\n }\n \n // include the 'heartz' as a way to have a non matching MQ to help terminate the\n // join https://git.io/vznFH\n var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n }() ),\n _dom = isBrowser ? {\n prefix : ( /webkit/i ).test(navigator.appVersion) ? 'webkit' :\n ( /firefox/i ).test(navigator.userAgent) ? 'Moz' :\n ( /trident/i ).test(navigator.userAgent) ? 'ms' :\n 'opera' in window ? 'O' : '',\n dashedPrefix: ( /webkit/i ).test(navigator.appVersion) ? '-webkit-' :\n ( /firefox/i ).test(navigator.userAgent) ? '-moz-' :\n ( /trident/i ).test(navigator.userAgent) ? '-ms-' :\n 'opera' in window ? '-o-' : ''\n } : {\n prefix : '',\n dashedPrefix: ''\n },\n __ = {\n onPageHided : [],\n onPageShown : [],\n dragging : [],\n dragEnabled : [],\n dragEnabledDesc : [],\n fingers : {},\n nbFingers : 0,\n dragstartAnywhere: function ( e ) {\n let o,\n me = __,\n i = me.dragEnabled.indexOf(this),\n finger,\n desc, fingers = [];\n \n if ( i === -1 ) {\n return;\n }\n //e.preventDefault();\n //e.stopPropagation();\n \n if ( !me.nbFingers ) {\n Dom.addEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere,\n });\n Dom.addEvent(this,\n {\n 'click': me.dropWithoutClick\n }, null, null, null, true);\n }\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let t = 0, ln = fingers.length; t < ln; t++ ) {\n finger = fingers[ t ];\n \n \n desc = me.dragEnabledDesc[ i ];\n \n if ( desc.nbFingers ) continue;\n \n me.nbFingers++;\n \n me.fingers[ finger.identifier ] = me.fingers[ finger.identifier ] || [];\n me.fingers[ finger.identifier ].push(desc);\n \n \n desc.nbFingers++;\n \n desc._startPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._startPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n desc._startTs = e.timeStamp;\n \n \n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dragstart.length; o++ )\n desc.dragstart[ o ][ 0 ].call(desc.dragstart[ o ][ 1 ] ||\n this, e, finger, desc);\n }\n },\n dragAnywhere : function ( e ) {\n let o,\n me = __,\n finger, fingers = [], stopped,\n desc = __.dragging[ 0 ];\n \n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n desc = me.fingers[ finger.identifier ];\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n if ( stopped ) {\n desc._lastPos.x = desc._startPos.x = _dom.prefix == 'MS'\n ? finger.x\n : finger.pageX;\n desc._lastPos.y = desc._startPos.y = _dom.prefix == 'MS'\n ? finger.y\n : finger.pageY;\n return;\n }\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.drag.length; o++ )\n stopped = desc.drag[ o ][ 0 ].call(desc.drag[ o ][ 1 ] || this, e,\n finger,\n desc) === false;\n }\n )\n \n }\n },\n dropWithoutClick : function ( e ) {\n if ( __.preventNextClick ) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n __.preventNextClick = false;\n }\n Dom.removeEvent(this,\n {\n 'click': this.dropWithoutClick\n });\n },\n dropAnywhere : function ( e ) {\n let o,\n me = __, finger, fingers = [],\n prevent;\n \n if ( e.changedTouches && e.changedTouches.length ) {\n fingers = e.changedTouches\n }\n else fingers.push(e);\n \n for ( let i = 0, ln = fingers.length; i < ln; i++ ) {\n finger = fingers[ i ];\n me.nbFingers--;\n me.fingers[ finger.identifier ] &&\n me.fingers[ finger.identifier ].forEach(\n desc => {\n \n \n desc.nbFingers--;\n prevent = prevent || desc.mouseDrag && ( e.timeStamp - desc._startTs > 250 );\n desc._lastPos.x = _dom.prefix == 'MS' ? finger.x : finger.pageX;\n desc._lastPos.y = _dom.prefix == 'MS' ? finger.y : finger.pageY;\n \n for ( o = 0; o < desc.dropped.length; o++ )\n desc.dropped[ o ][ 0 ].call(desc.dropped[ o ][ 1 ] ||\n this, e,\n finger, desc);\n \n \n }\n )\n me.fingers[ finger.identifier ] = null;\n }\n if ( prevent ) {\n me.preventNextClick = true;\n }\n if ( !me.nbFingers ) {\n Dom.removeEvent(document,\n {\n 'touchmove': me.dragAnywhere,\n 'mousemove': me.dragAnywhere,\n 'touchend' : me.dropAnywhere,\n 'mouseup' : me.dropAnywhere\n });\n }\n },\n getDraggable : function ( node, mouseDrag, touchDrag ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i === -1 ) {\n this.dragEnabled.push(node);\n this.dragEnabledDesc.push(\n desc = {\n mouseDrag,\n touchDrag,\n nbFingers: 0,\n locks : 0,\n _startPos: {\n x: 0,\n y: 0\n },\n _lastPos : {\n x: 0,\n y: 0\n },\n dragstart: [],\n drag : [],\n dragEnd : [],\n dropped : []\n }\n );\n //debugger;\n Dom.addEvent(node,\n {\n 'mousedown' : mouseDrag && this.dragstartAnywhere,\n 'touchstart': touchDrag && this.dragstartAnywhere\n }, null, null, null, true);\n }\n else desc = this.dragEnabledDesc[ i ];\n return desc;\n },\n freeDraggable : function ( node ) {\n let i = this.dragEnabled.indexOf(node), desc;\n if ( i !== -1 ) {\n this.dragEnabled.splice(i, 1);\n this.dragEnabledDesc.splice(i, 1);\n \n Dom.removeEvent(node,\n {\n 'mousedown' : this.dragstartAnywhere,\n 'touchstart': this.dragstartAnywhere\n });\n }\n },\n \n addEvent : function ( node, type, fn, bubble ) {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n },\n removeEvent: function ( node, type, fn, bubble ) {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n },\n rmDragFn : function ( arr, fn, scope ) {\n for ( let i = 0, ln = arr.length; i < ln; i++ ) {\n if ( arr[ i ][ 0 ] === fn )\n return arr.splice(i, 1);\n }\n \n console.warn(\"Rm event : Listener not found !!\");\n },\n },\n Dom = {\n addEvent : function ( node, type, fn, mouseDrag, touchDrag = true, bubble ) {\n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) && type[ o ] )\n this.addEvent(node, o, type[ o ], mouseDrag, touchDrag, bubble);\n return;\n }\n else if ( type === 'dragstart' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dragstart.push([fn]);\n }\n else if ( type === 'drag' ) {\n __.getDraggable(node, mouseDrag, touchDrag).drag.push([fn]);\n }\n else if ( type === 'dropped' ) {\n __.getDraggable(node, mouseDrag, touchDrag).dropped.push([fn]);\n }\n else {\n if ( node.addEventListener ) {\n node.addEventListener(type, fn, { passive: false });\n }\n else if ( node.attachEvent ) {\n node.attachEvent('on' + type,\n fn.related = function ( e ) {\n return fn.call(node, e);\n });\n }\n }\n \n },\n removeEvent: function ( node, type, fn, scope, bubble ) {\n let i, desc;\n \n if ( is.object(type) ) {\n for ( let o in type )\n if ( type.hasOwnProperty(o) )\n this.removeEvent(node, o, type[ o ], scope);\n \n }\n else if ( /^(drag|drop)/.test(type) ) {\n desc = __.getDraggable(node);\n __.rmDragFn(desc[ type ], fn, scope);\n if ( !desc.dragstart.length\n && !desc.drag.length\n && !desc.dragEnd.length\n && !desc.dropped.length )\n __.freeDraggable(node);\n }\n else {\n if ( node.removeEventListener ) {\n node.removeEventListener(type, fn, bubble);\n }\n else if ( node.attachEvent ) {\n node.detachEvent('on' + type, fn.related);\n }\n }\n \n },\n offset : function ( elem ) {// @todo\n let dims = {\n top : 0,\n left : 0,\n width : elem.offsetWidth,\n height: elem.offsetHeight\n };\n while ( elem ) {\n dims.top = dims.top + parseInt(elem.offsetTop);\n dims.left = dims.left + parseInt(elem.offsetLeft);\n elem = elem.offsetParent;\n }\n return dims;\n },\n \n \n /**\n * Find the react component that generate element dom node\n * @param element\n * @returns {[React.Component]}\n */\n findReactParents( element ) {\n let fiberNode, comps = [element];\n for ( const key in element ) {\n \n if ( key.startsWith('__reactInternalInstance$') || key.startsWith('__reactFiber$') ) {\n fiberNode = element[ key ];\n while ( fiberNode.return ) {\n if ( fiberNode.stateNode && !comps.includes(fiberNode.stateNode) )\n comps.push(fiberNode.stateNode)\n fiberNode = fiberNode.return;\n }\n return comps;\n }\n }\n return element.parentNode && this.findReactParents(element.parentNode);\n }\n \n };\nexport default Dom;","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nconst\n\tis = require('is'),\n\teasingFn = require('d3-ease'),\n\tsignOf = function sign( x ) {\n\t\treturn typeof x === 'number' ? x ? x < 0 ? -1 : 1 : x === x ? x : NaN : NaN;\n\t},\n\tabs = Math.abs,\n\tfloor = Math.floor,\n\tround = Math.round,\n\tmin = Math.min,\n\tmax = Math.max,\n\tfloatCut = ( v = 0 ) => v.toFixed(3),\n\tconsts = {\n\t\tvelocityResetTm: .150,\n\t\tclickTm : 250\n\t};\n\n\n/**\n * Predict inertia dist & target basing velocity\n * @param _\n */\nexport function applyInertia( _ ) {\n\tlet velSign = signOf(_.lastVelocity);\n\t\n\tif ( _.disabled ) {\n\t\t_.loopsTarget = 0;\n\t\t_.loopsVelSum = 0;\n\t\t_.targetDist = 0;\n\t\t_.targetDuration = 0;\n\t}\n\telse {\n\t\t// calc momentum distance...\n\t\t// get nb loop needed to get vel < .05\n\t\t_.loopsTarget = floor(Math.log(.05 / abs(_.lastVelocity)) / Math.log(.9));\n\t\t\n\t\t// get velocity sum basing on nb loops needed\n\t\t_.loopsVelSum = (Math.pow(.9, _.loopsTarget) - abs(_.lastVelocity)) / (.9 - 1);\n\t\t\n\t\t// deduce real dist of momentum\n\t\t_.targetDist = (_.loopsVelSum * _.refFPS * velSign) / 1000 || 0;\n\t\t_.targetDuration = abs(_.loopsTarget * _.refFPS * velSign) || 0;\n\t\t//console.warn(\" _.targetDist\", _.targetDist, _.lastVelocity);\n\t}\n}\n\n/**\n * Main inertia class\n * @type {module.exports}\n */\nexport default class Inertia {\n\tstatic config = {\n\t\tbounds : true,\n\t\tsnapToBounds: true\n\t};\n\t\n\tconstructor( opt ) {\n\t\tlet _ = this._ = {};\n\t\t_.conf = {\n\t\t\t...this.constructor.config,\n\t\t\t...opt\n\t\t};\n\t\t\n\t\tthis.active = false;\n\t\t_.pos = opt.value || 0;\n\t\t_.refFPS = 16;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.currentStop = 0;\n\t\t_.lastInertiaPos = 0;\n\t\t_.stops = _.conf.stops;\n\t\t_.disabled = _.conf.disabled;\n\t\t_.wayPoints = _.conf.wayPoints;\n\t\t_.inertiaFn = easingFn.easePolyOut;\n\t\t_.targetWayPointIndex = 0;\n\t\t\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tupdateConf( opt ) {\n\t\tlet _ = this._;\n\t\t_.min = opt.min || 0;\n\t\t_.max = opt.max || 0;\n\t\t_.stops = opt.stops;\n\t\t_.disabled = opt.disabled;\n\t\t_.wayPoints = opt.wayPoints;\n\t\t_.conf.willStop = opt.willStop;\n\t\t_.conf.willSnap = opt.willSnap;\n\t\t_.conf.onStop = opt.onStop;\n\t\t_.conf.onSnap = opt.onSnap;\n\t\t_.conf.shouldLoop = opt.shouldLoop;\n\t}\n\t\n\tstartMove() {\n\t\tlet _ = this._;\n\t\t_.baseTS = _.startTS = Date.now() / 1000;\n\t\t_.lastVelocity = _.lastIVelocity = 0;\n\t\t_.lastAccel = 0;\n\t\t_.posDiff = 0;\n\t\t_.loopsDiff = 0;\n\t\tthis.active = true;\n\t\tthis.holding = true;\n\t\t_.inertia = false;\n\t}\n\t\n\thold( nextPos ) {\n\t\tlet _ = this._,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t loop,\n\t\t now = Date.now() / 1000,//e.timeStamp,\n\t\t sinceLastPos = (now - _.baseTS),\n\t\t pos = nextPos,//_.lastHoldPos + delta,\n\t\t iVel = delta / sinceLastPos;\n\t\t\n\t\t_.lastHoldPos = nextPos;\n\t\t//if (is.nan(pos))\n\t\t//\tdebugger\n\t\t\n\t\tif ( !_.lastBaseTs ) {// create base pts\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = _.baseTS;\n\t\t}\n\t\t\n\t\tif ( sinceLastPos < .003 ) {\n\t\t\t//console.log(\"hold fast\", delta, _.baseTS, sinceLastPos);\n\t\t\t// skip/ignore\n\t\t}\n\t\telse if (// direction changed for velocityResetTm\n\t\t\t(\n\t\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t\t||\n\t\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t\t||\n\t\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t\t) &&\n\t\t\t(now - _.lastBaseTs) > consts.velocityResetTm\n\t\t) {\n\t\t\t//console.log(\"reset\", _.lastBaseTs, _.lastVelocity);\n\t\t\t_.lastBasePos = nextPos;\n\t\t\t_.lastBaseTs = now;\n\t\t\t_.lastVelocity = 0;\n\t\t\t_.lastIVelocity = 0;\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t}\n\t\telse if (// dir changed fast\n\t\t\t(iVel <= 0 && _.lastVelocity > 0)\n\t\t\t||\n\t\t\t(iVel >= 0 && _.lastVelocity < 0)\n\t\t\t||\n\t\t\tabs(iVel) < abs(_.lastVelocity * 0.2)\n\t\t) {\n\t\t\t//ignore\n\t\t}\n\t\telse {\n\t\t\t_.lastIVelocity = iVel;\n\t\t\t_.lastVelocity = ((pos) - (_.lastBasePos)) / (now - _.lastBaseTs);\n\t\t\t_.baseTS = now;\n\t\t\t_.targetDist = 0;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t// clear snap\n\t\t\t_.targetWayPoint = undefined;\n\t\t\t_.targetWayPointIndex = undefined;\n\t\t}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( pos > _.max ) {\n\t\t\t\tpos = _.max// + min((pos - _.max) / 10, 10);\n\t\t\t}\n\t\t\telse if ( pos < _.min ) {\n\t\t\t\tpos = _.min// - min((_.min - pos) / 10, 10);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\twhile ( (loop = _.conf.shouldLoop(pos, delta)) ) {\n\t\t\t\tpos += loop;\n\t\t\t}\n\t\t}\n\t\t_.pos = pos;\n\t\t\n\t}\n\t\n\trelease() {\n\t\tlet _ = this._,\n\t\t velSign = signOf(_.lastVelocity);\n\t\t\n\t\tthis.holding = false;\n\t\t\n\t\t// calc momentum distance...\n\t\tapplyInertia(_);\n\t\t\n\t\t_.lastHoldPos = undefined;\n\t\t\n\t\t_.lastBasePos = undefined;\n\t\t_.lastBaseTs = undefined;\n\t\t_.holding = false;\n\t\t\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\tlet loop, nPos=_.pos + _.targetDist;\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nPos, 0)) ) {\n\t\t//\t\tnPos += loop;\n\t\t//\t\tif ( _.inertia ) {\n\t\t//\t\t\t//_.targetDist+=loop;\n\t\t//\t\t\t//_.lastInertiaPos+=loop;\n\t\t//\t\t}\n\t\t//\t\t//this.teleport(loop);\n\t\t//\t}\n\t\t//\tif (nPos!==_.pos + _.targetDist)\n\t\t//}\n\t\tif ( _.conf.bounds && _.conf.snapToBounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\t//else {\n\t\tif ( !_.targetDuration )\n\t\t\t_.targetDuration = 50;\n\t\t\n\t\t//console.log(_);\n\t\tthis.active = true;\n\t\t_.inertia = true;\n\t\t_.lastInertiaPos = 0;\n\t\t_.inertiaStartTm =\n\t\t\t_.inertiaLastTm = Date.now();\n\t\t\n\t\t\n\t\t//}\n\t\tthis._doSnap(null, 500)\n\t\t_.conf.willEnd?.(_.targetDist + _.pos, _.targetDist, _.targetDuration);\n\t}\n\t\n\tupdate( at = Date.now() ) {\n\t\tlet _ = this._, nextValue, loop;\n\t\tlet\n\t\t\tpos = _.inertiaFn((at - _.inertiaStartTm) / _.targetDuration) * _.targetDist;\n\t\t\n\t\tif ( !_.inertia ) {\n\t\t\t//if ( _.conf.shouldLoop ) {\n\t\t\t//\twhile ( (loop = _.conf.shouldLoop(_.pos, 0)) ) {\n\t\t\t//\t\tthis.teleport(loop);\n\t\t\t//\t}\n\t\t\t//}\n\t\t\treturn _.pos;\n\t\t}\n\t\tlet\n\t\t\tdelta = pos - _.lastInertiaPos;\n\t\t_.lastInertiaPos = pos;\n\t\t\n\t\tif ( (at - _.inertiaStartTm) >= _.targetDuration ) {\n\t\t\t_.inertia = this.active = false;\n\t\t\t_.lastInertiaPos = delta = 0;\n\t\t\t_.targetDist = 0;\n\t\t\tif ( _.targetWayPoint ) {\n\t\t\t\tdelta = _.targetWayPoint.at - _.pos;\n\t\t\t\t//console.log(\"snap done \", _.targetWayPoint, _.pos + delta);\n\t\t\t\t_.currentWayPoint = _.targetWayPoint;\n\t\t\t\t_.currentWayPointIndex = _.targetWayPointIndex;\n\t\t\t\t_.targetWayPoint = null;\n\t\t\t\t_.targetWayPointIndex = null;\n\t\t\t\t//_.lastSnapTm = Date.now();\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.onStop ) {\n\t\t\t\t_.conf.onStop(_.pos, _.currentWayPoint)\n\t\t\t}\n\t\t\tif ( _.conf.onSnap ) {\n\t\t\t\t_.conf.onSnap(_.currentWayPointIndex, _.currentWayPoint)\n\t\t\t}\n\t\t}\n\t\t\n\t\tdelta = delta || 0;\n\t\t//console.log(_.pos + delta);\n\t\tnextValue = _.pos + delta;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet t = nextValue;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, delta)) ) {\n\t\t\t\t//console.warn(\"loop update\", loop, nextValue);\n\t\t\t\tnextValue += loop;\n\t\t\t\tif ( _.inertia ) {\n\t\t\t\t\t//_.targetDist+=loop;\n\t\t\t\t\t//_.lastInertiaPos+=loop;\n\t\t\t\t}\n\t\t\t\t//this.teleport(loop);\n\t\t\t}\n\t\t}\n\t\t\n\t\t_.pos = nextValue;\n\t\t\n\t\treturn nextValue;\n\t}\n\t\n\tsetPos( pos ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.inertia = false;\n\t\tthis.active = false;\n\t\t_.lastInertiaPos = 0;\n\t\t_.targetDist = 0;\n\t\t_.inertiaStartTm = 0;\n\t\t_.inertiaLastTm = 0;\n\t\t_.targetDuration = 0;\n\t\t\n\t\tif ( _.conf.shouldLoop ) {\n\t\t\tlet loop, nextValue = pos;\n\t\t\twhile ( (loop = _.conf.shouldLoop(nextValue, _.pos - pos)) ) {\n\t\t\t\tnextValue += loop;\n\t\t\t\t//this.teleport(loop);\n\t\t\t\t//console.warn(\"loop update\", nextValue, pos);\n\t\t\t}\n\t\t\tpos = nextValue;\n\t\t}\n\t\t_.pos = pos;\n\t\tif ( _.conf.bounds ) {\n\t\t\t_.pos = max(_.pos, _.min);\n\t\t\t_.pos = min(_.pos, _.max);\n\t\t}\n\t}\n\t\n\tsetWayPoints( wayPoints ) {\n\t\tlet _ = this._, nextValue;\n\t\t_.wayPoints = wayPoints;\n\t\tthis._detectCurrentSnap();\n\t}\n\t\n\tteleport( loopDist ) {\n\t\tlet _ = this._, nextValue;\n\t\tif ( !_.inertia )\n\t\t\treturn _.pos += loopDist;\n\t\t\n\t\t//_.lastInertiaPos += loopDist;\n\t\t_.pos += loopDist\n\t\t//console.log(\"setPos\", _.lastInertiaPos);\n\t}\n\t\n\tdispatch( delta, tm = 500 ) {\n\t\tlet _ = this._,\n\t\t now = Date.now(),\n\t\t pos;\n\t\t\n\t\tthis.active = true;\n\t\t\n\t\t// if no inertia has started || if direction has change\n\t\tif ( !_.inertia || signOf(delta) !== signOf(_.targetDist) ) {\n\t\t\t_.inertia = true;\n\t\t\t_.lastInertiaPos = 0;\n\t\t\t_.inertiaStartTm =\n\t\t\t\t_.inertiaLastTm = now;\n\t\t\t\n\t\t\t_.targetDist = delta;\n\t\t\t_.targetDuration = tm;\n\t\t}\n\t\telse {\n\t\t\t//_.inertiaStartTm =\n\t\t\t//_.inertiaLastTm = now;\n\t\t\t//_.lastInertiaPos = 0;\n\t\t\t_.targetDist += delta;\n\t\t\t_.targetDuration += tm / 2;\n\t\t}\n\t\t//\n\t\t//if ( _.conf.maxJump ) {\n\t\t//\n\t\t//}\n\t\t\n\t\tif ( _.conf.bounds ) {\n\t\t\tif ( (_.pos + _.targetDist) > _.max ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.max - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t\telse if ( (_.pos + _.targetDist) < _.min ) {\n\t\t\t\t\n\t\t\t\t_.targetDist = _.min - _.pos;\n\t\t\t\t_.targetDuration = abs(_.targetDist * 10);\n\t\t\t}\n\t\t}\n\t\tthis._doSnap(signOf(delta), 750)\n\t}\n\t\n\t\n\t_detectCurrentSnap() {\n\t\tlet _ = this._,\n\t\t pos = _.pos,\n\t\t i;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( floatCut(_.wayPoints[i].at) === floatCut(pos) ) {\n\t\t\t\t\t_.currentWayPoint = _.wayPoints[i];\n\t\t\t\t\t_.currentWayPointIndex = i;\n\t\t\t\t\t//console.warn(\"snap set\", i);\n\t\t\t\t\t\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t}\n\t}\n\t\n\t_doSnap( forceSnap, maxDuration = 2000 ) {\n\t\tlet _ = this._,\n\t\t pos = _.targetDist + (_.pos - (_.lastInertiaPos || 0)),\n\t\t lPos = pos,\n\t\t loopDec = 0,\n\t\t target,\n\t\t mid,\n\t\t i,\n\t\t loop;\n\t\t\n\t\tif ( _.wayPoints && _.wayPoints.length ) {\n\t\t\t\n\t\t\t// apply loops to do to find the final wayPoint\n\t\t\tif ( _.conf.shouldLoop ) {\n\t\t\t\twhile ( (loop = _.conf.shouldLoop(lPos, 0)) ) {\n\t\t\t\t\tlPos += loop;\n\t\t\t\t\tloopDec += loop;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor ( i = 0; i < _.wayPoints.length; i++ )\n\t\t\t\tif ( _.wayPoints[i].at > lPos )\n\t\t\t\t\tbreak;\n\t\t\t\n\t\t\tif ( i === _.wayPoints.length ) {\n\t\t\t\ti--\n\t\t\t}\n\t\t\telse if ( i === 0 ) {\n\t\t\t\ti = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmid = (_.wayPoints[i].at - _.wayPoints[i - 1].at) / 2;\n\t\t\t\tmid = _.wayPoints[i - 1].at + (mid * ((_.wayPoints[i].gravity || 1) / (_.wayPoints[i - 1].gravity || 1)));\n\t\t\t\t\n\t\t\t\tif ( forceSnap ) forceSnap < 0 && i--;\n\t\t\t\telse if ( lPos < mid ) i--;\n\t\t\t}\n\t\t\t\n\t\t\tif ( _.conf.maxJump && is.number(_.currentWayPointIndex) ) {\n\t\t\t\tlet d = (i - _.currentWayPointIndex);\n\t\t\t\t//console.log('Inertia::_doSnap:154: ', i, d);\n\t\t\t\tif ( abs(d) > _.conf.maxJump ) {\n\t\t\t\t\t//console.log('max: ', i, d);\n\t\t\t\t\ti = _.currentWayPointIndex + signOf(d) * _.conf.maxJump;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttarget = _.wayPoints[i].at;\n\t\t\t\n\t\t\tif ( _.conf.willSnap ) {\n\t\t\t\t_.conf.willSnap(i, _.wayPoints[i]);\n\t\t\t}\n\t\t\t\n\t\t\t_.lastInertiaPos = _.lastInertiaPos || 0;\n\t\t\ttarget = target - (_.pos - _.lastInertiaPos) - loopDec;\n\t\t\t_.targetDuration = max(50, min(maxDuration, abs((_.targetDuration / _.targetDist) * target))) || 0;\n\t\t\t//console.log(\"do snap\", i, target, loopDec);\n\t\t\t_.targetDist = target;\n\t\t\t_.targetWayPoint = _.wayPoints[i];\n\t\t\t_.targetWayPointIndex = i;\n\t\t}\n\t\telse {\n\t\t\ttarget = ~~(_.pos - _.lastInertiaPos);\n\t\t\t\n\t\t\tif ( !_.conf.infinite ) {\n\t\t\t\tif ( target > _.max ) {\n\t\t\t\t\ttarget = _.max - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t\telse if ( target < _.min ) {\n\t\t\t\t\ttarget = _.min - target;\n\t\t\t\t\t_.targetDuration = min(maxDuration, abs((_.targetDuration / _.targetDist) * target));\n\t\t\t\t\t_.targetDist = target;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\t\n\tsetBounds( min, max ) {\n\t\tlet _ = this._;\n\t\t//console.log('Inertia::setBounds:245: ', min, max);\n\t\t_.min = min;\n\t\t_.max = max;\n\t}\n\t\n\tisInbound( nextPos ) {\n\t\tlet _ = this._, loop,\n\t\t delta = _.lastHoldPos !== undefined ? nextPos - _.lastHoldPos : 0,\n\t\t pos = (_.targetDist || 0) + (_.pos - (_.lastInertiaPos || 0)) + delta;\n\t\t//if ( _.conf.infinite ) return false;\n\t\t//\n\t\t//if ( _.conf.shouldLoop ) {\n\t\t//\twhile ( (loop = _.conf.shouldLoop(nextValue)) ) {\n\t\t//!(pos >= _.min && pos <= _.max) && console.warn(\"out\", _.pos, pos, delta);\n\t\t//\t\tpos += loop;\n\t\t//\t}\n\t\t//}\n\t\treturn pos >= _.min && pos <= _.max;\n\t}\n\t\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport * as easingFn from \"d3-ease\";\nimport deepEqual from \"fast-deep-equal\";\nimport is from \"is\";\nimport React from \"react\";\nimport ReactDom from \"react-dom\";\nimport TweenerContext\n from \"../comps/TweenerContext\";\nimport {clearTweenableValue, deMuxLine, deMuxTween, muxToCss} from \"../utils/css\";\nimport tweenAxis\n from \"../utils/CssTweenAxis\";\nimport domUtils from \"../utils/dom\";\nimport Inertia from '../utils/inertia';\n\n\nlet isBrowserSide = (new Function(\"try {return this===window;}catch(e){ return false;}\"))(),\n isArray = is.array,\n _live, lastTm, _running = [];\n\n// Axis Interpolation timer ( not the rendering loop ! )\nconst Runner = {\n\trun : function ( tl, ctx, duration, cb ) {\n\t\tlet apply = ( pos, size ) => tl.go(pos / size, ctx);\n\t\t_running.push({ apply, duration, cpos: 0, cb });\n\t\ttl.go(0, ctx, true);//reset tl\n\t\t\n\t\tif ( !_live ) {\n\t\t\t_live = true;\n\t\t\tlastTm = Date.now();\n\t\t\t// console.log(\"TL runner On\");\n\t\t\tsetTimeout(this._tick, 16);\n\t\t}\n\t},\n\t_tick: function _tick() {\n\t\tlet i = 0, o, tm = Date.now(), delta = tm - lastTm;\n\t\tlastTm = tm;\n\t\tfor ( ; i < _running.length; i++ ) {\n\t\t\t_running[i].cpos = Math.min(delta + _running[i].cpos, _running[i].duration);//cpos\n\t\t\t_running[i].apply(\n\t\t\t\t_running[i].cpos, _running[i].duration\n\t\t\t);\n\t\t\t// console.log(\"TL runner \",_running[i][3]);\n\t\t\tif ( _running[i].cpos == _running[i].duration ) {\n\t\t\t\t\n\t\t\t\t_running[i].cb && setTimeout(_running[i].cb);\n\t\t\t\t_running.splice(i, 1), i--;\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif ( _running.length )\n\t\t\tsetTimeout(_tick, 16);\n\t\telse {\n\t\t\t// console.log(\"TL runner Off\");\n\t\t\t_live = false;\n\t\t}\n\t},\n};\n/**\n * The main tweener component\n */\nexport default class Tweener extends React.Component {\n\t\n\taxes = {};\n\t_scrollWatcherByAxis = {};\n\t\n\t// ------------------------------------------------------------\n\t// -------------------- TweenRefs utils -----------------------\n\t// ------------------------------------------------------------\n\t_swap = {};\n\t\n\tconstructor( props ) {\n\t\tsuper(...arguments);\n\t\tlet _ = this._ = {\n\t\t\trefs : {},\n\t\t\tmuxByTarget: {},\n\t\t};\n\t\t_.box = {\n\t\t\tx: 100,\n\t\t\ty: 100,\n\t\t\tz: 800\n\t\t};\n\t\tthis.__isTweener = true;\n\t\t_._rafLoop = this._rafLoop.bind(this);\n\t\t_.rootRef = this.props.forwardedRef || React.createRef();\n\t\t_.options = {\n\t\t\tmaxClickTm : 200,\n\t\t\tmaxClickOffset: 5,\n\t\t\t...(props.tweenerOptions || {})\n\t\t};\n\t\t_.tweenRefCSS = {};\n\t\t_.tweenRefs = {};\n\t\t_.tweenRefMaps = {};\n\t\t_.iMapOrigin = {};\n\t\t_.tweenRefInitialData = {};\n\t\t_.tweenEnabled = true;\n\t\t_.tweenRefOrigin = {};\n\t\t_.tweenRefOriginCss = {};\n\t\t_.muxDataByTarget = _.muxDataByTarget || {};\n\t\t_.tweenRefDemuxed = _.tweenRefDemuxed || {};\n\t\t_.tweenRefTargets = _.tweenRefTargets || [];\n\t\t_.runningAnims = _.runningAnims || [];\n\t\t\n\t\t_.scrollHook = [];\n\t\t_.activeInertia = [];\n\t\t_.defaultAxesPosition = props.tweenerOptions?.defaultAxesPosition;\n\t\tprops.tweenerOptions?.ref?.(this);\n\t\t\n\t\tisBrowserSide && window.addEventListener(\n\t\t\t\"resize\",\n\t\t\tthis._.onResize = ( e ) => {//@todo\n\t\t\t\tthis._updateBox();\n\t\t\t\tthis._updateTweenRefs();\n\t\t\t\t_.rootRef?.current?.windowDidResize?.(e);\n\t\t\t});\n\t}\n\t\n\t/**\n\t * Register tweenable element\n\t * return its current style\n\t * @param id\n\t * @param iStyle\n\t * @param iMap\n\t * @param pos\n\t * @param noref\n\t * @param mapReset\n\t * @returns {style,ref}\n\t */\n\ttweenRef( id, iStyle = {}, iMap = {}, pos, ref, noref, mapReset ) {// ref initial style\n\t\t\n\t\t\n\t\tlet _ = this._,\n\t\t tweenableMap = {};\n\t\t\n\t\tlet initials = {};\n\t\tif ( !_.tweenRefs[id] )\n\t\t\t_.tweenRefTargets.push(id);\n\t\t//if ( id === \"items\" ) {\n\t\t//\tdebugger\n\t\t//}\n\t\t//ref && console.warn('ref ', id, ref)\n\t\t\n\t\tif ( _.tweenRefs[id] && (\n\t\t\tmapReset\n\t\t\t|| (_.iMapOrigin[id] !== iMap || !deepEqual(iMap, _.iMapOrigin[id]))\n\t\t\t|| (_.tweenRefOriginCss[id] !== iStyle || !deepEqual(iStyle, _.tweenRefOriginCss[id]))\n\t\t) ) {\n\t\t\t// hot switch initial values\n\t\t\t//console.warn('ref exist & style is !==', id, iStyle,\n\t\t\t// _.tweenRefOriginCss[id], mapReset)\n\t\t\t_.iMapOrigin[id] = iMap;\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\n\t\t\tiStyle = iStyle || {};\n\t\t\tiMap = iMap || {};\n\t\t\t\n\t\t\t\n\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\n\t\t\t\n\t\t\t//console.log(\"update ref\", id)\n\t\t\t\n\t\t\t// minus initial values\n\t\t\tObject.keys(_.tweenRefOrigin[id])\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] -= _.tweenRefOrigin[id][key])\n\t\t\t );\n\t\t\t// set defaults values in case of\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\n\t\t\t\t ? _.tweenRefMaps[id][key]\n\t\t\t\t : initials[key])\n\t\t\t );\n\t\t\t// add new initial values\n\t\t\tObject.keys(tweenableMap)\n\t\t\t .forEach(\n\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\n\t\t\t );\n\t\t\t\n\t\t\tObject.keys(_.tweenRefOrigin[id])// unset\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t clearTweenableValue(key, key, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\n\t\t\t\t }\n\t\t\t );\n\t\t\tObject.keys(_.tweenRefCSS[id])// unset not tweened\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] && !_.muxByTarget[id][key] && !iStyle[key] )\n\t\t\t\t\t\t delete _.tweenRefCSS[id][key];\n\t\t\t\t }\n\t\t\t );\n\t\t\tObject.keys(iStyle)// reset not tweened\n\t\t\t .forEach(\n\t\t\t\t key => {\n\t\t\t\t\t if ( _.tweenRefCSS[id][key] !== iStyle[key] && !_.muxByTarget[id][key] )\n\t\t\t\t\t\t _.tweenRefCSS[id][key] = iStyle[key];\n\t\t\t\t }\n\t\t\t );\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\n\t\t\t\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t\tthis._updateTweenRef(id, true);\n\t\t}\n\t\telse if ( !_.tweenRefs[id] ) {\n\t\t\t//console.log(\"init ref\", id)\n\t\t\t\n\t\t\t_.iMapOrigin[id] = iMap;\n\t\t\tiStyle = iStyle || {};\n\t\t\tiMap = iMap || {};\n\t\t\t\n\t\t\t_.tweenRefs[id] = true;\n\t\t\t_.muxByTarget[id] = _.muxByTarget[id] || {};\n\t\t\t_.muxDataByTarget[id] = _.muxDataByTarget[id] || {};\n\t\t\t\n\t\t\t_.tweenRefOriginCss[id] = iStyle;\n\t\t\t\n\t\t\t_.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\n\t\t\tif ( _.tweenRefOrigin[id] ) {\n\t\t\t\t//debugger\n\t\t\t\t// minus initial values from axis pre init\n\t\t\t\t//Object.keys(_.tweenRefOrigin[id])\n\t\t\t\t// .forEach(\n\t\t\t\t//\t key => (_.tweenRefMaps[id][key] -= _.tweenRefOrigin[id][key])\n\t\t\t\t// );\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id], false, true) };\n\t\t\t\t\n\t\t\t\t//// set defaults values in case of\n\t\t\t\tObject.keys(initials)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = is.number(_.tweenRefMaps[id][key])\n\t\t\t\t\t ? _.tweenRefMaps[id][key] - initials[key]\n\t\t\t\t\t : 0)\n\t\t\t\t );\n\t\t\t\t//// add new initial values\n\t\t\t\tObject.keys(tweenableMap)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] += tweenableMap[key])\n\t\t\t\t );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tiStyle = { ...iStyle, ...deMuxTween(iMap, tweenableMap, initials, _.muxDataByTarget[id], _.muxByTarget[id]) };\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t// init / reset or get the tweenable view\n\t\t\t\ttweenableMap = Object.assign({}, initials, tweenableMap || {});\n\t\t\t\t\n\t\t\t\t// set defaults values in case of\n\t\t\t\t// add new initial values\n\t\t\t\tObject.keys(tweenableMap)\n\t\t\t\t .forEach(\n\t\t\t\t\t key => (_.tweenRefMaps[id][key] = (_.tweenRefMaps[id][key] || 0) + tweenableMap[key])\n\t\t\t\t );\n\t\t\t}\n\t\t\t_.tweenRefOrigin[id] = { ...tweenableMap };\n\t\t\t_.tweenRefCSS[id] = iStyle;\n\t\t\ttweenableMap = _.tweenRefMaps[id];\n\t\t\tmuxToCss(tweenableMap, iStyle, _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t\t\n\t\t}\n\t\telse {\n\t\t\t\n\t\t\tmuxToCss(_.tweenRefMaps[id], _.tweenRefCSS[id], _.muxByTarget[id], _.muxDataByTarget[id], _.box);\n\t\t}\n\t\t//console.log('tweenRef::tweenRef:519: ', id, { ..._.muxDataByTarget[id] }, {\n\t\t// ..._.tweenRefCSS[id] });\n\t\tif ( noref )\n\t\t\treturn {\n\t\t\t\tstyle: { ..._.tweenRefCSS[id] }\n\t\t\t};\n\t\telse\n\t\t\treturn {\n\t\t\t\tstyle: { ..._.tweenRefCSS[id] },\n\t\t\t\tref : is.function(ref)\n\t\t\t\t ? node => (_.refs[id] = ref(node))\n\t\t\t\t : ref\n\t\t\t\t ? node => (_.refs[id] = ref.current = node)\n\t\t\t\t : node => (_.refs[id] = node)\n\t\t\t};\n\t}\n\t\n\t/**\n\t * Delete tweenable element\n\t * @param id\n\t */\n\trmTweenRef( id ) {\n\t\tif ( this._.tweenRefs[id] ) {\n\t\t\tthis._.tweenRefTargets.splice(this._.tweenRefTargets.indexOf(id), 1);\n\t\t\tdelete this._.tweenRefs[id];\n\t\t\tdelete this._.muxByTarget[id];\n\t\t\tdelete this._.muxDataByTarget[id];\n\t\t\tdelete this._.iMapOrigin[id];\n\t\t\tdelete this._.tweenRefOrigin[id];\n\t\t\tdelete this._.tweenRefCSS[id];\n\t\t\tdelete this._.tweenRefMaps[id];\n\t\t\tdelete this._.refs[id];\n\t\t}\n\t}\n\t\n\t/**\n\t * Reset tweenRefs\n\t * @param targets\n\t */\n\tresetTweenable( ...targets ) {\n\t\tlet _ = this._;\n\t\ttargets.forEach(\n\t\t\t( t ) => {\n\t\t\t\tthis.tweenRef(t, _.tweenRefOriginCss[t], _.iMapOrigin[t], null, null, null, true)\n\t\t\t}\n\t\t);\n\t\tthis._updateTweenRefs();\n\t}\n\t\n\t/**\n\t * Update tweenRefs style ( anims & axis will still update the ref )\n\t * @param target\n\t * @param style\n\t * @param postPone\n\t * @returns {*}\n\t */\n\tupdateRefStyle( target, style, postPone ) {\n\t\tlet _ = this._, initials = {}, pureCss;\n\t\t\n\t\t// allow batched stykes updates\n\t\tif ( isArray(target) && isArray(style) )\n\t\t\treturn target.map(( m, i ) => this.updateRefStyle(m, style[i], postPone));\n\t\tif ( isArray(target) )\n\t\t\treturn target.map(( m ) => this.updateRefStyle(m, style, postPone));\n\t\t\n\t\tif ( !_.tweenRefMaps[target] )\n\t\t\treturn console.warn(\"React-Voodoo : Can't update styles of an unknown Node id '\", target, \"'\");\n\t\t\n\t\tpureCss = deMuxTween(style, _.tweenRefMaps[target], initials, _.muxDataByTarget[target], _.muxByTarget[target]);\n\t\tObject.assign(_.tweenRefCSS[target], pureCss);\n\t\tObject.assign(_.tweenRefOriginCss[target], pureCss);\n\t\tmuxToCss(_.tweenRefMaps[target], _.tweenRefCSS[target], _.muxByTarget[target], _.muxDataByTarget[target], _.box);\n\t\tthis._updateTweenRef(target, true);\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// -------------------- Pushable anims ------------------------\n\t// ------------------------------------------------------------\n\t\n\t/**\n\t * Retrieve the tween ref dom node\n\t * @param id\n\t * @returns {*}\n\t */\n\tgetTweenableRef( id ) {\n\t\tif ( is.element(this._.refs[id]) )\n\t\t\treturn this._.refs[id];\n\t\telse if ( this._.refs[id]?._?.rootRef?.current && is.element(this._.refs[id]._.rootRef.current) )\n\t\t\treturn this._.refs[id]._.rootRef.current\n\t\telse if ( !this._.tweenRefs[id] )\n\t\t\tconsole.warn(\"react-voodoo: Can't find voodooNode \", id)\n\t}\n\t\n\t/**\n\t * Get the root dom node of the tweener element\n\t * @returns {*}\n\t */\n\tgetRootNode() {\n\t\ttry {\n\t\t\treturn this._.rootRef && this._.rootRef.current;\n\t\t} catch ( e ) {\n\t\t\treturn this._.rootRef && this._.rootRef.current;\n\t\t}\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// ------------------ Scrollable axes -------------------------\n\t// ------------------------------------------------------------\n\t\n\t/**\n\t * Push anims\n\t * @param anim\n\t * @param then\n\t * @param skipInit\n\t * @returns {tweenAxis}\n\t */\n\tpushAnim( anim, then, keepResults = true ) {\n\t\tlet sl,\n\t\t initial,\n\t\t _ = this._,\n\t\t initials = {},\n\t\t fail;\n\t\t\n\t\tif ( isArray(anim) ) {\n\t\t\tsl = anim;\n\t\t}\n\t\telse {\n\t\t\tsl = anim.anims;\n\t\t\tinitial = anim.initial;\n\t\t}\n\t\t\n\t\tif ( !(sl instanceof tweenAxis) ) {\n\t\t\t// tweenLine, initials, data, demuxers\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\n\t\t\tsl = new tweenAxis(sl, this._.tweenRefMaps);\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t id => (\n\t\t\t\t\t this._.tweenRefMaps[id] &&\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\n\t\t\t\t\t\t ...initials[id],\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\n\t\t\t\t\t }) || (fail = console.warn(\"react-voodoo : Can't find tween target \", id, \" in \", Tweener.displayName) || true)\n\t\t\t\t )\n\t\t\t )\n\t\t}\n\t\tif ( fail )\n\t\t\treturn;\n\t\t\n\t\t\n\t\treturn new Promise(\n\t\t\tresolve => {\n\t\t\t\t\n\t\t\t\t// start timer launch @todo\n\t\t\t\tsl.run(this._.tweenRefMaps, () => {\n\t\t\t\t\tlet i = this._.runningAnims.indexOf(sl);\n\t\t\t\t\tif ( i != -1 )\n\t\t\t\t\t\tthis._.runningAnims.splice(i, 1);\n\t\t\t\t\t//console.log( _.muxDataByTarget)\n\t\t\t\t\tObject.keys(initials)// unset\n\t\t\t\t\t .forEach(\n\t\t\t\t\t\t id => {\n\t\t\t\t\t\t\t Object.keys(initials[id])// unset\n\t\t\t\t\t\t\t .forEach(\n\t\t\t\t\t\t\t\t rkey => {\n\t\t\t\t\t\t\t\t\t // todo\n\t\t\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id], keepResults)\n\t\t\t\t\t\t\t\t })\n\t\t\t\t\t\t });\n\t\t\t\t\tsl.destroy();\n\t\t\t\t\tresolve(sl);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tthis._.runningAnims.push(sl);\n\t\t\t\t\n\t\t\t\tif ( !this._.live ) {\n\t\t\t\t\tthis._.live = true;\n\t\t\t\t\trequestAnimationFrame(this._._rafLoop = this._._rafLoop || this._rafLoop.bind(this));\n\t\t\t\t}\n\t\t\t}\n\t\t).then(sl => (then && then(sl)));\n\t\t\n\t}\n\t\n\t/**\n\t * Update tweenRef raw tweened values\n\t * @param id\n\t * @param map\n\t * @param reset\n\t */\n\tapplyTweenState( id, map, reset ) {\n\t\tlet tmap = {}, initials = {};\n\t\tdeMuxTween(map, tmap, initials, this._.muxDataByTarget[id], this._.muxByTarget[id], true)\n\t\tObject.keys(tmap).map(\n\t\t\t( p ) => this._.tweenRefMaps[id][p] = (!reset && this._.tweenRefMaps[id][p] || initials[p]) + tmap[p]\n\t\t);\n\t}\n\t\n\t/**\n\t * Will init / update a scrollable axis\n\t * @param axe\n\t * @param _inertia\n\t * @param _scrollableArea\n\t * @param _scrollableBounds\n\t * @param _scrollableWindow\n\t * @param defaultPosition\n\t * @param scrollFirst\n\t * @param reset\n\t */\n\tinitAxis( axe, {\n\t\tinertia : _inertia,\n\t\tscrollableArea : _scrollableArea = 0,\n\t\tscrollableBounds: _scrollableBounds,\n\t\tscrollableWindow: _scrollableWindow,\n\t\tdefaultPosition,\n\t\tscrollFirst\n\t}, reset ) {\n\t\t\n\t\t\n\t\tlet _ = this._,\n\t\t dim = this.axes[axe],\n\t\t scrollableBounds = _scrollableBounds,\n\t\t scrollPos = !reset && dim\n\t\t ? dim.scrollPos\n\t\t : _.defaultAxesPosition?.[axe] || defaultPosition || scrollableBounds && scrollableBounds.min || 0,\n\t\t scrollableArea = Math.max(dim && dim.scrollableArea || 0, _scrollableArea),\n\t\t scrollableWindow = Math.max(dim && dim.scrollableWindow || 0, _scrollableWindow),\n\t\t targetPos = dim ? dim.targetPos : scrollPos,\n\t\t inertia = (\n\t\t\t dim ? dim.inertia : new Inertia({// todo mk pure\n\t\t\t\t disabled: !_inertia,\n\t\t\t\t ...(_inertia || {}),\n\t\t\t\t value: scrollPos\n\t\t\t })),\n\t\t nextDescr = {\n\t\t\t //...(_inertia || {}),\n\t\t\t scrollFirst,\n\t\t\t tweenAxis: dim && dim.tweenAxis || [],\n\t\t\t scrollPos,\n\t\t\t targetPos,\n\t\t\t inertia,\n\t\t\t scrollableWindow,\n\t\t\t scrollableBounds,\n\t\t\t scrollableArea,\n\t\t\t scrollTo : ( pos, tm, ease, noEvents ) => {\n\t\t\t\t return this.scrollTo(pos, tm, axe, ease, noEvents)\n\t\t\t }\n\t\t };\n\t\t\n\t\tthis.axes[axe] = nextDescr;\n\t\t!_inertia && (inertia._.disabled = true);\n\t\t(_inertia) && inertia && !inertia.active && (inertia._.pos = scrollPos);\n\t\t(_inertia) && inertia && (inertia.updateConf(_inertia));\n\t\tif ( inertia && scrollableBounds )\n\t\t\tinertia.setBounds?.(scrollableBounds.min, scrollableBounds.max);\n\t\telse\n\t\t\tinertia && inertia.setBounds?.(0, scrollableArea)\n\t}\n\t\n\t_getAxis( axe = \"scrollY\" ) {\n\t\tlet _ = this._;\n\t\t\n\t\tthis.axes[axe] = this.axes[axe] || {\n\t\t\ttweenAxis : [],\n\t\t\tscrollPos : _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\n\t\t\ttargetPos : 0,\n\t\t\tscrollableWindow: 0,\n\t\t\tscrollableArea : 0,\n\t\t\tinertia : new Inertia({\n\t\t\t\t value: _.options.initialScrollPos && _.options.initialScrollPos[axe] || 0,\n\t\t\t\t ...(_.options.axes && _.options.axes[axe] && _.options.axes[axe].inertia || {})\n\t\t\t }),\n\t\t\tscrollTo : ( pos, tm, ease, noEvents ) => {\n\t\t\t\treturn this.scrollTo(pos, tm, axe, ease, noEvents)\n\t\t\t}\n\t\t};\n\t\t\n\t\treturn this.axes[axe];\n\t}\n\t\n\t/**\n\t * Return axis infos\n\t */\n\tgetAxisState( axe ) {\n\t\tlet _ = this._, state = {};\n\t\tthis.axes && Object.keys(this.axes)\n\t\t .forEach(\n\t\t\t axe => (state[axe] = this.axes[axe].targetPos || this.axes[axe].scrollPos)\n\t\t );\n\t\treturn state;\n\t}\n\t\n\tgetScrollPos( axis = \"scrollY\" ) {\n\t\tlet _ = this._, state = {};\n\t\treturn this.axes[axis]\n\t\t ? this.axes[axis].targetPos || this.axes[axis].scrollPos\n\t\t : 0\n\t}\n\t\n\t/**\n\t * Do scroll an axis\n\t * @param newPos\n\t * @param ms\n\t * @param axe\n\t * @param ease\n\t * @returns {Promise<any | never>}\n\t */\n\tscrollTo( newPos, ms = 0, axe = \"scrollY\", ease, noEvents ) {\n\t\tlet _ = this._;\n\t\tif ( !isBrowserSide ) {\n\t\t\tconsole.warn(\"React-voodoo : scrollTo can't be used serverside, use Axis defaultPosition prop to set initial axes position\");\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\treturn new Promise(\n\t\t\t(( resolve, reject ) => {\n\t\t\t\tif ( this.axes && this.axes[axe] ) {\n\t\t\t\t\tlet oldPos = this.axes[axe].targetPos,\n\t\t\t\t\t setPos = pos => {\n\t\t\t\t\t\t //console.log('TweenableComp::setPos:514: ', newPos,pos, ms,\n\t\t\t\t\t\t // axe);\n\t\t\t\t\t\t pos = (~~(pos * 10000)) / 10000;\n\t\t\t\t\t\t this.axes[axe].targetPos = this.axes[axe].scrollPos = pos;\n\t\t\t\t\t\t \n\t\t\t\t\t\t //this.axes[axe].inertia._doSnap()\n\t\t\t\t\t\t if ( ~~pos !== oldPos ) {\n\t\t\t\t\t\t\t this.axisDidScroll(~~pos, axe);\n\t\t\t\t\t\t\t _.rootRef?.current?.componentDidScroll?.(~~pos, axe);\n\t\t\t\t\t\t }\n\t\t\t\t\t\t this._updateTweenRefs()\n\t\t\t\t\t };\n\t\t\t\t\t\n\t\t\t\t\tnewPos = Math.max(0, newPos);\n\t\t\t\t\tnewPos = Math.min(newPos, this.axes[axe].scrollableArea || 0);\n\t\t\t\t\t\n\t\t\t\t\tthis.axes[axe].targetPos = newPos;\n\t\t\t\t\t\n\t\t\t\t\tif ( !ms ) {\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(newPos);\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\n\t\t\t\t\t\t\tnewPos = this.axes?.[axe]?.inertia?._.pos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\t\t\t\t\tsl => sl.goTo(newPos, _.tweenRefMaps, false, noEvents)\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsetPos(newPos);\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis._runScrollGoTo(axe, newPos, ms, easingFn[ease], noEvents, setPos, resolve)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif ( !_.live ) {\n\t\t\t\t\t\t_.live = true;\n\t\t\t\t\t\trequestAnimationFrame(_._rafLoop);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})).then(\n\t\t\tp => {\n\t\t\t\tthis.axes?.[axe]?.inertia?._detectCurrentSnap();\n\t\t\t}\n\t\t)\n\t}\n\t\n\t/**\n\t * Add scrollable tween axis (scrollable anims) to a global axis\n\t * @param anim\n\t * @param axe\n\t * @param size\n\t * @returns {tweenAxis}\n\t */\n\taddScrollableAnim( anim, axe = \"scrollY\", size ) {\n\t\tlet sl,\n\t\t _ = this._,\n\t\t initials = {},\n\t\t dim = this._getAxis(axe);\n\t\t\n\t\tif ( isArray(anim) ) {\n\t\t\tsl = anim;\n\t\t}\n\t\telse {\n\t\t\tsl = anim.anims;\n\t\t\tsize = anim.length;\n\t\t}\n\t\t\n\t\t//console.warn(\"add scrollable\")\n\t\tif ( !(sl instanceof tweenAxis) ) {\n\t\t\tsl = deMuxLine(sl, initials, this._.muxDataByTarget, this._.muxByTarget);\n\t\t\t\n\t\t\tsl = new tweenAxis(sl, _.tweenRefMaps);\n\t\t\tsl.initials = initials;\n\t\t\t\n\t\t\tObject.keys(initials)\n\t\t\t .forEach(\n\t\t\t\t id => {\n\t\t\t\t\t _.tweenRefOrigin[id] = _.tweenRefOrigin[id] || {};\n\t\t\t\t\t \n\t\t\t\t\t _.tweenRefMaps[id] = _.tweenRefMaps[id] || {};\n\t\t\t\t\t Object.assign(this._.tweenRefMaps[id], {\n\t\t\t\t\t\t ...initials[id],\n\t\t\t\t\t\t ...this._.tweenRefMaps[id]\n\t\t\t\t\t })\n\t\t\t\t }\n\t\t\t );\n\t\t\t\n\t\t}\n\t\t\n\t\t\n\t\t// init scroll\n\t\tdim.tweenAxis.push(sl);\n\t\tdim.scrollPos = dim.scrollPos || 0;\n\t\tdim.scrollableArea = dim.scrollableArea || 0;\n\t\tdim.scrollableArea = Math.max(dim.scrollableArea, sl.duration);\n\t\t\n\t\tif ( !dim.scrollableBounds )\n\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea);\n\t\t\n\t\tsl.goTo(dim.scrollPos, this._.tweenRefMaps, false, true);\n\t\tthis._updateTweenRefs();\n\t\treturn sl;\n\t}\n\t\n\t/**\n\t * Remove a tweenAxis object from a component scrollable axis\n\t * @param sl\n\t * @param axe\n\t */\n\trmScrollableAnim( sl, axe = \"scrollY\" ) {\n\t\tlet _ = this._, found,\n\t\t dim = this._getAxis(axe), twAxis;\n\t\tlet i = dim.tweenAxis.indexOf(sl);\n\t\tif ( i !== -1 ) {\n\t\t\t\n\t\t\t//dim.tweenAxis[i].destroy();\n\t\t\tdim.tweenAxis.splice(i, 1);\n\t\t\tdim.scrollableArea = Math.max(...dim.tweenAxis.map(tl => tl.duration), 0);\n\t\t\tif ( !dim.scrollableBounds )\n\t\t\t\tdim.inertia?.setBounds(0, dim.scrollableArea || 0);\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps })\n\t\t\tsl.goTo(0, this._.tweenRefMaps, false, true);\n\t\t\t//console.warn(\"rm scrollable\", { ...this._.tweenRefMaps[\"card\"] })\n\t\t\t\n\t\t\tObject.keys(sl.initials)// unset\n\t\t\t .forEach(\n\t\t\t\t id => {\n\t\t\t\t\t Object.keys(sl.initials[id])// unset\n\t\t\t\t\t .forEach(\n\t\t\t\t\t\t rkey => {\n\t\t\t\t\t\t\t //debugger\n\t\t\t\t\t\t\t clearTweenableValue(rkey, rkey, _.tweenRefMaps[id], _.tweenRefCSS[id], _.muxDataByTarget[id], _.muxByTarget[id])\n\t\t\t\t\t\t\t //!_.tweenRefCSS[id] &&\n\t\t\t\t\t\t\t //_.refs[id] && _.refs[id].style &&\n\t\t\t\t\t\t\t // _.refs[id].style[rkey] &&\n\t\t\t\t\t\t\t // (_.refs[id].style[rkey] = null);\n\t\t\t\t\t\t })\n\t\t\t\t });\n\t\t\tdelete sl.initials;\n\t\t\tsl.destroy();\n\t\t\tfound = true;\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\t!found && console.warn(\"react-voodoo: Axis not found : \", axe)\n\t}\n\t\n\t/**\n\t * @private fn to push scrollTo\n\t * @param axe\n\t * @param to\n\t * @param tm\n\t * @param easing\n\t * @param tick\n\t * @param cb\n\t * @private\n\t */\n\t_runScrollGoTo( axe, to, tm, easing = x => x, noEvents, tick, cb ) {\n\t\tlet from = this.axes[axe].scrollPos,\n\t\t length = to - from;\n\t\t\n\t\t_running.push(\n\t\t\t{\n\t\t\t\tapply : ( pos, max ) => {\n\t\t\t\t\tlet x = (from + (easing(pos / max)) * length);\n\t\t\t\t\tif ( this._.tweenEnabled ) {\n\t\t\t\t\t\t// allow shouldLoop on scrollTo\n\t\t\t\t\t\tthis.axes?.[axe]?.inertia?.setPos(x);\n\t\t\t\t\t\tif ( this.axes?.[axe]?.inertia?._ ) {\n\t\t\t\t\t\t\tx = this.axes?.[axe]?.inertia?._.pos;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\t\t\t\t\tsl => sl.goTo(x, this._.tweenRefMaps, false, noEvents)\n\t\t\t\t\t\t);\n\t\t\t\t\t\ttick && tick(x);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tduration: tm,\n\t\t\t\tcpos : 0,\n\t\t\t\tcb\n\t\t\t})\n\t\t;\n\t\t\n\t\tif ( !_live ) {\n\t\t\t_live = true;\n\t\t\tlastTm = Date.now();\n\t\t\t// console.log(\"TL runner On\");\n\t\t\tsetTimeout(Runner._tick, 16);\n\t\t}\n\t}\n\t\n\t/**\n\t * Hook to know if the composed element allow scrolling\n\t * @returns {boolean}\n\t */\n\tcomponentShouldScroll() {\n\t\tlet _ = this._;\n\t\treturn _.rootRef &&\n\t\t _.rootRef.current &&\n\t\t _.rootRef.current.componentShouldScroll ?\n\t\t _.rootRef.current.componentShouldScroll(...arguments) : true\n\t}\n\t\n\t/**\n\t * Add scroll listener to {axisId} axis, return unwatch\n\t * @param axisId\n\t * @param listener\n\t * @returns {function(...[*]=)}\n\t */\n\twatchAxis( axisId, listener ) {\n\t\tlet byId = this._scrollWatcherByAxis;\n\t\tbyId[axisId] = byId[axisId] || [];\n\t\tbyId[axisId].push(listener);\n\t\treturn () => {\n\t\t\tlet index = byId[axisId].indexOf(listener);\n\t\t\tbyId[axisId].splice(index, 1);\n\t\t}\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// --------------- Inertia & scroll modifiers -----------------\n\t// ------------------------------------------------------------\n\t\n\taxisDidScroll( pos, axisId ) {\n\t\tlet watchers = this._scrollWatcherByAxis[axisId],\n\t\t i = watchers?.length;\n\t\tif ( watchers )\n\t\t\twhile ( i ) watchers[--i](pos);\n\t}\n\t\n\t/**\n\t * Retrieve updates from an axis inertia & apply them\n\t * @param dim\n\t * @param axe\n\t */\n\tapplyInertia( dim, axe ) {\n\t\tlet x = dim.inertia.update(), _ = this._;\n\t\t\n\t\tthis.axes[axe].tweenAxis.forEach(\n\t\t\tsl => {\n\t\t\t\tthis.axes[axe].targetPos = this.axes[axe].scrollPos = x;\n\t\t\t\tsl.goTo(x, this._.tweenRefMaps)\n\t\t\t}\n\t\t);\n\t\t//console.log(\"scroll at \" + x, axe, dim.inertia.active || dim.inertia.holding);\n\t\t//this.scrollTo(x, 0, axe);\n\t\t_.rootRef?.current?.componentDidScroll?.(x, axe);\n\t\tthis.axisDidScroll(x, axe);\n\t\tthis._updateTweenRefs()\n\t\tif ( dim.inertia.active || dim.inertia.holding ) {\n\t\t\tdim.inertiaFrame = setTimeout(this.applyInertia.bind(this, dim, axe), 33);\n\t\t}\n\t\telse {\n\t\t\tdim.inertiaFrame = null;\n\t\t\t//console.log(\"complete\");\n\t\t}\n\t}\n\t\n\t/**\n\t * Return true if at least 1 of this tweener axis have it's inertia active\n\t * @returns {boolean}\n\t */\n\tisInertiaActive() {//todo\n\t\tlet _ = this._, active = false;\n\t\tthis.axes &&\n\t\tObject.keys(this.axes)\n\t\t .forEach(\n\t\t\t axe => (active = active || this.axes[axe] && this.axes[axe].inertia.active)\n\t\t );\n\t\treturn active;\n\t}\n\t\n\tisAxisOut( axis, v, abs ) {\n\t\tlet _ = this._,\n\t\t dim = this.axes && this.axes[axis],\n\t\t pos = abs ? v : dim && (dim.scrollPos + v);\n\t\t\n\t\tpos = pos && Math.round(pos);\n\t\t\n\t\treturn !dim\n\t\t\t|| (\n\t\t\t\tdim.scrollableBounds\n\t\t\t\t?\n\t\t\t\t(pos <= dim.scrollableBounds.min || pos >= dim.scrollableBounds.max)\n\t\t\t\t:\n\t\t\t\t(pos <= 0 || pos >= dim.scrollableArea)\n\t\t\t);\n\t}\n\t\n\t_activateNodeInertia( node ) {\n\t\tlet _ = this._,\n\t\t i = _.activeInertia.findIndex(item => (item.target === node));\n\t\tif ( i === -1 ) {\n\t\t\t_.activeInertia.push(\n\t\t\t\t{\n\t\t\t\t\tinertia: {\n\t\t\t\t\t\tx: new Inertia({\n\t\t\t\t\t\t\t max : node.scrollWidth - node.offsetLeft,\n\t\t\t\t\t\t\t value: node.scrollLeft\n\t\t\t\t\t\t }),\n\t\t\t\t\t\ty: new Inertia({\n\t\t\t\t\t\t\t max : node.scrollHeight - node.offsetHeight,\n\t\t\t\t\t\t\t value: node.scrollTop\n\t\t\t\t\t\t })\n\t\t\t\t\t},\n\t\t\t\t\ttarget : node\n\t\t\t\t});\n\t\t\ti = _.activeInertia.length - 1;\n\t\t}\n\t\treturn _.activeInertia[i].inertia;\n\t\t\n\t}\n\t\n\t// ------------------------------------------------------------\n\t// --------------- Initialization & drawers -------------------\n\t// ------------------------------------------------------------\n\t\n\t_updateNodeInertia = () => {\n\t\tlet _ = this._, current, ln = _.activeInertia.length;\n\t\t\n\t\tif ( this._inertiaRaf )\n\t\t\tcancelAnimationFrame(this._inertiaRaf);\n\t\t\n\t\tfor ( let i = 0; ln > i; i++ ) {\n\t\t\tcurrent = _.activeInertia[i];\n\t\t\tif ( current.inertia.x.active || current.inertia.x.holding ) {\n\t\t\t\tcurrent.target.scrollLeft = ~~current.inertia.x.update()\n\t\t\t}\n\t\t\tif ( current.inertia.y.active || current.inertia.y.holding ) {\n\t\t\t\tcurrent.target.scrollTop = ~~current.inertia.y.update()\n\t\t\t}\n\t\t\t\n\t\t\tif ( !current.inertia.x.active && !current.inertia.y.active && !current.inertia.x.holding && !current.inertia.y.holding ) {\n\t\t\t\t_.activeInertia.slice(i, 1);\n\t\t\t\ti--;\n\t\t\t\tln--;\n\t\t\t}\n\t\t}\n\t\tif ( ln !== 0 )\n\t\t\tthis._inertiaRaf = requestAnimationFrame(this._updateNodeInertia)\n\t\telse this._inertiaRaf = null;\n\t}\n\t\n\tsetRootRef( id ) {\n\t\tthis._.rootRef = id;\n\t}\n\t\n\t_updateBox() {\n\t\tlet node = this.getRootNode();\n\t\tif ( node ) {\n\t\t\tthis._.box.inited = true;\n\t\t\tthis._.box.x = node.offsetWidth;\n\t\t\tthis._.box.y = node.offsetHeight;\n\t\t}\n\t}\n\t\n\t_rafLoop() {\n\t\tthis._updateTweenRefs();\n\t\tif ( this._.runningAnims.length ) {\n\t\t\trequestAnimationFrame(this._._rafLoop);\n\t\t}\n\t\telse {\n\t\t\t//this._.live && console.log(\"RAF off\", this.constructor.displayName);\n\t\t\tthis._.live = false;\n\t\t}\n\t}\n\t\n\t_updateTweenRefs() {\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tfor ( let i = 0, target, node, style; i < this._.tweenRefTargets.length; i++ ) {\n\t\t\t\ttarget = this._.tweenRefTargets[i];\n\t\t\t\tstyle = this._updateTweenRef(target);\n\t\t\t}\n\t\t}\n\t}\n\t\n\t_updateTweenRef( target, force ) {\n\t\tlet node, swap = this._swap, changes;\n\t\tthis._.tweenRefCSS[target] &&\n\t\tmuxToCss(this._.tweenRefMaps[target], swap, this._.muxByTarget[target], this._.muxDataByTarget[target], this._.box);\n\t\tnode = this.getTweenableRef(target);\n\t\tif ( node ) {\n\t\t\tfor ( let o in this._.tweenRefCSS[target] )\n\t\t\t\tif ( swap[o] === undefined ) {\n\t\t\t\t\tnode.style[o] = this._.tweenRefCSS[target][o];\n\t\t\t\t\t//\t\tnode.style[o] = null;\n\t\t\t\t\t//\t\tdelete this._.tweenRefCSS[target][o];\n\t\t\t\t}\n\t\t\tfor ( let o in swap )\n\t\t\t\tif ( this._.tweenRefCSS[target].hasOwnProperty(o) ) {\n\t\t\t\t\tif ( force || swap[o] !== this._.tweenRefCSS[target][o] ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tnode.style[o] = this._.tweenRefCSS[target][o] = swap[o];\n\t\t\t\t\t\t//if ( target == \"card\" ) console.log(target, o, node.style[o],\n\t\t\t\t\t\t// swap[o]);\n\t\t\t\t\t\tchanges = true;\n\t\t\t\t\t}\n\t\t\t\t\tdelete swap[o];\n\t\t\t\t}\n\t\t}\n\t\t//if ( !changes )\n\t\t//console.log('no changes', target, this._.tweenRefCSS[target], !!node, force)\n\t\treturn this._.tweenRefCSS[target];\n\t}\n\t\n\t\n\t// ------------------------------------------------------------\n\t// --------------- React Hooks --------------------------------\n\t// ------------------------------------------------------------\n\t\n\tcomponentWillUnmount() {\n\t\tlet node = this.getRootNode();\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tthis._.tweenEnabled = false;\n\t\t\twindow.removeEventListener(\"resize\", this._.onResize);\n\t\t\t\n\t\t\tObject.keys(this.axes).forEach(\n\t\t\t\taxe => {\n\t\t\t\t\tthis.axes[axe].inertiaFrame &&\n\t\t\t\t\tclearTimeout(this.axes[axe].inertiaFrame);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\tsuper.componentWillUnmount && super.componentWillUnmount(...arguments);\n\t}\n\t\n\tcomponentDidMount() {\n\t\tlet _static = this.constructor;\n\t\t\n\t\tthis._.rendered = true;\n\t\tif ( this._.tweenEnabled ) {\n\t\t\t// debugger;\n\t\t\tthis._updateBox();\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\tif ( _static.scrollableAnim ) {\n\t\t\tif ( is.array(_static.scrollableAnim) )\n\t\t\t\tthis.addScrollableAnim(_static.scrollableAnim);\n\t\t\telse\n\t\t\t\tObject.keys(_static.scrollableAnim)\n\t\t\t\t .forEach(\n\t\t\t\t\t axe => this.addScrollableAnim(_static.scrollableAnim[axe], axe)\n\t\t\t\t )\n\t\t}\n\t\t//if ( this._.doRegister || this.__isFirst ) {\n\t\t//\n\t\t//\tthis._.doRegister = false;\n\t\t//}\n\t\tsuper.componentDidMount && super.componentDidMount(...arguments);\n\t}\n\t\n\tcomponentDidUpdate( prevProps, prevState ) {\n\t\t\n\t\tif ( this._.tweenEnabled ) {\n\t\t\tthis._updateBox();\n\t\t\tthis._updateTweenRefs();\n\t\t}\n\t\tsuper.componentDidUpdate && super.componentDidUpdate(...arguments);\n\t}\n\t\n\trender() {\n\t\tconst { BaseComponent, oProps } = this.props;\n\t\treturn <TweenerContext.Consumer>\n\t\t\t{\n\t\t\t\tparentTweener => {\n\t\t\t\t\tthis._parentTweener = parentTweener;\n\t\t\t\t\treturn <TweenerContext.Provider value={this}>\n\t\t\t\t\t\t<BaseComponent {...oProps} ref={this._.rootRef}\n\t\t\t\t\t\t tweener={this}/>\n\t\t\t\t\t</TweenerContext.Provider>;\n\t\t\t\t}\n\t\t\t}\n\t\t</TweenerContext.Consumer>;\n\t}\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport is from \"is\";\nimport TweenerContext from \"../comps/TweenerContext\";\nimport Tweener from \"../comps/Tweener\";\n\n/**\n * Wrap & instanciate the Tweener Comp \"virtual\"\n * @param tweenerOptions\n * @param RootNodeComp\n */\nexport default ( tweenerOptions, RootNodeComp = 'div' ) => {\n\tconst parentTweener = React.useContext(TweenerContext),\n\t nodeRef = React.useRef(),\n\t lastTweener = React.useRef(),\n\t doUseParentTweener = React.useMemo(\n\t\t () => (tweenerOptions === true || is.string(tweenerOptions)),\n\t\t []\n\t ),\n\t tweener = React.useMemo(\n\t\t () => {\n\t\t\t if ( tweenerOptions === true )// keep tweener from context ( parent )\n\t\t\t\t return parentTweener;\n\t\t\t\n\t\t\t if ( is.string(tweenerOptions) ) {// return named tweener or most root tweener\n\t\t\t\t let pTweener = parentTweener;\n\t\t\t\t\n\t\t\t\t while ( pTweener?._ && pTweener._.options.name !== tweenerOptions )\n\t\t\t\t\t if ( pTweener._parentTweener )\n\t\t\t\t\t\t pTweener = pTweener._parentTweener;\n\t\t\t\t\t else {\n\t\t\t\t\t\t console.warn('react-voodoo: No parent tweener found with option.key === \"' + tweenerOptions + '\"');\n\t\t\t\t\t\t break;\n\t\t\t\t\t }\n\t\t\t\t\n\t\t\t\t return pTweener;\n\t\t\t }\n\t\t\t\n\t\t\t let tw = new Tweener({\n\t\t\t\t forwardedRef: nodeRef,\n\t\t\t\t tweenerOptions\n\t\t\t });\n\t\t\t tw.isMountedFromHook = true;\n\t\t\t tw._parentTweener = parentTweener;\n\t\t\t return tw;\n\t\t },\n\t\t []\n\t ),\n\t ViewBox = React.useMemo(\n\t\t () => (\n\t\t\t React.forwardRef(\n\t\t\t\t ( { children, ...props }, ref ) => {\n\t\t\t\t\t return <TweenerContext.Provider value={tweener}>\n\t\t\t\t\t\t <RootNodeComp\n\t\t\t\t\t\t\t ref={!ref\n\t\t\t\t\t\t\t ? nodeRef\n\t\t\t\t\t\t\t : ( node ) => (ref.current = nodeRef.current = node)} {...props}>\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t children\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t </RootNodeComp>\n\t\t\t\t\t </TweenerContext.Provider>\n\t\t\t\t }\n\t\t\t )\n\t\t ),\n\t\t []\n\t )\n\t\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\t//console.warn(\"didmount\", nodeRef.current, lastTweener.current === TweenerEl)\n\t\t\ttweener.componentDidMount();\n\t\t\tlastTweener.current = tweener;\n\t\t\treturn () => {\n\t\t\t\tif ( !lastTweener.current?._ )\n\t\t\t\t\treturn;\n\t\t\t\t//console.warn(\"unmount\")\n\t\t\t\tlastTweener.current.componentWillUnmount();\n\t\t\t\tlastTweener.current = null;\n\t\t\t}\n\t\t}, []\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\t//console.warn(\"didupdate\", nodeRef.current)\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t\t\n\t\t}\n\t\t,\n\t\t[nodeRef.current]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._parentTweener = parentTweener;\n\t\t},\n\t\t[parentTweener]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( doUseParentTweener || !lastTweener.current?._ )\n\t\t\t\treturn;\n\t\t\tlastTweener.current._.options = tweenerOptions;\n\t\t\tlastTweener.current._updateBox();\n\t\t\tlastTweener.current._updateTweenRefs();\n\t\t},\n\t\t[tweenerOptions]\n\t)\n\treturn React.useMemo(\n\t\t() => ([tweener, ViewBox]),\n\t\t[ViewBox, tweener]\n\t);\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport React from 'react';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\n\nexport default ( {\n\t children,\n\t id,\n\t axe = id,\n\t scrollFirst, bounds,\n\t scrollableWindow, inertia, size, defaultPosition,\n\t items = [],\n } ) => {\n\tconst µ = React.useRef({}).current,\n\t [tweener] = useVoodoo(true);\n\t\n\tif ( !µ.previousAxis || µ.previousAxis !== axe ) {//....\n\t\tµ.previousAxis = axe;\n\t\tµ.previousInertia = inertia;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tsize,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t}, true);\n\t}\n\telse if ( !µ.previousInertia || µ.previousInertia !== inertia || µ.previousBounds !== bounds || µ.previousScrollableWindow !== scrollableWindow ) {//....\n\t\tµ.previousInertia = inertia;\n\t\tµ.previousAxis = axe;\n\t\tµ.previousBounds = bounds;\n\t\tµ.previousScrollableWindow = scrollableWindow;\n\t\ttweener.initAxis(axe, {\n\t\t\tinertia,\n\t\t\tsize,\n\t\t\tscrollableWindow,\n\t\t\tdefaultPosition,\n\t\t\tscrollFirst,\n\t\t\tscrollableBounds: bounds\n\t\t});\n\t}\n\tif ( !µ.previousTweener || µ.previousTweener !== tweener ) {// mk axe not modifiable\n\t\tµ.previousTweener && µ.lastTL && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweener = tweener;\n\t\tµ.previousTweens = items;\n\t}\n\telse if ( µ.previousTweens !== items && !(µ.previousTweens && deepEqual(items, µ.previousTweens)) ) {// is deepEq really required ?\n\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\tµ.lastTL = null;\n\t\tif ( items.length )\n\t\t\tµ.lastTL = tweener.addScrollableAnim(items, axe, size);\n\t\tµ.previousTweens = items;\n\t}\n\t\n\tReact.useEffect(\n\t\t() => {\n\t\t\t\n\t\t\treturn () => {\n\t\t\t\tµ.lastTL && µ.previousTweener && µ.previousTweener.rmScrollableAnim(µ.lastTL, µ.previousAxis);\n\t\t\t\t\n\t\t\t\tdelete µ.previousTweener;\n\t\t\t\tdelete µ.previousScrollable;\n\t\t\t}\n\t\t}, [])\n\treturn <React.Fragment/>;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"shortid\");","/*\r\n * Copyright (c) 2022-2023 Braun Nathanael\r\n *\r\n * This project is dual licensed under one of the following licenses:\r\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\r\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\r\n *\r\n * You should have received a copy of theses licenses along with this work.\r\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\r\n */\r\n\r\n\r\nexport function isClassComponent(component) {\r\n return (\r\n typeof component === 'function' &&\r\n !!component.prototype.isReactComponent\r\n )\r\n}\r\nexport function isFunctionalComponent(Component) {\r\n return (\r\n typeof Component === 'function' // can be various things\r\n && !(\r\n Component.prototype // native arrows don't have prototypes\r\n && Component.prototype.isReactComponent // special property\r\n )\r\n );\r\n}\r\n\r\nexport function isReactComponent(component) {\r\n return (\r\n isClassComponent(component) ||\r\n isFunctionalComponent(component)\r\n )\r\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport deepEqual from \"fast-deep-equal\";\nimport is from \"is\";\nimport React from 'react';\nimport shortid from 'shortid';\nimport useVoodoo from \"../hooks/useVoodoo\";\n\nimport {isFunctionalComponent} from '../utils/react';\n\nfunction setTarget( anims, target ) {\n\treturn anims.map(\n\t\ttween => ({\n\t\t\t...tween,\n\t\t\ttarget\n\t\t})\n\t)\n}\n\nconst Node = React.forwardRef(( {\n\t children,\n\t id = React.useMemo(() => shortid.generate(), []),\n\t style, initial, pos, noRef, reset, tweener,\n\t isRoot,\n\t axes,\n\t refProp = \"nodeRef\",\n\t tweenLines = axes,\n\t tweenAxis = tweenLines,\n\t ...props\n }, ref ) => {\n\tlet µ = React.useRef({}).current,\n\t [parentTweener] = useVoodoo(true);\n\tparentTweener = tweener || parentTweener;\n\t\n\tif ( !parentTweener ) {\n\t\tconsole.error(\"No Voodoo tweener found in the context, is there any parent ViewBox ?\")\n\t\treturn <React.Fragment/>;\n\t}\n\t//console.warn(\"render : \", this.__tweenableId, this._currentTweener,\n\t// parentTweener, this._currentTweener !== parentTweener)\n\tlet twRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t pos, ref, noRef),\n\t axisItemsChange;\n\t\n\t\n\t// remove refs when unmount\n\tReact.useEffect(\n\t\t() => () => {\n\t\t\tif ( µ._tweenAxisObj ) {\n\t\t\t\tObject.keys(µ._tweenAxisObj)\n\t\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t}\n\t\t\tif ( µ._currentTweener ) {\n\t\t\t\tµ._currentTweener.rmTweenRef(µ.__tweenableId)\n\t\t\t\tµ._currentTweener.setRootRef(undefined);\n\t\t\t}\n\t\t\tdelete µ._currentTweener;\n\t\t\tdelete µ._tweenAxisObj;\n\t\t\tdelete µ._previousScrollable;\n\t\t},\n\t\t[]\n\t)\n\t// register axes if tweener or node axis items change\n\taxisItemsChange = µ._tweenAxis !== tweenAxis && !(µ._tweenAxis && deepEqual(tweenAxis, µ._tweenAxis))\n\t\t|| (tweenAxis && !µ._tweenAxis);\n\tif ( axisItemsChange || µ._currentTweener !== parentTweener || µ._previousScrollable !== tweenAxis ) {\n\t\t\n\t\t// if items changes rm the old items\n\t\tif ( µ._currentTweener && axisItemsChange ) {\n\t\t\tµ._tweenAxisObj && Object.keys(µ._tweenAxisObj)\n\t\t\t .forEach(axe => µ._currentTweener.rmScrollableAnim(µ._tweenAxisObj[axe], axe));\n\t\t\t\n\t\t}\n\t\t//console.log(twRef, axisItemsChange, µ._tweenAxis, tweenAxis)\n\t\t\n\t\t// if tweener changes rm the node ref\n\t\tif ( µ._currentTweener && µ._currentTweener !== parentTweener ) {\n\t\t\tµ._currentTweener.rmTweenRef(id);\n\t\t}\n\t\t\n\t\t// if items changes reg the items on the tweener\n\t\tif ( axisItemsChange ) {\n\t\t\tµ._tweenAxis = tweenAxis;\n\t\t\tif ( tweenAxis && is.array(tweenAxis) )\n\t\t\t\tµ._tweenAxisObj = { scrollY: parentTweener.addScrollableAnim(setTarget(tweenAxis, id)) };\n\t\t\telse\n\t\t\t\tµ._tweenAxisObj = tweenAxis &&\n\t\t\t\t\tObject.keys(tweenAxis)\n\t\t\t\t\t .reduce(\n\t\t\t\t\t\t ( h, axe ) =>\n\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t h[axe] = parentTweener.addScrollableAnim(setTarget(tweenAxis[axe], id), axe),\n\t\t\t\t\t\t\t\t\t h\n\t\t\t\t\t\t\t ), {});\n\t\t\ttwRef = parentTweener.tweenRef(id, children.props && children.props.style, style || initial,\n\t\t\t pos, ref, noRef)\n\t\t}\n\t\t\n\t\t// anyway, if there change set the last css values\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };\n\t\t\n\t\tif ( props.hasOwnProperty(\"isRoot\") ) {\n\t\t\tµ._currentTweener && µ._currentTweener.setRootRef(undefined);\n\t\t\ttweener.setRootRef(id);\n\t\t}\n\t\t\n\t\tµ._currentTweener = parentTweener;\n\t\tµ._previousScrollable = tweenAxis;\n\t\t\n\t}\n\telse if ( twRef ) {\n\t\ttwRef.style = { ...parentTweener._updateTweenRef(id, true) };// should renew only if changed\n\t}\n\t\n\tlet RefChild = React.Children.only(children);\n\t\n\tif ( RefChild && React.isValidElement(RefChild) ) {//todo\n\t\tµ._lastRef = twRef;\n\t\t\n\t\tif ( isFunctionalComponent(RefChild.type) )\n\t\t\treturn <RefChild.type\n\t\t\t\t{...props}\n\t\t\t\t{...RefChild.props}\n\t\t\t\t{...twRef}\n\t\t\t\tref={undefined}\n\t\t\t\t{\n\t\t\t\t\t...{\n\t\t\t\t\t\t[refProp]: twRef.ref\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t/>;\n\t\t\n\t\treturn <RefChild.type\n\t\t\t{...props}\n\t\t\t{...RefChild.props}\n\t\t\t{...twRef}/>;\n\t\t\n\t}\n\telse {\n\t\tconsole.error(\"Invalid voodoo Node child : \", id)\n\t}\n\treturn <div>Invalid</div>;\n})\nexport default Node;\n\nNode.div = React.forwardRef(( { children, className, ...props }, ref ) => {\n\treturn <Node {...props} ref={ref}>\n\t\t<div className={className}>{children}</div>\n\t</Node>;\n})\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport is from \"is\";\nimport React from 'react';\nimport ReactDom from \"react-dom\";\nimport useVoodoo from \"../hooks/useVoodoo\";\nimport domUtils from \"../utils/dom\";\n\nconst Draggable = React.forwardRef(( {\n\t children,\n\t Comp = 'div',\n\t nodeRef,\n\t items = [],\n\t xAxis, yAxis, yBoxRef,\n\t xBoxRef, yRef,\n\t yHook, xHook,\n\t tweener,\n\t mouseDrag = false,\n\t touchDrag = true,\n\t button = 0,\n\t ...props\n }, ref ) => {\n\tlet root = React.useRef(),\n\t µ = React.useRef({ root, _: {} }).current,\n\t [parentTweener] = useVoodoo(true),\n\t api = React.useMemo(\n\t\t () => ({\n\t\t\t \n\t\t\t /**\n\t\t\t * Return scrollable parent node list basing a dom node\n\t\t\t * @param node\n\t\t\t * @returns {T[]}\n\t\t\t */\n\t\t\t getScrollableNodes( node ) {\n\t\t\t\t let scrollable = [], parent = µ._parentTweener;//domUtils.findReactParents(node),\n\t\t\t\t // _ = µ._;\n\t\t\t\t \n\t\t\t\t while ( parent ) {\n\t\t\t\t\t scrollable.push(parent);\n\t\t\t\t\t parent = parent._parentTweener;\n\t\t\t\t }\n\t\t\t\t \n\t\t\t\t return scrollable\n\t\t\t },\n\t\t\t \n\t\t\t /**\n\t\t\t * Init touch & scroll listeners\n\t\t\t * Drive scroll & drag values updates\n\t\t\t * @private\n\t\t\t */\n\t\t\t _registerScrollListeners() {\n\t\t\t\t let rootNode = µ.root?.current,\n\t\t\t\t {\n\t\t\t\t\t xAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener, xBoxRef, yBoxRef, button\n\t\t\t\t } = µ.props,\n\t\t\t\t lastStartTm,\n\t\t\t\t cLock, dX,\n\t\t\t\t parents,\n\t\t\t\t dY, parentsState, refWidth, refHeight,\n\t\t\t\t _ = tweener._;\n\t\t\t\t \n\t\t\t\t if ( rootNode ) {\n\t\t\t\t\t domUtils.addEvent(\n\t\t\t\t\t\t rootNode, µ._.dragList = {\n\t\t\t\t\t\t\t 'dragstart': ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x,\n\t\t\t\t\t\t\t\t y, i, style;\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t parents = api.getScrollableNodes(e.target);\n\t\t\t\t\t\t\t\t lastStartTm = Date.now();\n\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t parentsState = [];\n\t\t\t\t\t\t\t\t refWidth = (xBoxRef?.current || rootNode)?.offsetWidth;\n\t\t\t\t\t\t\t\t refHeight = (yBoxRef?.current || rootNode)?.offsetHeight;\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t pTweener._updateBox();\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //tweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t //e.preventDefault();\n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t 'click' : ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm &&\n\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t (lastStartTm - Date.now() > _.options.maxClickTm) ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dY) > _.options.maxClickOffset ||\n\t\t\t\t\t\t\t\t\t\t Math.abs(dX) > _.options.maxClickOffset\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t ) {\n\t\t\t\t\t\t\t\t\t e.preventDefault();\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t\t //console.log(\"prevented click\", lastStartTm, Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t\t //console.log(':o ' + (lastStartTm - Date.now()) + ' ' + dX +\n\t\t\t\t\t\t\t\t\t //\t ' ' + dY, _.options.maxClickTm)\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //else console.log(\"click\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t },\n\t\t\t\t\t\t\t 'drag' : ( e, touch, descr ) => {//@todo\n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, xBox,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, yBox,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t dX = -(descr._lastPos.x - descr._startPos.x);\n\t\t\t\t\t\t\t\t dY = -(descr._lastPos.y - descr._startPos.y);\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( lastStartTm && ((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY) < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip tap & click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t //console.log(':u ' + (lastStartTm - Date.now()) + ' ' + dX +\n\t\t\t\t\t\t\t\t\t // ' ' + dY)\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t else {\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t xDispatched = !dX;\n\t\t\t\t\t\t\t\t\t yDispatched = !dY;\n\t\t\t\t\t\t\t\t\t if ( _.options.dragDirectionLock ) {\n\t\t\t\t\t\t\t\t\t\t if ( cLock === \"Y\" || !cLock && Math.abs(dY * .5) > Math.abs(dX) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"Y\";\n\t\t\t\t\t\t\t\t\t\t\t dX = 0;\n\t\t\t\t\t\t\t\t\t\t\t //xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t else if ( cLock === \"X\" || !cLock && Math.abs(dX * .5) > Math.abs(dY) ) {\n\t\t\t\t\t\t\t\t\t\t\t cLock = \"X\";\n\t\t\t\t\t\t\t\t\t\t\t dY = 0;\n\t\t\t\t\t\t\t\t\t\t\t //yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener ) {\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t x = xAxis && pTweener.axes?.[xAxis];\n\t\t\t\t\t\t\t\t\t\t\t y = yAxis && pTweener.axes?.[yAxis];\n\t\t\t\t\t\t\t\t\t\t\t //console.log(\"drag\", dX, dY, xAxis, yAxis,\n\t\t\t\t\t\t\t\t\t\t\t // pTweener.axes);\n\t\t\t\t\t\t\t\t\t\t\t if ( !x && !y )\n\t\t\t\t\t\t\t\t\t\t\t\t continue;\n\t\t\t\t\t\t\t\t\t\t\t //console.log('Draggable:::306: ', parents);\n\t\t\t\t\t\t\t\t\t\t\t if ( !parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t\t\t parentsState[i] = {\n\t\t\t\t\t\t\t\t\t\t\t\t\t x: x?.scrollPos,\n\t\t\t\t\t\t\t\t\t\t\t\t\t y: y?.scrollPos\n\t\t\t\t\t\t\t\t\t\t\t\t };\n\t\t\t\t\t\t\t\t\t\t\t\t x?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t y?.inertia?.startMove();\n\t\t\t\t\t\t\t\t\t\t\t\t xAxis && x && !x?.inertiaFrame && pTweener.applyInertia(x, xAxis);\n\t\t\t\t\t\t\t\t\t\t\t\t yAxis && y && !y?.inertiaFrame && pTweener.applyInertia(y, yAxis);\n\t\t\t\t\t\t\t\t\t\t\t\t //console.warn('Draggable::drag:190: ');\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t if ( x ) {\n\t\t\t\t\t\t\t\t\t\t\t\t xBox = xBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refWidth\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.x\n\t\t\t\t\t\t\t\t\t\t\t\t deltaX = dX && (dX / xBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t x.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( xHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaX = xHook(deltaX);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t if ( y ) {\n\t\t\t\t\t\t\t\t\t\t\t\t yBox = yBoxRef?.current\n\t\t\t\t\t\t\t\t\t\t\t\t ? refHeight\n\t\t\t\t\t\t\t\t\t\t\t\t : pTweener._.box.y\n\t\t\t\t\t\t\t\t\t\t\t\t deltaY = dY && (dY / yBox) * (\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableWindow ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t y.scrollableArea) || 0;\n\t\t\t\t\t\t\t\t\t\t\t\t if ( yHook )\n\t\t\t\t\t\t\t\t\t\t\t\t\t deltaY = yHook(deltaY);\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t //console.log('scrollX ',\n\t\t\t\t\t\t\t\t\t\t\t // xDispatched,\n\t\t\t\t\t\t\t\t\t\t\t // x?.inertia?.isInbound(parentsState[ i\n\t\t\t\t\t\t\t\t\t\t\t // ].x + deltaX), parentsState[ i ].x + deltaX );\n\t\t\t\t\t\t\t\t\t\t\t if ( x && !xDispatched && deltaX && x?.inertia?.isInbound(parentsState[i].x + deltaX)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(xAxis, deltaX)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t x.inertia.hold(parentsState[i].x + deltaX);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].x = x.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t xDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t //console.log(\"scrollY\", yDispatched,\n\t\t\t\t\t\t\t\t\t\t\t // y?.inertia?.isInbound(parentsState[ i\n\t\t\t\t\t\t\t\t\t\t\t // ].y + deltaY), parentsState[ i ].y + deltaY);\n\t\t\t\t\t\t\t\t\t\t\t if ( y && !yDispatched && deltaY && y?.inertia?.isInbound(parentsState[i].y + deltaY)\n\t\t\t\t\t\t\t\t\t\t\t\t && (pTweener.componentShouldScroll(yAxis, deltaY)) ) {\n\t\t\t\t\t\t\t\t\t\t\t\t y.inertia.hold(parentsState[i].y + deltaY);\n\t\t\t\t\t\t\t\t\t\t\t\t //parentsState[i].y = y.inertia._.pos;\n\t\t\t\t\t\t\t\t\t\t\t\t //console.log('Draggable::drag:190: ',\n\t\t\t\t\t\t\t\t\t\t\t\t // parentsState[i].y,deltaY);\n\t\t\t\t\t\t\t\t\t\t\t\t yDispatched = true;\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t if ( yDispatched && xDispatched ) {\n\t\t\t\t\t\t\t\t\t\t //e.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t //e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //dX = 0;\n\t\t\t\t\t\t\t\t\t //dY = 0;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t ,\n\t\t\t\t\t\t\t 'dropped': ( e, touch, descr ) => {\n\t\t\t\t\t\t\t\t let pTweener,\n\t\t\t\t\t\t\t\t x, deltaX, xDispatched, vX,\n\t\t\t\t\t\t\t\t y, deltaY, yDispatched, vY,\n\t\t\t\t\t\t\t\t cState, i;\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t if ( (e) instanceof MouseEvent && e.button !== button ) {// allow undefined so µ work for touch events\n\t\t\t\t\t\t\t\t\t return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t cLock = undefined;\n\t\t\t\t\t\t\t\t //lastStartTm = undefined;\n\t\t\t\t\t\t\t\t //document.body.style.userSelect = '';\n\t\t\t\t\t\t\t\t //document.body.style.touchAction = '';\n\t\t\t\t\t\t\t\t for ( i = 0; i < parents.length; i++ ) {\n\t\t\t\t\t\t\t\t\t pTweener = parents[i];\n\t\t\t\t\t\t\t\t\t // react comp with tweener support\n\t\t\t\t\t\t\t\t\t if ( pTweener.__isTweener && parentsState[i] ) {\n\t\t\t\t\t\t\t\t\t\t //console.log('Draggable::dropped:228: ',\n\t\t\t\t\t\t\t\t\t\t // pTweener._getAxis(xAxis)?.inertia);\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[xAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t pTweener.axes?.[yAxis]?.inertia?.release();\n\t\t\t\t\t\t\t\t\t\t //pTweener._updateNodeInertia()\n\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t //else if ( is.element(tweener) ) {\n\t\t\t\t\t\t\t\t\t //\tcState = parentsState[i];\n\t\t\t\t\t\t\t\t\t //\tif ( cState ) {\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.x.release();\n\t\t\t\t\t\t\t\t\t //\t\tcState.inertia.y.release();\n\t\t\t\t\t\t\t\t\t //\t}\n\t\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t if ( lastStartTm && !((lastStartTm > Date.now() - _.options.maxClickTm) && Math.abs(dY)\n\t\t\t\t\t\t\t\t\t < _.options.maxClickOffset && Math.abs(dX) < _.options.maxClickOffset) )// skip\n\t\t\t\t\t\t\t\t // tap\n\t\t\t\t\t\t\t\t\t // &\n\t\t\t\t\t\t\t\t\t // click\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t e.stopPropagation();\n\t\t\t\t\t\t\t\t\t e.cancelable && e.preventDefault();\n\t\t\t\t\t\t\t\t\t //console.log(\"prevented\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t\t //return;\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t //else {\n\t\t\t\t\t\t\t\t //console.log(\"not prevented\", Math.abs(dX), Math.abs(dY))\n\t\t\t\t\t\t\t\t //}\n\t\t\t\t\t\t\t\t //lastStartTm = 0;\n\t\t\t\t\t\t\t\t parents = parentsState = null;\n\t\t\t\t\t\t\t }\n\t\t\t\t\t\t },\n\t\t\t\t\t\t null,\n\t\t\t\t\t\t _.options.enableMouseDrag || mouseDrag,\n\t\t\t\t\t\t touchDrag\n\t\t\t\t\t )\n\t\t\t\t\t µ._.doRegister = !!rootNode;\n\t\t\t\t }\n\t\t\t\t else {\n\t\t\t\t\t µ._.doRegister = true;\n\t\t\t\t }\n\t\t\t }\n\t\t\t \n\t\t }),\n\t\t []\n\t );\n\tReact.useEffect(\n\t\t() => {\n\t\t\tapi._registerScrollListeners();\n\t\t\treturn () => {\n\t\t\t\tlet node = µ.root?.current;\n\t\t\t\tif ( µ._.scrollEnabled ) {\n\t\t\t\t\tµ._.scrollEnabled = false;\n\t\t\t\t\t\n\t\t\t\t\tnode && µ._.dragList && domUtils.removeEvent(node\n\t\t\t\t\t\t, µ._.dragList)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[]\n\t)\n\tReact.useEffect(\n\t\t() => {\n\t\t\tif ( is.function(nodeRef) )\n\t\t\t\tnodeRef(root.current)\n\t\t\tif ( is.function(ref) )\n\t\t\t\tref(root.current)\n\t\t\telse if ( ref )\n\t\t\t\tref.current = root.current;\n\t\t},\n\t\t[nodeRef, ref]\n\t)\n\tµ.props = {\n\t\txAxis, yAxis, yHook, xHook, mouseDrag, touchDrag, tweener: tweener || parentTweener, xBoxRef, yBoxRef, button\n\t}\n\tµ._parentTweener = parentTweener;\n\treturn <Comp ref={root} {...props}>{children}</Comp>;\n})\nexport default Draggable;\n\nDraggable.div = ( props ) => {\n\treturn <Draggable {...props}/>;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\nimport React from \"react\";\nimport TweenerContext from \"../comps/TweenerContext\";\n\nexport default ()=>{\n\treturn React.useContext(TweenerContext)\n}","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport Tweener from '../comps/Tweener';\nimport { isReactComponent } from '../utils/react';\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function asTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n options = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n if ( !BaseComponent ) {\n return function ( BaseComponent ) {\n return asTweener(BaseComponent, options)\n }\n }\n \n options = {\n wheelRatio : 5,\n maxClickTm : 200,\n maxClickOffset: 20,\n ...options,\n };\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <Tweener oProps={ props } forwardedRef={ ref }\n BaseComponent={ BaseComponent }\n tweenerOptions={ options }/>;\n });\n withRef.displayName = String.fromCharCode(0xD83E, 0xDDD9) + ( BaseComponent.displayName || BaseComponent.name );\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from \"react\";\nimport is from \"is\";\n\nimport { isReactComponent } from '../utils/react';\nimport TweenerContext from \"../comps/TweenerContext\";\n\n\nconst SimpleObjectProto = ( {} ).constructor;\n\n\n/**\n * asTweener decorator\n * @param argz\n * @returns {*}\n */\nexport default function withTweener( ...argz ) {\n \n let BaseComponent = ( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) && argz.shift(),\n opts = ( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) && argz.shift() || {};\n \n if ( !( BaseComponent && ( BaseComponent.prototype instanceof React.Component || BaseComponent === React.Component ) ) ) {\n return function ( BaseComponent ) {\n return withTweener(BaseComponent, opts)\n }\n }\n \n class TweenerToProps extends React.Component {\n static displayName = ( BaseComponent.displayName || BaseComponent.name );\n \n render() {\n return <TweenerContext.Consumer>\n {\n tweener => {\n return <BaseComponent { ...this.props } tweener={ tweener }\n ref={ this.props.forwardedRef }/>;\n }\n }\n </TweenerContext.Consumer>;\n }\n }\n \n \n let withRef = React.forwardRef(( props, ref ) => {\n return <TweenerToProps { ...props } forwardedRef={ ref }/>;\n });\n withRef.displayName = TweenerToProps.displayName;\n return withRef;\n}\n","/*\n * Copyright (c) 2022-2023 Braun Nathanael\n *\n * This project is dual licensed under one of the following licenses:\n * - Creative Commons Attribution-NoDerivatives 4.0 International License.\n * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3\n *\n * You should have received a copy of theses licenses along with this work.\n * If not, see <http://creativecommons.org/licenses/by-nd/4.0/> or <http://www.gnu.org/licenses/agpl-3.0.txt>.\n */\n\nimport React from 'react';\nimport Axis from './comps/Axis';\nimport Context from './comps/TweenerContext';\nimport Node from './comps/Node';\nimport Draggable from './comps/Draggable';\nimport useVoodoo from './hooks/useVoodoo';\nimport useTweener from './hooks/useTweener';\nimport tweener from './spells/asTweener';\nimport child from './spells/withTweener';\nimport dom from './utils/dom.js';\nimport * as tools from './utils/tweenTools.js';\n\nimport TweenAxis from \"tween-axis\";\nimport * as D3Ease from \"d3-ease\";\n\nTweenAxis.EasingFunctions = D3Ease;\n\n@tweener\nclass Component extends React.Component {\n\trender() {\n\t\treturn this.props.children;\n\t}\n}\n\nexport {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\tuseVoodoo as hook,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom\n};\nexport default {\n\ttweener,\n\tchild,\n\tuseTweener,\n\tuseVoodoo,\n\thook: useVoodoo,\n\ttools,\n\tDraggable,\n\tComponent,\n\tNode,\n\tContext,\n\tAxis,\n\tdom\n};\n"],"names":["defaultUnits","translateX","translateY","translateZ","scale","scaleZ","scaleX","scaleY","rotate","skewX","skewY","rotateX","rotateY","rotateZ","perspective","defaultBox","left","right","top","bottom","width","height","defaultValue","release","twKey","tweenableMap","cssMap","dataMap","muxerMap","keepValues","tmpKey","path","split","length","pop","console","log","demuxOne","unitIndex","dkey","twVal","baseKey","data","box","value","unit","units","x","y","z","floatCut","demux","key","tweenable","target","tmap","fkey","iValue","transforms","ti","hasOwnProperty","substr","transform","muxOne","initials","noPropLock","seenUnits","match","is","unitsRe","unitKey","indexOf","realKey","parseFloat","mux","reOrder","warn","tFnKey","baseData","fValue","u","_objectSpread","require","slice","join","Math","min","vect","rgba","r","g","b","a","module","exports","walknSetExport","_target","i","fPath","Object","keys","default","__esModule","assign","_exports","any","bool","color","multi","number","ratio","opacity","count","rKey","isString","round","muxer","includes","push","max","props","RegExp","Number","arguments","undefined","toFixed","expandShorthandProperty","property","type","childProps","properties","values","multiple","forEach","k","isShorthandProperty","isValidDeclaration","alias","center","offset","v","nowhere","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filters","filter","VALUES_REG","PARTS_REG","LENGTH_REG","parseValue","stringifyValue","isLength","toNum","toPx","cssShadowParser","str","parts","inset","last","nums","n","map","_nums","_slicedToArray","offsetX","offsetY","blurRadius","spreadRadius","obj","_ref","_ref$offsetX","_ref$offsetY","_ref$blurRadius","s","trim","test","isNaN","parse","stringify","arr","defaultMuxers","shadowMap","shadows","tmpValue","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","d","definition","o","defineProperty","enumerable","get","prop","prototype","call","Symbol","toStringTag","React","re_cssValueWithUnit","cssAdd","val1","val2","units1","units2","remap","result","_len","argz","Array","_key","apply","concat","cssMult","val","items","start","item","from","duration","withOffset","iDuration","inverseValues","reduce","h","reverse","MultiCssProps","addCss","_len2","sources","_key2","source","shift","_target$key","_toConsumableArray","addAllType","v1","v2","values1","values2","parseInt","extractCss","inverse","css","shiftTransforms","t","unshift","cssDemux","cssDemuxers","marginTop","marginLeft","marginRight","marginBottom","paddingTop","paddingLeft","paddingRight","paddingBottom","borderRadius","borderTopColor","borderLeftColor","borderRightColor","borderBottomColor","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","transformOrigin","zIndex","clearTweenableValue","cssKey","_muxerMap$path$","muxToCss","demuxers","deMuxTween","tween","deMuxedTween","fTween","types","getMuxerTypeOfProperty","deMuxLine","tweenLine","allPropsById","twAxis","line","demuxedTween","id","query","prefixes","recyclableTweenAxis","CssTweenAxis","_tweenAxis","cfg","scope","_classCallCheck","recyled","localLength","mount","Axis","_possibleConstructorReturn","_this","_inherits","_createClass","this","__marks","__marksLength","__marksKeys","__processors","__config","__activeProcess","__outgoing","__incoming","__cPos","__cIndex","__cMaxKey","tweenAxis","isBrowser","window","_dom","DocumentTouch","document","matchMedia","matches","prefix","navigator","appVersion","userAgent","dashedPrefix","__","onPageHided","onPageShown","dragging","dragEnabled","dragEnabledDesc","fingers","nbFingers","dragstartAnywhere","e","finger","desc","me","Dom","addEvent","dragAnywhere","dropAnywhere","dropWithoutClick","changedTouches","ln","identifier","_startPos","pageX","pageY","_startTs","timeStamp","_lastPos","dragstart","stopped","drag","preventNextClick","preventDefault","stopPropagation","stopImmediatePropagation","removeEvent","prevent","_this2","mouseDrag","dropped","getDraggable","node","touchDrag","locks","dragEnd","freeDraggable","splice","fn","bubble","addEventListener","attachEvent","related","removeEventListener","detachEvent","rmDragFn","object","passive","elem","dims","offsetWidth","offsetHeight","offsetTop","offsetLeft","offsetParent","findReactParents","element","fiberNode","comps","startsWith","return","stateNode","parentNode","easingFn","signOf","NaN","abs","floor","Inertia","opt","_","conf","constructor","config","active","pos","refFPS","currentStop","lastInertiaPos","stops","disabled","wayPoints","inertiaFn","easePolyOut","targetWayPointIndex","_detectCurrentSnap","willStop","willSnap","onStop","onSnap","shouldLoop","baseTS","startTS","Date","now","lastVelocity","lastIVelocity","lastAccel","posDiff","loopsDiff","holding","inertia","nextPos","loop","delta","lastHoldPos","sinceLastPos","iVel","lastBaseTs","lastBasePos","targetDist","targetWayPoint","bounds","_$conf$willEnd","_$conf","velSign","loopsTarget","loopsVelSum","targetDuration","pow","applyInertia","snapToBounds","inertiaStartTm","inertiaLastTm","_doSnap","willEnd","nextValue","at","currentWayPoint","currentWayPointIndex","loopDist","tm","forceSnap","mid","maxDuration","lPos","loopDec","gravity","maxJump","infinite","_defineProperty","_live","lastTm","isBrowserSide","Function","isArray","_running","Runner","_tick","cpos","cb","setTimeout","Tweener","_React$Component","_props$tweenerOptions","_props$tweenerOptions2","_props$tweenerOptions3","current","activeInertia","_inertiaRaf","cancelAnimationFrame","scrollLeft","update","scrollTop","requestAnimationFrame","_updateNodeInertia","refs","muxByTarget","__isTweener","_rafLoop","bind","rootRef","forwardedRef","options","maxClickTm","maxClickOffset","tweenerOptions","tweenRefCSS","tweenRefs","tweenRefMaps","iMapOrigin","tweenRefInitialData","tweenEnabled","tweenRefOrigin","tweenRefOriginCss","muxDataByTarget","tweenRefDemuxed","tweenRefTargets","runningAnims","scrollHook","defaultAxesPosition","ref","onResize","_$rootRef","_$rootRef$windowDidRe","_updateBox","_updateTweenRefs","windowDidResize","iStyle","iMap","noref","mapReset","deepEqual","_updateTweenRef","style","targets","tweenRef","postPone","pureCss","_this3","m","updateRefStyle","_this$_$refs$id","anim","then","sl","fail","_this4","keepResults","anims","initial","displayName","Promise","resolve","run","rkey","destroy","live","reset","_this5","p","axe","_$defaultAxesPosition","_inertia$setBounds","_inertia$setBounds2","_this6","_inertia","_ref$scrollableArea","scrollableArea","_scrollableArea","_scrollableBounds","scrollableBounds","_scrollableWindow","scrollableWindow","defaultPosition","scrollFirst","dim","axes","scrollPos","targetPos","nextDescr","scrollTo","ease","noEvents","updateConf","setBounds","_this7","initialScrollPos","_this8","state","axis","newPos","_this9","ms","reject","_this9$axes","_this9$axes2","_this9$axes3","oldPos","setPos","_$rootRef2","_$rootRef2$componentD","axisDidScroll","componentDidScroll","_runScrollGoTo","goTo","_this9$axes4","_dim$inertia","_this10","_getAxis","found","_dim$inertia2","tl","to","_this11","easing","tick","_this11$axes","_this11$axes2","_this11$axes3","_$rootRef$current","componentShouldScroll","axisId","listener","byId","_scrollWatcherByAxis","index","watchers","_$rootRef3","_$rootRef3$componentD","_this12","inertiaFrame","_this13","findIndex","scrollWidth","scrollHeight","getRootNode","inited","force","swap","_swap","getTweenableRef","_this14","clearTimeout","_superPropGet","_this15","_static","rendered","scrollableAnim","addScrollableAnim","prevProps","prevState","_this16","_this$props","BaseComponent","oProps","TweenerContext","Consumer","parentTweener","_parentTweener","Provider","_extends","tweener","RootNodeComp","nodeRef","lastTweener","doUseParentTweener","pTweener","_pTweener","name","tw","isMountedFromHook","ViewBox","children","_objectWithoutProperties","_excluded","_lastTweener$current","componentDidMount","_lastTweener$current2","componentWillUnmount","_lastTweener$current3","_lastTweener$current4","_lastTweener$current5","_ref$axe","size","_ref$items","µ","_useVoodoo","useVoodoo","previousAxis","previousInertia","previousBounds","previousScrollableWindow","initAxis","previousTweener","previousTweens","lastTL","rmScrollableAnim","previousScrollable","isFunctionalComponent","Component","isReactComponent","component","isClassComponent","setTarget","Node","_ref$id","shortid","noRef","isRoot","_ref$refProp","refProp","_ref$tweenLines","tweenLines","_ref$tweenAxis","error","axisItemsChange","twRef","_tweenAxisObj","_currentTweener","rmTweenRef","__tweenableId","setRootRef","_previousScrollable","scrollY","RefChild","only","_lastRef","div","_ref3","className","_excluded2","Draggable","_ref$Comp","Comp","xAxis","yAxis","yBoxRef","xBoxRef","yHook","yRef","xHook","_ref$mouseDrag","_ref$touchDrag","_ref$button","button","root","api","getScrollableNodes","scrollable","parent","_registerScrollListeners","_µ$root","lastStartTm","cLock","dX","parents","dY","parentsState","refWidth","refHeight","rootNode","_µ$props","domUtils","dragList","touch","descr","_ref2","MouseEvent","_pTweener$axes","_pTweener$axes2","deltaX","xDispatched","xBox","deltaY","yDispatched","yBox","dragDirectionLock","_pTweener$axes3","_pTweener$axes4","_x4","_y4","_x","_y","_x2","_y2","_x3","_y3","startMove","isInbound","hold","_pTweener$axes5","_pTweener$axes6","cancelable","enableMouseDrag","doRegister","_µ$root2","scrollEnabled","SimpleObjectProto","asTweener","wheelRatio","withRef","String","fromCharCode","withTweener","opts","TweenerToProps","TweenAxis","D3Ease","_class","child","useTweener","hook","tools","Context","dom"],"sourceRoot":""}