@gcorevideo/player 2.16.17 → 2.17.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 (37) hide show
  1. package/README.md +68 -19
  2. package/dist/index.js +93 -19
  3. package/dist/player.d.ts +82 -51
  4. package/docs/api/index.md +1 -1
  5. package/docs/api/player.md +2 -2
  6. package/docs/api/player.playbackerrorcode.md +4 -4
  7. package/docs/api/player.player.attachto.md +26 -0
  8. package/docs/api/player.player.configure.md +6 -2
  9. package/docs/api/player.player.destroy.md +1 -1
  10. package/docs/api/player.player.getcurrenttime.md +6 -2
  11. package/docs/api/player.player.getduration.md +4 -0
  12. package/docs/api/player.player.getvolume.md +22 -0
  13. package/docs/api/player.player.isdvrenabled.md +20 -0
  14. package/docs/api/player.player.isplaying.md +20 -0
  15. package/docs/api/player.player.md +62 -8
  16. package/docs/api/player.player.mute.md +1 -1
  17. package/docs/api/player.player.off.md +1 -1
  18. package/docs/api/player.player.registerplugin.md +14 -1
  19. package/docs/api/player.player.resize.md +4 -0
  20. package/docs/api/player.player.seek.md +1 -1
  21. package/docs/api/player.player.setvolume.md +56 -0
  22. package/docs/api/player.player.unmute.md +1 -1
  23. package/docs/api/player.player.unregisterplugin.md +2 -2
  24. package/lib/Player.d.ts +79 -14
  25. package/lib/Player.d.ts.map +1 -1
  26. package/lib/Player.js +91 -14
  27. package/lib/index.d.ts +2 -3
  28. package/lib/index.d.ts.map +1 -1
  29. package/lib/index.js +2 -3
  30. package/package.json +1 -1
  31. package/rollup.config.js +1 -1
  32. package/src/Player.ts +95 -15
  33. package/src/__tests__/Player.test.ts +9 -3
  34. package/src/index.ts +2 -3
  35. package/src/utils/__tests__/mediaSources.test.ts +8 -2
  36. package/temp/player.api.json +162 -21
  37. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,22 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [Player](./player.player.md) &gt; [getVolume](./player.player.getvolume.md)
4
+
5
+ ## Player.getVolume() method
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ Gets the current volume of the media content being played.
11
+
12
+ **Signature:**
13
+
14
+ ```typescript
15
+ getVolume(): number;
16
+ ```
17
+ **Returns:**
18
+
19
+ number
20
+
21
+ a number between 0 and 1
22
+
@@ -0,0 +1,20 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [Player](./player.player.md) &gt; [isDvrEnabled](./player.player.isdvrenabled.md)
4
+
5
+ ## Player.isDvrEnabled() method
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ Indicates whether DVR is enabled.
11
+
12
+ **Signature:**
13
+
14
+ ```typescript
15
+ isDvrEnabled(): boolean;
16
+ ```
17
+ **Returns:**
18
+
19
+ boolean
20
+
@@ -0,0 +1,20 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [Player](./player.player.md) &gt; [isPlaying](./player.player.isplaying.md)
4
+
5
+ ## Player.isPlaying() method
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ Indicates the playing state of the player.
11
+
12
+ **Signature:**
13
+
14
+ ```typescript
15
+ isPlaying(): boolean;
16
+ ```
17
+ **Returns:**
18
+
19
+ boolean
20
+
@@ -97,8 +97,6 @@ Description
97
97
 
98
98
  **_(BETA)_** Configures the player.
99
99
 
100
- Can be called multiple times. Each consequent call extends the previous configuration. After a reconfiguration, if something significant has changed, the must be reinitialized (i.e, a `.destroy()` followed by an `.init()` call).
101
-
102
100
 
103
101
  </td></tr>
104
102
  <tr><td>
@@ -111,7 +109,7 @@ Can be called multiple times. Each consequent call extends the previous configur
111
109
 
112
110
  </td><td>
113
111
 
114
- **_(BETA)_** Destroys the player, releasing all resources and removing any DOM elements added.
112
+ **_(BETA)_** Destroys the player, releasing all resources and unmounting its UI from the DOM.
115
113
 
116
114
 
117
115
  </td></tr>
@@ -125,7 +123,7 @@ Can be called multiple times. Each consequent call extends the previous configur
125
123
 
126
124
  </td><td>
127
125
 
128
- **_(BETA)_** Current playback time in seconds, if appropriate.
126
+ **_(BETA)_** Current playback (time since the beginning of the stream), if appropriate.
129
127
 
130
128
 
131
129
  </td></tr>
@@ -142,6 +140,48 @@ Can be called multiple times. Each consequent call extends the previous configur
142
140
  **_(BETA)_** Duration of the current media in seconds, if appropriate.
143
141
 
144
142
 
143
+ </td></tr>
144
+ <tr><td>
145
+
146
+ [getVolume()](./player.player.getvolume.md)
147
+
148
+
149
+ </td><td>
150
+
151
+
152
+ </td><td>
153
+
154
+ **_(BETA)_** Gets the current volume of the media content being played.
155
+
156
+
157
+ </td></tr>
158
+ <tr><td>
159
+
160
+ [isDvrEnabled()](./player.player.isdvrenabled.md)
161
+
162
+
163
+ </td><td>
164
+
165
+
166
+ </td><td>
167
+
168
+ **_(BETA)_** Indicates whether DVR is enabled.
169
+
170
+
171
+ </td></tr>
172
+ <tr><td>
173
+
174
+ [isPlaying()](./player.player.isplaying.md)
175
+
176
+
177
+ </td><td>
178
+
179
+
180
+ </td><td>
181
+
182
+ **_(BETA)_** Indicates the playing state of the player.
183
+
184
+
145
185
  </td></tr>
146
186
  <tr><td>
147
187
 
@@ -153,7 +193,7 @@ Can be called multiple times. Each consequent call extends the previous configur
153
193
 
154
194
  </td><td>
155
195
 
156
- **_(BETA)_** Mutes the player.
196
+ **_(BETA)_** Mutes the sound of the video.
157
197
 
158
198
 
159
199
  </td></tr>
@@ -167,7 +207,7 @@ Can be called multiple times. Each consequent call extends the previous configur
167
207
 
168
208
  </td><td>
169
209
 
170
- **_(BETA)_** Removes a listener from a player event
210
+ **_(BETA)_** Removes a previously added event listener
171
211
 
172
212
 
173
213
  </td></tr>
@@ -256,6 +296,20 @@ Can be called multiple times. Each consequent call extends the previous configur
256
296
  **_(BETA)_** Seeks to the given time.
257
297
 
258
298
 
299
+ </td></tr>
300
+ <tr><td>
301
+
302
+ [setVolume(volume)](./player.player.setvolume.md)
303
+
304
+
305
+ </td><td>
306
+
307
+
308
+ </td><td>
309
+
310
+ **_(BETA)_** Sets the current volume of the media content being played.
311
+
312
+
259
313
  </td></tr>
260
314
  <tr><td>
261
315
 
@@ -281,7 +335,7 @@ Can be called multiple times. Each consequent call extends the previous configur
281
335
 
282
336
  </td><td>
283
337
 
284
- **_(BETA)_** Unmutes the player.
338
+ **_(BETA)_** Unmutes the video sound.
285
339
 
286
340
 
287
341
  </td></tr>
@@ -297,7 +351,7 @@ Can be called multiple times. Each consequent call extends the previous configur
297
351
 
298
352
  </td><td>
299
353
 
300
- **_(BETA)_** Unregisters a plugin.
354
+ **_(BETA)_** Unregisters a plugin registered earlier with [Player.registerPlugin()](./player.player.registerplugin.md)<!-- -->.
301
355
 
302
356
 
303
357
  </td></tr>
@@ -7,7 +7,7 @@
7
7
  > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
8
  >
9
9
 
10
- Mutes the player.
10
+ Mutes the sound of the video.
11
11
 
12
12
  **Signature:**
13
13
 
@@ -7,7 +7,7 @@
7
7
  > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
8
  >
9
9
 
10
- Removes a listener from a player event
10
+ Removes a previously added event listener
11
11
 
12
12
  **Signature:**
13
13
 
@@ -45,7 +45,7 @@ plugin
45
45
 
46
46
  </td><td>
47
47
 
48
- plugin to register
48
+ a plugin class
49
49
 
50
50
 
51
51
  </td></tr>
@@ -54,3 +54,16 @@ plugin to register
54
54
 
55
55
  void
56
56
 
57
+ ## Remarks
58
+
59
+ Use this method to extend the player with custom behavior. The plugin class must inherit from one of the Clappr UIPlugin, UIContainerPlugin or CorePlugin classes. A core plugin will be initialized and attached to the player when the player is initialized. A UI plugin will be initialized and attached to the player container is initialized.
60
+
61
+ ## Example
62
+
63
+
64
+ ```ts
65
+ import MyPlugin from './MyPlugin.js'
66
+
67
+ Player.registerPlugin(MyPlugin)
68
+ ```
69
+
@@ -57,3 +57,7 @@ new size of the player
57
57
 
58
58
  void
59
59
 
60
+ ## Remarks
61
+
62
+ Use this method when the player itself does not detect the change in size of its container element. It can be a case for orientation change on some mobile devices.
63
+
@@ -45,7 +45,7 @@ number
45
45
 
46
46
  </td><td>
47
47
 
48
- time to seek to in seconds
48
+ time to seek to in seconds (since the beginning of the stream)
49
49
 
50
50
 
51
51
  </td></tr>
@@ -0,0 +1,56 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@gcorevideo/player](./player.md) &gt; [Player](./player.player.md) &gt; [setVolume](./player.player.setvolume.md)
4
+
5
+ ## Player.setVolume() method
6
+
7
+ > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
+ >
9
+
10
+ Sets the current volume of the media content being played.
11
+
12
+ **Signature:**
13
+
14
+ ```typescript
15
+ setVolume(volume: number): void;
16
+ ```
17
+
18
+ ## Parameters
19
+
20
+ <table><thead><tr><th>
21
+
22
+ Parameter
23
+
24
+
25
+ </th><th>
26
+
27
+ Type
28
+
29
+
30
+ </th><th>
31
+
32
+ Description
33
+
34
+
35
+ </th></tr></thead>
36
+ <tbody><tr><td>
37
+
38
+ volume
39
+
40
+
41
+ </td><td>
42
+
43
+ number
44
+
45
+
46
+ </td><td>
47
+
48
+ a number between 0 and 1
49
+
50
+
51
+ </td></tr>
52
+ </tbody></table>
53
+ **Returns:**
54
+
55
+ void
56
+
@@ -7,7 +7,7 @@
7
7
  > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
8
  >
9
9
 
10
- Unmutes the player.
10
+ Unmutes the video sound.
11
11
 
12
12
  **Signature:**
13
13
 
@@ -7,7 +7,7 @@
7
7
  > This API is provided as a beta preview for developers and may change based on feedback that we receive. Do not use this API in a production environment.
8
8
  >
9
9
 
10
- Unregisters a plugin.
10
+ Unregisters a plugin registered earlier with [Player.registerPlugin()](./player.player.registerplugin.md)<!-- -->.
11
11
 
12
12
  **Signature:**
13
13
 
@@ -45,7 +45,7 @@ plugin
45
45
 
46
46
  </td><td>
47
47
 
48
- plugin to unregister
48
+ a plugin class
49
49
 
50
50
 
51
51
  </td></tr>
package/lib/Player.d.ts CHANGED
@@ -32,7 +32,7 @@ export declare class Player {
32
32
  */
33
33
  on<T extends PlayerEvent>(event: T, handler: PlayerEventHandler<T>): void;
34
34
  /**
35
- * Removes a listener from a player event
35
+ * Removes a previously added event listener
36
36
  * @param event - See {@link PlayerEvent}
37
37
  * @param handler - See {@link PlayerEventHandler}
38
38
  */
@@ -40,37 +40,76 @@ export declare class Player {
40
40
  /**
41
41
  * Configures the player.
42
42
  *
43
- * Can be called multiple times. Each consequent call extends the previous configuration.
44
- * After a reconfiguration, if something significant has changed, the must be reinitialized (i.e, a `.destroy()` followed by an `.init()` call).
45
- *
46
43
  * @param config - complete or partial configuration
44
+ * @remarks
45
+ * Can be called multiple times.
46
+ * Each consequent call extends the previous configuration with only the new keys overridden.
47
+ *
48
+ * After a reconfiguration, if something significant has changed, it might make sense reinitialize the player (i.e, a `.destroy()` followed by an `.init()` call).
47
49
  */
48
50
  configure(config: Partial<PlayerConfig>): void;
49
51
  /**
50
52
  * Initializes the player at the given container element.
51
53
  * @param playerElement - DOM element to host the player
54
+ * @remarks
55
+ * The player will be initialized and attached to the given element.
56
+ *
57
+ * All the core plugins will be initialized at this point.
58
+ *
59
+ * If no sources were configured, it will trigger an error.
60
+ *
61
+ * The player container will be initialized and then all the registered UI plugins.
62
+ *
63
+ * If the `autoPlay` option is set, then it will trigger playback immediately.
64
+ *
65
+ * It is an error to call this method twice. If you need to attache player to another DOM element,
66
+ * first call {@link Player.destroy} and then {@link Player.attachTo}.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const player = new Player({
71
+ * sources: [{ source: 'https://example.com/a.mpd', mimeType: 'application/dash+xml' }],
72
+ * })
73
+ * document.addEventListener('DOMContentLoaded', () => {
74
+ * player.attachTo(document.getElementById('video-container'))
75
+ * })
76
+ * ```
52
77
  */
53
78
  attachTo(playerElement: HTMLElement): void;
54
79
  /**
55
- * Destroys the player, releasing all resources and removing any DOM elements added.
80
+ * Destroys the player, releasing all resources and unmounting its UI from the DOM.
56
81
  */
57
82
  destroy(): void;
58
83
  /**
59
- * Current playback time in seconds, if appropriate.
60
- * @returns For live streams, it returns the current time of the current segment.
84
+ * Current playback (time since the beginning of the stream), if appropriate.
85
+ *
86
+ * @returns Time in seconds
87
+ * @remarks
88
+ * For live streams, it returns the current time within the current segment.
61
89
  */
62
90
  getCurrentTime(): number;
63
91
  /**
64
92
  * Duration of the current media in seconds, if appropriate.
65
- * @returns For live streams, it returns the duration of the current segment.
93
+ *
94
+ * @returns Time in seconds
95
+ * @remarks
96
+ * For live streams, it returns the duration of the current segment.
66
97
  */
67
98
  getDuration(): number;
68
99
  /**
69
- * Mutes the player.
100
+ * Indicates whether DVR is enabled.
101
+ */
102
+ isDvrEnabled(): boolean;
103
+ /**
104
+ * Indicates the playing state of the player.
105
+ */
106
+ isPlaying(): boolean;
107
+ /**
108
+ * Mutes the sound of the video.
70
109
  */
71
110
  mute(): void;
72
111
  /**
73
- * Unmutes the player.
112
+ * Unmutes the video sound.
74
113
  */
75
114
  unmute(): void;
76
115
  /**
@@ -84,6 +123,9 @@ export declare class Player {
84
123
  /**
85
124
  * Resizes the player container element and everything within it.
86
125
  * @param newSize - new size of the player
126
+ * @remarks
127
+ * Use this method when the player itself does not detect the change in size of its container element.
128
+ * It can be a case for orientation change on some mobile devices.
87
129
  */
88
130
  resize(newSize: {
89
131
  width: number;
@@ -91,21 +133,44 @@ export declare class Player {
91
133
  }): void;
92
134
  /**
93
135
  * Seeks to the given time.
94
- * @param time - time to seek to in seconds
136
+ * @param time - time to seek to in seconds (since the beginning of the stream)
95
137
  */
96
138
  seek(time: number): void;
139
+ /**
140
+ * Gets the current volume of the media content being played.
141
+ * @returns a number between 0 and 1
142
+ */
143
+ getVolume(): number;
144
+ /**
145
+ * Sets the current volume of the media content being played.
146
+ * @param volume - a number between 0 and 1
147
+ */
148
+ setVolume(volume: number): void;
97
149
  /**
98
150
  * Stops playback.
99
151
  */
100
152
  stop(): void;
101
153
  /**
102
154
  * Registers a plugin.
103
- * @param plugin - plugin to register
155
+ * @param plugin - a plugin class
156
+ * @remarks
157
+ * Use this method to extend the player with custom behavior.
158
+ * The plugin class must inherit from one of the Clappr UIPlugin, UIContainerPlugin or CorePlugin classes.
159
+ * A core plugin will be initialized and attached to the player when the player is initialized.
160
+ * A UI plugin will be initialized and attached to the player container is initialized.
161
+ *
162
+ * @see {@link https://github.com/clappr/clappr/wiki/Architecture}
163
+ * @example
164
+ * ```ts
165
+ * import MyPlugin from './MyPlugin.js'
166
+ *
167
+ * Player.registerPlugin(MyPlugin)
168
+ * ```
104
169
  */
105
170
  static registerPlugin(plugin: PlayerPlugin): void;
106
171
  /**
107
- * Unregisters a plugin.
108
- * @param plugin - plugin to unregister
172
+ * Unregisters a plugin registered earlier with {@link Player.registerPlugin}.
173
+ * @param plugin - a plugin class
109
174
  */
110
175
  static unregisterPlugin(plugin: PlayerPlugin): void;
111
176
  private setConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQtD;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI,MAAM,IAAI,CAAA;AAelE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;AAI3D;;;;;;;GAOG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAO,CAAC,OAAO,CAAkB;IAEjC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO,CAAC,aAAa,CAA6C;IAElE,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,YAAY;IAOhC;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAIlE;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAInE;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAIvC;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI;IAoB1C;;OAEG;IACH,OAAO;IAgBP;;;OAGG;IACH,cAAc,IAAI,MAAM;IAOxB;;;OAGG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,IAAI;IAIJ;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,KAAK;IAIL;;OAEG;IACH,IAAI;IAIJ;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIjD;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB;;OAEG;IACH,IAAI;IAIJ;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY;IAI1C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAI5C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;YAqBJ,MAAM;IAwEpB,OAAO,CAAC,MAAM,CAiDb;IAED,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,2BAA2B;CAcpC"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../src/Player.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAyB,YAAY,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAOtD;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,WAAW,IAAI,MAAM,IAAI,CAAA;AAelE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,aAAa,CAAA;AAI3D;;;;;;;GAOG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAO,CAAC,OAAO,CAAkB;IAEjC,OAAO,CAAC,MAAM,CAA4B;IAE1C,OAAO,CAAC,KAAK,CAAQ;IAErB,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO,CAAC,aAAa,CAA6C;IAElE,OAAO,CAAC,OAAO,CAAQ;gBAEX,MAAM,EAAE,YAAY;IAOhC;;;;OAIG;IACH,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAIlE;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAInE;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC;IAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI;IAoB1C;;OAEG;IACH,OAAO;IAgBP;;;;;;OAMG;IACH,cAAc,IAAI,MAAM;IAOxB;;;;;;OAMG;IACH,WAAW,IAAI,MAAM;IAOrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,IAAI;IAIJ;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,KAAK;IAIL;;OAEG;IACH,IAAI;IAIJ;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAIjD;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM;IAIjB;;;OAGG;IACH,SAAS,IAAI,MAAM;IAMnB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM;IAMxB;;OAEG;IACH,IAAI;IAIJ;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,YAAY;IAI1C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY;IAI5C,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;YAqBJ,MAAM;IAwEpB,OAAO,CAAC,MAAM,CAiDb;IAED,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,2BAA2B;CAcpC"}