@wizishop/img-manager 15.2.59 → 15.2.61
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 +1 -1
- package/assets/i18n/es.json +1 -1
- package/assets/i18n/fr.json +1 -1
- package/assets/i18n/it.json +1 -1
- package/esm2020/lib/components/images-view/images-actions-handler.mjs +1 -4
- package/esm2020/lib/components/images-view/mosaic-view/img-card/img-card.component.mjs +3 -3
- package/esm2020/lib/components/images-view/table-view/table-view.component.mjs +3 -3
- package/esm2020/lib/components/img-editor/img-editor.component.mjs +7 -44
- package/esm2020/lib/components/img-tabs/img-tabs.component.mjs +3 -12
- package/esm2020/lib/dto/img-manager.dto.mjs +1 -1
- package/esm2020/lib/services/api.service.mjs +1 -1
- package/esm2020/lib/services/img-event.service.mjs +1 -8
- package/esm2020/lib/services/rename-picture.service.mjs +1 -4
- package/esm2020/lib/wz-img-manager.module.mjs +1 -7
- package/fesm2015/wizishop-img-manager.mjs +9 -257
- package/fesm2015/wizishop-img-manager.mjs.map +1 -1
- package/fesm2020/wizishop-img-manager.mjs +9 -256
- package/fesm2020/wizishop-img-manager.mjs.map +1 -1
- package/lib/components/images-view/images-actions-handler.d.ts +0 -1
- package/lib/components/img-editor/img-editor.component.d.ts +1 -8
- package/lib/components/img-tabs/img-tabs.component.d.ts +0 -1
- package/lib/dto/img-manager.dto.d.ts +0 -1
- package/lib/services/api.service.d.ts +0 -1
- package/lib/services/img-event.service.d.ts +0 -3
- package/lib/services/rename-picture.service.d.ts +0 -1
- package/lib/wz-img-manager.module.d.ts +44 -46
- package/package.json +1 -1
- package/wizishop-img-manager-15.2.61.tgz +0 -0
- package/wz-img-manager.scss +2 -183
- package/esm2020/lib/components/img-editor/info-video/info-video.component.mjs +0 -62
- package/esm2020/lib/components/img-editor/show-iframe/show-iframe.component.mjs +0 -54
- package/esm2020/lib/services/video-info.service.mjs +0 -87
- package/lib/components/img-editor/info-video/info-video.component.d.ts +0 -20
- package/lib/components/img-editor/show-iframe/show-iframe.component.d.ts +0 -15
- package/lib/services/video-info.service.d.ts +0 -23
- package/wizishop-img-manager-15.2.59.tgz +0 -0
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { map } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/common/http";
|
|
6
|
-
export class VideoInfoService {
|
|
7
|
-
constructor(http) {
|
|
8
|
-
this.http = http;
|
|
9
|
-
this.YT_API_KEY = '';
|
|
10
|
-
this.YT_API_URL = 'https://www.googleapis.com/youtube/v3/videos';
|
|
11
|
-
}
|
|
12
|
-
getVideoInfo(videoUrl) {
|
|
13
|
-
if (!videoUrl)
|
|
14
|
-
return null;
|
|
15
|
-
if (this.isYouTube(videoUrl)) {
|
|
16
|
-
const id = this.extractYoutubeId(videoUrl);
|
|
17
|
-
return this.getYouTubeInfo(id);
|
|
18
|
-
}
|
|
19
|
-
if (this.isVimeo(videoUrl)) {
|
|
20
|
-
const id = this.extractVimeoId(videoUrl);
|
|
21
|
-
return this.getVimeoInfo(id);
|
|
22
|
-
}
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
isYouTube(url) {
|
|
26
|
-
return url.includes('youtube.com') || url.includes('youtu.be');
|
|
27
|
-
}
|
|
28
|
-
isVimeo(url) {
|
|
29
|
-
return url.includes('vimeo.com');
|
|
30
|
-
}
|
|
31
|
-
extractYoutubeId(url) {
|
|
32
|
-
const regExp = /^.*(youtu.be\/|v=|embed\/)([^#\&\?]*).*/;
|
|
33
|
-
const match = url.match(regExp);
|
|
34
|
-
return match && match[2] ? match[2] : null;
|
|
35
|
-
}
|
|
36
|
-
extractVimeoId(url) {
|
|
37
|
-
const regExp = /vimeo\.com\/(?:video\/)?(\d+)/;
|
|
38
|
-
const match = url.match(regExp);
|
|
39
|
-
return match ? match[1] : null;
|
|
40
|
-
}
|
|
41
|
-
getYouTubeInfo(id) {
|
|
42
|
-
return this.http.get(`${this.YT_API_URL}?id=${id}&part=contentDetails,snippet&key=${this.YT_API_KEY}`)
|
|
43
|
-
.pipe(map(res => {
|
|
44
|
-
const item = res.items?.[0];
|
|
45
|
-
if (!item)
|
|
46
|
-
return null;
|
|
47
|
-
return {
|
|
48
|
-
duration: this.formatYoutubeDuration(item.contentDetails.duration),
|
|
49
|
-
publishDate: this.formatDate(item.snippet.publishedAt)
|
|
50
|
-
};
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
formatYoutubeDuration(duration) {
|
|
54
|
-
const match = duration.match(/PT(\d+M)?(\d+S)?/);
|
|
55
|
-
const minutes = match?.[1] ? parseInt(match[1]) : 0;
|
|
56
|
-
const seconds = match?.[2] ? parseInt(match[2]) : 0;
|
|
57
|
-
return `${minutes} min ${seconds} sec`;
|
|
58
|
-
}
|
|
59
|
-
getVimeoInfo(id) {
|
|
60
|
-
return this.http.get(`https://vimeo.com/api/v2/video/${id}.json`)
|
|
61
|
-
.pipe(map(res => {
|
|
62
|
-
const item = res?.[0];
|
|
63
|
-
if (!item)
|
|
64
|
-
return null;
|
|
65
|
-
return {
|
|
66
|
-
duration: this.formatVimeoDuration(item.duration),
|
|
67
|
-
publishDate: this.formatDate(item.upload_date)
|
|
68
|
-
};
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
formatVimeoDuration(seconds) {
|
|
72
|
-
const min = Math.floor(seconds / 60);
|
|
73
|
-
const sec = seconds % 60;
|
|
74
|
-
return `${min} min ${sec} sec`;
|
|
75
|
-
}
|
|
76
|
-
formatDate(dateStr) {
|
|
77
|
-
const d = new Date(dateStr);
|
|
78
|
-
return d.toLocaleDateString('fr-FR');
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
VideoInfoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: VideoInfoService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
82
|
-
VideoInfoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: VideoInfoService, providedIn: 'root' });
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: VideoInfoService, decorators: [{
|
|
84
|
-
type: Injectable,
|
|
85
|
-
args: [{ providedIn: 'root' }]
|
|
86
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8taW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd3otaW1nLW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy92aWRlby1pbmZvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRzNCLE1BQU0sT0FBTyxnQkFBZ0I7SUFLM0IsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUg1QixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyw4Q0FBOEMsQ0FBQztJQUU3QixDQUFDO0lBRXhDLFlBQVksQ0FBQyxRQUFnQjtRQUMzQixJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzFCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR08sU0FBUyxDQUFDLEdBQVc7UUFDM0IsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLE9BQU8sQ0FBQyxHQUFXO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR08sZ0JBQWdCLENBQUMsR0FBVztRQUNsQyxNQUFNLE1BQU0sR0FBRyx5Q0FBeUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDN0MsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFXO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLCtCQUErQixDQUFDO1FBQy9DLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxjQUFjLENBQUMsRUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsT0FBTyxFQUFFLG9DQUFvQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDeEcsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNSLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV2QixPQUFPO2dCQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7Z0JBQ2xFLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQ3ZELENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVPLHFCQUFxQixDQUFDLFFBQWdCO1FBQzVDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUVqRCxNQUFNLE9BQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBELE9BQU8sR0FBRyxPQUFPLFFBQVEsT0FBTyxNQUFNLENBQUM7SUFDekMsQ0FBQztJQUVPLFlBQVksQ0FBQyxFQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sa0NBQWtDLEVBQUUsT0FBTyxDQUFDO2FBQ25FLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDUixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV2QixPQUFPO2dCQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDakQsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMvQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUFlO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU8sVUFBVSxDQUFDLE9BQWU7UUFDaEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsT0FBTyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7NkdBN0ZVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVmlkZW9JbmZvU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgWVRfQVBJX0tFWSA9ICcnO1xyXG4gIHByaXZhdGUgWVRfQVBJX1VSTCA9ICdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS95b3V0dWJlL3YzL3ZpZGVvcyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cclxuXHJcbiAgZ2V0VmlkZW9JbmZvKHZpZGVvVXJsOiBzdHJpbmcpIHtcclxuICAgIGlmICghdmlkZW9VcmwpIHJldHVybiBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLmlzWW91VHViZSh2aWRlb1VybCkpIHtcclxuICAgICAgY29uc3QgaWQgPSB0aGlzLmV4dHJhY3RZb3V0dWJlSWQodmlkZW9VcmwpO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRZb3VUdWJlSW5mbyhpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNWaW1lbyh2aWRlb1VybCkpIHtcclxuICAgICAgY29uc3QgaWQgPSB0aGlzLmV4dHJhY3RWaW1lb0lkKHZpZGVvVXJsKTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmltZW9JbmZvKGlkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIGlzWW91VHViZSh1cmw6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHVybC5pbmNsdWRlcygneW91dHViZS5jb20nKSB8fCB1cmwuaW5jbHVkZXMoJ3lvdXR1LmJlJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVmltZW8odXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB1cmwuaW5jbHVkZXMoJ3ZpbWVvLmNvbScpO1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFlvdXR1YmVJZCh1cmw6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgcmVnRXhwID0gL14uKih5b3V0dS5iZVxcL3x2PXxlbWJlZFxcLykoW14jXFwmXFw/XSopLiovO1xyXG4gICAgY29uc3QgbWF0Y2ggPSB1cmwubWF0Y2gocmVnRXhwKTtcclxuICAgIHJldHVybiBtYXRjaCAmJiBtYXRjaFsyXSA/IG1hdGNoWzJdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXh0cmFjdFZpbWVvSWQodXJsOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIGNvbnN0IHJlZ0V4cCA9IC92aW1lb1xcLmNvbVxcLyg/OnZpZGVvXFwvKT8oXFxkKykvO1xyXG4gICAgY29uc3QgbWF0Y2ggPSB1cmwubWF0Y2gocmVnRXhwKTtcclxuICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0WW91VHViZUluZm8oaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLllUX0FQSV9VUkx9P2lkPSR7aWR9JnBhcnQ9Y29udGVudERldGFpbHMsc25pcHBldCZrZXk9JHt0aGlzLllUX0FQSV9LRVl9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlcyA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpdGVtID0gcmVzLml0ZW1zPy5bMF07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0pIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiB0aGlzLmZvcm1hdFlvdXR1YmVEdXJhdGlvbihpdGVtLmNvbnRlbnREZXRhaWxzLmR1cmF0aW9uKSxcclxuICAgICAgICAgICAgcHVibGlzaERhdGU6IHRoaXMuZm9ybWF0RGF0ZShpdGVtLnNuaXBwZXQucHVibGlzaGVkQXQpXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFlvdXR1YmVEdXJhdGlvbihkdXJhdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBtYXRjaCA9IGR1cmF0aW9uLm1hdGNoKC9QVChcXGQrTSk/KFxcZCtTKT8vKTtcclxuXHJcbiAgICBjb25zdCBtaW51dGVzID0gbWF0Y2g/LlsxXSA/IHBhcnNlSW50KG1hdGNoWzFdKSA6IDA7XHJcbiAgICBjb25zdCBzZWNvbmRzID0gbWF0Y2g/LlsyXSA/IHBhcnNlSW50KG1hdGNoWzJdKSA6IDA7XHJcblxyXG4gICAgcmV0dXJuIGAke21pbnV0ZXN9IG1pbiAke3NlY29uZHN9IHNlY2A7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFZpbWVvSW5mbyhpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGBodHRwczovL3ZpbWVvLmNvbS9hcGkvdjIvdmlkZW8vJHtpZH0uanNvbmApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXMgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXRlbSA9IHJlcz8uWzBdO1xyXG4gICAgICAgICAgaWYgKCFpdGVtKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5mb3JtYXRWaW1lb0R1cmF0aW9uKGl0ZW0uZHVyYXRpb24pLFxyXG4gICAgICAgICAgICBwdWJsaXNoRGF0ZTogdGhpcy5mb3JtYXREYXRlKGl0ZW0udXBsb2FkX2RhdGUpXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFZpbWVvRHVyYXRpb24oc2Vjb25kczogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBtaW4gPSBNYXRoLmZsb29yKHNlY29uZHMgLyA2MCk7XHJcbiAgICBjb25zdCBzZWMgPSBzZWNvbmRzICUgNjA7XHJcbiAgICByZXR1cm4gYCR7bWlufSBtaW4gJHtzZWN9IHNlY2A7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERhdGUoZGF0ZVN0cjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoZGF0ZVN0cik7XHJcbiAgICByZXR1cm4gZC50b0xvY2FsZURhdGVTdHJpbmcoJ2ZyLUZSJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnInit } from '@angular/core';
|
|
2
|
-
import { VideoInfoService } from "../../../services/video-info.service";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class EditorInfoVideoComponent implements OnInit {
|
|
5
|
-
private videoInfoService;
|
|
6
|
-
videoLink: string;
|
|
7
|
-
videoLinkChange: EventEmitter<string>;
|
|
8
|
-
isVideoModified: boolean;
|
|
9
|
-
isVideoModifiedChange: EventEmitter<boolean>;
|
|
10
|
-
deleteVideo: EventEmitter<void>;
|
|
11
|
-
videoDuration: string;
|
|
12
|
-
videoPublishDate: string;
|
|
13
|
-
constructor(videoInfoService: VideoInfoService);
|
|
14
|
-
ngOnInit(): void;
|
|
15
|
-
onVideoLinkChange(value: string): void;
|
|
16
|
-
loadVideoInfos(): void;
|
|
17
|
-
onDelete(): void;
|
|
18
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EditorInfoVideoComponent, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EditorInfoVideoComponent, "info-video", never, { "videoLink": "videoLink"; "isVideoModified": "isVideoModified"; }, { "videoLinkChange": "videoLinkChange"; "isVideoModifiedChange": "isVideoModifiedChange"; "deleteVideo": "deleteVideo"; }, never, never, false, never>;
|
|
20
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { OnChanges } from '@angular/core';
|
|
2
|
-
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class EditorShowIframeComponent implements OnChanges {
|
|
5
|
-
private sanitizer;
|
|
6
|
-
videoLink: string;
|
|
7
|
-
safeUrl: SafeResourceUrl | null;
|
|
8
|
-
constructor(sanitizer: DomSanitizer);
|
|
9
|
-
ngOnChanges(): void;
|
|
10
|
-
private buildSafeIframeUrl;
|
|
11
|
-
private extractYoutubeId;
|
|
12
|
-
private extractVimeoId;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<EditorShowIframeComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<EditorShowIframeComponent, "show-iframe", never, { "videoLink": "videoLink"; }, {}, never, never, false, never>;
|
|
15
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class VideoInfoService {
|
|
4
|
-
private http;
|
|
5
|
-
private YT_API_KEY;
|
|
6
|
-
private YT_API_URL;
|
|
7
|
-
constructor(http: HttpClient);
|
|
8
|
-
getVideoInfo(videoUrl: string): import("rxjs").Observable<{
|
|
9
|
-
duration: string;
|
|
10
|
-
publishDate: string;
|
|
11
|
-
}>;
|
|
12
|
-
private isYouTube;
|
|
13
|
-
private isVimeo;
|
|
14
|
-
private extractYoutubeId;
|
|
15
|
-
private extractVimeoId;
|
|
16
|
-
private getYouTubeInfo;
|
|
17
|
-
private formatYoutubeDuration;
|
|
18
|
-
private getVimeoInfo;
|
|
19
|
-
private formatVimeoDuration;
|
|
20
|
-
private formatDate;
|
|
21
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<VideoInfoService, never>;
|
|
22
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<VideoInfoService>;
|
|
23
|
-
}
|
|
Binary file
|