happy-dom 7.1.1 → 7.3.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.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (80) hide show
  1. package/lib/config/ElementTag.d.ts +4 -2
  2. package/lib/config/ElementTag.js +4 -2
  3. package/lib/config/ElementTag.js.map +1 -1
  4. package/lib/config/NonImplemenetedElementClasses.js +0 -3
  5. package/lib/config/NonImplemenetedElementClasses.js.map +1 -1
  6. package/lib/index.d.ts +11 -1
  7. package/lib/index.js +12 -2
  8. package/lib/index.js.map +1 -1
  9. package/lib/nodes/attr/Attr.d.ts +1 -0
  10. package/lib/nodes/attr/Attr.js +1 -0
  11. package/lib/nodes/attr/Attr.js.map +1 -1
  12. package/lib/nodes/document/Document.d.ts +9 -0
  13. package/lib/nodes/document/Document.js +21 -0
  14. package/lib/nodes/document/Document.js.map +1 -1
  15. package/lib/nodes/document/IDocument.d.ts +9 -0
  16. package/lib/nodes/element/Element.d.ts +1 -0
  17. package/lib/nodes/element/Element.js +1 -0
  18. package/lib/nodes/element/Element.js.map +1 -1
  19. package/lib/nodes/element/IElement.d.ts +1 -0
  20. package/lib/nodes/html-audio-element/HTMLAudioElement.d.ts +11 -0
  21. package/lib/nodes/html-audio-element/HTMLAudioElement.js +17 -0
  22. package/lib/nodes/html-audio-element/HTMLAudioElement.js.map +1 -0
  23. package/lib/nodes/html-audio-element/IHTMLAudioElement.d.ts +9 -0
  24. package/lib/nodes/html-audio-element/IHTMLAudioElement.js +3 -0
  25. package/lib/nodes/html-audio-element/IHTMLAudioElement.js.map +1 -0
  26. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +234 -0
  27. package/lib/nodes/html-media-element/HTMLMediaElement.js +418 -0
  28. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -0
  29. package/lib/nodes/html-media-element/IHTMLMediaElement.d.ts +76 -0
  30. package/lib/nodes/html-media-element/IHTMLMediaElement.js +3 -0
  31. package/lib/nodes/html-media-element/IHTMLMediaElement.js.map +1 -0
  32. package/lib/nodes/html-video-element/HTMLVideoElement.d.ts +11 -0
  33. package/lib/nodes/html-video-element/HTMLVideoElement.js +17 -0
  34. package/lib/nodes/html-video-element/HTMLVideoElement.js.map +1 -0
  35. package/lib/nodes/html-video-element/IHTMLVideoElement.d.ts +9 -0
  36. package/lib/nodes/html-video-element/IHTMLVideoElement.js +3 -0
  37. package/lib/nodes/html-video-element/IHTMLVideoElement.js.map +1 -0
  38. package/lib/nodes/node/INode.d.ts +8 -0
  39. package/lib/nodes/node/Node.d.ts +20 -0
  40. package/lib/nodes/node/Node.js +154 -0
  41. package/lib/nodes/node/Node.js.map +1 -1
  42. package/lib/nodes/node/NodeDocumentPositionEnum.d.ts +9 -0
  43. package/lib/nodes/node/NodeDocumentPositionEnum.js +13 -0
  44. package/lib/nodes/node/NodeDocumentPositionEnum.js.map +1 -0
  45. package/lib/nodes/node/NodeUtility.d.ts +16 -0
  46. package/lib/nodes/node/NodeUtility.js +100 -0
  47. package/lib/nodes/node/NodeUtility.js.map +1 -1
  48. package/lib/nodes/processing-instruction/IProcessingInstruction.d.ts +4 -0
  49. package/lib/nodes/processing-instruction/IProcessingInstruction.js +3 -0
  50. package/lib/nodes/processing-instruction/IProcessingInstruction.js.map +1 -0
  51. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts +12 -0
  52. package/lib/nodes/processing-instruction/ProcessingInstruction.js +20 -0
  53. package/lib/nodes/processing-instruction/ProcessingInstruction.js.map +1 -0
  54. package/lib/window/IWindow.d.ts +8 -0
  55. package/lib/window/Window.d.ts +8 -0
  56. package/lib/window/Window.js +8 -0
  57. package/lib/window/Window.js.map +1 -1
  58. package/package.json +2 -2
  59. package/src/config/ElementTag.ts +4 -2
  60. package/src/config/NonImplemenetedElementClasses.ts +0 -3
  61. package/src/index.ts +21 -1
  62. package/src/nodes/attr/Attr.ts +1 -0
  63. package/src/nodes/document/Document.ts +28 -0
  64. package/src/nodes/document/IDocument.ts +10 -0
  65. package/src/nodes/element/Element.ts +1 -0
  66. package/src/nodes/element/IElement.ts +1 -0
  67. package/src/nodes/html-audio-element/HTMLAudioElement.ts +11 -0
  68. package/src/nodes/html-audio-element/IHTMLAudioElement.ts +11 -0
  69. package/src/nodes/html-media-element/HTMLMediaElement.ts +441 -0
  70. package/src/nodes/html-media-element/IHTMLMediaElement.ts +84 -0
  71. package/src/nodes/html-video-element/HTMLVideoElement.ts +11 -0
  72. package/src/nodes/html-video-element/IHTMLVideoElement.ts +11 -0
  73. package/src/nodes/node/INode.ts +8 -0
  74. package/src/nodes/node/Node.ts +191 -1
  75. package/src/nodes/node/NodeDocumentPositionEnum.ts +10 -0
  76. package/src/nodes/node/NodeUtility.ts +137 -0
  77. package/src/nodes/processing-instruction/IProcessingInstruction.ts +5 -0
  78. package/src/nodes/processing-instruction/ProcessingInstruction.ts +13 -0
  79. package/src/window/IWindow.ts +8 -0
  80. package/src/window/Window.ts +8 -0
@@ -0,0 +1,234 @@
1
+ import ErrorEvent from 'src/event/events/ErrorEvent';
2
+ import Event from '../../event/Event';
3
+ import HTMLElement from '../html-element/HTMLElement';
4
+ import IHTMLMediaElement, { IMediaError } from './IHTMLMediaElement';
5
+ /**
6
+ * HTML Media Element.
7
+ *
8
+ * Reference:
9
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.
10
+ *
11
+ */
12
+ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaElement {
13
+ #private;
14
+ readonly buffered: object;
15
+ readonly duration: number;
16
+ readonly error: IMediaError;
17
+ readonly ended = false;
18
+ readonly networkState = 0;
19
+ readonly readyState = 0;
20
+ readonly textTracks: any[];
21
+ readonly videoTracks: any[];
22
+ readonly seeking = false;
23
+ readonly seekable: object;
24
+ readonly played: object;
25
+ onabort: (event: Event) => void;
26
+ oncanplay: (event: Event) => void;
27
+ oncanplaythrough: (event: Event) => void;
28
+ ondurationchange: (event: Event) => void;
29
+ onemptied: (event: Event) => void;
30
+ onended: (event: Event) => void;
31
+ onerror: (event: ErrorEvent) => void;
32
+ onloadeddata: (event: Event) => void;
33
+ /**
34
+ * Returns autoplay.
35
+ *
36
+ * @returns Autoplay.
37
+ */
38
+ get autoplay(): boolean;
39
+ /**
40
+ * Sets autoplay.
41
+ *
42
+ * @param autoplay Autoplay.
43
+ */
44
+ set autoplay(autoplay: boolean);
45
+ /**
46
+ * Returns controls.
47
+ *
48
+ * @returns Controls.
49
+ */
50
+ get controls(): boolean;
51
+ /**
52
+ * Sets controls.
53
+ *
54
+ * @param controls Controls.
55
+ */
56
+ set controls(controls: boolean);
57
+ /**
58
+ * Returns loop.
59
+ *
60
+ * @returns Loop.
61
+ */
62
+ get loop(): boolean;
63
+ /**
64
+ * Sets loop.
65
+ *
66
+ * @param loop Loop.
67
+ */
68
+ set loop(loop: boolean);
69
+ /**
70
+ * Returns muted.
71
+ *
72
+ * @returns Muted.
73
+ */
74
+ get muted(): boolean;
75
+ /**
76
+ * Sets muted.
77
+ *
78
+ * @param muted Muted.
79
+ */
80
+ set muted(muted: boolean);
81
+ /**
82
+ * Returns defaultMuted.
83
+ *
84
+ * @returns DefaultMuted.
85
+ */
86
+ get defaultMuted(): boolean;
87
+ /**
88
+ * Sets defaultMuted.
89
+ *
90
+ * @param defaultMuted DefaultMuted.
91
+ */
92
+ set defaultMuted(defaultMuted: boolean);
93
+ /**
94
+ * Returns src.
95
+ *
96
+ * @returns Src.
97
+ */
98
+ get src(): string;
99
+ /**
100
+ * Sets src.
101
+ *
102
+ * @param src Src.
103
+ */
104
+ set src(src: string);
105
+ /**
106
+ * Returns currentSrc.
107
+ *
108
+ * @returns CurrentrSrc.
109
+ */
110
+ get currentSrc(): string;
111
+ /**
112
+ * Returns volume.
113
+ *
114
+ * @returns Volume.
115
+ */
116
+ get volume(): number;
117
+ /**
118
+ * Sets volume.
119
+ *
120
+ * @param volume Volume.
121
+ */
122
+ set volume(volume: number | string);
123
+ /**
124
+ * Returns crossOrigin.
125
+ *
126
+ * @returns CrossOrigin.
127
+ */
128
+ get crossOrigin(): string;
129
+ /**
130
+ * Sets crossOrigin.
131
+ *
132
+ * @param crossOrigin CrossOrigin.
133
+ */
134
+ set crossOrigin(crossOrigin: string | null);
135
+ /**
136
+ * Returns currentTime.
137
+ *
138
+ * @returns CurrentTime.
139
+ */
140
+ get currentTime(): number;
141
+ /**
142
+ * Sets currentTime.
143
+ *
144
+ * @param currentTime CurrentTime.
145
+ */
146
+ set currentTime(currentTime: number | string);
147
+ /**
148
+ * Returns playbackRate.
149
+ *
150
+ * @returns PlaybackRate.
151
+ */
152
+ get playbackRate(): number;
153
+ /**
154
+ * Sets playbackRate.
155
+ *
156
+ * @param playbackRate PlaybackRate.
157
+ */
158
+ set playbackRate(playbackRate: number | string);
159
+ /**
160
+ * Returns defaultPlaybackRate.
161
+ *
162
+ * @returns DefaultPlaybackRate.
163
+ */
164
+ get defaultPlaybackRate(): number;
165
+ /**
166
+ * Sets defaultPlaybackRate.
167
+ *
168
+ * @param defaultPlaybackRate DefaultPlaybackRate.
169
+ */
170
+ set defaultPlaybackRate(defaultPlaybackRate: number | string);
171
+ /**
172
+ * Returns preservesPitch.
173
+ *
174
+ * @returns PlaybackRate.
175
+ */
176
+ get preservesPitch(): boolean;
177
+ /**
178
+ * Sets preservesPitch.
179
+ *
180
+ * @param preservesPitch PreservesPitch.
181
+ */
182
+ set preservesPitch(preservesPitch: boolean);
183
+ /**
184
+ * Returns preload.
185
+ *
186
+ * @returns preload.
187
+ */
188
+ get preload(): string;
189
+ /**
190
+ * Sets preload.
191
+ *
192
+ * @param preload preload.
193
+ */
194
+ set preload(preload: string);
195
+ /**
196
+ * Returns paused.
197
+ *
198
+ * @returns Paused.
199
+ */
200
+ get paused(): boolean;
201
+ /**
202
+ * Pause played media.
203
+ */
204
+ pause(): void;
205
+ /**
206
+ * Start playing media.
207
+ */
208
+ play(): Promise<void>;
209
+ /**
210
+ *
211
+ * @param _type
212
+ */
213
+ canPlayType(_type: string): string;
214
+ /**
215
+ * Load media.
216
+ */
217
+ load(): void;
218
+ /**
219
+ *
220
+ */
221
+ captureStream(): object;
222
+ /**
223
+ * Clones a node.
224
+ *
225
+ * @override
226
+ * @param [deep=false] "true" to clone deep.
227
+ * @returns Cloned node.
228
+ */
229
+ /**
230
+ *
231
+ * @param deep
232
+ */
233
+ cloneNode(deep?: boolean): IHTMLMediaElement;
234
+ }
@@ -0,0 +1,418 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ var _HTMLMediaElement_volume, _HTMLMediaElement_paused, _HTMLMediaElement_currentTime, _HTMLMediaElement_playbackRate, _HTMLMediaElement_defaultPlaybackRate, _HTMLMediaElement_muted, _HTMLMediaElement_defaultMuted, _HTMLMediaElement_preservesPitch;
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const Event_1 = __importDefault(require("../../event/Event"));
19
+ const DOMException_1 = __importDefault(require("../../exception/DOMException"));
20
+ const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
21
+ const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
22
+ /**
23
+ *
24
+ * This implementation coming from jsdom
25
+ * https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/nodes/HTMLMediaElement-impl.js#L7
26
+ *
27
+ */
28
+ function getTimeRangeDummy() {
29
+ return {
30
+ length: 0,
31
+ start() {
32
+ return 0;
33
+ },
34
+ end() {
35
+ return 0;
36
+ }
37
+ };
38
+ }
39
+ /**
40
+ * HTML Media Element.
41
+ *
42
+ * Reference:
43
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement.
44
+ *
45
+ */
46
+ class HTMLMediaElement extends HTMLElement_1.default {
47
+ constructor() {
48
+ super(...arguments);
49
+ // Public Properties
50
+ this.buffered = getTimeRangeDummy();
51
+ this.duration = NaN;
52
+ this.error = null;
53
+ this.ended = false;
54
+ this.networkState = 0;
55
+ this.readyState = 0;
56
+ this.textTracks = [];
57
+ this.videoTracks = [];
58
+ this.seeking = false;
59
+ this.seekable = getTimeRangeDummy();
60
+ this.played = getTimeRangeDummy();
61
+ // Events
62
+ this.onabort = null;
63
+ this.oncanplay = null;
64
+ this.oncanplaythrough = null;
65
+ this.ondurationchange = null;
66
+ this.onemptied = null;
67
+ this.onended = null;
68
+ this.onerror = null;
69
+ this.onloadeddata = null;
70
+ _HTMLMediaElement_volume.set(this, 1);
71
+ _HTMLMediaElement_paused.set(this, true);
72
+ _HTMLMediaElement_currentTime.set(this, 0);
73
+ _HTMLMediaElement_playbackRate.set(this, 1);
74
+ _HTMLMediaElement_defaultPlaybackRate.set(this, 1);
75
+ _HTMLMediaElement_muted.set(this, false);
76
+ _HTMLMediaElement_defaultMuted.set(this, false);
77
+ _HTMLMediaElement_preservesPitch.set(this, true);
78
+ }
79
+ /**
80
+ * Returns autoplay.
81
+ *
82
+ * @returns Autoplay.
83
+ */
84
+ get autoplay() {
85
+ return this.getAttributeNS(null, 'autoplay') !== null;
86
+ }
87
+ /**
88
+ * Sets autoplay.
89
+ *
90
+ * @param autoplay Autoplay.
91
+ */
92
+ set autoplay(autoplay) {
93
+ if (!autoplay) {
94
+ this.removeAttributeNS(null, 'autoplay');
95
+ }
96
+ else {
97
+ this.setAttributeNS(null, 'autoplay', '');
98
+ }
99
+ }
100
+ /**
101
+ * Returns controls.
102
+ *
103
+ * @returns Controls.
104
+ */
105
+ get controls() {
106
+ return this.getAttributeNS(null, 'controls') !== null;
107
+ }
108
+ /**
109
+ * Sets controls.
110
+ *
111
+ * @param controls Controls.
112
+ */
113
+ set controls(controls) {
114
+ if (!controls) {
115
+ this.removeAttributeNS(null, 'controls');
116
+ }
117
+ else {
118
+ this.setAttributeNS(null, 'controls', '');
119
+ }
120
+ }
121
+ /**
122
+ * Returns loop.
123
+ *
124
+ * @returns Loop.
125
+ */
126
+ get loop() {
127
+ return this.getAttributeNS(null, 'loop') !== null;
128
+ }
129
+ /**
130
+ * Sets loop.
131
+ *
132
+ * @param loop Loop.
133
+ */
134
+ set loop(loop) {
135
+ if (!loop) {
136
+ this.removeAttributeNS(null, 'loop');
137
+ }
138
+ else {
139
+ this.setAttributeNS(null, 'loop', '');
140
+ }
141
+ }
142
+ /**
143
+ * Returns muted.
144
+ *
145
+ * @returns Muted.
146
+ */
147
+ get muted() {
148
+ if (__classPrivateFieldGet(this, _HTMLMediaElement_muted, "f")) {
149
+ return __classPrivateFieldGet(this, _HTMLMediaElement_muted, "f");
150
+ }
151
+ if (!__classPrivateFieldGet(this, _HTMLMediaElement_defaultMuted, "f")) {
152
+ return this.getAttributeNS(null, 'muted') !== null;
153
+ }
154
+ return false;
155
+ }
156
+ /**
157
+ * Sets muted.
158
+ *
159
+ * @param muted Muted.
160
+ */
161
+ set muted(muted) {
162
+ __classPrivateFieldSet(this, _HTMLMediaElement_muted, !!muted, "f");
163
+ if (!muted && !__classPrivateFieldGet(this, _HTMLMediaElement_defaultMuted, "f")) {
164
+ this.removeAttributeNS(null, 'muted');
165
+ }
166
+ else {
167
+ this.setAttributeNS(null, 'muted', '');
168
+ }
169
+ }
170
+ /**
171
+ * Returns defaultMuted.
172
+ *
173
+ * @returns DefaultMuted.
174
+ */
175
+ get defaultMuted() {
176
+ return __classPrivateFieldGet(this, _HTMLMediaElement_defaultMuted, "f");
177
+ }
178
+ /**
179
+ * Sets defaultMuted.
180
+ *
181
+ * @param defaultMuted DefaultMuted.
182
+ */
183
+ set defaultMuted(defaultMuted) {
184
+ __classPrivateFieldSet(this, _HTMLMediaElement_defaultMuted, !!defaultMuted, "f");
185
+ if (!__classPrivateFieldGet(this, _HTMLMediaElement_defaultMuted, "f") && !__classPrivateFieldGet(this, _HTMLMediaElement_muted, "f")) {
186
+ this.removeAttributeNS(null, 'muted');
187
+ }
188
+ else {
189
+ this.setAttributeNS(null, 'muted', '');
190
+ }
191
+ }
192
+ /**
193
+ * Returns src.
194
+ *
195
+ * @returns Src.
196
+ */
197
+ get src() {
198
+ return this.getAttributeNS(null, 'src') || '';
199
+ }
200
+ /**
201
+ * Sets src.
202
+ *
203
+ * @param src Src.
204
+ */
205
+ set src(src) {
206
+ this.setAttributeNS(null, 'src', src);
207
+ if (Boolean(src)) {
208
+ this.dispatchEvent(new Event_1.default('canplay', { bubbles: false, cancelable: false }));
209
+ this.dispatchEvent(new Event_1.default('durationchange', { bubbles: false, cancelable: false }));
210
+ }
211
+ }
212
+ /**
213
+ * Returns currentSrc.
214
+ *
215
+ * @returns CurrentrSrc.
216
+ */
217
+ get currentSrc() {
218
+ return this.src;
219
+ }
220
+ /**
221
+ * Returns volume.
222
+ *
223
+ * @returns Volume.
224
+ */
225
+ get volume() {
226
+ return __classPrivateFieldGet(this, _HTMLMediaElement_volume, "f");
227
+ }
228
+ /**
229
+ * Sets volume.
230
+ *
231
+ * @param volume Volume.
232
+ */
233
+ set volume(volume) {
234
+ const parsedVolume = Number(volume);
235
+ if (isNaN(parsedVolume)) {
236
+ throw new TypeError(`Failed to set the 'volume' property on 'HTMLMediaElement': The provided double value is non-finite.`);
237
+ }
238
+ if (parsedVolume < 0 || parsedVolume > 1) {
239
+ throw new DOMException_1.default(`Failed to set the 'volume' property on 'HTMLMediaElement': The volume provided (${parsedVolume}) is outside the range [0, 1].`, DOMExceptionNameEnum_1.default.indexSizeError);
240
+ }
241
+ // TODO: volumechange event https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/volumechange_event
242
+ __classPrivateFieldSet(this, _HTMLMediaElement_volume, parsedVolume, "f");
243
+ }
244
+ /**
245
+ * Returns crossOrigin.
246
+ *
247
+ * @returns CrossOrigin.
248
+ */
249
+ get crossOrigin() {
250
+ return this.getAttributeNS(null, 'crossorigin');
251
+ }
252
+ /**
253
+ * Sets crossOrigin.
254
+ *
255
+ * @param crossOrigin CrossOrigin.
256
+ */
257
+ set crossOrigin(crossOrigin) {
258
+ if (crossOrigin === null) {
259
+ return;
260
+ }
261
+ if (['', 'use-credentials', 'anonymous'].includes(crossOrigin)) {
262
+ this.setAttributeNS(null, 'crossorigin', crossOrigin);
263
+ }
264
+ else {
265
+ this.setAttributeNS(null, 'crossorigin', 'anonymous');
266
+ }
267
+ }
268
+ /**
269
+ * Returns currentTime.
270
+ *
271
+ * @returns CurrentTime.
272
+ */
273
+ get currentTime() {
274
+ return __classPrivateFieldGet(this, _HTMLMediaElement_currentTime, "f");
275
+ }
276
+ /**
277
+ * Sets currentTime.
278
+ *
279
+ * @param currentTime CurrentTime.
280
+ */
281
+ set currentTime(currentTime) {
282
+ const parsedCurrentTime = Number(currentTime);
283
+ if (isNaN(parsedCurrentTime)) {
284
+ throw new TypeError(`Failed to set the 'currentTime' property on 'HTMLMediaElement': The provided double value is non-finite.`);
285
+ }
286
+ __classPrivateFieldSet(this, _HTMLMediaElement_currentTime, parsedCurrentTime, "f");
287
+ }
288
+ /**
289
+ * Returns playbackRate.
290
+ *
291
+ * @returns PlaybackRate.
292
+ */
293
+ get playbackRate() {
294
+ return __classPrivateFieldGet(this, _HTMLMediaElement_playbackRate, "f");
295
+ }
296
+ /**
297
+ * Sets playbackRate.
298
+ *
299
+ * @param playbackRate PlaybackRate.
300
+ */
301
+ set playbackRate(playbackRate) {
302
+ const parsedPlaybackRate = Number(playbackRate);
303
+ if (isNaN(parsedPlaybackRate)) {
304
+ throw new TypeError(`Failed to set the 'playbackRate' property on 'HTMLMediaElement': The provided double value is non-finite.`);
305
+ }
306
+ __classPrivateFieldSet(this, _HTMLMediaElement_playbackRate, parsedPlaybackRate, "f");
307
+ }
308
+ /**
309
+ * Returns defaultPlaybackRate.
310
+ *
311
+ * @returns DefaultPlaybackRate.
312
+ */
313
+ get defaultPlaybackRate() {
314
+ return __classPrivateFieldGet(this, _HTMLMediaElement_defaultPlaybackRate, "f");
315
+ }
316
+ /**
317
+ * Sets defaultPlaybackRate.
318
+ *
319
+ * @param defaultPlaybackRate DefaultPlaybackRate.
320
+ */
321
+ set defaultPlaybackRate(defaultPlaybackRate) {
322
+ const parsedDefaultPlaybackRate = Number(defaultPlaybackRate);
323
+ if (isNaN(parsedDefaultPlaybackRate)) {
324
+ throw new TypeError(`Failed to set the 'defaultPlaybackRate' property on 'HTMLMediaElement': The provided double value is non-finite.`);
325
+ }
326
+ __classPrivateFieldSet(this, _HTMLMediaElement_defaultPlaybackRate, parsedDefaultPlaybackRate, "f");
327
+ }
328
+ /**
329
+ * Returns preservesPitch.
330
+ *
331
+ * @returns PlaybackRate.
332
+ */
333
+ get preservesPitch() {
334
+ return __classPrivateFieldGet(this, _HTMLMediaElement_preservesPitch, "f");
335
+ }
336
+ /**
337
+ * Sets preservesPitch.
338
+ *
339
+ * @param preservesPitch PreservesPitch.
340
+ */
341
+ set preservesPitch(preservesPitch) {
342
+ __classPrivateFieldSet(this, _HTMLMediaElement_preservesPitch, Boolean(preservesPitch), "f");
343
+ }
344
+ /**
345
+ * Returns preload.
346
+ *
347
+ * @returns preload.
348
+ */
349
+ get preload() {
350
+ return this.getAttributeNS(null, 'preload') || 'auto';
351
+ }
352
+ /**
353
+ * Sets preload.
354
+ *
355
+ * @param preload preload.
356
+ */
357
+ set preload(preload) {
358
+ this.setAttributeNS(null, 'preload', preload);
359
+ }
360
+ /**
361
+ * Returns paused.
362
+ *
363
+ * @returns Paused.
364
+ */
365
+ get paused() {
366
+ return __classPrivateFieldGet(this, _HTMLMediaElement_paused, "f");
367
+ }
368
+ /**
369
+ * Pause played media.
370
+ */
371
+ pause() {
372
+ __classPrivateFieldSet(this, _HTMLMediaElement_paused, true, "f");
373
+ this.dispatchEvent(new Event_1.default('pause', { bubbles: false, cancelable: false }));
374
+ }
375
+ /**
376
+ * Start playing media.
377
+ */
378
+ async play() {
379
+ __classPrivateFieldSet(this, _HTMLMediaElement_paused, false, "f");
380
+ return Promise.resolve();
381
+ }
382
+ /**
383
+ *
384
+ * @param _type
385
+ */
386
+ canPlayType(_type) {
387
+ return '';
388
+ }
389
+ /**
390
+ * Load media.
391
+ */
392
+ load() {
393
+ this.dispatchEvent(new Event_1.default('emptied', { bubbles: false, cancelable: false }));
394
+ }
395
+ /**
396
+ *
397
+ */
398
+ captureStream() {
399
+ return {};
400
+ }
401
+ /**
402
+ * Clones a node.
403
+ *
404
+ * @override
405
+ * @param [deep=false] "true" to clone deep.
406
+ * @returns Cloned node.
407
+ */
408
+ /**
409
+ *
410
+ * @param deep
411
+ */
412
+ cloneNode(deep = false) {
413
+ return super.cloneNode(deep);
414
+ }
415
+ }
416
+ exports.default = HTMLMediaElement;
417
+ _HTMLMediaElement_volume = new WeakMap(), _HTMLMediaElement_paused = new WeakMap(), _HTMLMediaElement_currentTime = new WeakMap(), _HTMLMediaElement_playbackRate = new WeakMap(), _HTMLMediaElement_defaultPlaybackRate = new WeakMap(), _HTMLMediaElement_muted = new WeakMap(), _HTMLMediaElement_defaultMuted = new WeakMap(), _HTMLMediaElement_preservesPitch = new WeakMap();
418
+ //# sourceMappingURL=HTMLMediaElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLMediaElement.js","sourceRoot":"","sources":["../../../src/nodes/html-media-element/HTMLMediaElement.ts"],"names":[],"mappings":"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"}