@motion-script/core 0.1.0
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/README.md +69 -0
- package/dist/assets/catalog.d.ts +83 -0
- package/dist/assets/catalog.d.ts.map +1 -0
- package/dist/assets/catalog.js +110 -0
- package/dist/assets/catalog.js.map +1 -0
- package/dist/assets/index.d.ts +5 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +4 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/assets/manager.d.ts +32 -0
- package/dist/assets/manager.d.ts.map +1 -0
- package/dist/assets/manager.js +108 -0
- package/dist/assets/manager.js.map +1 -0
- package/dist/assets/manager.test.d.ts +2 -0
- package/dist/assets/manager.test.d.ts.map +1 -0
- package/dist/assets/manager.test.js +133 -0
- package/dist/assets/manager.test.js.map +1 -0
- package/dist/assets/manifest.d.ts +38 -0
- package/dist/assets/manifest.d.ts.map +1 -0
- package/dist/assets/manifest.js +2 -0
- package/dist/assets/manifest.js.map +1 -0
- package/dist/assets/record.d.ts +40 -0
- package/dist/assets/record.d.ts.map +1 -0
- package/dist/assets/record.js +2 -0
- package/dist/assets/record.js.map +1 -0
- package/dist/assets/tracker.d.ts +69 -0
- package/dist/assets/tracker.d.ts.map +1 -0
- package/dist/assets/tracker.js +178 -0
- package/dist/assets/tracker.js.map +1 -0
- package/dist/attributes/audio/request.d.ts +21 -0
- package/dist/attributes/audio/request.d.ts.map +1 -0
- package/dist/attributes/audio/request.js +2 -0
- package/dist/attributes/audio/request.js.map +1 -0
- package/dist/attributes/audio/sound.d.ts +83 -0
- package/dist/attributes/audio/sound.d.ts.map +1 -0
- package/dist/attributes/audio/sound.js +106 -0
- package/dist/attributes/audio/sound.js.map +1 -0
- package/dist/attributes/index.d.ts +18 -0
- package/dist/attributes/index.d.ts.map +1 -0
- package/dist/attributes/index.js +17 -0
- package/dist/attributes/index.js.map +1 -0
- package/dist/attributes/layout/bounds.d.ts +12 -0
- package/dist/attributes/layout/bounds.d.ts.map +1 -0
- package/dist/attributes/layout/bounds.js +2 -0
- package/dist/attributes/layout/bounds.js.map +1 -0
- package/dist/attributes/layout/constraints.d.ts +6 -0
- package/dist/attributes/layout/constraints.d.ts.map +1 -0
- package/dist/attributes/layout/constraints.js +2 -0
- package/dist/attributes/layout/constraints.js.map +1 -0
- package/dist/attributes/layout/index.d.ts +6 -0
- package/dist/attributes/layout/index.d.ts.map +1 -0
- package/dist/attributes/layout/index.js +2 -0
- package/dist/attributes/layout/index.js.map +1 -0
- package/dist/attributes/layout/padding.d.ts +26 -0
- package/dist/attributes/layout/padding.d.ts.map +1 -0
- package/dist/attributes/layout/padding.js +17 -0
- package/dist/attributes/layout/padding.js.map +1 -0
- package/dist/attributes/layout/padding.test.d.ts +2 -0
- package/dist/attributes/layout/padding.test.d.ts.map +1 -0
- package/dist/attributes/layout/padding.test.js +32 -0
- package/dist/attributes/layout/padding.test.js.map +1 -0
- package/dist/attributes/layout/size.d.ts +14 -0
- package/dist/attributes/layout/size.d.ts.map +1 -0
- package/dist/attributes/layout/size.js +2 -0
- package/dist/attributes/layout/size.js.map +1 -0
- package/dist/attributes/layout/vector2.d.ts +8 -0
- package/dist/attributes/layout/vector2.d.ts.map +1 -0
- package/dist/attributes/layout/vector2.js +8 -0
- package/dist/attributes/layout/vector2.js.map +1 -0
- package/dist/attributes/layout/vector2.test.d.ts +2 -0
- package/dist/attributes/layout/vector2.test.d.ts.map +1 -0
- package/dist/attributes/layout/vector2.test.js +23 -0
- package/dist/attributes/layout/vector2.test.js.map +1 -0
- package/dist/attributes/mask/boolean.d.ts +2 -0
- package/dist/attributes/mask/boolean.d.ts.map +1 -0
- package/dist/attributes/mask/boolean.js +2 -0
- package/dist/attributes/mask/boolean.js.map +1 -0
- package/dist/attributes/mask/mask.d.ts +9 -0
- package/dist/attributes/mask/mask.d.ts.map +1 -0
- package/dist/attributes/mask/mask.js +2 -0
- package/dist/attributes/mask/mask.js.map +1 -0
- package/dist/attributes/properties/decorator.d.ts +45 -0
- package/dist/attributes/properties/decorator.d.ts.map +1 -0
- package/dist/attributes/properties/decorator.js +72 -0
- package/dist/attributes/properties/decorator.js.map +1 -0
- package/dist/attributes/properties/decorator.test.d.ts +2 -0
- package/dist/attributes/properties/decorator.test.d.ts.map +1 -0
- package/dist/attributes/properties/decorator.test.js +52 -0
- package/dist/attributes/properties/decorator.test.js.map +1 -0
- package/dist/attributes/shape/corners/border-radius.d.ts +32 -0
- package/dist/attributes/shape/corners/border-radius.d.ts.map +1 -0
- package/dist/attributes/shape/corners/border-radius.js +50 -0
- package/dist/attributes/shape/corners/border-radius.js.map +1 -0
- package/dist/attributes/shape/corners/border-radius.test.d.ts +2 -0
- package/dist/attributes/shape/corners/border-radius.test.d.ts.map +1 -0
- package/dist/attributes/shape/corners/border-radius.test.js +52 -0
- package/dist/attributes/shape/corners/border-radius.test.js.map +1 -0
- package/dist/attributes/shape/corners/index.d.ts +2 -0
- package/dist/attributes/shape/corners/index.d.ts.map +1 -0
- package/dist/attributes/shape/corners/index.js +2 -0
- package/dist/attributes/shape/corners/index.js.map +1 -0
- package/dist/attributes/shape/effects/chain.d.ts +145 -0
- package/dist/attributes/shape/effects/chain.d.ts.map +1 -0
- package/dist/attributes/shape/effects/chain.js +163 -0
- package/dist/attributes/shape/effects/chain.js.map +1 -0
- package/dist/attributes/shape/effects/chain.test.d.ts +2 -0
- package/dist/attributes/shape/effects/chain.test.d.ts.map +1 -0
- package/dist/attributes/shape/effects/chain.test.js +63 -0
- package/dist/attributes/shape/effects/chain.test.js.map +1 -0
- package/dist/attributes/shape/effects/effect-data.d.ts +18 -0
- package/dist/attributes/shape/effects/effect-data.d.ts.map +1 -0
- package/dist/attributes/shape/effects/effect-data.js +2 -0
- package/dist/attributes/shape/effects/effect-data.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/background-blur.d.ts +13 -0
- package/dist/attributes/shape/effects/implementations/background-blur.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/background-blur.js +6 -0
- package/dist/attributes/shape/effects/implementations/background-blur.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/bloom.d.ts +12 -0
- package/dist/attributes/shape/effects/implementations/bloom.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/bloom.js +11 -0
- package/dist/attributes/shape/effects/implementations/bloom.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/blur.d.ts +7 -0
- package/dist/attributes/shape/effects/implementations/blur.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/blur.js +6 -0
- package/dist/attributes/shape/effects/implementations/blur.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/bulge-pinch.d.ts +13 -0
- package/dist/attributes/shape/effects/implementations/bulge-pinch.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/bulge-pinch.js +15 -0
- package/dist/attributes/shape/effects/implementations/bulge-pinch.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/chromatic-aberration.d.ts +10 -0
- package/dist/attributes/shape/effects/implementations/chromatic-aberration.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/chromatic-aberration.js +10 -0
- package/dist/attributes/shape/effects/implementations/chromatic-aberration.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/grayscale.d.ts +7 -0
- package/dist/attributes/shape/effects/implementations/grayscale.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/grayscale.js +6 -0
- package/dist/attributes/shape/effects/implementations/grayscale.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/pixelate.d.ts +8 -0
- package/dist/attributes/shape/effects/implementations/pixelate.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/pixelate.js +10 -0
- package/dist/attributes/shape/effects/implementations/pixelate.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/sksl.d.ts +39 -0
- package/dist/attributes/shape/effects/implementations/sksl.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/sksl.js +48 -0
- package/dist/attributes/shape/effects/implementations/sksl.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/texture.d.ts +9 -0
- package/dist/attributes/shape/effects/implementations/texture.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/texture.js +11 -0
- package/dist/attributes/shape/effects/implementations/texture.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/vintage.d.ts +10 -0
- package/dist/attributes/shape/effects/implementations/vintage.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/vintage.js +10 -0
- package/dist/attributes/shape/effects/implementations/vintage.js.map +1 -0
- package/dist/attributes/shape/effects/implementations/zoom.d.ts +14 -0
- package/dist/attributes/shape/effects/implementations/zoom.d.ts.map +1 -0
- package/dist/attributes/shape/effects/implementations/zoom.js +13 -0
- package/dist/attributes/shape/effects/implementations/zoom.js.map +1 -0
- package/dist/attributes/shape/effects/index.d.ts +19 -0
- package/dist/attributes/shape/effects/index.d.ts.map +1 -0
- package/dist/attributes/shape/effects/index.js +4 -0
- package/dist/attributes/shape/effects/index.js.map +1 -0
- package/dist/attributes/shape/effects/registry.d.ts +4 -0
- package/dist/attributes/shape/effects/registry.d.ts.map +1 -0
- package/dist/attributes/shape/effects/registry.js +51 -0
- package/dist/attributes/shape/effects/registry.js.map +1 -0
- package/dist/attributes/shape/effects/union.d.ts +14 -0
- package/dist/attributes/shape/effects/union.d.ts.map +1 -0
- package/dist/attributes/shape/effects/union.js +2 -0
- package/dist/attributes/shape/effects/union.js.map +1 -0
- package/dist/attributes/shape/fill/blend.d.ts +13 -0
- package/dist/attributes/shape/fill/blend.d.ts.map +1 -0
- package/dist/attributes/shape/fill/blend.js +32 -0
- package/dist/attributes/shape/fill/blend.js.map +1 -0
- package/dist/attributes/shape/fill/blend.test.d.ts +2 -0
- package/dist/attributes/shape/fill/blend.test.d.ts.map +1 -0
- package/dist/attributes/shape/fill/blend.test.js +18 -0
- package/dist/attributes/shape/fill/blend.test.js.map +1 -0
- package/dist/attributes/shape/fill/chain.d.ts +127 -0
- package/dist/attributes/shape/fill/chain.d.ts.map +1 -0
- package/dist/attributes/shape/fill/chain.js +116 -0
- package/dist/attributes/shape/fill/chain.js.map +1 -0
- package/dist/attributes/shape/fill/chain.test.d.ts +2 -0
- package/dist/attributes/shape/fill/chain.test.d.ts.map +1 -0
- package/dist/attributes/shape/fill/chain.test.js +92 -0
- package/dist/attributes/shape/fill/chain.test.js.map +1 -0
- package/dist/attributes/shape/fill/color/constants.d.ts +13 -0
- package/dist/attributes/shape/fill/color/constants.d.ts.map +1 -0
- package/dist/attributes/shape/fill/color/constants.js +162 -0
- package/dist/attributes/shape/fill/color/constants.js.map +1 -0
- package/dist/attributes/shape/fill/color/parser.d.ts +39 -0
- package/dist/attributes/shape/fill/color/parser.d.ts.map +1 -0
- package/dist/attributes/shape/fill/color/parser.js +212 -0
- package/dist/attributes/shape/fill/color/parser.js.map +1 -0
- package/dist/attributes/shape/fill/color/parser.test.d.ts +2 -0
- package/dist/attributes/shape/fill/color/parser.test.d.ts.map +1 -0
- package/dist/attributes/shape/fill/color/parser.test.js +99 -0
- package/dist/attributes/shape/fill/color/parser.test.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/color.d.ts +17 -0
- package/dist/attributes/shape/fill/implementations/color.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/color.js +24 -0
- package/dist/attributes/shape/fill/implementations/color.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/conic-gradient.d.ts +24 -0
- package/dist/attributes/shape/fill/implementations/conic-gradient.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/conic-gradient.js +33 -0
- package/dist/attributes/shape/fill/implementations/conic-gradient.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/image.d.ts +27 -0
- package/dist/attributes/shape/fill/implementations/image.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/image.js +16 -0
- package/dist/attributes/shape/fill/implementations/image.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/linear-gradient.d.ts +24 -0
- package/dist/attributes/shape/fill/implementations/linear-gradient.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/linear-gradient.js +33 -0
- package/dist/attributes/shape/fill/implementations/linear-gradient.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/noise.d.ts +22 -0
- package/dist/attributes/shape/fill/implementations/noise.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/noise.js +35 -0
- package/dist/attributes/shape/fill/implementations/noise.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/radial-gradient.d.ts +24 -0
- package/dist/attributes/shape/fill/implementations/radial-gradient.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/radial-gradient.js +33 -0
- package/dist/attributes/shape/fill/implementations/radial-gradient.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/stripe.d.ts +23 -0
- package/dist/attributes/shape/fill/implementations/stripe.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/stripe.js +36 -0
- package/dist/attributes/shape/fill/implementations/stripe.js.map +1 -0
- package/dist/attributes/shape/fill/implementations/video.d.ts +41 -0
- package/dist/attributes/shape/fill/implementations/video.d.ts.map +1 -0
- package/dist/attributes/shape/fill/implementations/video.js +51 -0
- package/dist/attributes/shape/fill/implementations/video.js.map +1 -0
- package/dist/attributes/shape/fill/index.d.ts +18 -0
- package/dist/attributes/shape/fill/index.d.ts.map +1 -0
- package/dist/attributes/shape/fill/index.js +5 -0
- package/dist/attributes/shape/fill/index.js.map +1 -0
- package/dist/attributes/shape/fill/lerp.d.ts +11 -0
- package/dist/attributes/shape/fill/lerp.d.ts.map +1 -0
- package/dist/attributes/shape/fill/lerp.js +17 -0
- package/dist/attributes/shape/fill/lerp.js.map +1 -0
- package/dist/attributes/shape/fill/lerp.test.d.ts +2 -0
- package/dist/attributes/shape/fill/lerp.test.d.ts.map +1 -0
- package/dist/attributes/shape/fill/lerp.test.js +18 -0
- package/dist/attributes/shape/fill/lerp.test.js.map +1 -0
- package/dist/attributes/shape/fill/registry.d.ts +28 -0
- package/dist/attributes/shape/fill/registry.d.ts.map +1 -0
- package/dist/attributes/shape/fill/registry.js +83 -0
- package/dist/attributes/shape/fill/registry.js.map +1 -0
- package/dist/attributes/shape/fill/union.d.ts +50 -0
- package/dist/attributes/shape/fill/union.d.ts.map +1 -0
- package/dist/attributes/shape/fill/union.js +11 -0
- package/dist/attributes/shape/fill/union.js.map +1 -0
- package/dist/attributes/shape/filters/chain.d.ts +65 -0
- package/dist/attributes/shape/filters/chain.d.ts.map +1 -0
- package/dist/attributes/shape/filters/chain.js +83 -0
- package/dist/attributes/shape/filters/chain.js.map +1 -0
- package/dist/attributes/shape/filters/chain.test.d.ts +2 -0
- package/dist/attributes/shape/filters/chain.test.d.ts.map +1 -0
- package/dist/attributes/shape/filters/chain.test.js +49 -0
- package/dist/attributes/shape/filters/chain.test.js.map +1 -0
- package/dist/attributes/shape/filters/implementations/alpha.d.ts +7 -0
- package/dist/attributes/shape/filters/implementations/alpha.d.ts.map +1 -0
- package/dist/attributes/shape/filters/implementations/alpha.js +7 -0
- package/dist/attributes/shape/filters/implementations/alpha.js.map +1 -0
- package/dist/attributes/shape/filters/implementations/blur.d.ts +7 -0
- package/dist/attributes/shape/filters/implementations/blur.d.ts.map +1 -0
- package/dist/attributes/shape/filters/implementations/blur.js +7 -0
- package/dist/attributes/shape/filters/implementations/blur.js.map +1 -0
- package/dist/attributes/shape/filters/implementations/color-adjustment.d.ts +26 -0
- package/dist/attributes/shape/filters/implementations/color-adjustment.d.ts.map +1 -0
- package/dist/attributes/shape/filters/implementations/color-adjustment.js +26 -0
- package/dist/attributes/shape/filters/implementations/color-adjustment.js.map +1 -0
- package/dist/attributes/shape/filters/implementations/color-matrix.d.ts +13 -0
- package/dist/attributes/shape/filters/implementations/color-matrix.d.ts.map +1 -0
- package/dist/attributes/shape/filters/implementations/color-matrix.js +12 -0
- package/dist/attributes/shape/filters/implementations/color-matrix.js.map +1 -0
- package/dist/attributes/shape/filters/implementations/curves.d.ts +17 -0
- package/dist/attributes/shape/filters/implementations/curves.d.ts.map +1 -0
- package/dist/attributes/shape/filters/implementations/curves.js +18 -0
- package/dist/attributes/shape/filters/implementations/curves.js.map +1 -0
- package/dist/attributes/shape/filters/implementations/exposure.d.ts +7 -0
- package/dist/attributes/shape/filters/implementations/exposure.d.ts.map +1 -0
- package/dist/attributes/shape/filters/implementations/exposure.js +7 -0
- package/dist/attributes/shape/filters/implementations/exposure.js.map +1 -0
- package/dist/attributes/shape/filters/implementations/grayscale.d.ts +7 -0
- package/dist/attributes/shape/filters/implementations/grayscale.d.ts.map +1 -0
- package/dist/attributes/shape/filters/implementations/grayscale.js +7 -0
- package/dist/attributes/shape/filters/implementations/grayscale.js.map +1 -0
- package/dist/attributes/shape/filters/index.d.ts +16 -0
- package/dist/attributes/shape/filters/index.d.ts.map +1 -0
- package/dist/attributes/shape/filters/index.js +5 -0
- package/dist/attributes/shape/filters/index.js.map +1 -0
- package/dist/attributes/shape/filters/registry.d.ts +37 -0
- package/dist/attributes/shape/filters/registry.d.ts.map +1 -0
- package/dist/attributes/shape/filters/registry.js +60 -0
- package/dist/attributes/shape/filters/registry.js.map +1 -0
- package/dist/attributes/shape/filters/registry.test.d.ts +5 -0
- package/dist/attributes/shape/filters/registry.test.d.ts.map +1 -0
- package/dist/attributes/shape/filters/registry.test.js +75 -0
- package/dist/attributes/shape/filters/registry.test.js.map +1 -0
- package/dist/attributes/shape/filters/union.d.ts +10 -0
- package/dist/attributes/shape/filters/union.d.ts.map +1 -0
- package/dist/attributes/shape/filters/union.js +2 -0
- package/dist/attributes/shape/filters/union.js.map +1 -0
- package/dist/attributes/shape/path/bezier.d.ts +28 -0
- package/dist/attributes/shape/path/bezier.d.ts.map +1 -0
- package/dist/attributes/shape/path/bezier.js +76 -0
- package/dist/attributes/shape/path/bezier.js.map +1 -0
- package/dist/attributes/shape/path/bezier.test.d.ts +2 -0
- package/dist/attributes/shape/path/bezier.test.d.ts.map +1 -0
- package/dist/attributes/shape/path/bezier.test.js +85 -0
- package/dist/attributes/shape/path/bezier.test.js.map +1 -0
- package/dist/attributes/shape/path/dash.d.ts +15 -0
- package/dist/attributes/shape/path/dash.d.ts.map +1 -0
- package/dist/attributes/shape/path/dash.js +299 -0
- package/dist/attributes/shape/path/dash.js.map +1 -0
- package/dist/attributes/shape/path/dash.test.d.ts +2 -0
- package/dist/attributes/shape/path/dash.test.d.ts.map +1 -0
- package/dist/attributes/shape/path/dash.test.js +36 -0
- package/dist/attributes/shape/path/dash.test.js.map +1 -0
- package/dist/attributes/shape/path/index.d.ts +5 -0
- package/dist/attributes/shape/path/index.d.ts.map +1 -0
- package/dist/attributes/shape/path/index.js +5 -0
- package/dist/attributes/shape/path/index.js.map +1 -0
- package/dist/attributes/shape/path/length.d.ts +14 -0
- package/dist/attributes/shape/path/length.d.ts.map +1 -0
- package/dist/attributes/shape/path/length.js +169 -0
- package/dist/attributes/shape/path/length.js.map +1 -0
- package/dist/attributes/shape/path/length.test.d.ts +2 -0
- package/dist/attributes/shape/path/length.test.d.ts.map +1 -0
- package/dist/attributes/shape/path/length.test.js +56 -0
- package/dist/attributes/shape/path/length.test.js.map +1 -0
- package/dist/attributes/shape/path/subpath.d.ts +15 -0
- package/dist/attributes/shape/path/subpath.d.ts.map +1 -0
- package/dist/attributes/shape/path/subpath.js +486 -0
- package/dist/attributes/shape/path/subpath.js.map +1 -0
- package/dist/attributes/shape/path/subpath.test.d.ts +2 -0
- package/dist/attributes/shape/path/subpath.test.d.ts.map +1 -0
- package/dist/attributes/shape/path/subpath.test.js +54 -0
- package/dist/attributes/shape/path/subpath.test.js.map +1 -0
- package/dist/attributes/shape/shadow/index.d.ts +5 -0
- package/dist/attributes/shape/shadow/index.d.ts.map +1 -0
- package/dist/attributes/shape/shadow/index.js +3 -0
- package/dist/attributes/shape/shadow/index.js.map +1 -0
- package/dist/attributes/shape/shadow/lerp.d.ts +3 -0
- package/dist/attributes/shape/shadow/lerp.d.ts.map +1 -0
- package/dist/attributes/shape/shadow/lerp.js +30 -0
- package/dist/attributes/shape/shadow/lerp.js.map +1 -0
- package/dist/attributes/shape/shadow/resolver.d.ts +22 -0
- package/dist/attributes/shape/shadow/resolver.d.ts.map +1 -0
- package/dist/attributes/shape/shadow/resolver.js +17 -0
- package/dist/attributes/shape/shadow/resolver.js.map +1 -0
- package/dist/attributes/shape/stroke/index.d.ts +5 -0
- package/dist/attributes/shape/stroke/index.d.ts.map +1 -0
- package/dist/attributes/shape/stroke/index.js +3 -0
- package/dist/attributes/shape/stroke/index.js.map +1 -0
- package/dist/attributes/shape/stroke/lerp.d.ts +3 -0
- package/dist/attributes/shape/stroke/lerp.d.ts.map +1 -0
- package/dist/attributes/shape/stroke/lerp.js +30 -0
- package/dist/attributes/shape/stroke/lerp.js.map +1 -0
- package/dist/attributes/shape/stroke/mapper.d.ts +24 -0
- package/dist/attributes/shape/stroke/mapper.d.ts.map +1 -0
- package/dist/attributes/shape/stroke/mapper.js +25 -0
- package/dist/attributes/shape/stroke/mapper.js.map +1 -0
- package/dist/attributes/text/align.d.ts +2 -0
- package/dist/attributes/text/align.d.ts.map +1 -0
- package/dist/attributes/text/align.js +2 -0
- package/dist/attributes/text/align.js.map +1 -0
- package/dist/attributes/text/lerp.d.ts +8 -0
- package/dist/attributes/text/lerp.d.ts.map +1 -0
- package/dist/attributes/text/lerp.js +38 -0
- package/dist/attributes/text/lerp.js.map +1 -0
- package/dist/attributes/text/lerp.test.d.ts +2 -0
- package/dist/attributes/text/lerp.test.d.ts.map +1 -0
- package/dist/attributes/text/lerp.test.js +39 -0
- package/dist/attributes/text/lerp.test.js.map +1 -0
- package/dist/attributes/text/span.d.ts +37 -0
- package/dist/attributes/text/span.d.ts.map +1 -0
- package/dist/attributes/text/span.js +2 -0
- package/dist/attributes/text/span.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/jsx/jsx-dev-runtime.d.ts +19 -0
- package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-dev-runtime.js +16 -0
- package/dist/jsx/jsx-dev-runtime.js.map +1 -0
- package/dist/jsx/jsx-runtime.d.ts +19 -0
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-runtime.js +16 -0
- package/dist/jsx/jsx-runtime.js.map +1 -0
- package/dist/layout/flex.d.ts +66 -0
- package/dist/layout/flex.d.ts.map +1 -0
- package/dist/layout/flex.js +196 -0
- package/dist/layout/flex.js.map +1 -0
- package/dist/layout/flex.test.d.ts +2 -0
- package/dist/layout/flex.test.d.ts.map +1 -0
- package/dist/layout/flex.test.js +336 -0
- package/dist/layout/flex.test.js.map +1 -0
- package/dist/layout/grid.d.ts +38 -0
- package/dist/layout/grid.d.ts.map +1 -0
- package/dist/layout/grid.js +117 -0
- package/dist/layout/grid.js.map +1 -0
- package/dist/layout/index.d.ts +6 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +6 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/layout/padding.d.ts +19 -0
- package/dist/layout/padding.d.ts.map +1 -0
- package/dist/layout/padding.js +16 -0
- package/dist/layout/padding.js.map +1 -0
- package/dist/layout/padding.test.d.ts +2 -0
- package/dist/layout/padding.test.d.ts.map +1 -0
- package/dist/layout/padding.test.js +39 -0
- package/dist/layout/padding.test.js.map +1 -0
- package/dist/layout/size-resolver.d.ts +13 -0
- package/dist/layout/size-resolver.d.ts.map +1 -0
- package/dist/layout/size-resolver.js +22 -0
- package/dist/layout/size-resolver.js.map +1 -0
- package/dist/layout/size-resolver.test.d.ts +2 -0
- package/dist/layout/size-resolver.test.d.ts.map +1 -0
- package/dist/layout/size-resolver.test.js +24 -0
- package/dist/layout/size-resolver.test.js.map +1 -0
- package/dist/layout/tweens.d.ts +5 -0
- package/dist/layout/tweens.d.ts.map +1 -0
- package/dist/layout/tweens.js +16 -0
- package/dist/layout/tweens.js.map +1 -0
- package/dist/layout/tweens.test.d.ts +2 -0
- package/dist/layout/tweens.test.d.ts.map +1 -0
- package/dist/layout/tweens.test.js +26 -0
- package/dist/layout/tweens.test.js.map +1 -0
- package/dist/nodes/base/boolean-node.d.ts +14 -0
- package/dist/nodes/base/boolean-node.d.ts.map +1 -0
- package/dist/nodes/base/boolean-node.js +34 -0
- package/dist/nodes/base/boolean-node.js.map +1 -0
- package/dist/nodes/base/camera-node.d.ts +27 -0
- package/dist/nodes/base/camera-node.d.ts.map +1 -0
- package/dist/nodes/base/camera-node.js +31 -0
- package/dist/nodes/base/camera-node.js.map +1 -0
- package/dist/nodes/base/mask-node.d.ts +14 -0
- package/dist/nodes/base/mask-node.d.ts.map +1 -0
- package/dist/nodes/base/mask-node.js +37 -0
- package/dist/nodes/base/mask-node.js.map +1 -0
- package/dist/nodes/base/node.d.ts +284 -0
- package/dist/nodes/base/node.d.ts.map +1 -0
- package/dist/nodes/base/node.js +800 -0
- package/dist/nodes/base/node.js.map +1 -0
- package/dist/nodes/base/scene-node.d.ts +45 -0
- package/dist/nodes/base/scene-node.d.ts.map +1 -0
- package/dist/nodes/base/scene-node.js +122 -0
- package/dist/nodes/base/scene-node.js.map +1 -0
- package/dist/nodes/geometry/ellipse-node.d.ts +18 -0
- package/dist/nodes/geometry/ellipse-node.d.ts.map +1 -0
- package/dist/nodes/geometry/ellipse-node.js +55 -0
- package/dist/nodes/geometry/ellipse-node.js.map +1 -0
- package/dist/nodes/geometry/grid-node.d.ts +40 -0
- package/dist/nodes/geometry/grid-node.d.ts.map +1 -0
- package/dist/nodes/geometry/grid-node.js +138 -0
- package/dist/nodes/geometry/grid-node.js.map +1 -0
- package/dist/nodes/geometry/line-node.d.ts +17 -0
- package/dist/nodes/geometry/line-node.d.ts.map +1 -0
- package/dist/nodes/geometry/line-node.js +34 -0
- package/dist/nodes/geometry/line-node.js.map +1 -0
- package/dist/nodes/geometry/path-node.d.ts +17 -0
- package/dist/nodes/geometry/path-node.d.ts.map +1 -0
- package/dist/nodes/geometry/path-node.js +230 -0
- package/dist/nodes/geometry/path-node.js.map +1 -0
- package/dist/nodes/geometry/polygon-node.d.ts +20 -0
- package/dist/nodes/geometry/polygon-node.d.ts.map +1 -0
- package/dist/nodes/geometry/polygon-node.js +42 -0
- package/dist/nodes/geometry/polygon-node.js.map +1 -0
- package/dist/nodes/geometry/polygram-node.d.ts +27 -0
- package/dist/nodes/geometry/polygram-node.d.ts.map +1 -0
- package/dist/nodes/geometry/polygram-node.js +47 -0
- package/dist/nodes/geometry/polygram-node.js.map +1 -0
- package/dist/nodes/geometry/rect-node.d.ts +50 -0
- package/dist/nodes/geometry/rect-node.d.ts.map +1 -0
- package/dist/nodes/geometry/rect-node.js +275 -0
- package/dist/nodes/geometry/rect-node.js.map +1 -0
- package/dist/nodes/geometry/shape-node.d.ts +66 -0
- package/dist/nodes/geometry/shape-node.d.ts.map +1 -0
- package/dist/nodes/geometry/shape-node.js +127 -0
- package/dist/nodes/geometry/shape-node.js.map +1 -0
- package/dist/nodes/index.d.ts +17 -0
- package/dist/nodes/index.d.ts.map +1 -0
- package/dist/nodes/index.js +20 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/media/image-node.d.ts +28 -0
- package/dist/nodes/media/image-node.d.ts.map +1 -0
- package/dist/nodes/media/image-node.js +53 -0
- package/dist/nodes/media/image-node.js.map +1 -0
- package/dist/nodes/text/richtext-node.d.ts +46 -0
- package/dist/nodes/text/richtext-node.d.ts.map +1 -0
- package/dist/nodes/text/richtext-node.js +155 -0
- package/dist/nodes/text/richtext-node.js.map +1 -0
- package/dist/nodes/text/text-node.d.ts +42 -0
- package/dist/nodes/text/text-node.d.ts.map +1 -0
- package/dist/nodes/text/text-node.js +123 -0
- package/dist/nodes/text/text-node.js.map +1 -0
- package/dist/platform/audio-device.d.ts +40 -0
- package/dist/platform/audio-device.d.ts.map +1 -0
- package/dist/platform/audio-device.js +19 -0
- package/dist/platform/audio-device.js.map +1 -0
- package/dist/platform/index.d.ts +4 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/index.js +4 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/master-clock.d.ts +54 -0
- package/dist/platform/master-clock.d.ts.map +1 -0
- package/dist/platform/master-clock.js +85 -0
- package/dist/platform/master-clock.js.map +1 -0
- package/dist/platform/storage-adapter.d.ts +29 -0
- package/dist/platform/storage-adapter.d.ts.map +1 -0
- package/dist/platform/storage-adapter.js +70 -0
- package/dist/platform/storage-adapter.js.map +1 -0
- package/dist/project/config.d.ts +24 -0
- package/dist/project/config.d.ts.map +1 -0
- package/dist/project/config.js +14 -0
- package/dist/project/config.js.map +1 -0
- package/dist/project/config.test.d.ts +2 -0
- package/dist/project/config.test.d.ts.map +1 -0
- package/dist/project/config.test.js +28 -0
- package/dist/project/config.test.js.map +1 -0
- package/dist/project/index.d.ts +3 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +3 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/tree.d.ts +48 -0
- package/dist/project/tree.d.ts.map +1 -0
- package/dist/project/tree.js +11 -0
- package/dist/project/tree.js.map +1 -0
- package/dist/render/build-stage.d.ts +63 -0
- package/dist/render/build-stage.d.ts.map +1 -0
- package/dist/render/build-stage.js +91 -0
- package/dist/render/build-stage.js.map +1 -0
- package/dist/render/descriptors/ellipse.d.ts +10 -0
- package/dist/render/descriptors/ellipse.d.ts.map +1 -0
- package/dist/render/descriptors/ellipse.js +20 -0
- package/dist/render/descriptors/ellipse.js.map +1 -0
- package/dist/render/descriptors/image.d.ts +12 -0
- package/dist/render/descriptors/image.d.ts.map +1 -0
- package/dist/render/descriptors/image.js +12 -0
- package/dist/render/descriptors/image.js.map +1 -0
- package/dist/render/descriptors/latex.d.ts +6 -0
- package/dist/render/descriptors/latex.d.ts.map +1 -0
- package/dist/render/descriptors/latex.js +2 -0
- package/dist/render/descriptors/latex.js.map +1 -0
- package/dist/render/descriptors/line.d.ts +9 -0
- package/dist/render/descriptors/line.d.ts.map +1 -0
- package/dist/render/descriptors/line.js +19 -0
- package/dist/render/descriptors/line.js.map +1 -0
- package/dist/render/descriptors/path-builder.d.ts +14 -0
- package/dist/render/descriptors/path-builder.d.ts.map +1 -0
- package/dist/render/descriptors/path-builder.js +34 -0
- package/dist/render/descriptors/path-builder.js.map +1 -0
- package/dist/render/descriptors/path.d.ts +105 -0
- package/dist/render/descriptors/path.d.ts.map +1 -0
- package/dist/render/descriptors/path.js +45 -0
- package/dist/render/descriptors/path.js.map +1 -0
- package/dist/render/descriptors/path.test.d.ts +2 -0
- package/dist/render/descriptors/path.test.d.ts.map +1 -0
- package/dist/render/descriptors/path.test.js +40 -0
- package/dist/render/descriptors/path.test.js.map +1 -0
- package/dist/render/descriptors/polygon.d.ts +9 -0
- package/dist/render/descriptors/polygon.d.ts.map +1 -0
- package/dist/render/descriptors/polygon.js +19 -0
- package/dist/render/descriptors/polygon.js.map +1 -0
- package/dist/render/descriptors/polygram.d.ts +10 -0
- package/dist/render/descriptors/polygram.d.ts.map +1 -0
- package/dist/render/descriptors/polygram.js +20 -0
- package/dist/render/descriptors/polygram.js.map +1 -0
- package/dist/render/descriptors/rect.d.ts +9 -0
- package/dist/render/descriptors/rect.d.ts.map +1 -0
- package/dist/render/descriptors/rect.js +18 -0
- package/dist/render/descriptors/rect.js.map +1 -0
- package/dist/render/descriptors/richtext.d.ts +12 -0
- package/dist/render/descriptors/richtext.d.ts.map +1 -0
- package/dist/render/descriptors/richtext.js +20 -0
- package/dist/render/descriptors/richtext.js.map +1 -0
- package/dist/render/descriptors/shape.d.ts +6 -0
- package/dist/render/descriptors/shape.d.ts.map +1 -0
- package/dist/render/descriptors/shape.js +2 -0
- package/dist/render/descriptors/shape.js.map +1 -0
- package/dist/render/descriptors/text.d.ts +19 -0
- package/dist/render/descriptors/text.d.ts.map +1 -0
- package/dist/render/descriptors/text.js +27 -0
- package/dist/render/descriptors/text.js.map +1 -0
- package/dist/render/descriptors/transform.d.ts +16 -0
- package/dist/render/descriptors/transform.d.ts.map +1 -0
- package/dist/render/descriptors/transform.js +14 -0
- package/dist/render/descriptors/transform.js.map +1 -0
- package/dist/render/index.d.ts +17 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +16 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/measure-scope.d.ts +25 -0
- package/dist/render/measure-scope.d.ts.map +1 -0
- package/dist/render/measure-scope.js +11 -0
- package/dist/render/measure-scope.js.map +1 -0
- package/dist/render/render-context.d.ts +258 -0
- package/dist/render/render-context.d.ts.map +1 -0
- package/dist/render/render-context.js +95 -0
- package/dist/render/render-context.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +4 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/playback-controller.d.ts +105 -0
- package/dist/runtime/playback-controller.d.ts.map +1 -0
- package/dist/runtime/playback-controller.js +244 -0
- package/dist/runtime/playback-controller.js.map +1 -0
- package/dist/runtime/playback-controller.test.d.ts +2 -0
- package/dist/runtime/playback-controller.test.d.ts.map +1 -0
- package/dist/runtime/playback-controller.test.js +148 -0
- package/dist/runtime/playback-controller.test.js.map +1 -0
- package/dist/runtime/precompisition.d.ts +107 -0
- package/dist/runtime/precompisition.d.ts.map +1 -0
- package/dist/runtime/precompisition.js +202 -0
- package/dist/runtime/precompisition.js.map +1 -0
- package/dist/runtime/precompisition.test.d.ts +2 -0
- package/dist/runtime/precompisition.test.d.ts.map +1 -0
- package/dist/runtime/precompisition.test.js +138 -0
- package/dist/runtime/precompisition.test.js.map +1 -0
- package/dist/runtime/runtime.fixtures.d.ts +158 -0
- package/dist/runtime/runtime.fixtures.d.ts.map +1 -0
- package/dist/runtime/runtime.fixtures.js +264 -0
- package/dist/runtime/runtime.fixtures.js.map +1 -0
- package/dist/runtime/state-evaluator.d.ts +76 -0
- package/dist/runtime/state-evaluator.d.ts.map +1 -0
- package/dist/runtime/state-evaluator.js +162 -0
- package/dist/runtime/state-evaluator.js.map +1 -0
- package/dist/runtime/state-evaluator.test.d.ts +2 -0
- package/dist/runtime/state-evaluator.test.d.ts.map +1 -0
- package/dist/runtime/state-evaluator.test.js +122 -0
- package/dist/runtime/state-evaluator.test.js.map +1 -0
- package/dist/signals/create.d.ts +21 -0
- package/dist/signals/create.d.ts.map +1 -0
- package/dist/signals/create.js +74 -0
- package/dist/signals/create.js.map +1 -0
- package/dist/signals/create.test.d.ts +2 -0
- package/dist/signals/create.test.d.ts.map +1 -0
- package/dist/signals/create.test.js +81 -0
- package/dist/signals/create.test.js.map +1 -0
- package/dist/signals/host.d.ts +11 -0
- package/dist/signals/host.d.ts.map +1 -0
- package/dist/signals/host.js +10 -0
- package/dist/signals/host.js.map +1 -0
- package/dist/signals/index.d.ts +4 -0
- package/dist/signals/index.d.ts.map +1 -0
- package/dist/signals/index.js +3 -0
- package/dist/signals/index.js.map +1 -0
- package/dist/signals/signal-cell.test.d.ts +2 -0
- package/dist/signals/signal-cell.test.d.ts.map +1 -0
- package/dist/signals/signal-cell.test.js +202 -0
- package/dist/signals/signal-cell.test.js.map +1 -0
- package/dist/signals/signal.d.ts +46 -0
- package/dist/signals/signal.d.ts.map +1 -0
- package/dist/signals/signal.js +162 -0
- package/dist/signals/signal.js.map +1 -0
- package/dist/signals/signal.test.d.ts +2 -0
- package/dist/signals/signal.test.d.ts.map +1 -0
- package/dist/signals/signal.test.js +192 -0
- package/dist/signals/signal.test.js.map +1 -0
- package/dist/signals/subscriber.d.ts +5 -0
- package/dist/signals/subscriber.d.ts.map +1 -0
- package/dist/signals/subscriber.js +2 -0
- package/dist/signals/subscriber.js.map +1 -0
- package/dist/tween/animation-builder.d.ts +74 -0
- package/dist/tween/animation-builder.d.ts.map +1 -0
- package/dist/tween/animation-builder.js +99 -0
- package/dist/tween/animation-builder.js.map +1 -0
- package/dist/tween/ease/constants.d.ts +13 -0
- package/dist/tween/ease/constants.d.ts.map +1 -0
- package/dist/tween/ease/constants.js +71 -0
- package/dist/tween/ease/constants.js.map +1 -0
- package/dist/tween/ease/type.d.ts +2 -0
- package/dist/tween/ease/type.d.ts.map +1 -0
- package/dist/tween/ease/type.js +2 -0
- package/dist/tween/ease/type.js.map +1 -0
- package/dist/tween/eases.test.d.ts +2 -0
- package/dist/tween/eases.test.d.ts.map +1 -0
- package/dist/tween/eases.test.js +91 -0
- package/dist/tween/eases.test.js.map +1 -0
- package/dist/tween/generator.d.ts +22 -0
- package/dist/tween/generator.d.ts.map +1 -0
- package/dist/tween/generator.js +2 -0
- package/dist/tween/generator.js.map +1 -0
- package/dist/tween/index.d.ts +12 -0
- package/dist/tween/index.d.ts.map +1 -0
- package/dist/tween/index.js +12 -0
- package/dist/tween/index.js.map +1 -0
- package/dist/tween/lerp.d.ts +11 -0
- package/dist/tween/lerp.d.ts.map +1 -0
- package/dist/tween/lerp.js +13 -0
- package/dist/tween/lerp.js.map +1 -0
- package/dist/tween/lerp.test.d.ts +2 -0
- package/dist/tween/lerp.test.d.ts.map +1 -0
- package/dist/tween/lerp.test.js +22 -0
- package/dist/tween/lerp.test.js.map +1 -0
- package/dist/tween/parallel.d.ts +23 -0
- package/dist/tween/parallel.d.ts.map +1 -0
- package/dist/tween/parallel.js +79 -0
- package/dist/tween/parallel.js.map +1 -0
- package/dist/tween/prepare.d.ts +34 -0
- package/dist/tween/prepare.d.ts.map +1 -0
- package/dist/tween/prepare.js +52 -0
- package/dist/tween/prepare.js.map +1 -0
- package/dist/tween/prepare.test.d.ts +2 -0
- package/dist/tween/prepare.test.d.ts.map +1 -0
- package/dist/tween/prepare.test.js +44 -0
- package/dist/tween/prepare.test.js.map +1 -0
- package/dist/tween/sequence.d.ts +19 -0
- package/dist/tween/sequence.d.ts.map +1 -0
- package/dist/tween/sequence.js +22 -0
- package/dist/tween/sequence.js.map +1 -0
- package/dist/tween/sequence.test.d.ts +2 -0
- package/dist/tween/sequence.test.d.ts.map +1 -0
- package/dist/tween/sequence.test.js +68 -0
- package/dist/tween/sequence.test.js.map +1 -0
- package/dist/tween/stepper.d.ts +34 -0
- package/dist/tween/stepper.d.ts.map +1 -0
- package/dist/tween/stepper.js +4 -0
- package/dist/tween/stepper.js.map +1 -0
- package/dist/tween/tests/batched-parallel.test.d.ts +2 -0
- package/dist/tween/tests/batched-parallel.test.d.ts.map +1 -0
- package/dist/tween/tests/batched-parallel.test.js +76 -0
- package/dist/tween/tests/batched-parallel.test.js.map +1 -0
- package/dist/tween/tests/parallel.test.d.ts +2 -0
- package/dist/tween/tests/parallel.test.d.ts.map +1 -0
- package/dist/tween/tests/parallel.test.js +129 -0
- package/dist/tween/tests/parallel.test.js.map +1 -0
- package/dist/tween/tests/realtime.test.d.ts +2 -0
- package/dist/tween/tests/realtime.test.d.ts.map +1 -0
- package/dist/tween/tests/realtime.test.js +76 -0
- package/dist/tween/tests/realtime.test.js.map +1 -0
- package/dist/tween/tween.d.ts +18 -0
- package/dist/tween/tween.d.ts.map +1 -0
- package/dist/tween/tween.js +28 -0
- package/dist/tween/tween.js.map +1 -0
- package/dist/tween/tween.test.d.ts +2 -0
- package/dist/tween/tween.test.d.ts.map +1 -0
- package/dist/tween/tween.test.js +38 -0
- package/dist/tween/tween.test.js.map +1 -0
- package/dist/tween/wait.d.ts +19 -0
- package/dist/tween/wait.d.ts.map +1 -0
- package/dist/tween/wait.js +25 -0
- package/dist/tween/wait.js.map +1 -0
- package/dist/tween/wait.test.d.ts +2 -0
- package/dist/tween/wait.test.d.ts.map +1 -0
- package/dist/tween/wait.test.js +35 -0
- package/dist/tween/wait.test.js.map +1 -0
- package/dist/util/clamp.d.ts +12 -0
- package/dist/util/clamp.d.ts.map +1 -0
- package/dist/util/clamp.js +16 -0
- package/dist/util/clamp.js.map +1 -0
- package/dist/util/clamp.test.d.ts +2 -0
- package/dist/util/clamp.test.d.ts.map +1 -0
- package/dist/util/clamp.test.js +31 -0
- package/dist/util/clamp.test.js.map +1 -0
- package/dist/util/index.d.ts +4 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +4 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/random.d.ts +16 -0
- package/dist/util/random.d.ts.map +1 -0
- package/dist/util/random.js +28 -0
- package/dist/util/random.js.map +1 -0
- package/dist/util/random.test.d.ts +2 -0
- package/dist/util/random.test.d.ts.map +1 -0
- package/dist/util/random.test.js +42 -0
- package/dist/util/random.test.js.map +1 -0
- package/dist/util/range.d.ts +12 -0
- package/dist/util/range.d.ts.map +1 -0
- package/dist/util/range.js +11 -0
- package/dist/util/range.js.map +1 -0
- package/dist/util/reference.d.ts +15 -0
- package/dist/util/reference.d.ts.map +1 -0
- package/dist/util/reference.js +20 -0
- package/dist/util/reference.js.map +1 -0
- package/dist/util/reference.test.d.ts +2 -0
- package/dist/util/reference.test.d.ts.map +1 -0
- package/dist/util/reference.test.js +32 -0
- package/dist/util/reference.test.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TextAlign } from "../../attributes/text/align";
|
|
2
|
+
import { RenderContext } from "../../render/render-context";
|
|
3
|
+
import { SizeConstraints } from "../../attributes/layout/constraints";
|
|
4
|
+
import { MeasureScope } from "../../render/measure-scope";
|
|
5
|
+
import { Size2D } from "../../attributes/layout/size";
|
|
6
|
+
import { AssetTracker } from "../../assets/tracker";
|
|
7
|
+
import { ShapeNode, ShapeProps } from "../geometry/shape-node";
|
|
8
|
+
import { NodeConfig } from "../base/node";
|
|
9
|
+
import { FontStyle, ResolvedTextSpan, TextSpan } from "../../attributes/text/span";
|
|
10
|
+
export interface RichTextProps extends ShapeProps {
|
|
11
|
+
spans: TextSpan | TextSpan[];
|
|
12
|
+
/** Default font family inherited by spans that don't set one. */
|
|
13
|
+
fontFamily: string;
|
|
14
|
+
/** Default font size inherited by spans that don't set one. */
|
|
15
|
+
fontSize: number;
|
|
16
|
+
/** Default font weight inherited by spans that don't set one. */
|
|
17
|
+
fontWeight: number;
|
|
18
|
+
/** Default font style inherited by spans that don't set one. */
|
|
19
|
+
fontStyle: FontStyle;
|
|
20
|
+
/** Default letter spacing inherited by spans that don't set one. */
|
|
21
|
+
letterSpacing: number;
|
|
22
|
+
/** Line height multiplier applied to each run's font size. */
|
|
23
|
+
lineHeight: number;
|
|
24
|
+
align: TextAlign;
|
|
25
|
+
}
|
|
26
|
+
export declare class RichText extends ShapeNode<RichTextProps> {
|
|
27
|
+
readonly spans: TextSpan[];
|
|
28
|
+
readonly fontFamily: string;
|
|
29
|
+
readonly fontSize: number;
|
|
30
|
+
readonly fontWeight: number;
|
|
31
|
+
readonly fontStyle: FontStyle;
|
|
32
|
+
readonly letterSpacing: number;
|
|
33
|
+
readonly lineHeight: number;
|
|
34
|
+
readonly align: TextAlign;
|
|
35
|
+
constructor(props: NodeConfig<RichText, RichTextProps>);
|
|
36
|
+
prepare(storage: AssetTracker): void;
|
|
37
|
+
/**
|
|
38
|
+
* Flatten the nested span tree against this node's defaults, returning
|
|
39
|
+
* leaf runs in document order. Children inherit any style fields the
|
|
40
|
+
* parent set; explicit fields on a child override them.
|
|
41
|
+
*/
|
|
42
|
+
runs(): ResolvedTextSpan[];
|
|
43
|
+
measure(constraints: SizeConstraints, scope: MeasureScope): Partial<Size2D>;
|
|
44
|
+
protected renderSelf(ctx: RenderContext): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=richtext-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext-node.d.ts","sourceRoot":"","sources":["../../../src/nodes/text/richtext-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAG/E,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC7C,KAAK,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC7B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,EAAE,SAAS,CAAC;IACrB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,qBAAa,QAAS,SAAQ,SAAS,CAAC,aAAa,CAAC;IAIlD,SAIoB,KAAK,EAAE,QAAQ,EAAE,CAAC;IACtC,SAAiD,UAAU,EAAE,MAAM,CAAC;IACpE,SAA4C,QAAQ,EAAE,MAAM,CAAC;IAC7D,SAA6C,UAAU,EAAE,MAAM,CAAC;IAChE,SAAkD,SAAS,EAAE,SAAS,CAAC;IACvE,SAA2C,aAAa,EAAE,MAAM,CAAC;IACjE,SAA6C,UAAU,EAAE,MAAM,CAAC;IAChE,SAAkD,KAAK,EAAE,SAAS,CAAC;gBAEvD,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC;IAMtD,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAWpC;;;;OAIG;IACH,IAAI,IAAI,gBAAgB,EAAE;IAyC1B,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;cA+CxD,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAS1D"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { resolveFillArray } from "../../attributes/shape/fill/registry";
|
|
8
|
+
import { resolveStrokeArray } from "../../attributes/shape/stroke/mapper";
|
|
9
|
+
import { ShapeNode } from "../geometry/shape-node";
|
|
10
|
+
import { property } from "../../attributes/properties/decorator";
|
|
11
|
+
export class RichText extends ShapeNode {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
super(props);
|
|
14
|
+
this.applyProp("height", props.height ?? "hug");
|
|
15
|
+
this.applyProp("width", props.width ?? "hug");
|
|
16
|
+
}
|
|
17
|
+
prepare(storage) {
|
|
18
|
+
super.prepare(storage);
|
|
19
|
+
const seen = new Set();
|
|
20
|
+
for (const run of this.runs()) {
|
|
21
|
+
const key = `${run.fontFamily}@${run.fontWeight}`;
|
|
22
|
+
if (seen.has(key))
|
|
23
|
+
continue;
|
|
24
|
+
seen.add(key);
|
|
25
|
+
storage.requestFont(run.fontFamily, run.fontWeight.toString());
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Flatten the nested span tree against this node's defaults, returning
|
|
30
|
+
* leaf runs in document order. Children inherit any style fields the
|
|
31
|
+
* parent set; explicit fields on a child override them.
|
|
32
|
+
*/
|
|
33
|
+
runs() {
|
|
34
|
+
const out = [];
|
|
35
|
+
const base = {
|
|
36
|
+
fontFamily: this.fontFamily,
|
|
37
|
+
fontSize: this.fontSize,
|
|
38
|
+
fontWeight: this.fontWeight,
|
|
39
|
+
fontStyle: this.fontStyle,
|
|
40
|
+
letterSpacing: this.letterSpacing,
|
|
41
|
+
fill: this.fill,
|
|
42
|
+
stroke: this.stroke,
|
|
43
|
+
};
|
|
44
|
+
const walk = (span, inherited) => {
|
|
45
|
+
const merged = {
|
|
46
|
+
fontFamily: span.fontFamily ?? inherited.fontFamily,
|
|
47
|
+
fontSize: span.fontSize ?? inherited.fontSize,
|
|
48
|
+
fontWeight: span.fontWeight ?? inherited.fontWeight,
|
|
49
|
+
fontStyle: span.fontStyle ?? inherited.fontStyle,
|
|
50
|
+
letterSpacing: span.letterSpacing ?? inherited.letterSpacing,
|
|
51
|
+
fill: span.fill != null ? resolveFillArray(span.fill) : inherited.fill,
|
|
52
|
+
stroke: span.stroke != null ? resolveStrokeArray(span.stroke) : inherited.stroke,
|
|
53
|
+
};
|
|
54
|
+
if (span.text) {
|
|
55
|
+
out.push({
|
|
56
|
+
text: span.text,
|
|
57
|
+
fontFamily: merged.fontFamily,
|
|
58
|
+
fontSize: merged.fontSize,
|
|
59
|
+
fontWeight: merged.fontWeight,
|
|
60
|
+
fontStyle: merged.fontStyle,
|
|
61
|
+
letterSpacing: merged.letterSpacing,
|
|
62
|
+
fill: merged.fill,
|
|
63
|
+
stroke: merged.stroke,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (span.children) {
|
|
67
|
+
for (const child of span.children)
|
|
68
|
+
walk(child, merged);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
for (const span of this.spans)
|
|
72
|
+
walk(span, base);
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
measure(constraints, scope) {
|
|
76
|
+
const runs = this.runs();
|
|
77
|
+
let lineW = 0;
|
|
78
|
+
let maxLineH = 0;
|
|
79
|
+
let totalW = 0;
|
|
80
|
+
let totalH = 0;
|
|
81
|
+
const finishLine = () => {
|
|
82
|
+
if (lineW > totalW)
|
|
83
|
+
totalW = lineW;
|
|
84
|
+
totalH += maxLineH;
|
|
85
|
+
lineW = 0;
|
|
86
|
+
maxLineH = 0;
|
|
87
|
+
};
|
|
88
|
+
for (const run of runs) {
|
|
89
|
+
const lh = run.fontSize * this.lineHeight;
|
|
90
|
+
const segments = run.text.split("\n");
|
|
91
|
+
for (let i = 0; i < segments.length; i++) {
|
|
92
|
+
if (i > 0)
|
|
93
|
+
finishLine();
|
|
94
|
+
if (segments[i].length > 0) {
|
|
95
|
+
lineW += scope.measureText(segments[i], run.fontSize, run.fontFamily, run.fontWeight, run.letterSpacing, run.fontStyle);
|
|
96
|
+
}
|
|
97
|
+
if (lh > maxLineH)
|
|
98
|
+
maxLineH = lh;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
finishLine();
|
|
102
|
+
if (totalH === 0)
|
|
103
|
+
totalH = this.fontSize * this.lineHeight;
|
|
104
|
+
const wm = this.width;
|
|
105
|
+
const hm = this.height;
|
|
106
|
+
const resolvedW = typeof wm === "number"
|
|
107
|
+
? wm
|
|
108
|
+
: wm === "hug"
|
|
109
|
+
? totalW
|
|
110
|
+
: constraints.maxWidth ?? 0;
|
|
111
|
+
const resolvedH = typeof hm === "number"
|
|
112
|
+
? hm
|
|
113
|
+
: hm === "hug"
|
|
114
|
+
? totalH
|
|
115
|
+
: constraints.maxHeight ?? 0;
|
|
116
|
+
return { width: resolvedW, height: resolvedH };
|
|
117
|
+
}
|
|
118
|
+
renderSelf(ctx) {
|
|
119
|
+
ctx.richText({
|
|
120
|
+
spans: this.runs(),
|
|
121
|
+
lineHeight: this.lineHeight,
|
|
122
|
+
align: this.align,
|
|
123
|
+
width: this.layoutRect?.width ?? 0,
|
|
124
|
+
height: this.layoutRect?.height ?? 0,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
__decorate([
|
|
129
|
+
property({
|
|
130
|
+
default: [],
|
|
131
|
+
mapper: (v) => v == null ? [] : Array.isArray(v) ? v : [v],
|
|
132
|
+
})
|
|
133
|
+
], RichText.prototype, "spans", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
property({ default: "Inter" })
|
|
136
|
+
], RichText.prototype, "fontFamily", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
property({ default: 16 })
|
|
139
|
+
], RichText.prototype, "fontSize", void 0);
|
|
140
|
+
__decorate([
|
|
141
|
+
property({ default: 400 })
|
|
142
|
+
], RichText.prototype, "fontWeight", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
property({ default: 'normal' })
|
|
145
|
+
], RichText.prototype, "fontStyle", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
property({ default: 0 })
|
|
148
|
+
], RichText.prototype, "letterSpacing", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
property({ default: 1.2 })
|
|
151
|
+
], RichText.prototype, "lineHeight", void 0);
|
|
152
|
+
__decorate([
|
|
153
|
+
property({ default: 'center' })
|
|
154
|
+
], RichText.prototype, "align", void 0);
|
|
155
|
+
//# sourceMappingURL=richtext-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext-node.js","sourceRoot":"","sources":["../../../src/nodes/text/richtext-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TextAlign } from "../../attributes/text/align";
|
|
2
|
+
import { FontStyle } from "../../attributes/text/span";
|
|
3
|
+
import { ShapeNode, ShapeProps } from "../geometry/shape-node";
|
|
4
|
+
import { NodeConfig } from "../base/node";
|
|
5
|
+
import { AssetTracker } from "../../assets/tracker";
|
|
6
|
+
import { SizeConstraints } from "../../attributes/layout/constraints";
|
|
7
|
+
import { MeasureScope } from "../../render/measure-scope";
|
|
8
|
+
import { Size2D } from "../../attributes/layout/size";
|
|
9
|
+
import { EaseFunction } from "../../tween/ease/type";
|
|
10
|
+
import { FrameGenerator } from "../../tween/generator";
|
|
11
|
+
import { RenderContext } from "../../render/render-context";
|
|
12
|
+
export interface TextProps extends ShapeProps {
|
|
13
|
+
text: string;
|
|
14
|
+
fontSize: number | 'autofit';
|
|
15
|
+
fontFamily: string;
|
|
16
|
+
fontWeight: number;
|
|
17
|
+
fontStyle: FontStyle;
|
|
18
|
+
letterSpacing: number;
|
|
19
|
+
lineHeight: number;
|
|
20
|
+
align: TextAlign;
|
|
21
|
+
wrap: boolean;
|
|
22
|
+
minFontSize: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class Text extends ShapeNode<TextProps> {
|
|
25
|
+
readonly text: string;
|
|
26
|
+
readonly fontFamily: string;
|
|
27
|
+
readonly fontSize: number | 'autofit';
|
|
28
|
+
readonly fontWeight: number;
|
|
29
|
+
readonly fontStyle: FontStyle;
|
|
30
|
+
readonly letterSpacing: number;
|
|
31
|
+
readonly lineHeight: number;
|
|
32
|
+
readonly align: TextAlign;
|
|
33
|
+
readonly wrap: boolean;
|
|
34
|
+
readonly minFontSize: number;
|
|
35
|
+
constructor(props: NodeConfig<Text, TextProps>);
|
|
36
|
+
prepare(storage: AssetTracker): void;
|
|
37
|
+
measure(constraints: SizeConstraints, scope: MeasureScope): Partial<Size2D>;
|
|
38
|
+
append(text: string, duration: number, easing?: EaseFunction): FrameGenerator;
|
|
39
|
+
prepend(text: string, duration: number, easing?: EaseFunction): FrameGenerator;
|
|
40
|
+
protected renderSelf(ctx: RenderContext): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=text-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-node.d.ts","sourceRoot":"","sources":["../../../src/nodes/text/text-node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,MAAM,WAAW,SAAU,SAAQ,UAAU;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACvB;AAGD,qBAAa,IAAK,SAAQ,SAAS,CAAC,SAAS,CAAC;IAI1C,SAA2E,IAAI,EAAE,MAAM,CAAC;IACxF,SAA+D,UAAU,EAAE,MAAM,CAAC;IAClF,SAA0D,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACvF,SAA2D,UAAU,EAAE,MAAM,CAAC;IAC9E,SAAgE,SAAS,EAAE,SAAS,CAAC;IACrF,SAAyD,aAAa,EAAE,MAAM,CAAC;IAC/E,SAA2D,UAAU,EAAE,MAAM,CAAC;IAC9E,SAAgE,KAAK,EAAE,SAAS,CAAC;IACjF,SAA6D,IAAI,EAAE,OAAO,CAAC;IAC3E,SAA0D,WAAW,EAAE,MAAM,CAAC;gBAElE,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC;IAQ9C,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIpC,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B1E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc;IAI7E,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc;cAI5D,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAkB1D"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { lerpText } from "../../attributes/text/lerp";
|
|
8
|
+
import { ShapeNode } from "../geometry/shape-node";
|
|
9
|
+
import { property } from "../../attributes/properties/decorator";
|
|
10
|
+
export class Text extends ShapeNode {
|
|
11
|
+
constructor(props) {
|
|
12
|
+
super(props);
|
|
13
|
+
const autofit = props.fontSize === 'autofit';
|
|
14
|
+
this.applyProp("height", props.height ?? (autofit || props.wrap ? "fill" : "hug"));
|
|
15
|
+
this.applyProp("width", props.width ?? (autofit || props.wrap ? "fill" : "hug"));
|
|
16
|
+
}
|
|
17
|
+
prepare(storage) {
|
|
18
|
+
storage.requestFont(this.fontFamily, this.fontWeight.toString());
|
|
19
|
+
}
|
|
20
|
+
measure(constraints, scope) {
|
|
21
|
+
const measureFontSize = this.fontSize === 'autofit' ? 16 : this.fontSize;
|
|
22
|
+
const paragraphs = this.text.split("\n");
|
|
23
|
+
const lineH = measureFontSize * this.lineHeight;
|
|
24
|
+
const intrinsicW = Math.max(...paragraphs.map(l => scope.measureText(l, measureFontSize, this.fontFamily, this.fontWeight, this.letterSpacing, this.fontStyle)));
|
|
25
|
+
const wm = this.width;
|
|
26
|
+
const hm = this.height;
|
|
27
|
+
const resolvedW = typeof wm === "number"
|
|
28
|
+
? wm
|
|
29
|
+
: wm === "hug"
|
|
30
|
+
? intrinsicW
|
|
31
|
+
: constraints.maxWidth ?? 0;
|
|
32
|
+
// When wrap is on and the box has a finite width narrower than the text,
|
|
33
|
+
// height needs to account for the extra lines produced by wrapping.
|
|
34
|
+
const lineCount = this.wrap && resolvedW > 0
|
|
35
|
+
? paragraphs.reduce((n, p) => n + countWrappedLines(p, resolvedW, measureFontSize, this.fontFamily, this.fontWeight, scope, this.letterSpacing, this.fontStyle), 0)
|
|
36
|
+
: paragraphs.length;
|
|
37
|
+
const intrinsicH = lineCount * lineH;
|
|
38
|
+
const resolvedH = typeof hm === "number"
|
|
39
|
+
? hm
|
|
40
|
+
: hm === "hug"
|
|
41
|
+
? intrinsicH
|
|
42
|
+
: constraints.maxHeight ?? 0;
|
|
43
|
+
return { width: resolvedW, height: resolvedH };
|
|
44
|
+
}
|
|
45
|
+
*append(text, duration, easing) {
|
|
46
|
+
yield* this.to({ text: this.text + text }, duration, easing);
|
|
47
|
+
}
|
|
48
|
+
*prepend(text, duration, easing) {
|
|
49
|
+
yield* this.to({ text: text + this.text }, duration, easing);
|
|
50
|
+
}
|
|
51
|
+
renderSelf(ctx) {
|
|
52
|
+
ctx.text({
|
|
53
|
+
text: this.text,
|
|
54
|
+
fontSize: this.fontSize,
|
|
55
|
+
fontFamily: this.fontFamily,
|
|
56
|
+
fontWeight: this.fontWeight,
|
|
57
|
+
fontStyle: this.fontStyle,
|
|
58
|
+
letterSpacing: this.letterSpacing,
|
|
59
|
+
lineHeight: this.lineHeight,
|
|
60
|
+
align: this.align,
|
|
61
|
+
wrap: this.wrap,
|
|
62
|
+
minFontSize: this.minFontSize,
|
|
63
|
+
width: this.layoutRect?.width ?? 0,
|
|
64
|
+
height: this.layoutRect?.height ?? 0,
|
|
65
|
+
})
|
|
66
|
+
.fill(this.fill)
|
|
67
|
+
.stroke(this.stroke).shadow(this.shadow);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
__decorate([
|
|
71
|
+
property({ default: "", tween: lerpText, layout: true })
|
|
72
|
+
], Text.prototype, "text", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
property({ default: "Inter", layout: true })
|
|
75
|
+
], Text.prototype, "fontFamily", void 0);
|
|
76
|
+
__decorate([
|
|
77
|
+
property({ default: 16, layout: true })
|
|
78
|
+
], Text.prototype, "fontSize", void 0);
|
|
79
|
+
__decorate([
|
|
80
|
+
property({ default: 400, layout: true })
|
|
81
|
+
], Text.prototype, "fontWeight", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
property({ default: 'normal', layout: true })
|
|
84
|
+
], Text.prototype, "fontStyle", void 0);
|
|
85
|
+
__decorate([
|
|
86
|
+
property({ default: 0, layout: true })
|
|
87
|
+
], Text.prototype, "letterSpacing", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
property({ default: 1.2, layout: true })
|
|
90
|
+
], Text.prototype, "lineHeight", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
property({ default: 'center', layout: true })
|
|
93
|
+
], Text.prototype, "align", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
property({ default: false, layout: true })
|
|
96
|
+
], Text.prototype, "wrap", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
property({ default: 12, layout: true })
|
|
99
|
+
], Text.prototype, "minFontSize", void 0);
|
|
100
|
+
function countWrappedLines(paragraph, maxWidth, fontSize, fontFamily, fontWeight, scope, letterSpacing = 0, fontStyle = 'normal') {
|
|
101
|
+
if (paragraph.length === 0)
|
|
102
|
+
return 1;
|
|
103
|
+
if (scope.measureText(paragraph, fontSize, fontFamily, fontWeight, letterSpacing, fontStyle) <= maxWidth)
|
|
104
|
+
return 1;
|
|
105
|
+
const words = paragraph.split(/(\s+)/).filter(s => s.length > 0);
|
|
106
|
+
let lines = 1;
|
|
107
|
+
let lineW = 0;
|
|
108
|
+
for (const word of words) {
|
|
109
|
+
const w = scope.measureText(word, fontSize, fontFamily, fontWeight, letterSpacing, fontStyle);
|
|
110
|
+
if (lineW === 0) {
|
|
111
|
+
lineW = w;
|
|
112
|
+
}
|
|
113
|
+
else if (lineW + w <= maxWidth) {
|
|
114
|
+
lineW += w;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
lines++;
|
|
118
|
+
lineW = /^\s+$/.test(word) ? 0 : w;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return lines;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=text-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-node.js","sourceRoot":"","sources":["../../../src/nodes/text/text-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AudioRequest } from "../attributes/audio/request";
|
|
2
|
+
/**
|
|
3
|
+
* Stackable audio player driven by the AssetManager.
|
|
4
|
+
*
|
|
5
|
+
* The AssetManager decides which audio data is needed within the current
|
|
6
|
+
* look-ahead window and pushes it in via {@link append}; the device caches the
|
|
7
|
+
* decoded form, schedules the matching {@link AudioRequest}s via
|
|
8
|
+
* {@link schedule}, and drives playback through {@link syncTo} on each tick.
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class AudioDevice {
|
|
11
|
+
/** True if decoded data for `src` is already cached on the device. */
|
|
12
|
+
abstract has(src: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Decode and stack `data` under `src`. Idempotent — repeat calls for an
|
|
15
|
+
* already-cached `src` are no-ops.
|
|
16
|
+
*/
|
|
17
|
+
abstract append(src: string, data: ArrayBuffer): Promise<void>;
|
|
18
|
+
/** Drop cached audio data (and any active sources) for srcs not in `keep`. */
|
|
19
|
+
abstract retain(keep: ReadonlySet<string>): void;
|
|
20
|
+
/**
|
|
21
|
+
* Set the working set of audio requests for the current look-ahead window.
|
|
22
|
+
* Requests no longer present are stopped; new ones become eligible for
|
|
23
|
+
* playback via {@link syncTo} as soon as their data is appended.
|
|
24
|
+
*/
|
|
25
|
+
abstract schedule(requests: readonly AudioRequest[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Start/stop scheduled sources to match `sceneTime`. Called every tick.
|
|
28
|
+
* Sources whose data has not yet been appended are skipped until it is.
|
|
29
|
+
*/
|
|
30
|
+
abstract syncTo(sceneTime: number): void;
|
|
31
|
+
abstract play(time: number, speed: number, reverse: boolean): void | Promise<void>;
|
|
32
|
+
abstract stop(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Mute or unmute all output. Default is a no-op for devices that produce no
|
|
35
|
+
* sound (e.g. export/noop sinks).
|
|
36
|
+
*/
|
|
37
|
+
setMuted(_muted: boolean): void;
|
|
38
|
+
dispose(): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=audio-device.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-device.d.ts","sourceRoot":"","sources":["../../src/platform/audio-device.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D;;;;;;;GAOG;AACH,8BAAsB,WAAW;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAElC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAEhD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,GAAG,IAAI;IAE1D;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAExC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAClF,QAAQ,CAAC,IAAI,IAAI,IAAI;IAErB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAE/B,OAAO,IAAI,IAAI;CAGlB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stackable audio player driven by the AssetManager.
|
|
3
|
+
*
|
|
4
|
+
* The AssetManager decides which audio data is needed within the current
|
|
5
|
+
* look-ahead window and pushes it in via {@link append}; the device caches the
|
|
6
|
+
* decoded form, schedules the matching {@link AudioRequest}s via
|
|
7
|
+
* {@link schedule}, and drives playback through {@link syncTo} on each tick.
|
|
8
|
+
*/
|
|
9
|
+
export class AudioDevice {
|
|
10
|
+
/**
|
|
11
|
+
* Mute or unmute all output. Default is a no-op for devices that produce no
|
|
12
|
+
* sound (e.g. export/noop sinks).
|
|
13
|
+
*/
|
|
14
|
+
setMuted(_muted) { }
|
|
15
|
+
dispose() {
|
|
16
|
+
this.stop();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=audio-device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-device.js","sourceRoot":"","sources":["../../src/platform/audio-device.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,MAAM,OAAgB,WAAW;IA6B7B;;;OAGG;IACH,QAAQ,CAAC,MAAe,IAAS,CAAC;IAElC,OAAO;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** Called every animation frame with the current playhead time (seconds). Must return a Promise so the clock can await all renderers before advancing. */
|
|
2
|
+
export type TickCallback = (time: number) => Promise<void>;
|
|
3
|
+
/** Fired when playback starts. Receives the time at which playback began, the playback speed multiplier, and whether playback is reversed. */
|
|
4
|
+
export type PlayCallback = (time: number, speed: number, reverse: boolean) => void;
|
|
5
|
+
/** Fired whenever the playhead position changes. */
|
|
6
|
+
export type TimeCallback = (time: number) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Platform-agnostic base class for driving animation playback.
|
|
9
|
+
*
|
|
10
|
+
* Subclasses implement the actual frame loop (e.g. requestAnimationFrame in the
|
|
11
|
+
* browser, a setInterval loop in Node) and call `setCurrentTime` / `tick` each
|
|
12
|
+
* frame. `MasterClock` owns the subscriber lists and the shared playback state
|
|
13
|
+
* so that renderers and UI controls can coordinate without knowing about each
|
|
14
|
+
* other.
|
|
15
|
+
*
|
|
16
|
+
* Lifecycle:
|
|
17
|
+
* 1. Set total duration with `setDuration`.
|
|
18
|
+
* 2. Register listeners via `onTick` / `onPlay` / `onPause` / `onTime`.
|
|
19
|
+
* 3. Call `play`, `pause`, or `seek` to control playback.
|
|
20
|
+
* 4. Call `dispose` when the clock is no longer needed to prevent leaks.
|
|
21
|
+
*/
|
|
22
|
+
export declare abstract class MasterClock {
|
|
23
|
+
private _isPlaying;
|
|
24
|
+
private _currentTime;
|
|
25
|
+
protected _duration: number;
|
|
26
|
+
get isPlaying(): boolean;
|
|
27
|
+
/** Current playhead position in seconds. */
|
|
28
|
+
get currentTime(): number;
|
|
29
|
+
/** Total animation duration in seconds. */
|
|
30
|
+
get duration(): number;
|
|
31
|
+
setDuration(duration: number): void;
|
|
32
|
+
/** Updates the playhead and notifies time listeners. No-ops if the time hasn't changed. */
|
|
33
|
+
protected setCurrentTime(t: number): void;
|
|
34
|
+
protected setPlaying(playing: boolean): void;
|
|
35
|
+
/** Starts playback at the given speed and direction, notifying all play listeners. */
|
|
36
|
+
play(speed: number, reverse: boolean): void;
|
|
37
|
+
/** Awaits all tick callbacks in parallel. Subclasses call this once per frame after updating `currentTime`. */
|
|
38
|
+
protected tick(): Promise<void>;
|
|
39
|
+
/** Pauses playback and notifies all pause listeners. */
|
|
40
|
+
pause(): void;
|
|
41
|
+
/** Moves the playhead to `t` (seconds). Subclasses decide whether this also triggers a tick. */
|
|
42
|
+
abstract seek(t: number): void;
|
|
43
|
+
protected tickCallbacks: TickCallback[];
|
|
44
|
+
protected playCallbacks: PlayCallback[];
|
|
45
|
+
protected pauseCallbacks: (() => void)[];
|
|
46
|
+
protected timeCallbacks: TimeCallback[];
|
|
47
|
+
/** Clears all registered callbacks. Call when tearing down a scene to avoid memory leaks. */
|
|
48
|
+
dispose(): void;
|
|
49
|
+
onTick(callback: TickCallback): void;
|
|
50
|
+
onPlay(callback: PlayCallback): void;
|
|
51
|
+
onPause(callback: () => void): void;
|
|
52
|
+
onTime(callback: TimeCallback): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=master-clock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"master-clock.d.ts","sourceRoot":"","sources":["../../src/platform/master-clock.ts"],"names":[],"mappings":"AAAA,0JAA0J;AAC1J,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3D,8IAA8I;AAC9I,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;AAEnF,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,WAAW;IAC7B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAa;IACjC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAK;IAEhC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,4CAA4C;IAC5C,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,2CAA2C;IAC3C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,2FAA2F;IAC3F,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAMzC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5C,sFAAsF;IACtF,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAK3C,+GAA+G;cAC/F,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC,wDAAwD;IACxD,KAAK,IAAI,IAAI;IAKb,gGAAgG;IAChG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAE9B,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAM;IAC7C,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAM;IAC7C,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAM;IAC9C,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAM;IAE7C,6FAA6F;IAC7F,OAAO;IAOP,MAAM,CAAC,QAAQ,EAAE,YAAY;IAI7B,MAAM,CAAC,QAAQ,EAAE,YAAY;IAI7B,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI;IAI5B,MAAM,CAAC,QAAQ,EAAE,YAAY;CAGhC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Platform-agnostic base class for driving animation playback.
|
|
3
|
+
*
|
|
4
|
+
* Subclasses implement the actual frame loop (e.g. requestAnimationFrame in the
|
|
5
|
+
* browser, a setInterval loop in Node) and call `setCurrentTime` / `tick` each
|
|
6
|
+
* frame. `MasterClock` owns the subscriber lists and the shared playback state
|
|
7
|
+
* so that renderers and UI controls can coordinate without knowing about each
|
|
8
|
+
* other.
|
|
9
|
+
*
|
|
10
|
+
* Lifecycle:
|
|
11
|
+
* 1. Set total duration with `setDuration`.
|
|
12
|
+
* 2. Register listeners via `onTick` / `onPlay` / `onPause` / `onTime`.
|
|
13
|
+
* 3. Call `play`, `pause`, or `seek` to control playback.
|
|
14
|
+
* 4. Call `dispose` when the clock is no longer needed to prevent leaks.
|
|
15
|
+
*/
|
|
16
|
+
export class MasterClock {
|
|
17
|
+
_isPlaying = false;
|
|
18
|
+
_currentTime = 0;
|
|
19
|
+
_duration = 0;
|
|
20
|
+
get isPlaying() {
|
|
21
|
+
return this._isPlaying;
|
|
22
|
+
}
|
|
23
|
+
/** Current playhead position in seconds. */
|
|
24
|
+
get currentTime() {
|
|
25
|
+
return this._currentTime;
|
|
26
|
+
}
|
|
27
|
+
/** Total animation duration in seconds. */
|
|
28
|
+
get duration() {
|
|
29
|
+
return this._duration;
|
|
30
|
+
}
|
|
31
|
+
setDuration(duration) {
|
|
32
|
+
this._duration = duration;
|
|
33
|
+
}
|
|
34
|
+
/** Updates the playhead and notifies time listeners. No-ops if the time hasn't changed. */
|
|
35
|
+
setCurrentTime(t) {
|
|
36
|
+
if (this._currentTime === t)
|
|
37
|
+
return;
|
|
38
|
+
this._currentTime = t;
|
|
39
|
+
for (const cb of this.timeCallbacks)
|
|
40
|
+
cb(t);
|
|
41
|
+
}
|
|
42
|
+
setPlaying(playing) {
|
|
43
|
+
this._isPlaying = playing;
|
|
44
|
+
}
|
|
45
|
+
/** Starts playback at the given speed and direction, notifying all play listeners. */
|
|
46
|
+
play(speed, reverse) {
|
|
47
|
+
this._isPlaying = true;
|
|
48
|
+
for (const cb of this.playCallbacks)
|
|
49
|
+
cb(this._currentTime, speed, reverse);
|
|
50
|
+
}
|
|
51
|
+
/** Awaits all tick callbacks in parallel. Subclasses call this once per frame after updating `currentTime`. */
|
|
52
|
+
async tick() {
|
|
53
|
+
await Promise.all(this.tickCallbacks.map(c => c(this._currentTime)));
|
|
54
|
+
}
|
|
55
|
+
/** Pauses playback and notifies all pause listeners. */
|
|
56
|
+
pause() {
|
|
57
|
+
this._isPlaying = false;
|
|
58
|
+
for (const cb of this.pauseCallbacks)
|
|
59
|
+
cb();
|
|
60
|
+
}
|
|
61
|
+
tickCallbacks = [];
|
|
62
|
+
playCallbacks = [];
|
|
63
|
+
pauseCallbacks = [];
|
|
64
|
+
timeCallbacks = [];
|
|
65
|
+
/** Clears all registered callbacks. Call when tearing down a scene to avoid memory leaks. */
|
|
66
|
+
dispose() {
|
|
67
|
+
this.tickCallbacks.length = 0;
|
|
68
|
+
this.playCallbacks.length = 0;
|
|
69
|
+
this.pauseCallbacks.length = 0;
|
|
70
|
+
this.timeCallbacks.length = 0;
|
|
71
|
+
}
|
|
72
|
+
onTick(callback) {
|
|
73
|
+
this.tickCallbacks.push(callback);
|
|
74
|
+
}
|
|
75
|
+
onPlay(callback) {
|
|
76
|
+
this.playCallbacks.push(callback);
|
|
77
|
+
}
|
|
78
|
+
onPause(callback) {
|
|
79
|
+
this.pauseCallbacks.push(callback);
|
|
80
|
+
}
|
|
81
|
+
onTime(callback) {
|
|
82
|
+
this.timeCallbacks.push(callback);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=master-clock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"master-clock.js","sourceRoot":"","sources":["../../src/platform/master-clock.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,WAAW;IACrB,UAAU,GAAY,KAAK,CAAC;IAC5B,YAAY,GAAW,CAAC,CAAC;IACvB,SAAS,GAAW,CAAC,CAAC;IAEhC,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,4CAA4C;IAC5C,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,2CAA2C;IAC3C,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,QAAgB;QACxB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,2FAA2F;IACjF,cAAc,CAAC,CAAS;QAC9B,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO;QACpC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa;YAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAES,UAAU,CAAC,OAAgB;QACjC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,sFAAsF;IACtF,IAAI,CAAC,KAAa,EAAE,OAAgB;QAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa;YAAE,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAED,+GAA+G;IACrG,KAAK,CAAC,IAAI;QAChB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,wDAAwD;IACxD,KAAK;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc;YAAE,EAAE,EAAE,CAAC;IAC/C,CAAC;IAKS,aAAa,GAAmB,EAAE,CAAC;IACnC,aAAa,GAAmB,EAAE,CAAC;IACnC,cAAc,GAAmB,EAAE,CAAC;IACpC,aAAa,GAAmB,EAAE,CAAC;IAE7C,6FAA6F;IAC7F,OAAO;QACH,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,QAAsB;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,QAAsB;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,CAAC,QAAoB;QACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,QAAsB;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACJ"}
|