etro 0.12.0 → 0.13.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/.github/dependabot.yml +6 -0
- package/.github/scripts/update-changelog.js +72 -0
- package/.github/workflows/dependabot-changelog.yml +57 -0
- package/.github/workflows/nodejs.yml +2 -2
- package/.vscode/settings.json +3 -0
- package/CHANGELOG.md +36 -0
- package/README.md +7 -1
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/base.css +224 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/block-navigation.js +87 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/favicon.png +0 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/index.html +176 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/prettify.css +1 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/prettify.js +2 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/sorter.js +196 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/custom-array.ts.html +214 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/base.ts.html +433 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/brightness.ts.html +214 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/channels.ts.html +235 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/chroma-key.ts.html +331 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/contrast.ts.html +211 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/elliptical-mask.ts.html +310 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/gaussian-blur.ts.html +796 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/grayscale.ts.html +187 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/index.html +311 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/index.ts.html +154 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/pixelate.ts.html +259 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/shader.ts.html +1774 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/stack.ts.html +358 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/transform.ts.html +685 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/effect/visual.ts.html +148 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/etro.ts.html +163 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/event.ts.html +691 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/index.html +176 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/index.ts.html +109 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/audio-source.ts.html +835 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/audio.ts.html +241 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/base.ts.html +772 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/image.ts.html +181 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/index.html +236 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/index.ts.html +124 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/text.ts.html +658 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/video.ts.html +211 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/visual-source.ts.html +721 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/layer/visual.ts.html +760 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/effects.ts.html +163 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/index.html +161 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/index.ts.html +88 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/layers.ts.html +163 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/movie/movie.ts.html +2692 -0
- package/coverage/Chrome Headless 79.0.3945.0 (Mac OS 10.16.0)/html/src/util.ts.html +1426 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/base.css +224 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/block-navigation.js +87 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/favicon.png +0 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/index.html +176 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/prettify.css +1 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/prettify.js +2 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/sorter.js +196 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/custom-array.ts.html +214 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/base.ts.html +433 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +214 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +235 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +331 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +211 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +310 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +796 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +187 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/index.html +311 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/index.ts.html +154 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +259 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +1948 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +358 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +685 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +148 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/etro.ts.html +163 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/event.ts.html +691 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/index.html +176 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/index.ts.html +109 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +835 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +241 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/base.ts.html +772 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/image.ts.html +181 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/index.html +236 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/index.ts.html +124 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/text.ts.html +658 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/video.ts.html +211 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +721 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +760 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +163 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/index.html +161 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/index.ts.html +88 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +163 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +2692 -0
- package/coverage/Firefox 118.0 (Mac OS 10.15)/html/src/util.ts.html +1426 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/base.css +224 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/block-navigation.js +87 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/favicon.png +0 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/index.html +176 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/prettify.css +1 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/prettify.js +2 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/sorter.js +196 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/custom-array.ts.html +214 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/base.ts.html +433 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +214 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +235 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +331 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +211 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +310 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +790 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +187 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/index.html +311 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/index.ts.html +154 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +259 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +1948 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +358 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +685 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +148 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/etro.ts.html +163 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/event.ts.html +691 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/index.html +176 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/index.ts.html +109 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +835 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +241 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/base.ts.html +772 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/image.ts.html +181 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/index.html +236 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/index.ts.html +124 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/text.ts.html +658 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/video.ts.html +211 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +721 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +760 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +163 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/movie/index.html +161 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/movie/index.ts.html +88 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +163 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +2692 -0
- package/coverage/Firefox 120.0 (Mac OS 10.15)/html/src/util.ts.html +1426 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/base.css +224 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/block-navigation.js +87 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/favicon.png +0 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/index.html +176 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/prettify.css +1 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/prettify.js +2 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/sorter.js +196 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/custom-array.ts.html +214 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/base.ts.html +433 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +214 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +235 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +331 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +211 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +310 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +796 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +187 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/index.html +311 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/index.ts.html +154 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +259 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +1774 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +358 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +685 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +148 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/etro.ts.html +163 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/event.ts.html +691 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/index.html +176 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/index.ts.html +109 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +835 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +241 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/base.ts.html +772 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/image.ts.html +181 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/index.html +236 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/index.ts.html +124 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/text.ts.html +658 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/video.ts.html +211 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +721 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +760 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +163 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/index.html +161 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/index.ts.html +88 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +163 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +2698 -0
- package/coverage/Firefox 121.0 (Mac OS 10.15)/html/src/util.ts.html +1453 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/base.css +224 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/block-navigation.js +87 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/favicon.png +0 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/index.html +161 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/prettify.css +1 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/prettify.js +2 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/sorter.js +196 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/custom-array.ts.html +214 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/base.ts.html +433 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +214 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +235 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +331 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +211 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +310 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +796 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +187 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/index.html +311 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/index.ts.html +154 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +259 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +1774 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +358 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +685 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +148 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/etro.ts.html +163 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/event.ts.html +691 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/index.html +176 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/index.ts.html +109 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +835 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +241 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/base.ts.html +772 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/image.ts.html +181 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/index.html +236 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/index.ts.html +124 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/text.ts.html +658 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/video.ts.html +211 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +721 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +760 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +163 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/movie/index.html +161 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/movie/index.ts.html +88 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +163 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +2698 -0
- package/coverage/Firefox 148.0 (Mac OS 10.15)/html/src/util.ts.html +1453 -0
- package/dist/etro-cjs.js +79 -64
- package/dist/etro-iife.js +80 -65
- package/dist/movie/movie.d.ts +4 -3
- package/dist/util.d.ts +4 -2
- package/karma.conf.js +9 -0
- package/package.json +5 -6
- package/src/effect/shader.ts +1 -1
- package/src/effect/transform.ts +1 -1
- package/src/movie/movie.ts +7 -5
- package/src/util.ts +13 -4
package/dist/etro-iife.js
CHANGED
|
@@ -47,7 +47,7 @@ var etro = (function () {
|
|
|
47
47
|
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
48
48
|
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
49
49
|
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
50
|
-
step((generator = generator.apply(thisArg,
|
|
50
|
+
step((generator = generator.apply(thisArg, [])).next());
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -240,9 +240,9 @@ var etro = (function () {
|
|
|
240
240
|
var event = /*#__PURE__*/Object.freeze({
|
|
241
241
|
__proto__: null,
|
|
242
242
|
deprecate: deprecate,
|
|
243
|
+
publish: publish,
|
|
243
244
|
subscribe: subscribe,
|
|
244
|
-
unsubscribe: unsubscribe
|
|
245
|
-
publish: publish
|
|
245
|
+
unsubscribe: unsubscribe
|
|
246
246
|
});
|
|
247
247
|
|
|
248
248
|
/**
|
|
@@ -360,7 +360,9 @@ var etro = (function () {
|
|
|
360
360
|
for (var i = 0; i < this.value.length; i++) {
|
|
361
361
|
var startTime = this.value[i][0];
|
|
362
362
|
var startValue = this.value[i][1];
|
|
363
|
-
var interpolate = this.value[i].length === 3
|
|
363
|
+
var interpolate = this.value[i].length === 3
|
|
364
|
+
? this.value[i][2]
|
|
365
|
+
: linearInterp;
|
|
364
366
|
if (i + 1 < this.value.length) {
|
|
365
367
|
var endTime = this.value[i + 1][0];
|
|
366
368
|
var endValue = this.value[i + 1][1];
|
|
@@ -836,7 +838,7 @@ var etro = (function () {
|
|
|
836
838
|
/**
|
|
837
839
|
* A layer outputs content for the movie
|
|
838
840
|
*/
|
|
839
|
-
var Base = /** @class */ (function () {
|
|
841
|
+
var Base$1 = /** @class */ (function () {
|
|
840
842
|
/**
|
|
841
843
|
* Creates a new empty layer
|
|
842
844
|
*
|
|
@@ -1030,9 +1032,9 @@ var etro = (function () {
|
|
|
1030
1032
|
}());
|
|
1031
1033
|
// id for events (independent of instance, but easy to access when on prototype
|
|
1032
1034
|
// chain)
|
|
1033
|
-
Base.prototype.type = 'layer';
|
|
1034
|
-
Base.prototype.publicExcludes = ['active'];
|
|
1035
|
-
Base.prototype.propertyFilters = {};
|
|
1035
|
+
Base$1.prototype.type = 'layer';
|
|
1036
|
+
Base$1.prototype.publicExcludes = ['active'];
|
|
1037
|
+
Base$1.prototype.propertyFilters = {};
|
|
1036
1038
|
|
|
1037
1039
|
// TODO: rename to something more consistent with the naming convention of Visual and VisualSourceMixin
|
|
1038
1040
|
/**
|
|
@@ -1064,7 +1066,7 @@ var etro = (function () {
|
|
|
1064
1066
|
sourceStartTime: 0, duration: undefined });
|
|
1065
1067
|
};
|
|
1066
1068
|
return Audio;
|
|
1067
|
-
}(AudioSourceMixin(Base)));
|
|
1069
|
+
}(AudioSourceMixin(Base$1)));
|
|
1068
1070
|
|
|
1069
1071
|
var CustomArrayListener = /** @class */ (function () {
|
|
1070
1072
|
function CustomArrayListener() {
|
|
@@ -1077,7 +1079,7 @@ var etro = (function () {
|
|
|
1077
1079
|
var CustomArray = /** @class */ (function (_super) {
|
|
1078
1080
|
__extends(CustomArray, _super);
|
|
1079
1081
|
function CustomArray(target, listener) {
|
|
1080
|
-
|
|
1082
|
+
_super.call(this) || this;
|
|
1081
1083
|
for (var _i = 0, target_1 = target; _i < target_1.length; _i++) {
|
|
1082
1084
|
var item = target_1[_i];
|
|
1083
1085
|
listener.onAdd(item);
|
|
@@ -1133,7 +1135,7 @@ var etro = (function () {
|
|
|
1133
1135
|
return VisualEffects;
|
|
1134
1136
|
}(CustomArray));
|
|
1135
1137
|
/** Any layer that renders to a canvas */
|
|
1136
|
-
var Visual = /** @class */ (function (_super) {
|
|
1138
|
+
var Visual$1 = /** @class */ (function (_super) {
|
|
1137
1139
|
__extends(Visual, _super);
|
|
1138
1140
|
/**
|
|
1139
1141
|
* Creates a visual layer
|
|
@@ -1227,7 +1229,7 @@ var etro = (function () {
|
|
|
1227
1229
|
Object.defineProperty(Visual.prototype, "ready", {
|
|
1228
1230
|
get: function () {
|
|
1229
1231
|
// Typescript doesn't support `super.ready` when targeting es5
|
|
1230
|
-
var superReady = Object.getOwnPropertyDescriptor(Base.prototype, 'ready').get.call(this);
|
|
1232
|
+
var superReady = Object.getOwnPropertyDescriptor(Base$1.prototype, 'ready').get.call(this);
|
|
1231
1233
|
return superReady && this.effects.every(function (effect) { return effect.ready; });
|
|
1232
1234
|
},
|
|
1233
1235
|
enumerable: false,
|
|
@@ -1237,7 +1239,7 @@ var etro = (function () {
|
|
|
1237
1239
|
* @deprecated See {@link https://github.com/etro-js/etro/issues/131}
|
|
1238
1240
|
*/
|
|
1239
1241
|
Visual.prototype.getDefaultOptions = function () {
|
|
1240
|
-
return __assign(__assign({}, Base.prototype.getDefaultOptions()), {
|
|
1242
|
+
return __assign(__assign({}, Base$1.prototype.getDefaultOptions()), {
|
|
1241
1243
|
/**
|
|
1242
1244
|
* @name module:layer.Visual#x
|
|
1243
1245
|
* @desc The offset of the layer relative to the movie
|
|
@@ -1273,9 +1275,9 @@ var etro = (function () {
|
|
|
1273
1275
|
opacity: 1 });
|
|
1274
1276
|
};
|
|
1275
1277
|
return Visual;
|
|
1276
|
-
}(Base));
|
|
1277
|
-
Visual.prototype.publicExcludes = Base.prototype.publicExcludes.concat(['canvas', 'cctx', 'effects']);
|
|
1278
|
-
Visual.prototype.propertyFilters = __assign(__assign({}, Base.prototype.propertyFilters), {
|
|
1278
|
+
}(Base$1));
|
|
1279
|
+
Visual$1.prototype.publicExcludes = Base$1.prototype.publicExcludes.concat(['canvas', 'cctx', 'effects']);
|
|
1280
|
+
Visual$1.prototype.propertyFilters = __assign(__assign({}, Base$1.prototype.propertyFilters), {
|
|
1279
1281
|
/*
|
|
1280
1282
|
* If this.width or this.height is null, that means "take all available screen
|
|
1281
1283
|
* space", so set it to this._move.width or this._movie.height, respectively
|
|
@@ -1375,7 +1377,7 @@ var etro = (function () {
|
|
|
1375
1377
|
};
|
|
1376
1378
|
return MixedVisualSource;
|
|
1377
1379
|
}(superclass));
|
|
1378
|
-
MixedVisualSource.prototype.propertyFilters = __assign(__assign({}, Visual.prototype.propertyFilters), {
|
|
1380
|
+
MixedVisualSource.prototype.propertyFilters = __assign(__assign({}, Visual$1.prototype.propertyFilters), {
|
|
1379
1381
|
/*
|
|
1380
1382
|
* If no layer width was provided, fall back to the dest width.
|
|
1381
1383
|
* If no dest width was provided, fall back to the source width.
|
|
@@ -1433,7 +1435,7 @@ var etro = (function () {
|
|
|
1433
1435
|
return _super.call(this, options) || this;
|
|
1434
1436
|
}
|
|
1435
1437
|
return Image;
|
|
1436
|
-
}(VisualSourceMixin(Visual)));
|
|
1438
|
+
}(VisualSourceMixin(Visual$1)));
|
|
1437
1439
|
|
|
1438
1440
|
var TextStrokePosition;
|
|
1439
1441
|
(function (TextStrokePosition) {
|
|
@@ -1529,10 +1531,10 @@ var etro = (function () {
|
|
|
1529
1531
|
* @deprecated See {@link https://github.com/etro-js/etro/issues/131}
|
|
1530
1532
|
*/
|
|
1531
1533
|
Text.prototype.getDefaultOptions = function () {
|
|
1532
|
-
return __assign(__assign({}, Visual.prototype.getDefaultOptions()), { background: null, text: undefined, font: '10px sans-serif', color: parseColor('#fff'), textX: 0, textY: 0, maxWidth: null, textAlign: 'start', textBaseline: 'top', textDirection: 'ltr', textStroke: null });
|
|
1534
|
+
return __assign(__assign({}, Visual$1.prototype.getDefaultOptions()), { background: null, text: undefined, font: '10px sans-serif', color: parseColor('#fff'), textX: 0, textY: 0, maxWidth: null, textAlign: 'start', textBaseline: 'top', textDirection: 'ltr', textStroke: null });
|
|
1533
1535
|
};
|
|
1534
1536
|
return Text;
|
|
1535
|
-
}(Visual));
|
|
1537
|
+
}(Visual$1));
|
|
1536
1538
|
|
|
1537
1539
|
/**
|
|
1538
1540
|
* Layer for an HTML video element
|
|
@@ -1554,29 +1556,30 @@ var etro = (function () {
|
|
|
1554
1556
|
duration: (_a = options.duration) !== null && _a !== void 0 ? _a : 0 })) || this;
|
|
1555
1557
|
}
|
|
1556
1558
|
return Video;
|
|
1557
|
-
}(AudioSourceMixin(VisualSourceMixin(Visual))));
|
|
1559
|
+
}(AudioSourceMixin(VisualSourceMixin(Visual$1))));
|
|
1558
1560
|
|
|
1559
1561
|
/**
|
|
1560
1562
|
* @module layer
|
|
1561
|
-
*/
|
|
1563
|
+
*/
|
|
1564
|
+
// TODO: Add aligning options, like horizontal and vertical align modes
|
|
1562
1565
|
|
|
1563
|
-
var index = /*#__PURE__*/Object.freeze({
|
|
1566
|
+
var index$1 = /*#__PURE__*/Object.freeze({
|
|
1564
1567
|
__proto__: null,
|
|
1565
|
-
AudioSourceMixin: AudioSourceMixin,
|
|
1566
1568
|
Audio: Audio,
|
|
1567
|
-
|
|
1569
|
+
AudioSourceMixin: AudioSourceMixin,
|
|
1570
|
+
Base: Base$1,
|
|
1568
1571
|
Image: Image,
|
|
1569
1572
|
Text: Text,
|
|
1570
1573
|
get TextStrokePosition () { return TextStrokePosition; },
|
|
1571
1574
|
Video: Video,
|
|
1572
|
-
|
|
1573
|
-
|
|
1575
|
+
Visual: Visual$1,
|
|
1576
|
+
VisualSourceMixin: VisualSourceMixin
|
|
1574
1577
|
});
|
|
1575
1578
|
|
|
1576
1579
|
/**
|
|
1577
1580
|
* @deprecated All visual effects now inherit from `Visual` instead
|
|
1578
1581
|
*/
|
|
1579
|
-
var Base
|
|
1582
|
+
var Base = /** @class */ (function () {
|
|
1580
1583
|
function Base() {
|
|
1581
1584
|
this.enabled = true;
|
|
1582
1585
|
this._occurrenceCount = 0;
|
|
@@ -1676,14 +1679,14 @@ var etro = (function () {
|
|
|
1676
1679
|
}());
|
|
1677
1680
|
// id for events (independent of instance, but easy to access when on prototype
|
|
1678
1681
|
// chain)
|
|
1679
|
-
Base
|
|
1680
|
-
Base
|
|
1681
|
-
Base
|
|
1682
|
+
Base.prototype.type = 'effect';
|
|
1683
|
+
Base.prototype.publicExcludes = [];
|
|
1684
|
+
Base.prototype.propertyFilters = {};
|
|
1682
1685
|
|
|
1683
1686
|
/**
|
|
1684
1687
|
* Modifies the visual contents of a layer.
|
|
1685
1688
|
*/
|
|
1686
|
-
var Visual
|
|
1689
|
+
var Visual = /** @class */ (function (_super) {
|
|
1687
1690
|
__extends(Visual, _super);
|
|
1688
1691
|
function Visual() {
|
|
1689
1692
|
return _super !== null && _super.apply(this, arguments) || this;
|
|
@@ -1701,7 +1704,7 @@ var etro = (function () {
|
|
|
1701
1704
|
_super.prototype.apply.call(this, target, reltime);
|
|
1702
1705
|
};
|
|
1703
1706
|
return Visual;
|
|
1704
|
-
}(Base
|
|
1707
|
+
}(Base));
|
|
1705
1708
|
|
|
1706
1709
|
/**
|
|
1707
1710
|
* A hardware-accelerated pixel mapping using WebGL
|
|
@@ -1773,8 +1776,8 @@ var etro = (function () {
|
|
|
1773
1776
|
Shader.prototype._initAttribs = function () {
|
|
1774
1777
|
var gl = this._gl;
|
|
1775
1778
|
this._attribLocations = {
|
|
1779
|
+
vertexPosition: gl.getAttribLocation(this._program, 'a_VertexPosition'),
|
|
1776
1780
|
textureCoord: gl.getAttribLocation(this._program, 'a_TextureCoord')
|
|
1777
|
-
// a_VertexPosition ?? somehow it works without it though...
|
|
1778
1781
|
};
|
|
1779
1782
|
};
|
|
1780
1783
|
Shader.prototype._initUniforms = function (userUniforms) {
|
|
@@ -1992,10 +1995,10 @@ var etro = (function () {
|
|
|
1992
1995
|
Shader._initRectBuffers = function (gl) {
|
|
1993
1996
|
var position = [
|
|
1994
1997
|
// the screen/canvas (output)
|
|
1995
|
-
-1
|
|
1998
|
+
-1, 1.0,
|
|
1996
1999
|
1.0, 1.0,
|
|
1997
|
-
-1
|
|
1998
|
-
1.0, -1
|
|
2000
|
+
-1, -1,
|
|
2001
|
+
1.0, -1
|
|
1999
2002
|
];
|
|
2000
2003
|
var textureCoord = [
|
|
2001
2004
|
// the texture/canvas (input)
|
|
@@ -2131,7 +2134,7 @@ var etro = (function () {
|
|
|
2131
2134
|
Shader._VERTEX_SOURCE = "\n attribute vec4 a_VertexPosition;\n attribute vec2 a_TextureCoord;\n\n varying highp vec2 v_TextureCoord;\n\n void main() {\n // no need for projection or model-view matrices, since we're just rendering a rectangle\n // that fills the screen (see position values)\n gl_Position = a_VertexPosition;\n v_TextureCoord = a_TextureCoord;\n }\n ";
|
|
2132
2135
|
Shader._IDENTITY_FRAGMENT_SOURCE = "\n precision mediump float;\n\n uniform sampler2D u_Source;\n\n varying highp vec2 v_TextureCoord;\n\n void main() {\n gl_FragColor = texture2D(u_Source, v_TextureCoord);\n }\n ";
|
|
2133
2136
|
return Shader;
|
|
2134
|
-
}(Visual
|
|
2137
|
+
}(Visual));
|
|
2135
2138
|
var isPowerOf2 = function (value) { return (value && (value - 1)) === 0; };
|
|
2136
2139
|
|
|
2137
2140
|
/**
|
|
@@ -2304,7 +2307,7 @@ var etro = (function () {
|
|
|
2304
2307
|
ctx.restore();
|
|
2305
2308
|
};
|
|
2306
2309
|
return EllipticalMask;
|
|
2307
|
-
}(Visual
|
|
2310
|
+
}(Visual));
|
|
2308
2311
|
|
|
2309
2312
|
var StackEffectsListener = /** @class */ (function (_super) {
|
|
2310
2313
|
__extends(StackEffectsListener, _super);
|
|
@@ -2377,7 +2380,7 @@ var etro = (function () {
|
|
|
2377
2380
|
return this;
|
|
2378
2381
|
};
|
|
2379
2382
|
return Stack;
|
|
2380
|
-
}(Visual
|
|
2383
|
+
}(Visual));
|
|
2381
2384
|
|
|
2382
2385
|
/**
|
|
2383
2386
|
* Applies a Gaussian blur
|
|
@@ -2598,7 +2601,7 @@ var etro = (function () {
|
|
|
2598
2601
|
this._tmpCanvas.height = target.canvas.height;
|
|
2599
2602
|
}
|
|
2600
2603
|
// Use data, since that's the underlying storage
|
|
2601
|
-
this._tmpMatrix.data = val(this, 'matrix
|
|
2604
|
+
this._tmpMatrix.data = val(this, 'matrix', reltime).data;
|
|
2602
2605
|
this._tmpCtx.setTransform(this._tmpMatrix.a, this._tmpMatrix.b, this._tmpMatrix.c, this._tmpMatrix.d, this._tmpMatrix.e, this._tmpMatrix.f);
|
|
2603
2606
|
this._tmpCtx.drawImage(target.canvas, 0, 0);
|
|
2604
2607
|
// Assume it was identity for now
|
|
@@ -2607,7 +2610,7 @@ var etro = (function () {
|
|
|
2607
2610
|
target.cctx.drawImage(this._tmpCanvas, 0, 0);
|
|
2608
2611
|
};
|
|
2609
2612
|
return Transform;
|
|
2610
|
-
}(Visual
|
|
2613
|
+
}(Visual));
|
|
2611
2614
|
(function (Transform) {
|
|
2612
2615
|
/**
|
|
2613
2616
|
* @class
|
|
@@ -2751,17 +2754,22 @@ var etro = (function () {
|
|
|
2751
2754
|
|
|
2752
2755
|
/**
|
|
2753
2756
|
* @module effect
|
|
2754
|
-
*/
|
|
2757
|
+
*/
|
|
2758
|
+
// TODO: Investigate why an effect might run once in the beginning even if its layer isn't at the beginning
|
|
2759
|
+
// TODO: Add audio effect support
|
|
2760
|
+
// TODO: implement directional blur
|
|
2761
|
+
// TODO: implement radial blur
|
|
2762
|
+
// TODO: implement zoom blur
|
|
2755
2763
|
|
|
2756
|
-
var index
|
|
2764
|
+
var index = /*#__PURE__*/Object.freeze({
|
|
2757
2765
|
__proto__: null,
|
|
2758
|
-
Base: Base
|
|
2766
|
+
Base: Base,
|
|
2759
2767
|
Brightness: Brightness,
|
|
2760
2768
|
Channels: Channels,
|
|
2761
2769
|
ChromaKey: ChromaKey,
|
|
2762
2770
|
Contrast: Contrast,
|
|
2763
|
-
EllipticalMaskOptions: EllipticalMaskOptions,
|
|
2764
2771
|
EllipticalMask: EllipticalMask,
|
|
2772
|
+
EllipticalMaskOptions: EllipticalMaskOptions,
|
|
2765
2773
|
GaussianBlur: GaussianBlur,
|
|
2766
2774
|
GaussianBlurHorizontal: GaussianBlurHorizontal,
|
|
2767
2775
|
GaussianBlurVertical: GaussianBlurVertical,
|
|
@@ -2770,7 +2778,7 @@ var etro = (function () {
|
|
|
2770
2778
|
Shader: Shader,
|
|
2771
2779
|
Stack: Stack,
|
|
2772
2780
|
get Transform () { return Transform; },
|
|
2773
|
-
Visual: Visual
|
|
2781
|
+
Visual: Visual
|
|
2774
2782
|
});
|
|
2775
2783
|
|
|
2776
2784
|
var MovieEffectsListener = /** @class */ (function (_super) {
|
|
@@ -2884,9 +2892,9 @@ var etro = (function () {
|
|
|
2884
2892
|
* Plays the movie
|
|
2885
2893
|
*
|
|
2886
2894
|
* @param [options]
|
|
2895
|
+
* @param [options.onDraw] Called when the current frame is drawn to the canvas
|
|
2887
2896
|
* @param [options.onStart] Called when the movie starts playing
|
|
2888
2897
|
* @param [options.duration] The duration of the movie to play in seconds
|
|
2889
|
-
*
|
|
2890
2898
|
* @return Fulfilled when the movie is done playing, never fails
|
|
2891
2899
|
*/
|
|
2892
2900
|
Movie.prototype.play = function (options) {
|
|
@@ -2912,7 +2920,7 @@ var etro = (function () {
|
|
|
2912
2920
|
return [4 /*yield*/, new Promise(function (resolve) {
|
|
2913
2921
|
if (!_this.renderingFrame) {
|
|
2914
2922
|
// Not rendering (and not playing), so play.
|
|
2915
|
-
_this._render(undefined, resolve);
|
|
2923
|
+
_this._render(undefined, resolve, options.onDraw);
|
|
2916
2924
|
}
|
|
2917
2925
|
// Stop rendering frame if currently doing so, because playing has higher
|
|
2918
2926
|
// priority. This will affect the next _render call.
|
|
@@ -3146,13 +3154,14 @@ var etro = (function () {
|
|
|
3146
3154
|
* Processes one frame of the movie and draws it to the canvas
|
|
3147
3155
|
*
|
|
3148
3156
|
* @param [timestamp=performance.now()]
|
|
3149
|
-
* @param [done=undefined] - Called when done playing or when the current
|
|
3150
|
-
* frame is
|
|
3157
|
+
* @param [done=undefined] - Called when done playing or when the current frame is loaded
|
|
3158
|
+
* @param [onFrameRender=undefined] - Called when the current frame is rendered
|
|
3151
3159
|
*/
|
|
3152
|
-
Movie.prototype._render = function (timestamp, done) {
|
|
3160
|
+
Movie.prototype._render = function (timestamp, done, onFrameRender) {
|
|
3153
3161
|
var _this = this;
|
|
3154
3162
|
if (timestamp === void 0) { timestamp = performance.now(); }
|
|
3155
3163
|
if (done === void 0) { done = undefined; }
|
|
3164
|
+
if (onFrameRender === void 0) { onFrameRender = undefined; }
|
|
3156
3165
|
clearCachedValues(this);
|
|
3157
3166
|
if (!this.rendering) {
|
|
3158
3167
|
// (this.paused && !this._renderingFrame) is true so it's playing or it's
|
|
@@ -3216,6 +3225,7 @@ var etro = (function () {
|
|
|
3216
3225
|
this._renderBackground(timestamp);
|
|
3217
3226
|
this._renderLayers();
|
|
3218
3227
|
this._applyEffects();
|
|
3228
|
+
onFrameRender === null || onFrameRender === void 0 ? void 0 : onFrameRender();
|
|
3219
3229
|
}
|
|
3220
3230
|
else {
|
|
3221
3231
|
// If we are recording, pause the media recorder until the movie is
|
|
@@ -3310,7 +3320,7 @@ var etro = (function () {
|
|
|
3310
3320
|
}
|
|
3311
3321
|
layer.render();
|
|
3312
3322
|
// if the layer has visual component
|
|
3313
|
-
if (layer instanceof Visual) {
|
|
3323
|
+
if (layer instanceof Visual$1) {
|
|
3314
3324
|
var canvas = layer.canvas;
|
|
3315
3325
|
if (canvas.width * canvas.height > 0) {
|
|
3316
3326
|
this.cctx.drawImage(canvas, val(layer, 'x', reltime), val(layer, 'y', reltime), canvas.width, canvas.height);
|
|
@@ -3619,26 +3629,31 @@ var etro = (function () {
|
|
|
3619
3629
|
* make typedoc work, this module exports everything as named exports. Then,
|
|
3620
3630
|
* ./index imports everything from this module and exports it as a default
|
|
3621
3631
|
* export. Typedoc uses this file, and rollup and NPM use ./index
|
|
3622
|
-
*/
|
|
3632
|
+
*/
|
|
3633
|
+
// TODO: investigate possibility of changing movie (canvas) width/height after
|
|
3634
|
+
// layers added. I think it's fine, but still make sure.
|
|
3635
|
+
// TODO: create built-in audio gain node for volume control in movie and/or
|
|
3636
|
+
// layer.
|
|
3637
|
+
// TODO: figure out InvalidStateError in beginning only when reloaded
|
|
3623
3638
|
|
|
3624
3639
|
var etro = /*#__PURE__*/Object.freeze({
|
|
3625
3640
|
__proto__: null,
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
MovieOptions: MovieOptions,
|
|
3641
|
+
Color: Color,
|
|
3642
|
+
Font: Font,
|
|
3643
|
+
KeyFrame: KeyFrame,
|
|
3630
3644
|
Movie: Movie,
|
|
3645
|
+
MovieOptions: MovieOptions,
|
|
3631
3646
|
applyOptions: applyOptions,
|
|
3632
3647
|
clearCachedValues: clearCachedValues,
|
|
3633
|
-
KeyFrame: KeyFrame,
|
|
3634
|
-
val: val,
|
|
3635
|
-
linearInterp: linearInterp,
|
|
3636
3648
|
cosineInterp: cosineInterp,
|
|
3637
|
-
|
|
3649
|
+
effect: index,
|
|
3650
|
+
event: event,
|
|
3651
|
+
layer: index$1,
|
|
3652
|
+
linearInterp: linearInterp,
|
|
3653
|
+
mapPixels: mapPixels,
|
|
3638
3654
|
parseColor: parseColor,
|
|
3639
|
-
Font: Font,
|
|
3640
3655
|
parseFont: parseFont,
|
|
3641
|
-
|
|
3656
|
+
val: val
|
|
3642
3657
|
});
|
|
3643
3658
|
|
|
3644
3659
|
/**
|
|
@@ -3648,4 +3663,4 @@ var etro = (function () {
|
|
|
3648
3663
|
|
|
3649
3664
|
return etro;
|
|
3650
3665
|
|
|
3651
|
-
}()
|
|
3666
|
+
})();
|
package/dist/movie/movie.d.ts
CHANGED
|
@@ -73,12 +73,13 @@ export declare class Movie {
|
|
|
73
73
|
* Plays the movie
|
|
74
74
|
*
|
|
75
75
|
* @param [options]
|
|
76
|
+
* @param [options.onDraw] Called when the current frame is drawn to the canvas
|
|
76
77
|
* @param [options.onStart] Called when the movie starts playing
|
|
77
78
|
* @param [options.duration] The duration of the movie to play in seconds
|
|
78
|
-
*
|
|
79
79
|
* @return Fulfilled when the movie is done playing, never fails
|
|
80
80
|
*/
|
|
81
81
|
play(options?: {
|
|
82
|
+
onDraw?: () => void;
|
|
82
83
|
onStart?: () => void;
|
|
83
84
|
duration?: number;
|
|
84
85
|
}): Promise<void>;
|
|
@@ -141,8 +142,8 @@ export declare class Movie {
|
|
|
141
142
|
* Processes one frame of the movie and draws it to the canvas
|
|
142
143
|
*
|
|
143
144
|
* @param [timestamp=performance.now()]
|
|
144
|
-
* @param [done=undefined] - Called when done playing or when the current
|
|
145
|
-
* frame is
|
|
145
|
+
* @param [done=undefined] - Called when done playing or when the current frame is loaded
|
|
146
|
+
* @param [onFrameRender=undefined] - Called when the current frame is rendered
|
|
146
147
|
*/
|
|
147
148
|
private _render;
|
|
148
149
|
private _updateCurrentTime;
|
package/dist/util.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { Movie } from './movie';
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function applyOptions(options: object, destObj: EtroObject): void;
|
|
17
17
|
export declare function clearCachedValues(movie: Movie): void;
|
|
18
|
+
declare type Interpolate = <U = number | object>(startValue: U, endValue: U, percentProgress: number, interpolationKeys: string[]) => U;
|
|
18
19
|
/**
|
|
19
20
|
* A keyframe set.
|
|
20
21
|
*
|
|
@@ -25,10 +26,10 @@ export declare function clearCachedValues(movie: Movie): void;
|
|
|
25
26
|
* TypeScript users need to specify the type of the value as a type parameter.
|
|
26
27
|
*/
|
|
27
28
|
export declare class KeyFrame<T> {
|
|
28
|
-
value:
|
|
29
|
+
value: (number | T | Interpolate)[][];
|
|
29
30
|
/** Keys to interpolate, or all keys if undefined */
|
|
30
31
|
interpolationKeys: string[];
|
|
31
|
-
constructor(...value: T[][]);
|
|
32
|
+
constructor(...value: (number | T)[][]);
|
|
32
33
|
withKeys(keys: string[]): KeyFrame<T>;
|
|
33
34
|
evaluate(time: number): T;
|
|
34
35
|
}
|
|
@@ -119,3 +120,4 @@ export declare function parseFont(str: string): Font;
|
|
|
119
120
|
* @deprecated Use {@link effect.Shader} instead
|
|
120
121
|
*/
|
|
121
122
|
export declare function mapPixels(mapper: (pixels: Uint8ClampedArray, i: number) => void, canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, flush?: boolean): void;
|
|
123
|
+
export {};
|
package/karma.conf.js
CHANGED
|
@@ -87,5 +87,14 @@ module.exports = function (config) {
|
|
|
87
87
|
// Concurrency level
|
|
88
88
|
// how many browser should be started simultaneous
|
|
89
89
|
concurrency: Infinity,
|
|
90
|
+
|
|
91
|
+
karmaTypescriptConfig: {
|
|
92
|
+
bundlerOptions: {
|
|
93
|
+
// Resemblejs only references the `canvas` dependency in the node
|
|
94
|
+
// runtime. Since the tests are run in a browser, we need to exclude it
|
|
95
|
+
// from the bundle to prevent false errors.
|
|
96
|
+
exclude: ['canvas']
|
|
97
|
+
}
|
|
98
|
+
}
|
|
90
99
|
})
|
|
91
100
|
}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "etro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "An extendable video-editing framework for the browser",
|
|
5
|
-
"
|
|
5
|
+
"main": "dist/etro-cjs.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"directories": {
|
|
8
8
|
"doc": "docs",
|
|
@@ -12,11 +12,10 @@
|
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@commitlint/cli": "^17.6.6",
|
|
14
14
|
"@commitlint/format": "^17.4.4",
|
|
15
|
-
"@rollup/plugin-eslint": "^
|
|
15
|
+
"@rollup/plugin-eslint": "^9.2.0",
|
|
16
16
|
"@types/jest": "^29.0.0",
|
|
17
17
|
"@typescript-eslint/eslint-plugin": "^5.30.7",
|
|
18
18
|
"@typescript-eslint/parser": "^5.30.7",
|
|
19
|
-
"canvas": "^2.11.2",
|
|
20
19
|
"cross-env": "^7.0.3",
|
|
21
20
|
"docdash": "^1.1.1",
|
|
22
21
|
"ecstatic": ">=4.1.3",
|
|
@@ -41,12 +40,12 @@
|
|
|
41
40
|
"keep-a-changelog": "^0.10.4",
|
|
42
41
|
"puppeteer": "^2.0.0",
|
|
43
42
|
"resemblejs": "^4.1.0",
|
|
44
|
-
"rollup": "^
|
|
43
|
+
"rollup": "^4.53.3",
|
|
45
44
|
"rollup-plugin-cleaner": "^1.0.0",
|
|
46
45
|
"rollup-plugin-node-resolve": "^5.2.0",
|
|
47
46
|
"rollup-plugin-typescript2": "^0.29.0",
|
|
48
47
|
"rollup-plugin-uglify-es": "^0.0.1",
|
|
49
|
-
"shipjs": "^0.
|
|
48
|
+
"shipjs": "^0.27.0",
|
|
50
49
|
"typedoc": "^0.23.8",
|
|
51
50
|
"typescript": "^4.7.4"
|
|
52
51
|
},
|
package/src/effect/shader.ts
CHANGED
|
@@ -163,8 +163,8 @@ export class Shader extends Visual {
|
|
|
163
163
|
private _initAttribs () {
|
|
164
164
|
const gl = this._gl
|
|
165
165
|
this._attribLocations = {
|
|
166
|
+
vertexPosition: gl.getAttribLocation(this._program, 'a_VertexPosition'),
|
|
166
167
|
textureCoord: gl.getAttribLocation(this._program, 'a_TextureCoord')
|
|
167
|
-
// a_VertexPosition ?? somehow it works without it though...
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
|
package/src/effect/transform.ts
CHANGED
|
@@ -45,7 +45,7 @@ class Transform extends Visual {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
// Use data, since that's the underlying storage
|
|
48
|
-
this._tmpMatrix.data = val(this, 'matrix
|
|
48
|
+
this._tmpMatrix.data = val(this, 'matrix', reltime).data
|
|
49
49
|
|
|
50
50
|
this._tmpCtx.setTransform(
|
|
51
51
|
this._tmpMatrix.a, this._tmpMatrix.b, this._tmpMatrix.c,
|
package/src/movie/movie.ts
CHANGED
|
@@ -124,12 +124,13 @@ export class Movie {
|
|
|
124
124
|
* Plays the movie
|
|
125
125
|
*
|
|
126
126
|
* @param [options]
|
|
127
|
+
* @param [options.onDraw] Called when the current frame is drawn to the canvas
|
|
127
128
|
* @param [options.onStart] Called when the movie starts playing
|
|
128
129
|
* @param [options.duration] The duration of the movie to play in seconds
|
|
129
|
-
*
|
|
130
130
|
* @return Fulfilled when the movie is done playing, never fails
|
|
131
131
|
*/
|
|
132
132
|
async play (options: {
|
|
133
|
+
onDraw?: () => void,
|
|
133
134
|
onStart?: () => void,
|
|
134
135
|
duration?: number,
|
|
135
136
|
} = {}): Promise<void> {
|
|
@@ -152,7 +153,7 @@ export class Movie {
|
|
|
152
153
|
await new Promise<void>(resolve => {
|
|
153
154
|
if (!this.renderingFrame) {
|
|
154
155
|
// Not rendering (and not playing), so play.
|
|
155
|
-
this._render(undefined, resolve)
|
|
156
|
+
this._render(undefined, resolve, options.onDraw)
|
|
156
157
|
}
|
|
157
158
|
|
|
158
159
|
// Stop rendering frame if currently doing so, because playing has higher
|
|
@@ -399,10 +400,10 @@ export class Movie {
|
|
|
399
400
|
* Processes one frame of the movie and draws it to the canvas
|
|
400
401
|
*
|
|
401
402
|
* @param [timestamp=performance.now()]
|
|
402
|
-
* @param [done=undefined] - Called when done playing or when the current
|
|
403
|
-
* frame is
|
|
403
|
+
* @param [done=undefined] - Called when done playing or when the current frame is loaded
|
|
404
|
+
* @param [onFrameRender=undefined] - Called when the current frame is rendered
|
|
404
405
|
*/
|
|
405
|
-
private _render (timestamp = performance.now(), done = undefined) {
|
|
406
|
+
private _render (timestamp = performance.now(), done = undefined, onFrameRender = undefined) {
|
|
406
407
|
clearCachedValues(this)
|
|
407
408
|
|
|
408
409
|
if (!this.rendering) {
|
|
@@ -482,6 +483,7 @@ export class Movie {
|
|
|
482
483
|
this._renderBackground(timestamp)
|
|
483
484
|
this._renderLayers()
|
|
484
485
|
this._applyEffects()
|
|
486
|
+
onFrameRender?.()
|
|
485
487
|
} else {
|
|
486
488
|
// If we are recording, pause the media recorder until the movie is
|
|
487
489
|
// ready.
|
package/src/util.ts
CHANGED
|
@@ -91,6 +91,13 @@ export function clearCachedValues (movie: Movie): void {
|
|
|
91
91
|
valCache.delete(movie)
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
type Interpolate = <U = number | object>(
|
|
95
|
+
startValue: U,
|
|
96
|
+
endValue: U,
|
|
97
|
+
percentProgress: number,
|
|
98
|
+
interpolationKeys: string[]
|
|
99
|
+
) => U
|
|
100
|
+
|
|
94
101
|
/**
|
|
95
102
|
* A keyframe set.
|
|
96
103
|
*
|
|
@@ -101,11 +108,11 @@ export function clearCachedValues (movie: Movie): void {
|
|
|
101
108
|
* TypeScript users need to specify the type of the value as a type parameter.
|
|
102
109
|
*/
|
|
103
110
|
export class KeyFrame<T> {
|
|
104
|
-
value:
|
|
111
|
+
value: (number|T|Interpolate)[][]
|
|
105
112
|
/** Keys to interpolate, or all keys if undefined */
|
|
106
113
|
interpolationKeys: string[]
|
|
107
114
|
|
|
108
|
-
constructor (...value: T[][]) {
|
|
115
|
+
constructor (...value: (number|T)[][]) {
|
|
109
116
|
this.value = value
|
|
110
117
|
this.interpolationKeys = []
|
|
111
118
|
}
|
|
@@ -133,8 +140,10 @@ export class KeyFrame<T> {
|
|
|
133
140
|
for (let i = 0; i < this.value.length; i++) {
|
|
134
141
|
const startTime = this.value[i][0] as number
|
|
135
142
|
const startValue = this.value[i][1] as T
|
|
136
|
-
|
|
137
|
-
|
|
143
|
+
const interpolate =
|
|
144
|
+
this.value[i].length === 3
|
|
145
|
+
? (this.value[i][2] as Interpolate)
|
|
146
|
+
: linearInterp
|
|
138
147
|
if (i + 1 < this.value.length) {
|
|
139
148
|
const endTime = this.value[i + 1][0] as number
|
|
140
149
|
const endValue = this.value[i + 1][1] as T
|