etro 0.12.1 → 0.14.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.
Files changed (145) hide show
  1. package/.github/dependabot.yml +6 -0
  2. package/.github/scripts/update-changelog.js +72 -0
  3. package/.github/workflows/dependabot-changelog.yml +57 -0
  4. package/.github/workflows/nodejs.yml +6 -2
  5. package/.github/workflows/shipjs-trigger.yml +2 -1
  6. package/.husky/pre-commit +1 -1
  7. package/AGENTS.md +106 -0
  8. package/CHANGELOG.md +46 -0
  9. package/CONTRIBUTING.md +5 -5
  10. package/README.md +8 -7
  11. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/base.css +224 -0
  12. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/block-navigation.js +87 -0
  13. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/favicon.png +0 -0
  14. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/index.html +161 -0
  15. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/prettify.css +1 -0
  16. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/prettify.js +2 -0
  17. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/sort-arrow-sprite.png +0 -0
  18. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/sorter.js +196 -0
  19. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/custom-array.ts.html +214 -0
  20. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/base.ts.html +481 -0
  21. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/brightness.ts.html +214 -0
  22. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/channels.ts.html +235 -0
  23. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/chroma-key.ts.html +331 -0
  24. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/contrast.ts.html +211 -0
  25. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/elliptical-mask.ts.html +310 -0
  26. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/gaussian-blur.ts.html +796 -0
  27. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/grayscale.ts.html +187 -0
  28. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/index.html +311 -0
  29. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/index.ts.html +154 -0
  30. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/pixelate.ts.html +259 -0
  31. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/shader.ts.html +1774 -0
  32. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/stack.ts.html +358 -0
  33. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/transform.ts.html +685 -0
  34. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/effect/visual.ts.html +148 -0
  35. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/etro.ts.html +163 -0
  36. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/event.ts.html +691 -0
  37. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/index.html +176 -0
  38. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/index.ts.html +109 -0
  39. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/audio-source.ts.html +835 -0
  40. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/audio.ts.html +241 -0
  41. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/base.ts.html +826 -0
  42. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/image.ts.html +181 -0
  43. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/index.html +236 -0
  44. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/index.ts.html +124 -0
  45. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/text.ts.html +658 -0
  46. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/video.ts.html +211 -0
  47. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/visual-source.ts.html +721 -0
  48. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/layer/visual.ts.html +760 -0
  49. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/movie/effects.ts.html +163 -0
  50. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/movie/index.html +161 -0
  51. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/movie/index.ts.html +88 -0
  52. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/movie/layers.ts.html +163 -0
  53. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/movie/movie.ts.html +3037 -0
  54. package/coverage/Chrome Headless 148.0.0.0 (Mac OS 10.15.7)/html/src/util.ts.html +1765 -0
  55. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/base.css +224 -0
  56. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/block-navigation.js +87 -0
  57. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/favicon.png +0 -0
  58. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/index.html +161 -0
  59. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/prettify.css +1 -0
  60. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/prettify.js +2 -0
  61. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/sort-arrow-sprite.png +0 -0
  62. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/sorter.js +196 -0
  63. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/custom-array.ts.html +214 -0
  64. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/base.ts.html +481 -0
  65. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/brightness.ts.html +214 -0
  66. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/channels.ts.html +235 -0
  67. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/chroma-key.ts.html +331 -0
  68. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/contrast.ts.html +211 -0
  69. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/elliptical-mask.ts.html +310 -0
  70. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/gaussian-blur.ts.html +796 -0
  71. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/grayscale.ts.html +187 -0
  72. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/index.html +311 -0
  73. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/index.ts.html +154 -0
  74. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/pixelate.ts.html +259 -0
  75. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/shader.ts.html +1774 -0
  76. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/stack.ts.html +358 -0
  77. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/transform.ts.html +685 -0
  78. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/effect/visual.ts.html +148 -0
  79. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/etro.ts.html +163 -0
  80. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/event.ts.html +691 -0
  81. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/index.html +176 -0
  82. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/index.ts.html +109 -0
  83. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/audio-source.ts.html +835 -0
  84. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/audio.ts.html +241 -0
  85. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/base.ts.html +826 -0
  86. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/image.ts.html +181 -0
  87. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/index.html +236 -0
  88. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/index.ts.html +124 -0
  89. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/text.ts.html +658 -0
  90. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/video.ts.html +211 -0
  91. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/visual-source.ts.html +721 -0
  92. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/layer/visual.ts.html +760 -0
  93. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/movie/effects.ts.html +163 -0
  94. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/movie/index.html +161 -0
  95. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/movie/index.ts.html +88 -0
  96. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/movie/layers.ts.html +163 -0
  97. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/movie/movie.ts.html +3037 -0
  98. package/coverage/Firefox 151.0 (Mac OS 10.15)/html/src/util.ts.html +1765 -0
  99. package/dist/custom-array.d.ts +10 -10
  100. package/dist/effect/base.d.ts +61 -60
  101. package/dist/effect/brightness.d.ts +16 -16
  102. package/dist/effect/channels.d.ts +23 -23
  103. package/dist/effect/chroma-key.d.ts +23 -23
  104. package/dist/effect/contrast.d.ts +15 -15
  105. package/dist/effect/elliptical-mask.d.ts +31 -31
  106. package/dist/effect/gaussian-blur.d.ts +60 -60
  107. package/dist/effect/grayscale.d.ts +7 -7
  108. package/dist/effect/index.d.ts +16 -16
  109. package/dist/effect/pixelate.d.ts +18 -18
  110. package/dist/effect/shader.d.ts +109 -109
  111. package/dist/effect/stack.d.ts +27 -27
  112. package/dist/effect/transform.d.ts +73 -73
  113. package/dist/effect/visual.d.ts +17 -17
  114. package/dist/etro-cjs.js +3601 -3556
  115. package/dist/etro-iife.js +3602 -3557
  116. package/dist/etro.d.ts +7 -7
  117. package/dist/event.d.ts +40 -40
  118. package/dist/index.d.ts +6 -6
  119. package/dist/layer/audio-source.d.ts +28 -28
  120. package/dist/layer/audio.d.ts +27 -27
  121. package/dist/layer/base.d.ts +129 -128
  122. package/dist/layer/image.d.ts +20 -20
  123. package/dist/layer/index.d.ts +11 -11
  124. package/dist/layer/text.d.ts +78 -78
  125. package/dist/layer/video.d.ts +23 -23
  126. package/dist/layer/visual-source.d.ts +47 -47
  127. package/dist/layer/visual.d.ts +62 -62
  128. package/dist/movie/effects.d.ts +6 -6
  129. package/dist/movie/index.d.ts +1 -1
  130. package/dist/movie/layers.d.ts +6 -6
  131. package/dist/movie/movie.d.ts +280 -277
  132. package/dist/object.d.ts +19 -19
  133. package/dist/util.d.ts +128 -121
  134. package/karma.conf.js +70 -3
  135. package/package.json +14 -17
  136. package/ship.config.js +9 -11
  137. package/src/effect/base.ts +16 -0
  138. package/src/effect/shader.ts +1 -1
  139. package/src/layer/base.ts +19 -1
  140. package/src/movie/movie.ts +123 -8
  141. package/src/util.ts +116 -3
  142. package/tsconfig.json +3 -2
  143. package/.husky/commit-msg +0 -4
  144. package/.husky/prepare-commit-msg +0 -11
  145. package/commitlint.config.ts +0 -39
package/dist/etro.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import * as layer from './layer/index';
2
- import * as effect from './effect/index';
3
- import * as event from './event';
4
- import EtroObject from './object';
5
- export * from './movie';
6
- export * from './util';
7
- export { EtroObject, layer, effect, event };
1
+ import * as layer from './layer/index';
2
+ import * as effect from './effect/index';
3
+ import * as event from './event';
4
+ import EtroObject from './object';
5
+ export * from './movie';
6
+ export * from './util';
7
+ export { EtroObject, layer, effect, event };
package/dist/event.d.ts CHANGED
@@ -1,40 +1,40 @@
1
- /**
2
- * @module event
3
- */
4
- import EtroObject from './object';
5
- export interface Event {
6
- target: EtroObject;
7
- type: string;
8
- }
9
- export declare function deprecate(type: string, newType: string, message?: string): void;
10
- /**
11
- * Listen for an event or category of events.
12
- *
13
- * @param target - an etro object
14
- * @param type - the id of the type (can contain subtypes, such as
15
- * "type.subtype")
16
- * @param listener
17
- * @param options - options
18
- * @param options.once - if true, the listener will only be called once
19
- */
20
- export declare function subscribe(target: EtroObject, type: string, listener: <T extends Event>(T: any) => void, options?: {
21
- once?: boolean;
22
- }): void;
23
- /**
24
- * Remove an event listener
25
- *
26
- * @param target - an etro object
27
- * @param type - the id of the type (can contain subtypes, such as
28
- * "type.subtype")
29
- * @param listener
30
- */
31
- export declare function unsubscribe(target: EtroObject, listener: <T extends Event>(T: any) => void): void;
32
- /**
33
- * Emits an event to all listeners
34
- *
35
- * @param target - an etro object
36
- * @param type - the id of the type (can contain subtypes, such as
37
- * "type.subtype")
38
- * @param event - any additional event data
39
- */
40
- export declare function publish(target: EtroObject, type: string, event: Record<string, unknown>): Event;
1
+ /**
2
+ * @module event
3
+ */
4
+ import EtroObject from './object';
5
+ export interface Event {
6
+ target: EtroObject;
7
+ type: string;
8
+ }
9
+ export declare function deprecate(type: string, newType: string, message?: string): void;
10
+ /**
11
+ * Listen for an event or category of events.
12
+ *
13
+ * @param target - an etro object
14
+ * @param type - the id of the type (can contain subtypes, such as
15
+ * "type.subtype")
16
+ * @param listener
17
+ * @param options - options
18
+ * @param options.once - if true, the listener will only be called once
19
+ */
20
+ export declare function subscribe(target: EtroObject, type: string, listener: <T extends Event>(T: any) => void, options?: {
21
+ once?: boolean;
22
+ }): void;
23
+ /**
24
+ * Remove an event listener
25
+ *
26
+ * @param target - an etro object
27
+ * @param type - the id of the type (can contain subtypes, such as
28
+ * "type.subtype")
29
+ * @param listener
30
+ */
31
+ export declare function unsubscribe(target: EtroObject, listener: <T extends Event>(T: any) => void): void;
32
+ /**
33
+ * Emits an event to all listeners
34
+ *
35
+ * @param target - an etro object
36
+ * @param type - the id of the type (can contain subtypes, such as
37
+ * "type.subtype")
38
+ * @param event - any additional event data
39
+ */
40
+ export declare function publish(target: EtroObject, type: string, event: Record<string, unknown>): Event;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- /**
2
- * The entry point
3
- * @module index
4
- */
5
- import * as etro from './etro';
6
- export default etro;
1
+ /**
2
+ * The entry point
3
+ * @module index
4
+ */
5
+ import * as etro from './etro';
6
+ export default etro;
@@ -1,28 +1,28 @@
1
- import { Base, BaseOptions } from './base';
2
- declare type Constructor<T> = new (...args: unknown[]) => T;
3
- interface AudioSource extends Base {
4
- /** HTML media element (an audio or video element) */
5
- readonly source: HTMLAudioElement;
6
- /** Audio source node for the media */
7
- readonly audioNode: AudioNode;
8
- playbackRate: number;
9
- /** Seconds to skip ahead by */
10
- sourceStartTime: number;
11
- }
12
- interface AudioSourceOptions extends Omit<BaseOptions, 'duration'> {
13
- duration?: number;
14
- /** HTML media element (an audio or video element) */
15
- source: HTMLMediaElement;
16
- /** Seconds to skip ahead by */
17
- sourceStartTime?: number;
18
- muted?: boolean;
19
- volume?: number;
20
- playbackRate?: number;
21
- onload?: (source: HTMLMediaElement, options: AudioSourceOptions) => void;
22
- }
23
- /**
24
- * A layer that gets its audio from an HTMLMediaElement
25
- * @mixin AudioSourceMixin
26
- */
27
- declare function AudioSourceMixin<OptionsSuperclass extends BaseOptions>(superclass: Constructor<Base>): Constructor<AudioSource>;
28
- export { AudioSource, AudioSourceOptions, AudioSourceMixin };
1
+ import { Base, BaseOptions } from './base';
2
+ type Constructor<T> = new (...args: unknown[]) => T;
3
+ interface AudioSource extends Base {
4
+ /** HTML media element (an audio or video element) */
5
+ readonly source: HTMLAudioElement;
6
+ /** Audio source node for the media */
7
+ readonly audioNode: AudioNode;
8
+ playbackRate: number;
9
+ /** Seconds to skip ahead by */
10
+ sourceStartTime: number;
11
+ }
12
+ interface AudioSourceOptions extends Omit<BaseOptions, 'duration'> {
13
+ duration?: number;
14
+ /** HTML media element (an audio or video element) */
15
+ source: HTMLMediaElement;
16
+ /** Seconds to skip ahead by */
17
+ sourceStartTime?: number;
18
+ muted?: boolean;
19
+ volume?: number;
20
+ playbackRate?: number;
21
+ onload?: (source: HTMLMediaElement, options: AudioSourceOptions) => void;
22
+ }
23
+ /**
24
+ * A layer that gets its audio from an HTMLMediaElement
25
+ * @mixin AudioSourceMixin
26
+ */
27
+ declare function AudioSourceMixin<OptionsSuperclass extends BaseOptions>(superclass: Constructor<Base>): Constructor<AudioSource>;
28
+ export { AudioSource, AudioSourceOptions, AudioSourceMixin };
@@ -1,27 +1,27 @@
1
- import { AudioSourceOptions } from './audio-source';
2
- interface AudioOptions extends Omit<AudioSourceOptions, 'source'> {
3
- /**
4
- * The raw html `<audio>` element
5
- */
6
- source: string | HTMLAudioElement;
7
- }
8
- declare const Audio_base: new (...args: unknown[]) => import("./audio-source").AudioSource;
9
- /**
10
- * Layer for an HTML audio element
11
- * @extends AudioSource
12
- */
13
- declare class Audio extends Audio_base {
14
- /**
15
- * The raw html `<audio>` element
16
- */
17
- source: HTMLAudioElement;
18
- /**
19
- * Creates an audio layer
20
- */
21
- constructor(options: AudioOptions);
22
- /**
23
- * @deprecated See {@link https://github.com/etro-js/etro/issues/131}
24
- */
25
- getDefaultOptions(): any;
26
- }
27
- export { Audio, AudioOptions };
1
+ import { AudioSourceOptions } from './audio-source';
2
+ interface AudioOptions extends Omit<AudioSourceOptions, 'source'> {
3
+ /**
4
+ * The raw html `<audio>` element
5
+ */
6
+ source: string | HTMLAudioElement;
7
+ }
8
+ declare const Audio_base: new (...args: unknown[]) => import("./audio-source").AudioSource;
9
+ /**
10
+ * Layer for an HTML audio element
11
+ * @extends AudioSource
12
+ */
13
+ declare class Audio extends Audio_base {
14
+ /**
15
+ * The raw html `<audio>` element
16
+ */
17
+ source: HTMLAudioElement;
18
+ /**
19
+ * Creates an audio layer
20
+ */
21
+ constructor(options: AudioOptions);
22
+ /**
23
+ * @deprecated See {@link https://github.com/etro-js/etro/issues/131}
24
+ */
25
+ getDefaultOptions(): any;
26
+ }
27
+ export { Audio, AudioOptions };
@@ -1,128 +1,129 @@
1
- import EtroObject from '../object';
2
- import { Movie } from '../movie';
3
- interface BaseOptions {
4
- /** The time in the movie at which this layer starts */
5
- startTime: number;
6
- duration: number;
7
- }
8
- /**
9
- * A layer outputs content for the movie
10
- */
11
- declare class Base implements EtroObject {
12
- type: string;
13
- publicExcludes: string[];
14
- propertyFilters: Record<string, <T>(value: T) => T>;
15
- enabled: boolean;
16
- /**
17
- * If the attached movie's playback position is in this layer
18
- */
19
- active: boolean;
20
- /**
21
- * The number of times this layer has been attached to a movie minus the
22
- * number of times it's been detached. (Used for the movie's array proxy with
23
- * `unshift`)
24
- */
25
- private _occurrenceCount;
26
- private _startTime;
27
- private _duration;
28
- private _currentTime;
29
- private _movie;
30
- /**
31
- * Creates a new empty layer
32
- *
33
- * @param options
34
- * @param options.startTime - when to start the layer on the movie's
35
- * timeline
36
- * @param options.duration - how long the layer should last on the
37
- * movie's timeline
38
- */
39
- constructor(options: BaseOptions);
40
- /**
41
- * Wait until this layer is ready to render
42
- */
43
- whenReady(): Promise<void>;
44
- /**
45
- * Attaches this layer to `movie` if not already attached.
46
- * @ignore
47
- */
48
- tryAttach(movie: Movie): void;
49
- /**
50
- * Attaches this layer to `movie`
51
- *
52
- * Called when the layer is added to a movie's `layers` array.
53
- *
54
- * @param movie The movie to attach to
55
- */
56
- attach(movie: Movie): void;
57
- /**
58
- * Detaches this layer from its movie if the number of times `tryDetach` has
59
- * been called (including this call) equals the number of times `tryAttach`
60
- * has been called.
61
- *
62
- * @ignore
63
- */
64
- tryDetach(): void;
65
- /**
66
- * Detaches this layer from its movie
67
- *
68
- * Called when the layer is removed from a movie's `layers` array.
69
- */
70
- detach(): void;
71
- /**
72
- * Called when the layer is activated
73
- */
74
- start(): void;
75
- /**
76
- * Update {@link currentTime} when seeking
77
- *
78
- * This method is called when the movie seeks to a new time at the request of
79
- * the user. {@link progress} is called when the movie's `currentTime` is
80
- * updated due to playback.
81
- *
82
- * @param time - The new time in the layer
83
- */
84
- seek(time: number): void;
85
- /**
86
- * Update {@link currentTime} due to playback
87
- *
88
- * This method is called when the movie's `currentTime` is updated due to
89
- * playback. {@link seek} is called when the movie seeks to a new time at the
90
- * request of the user.
91
- *
92
- * @param time - The new time in the layer
93
- */
94
- progress(time: number): void;
95
- /**
96
- * Called when the movie renders and the layer is active
97
- */
98
- render(): void;
99
- /**
100
- * Called when the layer is deactivated
101
- */
102
- stop(): void;
103
- get parent(): Movie;
104
- /**
105
- * The time in the movie at which this layer starts (in seconds)
106
- */
107
- get startTime(): number;
108
- set startTime(val: number);
109
- /**
110
- * The current time of the movie relative to this layer (in seconds)
111
- */
112
- get currentTime(): number;
113
- /**
114
- * The duration of this layer (in seconds)
115
- */
116
- get duration(): number;
117
- set duration(val: number);
118
- /**
119
- * `true` if this layer is ready to be rendered, `false` otherwise
120
- */
121
- get ready(): boolean;
122
- get movie(): Movie;
123
- /**
124
- * @deprecated See {@link https://github.com/etro-js/etro/issues/131}
125
- */
126
- getDefaultOptions(): BaseOptions;
127
- }
128
- export { Base, BaseOptions };
1
+ import EtroObject from '../object';
2
+ import { Movie } from '../movie';
3
+ interface BaseOptions {
4
+ /** The time in the movie at which this layer starts */
5
+ startTime: number;
6
+ duration: number;
7
+ }
8
+ /**
9
+ * A layer outputs content for the movie
10
+ */
11
+ declare class Base implements EtroObject {
12
+ type: string;
13
+ publicExcludes: string[];
14
+ propertyFilters: Record<string, <T>(value: T) => T>;
15
+ enabled: boolean;
16
+ /**
17
+ * If the attached movie's playback position is in this layer
18
+ */
19
+ active: boolean;
20
+ /**
21
+ * The number of times this layer has been attached to a movie minus the
22
+ * number of times it's been detached. (Used for the movie's array proxy with
23
+ * `unshift`)
24
+ */
25
+ private _occurrenceCount;
26
+ private _startTime;
27
+ private _duration;
28
+ private _currentTime;
29
+ private _movie;
30
+ /**
31
+ * Creates a new empty layer
32
+ *
33
+ * @param options
34
+ * @param options.startTime - when to start the layer on the movie's
35
+ * timeline
36
+ * @param options.duration - how long the layer should last on the
37
+ * movie's timeline
38
+ */
39
+ constructor(options: BaseOptions);
40
+ /**
41
+ * Wait until this layer is ready to render
42
+ */
43
+ whenReady(): Promise<void>;
44
+ /**
45
+ * Attaches this layer to `movie` if not already attached.
46
+ * @ignore
47
+ */
48
+ tryAttach(movie: Movie): void;
49
+ /**
50
+ * Attaches this layer to `movie`
51
+ *
52
+ * Called when the layer is added to a movie's `layers` array.
53
+ *
54
+ * @param movie The movie to attach to
55
+ */
56
+ attach(movie: Movie): void;
57
+ /**
58
+ * Detaches this layer from its movie if the number of times `tryDetach` has
59
+ * been called (including this call) equals the number of times `tryAttach`
60
+ * has been called.
61
+ *
62
+ * @ignore
63
+ */
64
+ tryDetach(): void;
65
+ /**
66
+ * Detaches this layer from its movie
67
+ *
68
+ * Called when the layer is removed from a movie's `layers` array.
69
+ */
70
+ detach(): void;
71
+ /**
72
+ * Called when the layer is activated
73
+ */
74
+ start(): void;
75
+ /**
76
+ * Update {@link currentTime} when seeking
77
+ *
78
+ * This method is called when the movie seeks to a new time at the request of
79
+ * the user. {@link progress} is called when the movie's `currentTime` is
80
+ * updated due to playback.
81
+ *
82
+ * @param time - The new time in the layer
83
+ */
84
+ seek(time: number): void;
85
+ /**
86
+ * Update {@link currentTime} due to playback
87
+ *
88
+ * This method is called when the movie's `currentTime` is updated due to
89
+ * playback. {@link seek} is called when the movie seeks to a new time at the
90
+ * request of the user.
91
+ *
92
+ * @param time - The new time in the layer
93
+ */
94
+ progress(time: number): void;
95
+ /**
96
+ * Called when the movie renders and the layer is active
97
+ */
98
+ render(): void;
99
+ /**
100
+ * Called when the layer is deactivated
101
+ */
102
+ stop(): void;
103
+ get parent(): Movie;
104
+ /**
105
+ * The time in the movie at which this layer starts (in seconds)
106
+ */
107
+ get startTime(): number;
108
+ set startTime(val: number);
109
+ /**
110
+ * The current time of the movie relative to this layer (in seconds)
111
+ */
112
+ get currentTime(): number;
113
+ /**
114
+ * The duration of this layer (in seconds)
115
+ */
116
+ get duration(): number;
117
+ set duration(val: number);
118
+ /**
119
+ * `true` if this layer is ready to be rendered, `false` otherwise
120
+ */
121
+ get ready(): boolean;
122
+ get movie(): Movie;
123
+ /**
124
+ * @deprecated See {@link https://github.com/etro-js/etro/issues/131}
125
+ */
126
+ getDefaultOptions(): BaseOptions;
127
+ toJSON(): object;
128
+ }
129
+ export { Base, BaseOptions };
@@ -1,20 +1,20 @@
1
- import { VisualSourceOptions } from './visual-source';
2
- interface ImageOptions extends Omit<VisualSourceOptions, 'source'> {
3
- /**
4
- * The raw html `<img>` element
5
- */
6
- source: string | HTMLImageElement;
7
- }
8
- declare const Image_base: new (...args: unknown[]) => import("./visual-source").VisualSource;
9
- /**
10
- * Layer for an HTML image element
11
- * @extends VisualSource
12
- */
13
- declare class Image extends Image_base {
14
- /**
15
- * The raw html `<img>` element
16
- */
17
- source: HTMLImageElement;
18
- constructor(options: ImageOptions);
19
- }
20
- export { Image, ImageOptions };
1
+ import { VisualSourceOptions } from './visual-source';
2
+ interface ImageOptions extends Omit<VisualSourceOptions, 'source'> {
3
+ /**
4
+ * The raw html `<img>` element
5
+ */
6
+ source: string | HTMLImageElement;
7
+ }
8
+ declare const Image_base: new (...args: unknown[]) => import("./visual-source").VisualSource;
9
+ /**
10
+ * Layer for an HTML image element
11
+ * @extends VisualSource
12
+ */
13
+ declare class Image extends Image_base {
14
+ /**
15
+ * The raw html `<img>` element
16
+ */
17
+ source: HTMLImageElement;
18
+ constructor(options: ImageOptions);
19
+ }
20
+ export { Image, ImageOptions };
@@ -1,11 +1,11 @@
1
- /**
2
- * @module layer
3
- */
4
- export * from './audio-source';
5
- export * from './audio';
6
- export * from './base';
7
- export * from './image';
8
- export * from './text';
9
- export * from './video';
10
- export * from './visual-source';
11
- export * from './visual';
1
+ /**
2
+ * @module layer
3
+ */
4
+ export * from './audio-source';
5
+ export * from './audio';
6
+ export * from './base';
7
+ export * from './image';
8
+ export * from './text';
9
+ export * from './video';
10
+ export * from './visual-source';
11
+ export * from './visual';