design-angular-kit 1.2.2 → 1.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.
- package/assets/i18n/en.json +89 -0
- package/assets/i18n/it.json +89 -0
- package/esm2022/lib/abstracts/abstract-form.component.mjs +19 -6
- package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +8 -6
- package/esm2022/lib/components/core/video-player/video-player-i18n.model.mjs +2 -0
- package/esm2022/lib/components/core/video-player/video-player-i18n.service.mjs +130 -0
- package/esm2022/lib/components/core/video-player/video-player.component.mjs +303 -0
- package/esm2022/lib/components/core/video-player/video-player.config.mjs +43 -0
- package/esm2022/lib/components/core/video-player/video-player.cookie.mjs +25 -0
- package/esm2022/lib/components/core/video-player/video-player.model.mjs +3 -0
- package/esm2022/lib/components/core/video-player/video-player.module.mjs +16 -0
- package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +144 -78
- package/esm2022/lib/components/form/form.module.mjs +6 -2
- package/esm2022/lib/components/form/input/input.component.mjs +3 -3
- package/esm2022/lib/components/form/search/search.component.mjs +112 -0
- package/esm2022/lib/components/navigation/navscroll/navscroll-list-item.component.mjs +2 -3
- package/esm2022/lib/design-angular-kit.module.mjs +8 -4
- package/esm2022/lib/interfaces/form.mjs +1 -1
- package/esm2022/lib/validators/it-validators.mjs +6 -1
- package/esm2022/public_api.mjs +7 -3
- package/fesm2022/design-angular-kit.mjs +782 -90
- package/fesm2022/design-angular-kit.mjs.map +1 -1
- package/lib/abstracts/abstract-form.component.d.ts +6 -4
- package/lib/components/core/carousel/carousel/carousel.component.d.ts +1 -1
- package/lib/components/core/video-player/video-player-i18n.model.d.ts +179 -0
- package/lib/components/core/video-player/video-player-i18n.service.d.ts +17 -0
- package/lib/components/core/video-player/video-player.component.d.ts +48 -0
- package/lib/components/core/video-player/video-player.config.d.ts +68 -0
- package/lib/components/core/video-player/video-player.cookie.d.ts +6 -0
- package/lib/components/core/video-player/video-player.model.d.ts +44 -0
- package/lib/components/core/video-player/video-player.module.d.ts +7 -0
- package/lib/components/form/autocomplete/autocomplete.component.d.ts +55 -39
- package/lib/components/form/form.module.d.ts +13 -12
- package/lib/components/form/search/search.component.d.ts +59 -0
- package/lib/design-angular-kit.module.d.ts +18 -17
- package/lib/interfaces/form.d.ts +3 -3
- package/lib/validators/it-validators.d.ts +1 -0
- package/package.json +20 -7
- package/public_api.d.ts +6 -2
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
+
import { tap } from 'rxjs';
|
|
5
|
+
import videojs from 'video.js';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class VideoPlayerI18nService {
|
|
8
|
+
#translate = inject(TranslateService);
|
|
9
|
+
init(player, destroyRef) {
|
|
10
|
+
this.#translate.onLangChange
|
|
11
|
+
.pipe(takeUntilDestroyed(destroyRef), tap({
|
|
12
|
+
next: e => {
|
|
13
|
+
const language = e.lang;
|
|
14
|
+
videojs.addLanguage(language, this.getTranslations());
|
|
15
|
+
player.language(language);
|
|
16
|
+
},
|
|
17
|
+
}))
|
|
18
|
+
.subscribe(x => {
|
|
19
|
+
console.log('onLangChange', x);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
getLanguage() {
|
|
23
|
+
const language = this.#translate.currentLang ?? 'it';
|
|
24
|
+
return {
|
|
25
|
+
languages: { [language]: mapToVideoJsTranslation(this.#translate.instant('it.video-player')) },
|
|
26
|
+
language,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
getTranslations() {
|
|
30
|
+
return mapToVideoJsTranslation(this.#translate.instant('it.video-player'));
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerI18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
33
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerI18nService, providedIn: 'root' }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerI18nService, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{ providedIn: 'root' }]
|
|
38
|
+
}] });
|
|
39
|
+
function mapToVideoJsTranslation(translations) {
|
|
40
|
+
return {
|
|
41
|
+
'Audio Player': translations['audio-player'],
|
|
42
|
+
'Video Player': translations['video-player'],
|
|
43
|
+
Play: translations.play,
|
|
44
|
+
Pause: translations.pause,
|
|
45
|
+
Replay: translations.replay,
|
|
46
|
+
'Current Time': translations['current-time'],
|
|
47
|
+
Duration: translations.duration,
|
|
48
|
+
'Remaining Time': translations['remaining-time'],
|
|
49
|
+
'Stream Type': translations['stream-type'],
|
|
50
|
+
LIVE: translations.live,
|
|
51
|
+
Loaded: translations.loaded,
|
|
52
|
+
Progress: translations.progress,
|
|
53
|
+
'Progress Bar': translations['progress-bar'],
|
|
54
|
+
'progress bar timing: currentTime={1} duration={2}': translations['progress-bar-timing:-currenttime={1}-duration={2}'],
|
|
55
|
+
Fullscreen: translations.fullscreen,
|
|
56
|
+
'Exit Fullscreen': translations['exit-fullscreen'],
|
|
57
|
+
Mute: translations.mute,
|
|
58
|
+
Unmute: translations.unmute,
|
|
59
|
+
'Playback Rate': translations['playback-rate'],
|
|
60
|
+
Subtitles: translations.subtitles,
|
|
61
|
+
'subtitles off': translations['subtitles-off'],
|
|
62
|
+
Captions: translations.captions,
|
|
63
|
+
'captions off': translations['captions-off'],
|
|
64
|
+
Chapters: translations.chapters,
|
|
65
|
+
Descriptions: translations.descriptions,
|
|
66
|
+
'descriptions off': translations['descriptions-off'],
|
|
67
|
+
'Audio Track': translations['audio-track'],
|
|
68
|
+
'Volume Level': translations['volume-level'],
|
|
69
|
+
'You aborted the media playback': translations['you-aborted-the-media-playback'],
|
|
70
|
+
'A network error caused the media download to fail part-way.': translations['a-network-error-caused-the-media-download-to-fail-part-way.'],
|
|
71
|
+
'The media could not be loaded, either because the server or network failed or because the format is not supported.': translations['the-media-could-not-be-loaded,-either-because-the-server-or-network-failed-or-because-the-format-is-not-supported.'],
|
|
72
|
+
'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.': translations['the-media-playback-was-aborted-due-to-a-corruption-problem-or-because-the-media-used-features-your-browser-did-not-support.'],
|
|
73
|
+
'No compatible source was found for this media.': translations['no-compatible-source-was-found-for-this-media.'],
|
|
74
|
+
'The media is encrypted and we do not have the keys to decrypt it.': translations['the-media-is-encrypted-and-we-do-not-have-the-keys-to-decrypt-it.'],
|
|
75
|
+
'Play Video': translations['play-video'],
|
|
76
|
+
Close: translations.close,
|
|
77
|
+
'Close Modal Dialog': translations['close-modal-dialog'],
|
|
78
|
+
'Modal Window': translations['modal-window'],
|
|
79
|
+
'This is a modal window': translations['this-is-a-modal-window'],
|
|
80
|
+
'This modal can be closed by pressing the Escape key or activating the close button.': translations['this-modal-can-be-closed-by-pressing-the-escape-key-or-activating-the-close-button.'],
|
|
81
|
+
', opens captions settings dialog': translations[',-opens-captions-settings-dialog'],
|
|
82
|
+
', opens subtitles settings dialog': translations[',-opens-subtitles-settings-dialog'],
|
|
83
|
+
', opens descriptions settings dialog': translations[',-opens-descriptions-settings-dialog'],
|
|
84
|
+
', selected': translations[',-selected'],
|
|
85
|
+
'captions settings': translations['captions-settings'],
|
|
86
|
+
'subtitles settings': translations['subtitles-settings'],
|
|
87
|
+
'descriptions settings': translations['descriptions-settings'],
|
|
88
|
+
Text: translations.text,
|
|
89
|
+
White: translations.white,
|
|
90
|
+
Black: translations.black,
|
|
91
|
+
Red: translations.red,
|
|
92
|
+
Green: translations.green,
|
|
93
|
+
Blue: translations.blue,
|
|
94
|
+
Yellow: translations.yellow,
|
|
95
|
+
Magenta: translations.magenta,
|
|
96
|
+
Cyan: translations.cyan,
|
|
97
|
+
Background: translations.background,
|
|
98
|
+
Window: translations.window,
|
|
99
|
+
Transparent: translations.transparent,
|
|
100
|
+
'Semi-Transparent': translations['semi-transparent'],
|
|
101
|
+
Opaque: translations.opaque,
|
|
102
|
+
'Font Size': translations['font-size'],
|
|
103
|
+
'Text Edge Style': translations['text-edge-style'],
|
|
104
|
+
None: translations.none,
|
|
105
|
+
Uniform: translations.uniform,
|
|
106
|
+
'Drop shadow': translations['drop-shadow'],
|
|
107
|
+
'Font Family': translations['font-family'],
|
|
108
|
+
'Proportional Sans-Serif': translations['proportional-sans-serif'],
|
|
109
|
+
'Monospace Sans-Serif': translations['monospace-sans-serif'],
|
|
110
|
+
'Proportional Serif': translations['proportional-serif'],
|
|
111
|
+
'Monospace Serif': translations['monospace-serif'],
|
|
112
|
+
'Small Caps': translations['small-caps'],
|
|
113
|
+
Reset: translations.reset,
|
|
114
|
+
'restore all settings to the default values': translations['restore-all-settings-to-the-default-values'],
|
|
115
|
+
Done: translations.done,
|
|
116
|
+
'Caption Settings Dialog': translations['caption-settings-dialog'],
|
|
117
|
+
'Beginning of dialog window. Escape will cancel and close the window.': translations['beginning-of-dialog-window.-escape-will-cancel-and-close-the-window.'],
|
|
118
|
+
'End of dialog window.': translations['end-of-dialog-window.'],
|
|
119
|
+
'{1} is loading.': translations['{1}-is-loading.'],
|
|
120
|
+
'Exit Picture-in-Picture': translations['exit-picture-in-picture'],
|
|
121
|
+
'Picture-in-Picture': translations['picture-in-picture'],
|
|
122
|
+
Color: translations.color,
|
|
123
|
+
Opacity: translations.opacity,
|
|
124
|
+
'Text Background': translations['text-background'],
|
|
125
|
+
'Caption Area Background': translations['caption-area-background'],
|
|
126
|
+
'Skip forward {1} seconds': translations['skip-forward-{1}-seconds'],
|
|
127
|
+
'Skip backward {1} seconds': translations['skip-backward-{1}-seconds'],
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLWkxOG4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLWkxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sT0FBTyxNQUFNLFVBQVUsQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixVQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFL0MsSUFBSSxDQUFDLE1BQWMsRUFBRSxVQUFzQjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVk7YUFDekIsSUFBSSxDQUNILGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUM5QixHQUFHLENBQUM7WUFDRixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsQ0FBQztTQUNGLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUM7UUFFckQsT0FBTztZQUNMLFNBQVMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFO1lBQzlGLFFBQVE7U0FDVCxDQUFDO0lBQ0osQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQzs4R0EvQlUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FEVCxNQUFNOzsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFtQ2xDLFNBQVMsdUJBQXVCLENBQUMsWUFBcUM7SUFDcEUsT0FBTztRQUNMLGNBQWMsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQzVDLGNBQWMsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDekIsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNO1FBQzNCLGNBQWMsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQzVDLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUTtRQUMvQixnQkFBZ0IsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsYUFBYSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUM7UUFDMUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1FBQ3ZCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtRQUMzQixRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7UUFDL0IsY0FBYyxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUM7UUFDNUMsbURBQW1ELEVBQUUsWUFBWSxDQUFDLG1EQUFtRCxDQUFDO1FBQ3RILFVBQVUsRUFBRSxZQUFZLENBQUMsVUFBVTtRQUNuQyxpQkFBaUIsRUFBRSxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1FBQ3ZCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtRQUMzQixlQUFlLEVBQUUsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7UUFDakMsZUFBZSxFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUM7UUFDOUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1FBQy9CLGNBQWMsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQzVDLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUTtRQUMvQixZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVk7UUFDdkMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLGtCQUFrQixDQUFDO1FBQ3BELGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYSxDQUFDO1FBQzFDLGNBQWMsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQzVDLGdDQUFnQyxFQUFFLFlBQVksQ0FBQyxnQ0FBZ0MsQ0FBQztRQUNoRiw2REFBNkQsRUFDM0QsWUFBWSxDQUFDLDZEQUE2RCxDQUFDO1FBQzdFLG9IQUFvSCxFQUNsSCxZQUFZLENBQUMsb0hBQW9ILENBQUM7UUFDcEksNkhBQTZILEVBQzNILFlBQVksQ0FDViw2SEFBNkgsQ0FDOUg7UUFDSCxnREFBZ0QsRUFBRSxZQUFZLENBQUMsZ0RBQWdELENBQUM7UUFDaEgsbUVBQW1FLEVBQ2pFLFlBQVksQ0FBQyxtRUFBbUUsQ0FBQztRQUNuRixZQUFZLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQztRQUN4QyxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDekIsb0JBQW9CLEVBQUUsWUFBWSxDQUFDLG9CQUFvQixDQUFDO1FBQ3hELGNBQWMsRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDO1FBQzVDLHdCQUF3QixFQUFFLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQztRQUNoRSxxRkFBcUYsRUFDbkYsWUFBWSxDQUFDLHFGQUFxRixDQUFDO1FBQ3JHLGtDQUFrQyxFQUFFLFlBQVksQ0FBQyxrQ0FBa0MsQ0FBQztRQUNwRixtQ0FBbUMsRUFBRSxZQUFZLENBQUMsbUNBQW1DLENBQUM7UUFDdEYsc0NBQXNDLEVBQUUsWUFBWSxDQUFDLHNDQUFzQyxDQUFDO1FBQzVGLFlBQVksRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQ3hDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxvQkFBb0IsRUFBRSxZQUFZLENBQUMsb0JBQW9CLENBQUM7UUFDeEQsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLHVCQUF1QixDQUFDO1FBQzlELElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDekIsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3pCLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRztRQUNyQixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDekIsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1FBQ3ZCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtRQUMzQixPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU87UUFDN0IsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1FBQ3ZCLFVBQVUsRUFBRSxZQUFZLENBQUMsVUFBVTtRQUNuQyxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07UUFDM0IsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO1FBQ3JDLGtCQUFrQixFQUFFLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztRQUNwRCxNQUFNLEVBQUUsWUFBWSxDQUFDLE1BQU07UUFDM0IsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUM7UUFDdEMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xELElBQUksRUFBRSxZQUFZLENBQUMsSUFBSTtRQUN2QixPQUFPLEVBQUUsWUFBWSxDQUFDLE9BQU87UUFDN0IsYUFBYSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUM7UUFDMUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUM7UUFDMUMseUJBQXlCLEVBQUUsWUFBWSxDQUFDLHlCQUF5QixDQUFDO1FBQ2xFLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQztRQUM1RCxvQkFBb0IsRUFBRSxZQUFZLENBQUMsb0JBQW9CLENBQUM7UUFDeEQsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLGlCQUFpQixDQUFDO1FBQ2xELFlBQVksRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQ3hDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSztRQUN6Qiw0Q0FBNEMsRUFBRSxZQUFZLENBQUMsNENBQTRDLENBQUM7UUFDeEcsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO1FBQ3ZCLHlCQUF5QixFQUFFLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQztRQUNsRSxzRUFBc0UsRUFDcEUsWUFBWSxDQUFDLHNFQUFzRSxDQUFDO1FBQ3RGLHVCQUF1QixFQUFFLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQztRQUM5RCxpQkFBaUIsRUFBRSxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDbEQseUJBQXlCLEVBQUUsWUFBWSxDQUFDLHlCQUF5QixDQUFDO1FBQ2xFLG9CQUFvQixFQUFFLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztRQUN4RCxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDekIsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPO1FBQzdCLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztRQUNsRCx5QkFBeUIsRUFBRSxZQUFZLENBQUMseUJBQXlCLENBQUM7UUFDbEUsMEJBQTBCLEVBQUUsWUFBWSxDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLDJCQUEyQixFQUFFLFlBQVksQ0FBQywyQkFBMkIsQ0FBQztLQUN2RSxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdmlkZW9qcyBmcm9tICd2aWRlby5qcyc7XG5pbXBvcnQgUGxheWVyIGZyb20gJ3ZpZGVvLmpzL2Rpc3QvdHlwZXMvcGxheWVyJztcbmltcG9ydCB7IFZpZGVvSnNUcmFuc2xhdGlvbiwgVmlkZW9QbGF5ZXJUcmFuc2xhdGlvbnMgfSBmcm9tICcuL3ZpZGVvLXBsYXllci1pMThuLm1vZGVsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBWaWRlb1BsYXllckkxOG5TZXJ2aWNlIHtcbiAgcmVhZG9ubHkgI3RyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBpbml0KHBsYXllcjogUGxheWVyLCBkZXN0cm95UmVmOiBEZXN0cm95UmVmKSB7XG4gICAgdGhpcy4jdHJhbnNsYXRlLm9uTGFuZ0NoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKSxcbiAgICAgICAgdGFwKHtcbiAgICAgICAgICBuZXh0OiBlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gZS5sYW5nO1xuICAgICAgICAgICAgdmlkZW9qcy5hZGRMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5nZXRUcmFuc2xhdGlvbnMoKSk7XG4gICAgICAgICAgICBwbGF5ZXIubGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnb25MYW5nQ2hhbmdlJywgeCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldExhbmd1YWdlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy4jdHJhbnNsYXRlLmN1cnJlbnRMYW5nID8/ICdpdCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFuZ3VhZ2VzOiB7IFtsYW5ndWFnZV06IG1hcFRvVmlkZW9Kc1RyYW5zbGF0aW9uKHRoaXMuI3RyYW5zbGF0ZS5pbnN0YW50KCdpdC52aWRlby1wbGF5ZXInKSkgfSxcbiAgICAgIGxhbmd1YWdlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zbGF0aW9ucygpIHtcbiAgICByZXR1cm4gbWFwVG9WaWRlb0pzVHJhbnNsYXRpb24odGhpcy4jdHJhbnNsYXRlLmluc3RhbnQoJ2l0LnZpZGVvLXBsYXllcicpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXBUb1ZpZGVvSnNUcmFuc2xhdGlvbih0cmFuc2xhdGlvbnM6IFZpZGVvUGxheWVyVHJhbnNsYXRpb25zKTogVmlkZW9Kc1RyYW5zbGF0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICAnQXVkaW8gUGxheWVyJzogdHJhbnNsYXRpb25zWydhdWRpby1wbGF5ZXInXSxcbiAgICAnVmlkZW8gUGxheWVyJzogdHJhbnNsYXRpb25zWyd2aWRlby1wbGF5ZXInXSxcbiAgICBQbGF5OiB0cmFuc2xhdGlvbnMucGxheSxcbiAgICBQYXVzZTogdHJhbnNsYXRpb25zLnBhdXNlLFxuICAgIFJlcGxheTogdHJhbnNsYXRpb25zLnJlcGxheSxcbiAgICAnQ3VycmVudCBUaW1lJzogdHJhbnNsYXRpb25zWydjdXJyZW50LXRpbWUnXSxcbiAgICBEdXJhdGlvbjogdHJhbnNsYXRpb25zLmR1cmF0aW9uLFxuICAgICdSZW1haW5pbmcgVGltZSc6IHRyYW5zbGF0aW9uc1sncmVtYWluaW5nLXRpbWUnXSxcbiAgICAnU3RyZWFtIFR5cGUnOiB0cmFuc2xhdGlvbnNbJ3N0cmVhbS10eXBlJ10sXG4gICAgTElWRTogdHJhbnNsYXRpb25zLmxpdmUsXG4gICAgTG9hZGVkOiB0cmFuc2xhdGlvbnMubG9hZGVkLFxuICAgIFByb2dyZXNzOiB0cmFuc2xhdGlvbnMucHJvZ3Jlc3MsXG4gICAgJ1Byb2dyZXNzIEJhcic6IHRyYW5zbGF0aW9uc1sncHJvZ3Jlc3MtYmFyJ10sXG4gICAgJ3Byb2dyZXNzIGJhciB0aW1pbmc6IGN1cnJlbnRUaW1lPXsxfSBkdXJhdGlvbj17Mn0nOiB0cmFuc2xhdGlvbnNbJ3Byb2dyZXNzLWJhci10aW1pbmc6LWN1cnJlbnR0aW1lPXsxfS1kdXJhdGlvbj17Mn0nXSxcbiAgICBGdWxsc2NyZWVuOiB0cmFuc2xhdGlvbnMuZnVsbHNjcmVlbixcbiAgICAnRXhpdCBGdWxsc2NyZWVuJzogdHJhbnNsYXRpb25zWydleGl0LWZ1bGxzY3JlZW4nXSxcbiAgICBNdXRlOiB0cmFuc2xhdGlvbnMubXV0ZSxcbiAgICBVbm11dGU6IHRyYW5zbGF0aW9ucy51bm11dGUsXG4gICAgJ1BsYXliYWNrIFJhdGUnOiB0cmFuc2xhdGlvbnNbJ3BsYXliYWNrLXJhdGUnXSxcbiAgICBTdWJ0aXRsZXM6IHRyYW5zbGF0aW9ucy5zdWJ0aXRsZXMsXG4gICAgJ3N1YnRpdGxlcyBvZmYnOiB0cmFuc2xhdGlvbnNbJ3N1YnRpdGxlcy1vZmYnXSxcbiAgICBDYXB0aW9uczogdHJhbnNsYXRpb25zLmNhcHRpb25zLFxuICAgICdjYXB0aW9ucyBvZmYnOiB0cmFuc2xhdGlvbnNbJ2NhcHRpb25zLW9mZiddLFxuICAgIENoYXB0ZXJzOiB0cmFuc2xhdGlvbnMuY2hhcHRlcnMsXG4gICAgRGVzY3JpcHRpb25zOiB0cmFuc2xhdGlvbnMuZGVzY3JpcHRpb25zLFxuICAgICdkZXNjcmlwdGlvbnMgb2ZmJzogdHJhbnNsYXRpb25zWydkZXNjcmlwdGlvbnMtb2ZmJ10sXG4gICAgJ0F1ZGlvIFRyYWNrJzogdHJhbnNsYXRpb25zWydhdWRpby10cmFjayddLFxuICAgICdWb2x1bWUgTGV2ZWwnOiB0cmFuc2xhdGlvbnNbJ3ZvbHVtZS1sZXZlbCddLFxuICAgICdZb3UgYWJvcnRlZCB0aGUgbWVkaWEgcGxheWJhY2snOiB0cmFuc2xhdGlvbnNbJ3lvdS1hYm9ydGVkLXRoZS1tZWRpYS1wbGF5YmFjayddLFxuICAgICdBIG5ldHdvcmsgZXJyb3IgY2F1c2VkIHRoZSBtZWRpYSBkb3dubG9hZCB0byBmYWlsIHBhcnQtd2F5Lic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ2EtbmV0d29yay1lcnJvci1jYXVzZWQtdGhlLW1lZGlhLWRvd25sb2FkLXRvLWZhaWwtcGFydC13YXkuJ10sXG4gICAgJ1RoZSBtZWRpYSBjb3VsZCBub3QgYmUgbG9hZGVkLCBlaXRoZXIgYmVjYXVzZSB0aGUgc2VydmVyIG9yIG5ldHdvcmsgZmFpbGVkIG9yIGJlY2F1c2UgdGhlIGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkLic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ3RoZS1tZWRpYS1jb3VsZC1ub3QtYmUtbG9hZGVkLC1laXRoZXItYmVjYXVzZS10aGUtc2VydmVyLW9yLW5ldHdvcmstZmFpbGVkLW9yLWJlY2F1c2UtdGhlLWZvcm1hdC1pcy1ub3Qtc3VwcG9ydGVkLiddLFxuICAgICdUaGUgbWVkaWEgcGxheWJhY2sgd2FzIGFib3J0ZWQgZHVlIHRvIGEgY29ycnVwdGlvbiBwcm9ibGVtIG9yIGJlY2F1c2UgdGhlIG1lZGlhIHVzZWQgZmVhdHVyZXMgeW91ciBicm93c2VyIGRpZCBub3Qgc3VwcG9ydC4nOlxuICAgICAgdHJhbnNsYXRpb25zW1xuICAgICAgICAndGhlLW1lZGlhLXBsYXliYWNrLXdhcy1hYm9ydGVkLWR1ZS10by1hLWNvcnJ1cHRpb24tcHJvYmxlbS1vci1iZWNhdXNlLXRoZS1tZWRpYS11c2VkLWZlYXR1cmVzLXlvdXItYnJvd3Nlci1kaWQtbm90LXN1cHBvcnQuJ1xuICAgICAgXSxcbiAgICAnTm8gY29tcGF0aWJsZSBzb3VyY2Ugd2FzIGZvdW5kIGZvciB0aGlzIG1lZGlhLic6IHRyYW5zbGF0aW9uc1snbm8tY29tcGF0aWJsZS1zb3VyY2Utd2FzLWZvdW5kLWZvci10aGlzLW1lZGlhLiddLFxuICAgICdUaGUgbWVkaWEgaXMgZW5jcnlwdGVkIGFuZCB3ZSBkbyBub3QgaGF2ZSB0aGUga2V5cyB0byBkZWNyeXB0IGl0Lic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ3RoZS1tZWRpYS1pcy1lbmNyeXB0ZWQtYW5kLXdlLWRvLW5vdC1oYXZlLXRoZS1rZXlzLXRvLWRlY3J5cHQtaXQuJ10sXG4gICAgJ1BsYXkgVmlkZW8nOiB0cmFuc2xhdGlvbnNbJ3BsYXktdmlkZW8nXSxcbiAgICBDbG9zZTogdHJhbnNsYXRpb25zLmNsb3NlLFxuICAgICdDbG9zZSBNb2RhbCBEaWFsb2cnOiB0cmFuc2xhdGlvbnNbJ2Nsb3NlLW1vZGFsLWRpYWxvZyddLFxuICAgICdNb2RhbCBXaW5kb3cnOiB0cmFuc2xhdGlvbnNbJ21vZGFsLXdpbmRvdyddLFxuICAgICdUaGlzIGlzIGEgbW9kYWwgd2luZG93JzogdHJhbnNsYXRpb25zWyd0aGlzLWlzLWEtbW9kYWwtd2luZG93J10sXG4gICAgJ1RoaXMgbW9kYWwgY2FuIGJlIGNsb3NlZCBieSBwcmVzc2luZyB0aGUgRXNjYXBlIGtleSBvciBhY3RpdmF0aW5nIHRoZSBjbG9zZSBidXR0b24uJzpcbiAgICAgIHRyYW5zbGF0aW9uc1sndGhpcy1tb2RhbC1jYW4tYmUtY2xvc2VkLWJ5LXByZXNzaW5nLXRoZS1lc2NhcGUta2V5LW9yLWFjdGl2YXRpbmctdGhlLWNsb3NlLWJ1dHRvbi4nXSxcbiAgICAnLCBvcGVucyBjYXB0aW9ucyBzZXR0aW5ncyBkaWFsb2cnOiB0cmFuc2xhdGlvbnNbJywtb3BlbnMtY2FwdGlvbnMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgb3BlbnMgc3VidGl0bGVzIHNldHRpbmdzIGRpYWxvZyc6IHRyYW5zbGF0aW9uc1snLC1vcGVucy1zdWJ0aXRsZXMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgb3BlbnMgZGVzY3JpcHRpb25zIHNldHRpbmdzIGRpYWxvZyc6IHRyYW5zbGF0aW9uc1snLC1vcGVucy1kZXNjcmlwdGlvbnMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgc2VsZWN0ZWQnOiB0cmFuc2xhdGlvbnNbJywtc2VsZWN0ZWQnXSxcbiAgICAnY2FwdGlvbnMgc2V0dGluZ3MnOiB0cmFuc2xhdGlvbnNbJ2NhcHRpb25zLXNldHRpbmdzJ10sXG4gICAgJ3N1YnRpdGxlcyBzZXR0aW5ncyc6IHRyYW5zbGF0aW9uc1snc3VidGl0bGVzLXNldHRpbmdzJ10sXG4gICAgJ2Rlc2NyaXB0aW9ucyBzZXR0aW5ncyc6IHRyYW5zbGF0aW9uc1snZGVzY3JpcHRpb25zLXNldHRpbmdzJ10sXG4gICAgVGV4dDogdHJhbnNsYXRpb25zLnRleHQsXG4gICAgV2hpdGU6IHRyYW5zbGF0aW9ucy53aGl0ZSxcbiAgICBCbGFjazogdHJhbnNsYXRpb25zLmJsYWNrLFxuICAgIFJlZDogdHJhbnNsYXRpb25zLnJlZCxcbiAgICBHcmVlbjogdHJhbnNsYXRpb25zLmdyZWVuLFxuICAgIEJsdWU6IHRyYW5zbGF0aW9ucy5ibHVlLFxuICAgIFllbGxvdzogdHJhbnNsYXRpb25zLnllbGxvdyxcbiAgICBNYWdlbnRhOiB0cmFuc2xhdGlvbnMubWFnZW50YSxcbiAgICBDeWFuOiB0cmFuc2xhdGlvbnMuY3lhbixcbiAgICBCYWNrZ3JvdW5kOiB0cmFuc2xhdGlvbnMuYmFja2dyb3VuZCxcbiAgICBXaW5kb3c6IHRyYW5zbGF0aW9ucy53aW5kb3csXG4gICAgVHJhbnNwYXJlbnQ6IHRyYW5zbGF0aW9ucy50cmFuc3BhcmVudCxcbiAgICAnU2VtaS1UcmFuc3BhcmVudCc6IHRyYW5zbGF0aW9uc1snc2VtaS10cmFuc3BhcmVudCddLFxuICAgIE9wYXF1ZTogdHJhbnNsYXRpb25zLm9wYXF1ZSxcbiAgICAnRm9udCBTaXplJzogdHJhbnNsYXRpb25zWydmb250LXNpemUnXSxcbiAgICAnVGV4dCBFZGdlIFN0eWxlJzogdHJhbnNsYXRpb25zWyd0ZXh0LWVkZ2Utc3R5bGUnXSxcbiAgICBOb25lOiB0cmFuc2xhdGlvbnMubm9uZSxcbiAgICBVbmlmb3JtOiB0cmFuc2xhdGlvbnMudW5pZm9ybSxcbiAgICAnRHJvcCBzaGFkb3cnOiB0cmFuc2xhdGlvbnNbJ2Ryb3Atc2hhZG93J10sXG4gICAgJ0ZvbnQgRmFtaWx5JzogdHJhbnNsYXRpb25zWydmb250LWZhbWlseSddLFxuICAgICdQcm9wb3J0aW9uYWwgU2Fucy1TZXJpZic6IHRyYW5zbGF0aW9uc1sncHJvcG9ydGlvbmFsLXNhbnMtc2VyaWYnXSxcbiAgICAnTW9ub3NwYWNlIFNhbnMtU2VyaWYnOiB0cmFuc2xhdGlvbnNbJ21vbm9zcGFjZS1zYW5zLXNlcmlmJ10sXG4gICAgJ1Byb3BvcnRpb25hbCBTZXJpZic6IHRyYW5zbGF0aW9uc1sncHJvcG9ydGlvbmFsLXNlcmlmJ10sXG4gICAgJ01vbm9zcGFjZSBTZXJpZic6IHRyYW5zbGF0aW9uc1snbW9ub3NwYWNlLXNlcmlmJ10sXG4gICAgJ1NtYWxsIENhcHMnOiB0cmFuc2xhdGlvbnNbJ3NtYWxsLWNhcHMnXSxcbiAgICBSZXNldDogdHJhbnNsYXRpb25zLnJlc2V0LFxuICAgICdyZXN0b3JlIGFsbCBzZXR0aW5ncyB0byB0aGUgZGVmYXVsdCB2YWx1ZXMnOiB0cmFuc2xhdGlvbnNbJ3Jlc3RvcmUtYWxsLXNldHRpbmdzLXRvLXRoZS1kZWZhdWx0LXZhbHVlcyddLFxuICAgIERvbmU6IHRyYW5zbGF0aW9ucy5kb25lLFxuICAgICdDYXB0aW9uIFNldHRpbmdzIERpYWxvZyc6IHRyYW5zbGF0aW9uc1snY2FwdGlvbi1zZXR0aW5ncy1kaWFsb2cnXSxcbiAgICAnQmVnaW5uaW5nIG9mIGRpYWxvZyB3aW5kb3cuIEVzY2FwZSB3aWxsIGNhbmNlbCBhbmQgY2xvc2UgdGhlIHdpbmRvdy4nOlxuICAgICAgdHJhbnNsYXRpb25zWydiZWdpbm5pbmctb2YtZGlhbG9nLXdpbmRvdy4tZXNjYXBlLXdpbGwtY2FuY2VsLWFuZC1jbG9zZS10aGUtd2luZG93LiddLFxuICAgICdFbmQgb2YgZGlhbG9nIHdpbmRvdy4nOiB0cmFuc2xhdGlvbnNbJ2VuZC1vZi1kaWFsb2ctd2luZG93LiddLFxuICAgICd7MX0gaXMgbG9hZGluZy4nOiB0cmFuc2xhdGlvbnNbJ3sxfS1pcy1sb2FkaW5nLiddLFxuICAgICdFeGl0IFBpY3R1cmUtaW4tUGljdHVyZSc6IHRyYW5zbGF0aW9uc1snZXhpdC1waWN0dXJlLWluLXBpY3R1cmUnXSxcbiAgICAnUGljdHVyZS1pbi1QaWN0dXJlJzogdHJhbnNsYXRpb25zWydwaWN0dXJlLWluLXBpY3R1cmUnXSxcbiAgICBDb2xvcjogdHJhbnNsYXRpb25zLmNvbG9yLFxuICAgIE9wYWNpdHk6IHRyYW5zbGF0aW9ucy5vcGFjaXR5LFxuICAgICdUZXh0IEJhY2tncm91bmQnOiB0cmFuc2xhdGlvbnNbJ3RleHQtYmFja2dyb3VuZCddLFxuICAgICdDYXB0aW9uIEFyZWEgQmFja2dyb3VuZCc6IHRyYW5zbGF0aW9uc1snY2FwdGlvbi1hcmVhLWJhY2tncm91bmQnXSxcbiAgICAnU2tpcCBmb3J3YXJkIHsxfSBzZWNvbmRzJzogdHJhbnNsYXRpb25zWydza2lwLWZvcndhcmQtezF9LXNlY29uZHMnXSxcbiAgICAnU2tpcCBiYWNrd2FyZCB7MX0gc2Vjb25kcyc6IHRyYW5zbGF0aW9uc1snc2tpcC1iYWNrd2FyZC17MX0tc2Vjb25kcyddLFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, inject, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { BehaviorSubject, delay, tap } from 'rxjs';
|
|
5
|
+
import videojs from 'video.js';
|
|
6
|
+
import { ItAbstractComponent } from '../../../abstracts/abstract.component';
|
|
7
|
+
import { VideoPlayerI18nService } from './video-player-i18n.service';
|
|
8
|
+
import { cookies } from './video-player.cookie';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "./video-player.config";
|
|
11
|
+
var ViewType;
|
|
12
|
+
(function (ViewType) {
|
|
13
|
+
ViewType["Default"] = "DEFAULT";
|
|
14
|
+
ViewType["Overlay"] = "OVERLAY";
|
|
15
|
+
})(ViewType || (ViewType = {}));
|
|
16
|
+
/**
|
|
17
|
+
* Video Player
|
|
18
|
+
* @description Component that allows playing a video.
|
|
19
|
+
*/
|
|
20
|
+
export class ItVideoPlayerComponent extends ItAbstractComponent {
|
|
21
|
+
#destroyRef;
|
|
22
|
+
get viewType() {
|
|
23
|
+
return this.viewType$.value;
|
|
24
|
+
}
|
|
25
|
+
constructor(config) {
|
|
26
|
+
super();
|
|
27
|
+
this.config = config;
|
|
28
|
+
this.viewTypes = ViewType;
|
|
29
|
+
this.viewType$ = new BehaviorSubject(undefined);
|
|
30
|
+
this.cookieAccepted$ = new BehaviorSubject(false);
|
|
31
|
+
this.i18nService = inject(VideoPlayerI18nService);
|
|
32
|
+
this.#destroyRef = inject(DestroyRef);
|
|
33
|
+
}
|
|
34
|
+
async ngOnInit() {
|
|
35
|
+
const config = this.config.mergeConfig(this.options);
|
|
36
|
+
this.setViewType(config);
|
|
37
|
+
await this.config.configureTech(config);
|
|
38
|
+
if (!this.videoPlayerRef) {
|
|
39
|
+
this.cookieAccepted$
|
|
40
|
+
.pipe(takeUntilDestroyed(this.#destroyRef), delay(0), tap({
|
|
41
|
+
next: value => {
|
|
42
|
+
if (value && !this.player) {
|
|
43
|
+
this.initVideoPlayer();
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
}))
|
|
47
|
+
.subscribe();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
this.initVideoPlayer();
|
|
51
|
+
}
|
|
52
|
+
ngAfterViewInit() {
|
|
53
|
+
if (this.viewType === ViewType.Overlay && cookies.isChoiceRemembered('youtube.com')) {
|
|
54
|
+
this.hideOverlay();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
ngOnDestroy() {
|
|
58
|
+
if (this.player) {
|
|
59
|
+
this.player.dispose();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
acceptCookieHandler() {
|
|
63
|
+
this.rememberHandler();
|
|
64
|
+
this.hideOverlay();
|
|
65
|
+
this.cookieAccepted$.next(true);
|
|
66
|
+
}
|
|
67
|
+
initVideoPlayer() {
|
|
68
|
+
const config = this.config.mergeConfig(this.options);
|
|
69
|
+
this.setVideoAttributes(config);
|
|
70
|
+
this.setVideoPlayer();
|
|
71
|
+
}
|
|
72
|
+
setVideoPlayer() {
|
|
73
|
+
const config = this.config.mergeConfig(this.options);
|
|
74
|
+
const onPlayerReadyCb = () => {
|
|
75
|
+
if (!this.player) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
this.i18nService.init(this.player, this.#destroyRef);
|
|
79
|
+
};
|
|
80
|
+
if (!this.videoPlayerRef) {
|
|
81
|
+
throw Error('videoPlayerRef is undefined');
|
|
82
|
+
}
|
|
83
|
+
this.player = videojs(this.videoPlayerRef.nativeElement, config, onPlayerReadyCb.bind(this));
|
|
84
|
+
}
|
|
85
|
+
setViewType(config) {
|
|
86
|
+
this.viewType$.next(config.tech === 'youtube' ? ViewType.Overlay : ViewType.Default);
|
|
87
|
+
this.cookieAccepted$.next(this.viewType === ViewType.Overlay && cookies.isChoiceRemembered('youtube.com'));
|
|
88
|
+
}
|
|
89
|
+
hideOverlay() {
|
|
90
|
+
if (!this.acceptOverlayableRef) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const classes = ['show'];
|
|
94
|
+
this.acceptOverlayableRef.nativeElement.classList.remove(...classes);
|
|
95
|
+
if (!this.acceptOveralyRef) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
this.acceptOveralyRef.nativeElement.classList.remove(...classes);
|
|
99
|
+
this.acceptOveralyRef.nativeElement.setAttribute('aria-hidden', 'true');
|
|
100
|
+
}
|
|
101
|
+
rememberHandler() {
|
|
102
|
+
if (!this.chrRememberRef) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const remember = this.chrRememberRef.nativeElement.checked;
|
|
106
|
+
cookies.rememberChoice('youtube.com', remember);
|
|
107
|
+
}
|
|
108
|
+
setVideoAttributes(options) {
|
|
109
|
+
if (!this.videoPlayerRef) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const v = this.videoPlayerRef.nativeElement;
|
|
113
|
+
const { autoplay, controls, loop, muted, poster, fluid } = options;
|
|
114
|
+
if (autoplay) {
|
|
115
|
+
v.setAttribute('autoplay', autoplay.toString());
|
|
116
|
+
}
|
|
117
|
+
if (controls) {
|
|
118
|
+
v.setAttribute('controls', '');
|
|
119
|
+
}
|
|
120
|
+
if (loop) {
|
|
121
|
+
v.setAttribute('loop', '');
|
|
122
|
+
}
|
|
123
|
+
if (muted) {
|
|
124
|
+
v.setAttribute('muted', '');
|
|
125
|
+
}
|
|
126
|
+
if (poster) {
|
|
127
|
+
v.setAttribute('poster', poster);
|
|
128
|
+
}
|
|
129
|
+
if (fluid) {
|
|
130
|
+
v.setAttribute('fluid', '');
|
|
131
|
+
}
|
|
132
|
+
v.setAttribute('preload', 'none');
|
|
133
|
+
v.setAttribute('playsinline', '');
|
|
134
|
+
}
|
|
135
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItVideoPlayerComponent, deps: [{ token: i1.VideoPlayerConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: ItVideoPlayerComponent, isStandalone: true, selector: "it-video-player", inputs: { options: "options" }, viewQueries: [{ propertyName: "videoPlayerRef", first: true, predicate: ["videoPlayer"], descendants: true }, { propertyName: "acceptOveralyRef", first: true, predicate: ["acceptOveraly"], descendants: true }, { propertyName: "acceptOverlayableRef", first: true, predicate: ["acceptOverlayable"], descendants: true }, { propertyName: "chrRememberRef", first: true, predicate: ["chkRemember"], descendants: true }], usesInheritance: true, ngImport: i0, template: `@switch (viewType$ | async) {
|
|
137
|
+
@case (viewTypes.Default) {
|
|
138
|
+
<div class="row">
|
|
139
|
+
<ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
|
|
140
|
+
<ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
|
|
141
|
+
</div>
|
|
142
|
+
}
|
|
143
|
+
@case (viewTypes.Overlay) {
|
|
144
|
+
<div #acceptOverlayable class="acceptoverlayable show">
|
|
145
|
+
<div #acceptOveraly class="acceptoverlay acceptoverlay-primary fade show">
|
|
146
|
+
<div class="acceptoverlay-inner">
|
|
147
|
+
<div class="acceptoverlay-icon">
|
|
148
|
+
<svg class="icon icon-xl"><use href="/bootstrap-italia/dist/svg/sprites.svg#it-video"></use></svg>
|
|
149
|
+
</div>
|
|
150
|
+
<p>
|
|
151
|
+
Accetta i cookie di YouTube per vedere il video. Puoi gestire le preferenze nella
|
|
152
|
+
<a href="#" class="text-white">cookie policy</a>.
|
|
153
|
+
</p>
|
|
154
|
+
<div class="acceptoverlay-buttons bg-dark">
|
|
155
|
+
<button type="button" class="btn btn-primary" (click)="acceptCookieHandler()">Accetta</button>
|
|
156
|
+
<div class="form-check">
|
|
157
|
+
<input id="chk-remember{{ id }}" type="checkbox" #chkRemember />
|
|
158
|
+
<label for="chk-remember{{ id }}">Ricorda per tutti i video</label>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
@if (cookieAccepted$ | async) {
|
|
164
|
+
<div>
|
|
165
|
+
<ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
|
|
166
|
+
<ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
|
|
167
|
+
</div>
|
|
168
|
+
}
|
|
169
|
+
</div>
|
|
170
|
+
}
|
|
171
|
+
@default {
|
|
172
|
+
<h1>No video provider</h1>
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
<ng-template #videoTemplate>
|
|
176
|
+
<div>
|
|
177
|
+
<video #videoPlayer class="video-js vjs-theme-bootstrap-italia vjs-fluid vjs-big-play-centered"></video>
|
|
178
|
+
</div>
|
|
179
|
+
</ng-template>
|
|
180
|
+
|
|
181
|
+
<ng-template #transcriptionTemplate>
|
|
182
|
+
<div class="vjs-transcription accordion">
|
|
183
|
+
<div class="accordion-item">
|
|
184
|
+
<h2 class="accordion-header " id="transcription-{{ id }}-head">
|
|
185
|
+
<button
|
|
186
|
+
class="accordion-button collapsed"
|
|
187
|
+
type="button"
|
|
188
|
+
data-bs-toggle="collapse"
|
|
189
|
+
[attr.data-bs-target]="'#transcription-' + id"
|
|
190
|
+
[attr.aria-controls]="'transcription-' + id"
|
|
191
|
+
aria-expanded="true">
|
|
192
|
+
<ng-content select="[transcriptionTitle]">Trascrizione</ng-content>
|
|
193
|
+
</button>
|
|
194
|
+
</h2>
|
|
195
|
+
<div
|
|
196
|
+
id="transcription-{{ id }}"
|
|
197
|
+
class="accordion-collapse collapse"
|
|
198
|
+
role="region"
|
|
199
|
+
[attr.aria-labelledby]="'transcription-' + id + '-head'">
|
|
200
|
+
<div class="accordion-body">
|
|
201
|
+
<ng-content select="[transcriptionText]">-</ng-content>
|
|
202
|
+
</div>
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
</ng-template> `, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
207
|
+
}
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItVideoPlayerComponent, decorators: [{
|
|
209
|
+
type: Component,
|
|
210
|
+
args: [{
|
|
211
|
+
standalone: true,
|
|
212
|
+
selector: 'it-video-player',
|
|
213
|
+
template: `@switch (viewType$ | async) {
|
|
214
|
+
@case (viewTypes.Default) {
|
|
215
|
+
<div class="row">
|
|
216
|
+
<ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
|
|
217
|
+
<ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
|
|
218
|
+
</div>
|
|
219
|
+
}
|
|
220
|
+
@case (viewTypes.Overlay) {
|
|
221
|
+
<div #acceptOverlayable class="acceptoverlayable show">
|
|
222
|
+
<div #acceptOveraly class="acceptoverlay acceptoverlay-primary fade show">
|
|
223
|
+
<div class="acceptoverlay-inner">
|
|
224
|
+
<div class="acceptoverlay-icon">
|
|
225
|
+
<svg class="icon icon-xl"><use href="/bootstrap-italia/dist/svg/sprites.svg#it-video"></use></svg>
|
|
226
|
+
</div>
|
|
227
|
+
<p>
|
|
228
|
+
Accetta i cookie di YouTube per vedere il video. Puoi gestire le preferenze nella
|
|
229
|
+
<a href="#" class="text-white">cookie policy</a>.
|
|
230
|
+
</p>
|
|
231
|
+
<div class="acceptoverlay-buttons bg-dark">
|
|
232
|
+
<button type="button" class="btn btn-primary" (click)="acceptCookieHandler()">Accetta</button>
|
|
233
|
+
<div class="form-check">
|
|
234
|
+
<input id="chk-remember{{ id }}" type="checkbox" #chkRemember />
|
|
235
|
+
<label for="chk-remember{{ id }}">Ricorda per tutti i video</label>
|
|
236
|
+
</div>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
@if (cookieAccepted$ | async) {
|
|
241
|
+
<div>
|
|
242
|
+
<ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
|
|
243
|
+
<ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
|
|
244
|
+
</div>
|
|
245
|
+
}
|
|
246
|
+
</div>
|
|
247
|
+
}
|
|
248
|
+
@default {
|
|
249
|
+
<h1>No video provider</h1>
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
<ng-template #videoTemplate>
|
|
253
|
+
<div>
|
|
254
|
+
<video #videoPlayer class="video-js vjs-theme-bootstrap-italia vjs-fluid vjs-big-play-centered"></video>
|
|
255
|
+
</div>
|
|
256
|
+
</ng-template>
|
|
257
|
+
|
|
258
|
+
<ng-template #transcriptionTemplate>
|
|
259
|
+
<div class="vjs-transcription accordion">
|
|
260
|
+
<div class="accordion-item">
|
|
261
|
+
<h2 class="accordion-header " id="transcription-{{ id }}-head">
|
|
262
|
+
<button
|
|
263
|
+
class="accordion-button collapsed"
|
|
264
|
+
type="button"
|
|
265
|
+
data-bs-toggle="collapse"
|
|
266
|
+
[attr.data-bs-target]="'#transcription-' + id"
|
|
267
|
+
[attr.aria-controls]="'transcription-' + id"
|
|
268
|
+
aria-expanded="true">
|
|
269
|
+
<ng-content select="[transcriptionTitle]">Trascrizione</ng-content>
|
|
270
|
+
</button>
|
|
271
|
+
</h2>
|
|
272
|
+
<div
|
|
273
|
+
id="transcription-{{ id }}"
|
|
274
|
+
class="accordion-collapse collapse"
|
|
275
|
+
role="region"
|
|
276
|
+
[attr.aria-labelledby]="'transcription-' + id + '-head'">
|
|
277
|
+
<div class="accordion-body">
|
|
278
|
+
<ng-content select="[transcriptionText]">-</ng-content>
|
|
279
|
+
</div>
|
|
280
|
+
</div>
|
|
281
|
+
</div>
|
|
282
|
+
</div>
|
|
283
|
+
</ng-template> `,
|
|
284
|
+
imports: [AsyncPipe, NgTemplateOutlet],
|
|
285
|
+
encapsulation: ViewEncapsulation.None,
|
|
286
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
287
|
+
}]
|
|
288
|
+
}], ctorParameters: () => [{ type: i1.VideoPlayerConfigService }], propDecorators: { options: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], videoPlayerRef: [{
|
|
291
|
+
type: ViewChild,
|
|
292
|
+
args: ['videoPlayer', { static: false }]
|
|
293
|
+
}], acceptOveralyRef: [{
|
|
294
|
+
type: ViewChild,
|
|
295
|
+
args: ['acceptOveraly', { static: false }]
|
|
296
|
+
}], acceptOverlayableRef: [{
|
|
297
|
+
type: ViewChild,
|
|
298
|
+
args: ['acceptOverlayable', { static: false }]
|
|
299
|
+
}], chrRememberRef: [{
|
|
300
|
+
type: ViewChild,
|
|
301
|
+
args: ['chkRemember', { static: false }]
|
|
302
|
+
}] } });
|
|
303
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixLQUFLLEVBR0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBR2hELElBQUssUUFHSjtBQUhELFdBQUssUUFBUTtJQUNYLCtCQUFtQixDQUFBO0lBQ25CLCtCQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFISSxRQUFRLEtBQVIsUUFBUSxRQUdaO0FBRUQ7OztHQUdHO0FBK0VILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxtQkFBbUI7SUF3QnBELFdBQVcsQ0FBc0I7SUFFMUMsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQW9CLE1BQWdDO1FB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O1FBQ2xDLENBQUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBaEtVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGlpQkEzRXZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O29CQXNFUSx1REFDUixTQUFTLDhDQUFFLGdCQUFnQjs7MkZBSTFCLHNCQUFzQjtrQkE5RWxDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFzRVE7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDdEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs2RkFLVSxPQUFPO3NCQUFmLEtBQUs7Z0JBRXVDLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFSSxnQkFBZ0I7c0JBQTlELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFTSxvQkFBb0I7c0JBQXRFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVKLGNBQWM7c0JBQTFELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlbGF5LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB2aWRlb2pzIGZyb20gJ3ZpZGVvLmpzJztcbmltcG9ydCBQbGF5ZXIgZnJvbSAndmlkZW8uanMvZGlzdC90eXBlcy9wbGF5ZXInO1xuaW1wb3J0IHsgSXRBYnN0cmFjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Fic3RyYWN0cy9hYnN0cmFjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmlkZW9QbGF5ZXJJMThuU2VydmljZSB9IGZyb20gJy4vdmlkZW8tcGxheWVyLWkxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBUZWNoLCBWaWRlb1BsYXllckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3ZpZGVvLXBsYXllci5jb25maWcnO1xuaW1wb3J0IHsgY29va2llcyB9IGZyb20gJy4vdmlkZW8tcGxheWVyLmNvb2tpZSc7XG5pbXBvcnQgeyBJdFZpZGVvUGxheWVyQ29uZmlnLCBJdFZpZGVvUGxheWVyT3B0aW9ucyB9IGZyb20gJy4vdmlkZW8tcGxheWVyLm1vZGVsJztcblxuZW51bSBWaWV3VHlwZSB7XG4gIERlZmF1bHQgPSAnREVGQVVMVCcsXG4gIE92ZXJsYXkgPSAnT1ZFUkxBWScsXG59XG5cbi8qKlxuICogVmlkZW8gUGxheWVyXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50IHRoYXQgYWxsb3dzIHBsYXlpbmcgYSB2aWRlby5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnaXQtdmlkZW8tcGxheWVyJyxcbiAgdGVtcGxhdGU6IGBAc3dpdGNoICh2aWV3VHlwZSQgfCBhc3luYykge1xuICAgICAgQGNhc2UgKHZpZXdUeXBlcy5EZWZhdWx0KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlkZW9UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmFuc2NyaXB0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAY2FzZSAodmlld1R5cGVzLk92ZXJsYXkpIHtcbiAgICAgICAgPGRpdiAjYWNjZXB0T3ZlcmxheWFibGUgY2xhc3M9XCJhY2NlcHRvdmVybGF5YWJsZSBzaG93XCI+XG4gICAgICAgICAgPGRpdiAjYWNjZXB0T3ZlcmFseSBjbGFzcz1cImFjY2VwdG92ZXJsYXkgYWNjZXB0b3ZlcmxheS1wcmltYXJ5IGZhZGUgc2hvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjY2VwdG92ZXJsYXktaW5uZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjY2VwdG92ZXJsYXktaWNvblwiPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJpY29uIGljb24teGxcIj48dXNlIGhyZWY9XCIvYm9vdHN0cmFwLWl0YWxpYS9kaXN0L3N2Zy9zcHJpdGVzLnN2ZyNpdC12aWRlb1wiPjwvdXNlPjwvc3ZnPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgQWNjZXR0YSBpIGNvb2tpZSBkaSBZb3VUdWJlIHBlciB2ZWRlcmUgaWwgdmlkZW8uIFB1b2kgZ2VzdGlyZSBsZSBwcmVmZXJlbnplIG5lbGxhXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInRleHQtd2hpdGVcIj5jb29raWUgcG9saWN5PC9hPi5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjZXB0b3ZlcmxheS1idXR0b25zIGJnLWRhcmtcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJhY2NlcHRDb29raWVIYW5kbGVyKClcIj5BY2NldHRhPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImNoay1yZW1lbWJlcnt7IGlkIH19XCIgdHlwZT1cImNoZWNrYm94XCIgI2Noa1JlbWVtYmVyIC8+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2hrLXJlbWVtYmVye3sgaWQgfX1cIj5SaWNvcmRhIHBlciB0dXR0aSBpIHZpZGVvPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGNvb2tpZUFjY2VwdGVkJCB8IGFzeW5jKSB7XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlkZW9UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHJhbnNjcmlwdGlvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGRlZmF1bHQge1xuICAgICAgICA8aDE+Tm8gdmlkZW8gcHJvdmlkZXI8L2gxPlxuICAgICAgfVxuICAgIH1cbiAgICA8bmctdGVtcGxhdGUgI3ZpZGVvVGVtcGxhdGU+XG4gICAgICA8ZGl2PlxuICAgICAgICA8dmlkZW8gI3ZpZGVvUGxheWVyIGNsYXNzPVwidmlkZW8tanMgdmpzLXRoZW1lLWJvb3RzdHJhcC1pdGFsaWEgdmpzLWZsdWlkIHZqcy1iaWctcGxheS1jZW50ZXJlZFwiPjwvdmlkZW8+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICN0cmFuc2NyaXB0aW9uVGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwidmpzLXRyYW5zY3JpcHRpb24gYWNjb3JkaW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvcmRpb24taXRlbVwiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cImFjY29yZGlvbi1oZWFkZXIgXCIgaWQ9XCJ0cmFuc2NyaXB0aW9uLXt7IGlkIH19LWhlYWRcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJhY2NvcmRpb24tYnV0dG9uIGNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1icy10YXJnZXRdPVwiJyN0cmFuc2NyaXB0aW9uLScgKyBpZFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ3RyYW5zY3JpcHRpb24tJyArIGlkXCJcbiAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cInRydWVcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RyYW5zY3JpcHRpb25UaXRsZV1cIj5UcmFzY3JpemlvbmU8L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGlkPVwidHJhbnNjcmlwdGlvbi17eyBpZCB9fVwiXG4gICAgICAgICAgICBjbGFzcz1cImFjY29yZGlvbi1jb2xsYXBzZSBjb2xsYXBzZVwiXG4gICAgICAgICAgICByb2xlPVwicmVnaW9uXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndHJhbnNjcmlwdGlvbi0nICsgaWQgKyAnLWhlYWQnXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjb3JkaW9uLWJvZHlcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3RyYW5zY3JpcHRpb25UZXh0XVwiPi08L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPiBgLFxuICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEl0VmlkZW9QbGF5ZXJDb21wb25lbnQgZXh0ZW5kcyBJdEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdmlkZW8gcGxheWVyIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBJbnB1dCgpIG9wdGlvbnMhOiBJdFZpZGVvUGxheWVyT3B0aW9ucztcblxuICBAVmlld0NoaWxkKCd2aWRlb1BsYXllcicsIHsgc3RhdGljOiBmYWxzZSB9KSB2aWRlb1BsYXllclJlZj86IEVsZW1lbnRSZWY8SFRNTFZpZGVvRWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnYWNjZXB0T3ZlcmFseScsIHsgc3RhdGljOiBmYWxzZSB9KSBhY2NlcHRPdmVyYWx5UmVmPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnYWNjZXB0T3ZlcmxheWFibGUnLCB7IHN0YXRpYzogZmFsc2UgfSkgYWNjZXB0T3ZlcmxheWFibGVSZWY/OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdjaGtSZW1lbWJlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjaHJSZW1lbWJlclJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcGxheWVyPzogUGxheWVyO1xuXG4gIHJlYWRvbmx5IHZpZXdUeXBlcyA9IFZpZXdUeXBlO1xuXG4gIHJlYWRvbmx5IHZpZXdUeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Vmlld1R5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgY29va2llQWNjZXB0ZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGkxOG5TZXJ2aWNlID0gaW5qZWN0KFZpZGVvUGxheWVySTE4blNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHByaXZhdGUgZ2V0IHZpZXdUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnZpZXdUeXBlJC52YWx1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBWaWRlb1BsYXllckNvbmZpZ1NlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcubWVyZ2VDb25maWcodGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLnNldFZpZXdUeXBlKGNvbmZpZyk7XG4gICAgYXdhaXQgdGhpcy5jb25maWcuY29uZmlndXJlVGVjaChjb25maWcgYXMgeyB0ZWNoOiBUZWNoIH0pO1xuXG4gICAgaWYgKCF0aGlzLnZpZGVvUGxheWVyUmVmKSB7XG4gICAgICB0aGlzLmNvb2tpZUFjY2VwdGVkJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZiksXG4gICAgICAgICAgZGVsYXkoMCksXG4gICAgICAgICAgdGFwKHtcbiAgICAgICAgICAgIG5leHQ6IHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlICYmICF0aGlzLnBsYXllcikge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFZpZGVvUGxheWVyKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbml0VmlkZW9QbGF5ZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy52aWV3VHlwZSA9PT0gVmlld1R5cGUuT3ZlcmxheSAmJiBjb29raWVzLmlzQ2hvaWNlUmVtZW1iZXJlZCgneW91dHViZS5jb20nKSkge1xuICAgICAgdGhpcy5oaWRlT3ZlcmxheSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnBsYXllcikge1xuICAgICAgdGhpcy5wbGF5ZXIuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFjY2VwdENvb2tpZUhhbmRsZXIoKSB7XG4gICAgdGhpcy5yZW1lbWJlckhhbmRsZXIoKTtcbiAgICB0aGlzLmhpZGVPdmVybGF5KCk7XG4gICAgdGhpcy5jb29raWVBY2NlcHRlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFZpZGVvUGxheWVyKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnLm1lcmdlQ29uZmlnKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5zZXRWaWRlb0F0dHJpYnV0ZXMoY29uZmlnKTtcbiAgICB0aGlzLnNldFZpZGVvUGxheWVyKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFZpZGVvUGxheWVyKCkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnLm1lcmdlQ29uZmlnKHRoaXMub3B0aW9ucyk7XG4gICAgY29uc3Qgb25QbGF5ZXJSZWFkeUNiID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLnBsYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmkxOG5TZXJ2aWNlLmluaXQodGhpcy5wbGF5ZXIsIHRoaXMuI2Rlc3Ryb3lSZWYpO1xuICAgIH07XG5cbiAgICBpZiAoIXRoaXMudmlkZW9QbGF5ZXJSZWYpIHtcbiAgICAgIHRocm93IEVycm9yKCd2aWRlb1BsYXllclJlZiBpcyB1bmRlZmluZWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLnBsYXllciA9IHZpZGVvanModGhpcy52aWRlb1BsYXllclJlZi5uYXRpdmVFbGVtZW50LCBjb25maWcsIG9uUGxheWVyUmVhZHlDYi5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Vmlld1R5cGUoY29uZmlnOiBJdFZpZGVvUGxheWVyQ29uZmlnKSB7XG4gICAgdGhpcy52aWV3VHlwZSQubmV4dChjb25maWcudGVjaCA9PT0gJ3lvdXR1YmUnID8gVmlld1R5cGUuT3ZlcmxheSA6IFZpZXdUeXBlLkRlZmF1bHQpO1xuXG4gICAgdGhpcy5jb29raWVBY2NlcHRlZCQubmV4dCh0aGlzLnZpZXdUeXBlID09PSBWaWV3VHlwZS5PdmVybGF5ICYmIGNvb2tpZXMuaXNDaG9pY2VSZW1lbWJlcmVkKCd5b3V0dWJlLmNvbScpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGlkZU92ZXJsYXkoKSB7XG4gICAgaWYgKCF0aGlzLmFjY2VwdE92ZXJsYXlhYmxlUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzZXMgPSBbJ3Nob3cnXTtcbiAgICB0aGlzLmFjY2VwdE92ZXJsYXlhYmxlUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi5jbGFzc2VzKTtcbiAgICBpZiAoIXRoaXMuYWNjZXB0T3ZlcmFseVJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFjY2VwdE92ZXJhbHlSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzZXMpO1xuICAgIHRoaXMuYWNjZXB0T3ZlcmFseVJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1lbWJlckhhbmRsZXIoKSB7XG4gICAgaWYgKCF0aGlzLmNoclJlbWVtYmVyUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHJlbWVtYmVyID0gdGhpcy5jaHJSZW1lbWJlclJlZi5uYXRpdmVFbGVtZW50LmNoZWNrZWQ7XG4gICAgY29va2llcy5yZW1lbWJlckNob2ljZSgneW91dHViZS5jb20nLCByZW1lbWJlcik7XG4gIH1cblxuICBwcml2YXRlIHNldFZpZGVvQXR0cmlidXRlcyhvcHRpb25zOiBJdFZpZGVvUGxheWVyT3B0aW9ucykge1xuICAgIGlmICghdGhpcy52aWRlb1BsYXllclJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2ID0gdGhpcy52aWRlb1BsYXllclJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgeyBhdXRvcGxheSwgY29udHJvbHMsIGxvb3AsIG11dGVkLCBwb3N0ZXIsIGZsdWlkIH0gPSBvcHRpb25zO1xuXG4gICAgaWYgKGF1dG9wbGF5KSB7XG4gICAgICB2LnNldEF0dHJpYnV0ZSgnYXV0b3BsYXknLCBhdXRvcGxheS50b1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbHMpIHtcbiAgICAgIHYuc2V0QXR0cmlidXRlKCdjb250cm9scycsICcnKTtcbiAgICB9XG5cbiAgICBpZiAobG9vcCkge1xuICAgICAgdi5zZXRBdHRyaWJ1dGUoJ2xvb3AnLCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKG11dGVkKSB7XG4gICAgICB2LnNldEF0dHJpYnV0ZSgnbXV0ZWQnLCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKHBvc3Rlcikge1xuICAgICAgdi5zZXRBdHRyaWJ1dGUoJ3Bvc3RlcicsIHBvc3Rlcik7XG4gICAgfVxuXG4gICAgaWYgKGZsdWlkKSB7XG4gICAgICB2LnNldEF0dHJpYnV0ZSgnZmx1aWQnLCAnJyk7XG4gICAgfVxuXG4gICAgdi5zZXRBdHRyaWJ1dGUoJ3ByZWxvYWQnLCAnbm9uZScpO1xuICAgIHYuc2V0QXR0cmlidXRlKCdwbGF5c2lubGluZScsICcnKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3
|
+
// @ts-ignore
|
|
4
|
+
import { initYoutubePlugin } from 'bootstrap-italia/dist/plugins/util/youtube-video.js';
|
|
5
|
+
import videojs from 'video.js';
|
|
6
|
+
import { VideoPlayerI18nService } from './video-player-i18n.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
const hasYoutubeVideo = (options) => options.source?.type === 'video/youtube';
|
|
9
|
+
export class VideoPlayerConfigService {
|
|
10
|
+
#languageService = inject(VideoPlayerI18nService);
|
|
11
|
+
async configureTech({ tech }) {
|
|
12
|
+
if (tech === 'youtube') {
|
|
13
|
+
initYoutubePlugin(videojs);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
mergeConfig(o) {
|
|
17
|
+
const options = o;
|
|
18
|
+
const captions = options.captions ? options.captions.map(c => ({ ...c, kind: 'captions' })) : [];
|
|
19
|
+
const chapters = options.chapters ? options.chapters.map(c => ({ ...c, kind: 'chapters' })) : [];
|
|
20
|
+
const isYoutubeVideo = hasYoutubeVideo(options);
|
|
21
|
+
const DEFAULT_CONFIG = this.#languageService.getLanguage();
|
|
22
|
+
const tech = isYoutubeVideo ? 'youtube' : 'html5';
|
|
23
|
+
const techOrder = [tech];
|
|
24
|
+
//https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#preload
|
|
25
|
+
const preload = options.preload ?? 'metadata';
|
|
26
|
+
const config = { ...DEFAULT_CONFIG, ...options, preload, techOrder, tracks: [...captions, ...chapters], tech: 'html5' };
|
|
27
|
+
return isYoutubeVideo
|
|
28
|
+
? {
|
|
29
|
+
...config,
|
|
30
|
+
sources: [o.source],
|
|
31
|
+
tech: 'youtube',
|
|
32
|
+
youtube: { ytControls: 2, rel: 0, fs: 0, modestbranding: 1 },
|
|
33
|
+
}
|
|
34
|
+
: config;
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerConfigService, providedIn: 'root' }); }
|
|
38
|
+
}
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerConfigService, decorators: [{
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{ providedIn: 'root' }]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hGLE9BQU8sT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFHckUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUE2QixFQUFFLEVBQUUsQ0FBRSxPQUFxQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEtBQUssZUFBZSxDQUFDO0FBS25JLE1BQU0sT0FBTyx3QkFBd0I7SUFDMUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFM0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBa0I7UUFDMUMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBdUI7UUFDakMsTUFBTSxPQUFPLEdBQUcsQ0FBK0IsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakcsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pHLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLHlFQUF5RTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEgsT0FBTyxjQUFjO1lBQ25CLENBQUMsQ0FBQztnQkFDRSxHQUFHLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLENBQUUsQ0FBK0IsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xELElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUU7YUFDN0Q7WUFDSCxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQzs4R0E1QlUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzsyRkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgaW5pdFlvdXR1YmVQbHVnaW4gfSBmcm9tICdib290c3RyYXAtaXRhbGlhL2Rpc3QvcGx1Z2lucy91dGlsL3lvdXR1YmUtdmlkZW8uanMnO1xuaW1wb3J0IHZpZGVvanMgZnJvbSAndmlkZW8uanMnO1xuaW1wb3J0IHsgVmlkZW9QbGF5ZXJJMThuU2VydmljZSB9IGZyb20gJy4vdmlkZW8tcGxheWVyLWkxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBJdEVtYmVkVmlkZW9QbGF5ZXJPcHRpb25zLCBJdE5hdGl2ZVZpZGVvUGxheWVyT3B0aW9ucywgSXRWaWRlb1BsYXllck9wdGlvbnMgfSBmcm9tICcuL3ZpZGVvLXBsYXllci5tb2RlbCc7XG5cbmNvbnN0IGhhc1lvdXR1YmVWaWRlbyA9IChvcHRpb25zOiBJdFZpZGVvUGxheWVyT3B0aW9ucykgPT4gKG9wdGlvbnMgYXMgSXRFbWJlZFZpZGVvUGxheWVyT3B0aW9ucykuc291cmNlPy50eXBlID09PSAndmlkZW8veW91dHViZSc7XG5cbmV4cG9ydCB0eXBlIFRlY2ggPSAnaHRtbDUnIHwgJ3lvdXR1YmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFZpZGVvUGxheWVyQ29uZmlnU2VydmljZSB7XG4gIHJlYWRvbmx5ICNsYW5ndWFnZVNlcnZpY2UgPSBpbmplY3QoVmlkZW9QbGF5ZXJJMThuU2VydmljZSk7XG5cbiAgYXN5bmMgY29uZmlndXJlVGVjaCh7IHRlY2ggfTogeyB0ZWNoOiBUZWNoIH0pIHtcbiAgICBpZiAodGVjaCA9PT0gJ3lvdXR1YmUnKSB7XG4gICAgICBpbml0WW91dHViZVBsdWdpbih2aWRlb2pzKTtcbiAgICB9XG4gIH1cblxuICBtZXJnZUNvbmZpZyhvOiBJdFZpZGVvUGxheWVyT3B0aW9ucykge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBvIGFzIEl0TmF0aXZlVmlkZW9QbGF5ZXJPcHRpb25zO1xuICAgIGNvbnN0IGNhcHRpb25zID0gb3B0aW9ucy5jYXB0aW9ucyA/IG9wdGlvbnMuY2FwdGlvbnMubWFwKGMgPT4gKHsgLi4uYywga2luZDogJ2NhcHRpb25zJyB9KSkgOiBbXTtcbiAgICBjb25zdCBjaGFwdGVycyA9IG9wdGlvbnMuY2hhcHRlcnMgPyBvcHRpb25zLmNoYXB0ZXJzLm1hcChjID0+ICh7IC4uLmMsIGtpbmQ6ICdjaGFwdGVycycgfSkpIDogW107XG4gICAgY29uc3QgaXNZb3V0dWJlVmlkZW8gPSBoYXNZb3V0dWJlVmlkZW8ob3B0aW9ucyk7XG4gICAgY29uc3QgREVGQVVMVF9DT05GSUcgPSB0aGlzLiNsYW5ndWFnZVNlcnZpY2UuZ2V0TGFuZ3VhZ2UoKTtcbiAgICBjb25zdCB0ZWNoID0gaXNZb3V0dWJlVmlkZW8gPyAneW91dHViZScgOiAnaHRtbDUnO1xuICAgIGNvbnN0IHRlY2hPcmRlciA9IFt0ZWNoXTtcbiAgICAvL2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC92aWRlbyNwcmVsb2FkXG4gICAgY29uc3QgcHJlbG9hZCA9IG9wdGlvbnMucHJlbG9hZCA/PyAnbWV0YWRhdGEnO1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMsIHByZWxvYWQsIHRlY2hPcmRlciwgdHJhY2tzOiBbLi4uY2FwdGlvbnMsIC4uLmNoYXB0ZXJzXSwgdGVjaDogJ2h0bWw1JyB9O1xuICAgIHJldHVybiBpc1lvdXR1YmVWaWRlb1xuICAgICAgPyB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIHNvdXJjZXM6IFsobyBhcyBJdEVtYmVkVmlkZW9QbGF5ZXJPcHRpb25zKS5zb3VyY2VdLFxuICAgICAgICAgIHRlY2g6ICd5b3V0dWJlJyxcbiAgICAgICAgICB5b3V0dWJlOiB7IHl0Q29udHJvbHM6IDIsIHJlbDogMCwgZnM6IDAsIG1vZGVzdGJyYW5kaW5nOiAxIH0sXG4gICAgICAgIH1cbiAgICAgIDogY29uZmlnO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const preferencesMap = { ck3: {} };
|
|
2
|
+
const STORAGE_KEY = 'bs-ck3';
|
|
3
|
+
/*
|
|
4
|
+
Possible choices:
|
|
5
|
+
false => Accept once
|
|
6
|
+
true => Accept always
|
|
7
|
+
*/
|
|
8
|
+
const rememberChoice = (service, remember) => {
|
|
9
|
+
preferencesMap.ck3[service] = remember;
|
|
10
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(preferencesMap.ck3));
|
|
11
|
+
};
|
|
12
|
+
const isChoiceRemembered = (service) => {
|
|
13
|
+
preferencesMap.ck3 = JSON.parse(localStorage.getItem(STORAGE_KEY) || '{}');
|
|
14
|
+
return Boolean(preferencesMap.ck3[service]) || false;
|
|
15
|
+
};
|
|
16
|
+
const clearAllRememberedChoices = () => {
|
|
17
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
18
|
+
};
|
|
19
|
+
const cookies = {
|
|
20
|
+
rememberChoice,
|
|
21
|
+
isChoiceRemembered,
|
|
22
|
+
clearAllRememberedChoices,
|
|
23
|
+
};
|
|
24
|
+
export { cookies };
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLmNvb2tpZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLmNvb2tpZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGNBQWMsR0FJaEIsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7QUFDaEIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBQzdCOzs7O0VBSUU7QUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQWUsRUFBRSxRQUFpQixFQUFFLEVBQUU7SUFDNUQsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxRQUFRLENBQUM7SUFDdkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDN0MsY0FBYyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7SUFDM0UsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHLEdBQUcsRUFBRTtJQUNyQyxZQUFZLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTyxHQUFHO0lBQ2QsY0FBYztJQUNkLGtCQUFrQjtJQUNsQix5QkFBeUI7Q0FDMUIsQ0FBQztBQUVGLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHByZWZlcmVuY2VzTWFwOiB7XG4gIGNrMzoge1xuICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG4gIH07XG59ID0geyBjazM6IHt9IH07XG5jb25zdCBTVE9SQUdFX0tFWSA9ICdicy1jazMnO1xuLypcbiAgUG9zc2libGUgY2hvaWNlczpcbiAgZmFsc2UgPT4gQWNjZXB0IG9uY2VcbiAgdHJ1ZSA9PiBBY2NlcHQgYWx3YXlzXG4qL1xuY29uc3QgcmVtZW1iZXJDaG9pY2UgPSAoc2VydmljZTogc3RyaW5nLCByZW1lbWJlcjogYm9vbGVhbikgPT4ge1xuICBwcmVmZXJlbmNlc01hcC5jazNbc2VydmljZV0gPSByZW1lbWJlcjtcbiAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHByZWZlcmVuY2VzTWFwLmNrMykpO1xufTtcblxuY29uc3QgaXNDaG9pY2VSZW1lbWJlcmVkID0gKHNlcnZpY2U6IHN0cmluZykgPT4ge1xuICBwcmVmZXJlbmNlc01hcC5jazMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSB8fCAne30nKTtcbiAgcmV0dXJuIEJvb2xlYW4ocHJlZmVyZW5jZXNNYXAuY2szW3NlcnZpY2VdKSB8fCBmYWxzZTtcbn07XG5cbmNvbnN0IGNsZWFyQWxsUmVtZW1iZXJlZENob2ljZXMgPSAoKSA9PiB7XG4gIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFNUT1JBR0VfS0VZKTtcbn07XG5cbmNvbnN0IGNvb2tpZXMgPSB7XG4gIHJlbWVtYmVyQ2hvaWNlLFxuICBpc0Nob2ljZVJlbWVtYmVyZWQsXG4gIGNsZWFyQWxsUmVtZW1iZXJlZENob2ljZXMsXG59O1xuXG5leHBvcnQgeyBjb29raWVzIH07XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
// See options: https://videojs.com/guides/options
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWFuZ3VsYXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9jb3JlL3ZpZGVvLXBsYXllci92aWRlby1wbGF5ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0RBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU2VlIG9wdGlvbnM6IGh0dHBzOi8vdmlkZW9qcy5jb20vZ3VpZGVzL29wdGlvbnNcblxuaW50ZXJmYWNlIFNvdXJjZSB7XG4gIHNyYzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBDYXB0aW9uIHtcbiAgbGFuZzogc3RyaW5nO1xuICBzcmM6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZGVmYXVsdD86IHRydWU7XG59XG5cbmludGVyZmFjZSBDaGFwdGVyIHtcbiAgbGFuZzogc3RyaW5nO1xuICBzcmM6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZGVmYXVsdD86IHRydWU7XG59XG5cbnR5cGUgU291cmNlcyA9IEFycmF5PFNvdXJjZT47XG50eXBlIENhcHRpb25zID0gQXJyYXk8Q2FwdGlvbj47XG50eXBlIENoYXB0ZXJzID0gQXJyYXk8Q2hhcHRlcj47XG50eXBlIFByZWxvYWQgPSAnYXV0bycgfCAnbm9uZScgfCAnbWV0YWRhdGEnIHwgJyc7XG50eXBlIEVtYmVkU291cmNlVHlwZSA9ICd2aWRlby95b3V0dWJlJztcbnR5cGUgVEF1dG9wbGF5ID0gJ211dGVkJyB8ICdwbGF5JyB8ICdhbnknO1xuXG50eXBlIEl0TmF0aXZlVmlkZW9QbGF5ZXJPcHRpb25zID0ge1xuICBhdXRvcGxheT86IGJvb2xlYW4gfCBUQXV0b3BsYXk7XG4gIGNvbnRyb2xzPzogYm9vbGVhbjtcbiAgZmx1aWQ/OiBib29sZWFuO1xuICBsb29wPzogYm9vbGVhbjtcbiAgbXV0ZWQ/OiBib29sZWFuO1xuICBwb3N0ZXI/OiBzdHJpbmc7XG4gIHByZWxvYWQ/OiBQcmVsb2FkO1xuICBzb3VyY2VzOiBTb3VyY2VzO1xuICBjYXB0aW9ucz86IENhcHRpb25zO1xuICBjaGFwdGVycz86IENoYXB0ZXJzO1xufTtcblxudHlwZSBJdEVtYmVkVmlkZW9QbGF5ZXJPcHRpb25zID0gT21pdDxJdE5hdGl2ZVZpZGVvUGxheWVyT3B0aW9ucywgJ3NvdXJjZXMnIHwgJ2NhcHRpb25zJyB8ICdjaGFwdGVycyc+ICYge1xuICBzb3VyY2U6IFNvdXJjZSAmIHsgdHlwZTogRW1iZWRTb3VyY2VUeXBlIH07XG59O1xuXG50eXBlIEl0VmlkZW9QbGF5ZXJPcHRpb25zID0gSXROYXRpdmVWaWRlb1BsYXllck9wdGlvbnMgfCBJdEVtYmVkVmlkZW9QbGF5ZXJPcHRpb25zO1xuXG50eXBlIEl0VmlkZW9QbGF5ZXJDb25maWcgPSBJdFZpZGVvUGxheWVyT3B0aW9ucyAmIHsgdGVjaDogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIHsgQ2FwdGlvbiwgQ2hhcHRlciwgSXRFbWJlZFZpZGVvUGxheWVyT3B0aW9ucywgSXROYXRpdmVWaWRlb1BsYXllck9wdGlvbnMsIEl0VmlkZW9QbGF5ZXJDb25maWcsIEl0VmlkZW9QbGF5ZXJPcHRpb25zLCBTb3VyY2UgfTtcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { ItVideoPlayerComponent } from './video-player.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ItVideoPlayerModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItVideoPlayerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: ItVideoPlayerModule, imports: [ItVideoPlayerComponent], exports: [ItVideoPlayerComponent] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItVideoPlayerModule }); }
|
|
8
|
+
}
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItVideoPlayerModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [ItVideoPlayerComponent],
|
|
13
|
+
exports: [ItVideoPlayerComponent],
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1sRSxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQUhwQixzQkFBc0IsYUFDdEIsc0JBQXNCOytHQUVyQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJdFZpZGVvUGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi92aWRlby1wbGF5ZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0l0VmlkZW9QbGF5ZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbSXRWaWRlb1BsYXllckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEl0VmlkZW9QbGF5ZXJNb2R1bGUge31cbiJdfQ==
|