design-angular-kit
Version:
Un toolkit Angular conforme alle linee guida di design per i servizi web della PA
43 lines • 7.41 kB
JavaScript
import { inject, Injectable } from '@angular/core';
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
import { initYoutubePlugin } from 'bootstrap-italia/dist/plugins/util/youtube-video.js';
import videojs from 'video.js';
import { VideoPlayerI18nService } from './video-player-i18n.service';
import * as i0 from "@angular/core";
const hasYoutubeVideo = (options) => options.source?.type === 'video/youtube';
export class VideoPlayerConfigService {
#languageService = inject(VideoPlayerI18nService);
async configureTech({ tech }) {
if (tech === 'youtube') {
initYoutubePlugin(videojs);
}
}
mergeConfig(o) {
const options = o;
const captions = options.captions ? options.captions.map(c => ({ ...c, kind: 'captions' })) : [];
const chapters = options.chapters ? options.chapters.map(c => ({ ...c, kind: 'chapters' })) : [];
const isYoutubeVideo = hasYoutubeVideo(options);
const DEFAULT_CONFIG = this.#languageService.getLanguage();
const tech = isYoutubeVideo ? 'youtube' : 'html5';
const techOrder = [tech];
//https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video#preload
const preload = options.preload ?? 'metadata';
const config = { ...DEFAULT_CONFIG, ...options, preload, techOrder, tracks: [...captions, ...chapters], tech: 'html5' };
return isYoutubeVideo
? {
...config,
sources: [o.source],
tech: 'youtube',
youtube: { ytControls: 2, rel: 0, fs: 0, modestbranding: 1 },
}
: config;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerConfigService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerConfigService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hGLE9BQU8sT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFHckUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUE2QixFQUFFLEVBQUUsQ0FBRSxPQUFxQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEtBQUssZUFBZSxDQUFDO0FBS25JLE1BQU0sT0FBTyx3QkFBd0I7SUFDMUIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFM0QsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBa0I7UUFDMUMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBdUI7UUFDakMsTUFBTSxPQUFPLEdBQUcsQ0FBK0IsQ0FBQztRQUNoRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakcsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pHLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLHlFQUF5RTtRQUN6RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUM5QyxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsR0FBRyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEgsT0FBTyxjQUFjO1lBQ25CLENBQUMsQ0FBQztnQkFDRSxHQUFHLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLENBQUUsQ0FBK0IsQ0FBQyxNQUFNLENBQUM7Z0JBQ2xELElBQUksRUFBRSxTQUFTO2dCQUNmLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUU7YUFDN0Q7WUFDSCxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2IsQ0FBQzs4R0E1QlUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FEWCxNQUFNOzsyRkFDbkIsd0JBQXdCO2tCQURwQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgaW5pdFlvdXR1YmVQbHVnaW4gfSBmcm9tICdib290c3RyYXAtaXRhbGlhL2Rpc3QvcGx1Z2lucy91dGlsL3lvdXR1YmUtdmlkZW8uanMnO1xuaW1wb3J0IHZpZGVvanMgZnJvbSAndmlkZW8uanMnO1xuaW1wb3J0IHsgVmlkZW9QbGF5ZXJJMThuU2VydmljZSB9IGZyb20gJy4vdmlkZW8tcGxheWVyLWkxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBJdEVtYmVkVmlkZW9QbGF5ZXJPcHRpb25zLCBJdE5hdGl2ZVZpZGVvUGxheWVyT3B0aW9ucywgSXRWaWRlb1BsYXllck9wdGlvbnMgfSBmcm9tICcuL3ZpZGVvLXBsYXllci5tb2RlbCc7XG5cbmNvbnN0IGhhc1lvdXR1YmVWaWRlbyA9IChvcHRpb25zOiBJdFZpZGVvUGxheWVyT3B0aW9ucykgPT4gKG9wdGlvbnMgYXMgSXRFbWJlZFZpZGVvUGxheWVyT3B0aW9ucykuc291cmNlPy50eXBlID09PSAndmlkZW8veW91dHViZSc7XG5cbmV4cG9ydCB0eXBlIFRlY2ggPSAnaHRtbDUnIHwgJ3lvdXR1YmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFZpZGVvUGxheWVyQ29uZmlnU2VydmljZSB7XG4gIHJlYWRvbmx5ICNsYW5ndWFnZVNlcnZpY2UgPSBpbmplY3QoVmlkZW9QbGF5ZXJJMThuU2VydmljZSk7XG5cbiAgYXN5bmMgY29uZmlndXJlVGVjaCh7IHRlY2ggfTogeyB0ZWNoOiBUZWNoIH0pIHtcbiAgICBpZiAodGVjaCA9PT0gJ3lvdXR1YmUnKSB7XG4gICAgICBpbml0WW91dHViZVBsdWdpbih2aWRlb2pzKTtcbiAgICB9XG4gIH1cblxuICBtZXJnZUNvbmZpZyhvOiBJdFZpZGVvUGxheWVyT3B0aW9ucykge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBvIGFzIEl0TmF0aXZlVmlkZW9QbGF5ZXJPcHRpb25zO1xuICAgIGNvbnN0IGNhcHRpb25zID0gb3B0aW9ucy5jYXB0aW9ucyA/IG9wdGlvbnMuY2FwdGlvbnMubWFwKGMgPT4gKHsgLi4uYywga2luZDogJ2NhcHRpb25zJyB9KSkgOiBbXTtcbiAgICBjb25zdCBjaGFwdGVycyA9IG9wdGlvbnMuY2hhcHRlcnMgPyBvcHRpb25zLmNoYXB0ZXJzLm1hcChjID0+ICh7IC4uLmMsIGtpbmQ6ICdjaGFwdGVycycgfSkpIDogW107XG4gICAgY29uc3QgaXNZb3V0dWJlVmlkZW8gPSBoYXNZb3V0dWJlVmlkZW8ob3B0aW9ucyk7XG4gICAgY29uc3QgREVGQVVMVF9DT05GSUcgPSB0aGlzLiNsYW5ndWFnZVNlcnZpY2UuZ2V0TGFuZ3VhZ2UoKTtcbiAgICBjb25zdCB0ZWNoID0gaXNZb3V0dWJlVmlkZW8gPyAneW91dHViZScgOiAnaHRtbDUnO1xuICAgIGNvbnN0IHRlY2hPcmRlciA9IFt0ZWNoXTtcbiAgICAvL2h0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC92aWRlbyNwcmVsb2FkXG4gICAgY29uc3QgcHJlbG9hZCA9IG9wdGlvbnMucHJlbG9hZCA/PyAnbWV0YWRhdGEnO1xuICAgIGNvbnN0IGNvbmZpZyA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLm9wdGlvbnMsIHByZWxvYWQsIHRlY2hPcmRlciwgdHJhY2tzOiBbLi4uY2FwdGlvbnMsIC4uLmNoYXB0ZXJzXSwgdGVjaDogJ2h0bWw1JyB9O1xuICAgIHJldHVybiBpc1lvdXR1YmVWaWRlb1xuICAgICAgPyB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIHNvdXJjZXM6IFsobyBhcyBJdEVtYmVkVmlkZW9QbGF5ZXJPcHRpb25zKS5zb3VyY2VdLFxuICAgICAgICAgIHRlY2g6ICd5b3V0dWJlJyxcbiAgICAgICAgICB5b3V0dWJlOiB7IHl0Q29udHJvbHM6IDIsIHJlbDogMCwgZnM6IDAsIG1vZGVzdGJyYW5kaW5nOiAxIH0sXG4gICAgICAgIH1cbiAgICAgIDogY29uZmlnO1xuICB9XG59XG4iXX0=