design-angular-kit 1.2.2 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/assets/i18n/en.json +89 -0
  2. package/assets/i18n/it.json +89 -0
  3. package/esm2022/lib/abstracts/abstract-form.component.mjs +19 -6
  4. package/esm2022/lib/components/core/carousel/carousel/carousel.component.mjs +8 -6
  5. package/esm2022/lib/components/core/video-player/video-player-i18n.model.mjs +2 -0
  6. package/esm2022/lib/components/core/video-player/video-player-i18n.service.mjs +130 -0
  7. package/esm2022/lib/components/core/video-player/video-player.component.mjs +301 -0
  8. package/esm2022/lib/components/core/video-player/video-player.config.mjs +43 -0
  9. package/esm2022/lib/components/core/video-player/video-player.cookie.mjs +25 -0
  10. package/esm2022/lib/components/core/video-player/video-player.model.mjs +3 -0
  11. package/esm2022/lib/components/core/video-player/video-player.module.mjs +16 -0
  12. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +144 -78
  13. package/esm2022/lib/components/form/form.module.mjs +6 -2
  14. package/esm2022/lib/components/form/input/input.component.mjs +3 -3
  15. package/esm2022/lib/components/form/search/search.component.mjs +112 -0
  16. package/esm2022/lib/components/navigation/navscroll/navscroll-list-item.component.mjs +2 -3
  17. package/esm2022/lib/design-angular-kit.module.mjs +8 -4
  18. package/esm2022/lib/interfaces/form.mjs +1 -1
  19. package/esm2022/lib/validators/it-validators.mjs +6 -1
  20. package/esm2022/public_api.mjs +7 -3
  21. package/fesm2022/design-angular-kit.mjs +785 -95
  22. package/fesm2022/design-angular-kit.mjs.map +1 -1
  23. package/lib/abstracts/abstract-form.component.d.ts +6 -4
  24. package/lib/components/core/carousel/carousel/carousel.component.d.ts +1 -1
  25. package/lib/components/core/video-player/video-player-i18n.model.d.ts +179 -0
  26. package/lib/components/core/video-player/video-player-i18n.service.d.ts +17 -0
  27. package/lib/components/core/video-player/video-player.component.d.ts +46 -0
  28. package/lib/components/core/video-player/video-player.config.d.ts +68 -0
  29. package/lib/components/core/video-player/video-player.cookie.d.ts +6 -0
  30. package/lib/components/core/video-player/video-player.model.d.ts +44 -0
  31. package/lib/components/core/video-player/video-player.module.d.ts +7 -0
  32. package/lib/components/form/autocomplete/autocomplete.component.d.ts +55 -39
  33. package/lib/components/form/form.module.d.ts +13 -12
  34. package/lib/components/form/search/search.component.d.ts +59 -0
  35. package/lib/design-angular-kit.module.d.ts +18 -17
  36. package/lib/interfaces/form.d.ts +3 -3
  37. package/lib/validators/it-validators.d.ts +1 -0
  38. package/package.json +20 -7
  39. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLWkxOG4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLWkxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sT0FBTyxNQUFNLFVBQVUsQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixVQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFL0MsSUFBSSxDQUFDLE1BQWMsRUFBRSxVQUFzQjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVk7YUFDekIsSUFBSSxDQUNILGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUM5QixHQUFHLENBQUM7WUFDRixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsQ0FBQztTQUNGLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFD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QUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdmlkZW9qcyBmcm9tICd2aWRlby5qcyc7XG5pbXBvcnQgUGxheWVyIGZyb20gJ3ZpZGVvLmpzL2Rpc3QvdHlwZXMvcGxheWVyJztcbmltcG9ydCB7IFZpZGVvSnNUcmFuc2xhdGlvbiwgVmlkZW9QbGF5ZXJUcmFuc2xhdGlvbnMgfSBmcm9tICcuL3ZpZGVvLXBsYXllci1pMThuLm1vZGVsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBWaWRlb1BsYXllckkxOG5TZXJ2aWNlIHtcbiAgcmVhZG9ubHkgI3RyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBpbml0KHBsYXllcjogUGxheWVyLCBkZXN0cm95UmVmOiBEZXN0cm95UmVmKSB7XG4gICAgdGhpcy4jdHJhbnNsYXRlLm9uTGFuZ0NoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKSxcbiAgICAgICAgdGFwKHtcbiAgICAgICAgICBuZXh0OiBlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gZS5sYW5nO1xuICAgICAgICAgICAgdmlkZW9qcy5hZGRMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5nZXRUcmFuc2xhdGlvbnMoKSk7XG4gICAgICAgICAgICBwbGF5ZXIubGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnb25MYW5nQ2hhbmdlJywgeCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldExhbmd1YWdlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy4jdHJhbnNsYXRlLmN1cnJlbnRMYW5nID8/ICdpdCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFuZ3VhZ2VzOiB7IFtsYW5ndWFnZV06IG1hcFRvVmlkZW9Kc1RyYW5zbGF0aW9uKHRoaXMuI3RyYW5zbGF0ZS5pbnN0YW50KCdpdC52aWRlby1wbGF5ZXInKSkgfSxcbiAgICAgIGxhbmd1YWdlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zbGF0aW9ucygpIHtcbiAgICByZXR1cm4gbWFwVG9WaWRlb0pzVHJhbnNsYXRpb24odGhpcy4jdHJhbnNsYXRlLmluc3RhbnQoJ2l0LnZpZGVvLXBsYXllcicpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXBUb1ZpZGVvSnNUcmFuc2xhdGlvbih0cmFuc2xhdGlvbnM6IFZpZGVvUGxheWVyVHJhbnNsYXRpb25zKTogVmlkZW9Kc1RyYW5zbGF0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICAnQXVkaW8gUGxheWVyJzogdHJhbnNsYXRpb25zWydhdWRpby1wbGF5ZXInXSxcbiAgICAnVmlkZW8gUGxheWVyJzogdHJhbnNsYXRpb25zWyd2aWRlby1wbGF5ZXInXSxcbiAgICBQbGF5OiB0cmFuc2xhdGlvbnMucGxheSxcbiAgICBQYXVzZTogdHJhbnNsYXRpb25zLnBhdXNlLFxuICAgIFJlcGxheTogdHJhbnNsYXRpb25zLnJlcGxheSxcbiAgICAnQ3VycmVudCBUaW1lJzogdHJhbnNsYXRpb25zWydjdXJyZW50LXRpbWUnXSxcbiAgICBEdXJhdGlvbjogdHJhbnNsYXRpb25zLmR1cmF0aW9uLFxuICAgICdSZW1haW5pbmcgVGltZSc6IHRyYW5zbGF0aW9uc1sncmVtYWluaW5nLXRpbWUnXSxcbiAgICAnU3RyZWFtIFR5cGUnOiB0cmFuc2xhdGlvbnNbJ3N0cmVhbS10eXBlJ10sXG4gICAgTElWRTogdHJhbnNsYXRpb25zLmxpdmUsXG4gICAgTG9hZGVkOiB0cmFuc2xhdGlvbnMubG9hZGVkLFxuICAgIFByb2dyZXNzOiB0cmFuc2xhdGlvbnMucHJvZ3Jlc3MsXG4gICAgJ1Byb2dyZXNzIEJhcic6IHRyYW5zbGF0aW9uc1sncHJvZ3Jlc3MtYmFyJ10sXG4gICAgJ3Byb2dyZXNzIGJhciB0aW1pbmc6IGN1cnJlbnRUaW1lPXsxfSBkdXJhdGlvbj17Mn0nOiB0cmFuc2xhdGlvbnNbJ3Byb2dyZXNzLWJhci10aW1pbmc6LWN1cnJlbnR0aW1lPXsxfS1kdXJhdGlvbj17Mn0nXSxcbiAgICBGdWxsc2NyZWVuOiB0cmFuc2xhdGlvbnMuZnVsbHNjcmVlbixcbiAgICAnRXhpdCBGdWxsc2NyZWVuJzogdHJhbnNsYXRpb25zWydleGl0LWZ1bGxzY3JlZW4nXSxcbiAgICBNdXRlOiB0cmFuc2xhdGlvbnMubXV0ZSxcbiAgICBVbm11dGU6IHRyYW5zbGF0aW9ucy51bm11dGUsXG4gICAgJ1BsYXliYWNrIFJhdGUnOiB0cmFuc2xhdGlvbnNbJ3BsYXliYWNrLXJhdGUnXSxcbiAgICBTdWJ0aXRsZXM6IHRyYW5zbGF0aW9ucy5zdWJ0aXRsZXMsXG4gICAgJ3N1YnRpdGxlcyBvZmYnOiB0cmFuc2xhdGlvbnNbJ3N1YnRpdGxlcy1vZmYnXSxcbiAgICBDYXB0aW9uczogdHJhbnNsYXRpb25zLmNhcHRpb25zLFxuICAgICdjYXB0aW9ucyBvZmYnOiB0cmFuc2xhdGlvbnNbJ2NhcHRpb25zLW9mZiddLFxuICAgIENoYXB0ZXJzOiB0cmFuc2xhdGlvbnMuY2hhcHRlcnMsXG4gICAgRGVzY3JpcHRpb25zOiB0cmFuc2xhdGlvbnMuZGVzY3JpcHRpb25zLFxuICAgICdkZXNjcmlwdGlvbnMgb2ZmJzogdHJhbnNsYXRpb25zWydkZXNjcmlwdGlvbnMtb2ZmJ10sXG4gICAgJ0F1ZGlvIFRyYWNrJzogdHJhbnNsYXRpb25zWydhdWRpby10cmFjayddLFxuICAgICdWb2x1bWUgTGV2ZWwnOiB0cmFuc2xhdGlvbnNbJ3ZvbHVtZS1sZXZlbCddLFxuICAgICdZb3UgYWJvcnRlZCB0aGUgbWVkaWEgcGxheWJhY2snOiB0cmFuc2xhdGlvbnNbJ3lvdS1hYm9ydGVkLXRoZS1tZWRpYS1wbGF5YmFjayddLFxuICAgICdBIG5ldHdvcmsgZXJyb3IgY2F1c2VkIHRoZSBtZWRpYSBkb3dubG9hZCB0byBmYWlsIHBhcnQtd2F5Lic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ2EtbmV0d29yay1lcnJvci1jYXVzZWQtdGhlLW1lZGlhLWRvd25sb2FkLXRvLWZhaWwtcGFydC13YXkuJ10sXG4gICAgJ1RoZSBtZWRpYSBjb3VsZCBub3QgYmUgbG9hZGVkLCBlaXRoZXIgYmVjYXVzZSB0aGUgc2VydmVyIG9yIG5ldHdvcmsgZmFpbGVkIG9yIGJlY2F1c2UgdGhlIGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkLic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ3RoZS1tZWRpYS1jb3VsZC1ub3QtYmUtbG9hZGVkLC1laXRoZXItYmVjYXVzZS10aGUtc2VydmVyLW9yLW5ldHdvcmstZmFpbGVkLW9yLWJlY2F1c2UtdGhlLWZvcm1hdC1pcy1ub3Qtc3VwcG9ydGVkLiddLFxuICAgICdUaGUgbWVkaWEgcGxheWJhY2sgd2FzIGFib3J0ZWQgZHVlIHRvIGEgY29ycnVwdGlvbiBwcm9ibGVtIG9yIGJlY2F1c2UgdGhlIG1lZGlhIHVzZWQgZmVhdHVyZXMgeW91ciBicm93c2VyIGRpZCBub3Qgc3VwcG9ydC4nOlxuICAgICAgdHJhbnNsYXRpb25zW1xuICAgICAgICAndGhlLW1lZGlhLXBsYXliYWNrLXdhcy1hYm9ydGVkLWR1ZS10by1hLWNvcnJ1cHRpb24tcHJvYmxlbS1vci1iZWNhdXNlLXRoZS1tZWRpYS11c2VkLWZlYXR1cmVzLXlvdXItYnJvd3Nlci1kaWQtbm90LXN1cHBvcnQuJ1xuICAgICAgXSxcbiAgICAnTm8gY29tcGF0aWJsZSBzb3VyY2Ugd2FzIGZvdW5kIGZvciB0aGlzIG1lZGlhLic6IHRyYW5zbGF0aW9uc1snbm8tY29tcGF0aWJsZS1zb3VyY2Utd2FzLWZvdW5kLWZvci10aGlzLW1lZGlhLiddLFxuICAgICdUaGUgbWVkaWEgaXMgZW5jcnlwdGVkIGFuZCB3ZSBkbyBub3QgaGF2ZSB0aGUga2V5cyB0byBkZWNyeXB0IGl0Lic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ3RoZS1tZWRpYS1pcy1lbmNyeXB0ZWQtYW5kLXdlLWRvLW5vdC1oYXZlLXRoZS1rZXlzLXRvLWRlY3J5cHQtaXQuJ10sXG4gICAgJ1BsYXkgVmlkZW8nOiB0cmFuc2xhdGlvbnNbJ3BsYXktdmlkZW8nXSxcbiAgICBDbG9zZTogdHJhbnNsYXRpb25zLmNsb3NlLFxuICAgICdDbG9zZSBNb2RhbCBEaWFsb2cnOiB0cmFuc2xhdGlvbnNbJ2Nsb3NlLW1vZGFsLWRpYWxvZyddLFxuICAgICdNb2RhbCBXaW5kb3cnOiB0cmFuc2xhdGlvbnNbJ21vZGFsLXdpbmRvdyddLFxuICAgICdUaGlzIGlzIGEgbW9kYWwgd2luZG93JzogdHJhbnNsYXRpb25zWyd0aGlzLWlzLWEtbW9kYWwtd2luZG93J10sXG4gICAgJ1RoaXMgbW9kYWwgY2FuIGJlIGNsb3NlZCBieSBwcmVzc2luZyB0aGUgRXNjYXBlIGtleSBvciBhY3RpdmF0aW5nIHRoZSBjbG9zZSBidXR0b24uJzpcbiAgICAgIHRyYW5zbGF0aW9uc1sndGhpcy1tb2RhbC1jYW4tYmUtY2xvc2VkLWJ5LXByZXNzaW5nLXRoZS1lc2NhcGUta2V5LW9yLWFjdGl2YXRpbmctdGhlLWNsb3NlLWJ1dHRvbi4nXSxcbiAgICAnLCBvcGVucyBjYXB0aW9ucyBzZXR0aW5ncyBkaWFsb2cnOiB0cmFuc2xhdGlvbnNbJywtb3BlbnMtY2FwdGlvbnMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgb3BlbnMgc3VidGl0bGVzIHNldHRpbmdzIGRpYWxvZyc6IHRyYW5zbGF0aW9uc1snLC1vcGVucy1zdWJ0aXRsZXMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgb3BlbnMgZGVzY3JpcHRpb25zIHNldHRpbmdzIGRpYWxvZyc6IHRyYW5zbGF0aW9uc1snLC1vcGVucy1kZXNjcmlwdGlvbnMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgc2VsZWN0ZWQnOiB0cmFuc2xhdGlvbnNbJywtc2VsZWN0ZWQnXSxcbiAgICAnY2FwdGlvbnMgc2V0dGluZ3MnOiB0cmFuc2xhdGlvbnNbJ2NhcHRpb25zLXNldHRpbmdzJ10sXG4gICAgJ3N1YnRpdGxlcyBzZXR0aW5ncyc6IHRyYW5zbGF0aW9uc1snc3VidGl0bGVzLXNldHRpbmdzJ10sXG4gICAgJ2Rlc2NyaXB0aW9ucyBzZXR0aW5ncyc6IHRyYW5zbGF0aW9uc1snZGVzY3JpcHRpb25zLXNldHRpbmdzJ10sXG4gICAgVGV4dDogdHJhbnNsYXRpb25zLnRleHQsXG4gICAgV2hpdGU6IHRyYW5zbGF0aW9ucy53aGl0ZSxcbiAgICBCbGFjazogdHJhbnNsYXRpb25zLmJsYWNrLFxuICAgIFJlZDogdHJhbnNsYXRpb25zLnJlZCxcbiAgICBHcmVlbjogdHJhbnNsYXRpb25zLmdyZWVuLFxuICAgIEJsdWU6IHRyYW5zbGF0aW9ucy5ibHVlLFxuICAgIFllbGxvdzogdHJhbnNsYXRpb25zLnllbGxvdyxcbiAgICBNYWdlbnRhOiB0cmFuc2xhdGlvbnMubWFnZW50YSxcbiAgICBDeWFuOiB0cmFuc2xhdGlvbnMuY3lhbixcbiAgICBCYWNrZ3JvdW5kOiB0cmFuc2xhdGlvbnMuYmFja2dyb3VuZCxcbiAgICBXaW5kb3c6IHRyYW5zbGF0aW9ucy53aW5kb3csXG4gICAgVHJhbnNwYXJlbnQ6IHRyYW5zbGF0aW9ucy50cmFuc3BhcmVudCxcbiAgICAnU2VtaS1UcmFuc3BhcmVudCc6IHRyYW5zbGF0aW9uc1snc2VtaS10cmFuc3BhcmVudCddLFxuICAgIE9wYXF1ZTogdHJhbnNsYXRpb25zLm9wYXF1ZSxcbiAgICAnRm9udCBTaXplJzogdHJhbnNsYXRpb25zWydmb250LXNpemUnXSxcbiAgICAnVGV4dCBFZGdlIFN0eWxlJzogdHJhbnNsYXRpb25zWyd0ZXh0LWVkZ2Utc3R5bGUnXSxcbiAgICBOb25lOiB0cmFuc2xhdGlvbnMubm9uZSxcbiAgICBVbmlmb3JtOiB0cmFuc2xhdGlvbnMudW5pZm9ybSxcbiAgICAnRHJvcCBzaGFkb3cnOiB0cmFuc2xhdGlvbnNbJ2Ryb3Atc2hhZG93J10sXG4gICAgJ0ZvbnQgRmFtaWx5JzogdHJhbnNsYXRpb25zWydmb250LWZhbWlseSddLFxuICAgICdQcm9wb3J0aW9uYWwgU2Fucy1TZXJpZic6IHRyYW5zbGF0aW9uc1sncHJvcG9ydGlvbmFsLXNhbnMtc2VyaWYnXSxcbiAgICAnTW9ub3NwYWNlIFNhbnMtU2VyaWYnOiB0cmFuc2xhdGlvbnNbJ21vbm9zcGFjZS1zYW5zLXNlcmlmJ10sXG4gICAgJ1Byb3BvcnRpb25hbCBTZXJpZic6IHRyYW5zbGF0aW9uc1sncHJvcG9ydGlvbmFsLXNlcmlmJ10sXG4gICAgJ01vbm9zcGFjZSBTZXJpZic6IHRyYW5zbGF0aW9uc1snbW9ub3NwYWNlLXNlcmlmJ10sXG4gICAgJ1NtYWxsIENhcHMnOiB0cmFuc2xhdGlvbnNbJ3NtYWxsLWNhcHMnXSxcbiAgICBSZXNldDogdHJhbnNsYXRpb25zLnJlc2V0LFxuICAgICdyZXN0b3JlIGFsbCBzZXR0aW5ncyB0byB0aGUgZGVmYXVsdCB2YWx1ZXMnOiB0cmFuc2xhdGlvbnNbJ3Jlc3RvcmUtYWxsLXNldHRpbmdzLXRvLXRoZS1kZWZhdWx0LXZhbHVlcyddLFxuICAgIERvbmU6IHRyYW5zbGF0aW9ucy5kb25lLFxuICAgICdDYXB0aW9uIFNldHRpbmdzIERpYWxvZyc6IHRyYW5zbGF0aW9uc1snY2FwdGlvbi1zZXR0aW5ncy1kaWFsb2cnXSxcbiAgICAnQmVnaW5uaW5nIG9mIGRpYWxvZyB3aW5kb3cuIEVzY2FwZSB3aWxsIGNhbmNlbCBhbmQgY2xvc2UgdGhlIHdpbmRvdy4nOlxuICAgICAgdHJhbnNsYXRpb25zWydiZWdpbm5pbmctb2YtZGlhbG9nLXdpbmRvdy4tZXNjYXBlLXdpbGwtY2FuY2VsLWFuZC1jbG9zZS10aGUtd2luZG93LiddLFxuICAgICdFbmQgb2YgZGlhbG9nIHdpbmRvdy4nOiB0cmFuc2xhdGlvbnNbJ2VuZC1vZi1kaWFsb2ctd2luZG93LiddLFxuICAgICd7MX0gaXMgbG9hZGluZy4nOiB0cmFuc2xhdGlvbnNbJ3sxfS1pcy1sb2FkaW5nLiddLFxuICAgICdFeGl0IFBpY3R1cmUtaW4tUGljdHVyZSc6IHRyYW5zbGF0aW9uc1snZXhpdC1waWN0dXJlLWluLXBpY3R1cmUnXSxcbiAgICAnUGljdHVyZS1pbi1QaWN0dXJlJzogdHJhbnNsYXRpb25zWydwaWN0dXJlLWluLXBpY3R1cmUnXSxcbiAgICBDb2xvcjogdHJhbnNsYXRpb25zLmNvbG9yLFxuICAgIE9wYWNpdHk6IHRyYW5zbGF0aW9ucy5vcGFjaXR5LFxuICAgICdUZXh0IEJhY2tncm91bmQnOiB0cmFuc2xhdGlvbnNbJ3RleHQtYmFja2dyb3VuZCddLFxuICAgICdDYXB0aW9uIEFyZWEgQmFja2dyb3VuZCc6IHRyYW5zbGF0aW9uc1snY2FwdGlvbi1hcmVhLWJhY2tncm91bmQnXSxcbiAgICAnU2tpcCBmb3J3YXJkIHsxfSBzZWNvbmRzJzogdHJhbnNsYXRpb25zWydza2lwLWZvcndhcmQtezF9LXNlY29uZHMnXSxcbiAgICAnU2tpcCBiYWNrd2FyZCB7MX0gc2Vjb25kcyc6IHRyYW5zbGF0aW9uc1snc2tpcC1iYWNrd2FyZC17MX0tc2Vjb25kcyddLFxuICB9O1xufVxuIl19
@@ -0,0 +1,301 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { afterNextRender, ChangeDetectionStrategy, Component, DestroyRef, inject, Injector, Input, NgZone, signal, ViewChild, ViewEncapsulation, } from '@angular/core';
3
+ import { toObservable } from '@angular/core/rxjs-interop';
4
+ import { delay } 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
+ constructor(config) {
23
+ super();
24
+ this.config = config;
25
+ this.player = null;
26
+ this.viewTypes = ViewType;
27
+ this.viewType = signal(undefined);
28
+ this.cookieAccepted = signal(false);
29
+ this.i18nService = inject(VideoPlayerI18nService);
30
+ this.#destroyRef = inject(DestroyRef);
31
+ this.ngZone = inject(NgZone);
32
+ this.injector = inject(Injector);
33
+ afterNextRender(() => {
34
+ if (this.viewType() === ViewType.Overlay && cookies.isChoiceRemembered('youtube.com')) {
35
+ this.hideOverlay();
36
+ }
37
+ });
38
+ this.#destroyRef.onDestroy(() => this.player?.dispose());
39
+ }
40
+ async ngOnInit() {
41
+ const config = this.config.mergeConfig(this.options);
42
+ this.setViewType(config);
43
+ // Avoid running change detections while the script is being loaded.
44
+ await this.ngZone.runOutsideAngular(() => this.config.configureTech(config));
45
+ if (!this.videoPlayerRef) {
46
+ // Note: No need to pipe with `takeUntilDestroyed`; `toObservable` is
47
+ // completed by Angular when the `DestroyRef` from the injector is destroyed.
48
+ toObservable(this.cookieAccepted, { injector: this.injector })
49
+ .pipe(delay(0))
50
+ .subscribe(value => {
51
+ if (value && !this.player) {
52
+ this.initVideoPlayer();
53
+ }
54
+ });
55
+ return;
56
+ }
57
+ this.initVideoPlayer();
58
+ }
59
+ acceptCookieHandler() {
60
+ this.rememberHandler();
61
+ this.hideOverlay();
62
+ this.cookieAccepted.set(true);
63
+ }
64
+ initVideoPlayer() {
65
+ const config = this.config.mergeConfig(this.options);
66
+ this.setVideoAttributes(config);
67
+ this.setVideoPlayer();
68
+ }
69
+ setVideoPlayer() {
70
+ const config = this.config.mergeConfig(this.options);
71
+ const onPlayerReadyCb = () => {
72
+ if (!this.player) {
73
+ return;
74
+ }
75
+ this.i18nService.init(this.player, this.#destroyRef);
76
+ };
77
+ const element = this.videoPlayerRef?.nativeElement;
78
+ if (!element) {
79
+ throw Error('videoPlayerRef is undefined');
80
+ }
81
+ this.player = this.ngZone.runOutsideAngular(() => videojs(element, config, onPlayerReadyCb));
82
+ }
83
+ setViewType(config) {
84
+ this.viewType.set(config.tech === 'youtube' ? ViewType.Overlay : ViewType.Default);
85
+ this.cookieAccepted.set(this.viewType() === ViewType.Overlay && cookies.isChoiceRemembered('youtube.com'));
86
+ }
87
+ hideOverlay() {
88
+ if (!this.acceptOverlayableRef) {
89
+ return;
90
+ }
91
+ const classes = ['show'];
92
+ this.acceptOverlayableRef.nativeElement.classList.remove(...classes);
93
+ if (!this.acceptOveralyRef) {
94
+ return;
95
+ }
96
+ this.acceptOveralyRef.nativeElement.classList.remove(...classes);
97
+ this.acceptOveralyRef.nativeElement.setAttribute('aria-hidden', 'true');
98
+ }
99
+ rememberHandler() {
100
+ if (!this.chrRememberRef) {
101
+ return;
102
+ }
103
+ const remember = this.chrRememberRef.nativeElement.checked;
104
+ cookies.rememberChoice('youtube.com', remember);
105
+ }
106
+ setVideoAttributes(options) {
107
+ if (!this.videoPlayerRef) {
108
+ return;
109
+ }
110
+ const v = this.videoPlayerRef.nativeElement;
111
+ const { autoplay, controls, loop, muted, poster, fluid } = options;
112
+ if (autoplay) {
113
+ v.setAttribute('autoplay', autoplay.toString());
114
+ }
115
+ if (controls) {
116
+ v.setAttribute('controls', '');
117
+ }
118
+ if (loop) {
119
+ v.setAttribute('loop', '');
120
+ }
121
+ if (muted) {
122
+ v.setAttribute('muted', '');
123
+ }
124
+ if (poster) {
125
+ v.setAttribute('poster', poster);
126
+ }
127
+ if (fluid) {
128
+ v.setAttribute('fluid', '');
129
+ }
130
+ v.setAttribute('preload', 'none');
131
+ v.setAttribute('playsinline', '');
132
+ }
133
+ 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 }); }
134
+ 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()) {
135
+ @case (viewTypes.Default) {
136
+ <div class="row">
137
+ <ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
138
+ <ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
139
+ </div>
140
+ }
141
+ @case (viewTypes.Overlay) {
142
+ <div #acceptOverlayable class="acceptoverlayable show">
143
+ <div #acceptOveraly class="acceptoverlay acceptoverlay-primary fade show">
144
+ <div class="acceptoverlay-inner">
145
+ <div class="acceptoverlay-icon">
146
+ <svg class="icon icon-xl"><use href="/bootstrap-italia/dist/svg/sprites.svg#it-video"></use></svg>
147
+ </div>
148
+ <p>
149
+ Accetta i cookie di YouTube per vedere il video. Puoi gestire le preferenze nella
150
+ <a href="#" class="text-white">cookie policy</a>.
151
+ </p>
152
+ <div class="acceptoverlay-buttons bg-dark">
153
+ <button type="button" class="btn btn-primary" (click)="acceptCookieHandler()">Accetta</button>
154
+ <div class="form-check">
155
+ <input id="chk-remember{{ id }}" type="checkbox" #chkRemember />
156
+ <label for="chk-remember{{ id }}">Ricorda per tutti i video</label>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ @if (cookieAccepted()) {
162
+ <div>
163
+ <ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
164
+ <ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
165
+ </div>
166
+ }
167
+ </div>
168
+ }
169
+ @default {
170
+ <h1>No video provider</h1>
171
+ }
172
+ }
173
+ <ng-template #videoTemplate>
174
+ <div>
175
+ <video #videoPlayer class="video-js vjs-theme-bootstrap-italia vjs-fluid vjs-big-play-centered"></video>
176
+ </div>
177
+ </ng-template>
178
+
179
+ <ng-template #transcriptionTemplate>
180
+ <div class="vjs-transcription accordion">
181
+ <div class="accordion-item">
182
+ <h2 class="accordion-header " id="transcription-{{ id }}-head">
183
+ <button
184
+ class="accordion-button collapsed"
185
+ type="button"
186
+ data-bs-toggle="collapse"
187
+ [attr.data-bs-target]="'#transcription-' + id"
188
+ [attr.aria-controls]="'transcription-' + id"
189
+ aria-expanded="true">
190
+ <ng-content select="[transcriptionTitle]">Trascrizione</ng-content>
191
+ </button>
192
+ </h2>
193
+ <div
194
+ id="transcription-{{ id }}"
195
+ class="accordion-collapse collapse"
196
+ role="region"
197
+ [attr.aria-labelledby]="'transcription-' + id + '-head'">
198
+ <div class="accordion-body">
199
+ <ng-content select="[transcriptionText]">-</ng-content>
200
+ </div>
201
+ </div>
202
+ </div>
203
+ </div>
204
+ </ng-template> `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
205
+ }
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ItVideoPlayerComponent, decorators: [{
207
+ type: Component,
208
+ args: [{
209
+ standalone: true,
210
+ selector: 'it-video-player',
211
+ template: `@switch (viewType()) {
212
+ @case (viewTypes.Default) {
213
+ <div class="row">
214
+ <ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
215
+ <ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
216
+ </div>
217
+ }
218
+ @case (viewTypes.Overlay) {
219
+ <div #acceptOverlayable class="acceptoverlayable show">
220
+ <div #acceptOveraly class="acceptoverlay acceptoverlay-primary fade show">
221
+ <div class="acceptoverlay-inner">
222
+ <div class="acceptoverlay-icon">
223
+ <svg class="icon icon-xl"><use href="/bootstrap-italia/dist/svg/sprites.svg#it-video"></use></svg>
224
+ </div>
225
+ <p>
226
+ Accetta i cookie di YouTube per vedere il video. Puoi gestire le preferenze nella
227
+ <a href="#" class="text-white">cookie policy</a>.
228
+ </p>
229
+ <div class="acceptoverlay-buttons bg-dark">
230
+ <button type="button" class="btn btn-primary" (click)="acceptCookieHandler()">Accetta</button>
231
+ <div class="form-check">
232
+ <input id="chk-remember{{ id }}" type="checkbox" #chkRemember />
233
+ <label for="chk-remember{{ id }}">Ricorda per tutti i video</label>
234
+ </div>
235
+ </div>
236
+ </div>
237
+ </div>
238
+ @if (cookieAccepted()) {
239
+ <div>
240
+ <ng-container *ngTemplateOutlet="videoTemplate"></ng-container>
241
+ <ng-container *ngTemplateOutlet="transcriptionTemplate"></ng-container>
242
+ </div>
243
+ }
244
+ </div>
245
+ }
246
+ @default {
247
+ <h1>No video provider</h1>
248
+ }
249
+ }
250
+ <ng-template #videoTemplate>
251
+ <div>
252
+ <video #videoPlayer class="video-js vjs-theme-bootstrap-italia vjs-fluid vjs-big-play-centered"></video>
253
+ </div>
254
+ </ng-template>
255
+
256
+ <ng-template #transcriptionTemplate>
257
+ <div class="vjs-transcription accordion">
258
+ <div class="accordion-item">
259
+ <h2 class="accordion-header " id="transcription-{{ id }}-head">
260
+ <button
261
+ class="accordion-button collapsed"
262
+ type="button"
263
+ data-bs-toggle="collapse"
264
+ [attr.data-bs-target]="'#transcription-' + id"
265
+ [attr.aria-controls]="'transcription-' + id"
266
+ aria-expanded="true">
267
+ <ng-content select="[transcriptionTitle]">Trascrizione</ng-content>
268
+ </button>
269
+ </h2>
270
+ <div
271
+ id="transcription-{{ id }}"
272
+ class="accordion-collapse collapse"
273
+ role="region"
274
+ [attr.aria-labelledby]="'transcription-' + id + '-head'">
275
+ <div class="accordion-body">
276
+ <ng-content select="[transcriptionText]">-</ng-content>
277
+ </div>
278
+ </div>
279
+ </div>
280
+ </div>
281
+ </ng-template> `,
282
+ imports: [NgTemplateOutlet],
283
+ encapsulation: ViewEncapsulation.None,
284
+ changeDetection: ChangeDetectionStrategy.OnPush,
285
+ }]
286
+ }], ctorParameters: () => [{ type: i1.VideoPlayerConfigService }], propDecorators: { options: [{
287
+ type: Input
288
+ }], videoPlayerRef: [{
289
+ type: ViewChild,
290
+ args: ['videoPlayer', { static: false }]
291
+ }], acceptOveralyRef: [{
292
+ type: ViewChild,
293
+ args: ['acceptOveraly', { static: false }]
294
+ }], acceptOverlayableRef: [{
295
+ type: ViewChild,
296
+ args: ['acceptOverlayable', { static: false }]
297
+ }], chrRememberRef: [{
298
+ type: ViewChild,
299
+ args: ['chkRemember', { static: false }]
300
+ }] } });
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFHL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFHaEQsSUFBSyxRQUdKO0FBSEQsV0FBSyxRQUFRO0lBQ1gsK0JBQW1CLENBQUE7SUFDbkIsK0JBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUhJLFFBQVEsS0FBUixRQUFRLFFBR1o7QUFFRDs7O0dBR0c7QUErRUgsTUFBTSxPQUFPLHNCQUF1QixTQUFRLG1CQUFtQjtJQXdCcEQsV0FBVyxDQUFzQjtJQUsxQyxZQUFvQixNQUFnQztRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQURVLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBZnBELFdBQU0sR0FB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QWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB2aWRlb2pzIGZyb20gJ3ZpZGVvLmpzJztcbmltcG9ydCB0eXBlIFBsYXllciBmcm9tICd2aWRlby5qcy9kaXN0L3R5cGVzL3BsYXllcic7XG5cbmltcG9ydCB7IEl0QWJzdHJhY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9hYnN0cmFjdHMvYWJzdHJhY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFZpZGVvUGxheWVySTE4blNlcnZpY2UgfSBmcm9tICcuL3ZpZGVvLXBsYXllci1pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGVjaCwgVmlkZW9QbGF5ZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi92aWRlby1wbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IGNvb2tpZXMgfSBmcm9tICcuL3ZpZGVvLXBsYXllci5jb29raWUnO1xuaW1wb3J0IHsgSXRWaWRlb1BsYXllckNvbmZpZywgSXRWaWRlb1BsYXllck9wdGlvbnMgfSBmcm9tICcuL3ZpZGVvLXBsYXllci5tb2RlbCc7XG5cbmVudW0gVmlld1R5cGUge1xuICBEZWZhdWx0ID0gJ0RFRkFVTFQnLFxuICBPdmVybGF5ID0gJ09WRVJMQVknLFxufVxuXG4vKipcbiAqIFZpZGVvIFBsYXllclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudCB0aGF0IGFsbG93cyBwbGF5aW5nIGEgdmlkZW8uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2l0LXZpZGVvLXBsYXllcicsXG4gIHRlbXBsYXRlOiBgQHN3aXRjaCAodmlld1R5cGUoKSkge1xuICAgICAgQGNhc2UgKHZpZXdUeXBlcy5EZWZhdWx0KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidmlkZW9UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmFuc2NyaXB0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAY2FzZSAodmlld1R5cGVzLk92ZXJsYXkpIHtcbiAgICAgICAgPGRpdiAjYWNjZXB0T3ZlcmxheWFibGUgY2xhc3M9XCJhY2NlcHRvdmVybGF5YWJsZSBzaG93XCI+XG4gICAgICAgICAgPGRpdiAjYWNjZXB0T3ZlcmFseSBjbGFzcz1cImFjY2VwdG92ZXJsYXkgYWNjZXB0b3ZlcmxheS1wcmltYXJ5IGZhZGUgc2hvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjY2VwdG92ZXJsYXktaW5uZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjY2VwdG92ZXJsYXktaWNvblwiPlxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJpY29uIGljb24teGxcIj48dXNlIGhyZWY9XCIvYm9vdHN0cmFwLWl0YWxpYS9kaXN0L3N2Zy9zcHJpdGVzLnN2ZyNpdC12aWRlb1wiPjwvdXNlPjwvc3ZnPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgQWNjZXR0YSBpIGNvb2tpZSBkaSBZb3VUdWJlIHBlciB2ZWRlcmUgaWwgdmlkZW8uIFB1b2kgZ2VzdGlyZSBsZSBwcmVmZXJlbnplIG5lbGxhXG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInRleHQtd2hpdGVcIj5jb29raWUgcG9saWN5PC9hPi5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWNjZXB0b3ZlcmxheS1idXR0b25zIGJnLWRhcmtcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJhY2NlcHRDb29raWVIYW5kbGVyKClcIj5BY2NldHRhPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImNoay1yZW1lbWJlcnt7IGlkIH19XCIgdHlwZT1cImNoZWNrYm94XCIgI2Noa1JlbWVtYmVyIC8+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2hrLXJlbWVtYmVye3sgaWQgfX1cIj5SaWNvcmRhIHBlciB0dXR0aSBpIHZpZGVvPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKGNvb2tpZUFjY2VwdGVkKCkpIHtcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2aWRlb1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmFuc2NyaXB0aW9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZGVmYXVsdCB7XG4gICAgICAgIDxoMT5ObyB2aWRlbyBwcm92aWRlcjwvaDE+XG4gICAgICB9XG4gICAgfVxuICAgIDxuZy10ZW1wbGF0ZSAjdmlkZW9UZW1wbGF0ZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDx2aWRlbyAjdmlkZW9QbGF5ZXIgY2xhc3M9XCJ2aWRlby1qcyB2anMtdGhlbWUtYm9vdHN0cmFwLWl0YWxpYSB2anMtZmx1aWQgdmpzLWJpZy1wbGF5LWNlbnRlcmVkXCI+PC92aWRlbz5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI3RyYW5zY3JpcHRpb25UZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2anMtdHJhbnNjcmlwdGlvbiBhY2NvcmRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjY29yZGlvbi1pdGVtXCI+XG4gICAgICAgICAgPGgyIGNsYXNzPVwiYWNjb3JkaW9uLWhlYWRlciBcIiBpZD1cInRyYW5zY3JpcHRpb24te3sgaWQgfX0taGVhZFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImFjY29yZGlvbi1idXR0b24gY29sbGFwc2VkXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIGRhdGEtYnMtdG9nZ2xlPVwiY29sbGFwc2VcIlxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLWJzLXRhcmdldF09XCInI3RyYW5zY3JpcHRpb24tJyArIGlkXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCIndHJhbnNjcmlwdGlvbi0nICsgaWRcIlxuICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdHJhbnNjcmlwdGlvblRpdGxlXVwiPlRyYXNjcml6aW9uZTwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgaWQ9XCJ0cmFuc2NyaXB0aW9uLXt7IGlkIH19XCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWNjb3JkaW9uLWNvbGxhcHNlIGNvbGxhcHNlXCJcbiAgICAgICAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0cmFuc2NyaXB0aW9uLScgKyBpZCArICctaGVhZCdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY2NvcmRpb24tYm9keVwiPlxuICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdHJhbnNjcmlwdGlvblRleHRdXCI+LTwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+IGAsXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEl0VmlkZW9QbGF5ZXJDb21wb25lbnQgZXh0ZW5kcyBJdEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHZpZGVvIHBsYXllciBjb25maWd1cmF0aW9uXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25zITogSXRWaWRlb1BsYXllck9wdGlvbnM7XG5cbiAgQFZpZXdDaGlsZCgndmlkZW9QbGF5ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgdmlkZW9QbGF5ZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxWaWRlb0VsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2FjY2VwdE92ZXJhbHknLCB7IHN0YXRpYzogZmFsc2UgfSkgYWNjZXB0T3ZlcmFseVJlZj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2FjY2VwdE92ZXJsYXlhYmxlJywgeyBzdGF0aWM6IGZhbHNlIH0pIGFjY2VwdE92ZXJsYXlhYmxlUmVmPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZCgnY2hrUmVtZW1iZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2hyUmVtZW1iZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHBsYXllcjogUGxheWVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcmVhZG9ubHkgdmlld1R5cGVzID0gVmlld1R5cGU7XG5cbiAgcmVhZG9ubHkgdmlld1R5cGUgPSBzaWduYWw8Vmlld1R5cGUgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgY29va2llQWNjZXB0ZWQgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpMThuU2VydmljZSA9IGluamVjdChWaWRlb1BsYXllckkxOG5TZXJ2aWNlKTtcblxuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwcml2YXRlIG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogVmlkZW9QbGF5ZXJDb25maWdTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy52aWV3VHlwZSgpID09PSBWaWV3VHlwZS5PdmVybGF5ICYmIGNvb2tpZXMuaXNDaG9pY2VSZW1lbWJlcmVkKCd5b3V0dWJlLmNvbScpKSB7XG4gICAgICAgIHRoaXMuaGlkZU92ZXJsYXkoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuI2Rlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHRoaXMucGxheWVyPy5kaXNwb3NlKCkpO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcubWVyZ2VDb25maWcodGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLnNldFZpZXdUeXBlKGNvbmZpZyk7XG4gICAgLy8gQXZvaWQgcnVubmluZyBjaGFuZ2UgZGV0ZWN0aW9ucyB3aGlsZSB0aGUgc2NyaXB0IGlzIGJlaW5nIGxvYWRlZC5cbiAgICBhd2FpdCB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmNvbmZpZy5jb25maWd1cmVUZWNoKGNvbmZpZyBhcyB7IHRlY2g6IFRlY2ggfSkpO1xuXG4gICAgaWYgKCF0aGlzLnZpZGVvUGxheWVyUmVmKSB7XG4gICAgICAvLyBOb3RlOiBObyBuZWVkIHRvIHBpcGUgd2l0aCBgdGFrZVVudGlsRGVzdHJveWVkYDsgYHRvT2JzZXJ2YWJsZWAgaXNcbiAgICAgIC8vIGNvbXBsZXRlZCBieSBBbmd1bGFyIHdoZW4gdGhlIGBEZXN0cm95UmVmYCBmcm9tIHRoZSBpbmplY3RvciBpcyBkZXN0cm95ZWQuXG4gICAgICB0b09ic2VydmFibGUodGhpcy5jb29raWVBY2NlcHRlZCwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KVxuICAgICAgICAucGlwZShkZWxheSgwKSlcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHZhbHVlICYmICF0aGlzLnBsYXllcikge1xuICAgICAgICAgICAgdGhpcy5pbml0VmlkZW9QbGF5ZXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pbml0VmlkZW9QbGF5ZXIoKTtcbiAgfVxuXG4gIGFjY2VwdENvb2tpZUhhbmRsZXIoKSB7XG4gICAgdGhpcy5yZW1lbWJlckhhbmRsZXIoKTtcbiAgICB0aGlzLmhpZGVPdmVybGF5KCk7XG4gICAgdGhpcy5jb29raWVBY2NlcHRlZC5zZXQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRWaWRlb1BsYXllcigpIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZy5tZXJnZUNvbmZpZyh0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuc2V0VmlkZW9BdHRyaWJ1dGVzKGNvbmZpZyk7XG4gICAgdGhpcy5zZXRWaWRlb1BsYXllcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRWaWRlb1BsYXllcigpIHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZy5tZXJnZUNvbmZpZyh0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IG9uUGxheWVyUmVhZHlDYiA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5wbGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5pMThuU2VydmljZS5pbml0KHRoaXMucGxheWVyLCB0aGlzLiNkZXN0cm95UmVmKTtcbiAgICB9O1xuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMudmlkZW9QbGF5ZXJSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICB0aHJvdyBFcnJvcigndmlkZW9QbGF5ZXJSZWYgaXMgdW5kZWZpbmVkJyk7XG4gICAgfVxuXG4gICAgdGhpcy5wbGF5ZXIgPSB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB2aWRlb2pzKGVsZW1lbnQsIGNvbmZpZywgb25QbGF5ZXJSZWFkeUNiKSk7XG4gIH1cblxuICBwcml2YXRlIHNldFZpZXdUeXBlKGNvbmZpZzogSXRWaWRlb1BsYXllckNvbmZpZykge1xuICAgIHRoaXMudmlld1R5cGUuc2V0KGNvbmZpZy50ZWNoID09PSAneW91dHViZScgPyBWaWV3VHlwZS5PdmVybGF5IDogVmlld1R5cGUuRGVmYXVsdCk7XG5cbiAgICB0aGlzLmNvb2tpZUFjY2VwdGVkLnNldCh0aGlzLnZpZXdUeXBlKCkgPT09IFZpZXdUeXBlLk92ZXJsYXkgJiYgY29va2llcy5pc0Nob2ljZVJlbWVtYmVyZWQoJ3lvdXR1YmUuY29tJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlT3ZlcmxheSgpIHtcbiAgICBpZiAoIXRoaXMuYWNjZXB0T3ZlcmxheWFibGVSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY2xhc3NlcyA9IFsnc2hvdyddO1xuICAgIHRoaXMuYWNjZXB0T3ZlcmxheWFibGVSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzZXMpO1xuICAgIGlmICghdGhpcy5hY2NlcHRPdmVyYWx5UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYWNjZXB0T3ZlcmFseVJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoLi4uY2xhc3Nlcyk7XG4gICAgdGhpcy5hY2NlcHRPdmVyYWx5UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gIH1cblxuICBwcml2YXRlIHJlbWVtYmVySGFuZGxlcigpIHtcbiAgICBpZiAoIXRoaXMuY2hyUmVtZW1iZXJSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVtZW1iZXIgPSB0aGlzLmNoclJlbWVtYmVyUmVmLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZDtcbiAgICBjb29raWVzLnJlbWVtYmVyQ2hvaWNlKCd5b3V0dWJlLmNvbScsIHJlbWVtYmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmlkZW9BdHRyaWJ1dGVzKG9wdGlvbnM6IEl0VmlkZW9QbGF5ZXJPcHRpb25zKSB7XG4gICAgaWYgKCF0aGlzLnZpZGVvUGxheWVyUmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHYgPSB0aGlzLnZpZGVvUGxheWVyUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCB7IGF1dG9wbGF5LCBjb250cm9scywgbG9vcCwgbXV0ZWQsIHBvc3RlciwgZmx1aWQgfSA9IG9wdGlvbnM7XG5cbiAgICBpZiAoYXV0b3BsYXkpIHtcbiAgICAgIHYuc2V0QXR0cmlidXRlKCdhdXRvcGxheScsIGF1dG9wbGF5LnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmIChjb250cm9scykge1xuICAgICAgdi5zZXRBdHRyaWJ1dGUoJ2NvbnRyb2xzJywgJycpO1xuICAgIH1cblxuICAgIGlmIChsb29wKSB7XG4gICAgICB2LnNldEF0dHJpYnV0ZSgnbG9vcCcsICcnKTtcbiAgICB9XG5cbiAgICBpZiAobXV0ZWQpIHtcbiAgICAgIHYuc2V0QXR0cmlidXRlKCdtdXRlZCcsICcnKTtcbiAgICB9XG5cbiAgICBpZiAocG9zdGVyKSB7XG4gICAgICB2LnNldEF0dHJpYnV0ZSgncG9zdGVyJywgcG9zdGVyKTtcbiAgICB9XG5cbiAgICBpZiAoZmx1aWQpIHtcbiAgICAgIHYuc2V0QXR0cmlidXRlKCdmbHVpZCcsICcnKTtcbiAgICB9XG5cbiAgICB2LnNldEF0dHJpYnV0ZSgncHJlbG9hZCcsICdub25lJyk7XG4gICAgdi5zZXRBdHRyaWJ1dGUoJ3BsYXlzaW5saW5lJywgJycpO1xuICB9XG59XG4iXX0=
@@ -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==