@gcorevideo/player 2.20.5 → 2.20.7
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/dist/core.js +3 -3
- package/dist/index.css +1181 -1181
- package/dist/index.js +3757 -3732
- package/dist/plugins/index.css +704 -704
- package/dist/plugins/index.js +5113 -5093
- package/lib/playback/BasePlayback.d.ts +1 -1
- package/lib/playback/BasePlayback.d.ts.map +1 -1
- package/lib/playback/BasePlayback.js +2 -2
- package/lib/playback/dash-playback/DashPlayback.d.ts.map +1 -1
- package/lib/playback/hls-playback/HlsPlayback.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.d.ts.map +1 -1
- package/lib/plugins/bottom-gear/BottomGear.js +5 -8
- package/lib/plugins/error-screen/ErrorScreen.d.ts.map +1 -1
- package/lib/plugins/error-screen/ErrorScreen.js +1 -2
- package/lib/plugins/level-selector/LevelSelector.d.ts +15 -5
- package/lib/plugins/level-selector/LevelSelector.d.ts.map +1 -1
- package/lib/plugins/level-selector/LevelSelector.js +22 -22
- package/lib/plugins/media-control/MediaControl.d.ts +10 -0
- package/lib/plugins/media-control/MediaControl.d.ts.map +1 -1
- package/lib/plugins/media-control/MediaControl.js +20 -3
- package/lib/plugins/source-controller/SourceController.d.ts +1 -0
- package/lib/plugins/source-controller/SourceController.d.ts.map +1 -1
- package/lib/plugins/source-controller/SourceController.js +8 -4
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts +7 -3
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.d.ts.map +1 -1
- package/lib/plugins/spinner-three-bounce/SpinnerThreeBounce.js +35 -27
- package/lib/testUtils.d.ts +5 -8
- package/lib/testUtils.d.ts.map +1 -1
- package/lib/testUtils.js +15 -9
- package/package.json +1 -1
- package/src/playback/BasePlayback.ts +2 -2
- package/src/playback/dash-playback/DashPlayback.ts +1 -2
- package/src/playback/hls-playback/HlsPlayback.ts +2 -2
- package/src/plugins/bottom-gear/BottomGear.ts +5 -7
- package/src/plugins/bottom-gear/__tests__/BottomGear.test.ts +36 -0
- package/src/plugins/bottom-gear/__tests__/__snapshots__/BottomGear.test.ts.snap +41 -0
- package/src/plugins/error-screen/ErrorScreen.ts +1 -2
- package/src/plugins/level-selector/LevelSelector.ts +50 -29
- package/src/plugins/level-selector/__tests__/LevelSelector.test.ts +15 -16
- package/src/plugins/media-control/MediaControl.ts +19 -3
- package/src/plugins/source-controller/SourceController.ts +9 -4
- package/src/plugins/source-controller/__tests__/SourceController.test.ts +35 -1
- package/src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts +80 -57
- package/src/testUtils.ts +16 -9
- package/tsconfig.tsbuildinfo +1 -1
- package/src/playback/utils.ts +0 -2
|
@@ -6,6 +6,6 @@ import { ErrorOptions, HTML5Video } from '@clappr/core';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class BasePlayback extends HTML5Video {
|
|
8
8
|
createError(errorData: any, options?: ErrorOptions): Error;
|
|
9
|
-
|
|
9
|
+
_onPlaying(): void;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=BasePlayback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAI5E;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BzC,
|
|
1
|
+
{"version":3,"file":"BasePlayback.d.ts","sourceRoot":"","sources":["../../src/playback/BasePlayback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,UAAU,EAAe,MAAM,cAAc,CAAA;AAI5E;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,YAAY;IA0BzC,UAAU;CAIpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,QAAQ,EAAyB,MAAM,cAAc,CAAA;AAG3E,OAAO,MAAM,EAAE,EAIb,KAAK,WAAW,IAAI,eAAe,EAEnC,aAAa,EACd,MAAM,QAAQ,CAAA;AAEf,OAAO,EAIL,YAAY,EACZ,YAAY,EAEZ,SAAS,EACV,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMjD,KAAK,YAAY,GACb,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,IAAI,GACpB,OAAO,QAAQ,CAAC,GAAG,GACnB,OAAO,QAAQ,CAAC,KAAK,CAAA;AAEzB,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAKD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,YAAY;IACpD,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAO;IAErC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAO;IAKnC,mCAAmC,EAAE,OAAO,CAAQ;IAEpD,aAAa,EAAE,OAAO,CAAQ;IAI9B,uBAAuB,EAAE,MAAM,CAAI;IASnC,wBAAwB,EAAE,MAAM,CAAI;IAEpC,aAAa,EAAE,YAAY,CAAe;IAG1C,aAAa,EAAE,YAAY,GAAG,IAAI,CAAO;IAGzC,gBAAgB,EAAE,SAAS,CAAI;IAE/B,KAAK,EAAE,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAO;IAE5C,2BAA2B,EAAE,MAAM,CAAI;IAEvC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAO;IAEtC,eAAe,EAAE,YAAY,CAA2B;IAIxD,0BAA0B,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAI9D,wBAAwB,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAE5D,kBAAkB,UAAQ;IAE1B,YAAY,EAAE,aAAa,GAAG,IAAI,CAAO;IAEzC,gBAAgB,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAO;IAE9D,IAAI,IAAI,WAEP;IAED,IAAI,MAAM,IAAI,YAAY,EAAE,CAE3B;IAED,IAAI,YAAY,IAAI,MAAM,CAMzB;IAED,IAAI,OAAO,YAEV;IAED,IAAI,YAAY,CAAC,EAAE,EAAE,MAAM,EAoC1B;IAED,IAAI,UAAU,WASb;IAED,IAAI,IAAI,WAEP;IAID,IAAI,sBAAsB,WAczB;IAID,IAAI,oBAAoB,WAgBvB;IAED,IAAI,SAAS,WAKZ;gBAEW,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,GAAG;IAOzD,MAAM;IA+EN,MAAM;IAMN,MAAM;YAMW,SAAS;IAI1B,qBAAqB;IAQrB,oBAAoB;IAMpB,kBAAkB;IAOlB,WAAW,IAAI,SAAS;IAQxB,cAAc,IAAI,SAAS;IAO3B,kBAAkB,IAAI,SAAS;IAI/B,cAAc,CAAC,UAAU,EAAE,MAAM;IAejC,IAAI,CAAC,IAAI,EAAE,SAAS;IAgBpB,eAAe;IAIf,UAAU,CAAC,MAAM,EAAE,OAAO;IAKjB,eAAe;IAgBxB,OAAO,CAAC,gBAAgB,CAGvB;IAED,OAAO,CAAC,eAAe,CAmCtB;IAED,OAAO,CAAC,YAAY;IAmBpB,aAAa;IAqBb,iBAAiB;IAWjB,IAAI,UAAU,YASb;
|
|
1
|
+
{"version":3,"file":"DashPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/dash-playback/DashPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HlsPlayback.d.ts","sourceRoot":"","sources":["../../../src/playback/hls-playback/HlsPlayback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomGear.d.ts","sourceRoot":"","sources":["../../../src/plugins/bottom-gear/BottomGear.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoC,MAAM,cAAc,CAAC;AAO9E,OAAO,uCAAuC,CAAC;AAC/C,OAAO,gDAAgD,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAOnD;;;GAGG;AACH,oBAAY,UAAU;IACpB;;OAEG;IACH,0BAA0B,+BAA+B;CAC1D;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D;;;;;;;;;GASG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,IAAI,CAAS;IAErB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAEvD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED;;OAEG;IACM,UAAU;IAUnB;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI;IAIrD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;IACM,MAAM;IAoBf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -7,6 +7,7 @@ import '../../../assets/bottom-gear/gear.scss';
|
|
|
7
7
|
import '../../../assets/bottom-gear/gear-sub-menu.scss';
|
|
8
8
|
import gearIcon from '../../../assets/icons/new/gear.svg';
|
|
9
9
|
import gearHdIcon from '../../../assets/icons/new/gear-hd.svg';
|
|
10
|
+
import { MediaControlEvents } from '../media-control/MediaControl';
|
|
10
11
|
const VERSION = '2.19.12';
|
|
11
12
|
const T = 'plugins.bottom_gear';
|
|
12
13
|
/**
|
|
@@ -102,14 +103,9 @@ export class BottomGear extends UICorePlugin {
|
|
|
102
103
|
this.listenTo(this.core.activeContainer, ClapprEvents.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);
|
|
103
104
|
}
|
|
104
105
|
highDefinitionUpdate(isHd) {
|
|
105
|
-
trace(`${
|
|
106
|
+
trace(`${T} highDefinitionUpdate`, { isHd });
|
|
106
107
|
this.isHd = isHd;
|
|
107
|
-
|
|
108
|
-
this.$el.find('.gear-icon').html(gearHdIcon);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.$el.find('.gear-icon').html(gearIcon);
|
|
112
|
-
}
|
|
108
|
+
this.$el.find('.gear-icon').html(isHd ? gearHdIcon : gearIcon);
|
|
113
109
|
}
|
|
114
110
|
/**
|
|
115
111
|
* @internal
|
|
@@ -127,7 +123,8 @@ export class BottomGear extends UICorePlugin {
|
|
|
127
123
|
this.$el.html(BottomGear.template({ icon, items }));
|
|
128
124
|
mediaControl.getElement('gear')?.html(this.el);
|
|
129
125
|
this.core.trigger('gear:rendered'); // @deprecated
|
|
130
|
-
mediaControl.trigger(GearEvents.MEDIACONTROL_GEAR_RENDERED);
|
|
126
|
+
mediaControl.trigger(GearEvents.MEDIACONTROL_GEAR_RENDERED); // TODO drop
|
|
127
|
+
mediaControl.trigger(MediaControlEvents.MEDIACONTROL_GEAR_RENDERED);
|
|
131
128
|
return this;
|
|
132
129
|
}
|
|
133
130
|
refresh() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAA;AAO7D,OAAO,gDAAgD,CAAA;AAGvD,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AASD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"ErrorScreen.d.ts","sourceRoot":"","sources":["../../../src/plugins/error-screen/ErrorScreen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAoB,MAAM,cAAc,CAAA;AAO7D,OAAO,gDAAgD,CAAA;AAGvD,MAAM,MAAM,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AASD,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAID;;;GAGG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAA+B;IAE1C;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAEzD;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED;;OAEG;IACM,UAAU;IASnB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,IAAa,MAAM;;MAIlB;IAED,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,OAAO;IAgBf;;OAEG;IACM,MAAM;CAkBhB"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { UICorePlugin } from '@clappr/core';
|
|
2
2
|
import '../../../assets/level-selector/style.scss';
|
|
3
|
+
export interface LevelSelectorPluginSettings {
|
|
4
|
+
/**
|
|
5
|
+
* The maximum resolution to allow in the level selector.
|
|
6
|
+
*/
|
|
7
|
+
restrictResolution?: number;
|
|
8
|
+
/**
|
|
9
|
+
* The labels to show in the level selector.
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* { 360: 'SD', 720: 'HD' }
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
labels?: Record<number, string>;
|
|
16
|
+
}
|
|
3
17
|
/**
|
|
4
18
|
* A {@link MediaControl | media control} plugin that provides a UI to control the quality level of the playback.
|
|
5
19
|
* @beta
|
|
@@ -15,11 +29,7 @@ import '../../../assets/level-selector/style.scss';
|
|
|
15
29
|
*
|
|
16
30
|
* When clicked, it shows a list of quality levels to choose from.
|
|
17
31
|
*
|
|
18
|
-
* Configuration options
|
|
19
|
-
*
|
|
20
|
-
* - `labels`: The labels to show in the level selector. [video resolution]: string
|
|
21
|
-
*
|
|
22
|
-
* - `restrictResolution`: The maximum resolution to allow in the level selector.
|
|
32
|
+
* Configuration options - {@link LevelSelectorPluginSettings}
|
|
23
33
|
*
|
|
24
34
|
* @example
|
|
25
35
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LevelSelector.d.ts","sourceRoot":"","sources":["../../../src/plugins/level-selector/LevelSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"LevelSelector.d.ts","sourceRoot":"","sources":["../../../src/plugins/level-selector/LevelSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,MAAM,cAAc,CAAA;AAgB7D,OAAO,2CAA2C,CAAA;AAMlD,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAqB;IAEnC,OAAO,CAAC,WAAW,CAAe;IAElC,OAAO,CAAC,UAAU,CAAQ;IAE1B,OAAO,CAAC,IAAI,CAAQ;IAEpB,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAChB;IAEtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAuC;IAE3E;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,eAAe,CAAK;IAE5B,IAAa,MAAM;;;;MAMlB;IAED;;OAEG;IACM,UAAU;IAUnB,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,YAAY;IAcpB;;OAEG;IACM,MAAM;IAUf,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,cAAc;IAetB,OAAO,KAAK,QAAQ,GASnB;IAED,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,WAAW,CAAmC;CACvD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Events, template, UICorePlugin } from '@clappr/core';
|
|
2
2
|
import { reportError, trace } from '@gcorevideo/utils';
|
|
3
|
+
import assert from 'assert';
|
|
3
4
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
4
5
|
import buttonHtml from '../../../assets/level-selector/button.ejs';
|
|
5
6
|
import listHtml from '../../../assets/level-selector/list.ejs';
|
|
@@ -8,7 +9,6 @@ import arrowRightIcon from '../../../assets/icons/new/arrow-right.svg';
|
|
|
8
9
|
import arrowLeftIcon from '../../../assets/icons/new/arrow-left.svg';
|
|
9
10
|
import checkIcon from '../../../assets/icons/new/check.svg';
|
|
10
11
|
import '../../../assets/level-selector/style.scss';
|
|
11
|
-
import assert from 'assert';
|
|
12
12
|
const T = 'plugins.level_selector';
|
|
13
13
|
const VERSION = '2.19.4';
|
|
14
14
|
/**
|
|
@@ -26,11 +26,7 @@ const VERSION = '2.19.4';
|
|
|
26
26
|
*
|
|
27
27
|
* When clicked, it shows a list of quality levels to choose from.
|
|
28
28
|
*
|
|
29
|
-
* Configuration options
|
|
30
|
-
*
|
|
31
|
-
* - `labels`: The labels to show in the level selector. [video resolution]: string
|
|
32
|
-
*
|
|
33
|
-
* - `restrictResolution`: The maximum resolution to allow in the level selector.
|
|
29
|
+
* Configuration options - {@link LevelSelectorPluginSettings}
|
|
34
30
|
*
|
|
35
31
|
* @example
|
|
36
32
|
* ```ts
|
|
@@ -90,14 +86,15 @@ export class LevelSelector extends UICorePlugin {
|
|
|
90
86
|
* @internal
|
|
91
87
|
*/
|
|
92
88
|
bindEvents() {
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
const mediaControl = this.core.getPlugin('media_control');
|
|
90
|
+
assert(mediaControl, 'media_control plugin is required');
|
|
91
|
+
this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.bindPlaybackEvents);
|
|
95
92
|
}
|
|
96
93
|
bindPlaybackEvents() {
|
|
97
94
|
this.removeAuto = false;
|
|
98
95
|
this.isHd = false;
|
|
99
96
|
const activePlayback = this.core.activePlayback;
|
|
100
|
-
this.listenTo(activePlayback, Events.PLAYBACK_LEVELS_AVAILABLE,
|
|
97
|
+
this.listenTo(activePlayback, Events.PLAYBACK_LEVELS_AVAILABLE, this.fillLevels);
|
|
101
98
|
this.listenTo(activePlayback, Events.PLAYBACK_LEVEL_SWITCH_START, this.onLevelSwitchStart);
|
|
102
99
|
this.listenTo(activePlayback, Events.PLAYBACK_LEVEL_SWITCH_END, this.onLevelSwitchEnd);
|
|
103
100
|
this.listenTo(activePlayback, Events.PLAYBACK_BITRATE, this.updateCurrentLevel);
|
|
@@ -106,26 +103,24 @@ export class LevelSelector extends UICorePlugin {
|
|
|
106
103
|
this.isHd = isHd;
|
|
107
104
|
this.deferRender();
|
|
108
105
|
});
|
|
109
|
-
if (activePlayback
|
|
106
|
+
if (activePlayback.levels?.length > 0) {
|
|
110
107
|
this.fillLevels(activePlayback.levels);
|
|
111
108
|
}
|
|
112
109
|
}
|
|
113
110
|
onStop() {
|
|
114
111
|
trace(`${T} onStop`);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
112
|
+
this.listenToOnce(this.core.activePlayback, Events.PLAYBACK_PLAY, () => {
|
|
113
|
+
trace(`${T} on PLAYBACK_PLAY after stop`, {
|
|
114
|
+
selectedLevelId: this.selectedLevelId,
|
|
115
|
+
});
|
|
116
|
+
if (this.core.activePlayback.getPlaybackType() === 'live') {
|
|
119
117
|
if (this.selectedLevelId !== -1) {
|
|
120
|
-
|
|
118
|
+
this.core.activePlayback.currentLevel = this.selectedLevelId;
|
|
121
119
|
}
|
|
122
120
|
}
|
|
123
121
|
});
|
|
124
122
|
}
|
|
125
123
|
shouldRender() {
|
|
126
|
-
if (!this.core.activeContainer) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
124
|
const activePlayback = this.core.activePlayback;
|
|
130
125
|
if (!activePlayback) {
|
|
131
126
|
return false;
|
|
@@ -141,7 +136,6 @@ export class LevelSelector extends UICorePlugin {
|
|
|
141
136
|
* @internal
|
|
142
137
|
*/
|
|
143
138
|
render() {
|
|
144
|
-
assert(this.core.getPlugin('bottom_gear'), 'bottom_gear plugin is required');
|
|
145
139
|
if (!this.shouldRender()) {
|
|
146
140
|
return this;
|
|
147
141
|
}
|
|
@@ -158,7 +152,10 @@ export class LevelSelector extends UICorePlugin {
|
|
|
158
152
|
});
|
|
159
153
|
this.$el.html(html);
|
|
160
154
|
const gear = this.core.getPlugin('bottom_gear');
|
|
161
|
-
gear
|
|
155
|
+
if (!gear) {
|
|
156
|
+
trace(`${T} renderButton: bottom_gear plugin not found`);
|
|
157
|
+
}
|
|
158
|
+
gear?.getElement('quality')?.html(this.el);
|
|
162
159
|
}
|
|
163
160
|
}
|
|
164
161
|
renderDropdown() {
|
|
@@ -172,12 +169,14 @@ export class LevelSelector extends UICorePlugin {
|
|
|
172
169
|
});
|
|
173
170
|
this.$el.html(html);
|
|
174
171
|
const gear = this.core.getPlugin('bottom_gear');
|
|
172
|
+
trace(`${T} renderDropdown: bottom_gear plugin not found`);
|
|
175
173
|
gear?.setContent(this.el);
|
|
176
174
|
}
|
|
177
175
|
get maxLevel() {
|
|
178
176
|
const maxRes = this.core.options.levelSelector?.restrictResolution;
|
|
179
177
|
return maxRes
|
|
180
|
-
? this.levels.findIndex((level) => (level.height > level.width ? level.width : level.height) ===
|
|
178
|
+
? this.levels.findIndex((level) => (level.height > level.width ? level.width : level.height) ===
|
|
179
|
+
maxRes)
|
|
181
180
|
: -1;
|
|
182
181
|
}
|
|
183
182
|
fillLevels(levels) {
|
|
@@ -187,7 +186,8 @@ export class LevelSelector extends UICorePlugin {
|
|
|
187
186
|
if (maxResolution) {
|
|
188
187
|
this.removeAuto = true;
|
|
189
188
|
const initialLevel = levels
|
|
190
|
-
.filter((level) => (level.width > level.height ? level.height : level.width) <=
|
|
189
|
+
.filter((level) => (level.width > level.height ? level.height : level.width) <=
|
|
190
|
+
maxResolution)
|
|
191
191
|
.pop();
|
|
192
192
|
this.setLevel(initialLevel?.level ?? 0);
|
|
193
193
|
}
|
|
@@ -7,6 +7,16 @@ import '../../../assets/media-control/plugins.scss';
|
|
|
7
7
|
* @beta
|
|
8
8
|
*/
|
|
9
9
|
export type MediaControlElement = 'audioTracksSelector' | 'bottomGear' | 'clipText' | 'gear' | 'pip' | 'playbackRate' | 'seekBarContainer' | 'subtitlesSelector';
|
|
10
|
+
/**
|
|
11
|
+
* Custom events emitted by the plugins to communicate with one another
|
|
12
|
+
* @beta
|
|
13
|
+
*/
|
|
14
|
+
export declare enum MediaControlEvents {
|
|
15
|
+
/**
|
|
16
|
+
* Emitted when the gear menu is rendered
|
|
17
|
+
*/
|
|
18
|
+
MEDIACONTROL_GEAR_RENDERED = "mediacontrol:gear:rendered"
|
|
19
|
+
}
|
|
10
20
|
/**
|
|
11
21
|
* The MediaControl provides a foundation for developing custom media controls UI.
|
|
12
22
|
* @beta
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,YAAY,EAMZ,IAAI,EACL,MAAM,cAAc,CAAA;AAQrB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGlD,OAAO,kDAAkD,CAAA;AACzD,OAAO,4CAA4C,CAAA;AAWnD;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,YAAY,GACZ,UAAU,GACV,MAAM,GACN,KAAK,GACL,cAAc,GACd,kBAAkB,GAClB,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"MediaControl.d.ts","sourceRoot":"","sources":["../../../src/plugins/media-control/MediaControl.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,17 @@ import volumeMaxIcon from '../../../assets/icons/new/volume-max.svg';
|
|
|
17
17
|
import volumeOffIcon from '../../../assets/icons/new/volume-off.svg';
|
|
18
18
|
import fullscreenOffIcon from '../../../assets/icons/new/fullscreen-off.svg';
|
|
19
19
|
import fullscreenOnIcon from '../../../assets/icons/new/fullscreen-on.svg';
|
|
20
|
+
/**
|
|
21
|
+
* Custom events emitted by the plugins to communicate with one another
|
|
22
|
+
* @beta
|
|
23
|
+
*/
|
|
24
|
+
export var MediaControlEvents;
|
|
25
|
+
(function (MediaControlEvents) {
|
|
26
|
+
/**
|
|
27
|
+
* Emitted when the gear menu is rendered
|
|
28
|
+
*/
|
|
29
|
+
MediaControlEvents["MEDIACONTROL_GEAR_RENDERED"] = "mediacontrol:gear:rendered";
|
|
30
|
+
})(MediaControlEvents || (MediaControlEvents = {}));
|
|
20
31
|
const T = 'plugins.media_control';
|
|
21
32
|
const LEFT_ORDER = [
|
|
22
33
|
'playpause',
|
|
@@ -266,7 +277,7 @@ export class MediaControl extends UICorePlugin {
|
|
|
266
277
|
*/
|
|
267
278
|
disable() {
|
|
268
279
|
trace(`${T} disable`);
|
|
269
|
-
this.userDisabled = true;
|
|
280
|
+
this.userDisabled = true; // TODO distinguish between user and system (e.g., unplayable) disabled?
|
|
270
281
|
this.hide();
|
|
271
282
|
this.unbindKeyEvents();
|
|
272
283
|
this.$el.hide();
|
|
@@ -533,8 +544,14 @@ export class MediaControl extends UICorePlugin {
|
|
|
533
544
|
this.settingsUpdate();
|
|
534
545
|
this.core.activeContainer &&
|
|
535
546
|
this.core.activeContainer.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.core.activeContainer.isDvrInUse());
|
|
536
|
-
|
|
537
|
-
this.
|
|
547
|
+
// TODO test
|
|
548
|
+
if (this.core.activeContainer.mediaControlDisabled) {
|
|
549
|
+
this.disable();
|
|
550
|
+
}
|
|
551
|
+
else {
|
|
552
|
+
this.enable();
|
|
553
|
+
}
|
|
554
|
+
this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED); // TODO check
|
|
538
555
|
if (this.core.activeContainer.$el) {
|
|
539
556
|
this.core.activeContainer.$el.addClass('container-skin-1');
|
|
540
557
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceController.d.ts","sourceRoot":"","sources":["../../../src/plugins/source-controller/SourceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,IAAI,IAAI,UAAU,EACxB,MAAM,cAAc,CAAA;AAwBrB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAuC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;gBAEW,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,2BAA2B;
|
|
1
|
+
{"version":3,"file":"SourceController.d.ts","sourceRoot":"","sources":["../../../src/plugins/source-controller/SourceController.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,KAAK,IAAI,IAAI,UAAU,EACxB,MAAM,cAAc,CAAA;AAwBrB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAuC9C,OAAO,CAAC,WAAW,CAA8B;IAEjD,OAAO,CAAC,kBAAkB,CAAI;IAE9B,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,MAAM,CAAQ;IAEtB,OAAO,CAAC,SAAS,CAAQ;IAEzB,OAAO,CAAC,IAAI,CAAiB;IAE7B;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;gBAEW,IAAI,EAAE,UAAU;IAW5B;;OAEG;IACM,UAAU;IAWnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,2BAA2B;IAwCnC,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,MAAM,KAAK,OAAO,WAEjB;CACF"}
|
|
@@ -71,6 +71,7 @@ export class SourceController extends CorePlugin {
|
|
|
71
71
|
currentSourceIndex = 0;
|
|
72
72
|
sourcesDelay = {};
|
|
73
73
|
active = false;
|
|
74
|
+
switching = false;
|
|
74
75
|
sync = noSync;
|
|
75
76
|
/**
|
|
76
77
|
* @internal
|
|
@@ -135,15 +136,18 @@ export class SourceController extends CorePlugin {
|
|
|
135
136
|
description: error?.description,
|
|
136
137
|
level: error?.level,
|
|
137
138
|
},
|
|
139
|
+
switching: this.switching,
|
|
138
140
|
retrying: this.active,
|
|
139
141
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
140
142
|
});
|
|
143
|
+
if (this.switching) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
141
146
|
switch (error.code) {
|
|
142
147
|
case PlaybackErrorCode.MediaSourceUnavailable:
|
|
143
148
|
this.core.activeContainer?.getPlugin('poster_custom')?.disable();
|
|
144
|
-
|
|
149
|
+
this.retryPlayback();
|
|
145
150
|
break;
|
|
146
|
-
// TODO handle other errors
|
|
147
151
|
default:
|
|
148
152
|
break;
|
|
149
153
|
}
|
|
@@ -155,7 +159,6 @@ export class SourceController extends CorePlugin {
|
|
|
155
159
|
});
|
|
156
160
|
if (this.active) {
|
|
157
161
|
this.reset();
|
|
158
|
-
// TODO make poster reset its state on enable
|
|
159
162
|
this.core.activeContainer?.getPlugin('poster_custom')?.enable();
|
|
160
163
|
this.core.activeContainer?.getPlugin('spinner')?.hide();
|
|
161
164
|
}
|
|
@@ -171,6 +174,7 @@ export class SourceController extends CorePlugin {
|
|
|
171
174
|
currentSource: this.sourcesList[this.currentSourceIndex],
|
|
172
175
|
});
|
|
173
176
|
this.active = true;
|
|
177
|
+
this.switching = true;
|
|
174
178
|
this.core.activeContainer?.getPlugin('spinner')?.show(0);
|
|
175
179
|
this.getNextMediaSource().then((nextSource) => {
|
|
176
180
|
trace(`${T} retryPlayback syncing...`, {
|
|
@@ -179,12 +183,12 @@ export class SourceController extends CorePlugin {
|
|
|
179
183
|
const rnd = RETRY_DELAY_BLUR * Math.random();
|
|
180
184
|
this.sync(() => {
|
|
181
185
|
trace(`${T} retryPlayback loading...`);
|
|
186
|
+
this.switching = false;
|
|
182
187
|
this.core.load(nextSource.source, nextSource.mimeType);
|
|
183
188
|
trace(`${T} retryPlayback loaded`, {
|
|
184
189
|
nextSource,
|
|
185
190
|
});
|
|
186
191
|
setTimeout(() => {
|
|
187
|
-
// this.core.activePlayback.consent()
|
|
188
192
|
this.core.activePlayback.play();
|
|
189
193
|
trace(`${T} retryPlayback playing`);
|
|
190
194
|
}, rnd);
|
|
@@ -17,6 +17,7 @@ export declare enum SpinnerEvents {
|
|
|
17
17
|
* The plugin emits
|
|
18
18
|
*/
|
|
19
19
|
export declare class SpinnerThreeBounce extends UIContainerPlugin {
|
|
20
|
+
private userShown;
|
|
20
21
|
/**
|
|
21
22
|
* @internal
|
|
22
23
|
*/
|
|
@@ -34,7 +35,6 @@ export declare class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
34
35
|
'data-spinner': string;
|
|
35
36
|
class: string;
|
|
36
37
|
};
|
|
37
|
-
private hideTimeout;
|
|
38
38
|
private showTimeout;
|
|
39
39
|
private template;
|
|
40
40
|
private hasFatalError;
|
|
@@ -46,13 +46,17 @@ export declare class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
46
46
|
private onStop;
|
|
47
47
|
private onError;
|
|
48
48
|
/**
|
|
49
|
-
* Shows the spinner
|
|
49
|
+
* Shows the spinner.
|
|
50
|
+
*
|
|
51
|
+
* When called, the spinner will not hide (due to its built-in logic) until {@link SpinnerThreeBounce#hide} is called
|
|
50
52
|
*/
|
|
51
53
|
show(delay?: number): void;
|
|
52
54
|
/**
|
|
53
|
-
* Hides the spinner
|
|
55
|
+
* Hides the spinner.
|
|
54
56
|
*/
|
|
55
57
|
hide(): void;
|
|
58
|
+
private _show;
|
|
59
|
+
private _hide;
|
|
56
60
|
/**
|
|
57
61
|
* @internal
|
|
58
62
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpinnerThreeBounce.d.ts","sourceRoot":"","sources":["../../../src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"SpinnerThreeBounce.d.ts","sourceRoot":"","sources":["../../../src/plugins/spinner-three-bounce/SpinnerThreeBounce.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,SAAS,EAET,iBAAiB,EAElB,MAAM,cAAc,CAAA;AAKrB,OAAO,mDAAmD,CAAA;AAM1D;;GAEG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,IAAI,yBAAyB;CAC9B;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,SAAS,CAAQ;IAEzB;;OAEG;IACH,IAAI,IAAI,WAEP;IAED;;OAEG;IACH,IAAI,gBAAgB;;MAEnB;IAED;;OAEG;IACH,IAAa,UAAU;;;MAKtB;IAED,OAAO,CAAC,WAAW,CAAuB;IAE1C,OAAO,CAAC,QAAQ,CAAwB;IAExC,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,YAAY,CAAQ;gBAEhB,SAAS,EAAE,SAAS;IAmBhC,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,OAAO;IAef;;;;OAIG;IACH,IAAI,CAAC,KAAK,SAAM;IAMhB;;OAEG;IACH,IAAI;IAKJ,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,KAAK;IAeb;;OAEG;IACM,MAAM;CAmBhB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Copyright 2014 Globo.com Player authors. All rights reserved.
|
|
2
2
|
// Use of this source code is governed by a BSD-style
|
|
3
3
|
// license that can be found in the LICENSE file.
|
|
4
|
-
import { Events as ClapprEvents, UIContainerPlugin, template } from '@clappr/core';
|
|
5
|
-
import { PlaybackErrorCode } from '../../playback.types.js';
|
|
4
|
+
import { Events as ClapprEvents, UIContainerPlugin, template, } from '@clappr/core';
|
|
6
5
|
import { trace } from '@gcorevideo/utils';
|
|
6
|
+
import { PlaybackErrorCode } from '../../playback.types.js';
|
|
7
7
|
import spinnerHTML from '../../../assets/spinner-three-bounce/spinner.ejs';
|
|
8
8
|
import '../../../assets/spinner-three-bounce/spinner.scss';
|
|
9
9
|
import { CLAPPR_VERSION } from '../../build.js';
|
|
@@ -26,6 +26,7 @@ export var SpinnerEvents;
|
|
|
26
26
|
* The plugin emits
|
|
27
27
|
*/
|
|
28
28
|
export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
29
|
+
userShown = false;
|
|
29
30
|
/**
|
|
30
31
|
* @internal
|
|
31
32
|
*/
|
|
@@ -44,10 +45,9 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
44
45
|
get attributes() {
|
|
45
46
|
return {
|
|
46
47
|
'data-spinner': '',
|
|
47
|
-
|
|
48
|
+
class: 'spinner-three-bounce',
|
|
48
49
|
};
|
|
49
50
|
}
|
|
50
|
-
hideTimeout = null;
|
|
51
51
|
showTimeout = null;
|
|
52
52
|
template = template(spinnerHTML);
|
|
53
53
|
hasFatalError = false;
|
|
@@ -64,17 +64,17 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
64
64
|
}
|
|
65
65
|
onBuffering() {
|
|
66
66
|
this.hasBuffering = true;
|
|
67
|
-
this.
|
|
67
|
+
this._show();
|
|
68
68
|
}
|
|
69
69
|
onBufferFull() {
|
|
70
70
|
if (!this.hasFatalError && this.hasBuffering) {
|
|
71
|
-
this.
|
|
71
|
+
this._hide();
|
|
72
72
|
}
|
|
73
73
|
this.hasBuffering = false;
|
|
74
74
|
}
|
|
75
75
|
onPlay() {
|
|
76
76
|
trace(`${T} onPlay`);
|
|
77
|
-
this.
|
|
77
|
+
this._hide();
|
|
78
78
|
}
|
|
79
79
|
onStop() {
|
|
80
80
|
trace(`${T} onStop`, {
|
|
@@ -82,7 +82,7 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
82
82
|
hasFatalError: this.hasFatalError,
|
|
83
83
|
});
|
|
84
84
|
if (!(this.hasFatalError && this.options.spinner?.showOnError)) {
|
|
85
|
-
this.
|
|
85
|
+
this._hide();
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
onError(e) {
|
|
@@ -94,42 +94,50 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
94
94
|
error: e.code,
|
|
95
95
|
});
|
|
96
96
|
if (this.options.spinner?.showOnError) {
|
|
97
|
-
this.
|
|
97
|
+
this._show();
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
100
|
-
this.
|
|
100
|
+
this._hide();
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
|
-
* Shows the spinner
|
|
104
|
+
* Shows the spinner.
|
|
105
|
+
*
|
|
106
|
+
* When called, the spinner will not hide (due to its built-in logic) until {@link SpinnerThreeBounce#hide} is called
|
|
105
107
|
*/
|
|
106
108
|
show(delay = 300) {
|
|
107
109
|
trace(`${T} show`);
|
|
110
|
+
this.userShown = true;
|
|
111
|
+
this._show(delay);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Hides the spinner.
|
|
115
|
+
*/
|
|
116
|
+
hide() {
|
|
117
|
+
this.userShown = false;
|
|
118
|
+
this._hide();
|
|
119
|
+
}
|
|
120
|
+
_show(delay = 300) {
|
|
108
121
|
if (this.showTimeout === null) {
|
|
109
|
-
if (this.hideTimeout !== null) {
|
|
110
|
-
clearTimeout(this.hideTimeout);
|
|
111
|
-
this.hideTimeout = null;
|
|
112
|
-
}
|
|
113
122
|
this.showTimeout = setTimeout(() => {
|
|
114
123
|
this.showTimeout = null;
|
|
115
124
|
this.$el.show();
|
|
116
125
|
}, delay);
|
|
117
126
|
}
|
|
118
127
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
128
|
+
_hide() {
|
|
129
|
+
trace(`${T} _hide`, {
|
|
130
|
+
userShown: this.userShown,
|
|
131
|
+
});
|
|
132
|
+
if (this.userShown) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
123
135
|
if (this.showTimeout !== null) {
|
|
124
136
|
clearTimeout(this.showTimeout);
|
|
125
137
|
this.showTimeout = null;
|
|
126
138
|
}
|
|
127
|
-
this.
|
|
128
|
-
|
|
129
|
-
if (this.showTimeout === null) {
|
|
130
|
-
this.$el.hide();
|
|
131
|
-
}
|
|
132
|
-
}, 0);
|
|
139
|
+
this.$el.hide();
|
|
140
|
+
this.trigger(SpinnerEvents.SYNC); // TODO test
|
|
133
141
|
}
|
|
134
142
|
/**
|
|
135
143
|
* @internal
|
|
@@ -146,10 +154,10 @@ export class SpinnerThreeBounce extends UIContainerPlugin {
|
|
|
146
154
|
});
|
|
147
155
|
this.container.$el.append(this.$el[0]);
|
|
148
156
|
if (showOnStart || this.container.buffering) {
|
|
149
|
-
this.
|
|
157
|
+
this._show();
|
|
150
158
|
}
|
|
151
159
|
else {
|
|
152
|
-
this.
|
|
160
|
+
this._hide();
|
|
153
161
|
}
|
|
154
162
|
return this;
|
|
155
163
|
}
|