gdcore-tools 1.0.6 → 1.0.7
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.
- package/GDevelop/ExtLibs/7za.exe +0 -0
- package/GDevelop/ExtLibs/curl.exe +0 -0
- package/GDevelop/scripts/libgettextlib-0-17.dll +0 -0
- package/GDevelop/scripts/libgettextsrc-0-17.dll +0 -0
- package/LICENSE +1 -1
- package/dist/Runtime/AsyncTasksManager.js +5 -0
- package/dist/Runtime/AsyncTasksManager.js.map +7 -0
- package/dist/Runtime/Cordova/config.xml +44 -0
- package/dist/Runtime/Cordova/package.json +22 -0
- package/dist/Runtime/Cordova/www/index.html +45 -0
- package/dist/Runtime/CustomRuntimeObject.js +2 -0
- package/dist/Runtime/CustomRuntimeObject.js.map +7 -0
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js +2 -0
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js.map +7 -0
- package/dist/Runtime/Electron/main.js +65 -0
- package/dist/Runtime/Electron/package.json +26 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js +2 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3D.js.map +7 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/A_RuntimeObject3DRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/AmbientLight.js +2 -0
- package/dist/Runtime/Extensions/3D/AmbientLight.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js +2 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObject.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/Cube3DRuntimeObjectPixiRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/DirectionalLight.js +2 -0
- package/dist/Runtime/Extensions/3D/DirectionalLight.js.map +7 -0
- package/dist/Runtime/Extensions/3D/ExponentialFog.js +2 -0
- package/dist/Runtime/Extensions/3D/ExponentialFog.js.map +7 -0
- package/dist/Runtime/Extensions/3D/HemisphereLight.js +2 -0
- package/dist/Runtime/Extensions/3D/HemisphereLight.js.map +7 -0
- package/dist/Runtime/Extensions/3D/JsExtension.js +2809 -0
- package/dist/Runtime/Extensions/3D/LinearFog.js +2 -0
- package/dist/Runtime/Extensions/3D/LinearFog.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js +2 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js +2 -0
- package/dist/Runtime/Extensions/3D/Model3DRuntimeObject3DRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/3D/Scene3DTools.js +2 -0
- package/dist/Runtime/Extensions/3D/Scene3DTools.js.map +7 -0
- package/dist/Runtime/Extensions/AdMob/JsExtension.js +798 -0
- package/dist/Runtime/Extensions/AdMob/admobtools.js +2 -0
- package/dist/Runtime/Extensions/AdMob/admobtools.js.map +7 -0
- package/dist/Runtime/Extensions/AdvancedWindow/JsExtension.js +719 -0
- package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js +2 -0
- package/dist/Runtime/Extensions/AdvancedWindow/electron-advancedwindowtools.js.map +7 -0
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/BBText/JsExtension.js +639 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/BBText/pixi-multistyle-text/dist/pixi-multistyle-text.umd.js +1 -0
- package/dist/Runtime/Extensions/BitmapText/JsExtension.js +756 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/DebuggerTools/JsExtension.js +123 -0
- package/dist/Runtime/Extensions/DebuggerTools/debuggertools.js +2 -0
- package/dist/Runtime/Extensions/DebuggerTools/debuggertools.js.map +7 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/DestroyOutsideBehavior/destroyoutsideruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/DeviceSensors/JsExtension.js +461 -0
- package/dist/Runtime/Extensions/DeviceSensors/devicesensortools.js +2 -0
- package/dist/Runtime/Extensions/DeviceSensors/devicesensortools.js.map +7 -0
- package/dist/Runtime/Extensions/DeviceVibration/JsExtension.js +108 -0
- package/dist/Runtime/Extensions/DeviceVibration/devicevibrationtools.js +2 -0
- package/dist/Runtime/Extensions/DeviceVibration/devicevibrationtools.js.map +7 -0
- package/dist/Runtime/Extensions/DialogueTree/JsExtension.js +730 -0
- package/dist/Runtime/Extensions/DialogueTree/bondage.js/dist/bondage.min.js +11 -0
- package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js +3 -0
- package/dist/Runtime/Extensions/DialogueTree/dialoguetools.js.map +7 -0
- package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/DraggableBehavior/draggableruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/JsExtension.js +1197 -0
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/adjustment-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/advanced-bloom-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/ascii-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/bevel-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/black-and-white-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/blending-mode-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/brightness-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/bulge-pinch-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/color-map-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/color-replace-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/crt-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/displacement-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/dot-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/drop-shadow-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/glitch-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/glow-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/godray-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/kawase-blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js +3 -0
- package/dist/Runtime/Extensions/Effects/light-night-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js +3 -0
- package/dist/Runtime/Extensions/Effects/night-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/noise-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/old-film-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/outline-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/pixelate-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-adjustment.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-advanced-bloom.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-ascii.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-bevel.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-bulge-pinch.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-color-map.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-color-replace.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-crt.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-dot.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-drop-shadow.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-glitch.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-glow.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-godray.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-kawase-blur.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-old-film.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-outline.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-pixelate.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-radial-blur.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-reflection.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-rgb-split.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-tilt-shift.js +171 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-twist.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/filter-zoom-blur.js +8 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/adjustment/types.d.ts +29 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/advanced-bloom/types.d.ts +30 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/ascii/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/bevel/types.d.ts +25 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/bloom/types.d.ts +18 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/bulge-pinch/types.d.ts +24 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-map/types.d.ts +22 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-overlay/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/color-replace/types.d.ts +17 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/convolution/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/cross-hatch/types.d.ts +10 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/crt/types.d.ts +35 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/dot/types.d.ts +12 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/drop-shadow/types.d.ts +33 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/emboss/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/glitch/types.d.ts +38 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/glow/types.d.ts +23 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/godray/types.d.ts +27 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/kawase-blur/types.d.ts +15 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/motion-blur/types.d.ts +17 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/multi-color-replace/types.d.ts +18 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/old-film/types.d.ts +33 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/outline/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/pixelate/types.d.ts +11 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/radial-blur/types.d.ts +19 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/reflection/types.d.ts +25 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/rgb-split/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/shockwave/types.d.ts +25 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/simple-lightmap/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/tilt-shift/types.d.ts +19 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/twist/types.d.ts +13 -0
- package/dist/Runtime/Extensions/Effects/pixi-filters/types/zoom-blur/types.d.ts +28 -0
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/radial-blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/reflection-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/rgb-split-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/sepia-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/tilt-shift-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/twist-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js +2 -0
- package/dist/Runtime/Extensions/Effects/zoom-blur-pixi-filter.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/JsExtension.js +589 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js +3 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyeffect.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummyruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummywithshareddataruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/dummywithshareddataruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/examplejsextensiontools.js +2 -0
- package/dist/Runtime/Extensions/ExampleJsExtension/examplejsextensiontools.js.map +7 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/FBInstant.d.ts +2 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/JsExtension.js +379 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js +2 -0
- package/dist/Runtime/Extensions/FacebookInstantGames/facebookinstantgamestools.js.map +7 -0
- package/dist/Runtime/Extensions/FileSystem/JsExtension.js +559 -0
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js +2 -0
- package/dist/Runtime/Extensions/FileSystem/filesystemtools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/A_firebase-base.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/A_firebase-base.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-analytics.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-analytics.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-auth.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-auth.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-database.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-database.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-firestore.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-firestore.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-functions.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-functions.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-messaging.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-messaging.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-performance.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-performance.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-remote-config.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-remote-config.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-storage.js +2 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/B_firebase-storage.js.map +1 -0
- package/dist/Runtime/Extensions/Firebase/A_firebasejs/firebase.d.ts +10191 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/C_firebasetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/C_firebasetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_analyticstools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_analyticstools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_authtools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_authtools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_cloudfirestoretools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_databasetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_databasetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_functionstools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_functionstools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_performancetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_performancetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_remoteconfigtools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_storagetools.js +2 -0
- package/dist/Runtime/Extensions/Firebase/B_firebasetools/D_storagetools.js.map +7 -0
- package/dist/Runtime/Extensions/Firebase/JsExtension.js +2323 -0
- package/dist/Runtime/Extensions/Inventory/inventory.js +2 -0
- package/dist/Runtime/Extensions/Inventory/inventory.js.map +7 -0
- package/dist/Runtime/Extensions/Inventory/inventorytools.js +2 -0
- package/dist/Runtime/Extensions/Inventory/inventorytools.js.map +7 -0
- package/dist/Runtime/Extensions/JsExtensionTypes.flow.js +34 -0
- package/dist/Runtime/Extensions/Leaderboards/JsExtension.js +299 -0
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js +2 -0
- package/dist/Runtime/Extensions/Leaderboards/leaderboardstools.js.map +7 -0
- package/dist/Runtime/Extensions/Leaderboards/sha256.d.ts +234 -0
- package/dist/Runtime/Extensions/Leaderboards/sha256.js +21 -0
- package/dist/Runtime/Extensions/Lighting/JsExtension.js +371 -0
- package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/Lighting/lightobstacleruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js +40 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/Lighting/lightruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js +2 -0
- package/dist/Runtime/Extensions/LinkedObjects/linkedobjects.js.map +7 -0
- package/dist/Runtime/Extensions/P2P/A_peer.js +4 -0
- package/dist/Runtime/Extensions/P2P/A_peer.js.map +1 -0
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js +2 -0
- package/dist/Runtime/Extensions/P2P/B_p2ptools.js.map +7 -0
- package/dist/Runtime/Extensions/P2P/JsExtension.js +483 -0
- package/dist/Runtime/Extensions/P2P/peerjs.d.ts +509 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/PanelSpriteObject/panelspriteruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js +2 -0
- package/dist/Runtime/Extensions/ParticleSystem/particleemitterobject.js.map +7 -0
- package/dist/Runtime/Extensions/ParticleSystem/pixi-particles-pixi-renderer.min.js +3 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/PathTools.js +2 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/PathTools.js.map +7 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingobstacleruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PathfindingBehavior/pathfindingruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.js +2 -0
- package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.js.map +7 -0
- package/dist/Runtime/Extensions/Physics2Behavior/Box2D_v2.3.1_min.wasm.wasm +0 -0
- package/dist/Runtime/Extensions/Physics2Behavior/JsExtension.js +4072 -0
- package/dist/Runtime/Extensions/Physics2Behavior/box2d.d.ts +1804 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js +2 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2runtimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2tools.js +2 -0
- package/dist/Runtime/Extensions/Physics2Behavior/physics2tools.js.map +7 -0
- package/dist/Runtime/Extensions/PhysicsBehavior/box2djs/box2d.js +804 -0
- package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PhysicsBehavior/physicsruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/benchmarks/platformerobjectruntimebehavior.benchmark.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/benchmarks/platformerobjectruntimebehavior.benchmark.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformerobjectruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformtools.js +2 -0
- package/dist/Runtime/Extensions/PlatformBehavior/platformtools.js.map +7 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/JsExtension.js +218 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js +5 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationcomponents.js.map +7 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js +2 -0
- package/dist/Runtime/Extensions/PlayerAuthentication/playerauthenticationtools.js.map +7 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js +10 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/pixi-graphics-extras/graphics-extras.min.js.map +1 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/PrimitiveDrawing/shapepainterruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/Screenshot/JsExtension.js +68 -0
- package/dist/Runtime/Extensions/Screenshot/screenshottools.js +2 -0
- package/dist/Runtime/Extensions/Screenshot/screenshottools.js.map +7 -0
- package/dist/Runtime/Extensions/Shopify/shopify-buy.umd.polyfilled.min.js +2 -0
- package/dist/Runtime/Extensions/Shopify/shopifytools.js +2 -0
- package/dist/Runtime/Extensions/Shopify/shopifytools.js.map +7 -0
- package/dist/Runtime/Extensions/SpatialSound/JsExtension.js +92 -0
- package/dist/Runtime/Extensions/SpatialSound/howler.spatial.min.js +2 -0
- package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js +2 -0
- package/dist/Runtime/Extensions/SpatialSound/spatialsoundtools.js.map +7 -0
- package/dist/Runtime/Extensions/SystemInfo/systeminfotools.js +2 -0
- package/dist/Runtime/Extensions/SystemInfo/systeminfotools.js.map +7 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TextEntryObject/textentryruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TextInput/JsExtension.js +790 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TextInput/textinputruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TextObject/textruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/JsExtension.js +1653 -0
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js +2 -0
- package/dist/Runtime/Extensions/TileMap/TileMapRuntimeManager.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/collision/TileMapCollisionMaskRenderer.js +2 -0
- package/dist/Runtime/Extensions/TileMap/collision/TileMapCollisionMaskRenderer.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js +2 -0
- package/dist/Runtime/Extensions/TileMap/collision/TransformedTileMap.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/example/anotherIsland.json +5769 -0
- package/dist/Runtime/Extensions/TileMap/example/island.json +5823 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.d.ts +25 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js +2 -0
- package/dist/Runtime/Extensions/TileMap/helper/TileMapHelper.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/index.d.ts +16 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/index.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapFileContent.d.ts +12 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapFileContent.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapLoader.d.ts +18 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/TileMapLoader.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkFormat.d.ts +589 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkFormat.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoader.d.ts +16 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoader.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoaderHelper.d.ts +5 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/ldtk/LDtkTileMapLoaderHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledFormat.d.ts +343 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledFormat.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.d.ts +16 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.spec.d.ts +2 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoader.spec.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoaderHelper.d.ts +37 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/load/tiled/TiledTileMapLoaderHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts +5 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/CommonTypes.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/GID.d.ts +45 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/GID.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts +361 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/model/TileMapModel.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ResourceCache.d.ts +27 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ResourceCache.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts +70 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapManager.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts +56 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileMapPixiHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileTextureCache.d.ts +24 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/TileTextureCache.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ldtk/LDtkPixiHelper.d.ts +26 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/ldtk/LDtkPixiHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/tiled/TiledPixiHelper.d.ts +21 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/render/tiled/TiledPixiHelper.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/types/index.d.ts +12 -0
- package/dist/Runtime/Extensions/TileMap/helper/dts/types/index.d.ts.map +1 -0
- package/dist/Runtime/Extensions/TileMap/pako/dist/pako.d.ts +166 -0
- package/dist/Runtime/Extensions/TileMap/pako/dist/pako.min.js +2 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/global-pixi-tilemap.d.ts +23 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.d.ts +270 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.umd.js +74 -0
- package/dist/Runtime/Extensions/TileMap/pixi-tilemap/dist/pixi-tilemap.umd.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TileMap/tilemapcollisionmaskruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TileMap/tilemapruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/TiledSpriteObject/tiledspriteruntimeobject.js.map +7 -0
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/TopDownMovementBehavior/topdownmovementruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/TweenBehavior/JsExtension.js +1087 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty.d.ts +839 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty.js +5 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty.js.map +1 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty_setup.js +2 -0
- package/dist/Runtime/Extensions/TweenBehavior/shifty_setup.js.map +7 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js +2 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweenruntimebehavior.js.map +7 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweentools.js +2 -0
- package/dist/Runtime/Extensions/TweenBehavior/tweentools.js.map +7 -0
- package/dist/Runtime/Extensions/Video/JsExtension.js +694 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js +2 -0
- package/dist/Runtime/Extensions/Video/videoruntimeobject.js.map +7 -0
- package/dist/Runtime/FacebookInstantGames/fbapp-config.json +17 -0
- package/dist/Runtime/FacebookInstantGames/index.html +68 -0
- package/dist/Runtime/Model3DManager.js +2 -0
- package/dist/Runtime/Model3DManager.js.map +7 -0
- package/dist/Runtime/RuntimeCustomObjectLayer.js +2 -0
- package/dist/Runtime/RuntimeCustomObjectLayer.js.map +7 -0
- package/dist/Runtime/RuntimeInstanceContainer.js +2 -0
- package/dist/Runtime/RuntimeInstanceContainer.js.map +7 -0
- package/dist/Runtime/RuntimeLayer.js +2 -0
- package/dist/Runtime/RuntimeLayer.js.map +7 -0
- package/dist/Runtime/affinetransformation.js +2 -0
- package/dist/Runtime/affinetransformation.js.map +7 -0
- package/dist/Runtime/debugger-client/abstract-debugger-client.js +2 -0
- package/dist/Runtime/debugger-client/abstract-debugger-client.js.map +7 -0
- package/dist/Runtime/debugger-client/hot-reloader.js +2 -0
- package/dist/Runtime/debugger-client/hot-reloader.js.map +7 -0
- package/dist/Runtime/debugger-client/websocket-debugger-client.js +2 -0
- package/dist/Runtime/debugger-client/websocket-debugger-client.js.map +7 -0
- package/dist/Runtime/debugger-client/window-message-debugger-client.js +2 -0
- package/dist/Runtime/debugger-client/window-message-debugger-client.js.map +7 -0
- package/dist/Runtime/events-tools/cameratools.js +2 -0
- package/dist/Runtime/events-tools/cameratools.js.map +7 -0
- package/dist/Runtime/events-tools/commontools.js +2 -0
- package/dist/Runtime/events-tools/commontools.js.map +7 -0
- package/dist/Runtime/events-tools/inputtools.js +2 -0
- package/dist/Runtime/events-tools/inputtools.js.map +7 -0
- package/dist/Runtime/events-tools/networktools.js +2 -0
- package/dist/Runtime/events-tools/networktools.js.map +7 -0
- package/dist/Runtime/events-tools/objecttools.js +2 -0
- package/dist/Runtime/events-tools/objecttools.js.map +7 -0
- package/dist/Runtime/events-tools/runtimescenetools.js +2 -0
- package/dist/Runtime/events-tools/runtimescenetools.js.map +7 -0
- package/dist/Runtime/events-tools/soundtools.js +2 -0
- package/dist/Runtime/events-tools/soundtools.js.map +7 -0
- package/dist/Runtime/events-tools/storagetools.js +2 -0
- package/dist/Runtime/events-tools/storagetools.js.map +7 -0
- package/dist/Runtime/events-tools/stringtools.js +3 -0
- package/dist/Runtime/events-tools/stringtools.js.map +7 -0
- package/dist/Runtime/events-tools/variabletools.js +2 -0
- package/dist/Runtime/events-tools/variabletools.js.map +7 -0
- package/dist/Runtime/events-tools/windowtools.js +2 -0
- package/dist/Runtime/events-tools/windowtools.js.map +7 -0
- package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js +2 -0
- package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver-font-manager.js.map +7 -0
- package/dist/Runtime/fontfaceobserver-font-manager/fontfaceobserver.js +16 -0
- package/dist/Runtime/force.js +2 -0
- package/dist/Runtime/force.js.map +7 -0
- package/dist/Runtime/gd.js +2 -0
- package/dist/Runtime/gd.js.map +7 -0
- package/dist/Runtime/howler-sound-manager/howler-sound-manager.js +2 -0
- package/dist/Runtime/howler-sound-manager/howler-sound-manager.js.map +7 -0
- package/dist/Runtime/howler-sound-manager/howler.min.js +3 -0
- package/dist/Runtime/index.html +55 -0
- package/dist/Runtime/inputmanager.js +2 -0
- package/dist/Runtime/inputmanager.js.map +7 -0
- package/dist/Runtime/jsonmanager.js +2 -0
- package/dist/Runtime/jsonmanager.js.map +7 -0
- package/dist/Runtime/layer.js +2 -0
- package/dist/Runtime/layer.js.map +7 -0
- package/dist/Runtime/libs/CocoonJS/cocoon.min.js +4 -0
- package/dist/Runtime/libs/jshashtable.js +2 -0
- package/dist/Runtime/libs/jshashtable.js.map +7 -0
- package/dist/Runtime/libs/rbush.js +624 -0
- package/dist/Runtime/logger.js +2 -0
- package/dist/Runtime/logger.js.map +7 -0
- package/dist/Runtime/oncetriggers.js +2 -0
- package/dist/Runtime/oncetriggers.js.map +7 -0
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js +2 -0
- package/dist/Runtime/pixi-renderers/CustomObjectPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js +2 -0
- package/dist/Runtime/pixi-renderers/DebuggerPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/RuntimeInstanceContainerPixiRenderer.js +1 -0
- package/dist/Runtime/pixi-renderers/RuntimeInstanceContainerPixiRenderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/ThreeAddons.js +2 -0
- package/dist/Runtime/pixi-renderers/draco/gltf/draco_decoder.wasm +0 -0
- package/dist/Runtime/pixi-renderers/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js +15 -0
- package/dist/Runtime/pixi-renderers/layer-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js +2 -0
- package/dist/Runtime/pixi-renderers/loadingscreen-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-bitmapfont-manager.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-effects-manager.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-effects-manager.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-filters-tools.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js +2 -0
- package/dist/Runtime/pixi-renderers/pixi-image-manager.js.map +7 -0
- package/dist/Runtime/pixi-renderers/pixi.js +11 -0
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js +2 -0
- package/dist/Runtime/pixi-renderers/runtimegame-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/runtimescene-pixi-renderer.js +3 -0
- package/dist/Runtime/pixi-renderers/runtimescene-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js +2 -0
- package/dist/Runtime/pixi-renderers/spriteruntimeobject-pixi-renderer.js.map +7 -0
- package/dist/Runtime/pixi-renderers/three.js +7 -0
- package/dist/Runtime/polygon.js +2 -0
- package/dist/Runtime/polygon.js.map +7 -0
- package/dist/Runtime/profiler.js +2 -0
- package/dist/Runtime/profiler.js.map +7 -0
- package/dist/Runtime/runtimebehavior.js +2 -0
- package/dist/Runtime/runtimebehavior.js.map +7 -0
- package/dist/Runtime/runtimegame.js +2 -0
- package/dist/Runtime/runtimegame.js.map +7 -0
- package/dist/Runtime/runtimeobject.js +2 -0
- package/dist/Runtime/runtimeobject.js.map +7 -0
- package/dist/Runtime/runtimescene.js +2 -0
- package/dist/Runtime/runtimescene.js.map +7 -0
- package/dist/Runtime/runtimewatermark.js +100 -0
- package/dist/Runtime/runtimewatermark.js.map +7 -0
- package/dist/Runtime/scenestack.js +2 -0
- package/dist/Runtime/scenestack.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-dark-colored.js +2 -0
- package/dist/Runtime/splash/gd-logo-dark-colored.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-dark.js +2 -0
- package/dist/Runtime/splash/gd-logo-dark.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-light-colored.js +2 -0
- package/dist/Runtime/splash/gd-logo-light-colored.js.map +7 -0
- package/dist/Runtime/splash/gd-logo-light.js +2 -0
- package/dist/Runtime/splash/gd-logo-light.js.map +7 -0
- package/dist/Runtime/spriteruntimeobject.js +2 -0
- package/dist/Runtime/spriteruntimeobject.js.map +7 -0
- package/dist/Runtime/timemanager.js +2 -0
- package/dist/Runtime/timemanager.js.map +7 -0
- package/dist/Runtime/timer.js +2 -0
- package/dist/Runtime/timer.js.map +7 -0
- package/dist/Runtime/types/global-pixi.d.ts +22 -0
- package/dist/Runtime/types/global-three-addons.d.ts +9 -0
- package/dist/Runtime/types/global-three.d.ts +3 -0
- package/dist/Runtime/types/global-types.d.ts +61 -0
- package/dist/Runtime/types/howler.d.ts +313 -0
- package/dist/Runtime/types/project-data.d.ts +276 -0
- package/dist/Runtime/variable.js +2 -0
- package/dist/Runtime/variable.js.map +7 -0
- package/dist/Runtime/variablescontainer.js +2 -0
- package/dist/Runtime/variablescontainer.js.map +7 -0
- package/dist/lib/libGD.cjs +22 -0
- package/dist/lib/libGD.wasm +0 -0
- package/dist/loaders.js +1 -0
- package/package.json +24 -10
- package/src/downloadGD.js +0 -70
- package/src/index.js +21 -14
- package/examples/create-objects-from-json/assets/Blank button.png +0 -0
- package/examples/create-objects-from-json/game.json +0 -258
- package/examples/create-objects-from-json/index.js +0 -50
- package/examples/create-objects-from-json/mylist.json +0 -7
- package/examples/export-game/game.json +0 -205
- package/examples/export-game/index.js +0 -13
- package/src/CaseSensitiveSlug.js +0 -34
- package/src/EventsFunctionsExtensionsLoader/LocalEventsFunctionCodeWriter.js +0 -56
- package/src/EventsFunctionsExtensionsLoader/MetadataDeclarationHelpers.js +0 -489
- package/src/EventsFunctionsExtensionsLoader/index.js +0 -451
- package/src/JsExtensionsLoader/LocalJsExtensionsFinder.js +0 -42
- package/src/JsExtensionsLoader/LocalJsExtensionsLoader.js +0 -57
- package/src/JsExtensionsLoader/index.js +0 -101
- package/src/LocalFileSystem.js +0 -158
- package/src/LocalProjectOpener.js +0 -46
- package/src/LocalProjectWriter.js +0 -96
- package/src/MapFor.js +0 -46
- package/src/ObjectSplitter.js +0 -187
- package/src/Serializer.js +0 -35
- package/src/build.js +0 -51
- package/src/runtime-files-list.js +0 -143
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*! For license information please see shifty.js.LICENSE.txt */
|
|
2
|
+
/* v2.20.4 */
|
|
3
|
+
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("shifty",[],n):"object"==typeof exports?exports.shifty=n():t.shifty=n()}(self,(function(){return function(){"use strict";var t={720:function(t,n,e){e.r(n),e.d(n,{Scene:function(){return sn},Tweenable:function(){return kt},interpolate:function(){return nn},processTweens:function(){return dt},setBezierFunction:function(){return $},shouldScheduleUpdate:function(){return bt},tween:function(){return Pt},unsetBezierFunction:function(){return L}});var r={};e.r(r),e.d(r,{bounce:function(){return D},bouncePast:function(){return q},easeFrom:function(){return B},easeFromTo:function(){return Q},easeInBack:function(){return E},easeInCirc:function(){return j},easeInCubic:function(){return c},easeInExpo:function(){return w},easeInOutBack:function(){return T},easeInOutCirc:function(){return P},easeInOutCubic:function(){return l},easeInOutExpo:function(){return S},easeInOutQuad:function(){return s},easeInOutQuart:function(){return v},easeInOutQuint:function(){return d},easeInOutSine:function(){return b},easeInQuad:function(){return u},easeInQuart:function(){return h},easeInQuint:function(){return y},easeInSine:function(){return g},easeOutBack:function(){return A},easeOutBounce:function(){return M},easeOutCirc:function(){return k},easeOutCubic:function(){return f},easeOutExpo:function(){return O},easeOutQuad:function(){return a},easeOutQuart:function(){return p},easeOutQuint:function(){return _},easeOutSine:function(){return m},easeTo:function(){return N},elastic:function(){return I},linear:function(){return o},swingFrom:function(){return x},swingFromTo:function(){return F},swingTo:function(){return C}});var i={};e.r(i),e.d(i,{afterTween:function(){return Jt},beforeTween:function(){return Ht},doesApply:function(){return Wt},tweenCreated:function(){return Gt}});var o=function(t){return t},u=function(t){return Math.pow(t,2)},a=function(t){return-(Math.pow(t-1,2)-1)},s=function(t){return(t/=.5)<1?.5*Math.pow(t,2):-.5*((t-=2)*t-2)},c=function(t){return Math.pow(t,3)},f=function(t){return Math.pow(t-1,3)+1},l=function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)},h=function(t){return Math.pow(t,4)},p=function(t){return-(Math.pow(t-1,4)-1)},v=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},y=function(t){return Math.pow(t,5)},_=function(t){return Math.pow(t-1,5)+1},d=function(t){return(t/=.5)<1?.5*Math.pow(t,5):.5*(Math.pow(t-2,5)+2)},g=function(t){return 1-Math.cos(t*(Math.PI/2))},m=function(t){return Math.sin(t*(Math.PI/2))},b=function(t){return-.5*(Math.cos(Math.PI*t)-1)},w=function(t){return 0===t?0:Math.pow(2,10*(t-1))},O=function(t){return 1===t?1:1-Math.pow(2,-10*t)},S=function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},j=function(t){return-(Math.sqrt(1-t*t)-1)},k=function(t){return Math.sqrt(1-Math.pow(t-1,2))},P=function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},M=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},E=function(t){var n=1.70158;return t*t*((n+1)*t-n)},A=function(t){var n=1.70158;return(t-=1)*t*((n+1)*t+n)+1},T=function(t){var n=1.70158;return(t/=.5)<1?t*t*((1+(n*=1.525))*t-n)*.5:.5*((t-=2)*t*((1+(n*=1.525))*t+n)+2)},I=function(t){return-1*Math.pow(4,-8*t)*Math.sin((6*t-1)*(2*Math.PI)/2)+1},F=function(t){var n=1.70158;return(t/=.5)<1?t*t*((1+(n*=1.525))*t-n)*.5:.5*((t-=2)*t*((1+(n*=1.525))*t+n)+2)},x=function(t){var n=1.70158;return t*t*((n+1)*t-n)},C=function(t){var n=1.70158;return(t-=1)*t*((n+1)*t+n)+1},D=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},q=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?2-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?2-(7.5625*(t-=2.25/2.75)*t+.9375):2-(7.5625*(t-=2.625/2.75)*t+.984375)},Q=function(t){return(t/=.5)<1?.5*Math.pow(t,4):-.5*((t-=2)*Math.pow(t,3)-2)},B=function(t){return Math.pow(t,4)},N=function(t){return Math.pow(t,.25)};function R(t,n,e,r,i,o){var u,a,s,c,f,l=0,h=0,p=0,v=function(t){return((l*t+h)*t+p)*t},y=function(t){return(3*l*t+2*h)*t+p},_=function(t){return t>=0?t:0-t};return l=1-(p=3*n)-(h=3*(r-n)-p),s=1-(f=3*e)-(c=3*(i-e)-f),u=t,a=function(t){return 1/(200*t)}(o),function(t){return((s*t+c)*t+f)*t}(function(t,n){var e,r,i,o,u,a;for(i=t,a=0;a<8;a++){if(o=v(i)-t,_(o)<n)return i;if(u=y(i),_(u)<1e-6)break;i-=o/u}if((i=t)<(e=0))return e;if(i>(r=1))return r;for(;e<r;){if(o=v(i),_(o-t)<n)return i;t>o?e=i:r=i,i=.5*(r-e)+e}return i}(u,a))}var z,U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.25,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.25,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:.75,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.75;return function(i){return R(i,t,n,e,r,1)}},$=function(t,n,e,r,i){var o=U(n,e,r,i);return o.displayName=t,o.x1=n,o.y1=e,o.x2=r,o.y2=i,kt.formulas[t]=o},L=function(t){return delete kt.formulas[t]};function V(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function W(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function G(t){return G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},G(t)}function H(t){return function(t){if(Array.isArray(t))return J(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,n){if(t){if("string"==typeof t)return J(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?J(t,n):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function K(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,r)}return e}function X(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?K(Object(e),!0).forEach((function(n){Y(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):K(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}function Y(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var Z,tt,nt,et="linear",rt="undefined"!=typeof window?window:e.g,it="afterTween",ot="afterTweenEnd",ut="beforeTween",at="tweenCreated",st="function",ct="string",ft=rt.requestAnimationFrame||rt.webkitRequestAnimationFrame||rt.oRequestAnimationFrame||rt.msRequestAnimationFrame||rt.mozCancelRequestAnimationFrame&&rt.mozRequestAnimationFrame||setTimeout,lt=function(){},ht=null,pt=null,vt=X({},r),yt=function(t,n,e,r,i,o,u){var a,s,c,f=t<o?0:(t-o)/i,l=!1;for(var h in u&&u.call&&(l=!0,a=u(f)),n)l||(a=((s=u[h]).call?s:vt[s])(f)),c=e[h],n[h]=c+(r[h]-c)*a;return n},_t=function(t,n){var e=t._timestamp,r=t._currentState,i=t._delay;if(!(n<e+i)){var o=t._duration,u=t._targetState,a=e+i+o,s=n>a?a:n;t._hasEnded=s>=a;var c=o-(a-s),f=t._filters.length>0;if(t._hasEnded)return t._render(u,t._data,c),t.stop(!0);f&&t._applyFilter(ut),s<e+i?e=o=s=1:e+=i,yt(s,r,t._originalState,u,o,e,t._easing),f&&t._applyFilter(it),t._render(r,t._data,c)}},dt=function(){for(var t,n=kt.now(),e=ht;e;)t=e._next,_t(e,n),e=t},gt=Date.now||function(){return+new Date},mt=!1,bt=function(t){t&&mt||(mt=t,t&&wt())},wt=function t(){Z=gt(),mt&&ft.call(rt,t,16.666666666666668),dt()},Ot=function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:et,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(Array.isArray(n)){var r=U.apply(void 0,H(n));return r}var i=G(n);if(vt[n])return vt[n];if(i===ct||i===st)for(var o in t)e[o]=n;else for(var u in t)e[u]=n[u]||et;return e},St=function(t){t===ht?(ht=t._next)?ht._previous=null:pt=null:t===pt?(pt=t._previous)?pt._next=null:ht=null:(tt=t._previous,nt=t._next,tt._next=nt,nt._previous=tt),t._previous=t._next=null},jt="function"==typeof Promise?Promise:null;z=Symbol.toStringTag;var kt=function(){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;V(this,t),Y(this,z,"Promise"),this._config={},this._data={},this._delay=0,this._filters=[],this._next=null,this._previous=null,this._timestamp=null,this._hasEnded=!1,this._resolve=null,this._reject=null,this._currentState=n||{},this._originalState={},this._targetState={},this._start=lt,this._render=lt,this._promiseCtor=jt,e&&this.setConfig(e)}var n,e;return n=t,e=[{key:"_applyFilter",value:function(t){for(var n=this._filters.length;n>0;n--){var e=this._filters[n-n][t];e&&e(this)}}},{key:"tween",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return this._isPlaying&&this.stop(),!n&&this._config||this.setConfig(n),this._pausedAtTime=null,this._timestamp=t.now(),this._start(this.get(),this._data),this._delay&&this._render(this._currentState,this._data,0),this._resume(this._timestamp)}},{key:"setConfig",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this._config;for(var r in n)e[r]=n[r];var i=e.promise,o=void 0===i?this._promiseCtor:i,u=e.start,a=void 0===u?lt:u,s=e.finish,c=e.render,f=void 0===c?this._config.step||lt:c,l=e.step,h=void 0===l?lt:l;this._data=e.data||e.attachment||this._data,this._isPlaying=!1,this._pausedAtTime=null,this._scheduleId=null,this._delay=n.delay||0,this._start=a,this._render=f||h,this._duration=e.duration||500,this._promiseCtor=o,s&&(this._resolve=s);var p=n.from,v=n.to,y=void 0===v?{}:v,_=this._currentState,d=this._originalState,g=this._targetState;for(var m in p)_[m]=p[m];var b=!1;for(var w in _){var O=_[w];b||G(O)!==ct||(b=!0),d[w]=O,g[w]=y.hasOwnProperty(w)?y[w]:O}if(this._easing=Ot(this._currentState,e.easing,this._easing),this._filters.length=0,b){for(var S in t.filters)t.filters[S].doesApply(this)&&this._filters.push(t.filters[S]);this._applyFilter(at)}return this}},{key:"then",value:function(t,n){var e=this;return this._promise=new this._promiseCtor((function(t,n){e._resolve=t,e._reject=n})),this._promise.then(t,n)}},{key:"catch",value:function(t){return this.then().catch(t)}},{key:"finally",value:function(t){return this.then().finally(t)}},{key:"get",value:function(){return X({},this._currentState)}},{key:"set",value:function(t){this._currentState=t}},{key:"pause",value:function(){if(this._isPlaying)return this._pausedAtTime=t.now(),this._isPlaying=!1,St(this),this}},{key:"resume",value:function(){return this._resume()}},{key:"_resume",value:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.now();return null===this._timestamp?this.tween():this._isPlaying?this._promise:(this._pausedAtTime&&(this._timestamp+=n-this._pausedAtTime,this._pausedAtTime=null),this._isPlaying=!0,null===ht?(ht=this,pt=this):(this._previous=pt,pt._next=this,pt=this),this)}},{key:"seek",value:function(n){n=Math.max(n,0);var e=t.now();return this._timestamp+n===0||(this._timestamp=e-n,_t(this,e)),this}},{key:"stop",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this._isPlaying)return this;this._isPlaying=!1,St(this);var n=this._filters.length>0;return t&&(n&&this._applyFilter(ut),yt(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),n&&(this._applyFilter(it),this._applyFilter(ot))),this._resolve&&this._resolve({data:this._data,state:this._currentState,tweenable:this}),this._resolve=null,this._reject=null,this}},{key:"cancel",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=this._currentState,e=this._data,r=this._isPlaying;return r?(this._reject&&this._reject({data:e,state:n,tweenable:this}),this._resolve=null,this._reject=null,this.stop(t)):this}},{key:"isPlaying",value:function(){return this._isPlaying}},{key:"hasEnded",value:function(){return this._hasEnded}},{key:"setScheduleFunction",value:function(n){t.setScheduleFunction(n)}},{key:"data",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t&&(this._data=X({},t)),this._data}},{key:"dispose",value:function(){for(var t in this)delete this[t]}}],e&&W(n.prototype,e),t}();function Pt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=new kt;return n.tween(t),n.tweenable=n,n}Y(kt,"now",(function(){return Z})),Y(kt,"setScheduleFunction",(function(t){return ft=t})),Y(kt,"filters",{}),Y(kt,"formulas",vt),bt(!0);var Mt,Et,At=/(\d|-|\.)/,Tt=/([^\-0-9.]+)/g,It=/[0-9.-]+/g,Ft=(Mt=It.source,Et=/,\s*/.source,new RegExp("rgba?\\(".concat(Mt).concat(Et).concat(Mt).concat(Et).concat(Mt,"(").concat(Et).concat(Mt,")?\\)"),"g")),xt=/^.*\(/,Ct=/#([0-9]|[a-f]){3,6}/gi,Dt="VAL",qt=function(t,n){return t.map((function(t,e){return"_".concat(n,"_").concat(e)}))};function Qt(t){return parseInt(t,16)}var Bt=function(t){return"rgb(".concat((n=t,3===(n=n.replace(/#/,"")).length&&(n=(n=n.split(""))[0]+n[0]+n[1]+n[1]+n[2]+n[2]),[Qt(n.substr(0,2)),Qt(n.substr(2,2)),Qt(n.substr(4,2))]).join(","),")");var n},Nt=function(t,n,e){var r=n.match(t),i=n.replace(t,Dt);return r&&r.forEach((function(t){return i=i.replace(Dt,e(t))})),i},Rt=function(t){for(var n in t){var e=t[n];"string"==typeof e&&e.match(Ct)&&(t[n]=Nt(Ct,e,Bt))}},zt=function(t){var n=t.match(It),e=n.slice(0,3).map(Math.floor),r=t.match(xt)[0];if(3===n.length)return"".concat(r).concat(e.join(","),")");if(4===n.length)return"".concat(r).concat(e.join(","),",").concat(n[3],")");throw new Error("Invalid rgbChunk: ".concat(t))},Ut=function(t){return t.match(It)},$t=function(t,n){var e={};return n.forEach((function(n){e[n]=t[n],delete t[n]})),e},Lt=function(t,n){return n.map((function(n){return t[n]}))},Vt=function(t,n){return n.forEach((function(n){return t=t.replace(Dt,+n.toFixed(4))})),t},Wt=function(t){for(var n in t._currentState)if("string"==typeof t._currentState[n])return!0;return!1};function Gt(t){var n=t._currentState;[n,t._originalState,t._targetState].forEach(Rt),t._tokenData=function(t){var n,e,r={};for(var i in t){var o=t[i];"string"==typeof o&&(r[i]={formatString:(n=o,e=void 0,e=n.match(Tt),e?(1===e.length||n.charAt(0).match(At))&&e.unshift(""):e=["",""],e.join(Dt)),chunkNames:qt(Ut(o),i)})}return r}(n)}function Ht(t){var n=t._currentState,e=t._originalState,r=t._targetState,i=t._easing,o=t._tokenData;!function(t,n){var e=function(e){var r=n[e].chunkNames,i=t[e];if("string"==typeof i){var o=i.split(" "),u=o[o.length-1];r.forEach((function(n,e){return t[n]=o[e]||u}))}else r.forEach((function(n){return t[n]=i}));delete t[e]};for(var r in n)e(r)}(i,o),[n,e,r].forEach((function(t){return function(t,n){var e=function(e){Ut(t[e]).forEach((function(r,i){return t[n[e].chunkNames[i]]=+r})),delete t[e]};for(var r in n)e(r)}(t,o)}))}function Jt(t){var n=t._currentState,e=t._originalState,r=t._targetState,i=t._easing,o=t._tokenData;[n,e,r].forEach((function(t){return function(t,n){for(var e in n){var r=n[e],i=r.chunkNames,o=r.formatString,u=Vt(o,Lt($t(t,i),i));t[e]=Nt(Ft,u,zt)}}(t,o)})),function(t,n){for(var e in n){var r=n[e].chunkNames,i=t[r[0]];t[e]="string"==typeof i?r.map((function(n){var e=t[n];return delete t[n],e})).join(" "):i}}(i,o)}function Kt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,r)}return e}function Xt(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?Kt(Object(e),!0).forEach((function(n){Yt(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Kt(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}function Yt(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}var Zt=new kt,tn=kt.filters,nn=function(t,n,e,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=Xt({},t),u=Ot(t,r);for(var a in Zt._filters.length=0,Zt.set({}),Zt._currentState=o,Zt._originalState=t,Zt._targetState=n,Zt._easing=u,tn)tn[a].doesApply(Zt)&&Zt._filters.push(tn[a]);Zt._applyFilter("tweenCreated"),Zt._applyFilter("beforeTween");var s=yt(e,o,t,n,1,i,u);return Zt._applyFilter("afterTween"),s};function en(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function rn(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function on(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function un(t,n){var e=n.get(t);if(!e)throw new TypeError("attempted to get private field on non-instance");return e.get?e.get.call(t):e.value}var an=new WeakMap,sn=function(){function t(){rn(this,t),an.set(this,{writable:!0,value:[]});for(var n=arguments.length,e=new Array(n),r=0;r<n;r++)e[r]=arguments[r];e.forEach(this.add.bind(this))}var n,e;return n=t,(e=[{key:"add",value:function(t){return un(this,an).push(t),t}},{key:"remove",value:function(t){var n=un(this,an).indexOf(t);return~n&&un(this,an).splice(n,1),t}},{key:"empty",value:function(){return this.tweenables.map(this.remove.bind(this))}},{key:"isPlaying",value:function(){return un(this,an).some((function(t){return t.isPlaying()}))}},{key:"play",value:function(){return un(this,an).forEach((function(t){return t.tween()})),this}},{key:"pause",value:function(){return un(this,an).forEach((function(t){return t.pause()})),this}},{key:"resume",value:function(){return this.playingTweenables.forEach((function(t){return t.resume()})),this}},{key:"stop",value:function(t){return un(this,an).forEach((function(n){return n.stop(t)})),this}},{key:"tweenables",get:function(){return function(t){if(Array.isArray(t))return en(t)}(t=un(this,an))||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,n){if(t){if("string"==typeof t)return en(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?en(t,n):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}();var t}},{key:"playingTweenables",get:function(){return un(this,an).filter((function(t){return!t.hasEnded()}))}},{key:"promises",get:function(){return un(this,an).map((function(t){return t.then()}))}}])&&on(n.prototype,e),t}();kt.filters.token=i}},n={};function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{}};return t[r](i,i.exports,e),i.exports}return e.d=function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e(720)}()}));
|
|
4
|
+
// Disabled to avoid warnings in Chrome (see https://github.com/4ian/GDevelop/pull/3947)
|
|
5
|
+
// //# sourceMappingURL=shifty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack://shifty/webpack/universalModuleDefinition","webpack://shifty/./src/easing-functions.js","webpack://shifty/./src/bezier.js","webpack://shifty/./src/tweenable.js","webpack://shifty/./src/token.js","webpack://shifty/./src/interpolate.js","webpack://shifty/./src/scene.js","webpack://shifty/./src/index.js","webpack://shifty/webpack/bootstrap","webpack://shifty/webpack/startup","webpack://shifty/webpack/runtime/define property getters","webpack://shifty/webpack/runtime/global","webpack://shifty/webpack/runtime/hasOwnProperty shorthand","webpack://shifty/webpack/runtime/make namespace object"],"names":["root","factory","exports","module","define","amd","self","linear","pos","easeInQuad","Math","pow","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","PI","easeOutSine","sin","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeOutBounce","easeInBack","s","easeOutBack","easeInOutBack","elastic","swingFromTo","swingFrom","swingTo","bounce","bouncePast","easeFromTo","easeFrom","easeTo","cubicBezierAtTime","t","p1x","p1y","p2x","p2y","duration","x","epsilon","ay","by","cy","ax","bx","cx","sampleCurveX","sampleCurveDerivativeX","fabs","n","solveEpsilon","sampleCurveY","t0","t1","t2","x2","d2","i","solveCurveX","getCubicBezierTransition","x1","y1","y2","setBezierFunction","name","cubicBezierTransition","displayName","Tweenable","formulas","unsetBezierFunction","now","previousTween","nextTween","DEFAULT_EASING","window","global","AFTER_TWEEN","AFTER_TWEEN_END","BEFORE_TWEEN","TWEEN_CREATED","TYPE_FUNCTION","TYPE_STRING","scheduleFunction","requestAnimationFrame","webkitRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","mozCancelRequestAnimationFrame","mozRequestAnimationFrame","setTimeout","noop","listHead","listTail","easingFunctions","tweenProps","forPosition","currentState","originalState","targetState","timestamp","easing","easedPosition","easingObjectProp","start","normalizedPosition","hasOneEase","key","call","processTween","tween","currentTime","_timestamp","_currentState","delay","_delay","_duration","_targetState","endTime","timeToCompute","_hasEnded","offset","hasFilters","_filters","length","_render","_data","stop","_applyFilter","_originalState","_easing","processTweens","nextTweenToProcess","currentTween","_next","getCurrentTime","Date","heartbeatIsRunning","shouldScheduleUpdate","doScheduleUpdate","scheduleUpdate","composeEasingObject","fromTweenParams","composedEasing","Array","isArray","typeofEasing","prop","remove","_previous","defaultPromiseCtor","Promise","Symbol","toStringTag","initialState","config","undefined","this","_config","_resolve","_reject","_start","_promiseCtor","setConfig","filterName","filter","_isPlaying","_pausedAtTime","get","_resume","promise","finish","render","step","data","attachment","_scheduleId","from","to","anyPropsAreStrings","currentProp","hasOwnProperty","filters","doesApply","push","onFulfilled","onRejected","_promise","resolve","reject","then","onFinally","state","millisecond","max","gotoEnd","tweenable","setScheduleFunction","fn","number","comma","R_NUMBER_COMPONENT","R_FORMAT_CHUNKS","R_UNFORMATTED_VALUES","R_RGBA","source","RegExp","R_RGBA_PREFIX","R_HEX","VALUE_PLACEHOLDER","getFormatChunksFrom","rawValues","prefix","map","val","hexToDec","hex","parseInt","convertHexToRGB","hexString","replace","split","substr","join","filterStringChunks","pattern","unfilteredString","patternMatches","match","filteredString","forEach","sanitizeObjectForHexProps","stateObject","sanitizeRGBAChunk","rgbChunk","rgbaRawValues","rgbNumbers","slice","floor","Error","getValuesFrom","formattedString","extractPropertyChunks","chunkNames","extractedValues","chunkName","getValuesList","getFormattedValues","formatString","rawValue","toFixed","tweenCreated","_tokenData","chunks","signatures","propertyName","property","charAt","unshift","getFormatSignatures","beforeTween","easingObject","tokenData","easingNames","defaultEasing","expandEasingObject","formatSignatures","expandFormattedProperties","afterTween","collapseFormattedProperties","firstEasing","easingName","collapseEasingObject","mockTweenable","interpolate","position","current","set","interpolatedValues","Scene","tweenables","add","bind","index","indexOf","splice","some","isPlaying","pause","playingTweenables","resume","hasEnded","token","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","d","definition","o","Object","defineProperty","enumerable","g","globalThis","Function","e","obj","prototype","r","value"],"mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,SAAU,GAAIH,GACK,iBAAZC,QACdA,QAAgB,OAAID,IAEpBD,EAAa,OAAIC,GAClB,CATD,CASGK,MAAM,WACT,O,4oDCqCO,IAAMC,EAAS,SAAAC,GAAG,OAAIA,CAAJ,EAQZC,EAAa,SAAAD,GAAG,OAAIE,KAAKC,IAAIH,EAAK,EAAlB,EAQhBI,EAAc,SAAAJ,GAAG,QAAME,KAAKC,IAAIH,EAAM,EAAG,GAAK,EAA7B,EAQjBK,EAAgB,SAAAL,GAAG,OAC7BA,GAAO,IAAO,EAAI,GAAME,KAAKC,IAAIH,EAAK,IAAM,KAAQA,GAAO,GAAKA,EAAM,EADzC,EASnBM,EAAc,SAAAN,GAAG,OAAIE,KAAKC,IAAIH,EAAK,EAAlB,EAQjBO,EAAe,SAAAP,GAAG,OAAIE,KAAKC,IAAIH,EAAM,EAAG,GAAK,CAA3B,EAQlBQ,EAAiB,SAAAR,GAAG,OAC9BA,GAAO,IAAO,EAAI,GAAME,KAAKC,IAAIH,EAAK,GAAK,IAAOE,KAAKC,IAAIH,EAAM,EAAG,GAAK,EAD3C,EASpBS,EAAc,SAAAT,GAAG,OAAIE,KAAKC,IAAIH,EAAK,EAAlB,EAQjBU,EAAe,SAAAV,GAAG,QAAME,KAAKC,IAAIH,EAAM,EAAG,GAAK,EAA7B,EAQlBW,EAAiB,SAAAX,GAAG,OAC9BA,GAAO,IAAO,EACX,GAAME,KAAKC,IAAIH,EAAK,IACnB,KAAQA,GAAO,GAAKE,KAAKC,IAAIH,EAAK,GAAK,EAHb,EAWpBY,EAAc,SAAAZ,GAAG,OAAIE,KAAKC,IAAIH,EAAK,EAAlB,EAQjBa,EAAe,SAAAb,GAAG,OAAIE,KAAKC,IAAIH,EAAM,EAAG,GAAK,CAA3B,EAQlBc,EAAiB,SAAAd,GAAG,OAC9BA,GAAO,IAAO,EAAI,GAAME,KAAKC,IAAIH,EAAK,GAAK,IAAOE,KAAKC,IAAIH,EAAM,EAAG,GAAK,EAD3C,EASpBe,EAAa,SAAAf,GAAG,OAAqC,EAAhCE,KAAKc,IAAIhB,GAAOE,KAAKe,GAAK,GAA/B,EAQhBC,EAAc,SAAAlB,GAAG,OAAIE,KAAKiB,IAAInB,GAAOE,KAAKe,GAAK,GAA9B,EAQjBG,EAAgB,SAAApB,GAAG,OAAK,IAAOE,KAAKc,IAAId,KAAKe,GAAKjB,GAAO,EAAtC,EAQnBqB,EAAa,SAAArB,GAAG,OAAa,IAARA,EAAY,EAAIE,KAAKC,IAAI,EAAG,IAAMH,EAAM,GAA7C,EAQhBsB,EAAc,SAAAtB,GAAG,OAAa,IAARA,EAAY,EAA8B,EAAzBE,KAAKC,IAAI,GAAI,GAAKH,EAAxC,EAQjBuB,EAAgB,SAAAvB,GAC3B,OAAY,IAARA,EACK,EAGG,IAARA,EACK,GAGJA,GAAO,IAAO,EACV,GAAME,KAAKC,IAAI,EAAG,IAAMH,EAAM,IAGhC,IAAmC,EAA3BE,KAAKC,IAAI,GAAI,KAAOH,GACpC,EAQYwB,EAAa,SAAAxB,GAAG,QAAME,KAAKuB,KAAK,EAAIzB,EAAMA,GAAO,EAAjC,EAQhB0B,EAAc,SAAA1B,GAAG,OAAIE,KAAKuB,KAAK,EAAIvB,KAAKC,IAAIH,EAAM,EAAG,GAApC,EAQjB2B,EAAgB,SAAA3B,GAAG,OAC7BA,GAAO,IAAO,GACV,IAAOE,KAAKuB,KAAK,EAAIzB,EAAMA,GAAO,GACnC,IAAOE,KAAKuB,KAAK,GAAKzB,GAAO,GAAKA,GAAO,EAHf,EAWnB4B,EAAgB,SAAA5B,GAC3B,OAAIA,EAAM,EAAI,KACL,OAASA,EAAMA,EACbA,EAAM,EAAI,KACZ,QAAUA,GAAO,IAAM,MAAQA,EAAM,IACnCA,EAAM,IAAM,KACd,QAAUA,GAAO,KAAO,MAAQA,EAAM,MAEtC,QAAUA,GAAO,MAAQ,MAAQA,EAAM,OAEjD,EAQY6B,EAAa,SAAA7B,GACxB,IAAM8B,EAAI,QACV,OAAO9B,EAAMA,IAAQ8B,EAAI,GAAK9B,EAAM8B,EACrC,EAQYC,EAAc,SAAA/B,GACzB,IAAM8B,EAAI,QACV,OAAQ9B,GAAY,GAAKA,IAAQ8B,EAAI,GAAK9B,EAAM8B,GAAK,CACtD,EAQYE,EAAgB,SAAAhC,GAC3B,IAAI8B,EAAI,QACR,OAAK9B,GAAO,IAAO,EACHA,EAAMA,IAAuB,GAAd8B,GAAK,QAAc9B,EAAM8B,GAA/C,GAEF,KAAQ9B,GAAO,GAAKA,IAAuB,GAAd8B,GAAK,QAAc9B,EAAM8B,GAAK,EACnE,EAQYG,EAAU,SAAAjC,GAAG,OACvB,EAAIE,KAAKC,IAAI,GAAI,EAAIH,GAAOE,KAAKiB,KAAY,EAANnB,EAAU,IAAM,EAAIE,KAAKe,IAAO,GAAK,CADrD,EASbiB,EAAc,SAAAlC,GACzB,IAAI8B,EAAI,QACR,OAAQ9B,GAAO,IAAO,EACXA,EAAMA,IAAuB,GAAd8B,GAAK,QAAc9B,EAAM8B,GAA/C,GACA,KAAQ9B,GAAO,GAAKA,IAAuB,GAAd8B,GAAK,QAAc9B,EAAM8B,GAAK,EAChE,EAQYK,EAAY,SAAAnC,GACvB,IAAM8B,EAAI,QACV,OAAO9B,EAAMA,IAAQ8B,EAAI,GAAK9B,EAAM8B,EACrC,EAQYM,EAAU,SAAApC,GACrB,IAAM8B,EAAI,QACV,OAAQ9B,GAAO,GAAKA,IAAQ8B,EAAI,GAAK9B,EAAM8B,GAAK,CACjD,EAQYO,EAAS,SAAArC,GACpB,OAAIA,EAAM,EAAI,KACL,OAASA,EAAMA,EACbA,EAAM,EAAI,KACZ,QAAUA,GAAO,IAAM,MAAQA,EAAM,IACnCA,EAAM,IAAM,KACd,QAAUA,GAAO,KAAO,MAAQA,EAAM,MAEtC,QAAUA,GAAO,MAAQ,MAAQA,EAAM,OAEjD,EAQYsC,EAAa,SAAAtC,GACxB,OAAIA,EAAM,EAAI,KACL,OAASA,EAAMA,EACbA,EAAM,EAAI,KACZ,GAAK,QAAUA,GAAO,IAAM,MAAQA,EAAM,KACxCA,EAAM,IAAM,KACd,GAAK,QAAUA,GAAO,KAAO,MAAQA,EAAM,OAE3C,GAAK,QAAUA,GAAO,MAAQ,MAAQA,EAAM,QAEtD,EAQYuC,EAAa,SAAAvC,GAAG,OAC1BA,GAAO,IAAO,EACX,GAAME,KAAKC,IAAIH,EAAK,IACnB,KAAQA,GAAO,GAAKE,KAAKC,IAAIH,EAAK,GAAK,EAHjB,EAWhBwC,EAAW,SAAAxC,GAAG,OAAIE,KAAKC,IAAIH,EAAK,EAAlB,EAQdyC,EAAS,SAAAzC,GAAG,OAAIE,KAAKC,IAAIH,EAAK,IAAlB,EC3VzB,SAAS0C,EAAkBC,EAAGC,EAAKC,EAAKC,EAAKC,EAAKC,GAChD,IAmEeC,EAAGC,EAhEhBC,EACAC,EACAC,EALEC,EAAK,EACPC,EAAK,EACLC,EAAK,EAKDC,EAAe,SAAAd,GAAC,QAAMW,EAAKX,EAAIY,GAAMZ,EAAIa,GAAMb,CAA/B,EAIhBe,EAAyB,SAAAf,GAAC,OAAK,EAAIW,EAAKX,EAAI,EAAIY,GAAMZ,EAAIa,CAAhC,EAI1BG,EAAO,SAAAC,GAAC,OAAKA,GAAK,EAAIA,EAAI,EAAIA,CAAtB,EA6Dd,OALAN,EAAK,GAFLE,EAAK,EAAIZ,IACTW,EAAK,GAAKT,EAAMF,GAAOY,GAIvBL,EAAK,GAFLE,EAAK,EAAIR,IACTO,EAAK,GAAKL,EAAMF,GAAOQ,GANRJ,EASFN,EATKO,EAtDG,SAAAF,GAAQ,OAAI,GAAK,IAAMA,EAAf,CA+Dba,CAAab,GAnER,SAAAL,GAAC,QAAMQ,EAAKR,EAAIS,GAAMT,EAAIU,GAAMV,CAA/B,CA0DQmB,CAlDV,SAACb,EAAGC,GACtB,IAAIa,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAExB,IAAKH,EAAKhB,EAAGmB,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAG9B,GAFAF,EAAKT,EAAaQ,GAAMhB,EAEpBU,EAAKO,GAAMhB,EACb,OAAOe,EAKT,GAFAE,EAAKT,EAAuBO,GAExBN,EAAKQ,GAAM,KACb,MAGFF,GAAUC,EAAKC,CAChB,CAMD,IAFAF,EAAKhB,IAFLc,EAAK,GAKH,OAAOA,EAGT,GAAIE,GAPJD,EAAK,GAQH,OAAOA,EAGT,KAAOD,EAAKC,GAAI,CAGd,GAFAE,EAAKT,EAAaQ,GAEdN,EAAKO,EAAKjB,GAAKC,EACjB,OAAOe,EAGLhB,EAAIiB,EACNH,EAAKE,EAELD,EAAKC,EAGPA,EAAiB,IAAXD,EAAKD,GAAYA,CACxB,CAED,OAAOE,CACR,CAE0CI,CAAYpB,EAAGC,GAU3D,CAmBM,I,EAAMoB,EAA2B,eACtCC,EADsC,uDACjC,IACLC,EAFsC,uDAEjC,IACLN,EAHsC,uDAGjC,IACLO,EAJsC,uDAIjC,IAJiC,OAKnC,SAAAzE,GAAG,OAAI0C,EAAkB1C,EAAKuE,EAAIC,EAAIN,EAAIO,EAAI,EAA3C,CALgC,EAsB3BC,EAAoB,SAACC,EAAMJ,EAAIC,EAAIN,EAAIO,GAClD,IAAMG,EAAwBN,EAAyBC,EAAIC,EAAIN,EAAIO,GAQnE,OANAG,EAAsBC,YAAcF,EACpCC,EAAsBL,GAAKA,EAC3BK,EAAsBJ,GAAKA,EAC3BI,EAAsBV,GAAKA,EAC3BU,EAAsBH,GAAKA,EAEnBK,GAAUC,SAASJ,GAAQC,CACpC,EAUYI,EAAsB,SAAAL,GAAI,cAAWG,GAAUC,SAASJ,EAA9B,E,83DCxLvC,IAqMIM,EAgGaC,GAAeC,GArS1BC,GAAiB,SAGjB5F,GAAyB,oBAAX6F,OAAyBA,OAASC,IAEhDC,GAAc,aACdC,GAAkB,gBAClBC,GAAe,cACfC,GAAgB,eAChBC,GAAgB,WAChBC,GAAc,SAIhBC,GACFrG,GAAKsG,uBACLtG,GAAKuG,6BACLvG,GAAKwG,wBACLxG,GAAKyG,yBACJzG,GAAK0G,gCAAkC1G,GAAK2G,0BAC7CC,WAEIC,GAAO,WAAQ,EAEjBC,GAAW,KACXC,GAAW,KA2BTxB,GAAW,EAAH,GAAQyB,GAkBTC,GAAa,SACxBC,EACAC,EACAC,EACAC,EACA7D,EACA8D,EACAC,GAEA,IAAIC,EACAC,EACAC,EAEEC,EACJT,EAAcI,EAAY,GAAKJ,EAAcI,GAAa9D,EAGxDoE,GAAa,EAOjB,IAAK,IAAMC,KALPN,GAAUA,EAAOO,OACnBF,GAAa,EACbJ,EAAgBD,EAAOI,IAGPR,EACXS,IAMHJ,IALAC,EAAmBF,EAAOM,IACEC,KACxBL,EACAlC,GAASkC,IAEYE,IAG3BD,EAAQN,EAAcS,GAEtBV,EAAaU,GAAOH,GAASL,EAAYQ,GAAOH,GAASF,EAG3D,OAAOL,CACR,EAEKY,GAAe,SAACC,EAAOC,GAC3B,IAAIX,EAAYU,EAAME,WAChBf,EAAea,EAAMG,cACrBC,EAAQJ,EAAMK,OAEpB,KAAIJ,EAAcX,EAAYc,GAA9B,CAIA,IAAI5E,EAAWwE,EAAMM,UACfjB,EAAcW,EAAMO,aAEpBC,EAAUlB,EAAYc,EAAQ5E,EAChCiF,EAAgBR,EAAcO,EAAUA,EAAUP,EACtDD,EAAMU,UAAYD,GAAiBD,EACnC,IAAMG,EAASnF,GAAYgF,EAAUC,GAC/BG,EAAaZ,EAAMa,SAASC,OAAS,EAE3C,GAAId,EAAMU,UAER,OADAV,EAAMe,QAAQ1B,EAAaW,EAAMgB,MAAOL,GACjCX,EAAMiB,MAAK,GAGhBL,GACFZ,EAAMkB,aAAajD,IAMjBwC,EAAgBnB,EAAYc,EAC9Bd,EAAY9D,EAAWiF,EAAgB,EAEvCnB,GAAac,EAGfnB,GACEwB,EACAtB,EACAa,EAAMmB,eACN9B,EACA7D,EACA8D,EACAU,EAAMoB,SAGJR,GACFZ,EAAMkB,aAAanD,IAGrBiC,EAAMe,QAAQ5B,EAAca,EAAMgB,MAAOL,EA3CxC,CA4CF,EAoBYU,GAAgB,WAM3B,IALA,IAAIC,EAEErB,EAAc3C,GAAUG,MAC1B8D,EAAezC,GAEZyC,GACLD,EAAqBC,EAAaC,MAClCzB,GAAawB,EAActB,GAC3BsB,EAAeD,CAElB,EAEKG,GAAiBC,KAAKjE,KAAQ,kBAAO,IAAIiE,IAAX,EAEhCC,IAAqB,EAwBZC,GAAuB,SAAAC,GAC9BA,GAAoBF,KAIxBA,GAAqBE,EAEjBA,GACFC,KAEH,EAMYA,GAAiB,SAAjBA,IACXrE,EAAMgE,KAEFE,IACFtD,GAAiByB,KAAK9H,GAAM8J,EAhPZ,oBAmPlBT,IACD,EAeYU,GAAsB,SACjCC,GAGG,IAFHzC,EAEG,uDAFM3B,GACTqE,EACG,uDADc,CAAC,EAElB,GAAIC,MAAMC,QAAQ5C,GAAS,CACzB,IAAMnC,EAAwBN,aAAA,IAA4ByC,IAE1D,OAAOnC,CACR,CAED,IAAIgF,EAAe,EAAO7C,GAE1B,GAAIhC,GAASgC,GACX,OAAOhC,GAASgC,GAGlB,GAAI6C,IAAiBhE,IAAegE,IAAiBjE,GACnD,IAAK,IAAMkE,KAAQL,EACjBC,EAAeI,GAAQ9C,OAGzB,IAAK,IAAM8C,KAAQL,EACjBC,EAAeI,GAAQ9C,EAAO8C,IAASzE,GAI3C,OAAOqE,CACR,EAIKK,GAAwC,SAAAtC,GAGxCA,IAAUlB,IACZA,GAAWkB,EAAMwB,OAGf1C,GAASyD,UAAY,KAErBxD,GAAW,KAEJiB,IAAUjB,IACnBA,GAAWiB,EAAMuC,WAGfxD,GAASyC,MAAQ,KAEjB1C,GAAW,MAGbpB,GAAgBsC,EAAMuC,UACtB5E,GAAYqC,EAAMwB,MAElB9D,GAAc8D,MAAQ7D,GACtBA,GAAU4E,UAAY7E,IAIxBsC,EAAMuC,UAAYvC,EAAMwB,MAAQ,IACjC,EAEKgB,GAAwC,mBAAZC,QAAyBA,QAAU,K,EAOlEC,OAAOC,YAFH,IAAMrF,GAAb,WA6CE,aAAmD,IAAvCsF,EAAuC,uDAAxB,CAAC,EAAGC,EAAoB,4DAAXC,EAAW,mBA3C5B,WA6CrBC,KAAKC,QAAU,CAAC,EAEhBD,KAAK/B,MAAQ,CAAC,EAEd+B,KAAK1C,OAAS,EAEd0C,KAAKlC,SAAW,GAEhBkC,KAAKvB,MAAQ,KAEbuB,KAAKR,UAAY,KAEjBQ,KAAK7C,WAAa,KAElB6C,KAAKrC,WAAY,EAEjBqC,KAAKE,SAAW,KAEhBF,KAAKG,QAAU,KAEfH,KAAK5C,cAAgByC,GAAgB,CAAC,EAEtCG,KAAK5B,eAAiB,CAAC,EAEvB4B,KAAKxC,aAAe,CAAC,EAErBwC,KAAKI,OAAStE,GAEdkE,KAAKhC,QAAUlC,GAEfkE,KAAKK,aAAeZ,GAKhBK,GACFE,KAAKM,UAAUR,EAElB,C,QArFH,O,EAAA,E,EAAA,oCA4FeS,GACX,IAAK,IAAI1G,EAAImG,KAAKlC,SAASC,OAAQlE,EAAI,EAAGA,IAAK,CAC7C,IACM2G,EADaR,KAAKlC,SAASjE,EAAIA,GACX0G,GAEtBC,GACFA,EAAOR,KAEV,CACF,GArGH,8BAgH4B,IAApBF,EAAoB,4DAAXC,EAkBb,OAjBIC,KAAKS,YACPT,KAAK9B,QAGH4B,GAAWE,KAAKC,SAClBD,KAAKM,UAAUR,GAIjBE,KAAKU,cAAgB,KACrBV,KAAK7C,WAAa5C,EAAUG,MAC5BsF,KAAKI,OAAOJ,KAAKW,MAAOX,KAAK/B,OAEzB+B,KAAK1C,QACP0C,KAAKhC,QAAQgC,KAAK5C,cAAe4C,KAAK/B,MAAO,GAGxC+B,KAAKY,QAAQZ,KAAK7C,WAC1B,GAnIH,kCA8IyB,IAAb2C,EAAa,uDAAJ,CAAC,EACVG,EAAYD,KAAZC,QAER,IAAK,IAAMnD,KAAOgD,EAChBG,EAAQnD,GAAOgD,EAAOhD,GAJH,MAgBjBmD,EAPFY,eATmB,MASTb,KAAKK,aATI,IAgBjBJ,EANFtD,aAVmB,MAUXb,GAVW,EAWnBgF,EAKEb,EALFa,OAXmB,EAgBjBb,EAJFc,cAZmB,MAYVf,KAAKC,QAAQe,MAAQlF,GAZX,IAgBjBmE,EADFe,YAfmB,MAeZlF,GAfY,EAoBrBkE,KAAK/B,MAAQgC,EAAQgB,MAAQhB,EAAQiB,YAAclB,KAAK/B,MAIxD+B,KAAKS,YAAa,EAElBT,KAAKU,cAAgB,KAErBV,KAAKmB,YAAc,KAEnBnB,KAAK1C,OAASwC,EAAOzC,OAAS,EAE9B2C,KAAKI,OAASzD,EAEdqD,KAAKhC,QAAU+C,GAAUC,EAEzBhB,KAAKzC,UAAY0C,EAAQxH,UA1fJ,IA4frBuH,KAAKK,aAAeQ,EAEhBC,IACFd,KAAKE,SAAWY,GAzCG,IA4CbM,EAAkBtB,EAAlBsB,KA5Ca,EA4CKtB,EAAZuB,UA5CO,MA4CF,CAAC,EA5CC,EA6CbjE,EAAgD4C,KAAhD5C,cAAegB,EAAiC4B,KAAjC5B,eAAgBZ,EAAiBwC,KAAjBxC,aAEvC,IAAK,IAAMV,KAAOsE,EAChBhE,EAAcN,GAAOsE,EAAKtE,GAG5B,IAAIwE,GAAqB,EAEzB,IAAK,IAAMxE,KAAOM,EAAe,CAC/B,IAAMmE,EAAcnE,EAAcN,GAE7BwE,GAAsB,EAAOC,KAAgBlG,KAChDiG,GAAqB,GAGvBlD,EAAetB,GAAOyE,EAGtB/D,EAAaV,GAAOuE,EAAGG,eAAe1E,GAAOuE,EAAGvE,GAAOyE,CACxD,CAWD,GARAvB,KAAK3B,QAAUW,GACbgB,KAAK5C,cACL6C,EAAQzD,OACRwD,KAAK3B,SAGP2B,KAAKlC,SAASC,OAAS,EAEnBuD,EAAoB,CACtB,IAAK,IAAMxE,KAAOvC,EAAUkH,QACtBlH,EAAUkH,QAAQ3E,GAAK4E,UAAU1B,OACnCA,KAAKlC,SAAS6D,KAAKpH,EAAUkH,QAAQ3E,IAIzCkD,KAAK7B,aAAahD,GACnB,CAED,OAAO6E,IACR,GApOH,2BAgPO4B,EAAaC,GAAY,WAO5B,OALA7B,KAAK8B,SAAW,IAAI9B,KAAKK,cAAa,SAAC0B,EAASC,GAC9C,EAAK9B,SAAW6B,EAChB,EAAK5B,QAAU6B,CAChB,IAEMhC,KAAK8B,SAASG,KAAKL,EAAaC,EACxC,GAxPH,4BAiQQA,GACJ,OAAO7B,KAAKiC,OAAL,MAAkBJ,EAC1B,GAnQH,8BA0QUK,GACN,OAAOlC,KAAKiC,OAAL,QAAoBC,EAC5B,GA5QH,4BAmRI,YAAYlC,KAAK5C,cAClB,GApRH,0BA2RM+E,GACFnC,KAAK5C,cAAgB+E,CACtB,GA7RH,8BAsSI,GAAKnC,KAAKS,WAQV,OAJAT,KAAKU,cAAgBnG,EAAUG,MAC/BsF,KAAKS,YAAa,EAClBlB,GAAOS,MAEAA,IACR,GA/SH,+BAuTI,OAAOA,KAAKY,SACb,GAxTH,gCA+TyC,IAA/B1D,EAA+B,uDAAjB3C,EAAUG,MAC9B,OAAwB,OAApBsF,KAAK7C,WACA6C,KAAK/C,QAGV+C,KAAKS,WACAT,KAAK8B,UAGV9B,KAAKU,gBACPV,KAAK7C,YAAcD,EAAc8C,KAAKU,cACtCV,KAAKU,cAAgB,MAGvBV,KAAKS,YAAa,EAED,OAAb1E,IACFA,GAAWiE,KACXhE,GAAWgE,OAEXA,KAAKR,UAAYxD,GACjBA,GAASyC,MAAQuB,KAEjBhE,GAAWgE,MAGNA,KACR,GA1VH,2BAqWOoC,GACHA,EAAczM,KAAK0M,IAAID,EAAa,GACpC,IAAMlF,EAAc3C,EAAUG,MAE9B,OAAIsF,KAAK7C,WAAaiF,IAAgB,IAItCpC,KAAK7C,WAAaD,EAAckF,EAGhCpF,GAAagD,KAAM9C,IANV8C,IASV,GAnXH,6BA+XwB,IAAjBsC,EAAiB,wDACpB,IAAKtC,KAAKS,WACR,OAAOT,KAGTA,KAAKS,YAAa,EAElBlB,GAAOS,MAEP,IAAMnC,EAAamC,KAAKlC,SAASC,OAAS,EAkC1C,OAhCIuE,IACEzE,GACFmC,KAAK7B,aAAajD,IAGpBgB,GACE,EACA8D,KAAK5C,cACL4C,KAAK5B,eACL4B,KAAKxC,aACL,EACA,EACAwC,KAAK3B,SAGHR,IACFmC,KAAK7B,aAAanD,IAClBgF,KAAK7B,aAAalD,MAIlB+E,KAAKE,UACPF,KAAKE,SAAS,CACZe,KAAMjB,KAAK/B,MACXkE,MAAOnC,KAAK5C,cACZmF,UAAWvC,OAIfA,KAAKE,SAAW,KAChBF,KAAKG,QAAU,KAERH,IACR,GA3aH,+BAsb0B,IAAjBsC,EAAiB,wDACdlF,EAAqC4C,KAArC5C,cAAea,EAAsB+B,KAAtB/B,MAAOwC,EAAeT,KAAfS,WAE9B,OAAKA,GAIDT,KAAKG,SACPH,KAAKG,QAAQ,CACXc,KAAMhD,EACNkE,MAAO/E,EACPmF,UAAWvC,OAIfA,KAAKE,SAAW,KAChBF,KAAKG,QAAU,KAERH,KAAK9B,KAAKoE,IAdRtC,IAeV,GAzcH,kCAidI,OAAOA,KAAKS,UACb,GAldH,iCA0dI,OAAOT,KAAKrC,SACb,GA3dH,0CAkesBrC,GAClBf,EAAUiI,oBAAoBlH,EAC/B,GApeH,6BA8eoB,IAAb2F,EAAa,uDAAN,KAKV,OAJIA,IACFjB,KAAK/B,MAAL,KAAkBgD,IAGbjB,KAAK/B,KACb,GApfH,gCA4fI,IAAK,IAAMqB,KAAQU,YACVA,KAAKV,EAEf,I,oBA/fH,KAmhBO,SAASrC,KAAmB,IAAb6C,EAAa,uDAAJ,CAAC,EACxByC,EAAY,IAAIhI,GAOtB,OANAgI,EAAUtF,MAAM6C,GAIhByC,EAAUA,UAAYA,EAEfA,CACR,C,EA5hBYhI,G,OAQE,kBAAMG,CAAN,I,EARFH,G,uBAuBkB,SAAAkI,GAAE,OAAKnH,GAAmBmH,CAAxB,I,EAvBpBlI,G,UAgCM,CAAC,G,EAhCPA,G,WAkCOC,IA4fpBqE,IAAqB,GC52BrB,IAIQ6D,GACAC,GALFC,GAAqB,YACrBC,GAAkB,gBAClBC,GAAuB,YACvBC,IACEL,GAASI,GAAqBE,OAC9BL,GAAQ,OAAOK,OAEd,IAAIC,OAAJ,kBACMP,IADN,OACeC,IADf,OACuBD,IADvB,OACgCC,IADhC,OACwCD,GADxC,YACkDC,IADlD,OAC0DD,GAD1D,SAEL,MAGEQ,GAAgB,QAChBC,GAAQ,wBACRC,GAAoB,MAWpBC,GAAsB,SAACC,EAAWC,GAAZ,OAC1BD,EAAUE,KAAI,SAACC,EAAK5J,GAAN,iBAAgB0J,EAAhB,YAA0B1J,EAA1B,GADY,EA2C5B,SAAS6J,GAASC,GAChB,OAAOC,SAASD,EAAK,GACtB,CAYD,IAuBME,GAAkB,SAAAC,GAAS,qBAvBXH,EAwBCG,EAnBF,KAJnBH,EAAMA,EAAII,QAAQ,IAAK,KAIfhG,SAEN4F,GADAA,EAAMA,EAAIK,MAAM,KACN,GAAKL,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAGlD,CACLD,GAASC,EAAIM,OAAO,EAAG,IACvBP,GAASC,EAAIM,OAAO,EAAG,IACvBP,GAASC,EAAIM,OAAO,EAAG,MAWOC,KAAK,KADN,KAvBX,IAAAP,CAuBW,EAc3BQ,GAAqB,SAACC,EAASC,EAAkB7D,GACrD,IAAM8D,EAAiBD,EAAiBE,MAAMH,GAC1CI,EAAiBH,EAAiBN,QAAQK,EAAShB,IAYvD,OAVIkB,GACFA,EAAeG,SACb,SAAAF,GAAK,OACFC,EAAiBA,EAAeT,QAC/BX,GACA5C,EAAO+D,GAHN,IAQFC,CACR,EAiBKE,GAA4B,SAAAC,GAChC,IAAK,IAAMrF,KAAQqF,EAAa,CAC9B,IAAMpD,EAAcoD,EAAYrF,GAEL,iBAAhBiC,GAA4BA,EAAYgD,MAAMpB,MACvDwB,EAAYrF,GAbhB6E,GAAmBhB,GAa4B5B,EAbhBsC,IAe9B,CACF,EAQKe,GAAoB,SAAAC,GACxB,IAAMC,EAAgBD,EAASN,MAAMzB,IAC/BiC,EAAaD,EAAcE,MAAM,EAAG,GAAGxB,IAAI7N,KAAKsP,OAChD1B,EAASsB,EAASN,MAAMrB,IAAe,GAE7C,GAA6B,IAAzB4B,EAAc/G,OAChB,gBAAUwF,GAAV,OAAmBwB,EAAWb,KAAK,KAAnC,KACK,GAA6B,IAAzBY,EAAc/G,OACvB,gBAAUwF,GAAV,OAAmBwB,EAAWb,KAAK,KAAnC,YAA2CY,EAAc,GAAzD,KAGF,MAAM,IAAII,MAAJ,4BAA+BL,GACtC,EAsBKM,GAAgB,SAAAC,GAAe,OACnCA,EAAgBb,MAAMzB,GADa,EAkD/BuC,GAAwB,SAACV,EAAaW,GAC1C,IAAMC,EAAkB,CAAC,EAOzB,OALAD,EAAWb,SAAQ,SAAAe,GACjBD,EAAgBC,GAAab,EAAYa,UAClCb,EAAYa,EACpB,IAEMD,CACR,EASKE,GAAgB,SAACd,EAAaW,GAAd,OACpBA,EAAW9B,KAAI,SAAAgC,GAAS,OAAIb,EAAYa,EAAhB,GADJ,EAUhBE,GAAqB,SAACC,EAAcrC,GASxC,OARAA,EAAUmB,SACR,SAAAmB,GAAQ,OACLD,EAAeA,EAAa5B,QAC3BX,IACCwC,EAASC,QAAQ,GAHd,IAOHF,CACR,EA8EYjE,GAAY,SAAAa,GACvB,IAAK,IAAMzF,KAAOyF,EAAUnF,cAC1B,GAA4C,iBAAjCmF,EAAUnF,cAAcN,GACjC,OAAO,EAIX,OAAO,CACR,EAMM,SAASgJ,GAAavD,GAAW,IAC9BnF,EAAgDmF,EAAhDnF,cAEP,CAACA,EAFsDmF,EAAjCnE,eAAiCmE,EAAjB/E,cAEQiH,QAC7CC,IAGFnC,EAAUwD,WAjLgB,SAAApB,GAC1B,IAlL0BS,EACtBY,EAiLEC,EAAa,CAAC,EAEpB,IAAK,IAAMC,KAAgBvB,EAAa,CACtC,IAAMwB,EAAWxB,EAAYuB,GAEL,iBAAbC,IACTF,EAAWC,GAAgB,CACzBP,cAzLoBP,EAyLce,EAxLpCH,WAASZ,EAAgBb,MAAM1B,IAE9BmD,GAUe,IAAlBA,EAAOjI,QAGPqH,EAAgBgB,OAAO,GAAG7B,MAAM3B,MAIhCoD,EAAOK,QAAQ,IAbfL,EAAS,CAAC,GAAI,IAgBTA,EAAO9B,KAAKd,KAmKbkC,WAAYjC,GAAoB8B,GAAcgB,GAAWD,IAG9D,CAED,OAAOD,CACR,CAkKwBK,CAAoBlJ,EAC5C,CAMM,SAASmJ,GAAYhE,GAAW,IAEnCnF,EAKEmF,EALFnF,cACAgB,EAIEmE,EAJFnE,eACAZ,EAGE+E,EAHF/E,aACAa,EAEEkE,EAFFlE,QACA0H,EACExD,EADFwD,YAvFuB,SAACS,EAAcC,GAAc,eAC3CnH,GAD2C,IAE5CgG,EAAemB,EAAUnH,GAAzBgG,WACF9I,EAASgK,EAAalH,GAE5B,GAAsB,iBAAX9C,EAAqB,CAC9B,IAAMkK,EAAclK,EAAOwH,MAAM,KAC3B2C,EAAgBD,EAAYA,EAAY3I,OAAS,GAEvDuH,EAAWb,SACT,SAACe,EAAW3L,GAAZ,OACG2M,EAAahB,GAAakB,EAAY7M,IAAM8M,CAD/C,GAGH,MAECrB,EAAWb,SAAQ,SAAAe,GAAS,OAAKgB,EAAahB,GAAahJ,CAA/B,WAGvBgK,EAAalH,EAlBgC,EACtD,IAAK,IAAMA,KAAQmH,EAAW,EAAnBnH,EAmBZ,CAsECsH,CAAmBvI,EAAS0H,GAC3B,CAAC3I,EAAegB,EAAgBZ,GAAciH,SAAQ,SAAAtC,GAAK,OA5K5B,SAACwC,EAAakC,GAAqB,eACxDX,GACTf,GAAcR,EAAYuB,IAAezB,SACvC,SAAC/B,EAAQ7I,GAAT,OACG8K,EAAYkC,EAAiBX,GAAcZ,WAAWzL,KAAO6I,CADhE,WAIKiC,EAAYuB,EAP8C,EACnE,IAAK,IAAMA,KAAgBW,EAAkB,EAAlCX,EAQZ,CAoKGY,CAA0B3E,EAAO4D,EADyB,GAG7D,CAMM,SAASgB,GAAWxE,GAAW,IAElCnF,EAKEmF,EALFnF,cACAgB,EAIEmE,EAJFnE,eACAZ,EAGE+E,EAHF/E,aACAa,EAEEkE,EAFFlE,QACA0H,EACExD,EADFwD,WAED,CAAC3I,EAAegB,EAAgBZ,GAAciH,SAAQ,SAAAtC,GAAK,OA9H1B,SAACwC,EAAakC,GAChD,IAAK,IAAMvH,KAAQuH,EAAkB,OACEA,EAAiBvH,GAA9CgG,EAD2B,EAC3BA,WAAYK,EADe,EACfA,aAEdpE,EAAcmE,GAClBC,EACAF,GAAcJ,GAAsBV,EAAaW,GAAaA,IAGhEX,EAAYrF,GAnHd6E,GAAmBpB,GAmHqBxB,EAnHIqD,GAoH3C,CACF,CAoHGoC,CAA4B7E,EAAO4D,EADuB,IAjFjC,SAACS,EAAcC,GAC1C,IAAK,IAAMnH,KAAQmH,EAAW,KACpBnB,EAAemB,EAAUnH,GAAzBgG,WACF2B,EAAcT,EAAalB,EAAW,IAG1CkB,EAAalH,GADY,iBAAhB2H,EACY3B,EAClB9B,KAAI,SAAAgC,GACH,IAAM0B,EAAaV,EAAahB,GAGhC,cAFOgB,EAAahB,GAEb0B,CACR,IACAhD,KAAK,KAGa+C,CAExB,CACF,CAkECE,CAAqB9I,EAAS0H,EAC/B,C,6rBCvaD,IAAMqB,GAAgB,IAAI7M,GAClBkH,GAAYlH,WA2CP8M,GAAc,SAACjG,EAAMC,EAAIiG,EAAU9K,GAAsB,IAAda,EAAc,uDAAN,EACxDkK,EAAU,MAAKnG,GACfoF,EAAexH,GAAoBoC,EAAM5E,GAU/C,IAAK,IAAMpC,KARXgN,GAActJ,SAASC,OAAS,EAEhCqJ,GAAcI,IAAI,CAAC,GACnBJ,GAAchK,cAAgBmK,EAC9BH,GAAchJ,eAAiBgD,EAC/BgG,GAAc5J,aAAe6D,EAC7B+F,GAAc/I,QAAUmI,EAEL/E,GACbA,GAAQrH,GAAMsH,UAAU0F,KAC1BA,GAActJ,SAAS6D,KAAKF,GAAQrH,IAKxCgN,GAAcjJ,aAAa,gBAC3BiJ,GAAcjJ,aAAa,eAE3B,IAAMsJ,EAAqBvL,GACzBoL,EACAC,EACAnG,EACAC,EACA,EACAhE,EACAmJ,GAMF,OAFAY,GAAcjJ,aAAa,cAEpBsJ,CACR,E,mhBCpFYC,GAAb,WA8BE,aAA2B,0CA7Bb,KA6Ba,2BAAZC,EAAY,yBAAZA,EAAY,gBACzBA,EAAWlD,QAAQzE,KAAK4H,IAAIC,KAAK7H,MAClC,C,QAhCH,O,EAAA,G,EAAA,2BAmFMuC,GAGF,OAFA,GAAAvC,KAAA,IAAiB2B,KAAKY,GAEfA,CACR,GAvFH,6BAgGSA,GACL,IAAMuF,EAAQ,GAAA9H,KAAA,IAAiB+H,QAAQxF,GAMvC,OAJKuF,GACH,GAAA9H,KAAA,IAAiBgI,OAAOF,EAAO,GAG1BvF,CACR,GAxGH,8BAmHI,OAAOvC,KAAK2H,WAAWnE,IAAIxD,KAAKT,OAAOsI,KAAK7H,MAC7C,GApHH,kCA6HI,OAAO,GAAAA,KAAA,IAAiBiI,MAAK,SAAA1F,GAAS,OAAIA,EAAU2F,WAAd,GACvC,GA9HH,6BAwII,OAFA,GAAAlI,KAAA,IAAiByE,SAAQ,SAAAlC,GAAS,OAAIA,EAAUtF,OAAd,IAE3B+C,IACR,GAzIH,8BAmJI,OADA,GAAAA,KAAA,IAAiByE,SAAQ,SAAAlC,GAAS,OAAIA,EAAU4F,OAAd,IAC3BnI,IACR,GApJH,+BA8JI,OAFAA,KAAKoI,kBAAkB3D,SAAQ,SAAAlC,GAAS,OAAIA,EAAU8F,QAAd,IAEjCrI,IACR,GA/JH,2BAwKOsC,GAEH,OADA,GAAAtC,KAAA,IAAiByE,SAAQ,SAAAlC,GAAS,OAAIA,EAAUrE,KAAKoE,EAAnB,IAC3BtC,IACR,GA3KH,iCAwCI,O,gDAAA,GAAWA,KAAX,M,ojBACD,GAzCH,wCAkDI,OAAO,GAAAA,KAAA,IAAiBQ,QAAO,SAAA+B,GAAS,OAAKA,EAAU+F,UAAf,GACzC,GAnDH,+BAyEI,OAAO,GAAAtI,KAAA,IAAiBwD,KAAI,SAAAjB,GAAS,OAAIA,EAAUN,MAAd,GACtC,M,kBA1EH,KCUA1H,GAAUkH,QAAQ8G,MAAQA,C,GCXtBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,GAAGF,EAAyBE,GAC3B,OAAOF,EAAyBE,GAAUvT,QAG3C,IAAIC,EAASoT,EAAyBE,GAAY,CAGjDvT,QAAS,CAAC,GAOX,OAHAwT,EAAoBD,GAAUtT,EAAQA,EAAOD,QAASsT,GAG/CrT,EAAOD,OACf,CClBA,OCFAsT,EAAoBG,EAAI,SAASzT,EAAS0T,GACzC,IAAI,IAAI/L,KAAO+L,EACXJ,EAAoBK,EAAED,EAAY/L,KAAS2L,EAAoBK,EAAE3T,EAAS2H,IAC5EiM,OAAOC,eAAe7T,EAAS2H,EAAK,CAAEmM,YAAY,EAAMtI,IAAKkI,EAAW/L,IAG3E,ECPA2L,EAAoBS,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOnJ,MAAQ,IAAIoJ,SAAS,cAAb,EAGhB,CAFE,MAAOC,GACR,GAAsB,iBAAXvO,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB2N,EAAoBK,EAAI,SAASQ,EAAKhK,GAAQ,OAAOyJ,OAAOQ,UAAU/H,eAAezE,KAAKuM,EAAKhK,EAAO,ECCtGmJ,EAAoBe,EAAI,SAASrU,GACX,oBAAXwK,QAA0BA,OAAOC,aAC1CmJ,OAAOC,eAAe7T,EAASwK,OAAOC,YAAa,CAAE6J,MAAO,WAE7DV,OAAOC,eAAe7T,EAAS,aAAc,CAAEsU,OAAO,GACvD,EJHOhB,EAAoB,I","file":"shifty.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"shifty\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"shifty\"] = factory();\n\telse\n\t\troot[\"shifty\"] = factory();\n})(self, function() {\nreturn ","/** @typedef {import(\".\").shifty.easingFunction} shifty.easingFunction */\n\n/*!\n * All equations are adapted from Thomas Fuchs'\n * [Scripty2](https://github.com/madrobby/scripty2/blob/master/src/effects/transitions/penner.js).\n *\n * Based on Easing Equations (c) 2003 [Robert\n * Penner](http://www.robertpenner.com/), all rights reserved. This work is\n * [subject to terms](http://www.robertpenner.com/easing_terms_of_use.html).\n */\n\n/*!\n * TERMS OF USE - EASING EQUATIONS\n * Open source under the BSD License.\n * Easing Equations (c) 2003 Robert Penner, all rights reserved.\n */\n\n/**\n * @member Tweenable.formulas\n * @description A static Object of {@link shifty.easingFunction}s that can by\n * used by Shifty. The default values are defined in\n * [`easing-functions.js`](easing-functions.js.html), but you can add your own\n * {@link shifty.easingFunction}s by defining them as keys to this Object.\n *\n * Shifty ships with an implementation of [Robert Penner's easing\n * equations](http://robertpenner.com/easing/), as adapted from\n * [Scripty2](https://github.com/madrobby/scripty2/blob/master/src/effects/transitions/penner.js)'s\n * implementation.\n * <p data-height=\"934\" data-theme-id=\"0\" data-slug-hash=\"wqObdO\"\n * data-default-tab=\"js,result\" data-user=\"jeremyckahn\" data-embed-version=\"2\"\n * data-pen-title=\"Shifty - Easing formula names\" class=\"codepen\">See the Pen <a\n * href=\"https://codepen.io/jeremyckahn/pen/wqObdO/\">Shifty - Easing formula\n * names</a> by Jeremy Kahn (<a\n * href=\"https://codepen.io/jeremyckahn\">@jeremyckahn</a>) on <a\n * href=\"https://codepen.io\">CodePen</a>.</p>\n * <script async\n * src=\"https://production-assets.codepen.io/assets/embed/ei.js\"></script>\n * @type {Object.<shifty.easingFunction>}\n * @static\n */\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const linear = pos => pos\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInQuad = pos => Math.pow(pos, 2)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutQuad = pos => -(Math.pow(pos - 1, 2) - 1)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutQuad = pos =>\n (pos /= 0.5) < 1 ? 0.5 * Math.pow(pos, 2) : -0.5 * ((pos -= 2) * pos - 2)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInCubic = pos => Math.pow(pos, 3)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutCubic = pos => Math.pow(pos - 1, 3) + 1\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutCubic = pos =>\n (pos /= 0.5) < 1 ? 0.5 * Math.pow(pos, 3) : 0.5 * (Math.pow(pos - 2, 3) + 2)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInQuart = pos => Math.pow(pos, 4)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutQuart = pos => -(Math.pow(pos - 1, 4) - 1)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutQuart = pos =>\n (pos /= 0.5) < 1\n ? 0.5 * Math.pow(pos, 4)\n : -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInQuint = pos => Math.pow(pos, 5)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutQuint = pos => Math.pow(pos - 1, 5) + 1\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutQuint = pos =>\n (pos /= 0.5) < 1 ? 0.5 * Math.pow(pos, 5) : 0.5 * (Math.pow(pos - 2, 5) + 2)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInSine = pos => -Math.cos(pos * (Math.PI / 2)) + 1\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutSine = pos => Math.sin(pos * (Math.PI / 2))\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutSine = pos => -0.5 * (Math.cos(Math.PI * pos) - 1)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInExpo = pos => (pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)))\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutExpo = pos => (pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutExpo = pos => {\n if (pos === 0) {\n return 0\n }\n\n if (pos === 1) {\n return 1\n }\n\n if ((pos /= 0.5) < 1) {\n return 0.5 * Math.pow(2, 10 * (pos - 1))\n }\n\n return 0.5 * (-Math.pow(2, -10 * --pos) + 2)\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInCirc = pos => -(Math.sqrt(1 - pos * pos) - 1)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutCirc = pos => Math.sqrt(1 - Math.pow(pos - 1, 2))\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutCirc = pos =>\n (pos /= 0.5) < 1\n ? -0.5 * (Math.sqrt(1 - pos * pos) - 1)\n : 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutBounce = pos => {\n if (pos < 1 / 2.75) {\n return 7.5625 * pos * pos\n } else if (pos < 2 / 2.75) {\n return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75\n } else if (pos < 2.5 / 2.75) {\n return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375\n } else {\n return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375\n }\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInBack = pos => {\n const s = 1.70158\n return pos * pos * ((s + 1) * pos - s)\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeOutBack = pos => {\n const s = 1.70158\n return (pos = pos - 1) * pos * ((s + 1) * pos + s) + 1\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeInOutBack = pos => {\n let s = 1.70158\n if ((pos /= 0.5) < 1) {\n return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s))\n }\n return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2)\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const elastic = pos =>\n -1 * Math.pow(4, -8 * pos) * Math.sin(((pos * 6 - 1) * (2 * Math.PI)) / 2) + 1\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const swingFromTo = pos => {\n let s = 1.70158\n return (pos /= 0.5) < 1\n ? 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s))\n : 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2)\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const swingFrom = pos => {\n const s = 1.70158\n return pos * pos * ((s + 1) * pos - s)\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const swingTo = pos => {\n const s = 1.70158\n return (pos -= 1) * pos * ((s + 1) * pos + s) + 1\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const bounce = pos => {\n if (pos < 1 / 2.75) {\n return 7.5625 * pos * pos\n } else if (pos < 2 / 2.75) {\n return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75\n } else if (pos < 2.5 / 2.75) {\n return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375\n } else {\n return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375\n }\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const bouncePast = pos => {\n if (pos < 1 / 2.75) {\n return 7.5625 * pos * pos\n } else if (pos < 2 / 2.75) {\n return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75)\n } else if (pos < 2.5 / 2.75) {\n return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375)\n } else {\n return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375)\n }\n}\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeFromTo = pos =>\n (pos /= 0.5) < 1\n ? 0.5 * Math.pow(pos, 4)\n : -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeFrom = pos => Math.pow(pos, 4)\n\n/**\n * @memberof Tweenable.formulas\n * @type {shifty.easingFunction}\n * @param {number} pos\n * @returns {number}\n */\nexport const easeTo = pos => Math.pow(pos, 0.25)\n","import { Tweenable } from './tweenable'\n/** @typedef {import(\".\").shifty.easingFunction} shifty.easingFunction */\n\n/**\n * The Bezier magic in this file is adapted/copied almost wholesale from\n * [Scripty2](https://github.com/madrobby/scripty2/blob/master/src/effects/transitions/cubic-bezier.js),\n * which was adapted from Apple code (which probably came from\n * [here](http://opensource.apple.com/source/WebCore/WebCore-955.66/platform/graphics/UnitBezier.h)).\n * Special thanks to Apple and Thomas Fuchs for much of this code.\n */\n\n/**\n * Copyright (c) 2006 Apple Computer, Inc. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice,\n * this list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of the copyright holder(s) nor the names of any\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n */\n// port of webkit cubic bezier handling by http://www.netzgesta.de/dev/\n\n/**\n * @param {number} t\n * @param {number} p1x\n * @param {number} p1y\n * @param {number} p2x\n * @param {number} p2y\n * @param {number} duration\n * @returns {Function}\n * @private\n */\nfunction cubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {\n let ax = 0,\n bx = 0,\n cx = 0,\n ay = 0,\n by = 0,\n cy = 0\n\n const sampleCurveX = t => ((ax * t + bx) * t + cx) * t\n\n const sampleCurveY = t => ((ay * t + by) * t + cy) * t\n\n const sampleCurveDerivativeX = t => (3 * ax * t + 2 * bx) * t + cx\n\n const solveEpsilon = duration => 1 / (200 * duration)\n\n const fabs = n => (n >= 0 ? n : 0 - n)\n\n const solveCurveX = (x, epsilon) => {\n let t0, t1, t2, x2, d2, i\n\n for (t2 = x, i = 0; i < 8; i++) {\n x2 = sampleCurveX(t2) - x\n\n if (fabs(x2) < epsilon) {\n return t2\n }\n\n d2 = sampleCurveDerivativeX(t2)\n\n if (fabs(d2) < 1e-6) {\n break\n }\n\n t2 = t2 - x2 / d2\n }\n\n t0 = 0\n t1 = 1\n t2 = x\n\n if (t2 < t0) {\n return t0\n }\n\n if (t2 > t1) {\n return t1\n }\n\n while (t0 < t1) {\n x2 = sampleCurveX(t2)\n\n if (fabs(x2 - x) < epsilon) {\n return t2\n }\n\n if (x > x2) {\n t0 = t2\n } else {\n t1 = t2\n }\n\n t2 = (t1 - t0) * 0.5 + t0\n }\n\n return t2 // Failure.\n }\n\n const solve = (x, epsilon) => sampleCurveY(solveCurveX(x, epsilon))\n\n cx = 3 * p1x\n bx = 3 * (p2x - p1x) - cx\n ax = 1 - cx - bx\n cy = 3 * p1y\n by = 3 * (p2y - p1y) - cy\n ay = 1 - cy - by\n\n return solve(t, solveEpsilon(duration))\n}\n// End ported code\n\n/**\n * GetCubicBezierTransition(x1, y1, x2, y2) -> Function.\n *\n * Generates a transition easing function that is compatible\n * with WebKit's CSS transitions `-webkit-transition-timing-function`\n * CSS property.\n *\n * The W3C has more information about CSS3 transition timing functions:\n * http://www.w3.org/TR/css3-transitions/#transition-timing-function_tag\n *\n * @param {number} [x1]\n * @param {number} [y1]\n * @param {number} [x2]\n * @param {number} [y2]\n * @return {Function}\n */\nexport const getCubicBezierTransition = (\n x1 = 0.25,\n y1 = 0.25,\n x2 = 0.75,\n y2 = 0.75\n) => pos => cubicBezierAtTime(pos, x1, y1, x2, y2, 1)\n\n/**\n * Create a Bezier easing function and attach it to {@link\n * Tweenable.formulas}. This function gives you total control over the\n * easing curve. Matthew Lein's [Ceaser](http://matthewlein.com/ceaser/) is a\n * useful tool for visualizing the curves you can make with this function.\n * @method shifty.setBezierFunction\n * @param {string} name The name of the easing curve. Overwrites the old\n * easing function on {@link Tweenable.formulas} if it exists.\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @return {shifty.easingFunction} The {@link shifty.easingFunction} that was\n * attached to {@link Tweenable.formulas}.\n */\nexport const setBezierFunction = (name, x1, y1, x2, y2) => {\n const cubicBezierTransition = getCubicBezierTransition(x1, y1, x2, y2)\n\n cubicBezierTransition.displayName = name\n cubicBezierTransition.x1 = x1\n cubicBezierTransition.y1 = y1\n cubicBezierTransition.x2 = x2\n cubicBezierTransition.y2 = y2\n\n return (Tweenable.formulas[name] = cubicBezierTransition)\n}\n\n/**\n * `delete` an easing function from {@link Tweenable.formulas}. Be\n * careful with this method, as it `delete`s whatever easing formula matches\n * `name` (which means you can delete standard Shifty easing functions).\n * @method shifty.unsetBezierFunction\n * @param {string} name The name of the easing function to delete.\n * @return {boolean} Whether or not the functions was `delete`d.\n */\nexport const unsetBezierFunction = name => delete Tweenable.formulas[name]\n","import * as easingFunctions from './easing-functions'\nimport { getCubicBezierTransition } from './bezier'\n/** @typedef {import(\"./index\").shifty.filter} shifty.filter */\n/** @typedef {import(\"./index\").shifty.tweenConfig} shifty.tweenConfig */\n/** @typedef {import(\"./index\").shifty.scheduleFunction} shifty.scheduleFunction */\n\n// CONSTANTS\nconst DEFAULT_EASING = 'linear'\nconst DEFAULT_DURATION = 500\nconst UPDATE_TIME = 1000 / 60\nconst root = typeof window !== 'undefined' ? window : global\n\nconst AFTER_TWEEN = 'afterTween'\nconst AFTER_TWEEN_END = 'afterTweenEnd'\nconst BEFORE_TWEEN = 'beforeTween'\nconst TWEEN_CREATED = 'tweenCreated'\nconst TYPE_FUNCTION = 'function'\nconst TYPE_STRING = 'string'\n\n// requestAnimationFrame() shim by Paul Irish (modified for Shifty)\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\nlet scheduleFunction =\n root.requestAnimationFrame ||\n root.webkitRequestAnimationFrame ||\n root.oRequestAnimationFrame ||\n root.msRequestAnimationFrame ||\n (root.mozCancelRequestAnimationFrame && root.mozRequestAnimationFrame) ||\n setTimeout\n\nconst noop = () => {}\n\nlet listHead = null\nlet listTail = null\n\n/**\n * Strictly for testing.\n * @private\n * @internal\n */\nexport const resetList = () => {\n listHead = listTail = null\n}\n\n/**\n * Strictly for testing.\n * @returns {Tweenable}\n * @private\n * @internal\n */\nexport const getListHead = () => listHead\n\n/**\n * Strictly for testing.\n * @returns {Tweenable}\n * @private\n * @internal\n */\nexport const getListTail = () => listTail\n\nconst formulas = { ...easingFunctions }\n\n/**\n * Calculates the interpolated tween values of an Object for a given\n * timestamp.\n * @param {number} forPosition The position to compute the state for.\n * @param {Object} currentState Current state properties.\n * @param {Object} originalState: The original state properties the Object is\n * tweening from.\n * @param {Object} targetState: The destination state properties the Object\n * is tweening to.\n * @param {number} duration: The length of the tween in milliseconds.\n * @param {number} timestamp: The UNIX epoch time at which the tween began.\n * @param {Record<string, string|Function>} easing: This Object's keys must correspond\n * to the keys in targetState.\n * @returns {Object}\n * @private\n */\nexport const tweenProps = (\n forPosition,\n currentState,\n originalState,\n targetState,\n duration,\n timestamp,\n easing\n) => {\n let easedPosition\n let easingObjectProp\n let start\n\n const normalizedPosition =\n forPosition < timestamp ? 0 : (forPosition - timestamp) / duration\n\n let easingFn = null\n let hasOneEase = false\n\n if (easing && easing.call) {\n hasOneEase = true\n easedPosition = easing(normalizedPosition)\n }\n\n for (const key in currentState) {\n if (!hasOneEase) {\n easingObjectProp = easing[key]\n easingFn = easingObjectProp.call\n ? easingObjectProp\n : formulas[easingObjectProp]\n\n easedPosition = easingFn(normalizedPosition)\n }\n\n start = originalState[key]\n\n currentState[key] = start + (targetState[key] - start) * easedPosition\n }\n\n return currentState\n}\n\nconst processTween = (tween, currentTime) => {\n let timestamp = tween._timestamp\n const currentState = tween._currentState\n const delay = tween._delay\n\n if (currentTime < timestamp + delay) {\n return\n }\n\n let duration = tween._duration\n const targetState = tween._targetState\n\n const endTime = timestamp + delay + duration\n let timeToCompute = currentTime > endTime ? endTime : currentTime\n tween._hasEnded = timeToCompute >= endTime\n const offset = duration - (endTime - timeToCompute)\n const hasFilters = tween._filters.length > 0\n\n if (tween._hasEnded) {\n tween._render(targetState, tween._data, offset)\n return tween.stop(true)\n }\n\n if (hasFilters) {\n tween._applyFilter(BEFORE_TWEEN)\n }\n\n // If the animation has not yet reached the start point (e.g., there was\n // delay that has not yet completed), just interpolate the starting\n // position of the tween.\n if (timeToCompute < timestamp + delay) {\n timestamp = duration = timeToCompute = 1\n } else {\n timestamp += delay\n }\n\n tweenProps(\n timeToCompute,\n currentState,\n tween._originalState,\n targetState,\n duration,\n timestamp,\n tween._easing\n )\n\n if (hasFilters) {\n tween._applyFilter(AFTER_TWEEN)\n }\n\n tween._render(currentState, tween._data, offset)\n}\n\n/**\n * Process all tweens currently managed by Shifty for the current tick. This\n * does not perform any timing or update scheduling; it is the logic that is\n * run *by* the scheduling functionality. Specifically, it computes the state\n * and calls all of the relevant {@link shifty.tweenConfig} functions supplied\n * to each of the tweens for the current point in time (as determined by {@link\n * Tweenable.now}.\n *\n * This is a low-level API that won't be needed in the majority of situations.\n * It is primarily useful as a hook for higher-level animation systems that are\n * built on top of Shifty. If you need this function, it is likely you need to\n * pass something like `() => {}` to {@link\n * Tweenable.setScheduleFunction}, override {@link Tweenable.now}\n * and manage the scheduling logic yourself.\n *\n * @method shifty.processTweens\n * @see https://github.com/jeremyckahn/shifty/issues/109\n */\nexport const processTweens = () => {\n let nextTweenToProcess\n\n const currentTime = Tweenable.now()\n let currentTween = listHead\n\n while (currentTween) {\n nextTweenToProcess = currentTween._next\n processTween(currentTween, currentTime)\n currentTween = nextTweenToProcess\n }\n}\n\nconst getCurrentTime = Date.now || (() => +new Date())\nlet now\nlet heartbeatIsRunning = false\n\n/**\n * Determines whether or not a heartbeat tick should be scheduled. This is\n * generally only useful for testing environments where Shifty's continuous\n * heartbeat mechanism causes test runner issues.\n *\n * If you are using Jest, you'll want to put this in a global `afterAll` hook.\n * If you don't already have a Jest setup file, follow the setup in [this\n * StackOverflow post](https://stackoverflow.com/a/57647146), and then add this\n * to it:\n *\n * ```\n * import { shouldScheduleUpdate } from 'shifty'\n *\n * afterAll(() => {\n * shouldScheduleUpdate(false)\n * })\n * ```\n *\n * @method shifty.shouldScheduleUpdate\n * @param {boolean} doScheduleUpdate\n * @see https://github.com/jeremyckahn/shifty/issues/156\n */\nexport const shouldScheduleUpdate = doScheduleUpdate => {\n if (doScheduleUpdate && heartbeatIsRunning) {\n return\n }\n\n heartbeatIsRunning = doScheduleUpdate\n\n if (doScheduleUpdate) {\n scheduleUpdate()\n }\n}\n\n/**\n * Handles the update logic for one tick of a tween.\n * @private\n */\nexport const scheduleUpdate = () => {\n now = getCurrentTime()\n\n if (heartbeatIsRunning) {\n scheduleFunction.call(root, scheduleUpdate, UPDATE_TIME)\n }\n\n processTweens()\n}\n\n/**\n * Creates a usable easing Object from a string, a function or another easing\n * Object. If `easing` is an Object, then this function clones it and fills\n * in the missing properties with `\"linear\"`.\n *\n * If the tween has only one easing across all properties, that function is\n * returned directly.\n * @param {Record<string, string|Function>} fromTweenParams\n * @param {Object|string|Function|Array.<number>} [easing]\n * @param {Object} [composedEasing] Reused composedEasing object (used internally)\n * @return {Record<string, string|Function>|Function}\n * @private\n */\nexport const composeEasingObject = (\n fromTweenParams,\n easing = DEFAULT_EASING,\n composedEasing = {}\n) => {\n if (Array.isArray(easing)) {\n const cubicBezierTransition = getCubicBezierTransition(...easing)\n\n return cubicBezierTransition\n }\n\n let typeofEasing = typeof easing\n\n if (formulas[easing]) {\n return formulas[easing]\n }\n\n if (typeofEasing === TYPE_STRING || typeofEasing === TYPE_FUNCTION) {\n for (const prop in fromTweenParams) {\n composedEasing[prop] = easing\n }\n } else {\n for (const prop in fromTweenParams) {\n composedEasing[prop] = easing[prop] || DEFAULT_EASING\n }\n }\n\n return composedEasing\n}\n\n// Private declarations used below\n\nconst remove = ((previousTween, nextTween) => tween => {\n // Adapted from:\n // https://github.com/trekhleb/javascript-algorithms/blob/7c9601df3e8ca4206d419ce50b88bd13ff39deb6/src/data-structures/doubly-linked-list/DoublyLinkedList.js#L73-L121\n if (tween === listHead) {\n listHead = tween._next\n\n if (listHead) {\n listHead._previous = null\n } else {\n listTail = null\n }\n } else if (tween === listTail) {\n listTail = tween._previous\n\n if (listTail) {\n listTail._next = null\n } else {\n listHead = null\n }\n } else {\n previousTween = tween._previous\n nextTween = tween._next\n\n previousTween._next = nextTween\n nextTween._previous = previousTween\n }\n\n // Clean up any references in case the tween is restarted later.\n tween._previous = tween._next = null\n})()\n\nconst defaultPromiseCtor = typeof Promise === 'function' ? Promise : null\n/**\n * @class\n * @implements {Promise<unknown>}\n */\nexport class Tweenable {\n //required for Promise implementation\n [Symbol.toStringTag] = 'Promise'\n /**\n * @method Tweenable.now\n * @static\n * @returns {number} The current timestamp.\n */\n static now = () => now\n\n /**\n * Set a custom schedule function.\n *\n * By default,\n * [`requestAnimationFrame`](https://developer.mozilla.org/en-US/docs/Web/API/window.requestAnimationFrame)\n * is used if available, otherwise\n * [`setTimeout`](https://developer.mozilla.org/en-US/docs/Web/API/Window.setTimeout)\n * is used.\n * @method Tweenable.setScheduleFunction\n * @param {shifty.scheduleFunction} fn The function to be\n * used to schedule the next frame to be rendered.\n * @return {shifty.scheduleFunction} The function that was set.\n */\n static setScheduleFunction = fn => (scheduleFunction = fn)\n\n /**\n * The {@link shifty.filter}s available for use. These filters are\n * automatically applied at tween-time by Shifty. You can define your own\n * {@link shifty.filter}s and attach them to this object.\n * @member Tweenable.filters\n * @type {Record<string, shifty.filter>}\n */\n static filters = {}\n\n static formulas = formulas\n\n /**\n * @param {Object} [initialState={}] The values that the initial tween should\n * start at if a `from` value is not provided to {@link\n * Tweenable#tween} or {@link Tweenable#setConfig}.\n * @param {shifty.tweenConfig} [config] Configuration object to be passed to\n * {@link Tweenable#setConfig}.\n * @constructs Tweenable\n * @memberof shifty\n */\n constructor(initialState = {}, config = undefined) {\n /** @private */\n this._config = {}\n /** @private */\n this._data = {}\n /** @private */\n this._delay = 0\n /** @private */\n this._filters = []\n /** @private */\n this._next = null\n /** @private */\n this._previous = null\n /** @private */\n this._timestamp = null\n /** @private */\n this._hasEnded = false\n /** @private */\n this._resolve = null\n /** @private */\n this._reject = null\n /** @private */\n this._currentState = initialState || {}\n /** @private */\n this._originalState = {}\n /** @private */\n this._targetState = {}\n /** @private */\n this._start = noop\n /** @private */\n this._render = noop\n /** @private */\n this._promiseCtor = defaultPromiseCtor\n\n // To prevent unnecessary calls to setConfig do not set default\n // configuration here. Only set default configuration immediately before\n // tweening if none has been set.\n if (config) {\n this.setConfig(config)\n }\n }\n\n /**\n * Applies a filter to Tweenable instance.\n * @param {string} filterName The name of the filter to apply.\n * @private\n */\n _applyFilter(filterName) {\n for (let i = this._filters.length; i > 0; i--) {\n const filterType = this._filters[i - i]\n const filter = filterType[filterName]\n\n if (filter) {\n filter(this)\n }\n }\n }\n\n /**\n * Configure and start a tween. If this {@link Tweenable}'s instance\n * is already running, then it will stop playing the old tween and\n * immediately play the new one.\n * @method Tweenable#tween\n * @param {shifty.tweenConfig} [config] Gets passed to {@link\n * Tweenable#setConfig}.\n * @return {Tweenable}\n */\n tween(config = undefined) {\n if (this._isPlaying) {\n this.stop()\n }\n\n if (config || !this._config) {\n this.setConfig(config)\n }\n\n /** @private */\n this._pausedAtTime = null\n this._timestamp = Tweenable.now()\n this._start(this.get(), this._data)\n\n if (this._delay) {\n this._render(this._currentState, this._data, 0)\n }\n\n return this._resume(this._timestamp)\n }\n\n /**\n * Configure a tween that will start at some point in the future. Aside from\n * `delay`, `from`, and `to`, each configuration option will automatically\n * default to the same option used in the preceding tween of this {@link\n * Tweenable} instance.\n * @method Tweenable#setConfig\n * @param {shifty.tweenConfig} [config={}]\n * @return {Tweenable}\n */\n setConfig(config = {}) {\n const { _config } = this\n\n for (const key in config) {\n _config[key] = config[key]\n }\n\n // Configuration options to reuse from previous tweens\n const {\n promise = this._promiseCtor,\n start = noop,\n finish,\n render = this._config.step || noop,\n\n // Legacy option. Superseded by `render`.\n step = noop,\n } = _config\n\n // Attach something to this Tweenable instance (e.g.: a DOM element, an\n // object, a string, etc.);\n this._data = _config.data || _config.attachment || this._data\n\n // Init the internal state\n /** @private */\n this._isPlaying = false\n /** @private */\n this._pausedAtTime = null\n /** @private */\n this._scheduleId = null\n /** @private */\n this._delay = config.delay || 0\n /** @private */\n this._start = start\n /** @private */\n this._render = render || step\n /** @private */\n this._duration = _config.duration || DEFAULT_DURATION\n /** @private */\n this._promiseCtor = promise\n\n if (finish) {\n this._resolve = finish\n }\n\n const { from, to = {} } = config\n const { _currentState, _originalState, _targetState } = this\n\n for (const key in from) {\n _currentState[key] = from[key]\n }\n\n let anyPropsAreStrings = false\n\n for (const key in _currentState) {\n const currentProp = _currentState[key]\n\n if (!anyPropsAreStrings && typeof currentProp === TYPE_STRING) {\n anyPropsAreStrings = true\n }\n\n _originalState[key] = currentProp\n\n // Ensure that there is always something to tween to.\n _targetState[key] = to.hasOwnProperty(key) ? to[key] : currentProp\n }\n\n /** @private */\n this._easing = composeEasingObject(\n this._currentState,\n _config.easing,\n this._easing\n )\n\n this._filters.length = 0\n\n if (anyPropsAreStrings) {\n for (const key in Tweenable.filters) {\n if (Tweenable.filters[key].doesApply(this)) {\n this._filters.push(Tweenable.filters[key])\n }\n }\n\n this._applyFilter(TWEEN_CREATED)\n }\n\n return this\n }\n\n /**\n * Overrides any `finish` function passed via a {@link shifty.tweenConfig}.\n * @method Tweenable#then\n * @param {function=} onFulfilled Receives {@link shifty.promisedData} as the\n * first parameter.\n * @param {function=} onRejected Receives {@link shifty.promisedData} as the\n * first parameter.\n * @return {Promise<Object>}\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then\n */\n then(onFulfilled, onRejected) {\n /** @private */\n this._promise = new this._promiseCtor((resolve, reject) => {\n this._resolve = resolve\n this._reject = reject\n })\n\n return this._promise.then(onFulfilled, onRejected)\n }\n\n /**\n * @method Tweenable#catch\n * @param {function} onRejected Receives {@link shifty.promisedData} as the\n * first parameter.\n * @return {Promise<Object>}\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch\n */\n catch(onRejected) {\n return this.then().catch(onRejected)\n }\n /**\n * @method Tweenable#finally\n * @param {function} onFinally\n * @return {Promise<undefined>}\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally\n */\n finally(onFinally) {\n return this.then().finally(onFinally)\n }\n\n /**\n * @method Tweenable#get\n * @return {Object} The current state.\n */\n get() {\n return { ...this._currentState }\n }\n\n /**\n * Set the current state.\n * @method Tweenable#set\n * @param {Object} state The state to set.\n */\n set(state) {\n this._currentState = state\n }\n\n /**\n * Pause a tween. Paused tweens can be resumed from the point at which they\n * were paused. If a tween is not running, this is a no-op.\n * @method Tweenable#pause\n * @return {Tweenable}\n */\n pause() {\n if (!this._isPlaying) {\n return\n }\n\n this._pausedAtTime = Tweenable.now()\n this._isPlaying = false\n remove(this)\n\n return this\n }\n\n /**\n * Resume a paused tween.\n * @method Tweenable#resume\n * @return {Tweenable}\n */\n resume() {\n return this._resume()\n }\n\n /**\n * @private\n * @param {number} currentTime\n * @returns {Tweenable}\n */\n _resume(currentTime = Tweenable.now()) {\n if (this._timestamp === null) {\n return this.tween()\n }\n\n if (this._isPlaying) {\n return this._promise\n }\n\n if (this._pausedAtTime) {\n this._timestamp += currentTime - this._pausedAtTime\n this._pausedAtTime = null\n }\n\n this._isPlaying = true\n\n if (listHead === null) {\n listHead = this\n listTail = this\n } else {\n this._previous = listTail\n listTail._next = this\n\n listTail = this\n }\n\n return this\n }\n\n /**\n * Move the state of the animation to a specific point in the tween's\n * timeline. If the animation is not running, this will cause {@link\n * shifty.renderFunction} handlers to be called.\n * @method Tweenable#seek\n * @param {number} millisecond The millisecond of the animation to seek\n * to. This must not be less than `0`.\n * @return {Tweenable}\n */\n seek(millisecond) {\n millisecond = Math.max(millisecond, 0)\n const currentTime = Tweenable.now()\n\n if (this._timestamp + millisecond === 0) {\n return this\n }\n\n this._timestamp = currentTime - millisecond\n\n // Make sure that any render handlers are run.\n processTween(this, currentTime)\n\n return this\n }\n\n /**\n * Stops a tween. If a tween is not running, this is a no-op. This method\n * does not cancel the tween {@link external:Promise}. For that, use {@link\n * Tweenable#cancel}.\n * @param {boolean} [gotoEnd] If `false`, the tween just stops at its current\n * state. If `true`, the tweened object's values are instantly set to the\n * target values.\n * @method Tweenable#stop\n * @return {Tweenable}\n */\n stop(gotoEnd = false) {\n if (!this._isPlaying) {\n return this\n }\n\n this._isPlaying = false\n\n remove(this)\n\n const hasFilters = this._filters.length > 0\n\n if (gotoEnd) {\n if (hasFilters) {\n this._applyFilter(BEFORE_TWEEN)\n }\n\n tweenProps(\n 1,\n this._currentState,\n this._originalState,\n this._targetState,\n 1,\n 0,\n this._easing\n )\n\n if (hasFilters) {\n this._applyFilter(AFTER_TWEEN)\n this._applyFilter(AFTER_TWEEN_END)\n }\n }\n\n if (this._resolve) {\n this._resolve({\n data: this._data,\n state: this._currentState,\n tweenable: this,\n })\n }\n\n this._resolve = null\n this._reject = null\n\n return this\n }\n\n /**\n * {@link Tweenable#stop}s a tween and also `reject`s its {@link\n * external:Promise}. If a tween is not running, this is a no-op. Prevents\n * calling any provided `finish` function.\n * @param {boolean} [gotoEnd] Is propagated to {@link Tweenable#stop}.\n * @method Tweenable#cancel\n * @return {Tweenable}\n * @see https://github.com/jeremyckahn/shifty/issues/122\n */\n cancel(gotoEnd = false) {\n const { _currentState, _data, _isPlaying } = this\n\n if (!_isPlaying) {\n return this\n }\n\n if (this._reject) {\n this._reject({\n data: _data,\n state: _currentState,\n tweenable: this,\n })\n }\n\n this._resolve = null\n this._reject = null\n\n return this.stop(gotoEnd)\n }\n\n /**\n * Whether or not a tween is running.\n * @method Tweenable#isPlaying\n * @return {boolean}\n */\n isPlaying() {\n return this._isPlaying\n }\n\n /**\n * Whether or not a tween has finished running.\n * @method Tweenable#hasEnded\n * @return {boolean}\n */\n hasEnded() {\n return this._hasEnded\n }\n\n /**\n * @method Tweenable#setScheduleFunction\n * @param {shifty.scheduleFunction} scheduleFunction\n * @deprecated Will be removed in favor of {@link Tweenable.setScheduleFunction} in 3.0.\n */\n setScheduleFunction(scheduleFunction) {\n Tweenable.setScheduleFunction(scheduleFunction)\n }\n\n /**\n * Get and optionally set the data that gets passed as `data` to {@link\n * shifty.promisedData}, {@link shifty.startFunction} and {@link\n * shifty.renderFunction}.\n * @param {Object} [data]\n * @method Tweenable#data\n * @return {Object} The internally stored `data`.\n */\n data(data = null) {\n if (data) {\n this._data = { ...data }\n }\n\n return this._data\n }\n\n /**\n * `delete` all \"own\" properties. Call this when the {@link\n * Tweenable} instance is no longer needed to free memory.\n * @method Tweenable#dispose\n */\n dispose() {\n for (const prop in this) {\n delete this[prop]\n }\n }\n}\n\n/**\n * @method shifty.tween\n * @param {shifty.tweenConfig} [config={}]\n * @description Standalone convenience method that functions identically to\n * {@link Tweenable#tween}. You can use this to create tweens without\n * needing to set up a {@link Tweenable} instance.\n *\n * ```\n * import { tween } from 'shifty';\n *\n * tween({ from: { x: 0 }, to: { x: 10 } }).then(\n * () => console.log('All done!')\n * );\n * ```\n *\n * @returns {Tweenable} A new {@link Tweenable} instance.\n */\nexport function tween(config = {}) {\n const tweenable = new Tweenable()\n tweenable.tween(config)\n\n // This is strictly a legacy shim from when this function returned a Promise.\n // TODO: Remove this line in the next major version\n tweenable.tweenable = tweenable\n\n return tweenable\n}\n\nshouldScheduleUpdate(true)\n","/** @typedef {import(\"./tweenable\").Tweenable} Tweenable */\n\nconst R_NUMBER_COMPONENT = /(\\d|-|\\.)/\nconst R_FORMAT_CHUNKS = /([^\\-0-9.]+)/g\nconst R_UNFORMATTED_VALUES = /[0-9.-]+/g\nconst R_RGBA = (() => {\n const number = R_UNFORMATTED_VALUES.source\n const comma = /,\\s*/.source\n\n return new RegExp(\n `rgba?\\\\(${number}${comma}${number}${comma}${number}(${comma}${number})?\\\\)`,\n 'g'\n )\n})()\nconst R_RGBA_PREFIX = /^.*\\(/\nconst R_HEX = /#([0-9]|[a-f]){3,6}/gi\nconst VALUE_PLACEHOLDER = 'VAL'\n\n// HELPERS\n\n/**\n * @param {Array.number} rawValues\n * @param {string} prefix\n *\n * @return {Array.<string>}\n * @private\n */\nconst getFormatChunksFrom = (rawValues, prefix) =>\n rawValues.map((val, i) => `_${prefix}_${i}`)\n\n/**\n * @param {string} formattedString\n *\n * @return {string}\n * @private\n */\nconst getFormatStringFrom = formattedString => {\n let chunks = formattedString.match(R_FORMAT_CHUNKS)\n\n if (!chunks) {\n // chunks will be null if there were no tokens to parse in\n // formattedString (for example, if formattedString is '2'). Coerce\n // chunks to be useful here.\n chunks = ['', '']\n\n // If there is only one chunk, assume that the string is a number\n // followed by a token...\n // NOTE: This may be an unwise assumption.\n } else if (\n chunks.length === 1 ||\n // ...or if the string starts with a number component (\".\", \"-\", or a\n // digit)...\n formattedString.charAt(0).match(R_NUMBER_COMPONENT)\n ) {\n // ...prepend an empty string here to make sure that the formatted number\n // is properly replaced by VALUE_PLACEHOLDER\n chunks.unshift('')\n }\n\n return chunks.join(VALUE_PLACEHOLDER)\n}\n\n/**\n * Convert a base-16 number to base-10.\n *\n * @param {number|string} hex The value to convert.\n *\n * @returns {number} The base-10 equivalent of `hex`.\n * @private\n */\nfunction hexToDec(hex) {\n return parseInt(hex, 16)\n}\n\n/**\n * Convert a hexadecimal string to an array with three items, one each for\n * the red, blue, and green decimal values.\n *\n * @param {string} hex A hexadecimal string.\n *\n * @returns {Array.<number>} The converted Array of RGB values if `hex` is a\n * valid string, or an Array of three 0's.\n * @private\n */\nconst hexToRGBArray = hex => {\n hex = hex.replace(/#/, '')\n\n // If the string is a shorthand three digit hex notation, normalize it to\n // the standard six digit notation\n if (hex.length === 3) {\n hex = hex.split('')\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n\n return [\n hexToDec(hex.substr(0, 2)),\n hexToDec(hex.substr(2, 2)),\n hexToDec(hex.substr(4, 2)),\n ]\n}\n\n/**\n * @param {string} hexString\n *\n * @return {string}\n * @private\n */\nconst convertHexToRGB = hexString =>\n `rgb(${hexToRGBArray(hexString).join(',')})`\n\n/**\n * TODO: Can this be rewritten to leverage String#replace more efficiently?\n * Runs a filter operation on all chunks of a string that match a RegExp.\n *\n * @param {RegExp} pattern\n * @param {string} unfilteredString\n * @param {function(string)} filter\n *\n * @return {string}\n * @private\n */\nconst filterStringChunks = (pattern, unfilteredString, filter) => {\n const patternMatches = unfilteredString.match(pattern)\n let filteredString = unfilteredString.replace(pattern, VALUE_PLACEHOLDER)\n\n if (patternMatches) {\n patternMatches.forEach(\n match =>\n (filteredString = filteredString.replace(\n VALUE_PLACEHOLDER,\n filter(match)\n ))\n )\n }\n\n return filteredString\n}\n\n/**\n * @param {string} str\n *\n * @return {string}\n * @private\n */\nconst sanitizeHexChunksToRGB = str =>\n filterStringChunks(R_HEX, str, convertHexToRGB)\n\n/**\n * Convert all hex color values within a string to an rgb string.\n *\n * @param {Object} stateObject\n * @private\n */\nconst sanitizeObjectForHexProps = stateObject => {\n for (const prop in stateObject) {\n const currentProp = stateObject[prop]\n\n if (typeof currentProp === 'string' && currentProp.match(R_HEX)) {\n stateObject[prop] = sanitizeHexChunksToRGB(currentProp)\n }\n }\n}\n\n/**\n * @param {string} rgbChunk\n *\n * @return {string}\n * @private\n */\nconst sanitizeRGBAChunk = rgbChunk => {\n const rgbaRawValues = rgbChunk.match(R_UNFORMATTED_VALUES)\n const rgbNumbers = rgbaRawValues.slice(0, 3).map(Math.floor)\n const prefix = rgbChunk.match(R_RGBA_PREFIX)[0]\n\n if (rgbaRawValues.length === 3) {\n return `${prefix}${rgbNumbers.join(',')})`\n } else if (rgbaRawValues.length === 4) {\n return `${prefix}${rgbNumbers.join(',')},${rgbaRawValues[3]})`\n }\n\n throw new Error(`Invalid rgbChunk: ${rgbChunk}`)\n}\n\n/**\n * Check for floating point values within rgb strings and round them.\n *\n * @param {string} formattedString\n *\n * @return {string}\n * @private\n */\nconst sanitizeRGBChunks = formattedString =>\n filterStringChunks(R_RGBA, formattedString, sanitizeRGBAChunk)\n\n/**\n * Note: It's the duty of the caller to convert the Array elements of the\n * return value into numbers. This is a performance optimization.\n *\n * @param {string} formattedString\n *\n * @return {Array.<string>|null}\n * @private\n */\nconst getValuesFrom = formattedString =>\n formattedString.match(R_UNFORMATTED_VALUES)\n\n/**\n * @param {Object} stateObject\n *\n * @return {Object} An Object of formatSignatures that correspond to\n * the string properties of stateObject.\n * @private\n */\nconst getFormatSignatures = stateObject => {\n const signatures = {}\n\n for (const propertyName in stateObject) {\n const property = stateObject[propertyName]\n\n if (typeof property === 'string') {\n signatures[propertyName] = {\n formatString: getFormatStringFrom(property),\n chunkNames: getFormatChunksFrom(getValuesFrom(property), propertyName),\n }\n }\n }\n\n return signatures\n}\n\n/**\n * @param {Object} stateObject\n * @param {Object} formatSignatures\n * @private\n */\nconst expandFormattedProperties = (stateObject, formatSignatures) => {\n for (const propertyName in formatSignatures) {\n getValuesFrom(stateObject[propertyName]).forEach(\n (number, i) =>\n (stateObject[formatSignatures[propertyName].chunkNames[i]] = +number)\n )\n\n delete stateObject[propertyName]\n }\n}\n\n/**\n * @param {Object} stateObject\n * @param {Array.<string>} chunkNames\n *\n * @return {Object} The extracted value chunks.\n * @private\n */\nconst extractPropertyChunks = (stateObject, chunkNames) => {\n const extractedValues = {}\n\n chunkNames.forEach(chunkName => {\n extractedValues[chunkName] = stateObject[chunkName]\n delete stateObject[chunkName]\n })\n\n return extractedValues\n}\n\n/**\n * @param {Object} stateObject\n * @param {Array.<string>} chunkNames\n *\n * @return {Array.<number>}\n * @private\n */\nconst getValuesList = (stateObject, chunkNames) =>\n chunkNames.map(chunkName => stateObject[chunkName])\n\n/**\n * @param {string} formatString\n * @param {Array.<number>} rawValues\n *\n * @return {string}\n * @private\n */\nconst getFormattedValues = (formatString, rawValues) => {\n rawValues.forEach(\n rawValue =>\n (formatString = formatString.replace(\n VALUE_PLACEHOLDER,\n +rawValue.toFixed(4)\n ))\n )\n\n return formatString\n}\n\n/**\n * @param {Object} stateObject\n * @param {Object} formatSignatures\n * @private\n */\nconst collapseFormattedProperties = (stateObject, formatSignatures) => {\n for (const prop in formatSignatures) {\n const { chunkNames, formatString } = formatSignatures[prop]\n\n const currentProp = getFormattedValues(\n formatString,\n getValuesList(extractPropertyChunks(stateObject, chunkNames), chunkNames)\n )\n\n stateObject[prop] = sanitizeRGBChunks(currentProp)\n }\n}\n\n/**\n * @param {Object} easingObject\n * @param {Object} tokenData\n * @private\n */\nconst expandEasingObject = (easingObject, tokenData) => {\n for (const prop in tokenData) {\n const { chunkNames } = tokenData[prop]\n const easing = easingObject[prop]\n\n if (typeof easing === 'string') {\n const easingNames = easing.split(' ')\n const defaultEasing = easingNames[easingNames.length - 1]\n\n chunkNames.forEach(\n (chunkName, i) =>\n (easingObject[chunkName] = easingNames[i] || defaultEasing)\n )\n } else {\n // easing is a function\n chunkNames.forEach(chunkName => (easingObject[chunkName] = easing))\n }\n\n delete easingObject[prop]\n }\n}\n\n/**\n * @param {Object} easingObject\n * @param {Object} tokenData\n * @private\n */\nconst collapseEasingObject = (easingObject, tokenData) => {\n for (const prop in tokenData) {\n const { chunkNames } = tokenData[prop]\n const firstEasing = easingObject[chunkNames[0]]\n\n if (typeof firstEasing === 'string') {\n easingObject[prop] = chunkNames\n .map(chunkName => {\n const easingName = easingObject[chunkName]\n delete easingObject[chunkName]\n\n return easingName\n })\n .join(' ')\n } else {\n // firstEasing is a function\n easingObject[prop] = firstEasing\n }\n }\n}\n\n/**\n * @memberof Tweenable.filters.token\n * @param {Tweenable} tweenable\n * @returns {boolean}\n */\nexport const doesApply = tweenable => {\n for (const key in tweenable._currentState) {\n if (typeof tweenable._currentState[key] === 'string') {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @memberof Tweenable.filters.token\n * @param {Tweenable} tweenable\n */\nexport function tweenCreated(tweenable) {\n const { _currentState, _originalState, _targetState } = tweenable\n\n ;[_currentState, _originalState, _targetState].forEach(\n sanitizeObjectForHexProps\n )\n\n tweenable._tokenData = getFormatSignatures(_currentState)\n}\n\n/**\n * @memberof Tweenable.filters.token\n * @param {Tweenable} tweenable\n */\nexport function beforeTween(tweenable) {\n const {\n _currentState,\n _originalState,\n _targetState,\n _easing,\n _tokenData,\n } = tweenable\n\n expandEasingObject(_easing, _tokenData)\n ;[_currentState, _originalState, _targetState].forEach(state =>\n expandFormattedProperties(state, _tokenData)\n )\n}\n\n/**\n * @memberof Tweenable.filters.token\n * @param {Tweenable} tweenable\n */\nexport function afterTween(tweenable) {\n const {\n _currentState,\n _originalState,\n _targetState,\n _easing,\n _tokenData,\n } = tweenable\n ;[_currentState, _originalState, _targetState].forEach(state =>\n collapseFormattedProperties(state, _tokenData)\n )\n\n collapseEasingObject(_easing, _tokenData)\n}\n","import { Tweenable, composeEasingObject, tweenProps } from './tweenable'\n/** @typedef {import(\"./index\").shifty.easingFunction} shifty.easingFunction */\n\n// Fake a Tweenable and patch some internals. This approach allows us to\n// skip uneccessary processing and object recreation, cutting down on garbage\n// collection pauses.\nconst mockTweenable = new Tweenable()\nconst { filters } = Tweenable\n\n/**\n * Compute the midpoint of two Objects. This method effectively calculates a\n * specific frame of animation that {@link Tweenable#tween} does many times\n * over the course of a full tween.\n *\n * ```\n * import { interpolate } from 'shifty';\n *\n * const interpolatedValues = interpolate({\n * width: '100px',\n * opacity: 0,\n * color: '#fff'\n * }, {\n * width: '200px',\n * opacity: 1,\n * color: '#000'\n * },\n * 0.5\n * );\n *\n * console.log(interpolatedValues); // Logs: {opacity: 0.5, width: \"150px\", color: \"rgb(127,127,127)\"}\n * ```\n *\n * @method shifty.interpolate\n * @template T\n * @param {T} from The starting values to tween from.\n * @param {T} to The ending values to tween to.\n * @param {number} position The normalized position value (between `0.0` and\n * `1.0`) to interpolate the values between `from` and `to` for. `from`\n * represents `0` and `to` represents `1`.\n * @param {Record<string, string | shifty.easingFunction> | string | shifty.easingFunction} easing\n * The easing curve(s) to calculate the midpoint against. You can\n * reference any easing function attached to {@link Tweenable.formulas},\n * or provide the {@link shifty.easingFunction}(s) directly. If omitted, this\n * defaults to \"linear\".\n * @param {number} [delay=0] Optional delay to pad the beginning of the\n * interpolated tween with. This increases the range of `position` from (`0`\n * through `1`) to (`0` through `1 + delay`). So, a delay of `0.5` would\n * increase all valid values of `position` to numbers between `0` and `1.5`.\n * @return {T}\n */\nexport const interpolate = (from, to, position, easing, delay = 0) => {\n const current = { ...from }\n const easingObject = composeEasingObject(from, easing)\n\n mockTweenable._filters.length = 0\n\n mockTweenable.set({})\n mockTweenable._currentState = current\n mockTweenable._originalState = from\n mockTweenable._targetState = to\n mockTweenable._easing = easingObject\n\n for (const name in filters) {\n if (filters[name].doesApply(mockTweenable)) {\n mockTweenable._filters.push(filters[name])\n }\n }\n\n // Any defined value transformation must be applied\n mockTweenable._applyFilter('tweenCreated')\n mockTweenable._applyFilter('beforeTween')\n\n const interpolatedValues = tweenProps(\n position,\n current,\n from,\n to,\n 1,\n delay,\n easingObject\n )\n\n // Transform data in interpolatedValues back into its original format\n mockTweenable._applyFilter('afterTween')\n\n return interpolatedValues\n}\n","/** @typedef {import(\"./tweenable\").Tweenable} Tweenable */\n\nexport class Scene {\n #tweenables = []\n\n /**\n * The {@link Scene} class provides a way to control groups of {@link\n * Tweenable}s. It is lightweight, minimalistic, and meant to provide\n * performant {@link Tweenable} batch control that users of Shifty\n * might otherwise have to implement themselves. It is **not** a robust\n * timeline solution, and it does **not** provide utilities for sophisticated\n * animation sequencing or orchestration. If that is what you need for your\n * project, consider using a more robust tool such as\n * [Rekapi](http://jeremyckahn.github.io/rekapi/doc/) (a timeline layer built\n * on top of Shifty).\n *\n * Please be aware that {@link Scene} does **not** perform any\n * automatic cleanup. If you want to remove a {@link Tweenable} from a\n * {@link Scene}, you must do so explicitly with either {@link\n * Scene#remove} or {@link Scene#empty}.\n *\n * <p class=\"codepen\" data-height=\"677\" data-theme-id=\"0\" data-default-tab=\"js,result\" data-user=\"jeremyckahn\" data-slug-hash=\"qvZKbe\" style=\"height: 677px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid black; margin: 1em 0; padding: 1em;\" data-pen-title=\"Shifty Scene Demo\">\n * <span>See the Pen <a href=\"https://codepen.io/jeremyckahn/pen/qvZKbe/\">\n * Shifty Scene Demo</a> by Jeremy Kahn (<a href=\"https://codepen.io/jeremyckahn\">@jeremyckahn</a>)\n * on <a href=\"https://codepen.io\">CodePen</a>.</span>\n * </p>\n * <script async src=\"https://static.codepen.io/assets/embed/ei.js\"></script>\n * @param {...Tweenable} tweenables\n * @see https://codepen.io/jeremyckahn/pen/qvZKbe\n * @constructs Scene\n * @memberof shifty\n */\n constructor(...tweenables) {\n tweenables.forEach(this.add.bind(this))\n }\n\n /**\n * A copy of the internal {@link Tweenable}s array.\n * @member Scene#tweenables\n * @type {Array.<Tweenable>}\n */\n get tweenables() {\n return [...this.#tweenables]\n }\n\n /**\n * A list of {@link Tweenable}s in the scene that have not yet ended (playing\n * or not).\n * @member Scene#playingTweenables\n * @type {Array.<Tweenable>}\n */\n get playingTweenables() {\n return this.#tweenables.filter(tweenable => !tweenable.hasEnded())\n }\n\n /**\n * The {@link external:Promise}s for all {@link Tweenable}s in this\n * {@link Scene} that have been configured with {@link\n * Tweenable#setConfig}. Note that each call of {@link\n * Scene#play} or {@link Scene#pause} creates new {@link\n * external:Promise}s:\n *\n * const scene = new Scene(new Tweenable());\n * scene.play();\n *\n * Promise.all(scene.promises).then(() =>\n * // Plays the scene again upon completion, but a new promise is\n * // created so this line only runs once.\n * scene.play()\n * );\n *\n * @member Scene#promises\n * @type {Array.<Promise<any>>}\n */\n get promises() {\n return this.#tweenables.map(tweenable => tweenable.then())\n }\n\n /**\n * Add a {@link Tweenable} to be controlled by this {@link\n * Scene}.\n * @method Scene#add\n * @param {Tweenable} tweenable\n * @return {Tweenable} The {@link Tweenable} that was added.\n */\n add(tweenable) {\n this.#tweenables.push(tweenable)\n\n return tweenable\n }\n\n /**\n * Remove a {@link Tweenable} that is controlled by this {@link\n * Scene}.\n * @method Scene#remove\n * @param {Tweenable} tweenable\n * @return {Tweenable} The {@link Tweenable} that was removed.\n */\n remove(tweenable) {\n const index = this.#tweenables.indexOf(tweenable)\n\n if (~index) {\n this.#tweenables.splice(index, 1)\n }\n\n return tweenable\n }\n\n /**\n * [Remove]{@link Scene#remove} all {@link Tweenable}s in this {@link\n * Scene}.\n * @method Scene#empty\n * @return {Array.<Tweenable>} The {@link Tweenable}s that were\n * removed.\n */\n empty() {\n // Deliberate of the tweenables getter here to create a temporary array\n return this.tweenables.map(this.remove.bind(this))\n }\n\n /**\n * Is `true` if any {@link Tweenable} in this {@link Scene} is\n * playing.\n * @method Scene#isPlaying\n * @return {boolean}\n */\n isPlaying() {\n return this.#tweenables.some(tweenable => tweenable.isPlaying())\n }\n\n /**\n * Play all {@link Tweenable}s from their beginning.\n * @method Scene#play\n * @return {Scene}\n */\n play() {\n this.#tweenables.forEach(tweenable => tweenable.tween())\n\n return this\n }\n\n /**\n * {@link Tweenable#pause} all {@link Tweenable}s in this\n * {@link Scene}.\n * @method Scene#pause\n * @return {Scene}\n */\n pause() {\n this.#tweenables.forEach(tweenable => tweenable.pause())\n return this\n }\n\n /**\n * {@link Tweenable#resume} all paused {@link Tweenable}s.\n * @method Scene#resume\n * @return {Scene}\n */\n resume() {\n this.playingTweenables.forEach(tweenable => tweenable.resume())\n\n return this\n }\n\n /**\n * {@link Tweenable#stop} all {@link Tweenable}s in this {@link\n * Scene}.\n * @method Scene#stop\n * @param {boolean} [gotoEnd]\n * @return {Scene}\n */\n stop(gotoEnd) {\n this.#tweenables.forEach(tweenable => tweenable.stop(gotoEnd))\n return this\n }\n}\n","/**\n * @namespace shifty\n */\n\nimport {\n processTweens,\n shouldScheduleUpdate,\n Tweenable,\n tween,\n} from './tweenable'\nimport * as token from './token'\n\nTweenable.filters.token = token\n\nexport { processTweens, shouldScheduleUpdate, Tweenable, tween }\nexport { interpolate } from './interpolate'\nexport { Scene } from './scene'\nexport { setBezierFunction, unsetBezierFunction } from './bezier'\n\n/**\n * @external Promise\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise}\n */\n\n/**\n * @external thenable\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then}\n */\n\n/**\n * @callback shifty.easingFunction\n * @param {number} position The normalized (0-1) position of the tween.\n * @return {number} The curve-adjusted value.\n */\n\n/**\n * @callback shifty.startFunction\n * @param {Object} state The current state of the tween.\n * @param {Object|undefined} [data] User-defined data provided via a {@link\n * shifty.tweenConfig}.\n * @returns {void}\n */\n\n/**\n * @callback shifty.finishFunction\n * @param {shifty.promisedData} promisedData\n * @returns {void}\n */\n\n/**\n * Gets called for every tick of the tween. This function is not called on the\n * final tick of the animation.\n * @callback shifty.renderFunction\n * @param {Object} state The current state of the tween.\n * @param {Object|undefined} data User-defined data provided via a {@link\n * shifty.tweenConfig}.\n * @param {number} timeElapsed The time elapsed since the start of the tween.\n * @returns {void}\n */\n\n/**\n * @callback shifty.scheduleFunction\n * @param {Function} callback\n * @param {number} timeout\n * @returns {void}\n */\n\n/**\n * @typedef {Object} shifty.tweenConfig\n * @property {Object} [from] Starting position. If omitted, {@link\n * Tweenable#get} is used.\n * @property {Object} [to] Ending position. The keys of this Object should\n * match those of `to`.\n * @property {number} [duration] How many milliseconds to animate for.\n * @property {number} [delay] How many milliseconds to wait before starting the\n * tween.\n * @property {shifty.startFunction} [start] Executes when the tween begins.\n * @property {shifty.finishFunction} [finish] Executes when the tween\n * completes. This will get overridden by {@link Tweenable#then} if that\n * is called, and it will not fire if {@link Tweenable#cancel} is\n * called.\n * @property {shifty.renderFunction} [render] Executes on every tick. Shifty\n * assumes a [retained mode](https://en.wikipedia.org/wiki/Retained_mode)\n * rendering environment, which in practice means that `render` only gets\n * called when the tween state changes. Importantly, this means that `render`\n * is _not_ called when a tween is not animating (for instance, when it is\n * paused or waiting to start via the `delay` option). This works naturally\n * with DOM environments, but you may need to account for this design in more\n * custom environments such as `<canvas>`.\n *\n * Legacy property name: `step`.\n * @property {string|shifty.easingFunction|Object<string|shifty.easingFunction>|Array.<number>} [easing]\n * - `string`: Name of the {@link Tweenable.formulas} to apply to all\n * properties of the tween.\n * - {@link shifty.easingFunction}: A custom function that computes the rendered\n * position of the tween for the given normalized position of the tween.\n * - `Object`: Keys are tween property names. Values are the {@link\n * Tweenable.formulas} to be applied to each tween property, or a {@link\n * shifty.easingFunction}. Any tween properties not included in the `Object`\n * default to `'linear'`.\n * - `Array.<number>`: The array must contain four `number` values that\n * correspond to the `[x1, y1, x2, y2]` values of a [Bezier\n * curve](https://cubic-bezier.com/).\n *\n * You can learn more about this in the {@tutorial\n * easing-function-in-depth} tutorial.\n * @property {Object} [data] Data that is passed to {@link\n * shifty.startFunction}, {@link shifty.renderFunction}, and {@link\n * shifty.promisedData}. Legacy property name: `attachment`.\n * @property {Function} [promise] Promise constructor for when you want\n * to use Promise library or polyfill Promises in unsupported environments.\n */\n\n/**\n * @typedef {Object} shifty.promisedData\n * @property {Object} state The current state of the tween.\n * @property {Object} data The `data` Object that the tween was configured with.\n * @property {Tweenable} tweenable The {@link Tweenable} instance to\n * which the tween belonged.\n */\n\n/**\n * Is called when a tween is created to determine if a filter is needed.\n * Filters are only added to a tween when it is created so that they are not\n * unnecessarily processed if they don't apply during an update tick.\n * @callback shifty.doesApplyFilter\n * @param {Tweenable} tweenable The {@link Tweenable} instance.\n * @return {boolean}\n */\n\n/**\n * Is called when a tween is created. This should perform any setup needed by\n * subsequent per-tick calls to {@link shifty.beforeTween} and {@link\n * shifty.afterTween}.\n * @callback shifty.tweenCreatedFilter\n * @param {Tweenable} tweenable The {@link Tweenable} instance.\n * @returns {void}\n */\n\n/**\n * Is called right before a tween is processed in a tick.\n * @callback shifty.beforeTweenFilter\n * @param {Tweenable} tweenable The {@link Tweenable} instance.\n * @returns {void}\n */\n\n/**\n * Is called right after a tween is processed in a tick.\n * @callback shifty.afterTweenFilter\n * @param {Tweenable} tweenable The {@link Tweenable} instance.\n * @returns {void}\n */\n\n/**\n * An Object that contains functions that are called at key points in a tween's\n * lifecycle. Shifty can only process `Number`s internally, but filters can\n * expand support for any type of data. This is the mechanism that powers\n * [string interpolation]{@tutorial string-interpolation}.\n * @typedef {Object} shifty.filter\n * @property {shifty.doesApplyFilter} doesApply Is called when a tween is\n * created.\n * @property {shifty.tweenCreatedFilter} tweenCreated Is called when a tween is\n * created.\n * @property {shifty.beforeTweenFilter} beforeTween Is called right before a\n * tween starts.\n * @property {shifty.afterTweenFilter} afterTween Is called right after a tween\n * ends.\n */\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(720);\n","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let currentTweenTime=0;gdjs.registerRuntimeSceneUnloadedCallback(function(n){const e=n.shiftyJsScene;e&&(e.stop(!1),e.empty())}),gdjs.registerRuntimeScenePausedCallback(function(n){const e=n.shiftyJsScene;e&&e.pause()}),gdjs.registerRuntimeSceneResumedCallback(function(n){const e=n.shiftyJsScene;e&&(currentTweenTime=n.getTimeManager().getTimeFromStart(),e.resume())}),gdjs.registerRuntimeScenePreEventsCallback(function(n){currentTweenTime=n.getTimeManager().getTimeFromStart(),shifty.processTweens()}),shifty.Tweenable.setScheduleFunction(function(){}),shifty.Tweenable.now=function(){return currentTweenTime};
|
|
2
|
+
//# sourceMappingURL=shifty_setup.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../GDevelop/Extensions/TweenBehavior/shifty_setup.ts"],
|
|
4
|
+
"sourcesContent": ["// Callbacks called to pause/resume Shifty scene when a gdjs.RuntimeScene\n// is paused/resumed\nnamespace gdjs {\n export interface RuntimeScene {\n shiftyJsScene: shifty.Scene;\n }\n}\n\nlet currentTweenTime: number = 0;\n\n/**\n * Stop and \"destroy\" all the tweens when a scene is unloaded.\n */\ngdjs.registerRuntimeSceneUnloadedCallback(function (runtimeScene) {\n const shiftyJsScene = runtimeScene.shiftyJsScene;\n if (!shiftyJsScene) return;\n\n // Stop and explicitly remove all tweenables to be sure to drop\n // all references to the tweenables of the scene.\n shiftyJsScene.stop(false);\n shiftyJsScene.empty();\n});\n\n/**\n * When a scene is paused, pause all the tweens of this scene.\n */\ngdjs.registerRuntimeScenePausedCallback(function (runtimeScene) {\n const shiftyJsScene = runtimeScene.shiftyJsScene;\n if (shiftyJsScene) shiftyJsScene.pause();\n});\n\n/**\n * When a scene is paused, resume all the tweens of this scene.\n */\ngdjs.registerRuntimeSceneResumedCallback(function (runtimeScene) {\n const shiftyJsScene = runtimeScene.shiftyJsScene;\n if (!shiftyJsScene) return;\n\n // It is important to set immediately the current Shifty time back to the\n // time of the scene, as the call `resume` will process the tweens.\n // (If not done, tweens will be resumed with the time of the previous\n // scene, that could create weird result/make tweens act as if not paused).\n currentTweenTime = runtimeScene.getTimeManager().getTimeFromStart();\n\n // Note that per the invariant of shiftyJsScene, shiftyJsScene will only\n // contains tweenables that should be playing (so calling resume is safe).\n shiftyJsScene.resume();\n});\n\n// Handle Shifty.js updates (the time and the \"tick\" of tweens\n// is controlled by the behavior)\ngdjs.registerRuntimeScenePreEventsCallback(function (runtimeScene) {\n currentTweenTime = runtimeScene.getTimeManager().getTimeFromStart();\n shifty.processTweens();\n});\n\n// Set up Shifty.js so that the processing (\"tick\"/updates) is handled\n// by the behavior, once per frame. See above.\nshifty.Tweenable.setScheduleFunction(function () {\n /* Do nothing, we'll call processTweens manually. */\n});\n\n// Set up Shifty.js so that the time is handled by the behavior.\n// It will be set to be the time of the current scene, and should be updated\n// before any tween processing (processTweens, resume).\nshifty.Tweenable.now = function () {\n return currentTweenTime;\n};\n"],
|
|
5
|
+
"mappings": "AAQA,IAAI,iBAA2B,EAK/B,KAAK,qCAAqC,SAAUA,EAAc,CAChE,MAAMC,EAAgBD,EAAa,cAC9BC,IAILA,EAAc,KAAK,EAAK,EACxBA,EAAc,MAAM,EACtB,CAAC,EAKD,KAAK,mCAAmC,SAAUD,EAAc,CAC9D,MAAMC,EAAgBD,EAAa,cAC/BC,GAAeA,EAAc,MAAM,CACzC,CAAC,EAKD,KAAK,oCAAoC,SAAUD,EAAc,CAC/D,MAAMC,EAAgBD,EAAa,cAC9BC,IAML,iBAAmBD,EAAa,eAAe,EAAE,iBAAiB,EAIlEC,EAAc,OAAO,EACvB,CAAC,EAID,KAAK,sCAAsC,SAAUD,EAAc,CACjE,iBAAmBA,EAAa,eAAe,EAAE,iBAAiB,EAClE,OAAO,cAAc,CACvB,CAAC,EAID,OAAO,UAAU,oBAAoB,UAAY,CAEjD,CAAC,EAKD,OAAO,UAAU,IAAM,UAAY,CACjC,OAAO,gBACT",
|
|
6
|
+
"names": ["runtimeScene", "shiftyJsScene"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var gdjs;(u=>{function f(a){return a.setScaleX&&a.setScaleY&&a.getScaleX&&a.getScaleY}function v(a){return a.setOpacity&&a.getOpacity}function p(a){return a.setColor&&a.getColor}function F(a){return a.setCharacterSize&&a.getCharacterSize}function T(a,e,t){a/=255,e/=255,t/=255;let n=Math.max(a,e,t),s=n-Math.min(a,e,t),r=1-Math.abs(n+n-s-1),i=s&&(n===a?(e-t)/s:n===e?2+(t-a)/s:4+(a-e)/s);return[Math.round(60*(i<0?i+6:i)),Math.round((r?s/r:0)*100),Math.round((n+n-s)/2*100)]}function O(a,e,t){a=a%=360,a<0&&(a+=360),e=e/100,t=t/100;const n=e*Math.min(t,1-t),s=(r=0,i=(r+a/30)%12)=>t-n*Math.max(Math.min(i-3,9-i,1),-1);return[Math.round(s(0)*255),Math.round(s(8)*255),Math.round(s(4)*255)]}class w extends u.RuntimeBehavior{_tweens={};_runtimeScene;_isActive=!0;constructor(e,t,n){super(e,t,n),this._runtimeScene=e.getScene()}updateFromBehaviorData(e,t){return!0}onDestroy(){const e=this._runtimeScene.shiftyJsScene;if(e)for(const t in this._tweens)this._tweens[t].instance.stop(),e.remove(this._tweens[t].instance)}_addTween(e,t,n,s,r,i){if(!this._isActive||w.easings[t])return;this._tweenExists(e)&&this.removeTween(e);const o=new shifty.Tweenable;this._tweens[e]=new w.TweenInstance(o,!1,s,r),this._runtimeScene.shiftyJsScene||(this._runtimeScene.shiftyJsScene=new shifty.Scene),this._runtimeScene.shiftyJsScene.add(o),o.tween(n).then(()=>{this._tweens[e]&&(this._tweens[e].hasFinished=!0),i&&this.owner.deleteFromScene(this._runtimeScene)}).catch(c=>{})}_tweenExists(e){return!!this._tweens[e]}_tweenIsPlaying(e){return this._tweens[e]&&this._tweens[e].instance.isPlaying()}_pauseTween(e){const t=this._tweens[e];t.instance.pause();const n=this._runtimeScene.shiftyJsScene;n&&n.remove(t.instance)}_resumeTween(e){const t=this._tweens[e];t.instance.resume();const n=this._runtimeScene.shiftyJsScene;n&&n.add(t.instance)}_stopTween(e,t){this._tweens[e].instance.stop(t)}_tweenHasFinished(e){return this._tweens[e].hasFinished}addVariableTween(e,t,n,s,r,i,o){this._addTween(e,r,{from:{value:n},to:{value:s},duration:i,easing:r,render:c=>t.setNumber(c.value)},this._runtimeScene.getTimeManager().getTimeFromStart(),i,o)}addVariableTween2(e,t,n,s,r,i){this._addTween(e,s,{from:{value:t.getValue()},to:{value:n},duration:r,easing:s,render:o=>t.setNumber(o.value)},this._runtimeScene.getTimeManager().getTimeFromStart(),r,i)}addObjectPositionTween(e,t,n,s,r,i){this._addTween(e,s,{from:{x:this.owner.getX(),y:this.owner.getY()},to:{x:t,y:n},duration:r,easing:s,render:o=>{this.owner.setX(o.x),this.owner.setY(o.y)}},this._runtimeScene.getTimeManager().getTimeFromStart(),r,i)}addObjectPositionXTween(e,t,n,s,r){this._addTween(e,n,{from:{x:this.owner.getX()},to:{x:t},duration:s,easing:n,render:i=>this.owner.setX(i.x)},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectPositionZTween(e,t,n,s,r){const{owner:i}=this;i instanceof u.RuntimeObject3D&&this._addTween(e,n,{from:{z:i.getZ()},to:{z:t},duration:s,easing:n,render:o=>i.setZ(o.z)},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectPositionYTween(e,t,n,s,r){this._addTween(e,n,{from:{y:this.owner.getY()},to:{y:t},duration:s,easing:n,render:i=>this.owner.setY(i.y)},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectAngleTween(e,t,n,s,r){this._addTween(e,n,{from:{angle:this.owner.getAngle()},to:{angle:t},duration:s,easing:n,render:i=>{this.owner.setAngle(i.angle)}},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectScaleTween(e,t,n,s,r,i,o){if(!f(this.owner))return;const c=this.owner;t<0&&(t=0),n<0&&(n=0);const h=o?m=>{const g=c.getCenterXInScene(),l=c.getCenterYInScene();c.setScaleX(m.scaleX),c.setScaleY(m.scaleY),c.setCenterPositionInScene(g,l)}:m=>{c.setScaleX(m.scaleX),c.setScaleY(m.scaleY)};this._addTween(e,s,{from:{scaleX:c.getScaleX(),scaleY:c.getScaleY()},to:{scaleX:t,scaleY:n},duration:r,easing:s,render:h},this._runtimeScene.getTimeManager().getTimeFromStart(),r,i)}addObjectScaleXTween(e,t,n,s,r,i){if(!f(this.owner))return;const o=this.owner,c=i?h=>{const m=o.getCenterXInScene();o.setScaleX(h.scaleX),o.setCenterXInScene(m)}:h=>o.setScaleX(h.scaleX);this._addTween(e,n,{from:{scaleX:o.getScaleX()},to:{scaleX:t},duration:s,easing:n,render:c},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectScaleYTween(e,t,n,s,r,i){if(!f(this.owner))return;const o=this.owner,c=i?h=>{const m=o.getCenterYInScene();o.setScaleY(h.scaleY),o.setCenterYInScene(m)}:h=>o.setScaleY(h.scaleY);this._addTween(e,n,{from:{scaleY:o.getScaleY()},to:{scaleY:t},duration:s,easing:n,render:c},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectOpacityTween(e,t,n,s,r){if(!v(this.owner))return;const i=this.owner;this._addTween(e,n,{from:{opacity:i.getOpacity()},to:{opacity:t},duration:s,easing:n,render:o=>{i.setOpacity(o.opacity)}},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectColorTween(e,t,n,s,r,i){if(!p(this.owner)||!t.match("^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]);){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$"))return;const o=this.owner,c=this.owner.getColor().split(";"),h=t.split(";");if(h.length!==3)return;let m;if(i){const g=T(parseFloat(c[0]),parseFloat(c[1]),parseFloat(c[2])),l=T(parseFloat(h[0]),parseFloat(h[1]),parseFloat(h[2]));m={from:{hue:g[0],saturation:g[1],lightness:g[2]},to:{hue:l[0],saturation:l[1],lightness:l[2]},duration:s,easing:n,render:d=>{const b=O(d.hue,d.saturation,d.lightness);o.setColor(Math.floor(b[0])+";"+Math.floor(b[1])+";"+Math.floor(b[2]))}}}else m={from:{red:c[0],green:c[1],blue:c[2]},to:{red:h[0],green:h[1],blue:h[2]},duration:s,easing:n,render:g=>{o.setColor(Math.floor(g.red)+";"+Math.floor(g.green)+";"+Math.floor(g.blue))}};this._addTween(e,n,m,this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectColorHSLTween(e,t,n,s,r,i,o,c){if(!p(this.owner))return;const h=this.owner,m=h.getColor().split(";");if(m.length<3)return;const g=T(parseFloat(m[0]),parseFloat(m[1]),parseFloat(m[2])),l=n?t:g[0],d=s===-1?g[1]:Math.min(Math.max(s,0),100),b=r===-1?g[2]:Math.min(Math.max(r,0),100);this._addTween(e,i,{from:{hue:g[0],saturation:g[1],lightness:g[2]},to:{hue:l,saturation:d,lightness:b},duration:o,easing:i,render:S=>{const _=O(S.hue,S.saturation,S.lightness);h.setColor(Math.floor(_[0])+";"+Math.floor(_[1])+";"+Math.floor(_[2]))}},this._runtimeScene.getTimeManager().getTimeFromStart(),o,c)}addTextObjectCharacterSizeTween(e,t,n,s,r){if(!F(this.owner))return;const i=this.owner;this._addTween(e,n,{from:{size:i.getCharacterSize()},to:{size:t},duration:s,easing:n,render:function(c){i.setCharacterSize(c.size)}},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectWidthTween(e,t,n,s,r){this._addTween(e,n,{from:{width:this.owner.getWidth()},to:{width:t},duration:s,easing:n,render:i=>{this.owner.setWidth(i.width)}},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectHeightTween(e,t,n,s,r){this._addTween(e,n,{from:{height:this.owner.getHeight()},to:{height:t},duration:s,easing:n,render:i=>{this.owner.setHeight(i.height)}},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}addObjectDepthTween(e,t,n,s,r){const{owner:i}=this;i instanceof u.Cube3DRuntimeObject&&this._addTween(e,n,{from:{depth:i.getDepth()},to:{depth:t},duration:s,easing:n,render:o=>{i.setDepth(o.depth)}},this._runtimeScene.getTimeManager().getTimeFromStart(),s,r)}isPlaying(e){return this._tweenExists(e)&&this._tweenIsPlaying(e)}exists(e){return this._tweenExists(e)}hasFinished(e){return this._tweenExists(e)&&this._tweenHasFinished(e)}pauseTween(e){this._isActive&&this._tweenExists(e)&&this._tweenIsPlaying(e)&&this._pauseTween(e)}stopTween(e,t){this._isActive&&this._tweenExists(e)&&this._tweenIsPlaying(e)&&this._stopTween(e,t)}resumeTween(e){this._isActive&&this._tweenExists(e)&&!this._tweenIsPlaying(e)&&this._resumeTween(e)}removeTween(e){this._tweenExists(e)&&(this._tweens[e].instance.stop(),this._runtimeScene.shiftyJsScene&&this._runtimeScene.shiftyJsScene.remove(this._tweens[e].instance),delete this._tweens[e])}getProgress(e){const t=this._tweens[e];if(t){const n=this._runtimeScene.getTimeManager().getTimeFromStart();return n>=t.startTime+t.totalDuration?1:(n-t.startTime)/t.totalDuration}else return 0}onDeActivate(){if(this._isActive){for(const e in this._tweens)if(this._tweens.hasOwnProperty(e)){const t=this._tweens[e];t.instance.isPlaying()&&(t.resumeOnActivate=!0,this._pauseTween(e))}this._isActive=!1}}onActivate(){if(!this._isActive){for(const e in this._tweens)if(this._tweens.hasOwnProperty(e)){const t=this._tweens[e];t.resumeOnActivate&&(t.resumeOnActivate=!1,this._resumeTween(e))}this._isActive=!0}}static easings=["linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeOutBounce","easeInBack","easeOutBack","easeInOutBack","elastic","swingFromTo","swingFrom","swingTo","bounce","bouncePast","easeFromTo","easeFrom","easeTo"];static _currentTweenTime=0}u.TweenRuntimeBehavior=w,u.registerBehavior("Tween::TweenBehavior",u.TweenRuntimeBehavior),(e=>{class a{instance;hasFinished;startTime;totalDuration;resumeOnActivate=!1;constructor(n,s,r,i){this.instance=n,this.hasFinished=s,this.startTime=r,this.totalDuration=i}}e.TweenInstance=a})(w=u.TweenRuntimeBehavior||={})})(gdjs||={});
|
|
2
|
+
//# sourceMappingURL=tweenruntimebehavior.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../GDevelop/Extensions/TweenBehavior/tweenruntimebehavior.ts"],
|
|
4
|
+
"sourcesContent": ["/// <reference path=\"shifty.d.ts\" />\nnamespace gdjs {\n interface IScaleable extends RuntimeObject {\n setScaleX(x: number): void;\n setScaleY(y: number): void;\n getScaleX(): number;\n getScaleY(): number;\n }\n\n interface IOpaque extends RuntimeObject {\n setOpacity(opacity: number): void;\n getOpacity(): number;\n }\n\n interface IColorable extends RuntimeObject {\n setColor(color: string): void;\n getColor(): string;\n }\n\n interface ICharacterScaleable extends RuntimeObject {\n setCharacterSize(characterSize: number): void;\n getCharacterSize(): number;\n }\n\n function isScaleable(o: RuntimeObject): o is IScaleable {\n //@ts-ignore We are checking if the methods are present.\n return o.setScaleX && o.setScaleY && o.getScaleX && o.getScaleY;\n }\n\n function isOpaque(o: RuntimeObject): o is IOpaque {\n //@ts-ignore We are checking if the methods are present.\n return o.setOpacity && o.getOpacity;\n }\n\n function isColorable(o: RuntimeObject): o is IColorable {\n //@ts-ignore We are checking if the methods are present.\n return o.setColor && o.getColor;\n }\n\n function isCharacterScaleable(o: RuntimeObject): o is ICharacterScaleable {\n //@ts-ignore We are checking if the methods are present.\n return o.setCharacterSize && o.getCharacterSize;\n }\n\n function rgbToHsl(r: number, g: number, b: number): number[] {\n r /= 255;\n g /= 255;\n b /= 255;\n let v = Math.max(r, g, b),\n c = v - Math.min(r, g, b),\n f = 1 - Math.abs(v + v - c - 1);\n let h =\n c &&\n (v === r ? (g - b) / c : v === g ? 2 + (b - r) / c : 4 + (r - g) / c);\n return [\n Math.round(60 * (h < 0 ? h + 6 : h)),\n Math.round((f ? c / f : 0) * 100),\n Math.round(((v + v - c) / 2) * 100),\n ];\n }\n\n function hslToRgb(h: number, s: number, l: number): number[] {\n h = h %= 360;\n if (h < 0) {\n h += 360;\n }\n s = s / 100;\n l = l / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n = 0, k = (n + h / 30) % 12) =>\n l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [\n Math.round(f(0) * 255),\n Math.round(f(8) * 255),\n Math.round(f(4) * 255),\n ];\n }\n\n // TODO EBO Rewrite this behavior to use standard method to step.\n // This could also fix layer time scale that seems to be ignored.\n export class TweenRuntimeBehavior extends gdjs.RuntimeBehavior {\n private _tweens: Record<string, TweenRuntimeBehavior.TweenInstance> = {};\n private _runtimeScene: gdjs.RuntimeScene;\n private _isActive: boolean = true;\n\n /**\n * @param instanceContainer The instance container the behavior belongs to.\n * @param behaviorData The data to initialize the behavior\n * @param owner The runtime object the behavior belongs to.\n */\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n behaviorData: BehaviorData,\n owner: gdjs.RuntimeObject\n ) {\n super(instanceContainer, behaviorData, owner);\n this._runtimeScene = instanceContainer.getScene();\n }\n\n updateFromBehaviorData(\n oldBehaviorData: BehaviorData,\n newBehaviorData: BehaviorData\n ): boolean {\n // Nothing to update.\n return true;\n }\n\n onDestroy() {\n const shiftyJsScene = this._runtimeScene.shiftyJsScene;\n if (!shiftyJsScene) return;\n\n // Stop and delete all tweens of the behavior - otherwise they could:\n // - continue to point to the behavior, and so to the object (memory leak),\n // - affect the object in case it's recycled (wrong/hard to debug behavior).\n for (const identifier in this._tweens) {\n this._tweens[identifier].instance.stop();\n shiftyJsScene.remove(this._tweens[identifier].instance);\n }\n }\n\n private _addTween(\n identifier: string,\n easingValue: string,\n tweenConfig: shifty.tweenConfig,\n startTime: number,\n totalDuration: number,\n destroyObjectWhenFinished: boolean\n ): void {\n if (!this._isActive || !!TweenRuntimeBehavior.easings[easingValue])\n return;\n\n // Remove any prior tween\n if (this._tweenExists(identifier)) this.removeTween(identifier);\n\n // Initialize the tween instance\n const tweenable = new shifty.Tweenable();\n this._tweens[identifier] = new TweenRuntimeBehavior.TweenInstance(\n tweenable,\n false,\n startTime,\n totalDuration\n );\n\n // Attach it to the scene as it will become active and active tweens should be on the scene.\n if (!this._runtimeScene.shiftyJsScene)\n this._runtimeScene.shiftyJsScene = new shifty.Scene();\n this._runtimeScene.shiftyJsScene.add(tweenable);\n\n // Start the tween and set the needed callbacks\n tweenable\n .tween(tweenConfig)\n .then(() => {\n if (this._tweens[identifier])\n this._tweens[identifier].hasFinished = true;\n\n if (destroyObjectWhenFinished)\n this.owner.deleteFromScene(this._runtimeScene);\n })\n .catch((e) => {});\n }\n\n private _tweenExists(identifier: string): boolean {\n return !!this._tweens[identifier];\n }\n\n private _tweenIsPlaying(identifier: string): boolean {\n return (\n this._tweens[identifier] &&\n this._tweens[identifier].instance.isPlaying()\n );\n }\n\n private _pauseTween(identifier: string): void {\n const tween = this._tweens[identifier];\n\n // Pause the tween, and remove it from the scene of living tweens\n // (the invariant is that scene only contains tweens being played).\n tween.instance.pause();\n\n const shiftyJsScene = this._runtimeScene.shiftyJsScene;\n if (shiftyJsScene) {\n shiftyJsScene.remove(tween.instance);\n }\n }\n\n private _resumeTween(identifier: string): void {\n const tween = this._tweens[identifier];\n\n // Resume the tween, and add it back to the scene of living tweens\n // (the invariant is that scene only contains tweens being played).\n tween.instance.resume();\n\n const shiftyJsScene = this._runtimeScene.shiftyJsScene;\n if (shiftyJsScene) {\n shiftyJsScene.add(tween.instance);\n }\n }\n\n private _stopTween(identifier: string, jumpToDest: boolean): void {\n this._tweens[identifier].instance.stop(jumpToDest);\n }\n\n private _tweenHasFinished(identifier: string): boolean {\n return this._tweens[identifier].hasFinished;\n }\n\n /**\n * Add an object variable tween.\n * @deprecated Use addVariableTween2 instead.\n * This function is misleading since one could think that the tween starts\n * right at the moment this function is called whereas the value of the variable\n * will change at the next frame only. Moreover, the variable will not start from\n * the start value exactly since time will have passed at the moment the next\n * frame is rendered.\n * See https://github.com/4ian/GDevelop/issues/4270\n * @param identifier Unique id to identify the tween\n * @param variable The object variable to store the tweened value\n * @param fromValue Start value\n * @param toValue End value\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addVariableTween(\n identifier: string,\n variable: gdjs.Variable,\n fromValue: float,\n toValue: float,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { value: fromValue },\n to: { value: toValue },\n duration: durationValue,\n easing: easingValue,\n render: (state) => variable.setNumber(state.value),\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object variable.\n * @param identifier Unique id to identify the tween\n * @param variable The object variable to store the tweened value\n * @param toValue End value\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addVariableTween2(\n identifier: string,\n variable: gdjs.Variable,\n toValue: float,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { value: variable.getValue() },\n to: { value: toValue },\n duration: durationValue,\n easing: easingValue,\n render: (state) => variable.setNumber(state.value),\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object position.\n * @param identifier Unique id to identify the tween\n * @param toX The target X position\n * @param toY The target Y position\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectPositionTween(\n identifier: string,\n toX: number,\n toY: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { x: this.owner.getX(), y: this.owner.getY() },\n to: { x: toX, y: toY },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n this.owner.setX(state.x);\n this.owner.setY(state.y);\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object X position.\n * @param identifier Unique id to identify the tween\n * @param toX The target X position\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectPositionXTween(\n identifier: string,\n toX: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { x: this.owner.getX() },\n to: { x: toX },\n duration: durationValue,\n easing: easingValue,\n render: (state) => this.owner.setX(state.x),\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object Z position.\n * @param identifier Unique id to identify the tween\n * @param toZ The target Z position\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectPositionZTween(\n identifier: string,\n toZ: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n const { owner } = this;\n if (!(owner instanceof gdjs.RuntimeObject3D)) return;\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: { z: owner.getZ() },\n to: { z: toZ },\n duration: durationValue,\n easing: easingValue,\n render: (state) => owner.setZ(state.z),\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object Y position.\n * @param identifier Unique id to identify the tween\n * @param toY The target Y position\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectPositionYTween(\n identifier: string,\n toY: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { y: this.owner.getY() },\n to: { y: toY },\n duration: durationValue,\n easing: easingValue,\n render: (state) => this.owner.setY(state.y),\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object angle.\n * @param identifier Unique id to identify the tween\n * @param toAngle The target angle\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectAngleTween(\n identifier: string,\n toAngle: float,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { angle: this.owner.getAngle() },\n to: { angle: toAngle },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n this.owner.setAngle(state.angle);\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object scale.\n * @param identifier Unique id to identify the tween\n * @param toScaleX The target X-scale\n * @param toScaleY The target Y-scale\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n * @param scaleFromCenterOfObject Scale the transform from the center of the object (or point that is called center), not the top-left origin\n */\n addObjectScaleTween(\n identifier: string,\n toScaleX: number,\n toScaleY: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean,\n scaleFromCenterOfObject: boolean\n ) {\n // Cast to IScaleable\n if (!isScaleable(this.owner)) return;\n const owner = this.owner;\n\n if (toScaleX < 0) toScaleX = 0;\n if (toScaleY < 0) toScaleY = 0;\n\n const renderFunction = scaleFromCenterOfObject\n ? (state) => {\n const oldX = owner.getCenterXInScene();\n const oldY = owner.getCenterYInScene();\n owner.setScaleX(state.scaleX);\n owner.setScaleY(state.scaleY);\n owner.setCenterPositionInScene(oldX, oldY);\n }\n : (state) => {\n owner.setScaleX(state.scaleX);\n owner.setScaleY(state.scaleY);\n };\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: {\n scaleX: owner.getScaleX(),\n scaleY: owner.getScaleY(),\n },\n to: { scaleX: toScaleX, scaleY: toScaleY },\n duration: durationValue,\n easing: easingValue,\n render: renderFunction,\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object X-scale.\n * @param identifier Unique id to identify the tween\n * @param toScaleX The target X-scale\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n * @param scaleFromCenterOfObject Scale the transform from the center of the object (or point that is called center), not the top-left origin\n */\n addObjectScaleXTween(\n identifier: string,\n toScaleX: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean,\n scaleFromCenterOfObject: boolean\n ) {\n // Cast to IScaleable\n if (!isScaleable(this.owner)) return;\n const owner = this.owner;\n\n const stepFunction = scaleFromCenterOfObject\n ? (state) => {\n const oldX = owner.getCenterXInScene();\n owner.setScaleX(state.scaleX);\n owner.setCenterXInScene(oldX);\n }\n : (state) => owner.setScaleX(state.scaleX);\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: { scaleX: owner.getScaleX() },\n to: { scaleX: toScaleX },\n duration: durationValue,\n easing: easingValue,\n render: stepFunction,\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object Y-scale.\n * @param identifier Unique id to identify the tween\n * @param toScaleY The target Y-scale\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n * @param scaleFromCenterOfObject Scale the transform from the center of the object (or point that is called center), not the top-left origin\n */\n addObjectScaleYTween(\n identifier: string,\n toScaleY: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean,\n scaleFromCenterOfObject: boolean\n ) {\n // Cast to IScaleable\n if (!isScaleable(this.owner)) return;\n const owner = this.owner;\n\n const stepFunction = scaleFromCenterOfObject\n ? (state) => {\n const oldY = owner.getCenterYInScene();\n owner.setScaleY(state.scaleY);\n owner.setCenterYInScene(oldY);\n }\n : (state) => owner.setScaleY(state.scaleY);\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: { scaleY: owner.getScaleY() },\n to: { scaleY: toScaleY },\n duration: durationValue,\n easing: easingValue,\n render: stepFunction,\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object opacity.\n * @param identifier Unique id to identify the tween\n * @param toOpacity The target opacity\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectOpacityTween(\n identifier: string,\n toOpacity: float,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n if (!isOpaque(this.owner)) return;\n const owner = this.owner;\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: { opacity: owner.getOpacity() },\n to: { opacity: toOpacity },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n owner.setOpacity(state.opacity);\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object color.\n * @param identifier Unique id to identify the tween\n * @param toColorStr The target RGB color (format \"128;200;255\" with values between 0 and 255 for red, green and blue)\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n * @param useHSLColorTransition Tween using HSL color mappings, rather than direct RGB line\n */\n addObjectColorTween(\n identifier: string,\n toColorStr: string,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean,\n useHSLColorTransition: boolean\n ) {\n if (\n !isColorable(this.owner) ||\n !toColorStr.match(\n '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]);){2}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'\n )\n )\n return;\n const owner = this.owner;\n\n const rgbFromColor: string[] = this.owner.getColor().split(';');\n const rgbToColor: string[] = toColorStr.split(';');\n if (rgbToColor.length !== 3) return;\n\n let config: shifty.tweenConfig;\n if (useHSLColorTransition) {\n const hslFromColor = rgbToHsl(\n parseFloat(rgbFromColor[0]),\n parseFloat(rgbFromColor[1]),\n parseFloat(rgbFromColor[2])\n );\n const hslToColor = rgbToHsl(\n parseFloat(rgbToColor[0]),\n parseFloat(rgbToColor[1]),\n parseFloat(rgbToColor[2])\n );\n\n config = {\n from: {\n hue: hslFromColor[0],\n saturation: hslFromColor[1],\n lightness: hslFromColor[2],\n },\n to: {\n hue: hslToColor[0],\n saturation: hslToColor[1],\n lightness: hslToColor[2],\n },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n const rgbFromHslColor = hslToRgb(\n state.hue,\n state.saturation,\n state.lightness\n );\n owner.setColor(\n Math.floor(rgbFromHslColor[0]) +\n ';' +\n Math.floor(rgbFromHslColor[1]) +\n ';' +\n Math.floor(rgbFromHslColor[2])\n );\n },\n };\n } else {\n config = {\n from: {\n red: rgbFromColor[0],\n green: rgbFromColor[1],\n blue: rgbFromColor[2],\n },\n to: { red: rgbToColor[0], green: rgbToColor[1], blue: rgbToColor[2] },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n owner.setColor(\n Math.floor(state.red) +\n ';' +\n Math.floor(state.green) +\n ';' +\n Math.floor(state.blue)\n );\n },\n };\n }\n\n this._addTween(\n identifier,\n easingValue,\n config,\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object HSL color, with the \"to\" color given using HSL (H: any number, S and L: 0-100).\n * @param identifier Unique id to identify the tween\n * @param toHue The target hue, or the same as the from color's hue if blank\n * @param animateHue, include hue in calculations, as can't set this to -1 as default to ignore\n * @param toSaturation The target saturation, or the same as the from color's saturation if blank\n * @param toHue The target lightness, or the same as the from color's lightness if blank\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectColorHSLTween(\n identifier: string,\n toHue: number,\n animateHue: boolean,\n toSaturation: number,\n toLightness: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n if (!isColorable(this.owner)) return;\n const owner = this.owner;\n\n const rgbFromColor: string[] = owner.getColor().split(';');\n if (rgbFromColor.length < 3) return;\n const hslFromColor = rgbToHsl(\n parseFloat(rgbFromColor[0]),\n parseFloat(rgbFromColor[1]),\n parseFloat(rgbFromColor[2])\n );\n\n const toH = animateHue ? toHue : hslFromColor[0];\n const toS =\n -1 === toSaturation\n ? hslFromColor[1]\n : Math.min(Math.max(toSaturation, 0), 100);\n const toL =\n -1 === toLightness\n ? hslFromColor[2]\n : Math.min(Math.max(toLightness, 0), 100);\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: {\n hue: hslFromColor[0],\n saturation: hslFromColor[1],\n lightness: hslFromColor[2],\n },\n to: {\n hue: toH,\n saturation: toS,\n lightness: toL,\n },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n const rgbFromHslColor = hslToRgb(\n state.hue,\n state.saturation,\n state.lightness\n );\n\n owner.setColor(\n Math.floor(rgbFromHslColor[0]) +\n ';' +\n Math.floor(rgbFromHslColor[1]) +\n ';' +\n Math.floor(rgbFromHslColor[2])\n );\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween a text object character size.\n * @param identifier Unique id to identify the tween\n * @param toSize The target character size\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addTextObjectCharacterSizeTween(\n identifier: string,\n toSize: number,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n if (!isCharacterScaleable(this.owner)) return;\n const owner = this.owner;\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: { size: owner.getCharacterSize() },\n to: { size: toSize },\n duration: durationValue,\n easing: easingValue,\n render: function step(state) {\n owner.setCharacterSize(state.size);\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object width.\n * @param identifier Unique id to identify the tween\n * @param toWidth The target width\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectWidthTween(\n identifier: string,\n toWidth: float,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { width: this.owner.getWidth() },\n to: { width: toWidth },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n this.owner.setWidth(state.width);\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object height.\n * @param identifier Unique id to identify the tween\n * @param toHeight The target height\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectHeightTween(\n identifier: string,\n toHeight: float,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n this._addTween(\n identifier,\n easingValue,\n {\n from: { height: this.owner.getHeight() },\n to: { height: toHeight },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n this.owner.setHeight(state.height);\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween an object depth.\n * @param identifier Unique id to identify the tween\n * @param toDepth The target depth\n * @param easingValue Type of easing\n * @param durationValue Duration in milliseconds\n * @param destroyObjectWhenFinished Destroy this object when the tween ends\n */\n addObjectDepthTween(\n identifier: string,\n toDepth: float,\n easingValue: string,\n durationValue: float,\n destroyObjectWhenFinished: boolean\n ) {\n const { owner } = this;\n if (!(owner instanceof gdjs.Cube3DRuntimeObject)) return;\n\n this._addTween(\n identifier,\n easingValue,\n {\n from: { depth: owner.getDepth() },\n to: { depth: toDepth },\n duration: durationValue,\n easing: easingValue,\n render: (state) => {\n owner.setDepth(state.depth);\n },\n },\n this._runtimeScene.getTimeManager().getTimeFromStart(),\n durationValue,\n destroyObjectWhenFinished\n );\n }\n\n /**\n * Tween is playing.\n * @param identifier Unique id to identify the tween\n */\n isPlaying(identifier: string): boolean {\n return this._tweenExists(identifier) && this._tweenIsPlaying(identifier);\n }\n\n /**\n * Tween exists.\n * @param identifier Unique id to identify the tween\n * @returns The tween exists\n */\n exists(identifier: string): boolean {\n return this._tweenExists(identifier);\n }\n\n /**\n * Tween has finished.\n * @param identifier Unique id to identify the tween\n */\n hasFinished(identifier: string): boolean {\n return (\n this._tweenExists(identifier) && this._tweenHasFinished(identifier)\n );\n }\n\n /**\n * Pause a tween.\n * @param identifier Unique id to identify the tween\n */\n pauseTween(identifier: string) {\n if (\n this._isActive &&\n this._tweenExists(identifier) &&\n this._tweenIsPlaying(identifier)\n )\n this._pauseTween(identifier);\n }\n\n /**\n * Stop a tween.\n * @param identifier Unique id to identify the tween\n * @param jumpToDest Move to destination\n */\n stopTween(identifier: string, jumpToDest: boolean) {\n if (\n this._isActive &&\n this._tweenExists(identifier) &&\n this._tweenIsPlaying(identifier)\n )\n this._stopTween(identifier, jumpToDest);\n }\n\n /**\n * Resume a tween.\n * @param identifier Unique id to identify the tween\n */\n resumeTween(identifier: string) {\n if (\n this._isActive &&\n this._tweenExists(identifier) &&\n !this._tweenIsPlaying(identifier)\n )\n this._resumeTween(identifier);\n }\n\n /**\n * Remove a tween.\n * @param identifier Unique id to identify the tween\n */\n removeTween(identifier: string) {\n if (!this._tweenExists(identifier)) return;\n\n this._tweens[identifier].instance.stop();\n if (this._runtimeScene.shiftyJsScene)\n this._runtimeScene.shiftyJsScene.remove(\n this._tweens[identifier].instance\n );\n delete this._tweens[identifier];\n }\n\n /**\n * Get tween progress.\n * @param identifier Unique id to identify the tween\n * @returns Progress of playing tween animation (between 0.0 and 1.0)\n */\n getProgress(identifier: string): float {\n const tween = this._tweens[identifier];\n if (tween) {\n const currentTime = this._runtimeScene\n .getTimeManager()\n .getTimeFromStart();\n if (currentTime >= tween.startTime + tween.totalDuration) {\n return 1;\n }\n return (currentTime - tween.startTime) / tween.totalDuration;\n } else {\n return 0;\n }\n }\n\n onDeActivate() {\n if (!this._isActive) {\n return;\n }\n for (const key in this._tweens) {\n if (this._tweens.hasOwnProperty(key)) {\n const tween = this._tweens[key];\n if (tween.instance.isPlaying()) {\n tween.resumeOnActivate = true;\n this._pauseTween(key);\n }\n }\n }\n this._isActive = false;\n }\n\n onActivate() {\n if (this._isActive) {\n return;\n }\n for (const key in this._tweens) {\n if (this._tweens.hasOwnProperty(key)) {\n const tween = this._tweens[key];\n if (tween.resumeOnActivate) {\n tween.resumeOnActivate = false;\n this._resumeTween(key);\n }\n }\n }\n this._isActive = true;\n }\n\n static easings = [\n 'linear',\n 'easeInQuad',\n 'easeOutQuad',\n 'easeInOutQuad',\n 'easeInCubic',\n 'easeOutCubic',\n 'easeInOutCubic',\n 'easeInQuart',\n 'easeOutQuart',\n 'easeInOutQuart',\n 'easeInQuint',\n 'easeOutQuint',\n 'easeInOutQuint',\n 'easeInSine',\n 'easeOutSine',\n 'easeInOutSine',\n 'easeInExpo',\n 'easeOutExpo',\n 'easeInOutExpo',\n 'easeInCirc',\n 'easeOutCirc',\n 'easeInOutCirc',\n 'easeOutBounce',\n 'easeInBack',\n 'easeOutBack',\n 'easeInOutBack',\n 'elastic',\n 'swingFromTo',\n 'swingFrom',\n 'swingTo',\n 'bounce',\n 'bouncePast',\n 'easeFromTo',\n 'easeFrom',\n 'easeTo',\n ];\n\n static _currentTweenTime = 0;\n }\n gdjs.registerBehavior('Tween::TweenBehavior', gdjs.TweenRuntimeBehavior);\n\n export namespace TweenRuntimeBehavior {\n /**\n * A tween being played in a behavior.\n * @ignore\n */\n export class TweenInstance {\n instance: shifty.Tweenable;\n hasFinished: boolean;\n startTime: float;\n totalDuration: float;\n resumeOnActivate: boolean = false;\n\n /**\n * @param instance The Shifty tween that is played\n * @param hasFinished If the tween is finished already\n * @param startTime The time at which the tween starts\n * @param totalDuration The time of the whole tween\n */\n constructor(\n instance: shifty.Tweenable,\n hasFinished: boolean,\n startTime: float,\n totalDuration: float\n ) {\n this.instance = instance;\n this.hasFinished = hasFinished;\n this.startTime = startTime;\n this.totalDuration = totalDuration;\n }\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["gdjs", "isScaleable", "o", "isOpaque", "isColorable", "isCharacterScaleable", "rgbToHsl", "r", "g", "b", "v", "c", "f", "h", "hslToRgb", "s", "l", "a", "n", "k", "TweenRuntimeBehavior", "instanceContainer", "behaviorData", "owner", "oldBehaviorData", "newBehaviorData", "shiftyJsScene", "identifier", "easingValue", "tweenConfig", "startTime", "totalDuration", "destroyObjectWhenFinished", "tweenable", "e", "tween", "jumpToDest", "variable", "fromValue", "toValue", "durationValue", "state", "toX", "toY", "toZ", "toAngle", "toScaleX", "toScaleY", "scaleFromCenterOfObject", "renderFunction", "oldX", "oldY", "stepFunction", "toOpacity", "toColorStr", "useHSLColorTransition", "rgbFromColor", "rgbToColor", "config", "hslFromColor", "hslToColor", "rgbFromHslColor", "toHue", "animateHue", "toSaturation", "toLightness", "toH", "toS", "toL", "toSize", "toWidth", "toHeight", "toDepth", "currentTime", "key", "TweenInstance", "instance", "hasFinished"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var gdjs;(b=>{let w;(h=>{let y;(r=>{const c={linear:shifty.Tweenable.formulas.linear,easeInQuad:shifty.Tweenable.formulas.easeInQuad,easeOutQuad:shifty.Tweenable.formulas.easeOutQuad,easeInOutQuad:shifty.Tweenable.formulas.easeInOutQuad,easeInCubic:shifty.Tweenable.formulas.easeInCubic,easeOutCubic:shifty.Tweenable.formulas.easeOutCubic,easeInOutCubic:shifty.Tweenable.formulas.easeInOutCubic,easeInQuart:shifty.Tweenable.formulas.easeInQuart,easeOutQuart:shifty.Tweenable.formulas.easeOutQuart,easeInOutQuart:shifty.Tweenable.formulas.easeInOutQuart,easeInQuint:shifty.Tweenable.formulas.easeInQuint,easeOutQuint:shifty.Tweenable.formulas.easeOutQuint,easeInOutQuint:shifty.Tweenable.formulas.easeInOutQuint,easeInSine:shifty.Tweenable.formulas.easeInSine,easeOutSine:shifty.Tweenable.formulas.easeOutSine,easeInOutSine:shifty.Tweenable.formulas.easeInOutSine,easeInExpo:shifty.Tweenable.formulas.easeInExpo,easeOutExpo:shifty.Tweenable.formulas.easeOutExpo,easeInOutExpo:shifty.Tweenable.formulas.easeInOutExpo,easeInCirc:shifty.Tweenable.formulas.easeInCirc,easeOutCirc:shifty.Tweenable.formulas.easeOutCirc,easeInOutCirc:shifty.Tweenable.formulas.easeInOutCirc,easeOutBounce:shifty.Tweenable.formulas.easeOutBounce,easeInBack:shifty.Tweenable.formulas.easeInBack,easeOutBack:shifty.Tweenable.formulas.easeOutBack,easeInOutBack:shifty.Tweenable.formulas.easeInOutBack,elastic:shifty.Tweenable.formulas.elastic,swingFromTo:shifty.Tweenable.formulas.swingFromTo,swingFrom:shifty.Tweenable.formulas.swingFrom,swingTo:shifty.Tweenable.formulas.swingTo,bounce:shifty.Tweenable.formulas.bounce,bouncePast:shifty.Tweenable.formulas.bouncePast,easeFromTo:shifty.Tweenable.formulas.easeFromTo,easeFrom:shifty.Tweenable.formulas.easeFrom,easeTo:shifty.Tweenable.formulas.easeTo};r.ease=(e,n,s,t)=>{const a=c.hasOwnProperty(e)?c[e]:shifty.Tweenable.formulas.linear;return n+(s-n)*a(t)};const i=e=>e._tweens||(e._tweens=new Map),f=e=>e.shiftyJsScene||(e.shiftyJsScene=new shifty.Scene);r.sceneTweenExists=(e,n)=>i(e).has(n),r.sceneTweenIsPlaying=(e,n)=>{const t=i(e).get(n);return!!t&&t.isPlaying()},r.sceneTweenHasFinished=(e,n)=>{const t=i(e).get(n);return!!t&&t.hasEnded()},r.resumeSceneTween=(e,n)=>{const t=i(e).get(n);t&&(t.resume(),f(e).add(t))},r.pauseSceneTween=(e,n)=>{const t=i(e).get(n);t&&(t.pause(),f(e).remove(t))},r.stopSceneTween=(e,n,s)=>{const a=i(e).get(n);a&&(a.stop(s),f(e).remove(a))},r.removeSceneTween=(e,n)=>{const s=i(e),t=s.get(n);t&&(s.delete(n),f(e).remove(t),t.stop().dispose())},r.tweenVariableNumber=(e,n,s,t,a,l,u)=>{const o=shifty.tween({from:{value:t},to:{value:a},easing:u,duration:l,render:({value:m})=>s.setNumber(m)});i(e).set(n,o),f(e).add(o)},r.tweenVariableNumber2=(e,n,s,t,a,l)=>{const u=shifty.tween({from:{value:s.getValue()},to:{value:t},easing:l,duration:a,render:({value:o})=>s.setNumber(o)});i(e).set(n,u),f(e).add(u)},r.tweenCamera=(e,n,s,t,a,l,u)=>{const o=e.getLayer(a),m=shifty.tween({from:{x:o.getCameraX(),y:o.getCameraY()},to:{x:s,y:t},easing:u,duration:l,render:({x:T,y:g})=>{o.setCameraX(T),o.setCameraY(g)}});i(e).set(n,m),f(e).add(m)},r.tweenCameraZoom=(e,n,s,t,a,l)=>{const u=e.getLayer(t),o=shifty.tween({from:{zoom:u.getCameraZoom()},to:{zoom:s},easing:l,duration:a,render:({zoom:m})=>{u.setCameraZoom(m)}});i(e).set(n,o),f(e).add(o)},r.tweenCameraRotation=(e,n,s,t,a,l)=>{const u=e.getLayer(t),o=shifty.tween({from:{rotation:u.getCameraRotation()},to:{rotation:s},easing:l,duration:a,render:({rotation:m})=>{u.setCameraRotation(m)}});i(e).set(n,o),f(e).add(o)}})(y=h.tween||={})})(w=b.evtTools||={})})(gdjs||={});
|
|
2
|
+
//# sourceMappingURL=tweentools.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../GDevelop/Extensions/TweenBehavior/tweentools.ts"],
|
|
4
|
+
"sourcesContent": ["/// <reference path=\"shifty.d.ts\" />\nnamespace gdjs {\n export interface RuntimeScene {\n _tweens: Map<string, shifty.Tweenable>;\n }\n export namespace evtTools {\n export namespace tween {\n const easingFunctions: Record<string, shifty.easingFunction> = {\n linear: shifty.Tweenable.formulas.linear,\n easeInQuad: shifty.Tweenable.formulas.easeInQuad,\n easeOutQuad: shifty.Tweenable.formulas.easeOutQuad,\n easeInOutQuad: shifty.Tweenable.formulas.easeInOutQuad,\n easeInCubic: shifty.Tweenable.formulas.easeInCubic,\n easeOutCubic: shifty.Tweenable.formulas.easeOutCubic,\n easeInOutCubic: shifty.Tweenable.formulas.easeInOutCubic,\n easeInQuart: shifty.Tweenable.formulas.easeInQuart,\n easeOutQuart: shifty.Tweenable.formulas.easeOutQuart,\n easeInOutQuart: shifty.Tweenable.formulas.easeInOutQuart,\n easeInQuint: shifty.Tweenable.formulas.easeInQuint,\n easeOutQuint: shifty.Tweenable.formulas.easeOutQuint,\n easeInOutQuint: shifty.Tweenable.formulas.easeInOutQuint,\n easeInSine: shifty.Tweenable.formulas.easeInSine,\n easeOutSine: shifty.Tweenable.formulas.easeOutSine,\n easeInOutSine: shifty.Tweenable.formulas.easeInOutSine,\n easeInExpo: shifty.Tweenable.formulas.easeInExpo,\n easeOutExpo: shifty.Tweenable.formulas.easeOutExpo,\n easeInOutExpo: shifty.Tweenable.formulas.easeInOutExpo,\n easeInCirc: shifty.Tweenable.formulas.easeInCirc,\n easeOutCirc: shifty.Tweenable.formulas.easeOutCirc,\n easeInOutCirc: shifty.Tweenable.formulas.easeInOutCirc,\n easeOutBounce: shifty.Tweenable.formulas.easeOutBounce,\n easeInBack: shifty.Tweenable.formulas.easeInBack,\n easeOutBack: shifty.Tweenable.formulas.easeOutBack,\n easeInOutBack: shifty.Tweenable.formulas.easeInOutBack,\n elastic: shifty.Tweenable.formulas.elastic,\n swingFromTo: shifty.Tweenable.formulas.swingFromTo,\n swingFrom: shifty.Tweenable.formulas.swingFrom,\n swingTo: shifty.Tweenable.formulas.swingTo,\n bounce: shifty.Tweenable.formulas.bounce,\n bouncePast: shifty.Tweenable.formulas.bouncePast,\n easeFromTo: shifty.Tweenable.formulas.easeFromTo,\n easeFrom: shifty.Tweenable.formulas.easeFrom,\n easeTo: shifty.Tweenable.formulas.easeTo,\n };\n\n /**\n * Tween between 2 values according to an easing function.\n * @param fromValue Start value\n * @param toValue End value\n * @param easingValue Type of easing\n * @param weighting from 0 to 1\n */\n export const ease = (\n easingValue: string,\n fromValue: float,\n toValue: float,\n weighting: float\n ) => {\n const easingFunction = easingFunctions.hasOwnProperty(easingValue)\n ? easingFunctions[easingValue]\n : shifty.Tweenable.formulas.linear;\n return fromValue + (toValue - fromValue) * easingFunction(weighting);\n };\n\n const getTweensMap = (runtimeScene: RuntimeScene) =>\n runtimeScene._tweens || (runtimeScene._tweens = new Map());\n const getShiftyScene = (runtimeScene: RuntimeScene) =>\n runtimeScene.shiftyJsScene ||\n (runtimeScene.shiftyJsScene = new shifty.Scene());\n\n export const sceneTweenExists = (\n runtimeScene: RuntimeScene,\n id: string\n ) => getTweensMap(runtimeScene).has(id);\n\n export const sceneTweenIsPlaying = (\n runtimeScene: RuntimeScene,\n id: string\n ) => {\n const tweenMap = getTweensMap(runtimeScene);\n const tween = tweenMap.get(id);\n return !!tween && tween.isPlaying();\n };\n\n export const sceneTweenHasFinished = (\n runtimeScene: RuntimeScene,\n id: string\n ) => {\n const tweenMap = getTweensMap(runtimeScene);\n const tween = tweenMap.get(id);\n return !!tween && tween.hasEnded();\n };\n\n export const resumeSceneTween = (\n runtimeScene: RuntimeScene,\n id: string\n ) => {\n const tweenMap = getTweensMap(runtimeScene);\n const tween = tweenMap.get(id);\n if (!tween) return;\n tween.resume();\n getShiftyScene(runtimeScene).add(tween);\n };\n\n export const pauseSceneTween = (\n runtimeScene: RuntimeScene,\n id: string\n ) => {\n const tweenMap = getTweensMap(runtimeScene);\n const tween = tweenMap.get(id);\n if (!tween) return;\n tween.pause();\n getShiftyScene(runtimeScene).remove(tween);\n };\n\n export const stopSceneTween = (\n runtimeScene: RuntimeScene,\n id: string,\n shouldGoToEnd: boolean\n ) => {\n const tweenMap = getTweensMap(runtimeScene);\n const tween = tweenMap.get(id);\n if (!tween) return;\n tween.stop(shouldGoToEnd);\n getShiftyScene(runtimeScene).remove(tween);\n };\n\n export const removeSceneTween = (\n runtimeScene: RuntimeScene,\n id: string\n ) => {\n const tweenMap = getTweensMap(runtimeScene);\n const tween = tweenMap.get(id);\n if (!tween) return;\n tweenMap.delete(id);\n getShiftyScene(runtimeScene).remove(tween);\n tween.stop().dispose();\n };\n\n /**\n * @deprecated Use tweenVariableNumber2 instead.\n * This function is misleading since one could think that the tween starts\n * right at the moment this function is called whereas the value of the variable\n * will change at the next frame only. Moreover, the variable will not start from\n * the start value exactly since time will have passed at the moment the next\n * frame is rendered.\n * See https://github.com/4ian/GDevelop/issues/4270\n */\n export const tweenVariableNumber = (\n runtimeScene: RuntimeScene,\n identifier: string,\n variable: Variable,\n from: number,\n to: number,\n duration: number,\n easing: shifty.easingFunction\n ) => {\n const tween = shifty.tween({\n from: { value: from },\n to: { value: to },\n easing,\n duration,\n render: ({ value }) => variable.setNumber(value),\n });\n\n getTweensMap(runtimeScene).set(identifier, tween);\n getShiftyScene(runtimeScene).add(tween);\n };\n\n export const tweenVariableNumber2 = (\n runtimeScene: RuntimeScene,\n identifier: string,\n variable: Variable,\n to: number,\n duration: number,\n easing: shifty.easingFunction\n ) => {\n const tween = shifty.tween({\n from: { value: variable.getValue() },\n to: { value: to },\n easing,\n duration,\n render: ({ value }) => variable.setNumber(value),\n });\n\n getTweensMap(runtimeScene).set(identifier, tween);\n getShiftyScene(runtimeScene).add(tween);\n };\n\n export const tweenCamera = (\n runtimeScene: RuntimeScene,\n identifier: string,\n toX: number,\n toY: number,\n layerName: string,\n duration: number,\n easing: shifty.easingFunction\n ) => {\n const layer = runtimeScene.getLayer(layerName);\n const tween = shifty.tween({\n from: { x: layer.getCameraX(), y: layer.getCameraY() },\n to: { x: toX, y: toY },\n easing,\n duration,\n render: ({ x, y }) => {\n layer.setCameraX(x);\n layer.setCameraY(y);\n },\n });\n\n getTweensMap(runtimeScene).set(identifier, tween);\n getShiftyScene(runtimeScene).add(tween);\n };\n\n export const tweenCameraZoom = (\n runtimeScene: RuntimeScene,\n identifier: string,\n toZoom: number,\n layerName: string,\n duration: number,\n easing: shifty.easingFunction\n ) => {\n const layer = runtimeScene.getLayer(layerName);\n const tween = shifty.tween({\n from: { zoom: layer.getCameraZoom() },\n to: { zoom: toZoom },\n easing,\n duration,\n render: ({ zoom }) => {\n layer.setCameraZoom(zoom);\n },\n });\n\n getTweensMap(runtimeScene).set(identifier, tween);\n getShiftyScene(runtimeScene).add(tween);\n };\n\n export const tweenCameraRotation = (\n runtimeScene: RuntimeScene,\n identifier: string,\n toRotation: number,\n layerName: string,\n duration: number,\n easing: shifty.easingFunction\n ) => {\n const layer = runtimeScene.getLayer(layerName);\n const tween = shifty.tween({\n from: { rotation: layer.getCameraRotation() },\n to: { rotation: toRotation },\n easing,\n duration,\n render: ({ rotation }) => {\n layer.setCameraRotation(rotation);\n },\n });\n\n getTweensMap(runtimeScene).set(identifier, tween);\n getShiftyScene(runtimeScene).add(tween);\n };\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["gdjs", "evtTools", "tween", "easingFunctions", "easingValue", "fromValue", "toValue", "weighting", "easingFunction", "getTweensMap", "runtimeScene", "getShiftyScene", "id", "shouldGoToEnd", "tweenMap", "identifier", "variable", "from", "to", "duration", "easing", "value", "toX", "toY", "layerName", "layer", "x", "y", "toZoom", "zoom", "toRotation", "rotation"]
|
|
7
|
+
}
|