@rocketshow/designer 1.33.0 → 1.35.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/de.json +2 -1
- package/assets/i18n/en.json +2 -1
- package/esm2022/lib/designer.component.mjs +197 -130
- package/esm2022/lib/designer.module.mjs +5 -2
- package/esm2022/lib/dropzone/dropzone.component.mjs +93 -0
- package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +14 -6
- package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +5 -5
- package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +6 -4
- package/esm2022/lib/fixture/fixture.component.mjs +25 -15
- package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +4 -4
- package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +75 -21
- package/esm2022/lib/models/cached-fixture.mjs +1 -1
- package/esm2022/lib/models/fixture-matrix-pixel-group-constraints.mjs +27 -0
- package/esm2022/lib/models/fixture-matrix-pixel-group.mjs +12 -0
- package/esm2022/lib/models/fixture-matrix.mjs +25 -0
- package/esm2022/lib/models/fixture-mode-channel.mjs +26 -0
- package/esm2022/lib/models/fixture-mode.mjs +5 -2
- package/esm2022/lib/models/fixture-physical.mjs +14 -0
- package/esm2022/lib/models/fixture-profile.mjs +16 -1
- package/esm2022/lib/models/fixture.mjs +2 -2
- package/esm2022/lib/models/preset-fixture.mjs +10 -0
- package/esm2022/lib/models/preset.mjs +10 -1
- package/esm2022/lib/models/project.mjs +11 -1
- package/esm2022/lib/preview/models/color-changer-3d.mjs +5 -108
- package/esm2022/lib/preview/models/fixture-3d.mjs +125 -1
- package/esm2022/lib/preview/models/moving-head-3d.mjs +3 -122
- package/esm2022/lib/preview/preview.component.mjs +21 -14
- package/esm2022/lib/services/config.service.mjs +2 -1
- package/esm2022/lib/services/fixture.service.mjs +251 -43
- package/esm2022/lib/services/preset.service.mjs +91 -42
- package/esm2022/lib/services/preview.service.mjs +65 -64
- package/esm2022/lib/services/project-load.service.mjs +64 -4
- package/esm2022/lib/services/project.service.mjs +11 -15
- package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +14 -44
- package/fesm2022/rocketshow-designer.mjs +1336 -791
- package/fesm2022/rocketshow-designer.mjs.map +1 -1
- package/lib/designer.component.d.ts +5 -5
- package/lib/designer.module.d.ts +15 -14
- package/lib/dropzone/dropzone.component.d.ts +24 -0
- package/lib/fixture/fixture.component.d.ts +4 -3
- package/lib/models/cached-fixture.d.ts +1 -0
- package/lib/models/fixture-matrix-pixel-group-constraints.d.ts +8 -0
- package/lib/models/fixture-matrix-pixel-group.d.ts +6 -0
- package/lib/models/fixture-matrix.d.ts +6 -0
- package/lib/models/fixture-mode-channel.d.ts +8 -0
- package/lib/models/fixture-mode.d.ts +3 -1
- package/lib/models/fixture-physical.d.ts +4 -0
- package/lib/models/fixture-profile.d.ts +5 -0
- package/lib/models/preset-fixture.d.ts +5 -0
- package/lib/models/preset.d.ts +2 -0
- package/lib/models/project.d.ts +3 -0
- package/lib/preview/models/color-changer-3d.d.ts +1 -11
- package/lib/preview/models/fixture-3d.d.ts +11 -0
- package/lib/preview/models/moving-head-3d.d.ts +1 -11
- package/lib/services/config.service.d.ts +1 -0
- package/lib/services/fixture.service.d.ts +7 -2
- package/lib/services/preset.service.d.ts +4 -2
- package/lib/services/preview.service.d.ts +2 -4
- package/lib/services/project-load.service.d.ts +5 -1
- package/lib/services/project.service.d.ts +2 -3
- package/lib/services/timeline.service.d.ts +1 -1
- package/lib/timeline/composition-settings/composition-settings.component.d.ts +2 -1
- package/package.json +1 -1
- package/rocketshow-designer-1.35.0.tgz +0 -0
- package/esm2022/lib/models/universe.mjs +0 -11
- package/esm2022/lib/services/universe.service.mjs +0 -23
- package/lib/models/universe.d.ts +0 -8
- package/lib/services/universe.service.d.ts +0 -9
- package/rocketshow-designer-1.33.0.tgz +0 -0
|
@@ -12,6 +12,8 @@ import { ProjectService } from './project.service';
|
|
|
12
12
|
import { SceneService } from './scene.service';
|
|
13
13
|
import { TimelineService } from './timeline.service';
|
|
14
14
|
import { UuidService } from './uuid.service';
|
|
15
|
+
import { PresetFixture } from '../models/preset-fixture';
|
|
16
|
+
import { WarningDialogService } from './warning-dialog.service';
|
|
15
17
|
import * as i0 from "@angular/core";
|
|
16
18
|
import * as i1 from "./project.service";
|
|
17
19
|
import * as i2 from "./preview.service";
|
|
@@ -22,8 +24,9 @@ import * as i6 from "ngx-bootstrap/modal";
|
|
|
22
24
|
import * as i7 from "./uuid.service";
|
|
23
25
|
import * as i8 from "./timeline.service";
|
|
24
26
|
import * as i9 from "@angular/router";
|
|
27
|
+
import * as i10 from "./warning-dialog.service";
|
|
25
28
|
export class ProjectLoadService {
|
|
26
|
-
constructor(projectService, previewService, fixtureService, presetService, sceneService, modalService, uuidService, timelineService, router, activatedRoute) {
|
|
29
|
+
constructor(projectService, previewService, fixtureService, presetService, sceneService, modalService, uuidService, timelineService, router, activatedRoute, warningDialogService) {
|
|
27
30
|
this.projectService = projectService;
|
|
28
31
|
this.previewService = previewService;
|
|
29
32
|
this.fixtureService = fixtureService;
|
|
@@ -34,8 +37,59 @@ export class ProjectLoadService {
|
|
|
34
37
|
this.timelineService = timelineService;
|
|
35
38
|
this.router = router;
|
|
36
39
|
this.activatedRoute = activatedRoute;
|
|
40
|
+
this.warningDialogService = warningDialogService;
|
|
41
|
+
}
|
|
42
|
+
migrateToVersion2() {
|
|
43
|
+
for (let fixture of this.projectService.project.fixtures) {
|
|
44
|
+
const pixelKeys = this.fixtureService.fixtureGetUniquePixelKeys(fixture);
|
|
45
|
+
if (pixelKeys.length > 0) {
|
|
46
|
+
for (let pixelKey of pixelKeys) {
|
|
47
|
+
const projectFixture = new PresetFixture();
|
|
48
|
+
projectFixture.fixtureUuid = fixture.uuid;
|
|
49
|
+
projectFixture.pixelKey = pixelKey;
|
|
50
|
+
this.projectService.project.presetFixtures.push(projectFixture);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const projectFixture = new PresetFixture();
|
|
55
|
+
projectFixture.fixtureUuid = fixture.uuid;
|
|
56
|
+
this.projectService.project.presetFixtures.push(projectFixture);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
for (let preset of this.projectService.project.presets) {
|
|
60
|
+
for (let fixtureUuid of preset.fixtureUuids) {
|
|
61
|
+
const fixture = this.fixtureService.getFixtureByUuid(fixtureUuid);
|
|
62
|
+
const pixelKeys = this.fixtureService.fixtureGetUniquePixelKeys(fixture);
|
|
63
|
+
if (pixelKeys.length > 0) {
|
|
64
|
+
for (let pixelKey of pixelKeys) {
|
|
65
|
+
const presetFixture = new PresetFixture();
|
|
66
|
+
presetFixture.fixtureUuid = fixtureUuid;
|
|
67
|
+
presetFixture.pixelKey = pixelKey;
|
|
68
|
+
preset.fixtures.push(presetFixture);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const presetFixture = new PresetFixture();
|
|
73
|
+
presetFixture.fixtureUuid = fixtureUuid;
|
|
74
|
+
preset.fixtures.push(presetFixture);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
this.projectService.project.version = 2;
|
|
79
|
+
}
|
|
80
|
+
migrateFromOldProject() {
|
|
81
|
+
let migrated = false;
|
|
82
|
+
if (!this.projectService.project.version) {
|
|
83
|
+
// Migrate from version 1
|
|
84
|
+
this.migrateToVersion2();
|
|
85
|
+
migrated = true;
|
|
86
|
+
}
|
|
87
|
+
if (migrated) {
|
|
88
|
+
this.warningDialogService.show('designer.project.migrated').subscribe();
|
|
89
|
+
}
|
|
37
90
|
}
|
|
38
91
|
afterLoad() {
|
|
92
|
+
this.migrateFromOldProject();
|
|
39
93
|
this.fixtureService.updateCachedFixtures();
|
|
40
94
|
this.presetService.removeDeletedFixtures();
|
|
41
95
|
this.previewService.updateFixtureSetup();
|
|
@@ -66,6 +120,11 @@ export class ProjectLoadService {
|
|
|
66
120
|
load(id, name, shareToken) {
|
|
67
121
|
const ref = this.modalService.show(WaitDialogComponent, { keyboard: false, ignoreBackdropClick: true });
|
|
68
122
|
return this.projectService.getProject(id, name, shareToken).pipe(map((project) => {
|
|
123
|
+
if (project.version > this.projectService.currentProjectVersion) {
|
|
124
|
+
throw new Error('The project version ' +
|
|
125
|
+
project.version +
|
|
126
|
+
' is created with a newer version of the designer. Please update your Rocket Show version to open this project.');
|
|
127
|
+
}
|
|
69
128
|
this.projectService.project = project;
|
|
70
129
|
this.selectScenesPresetComposition();
|
|
71
130
|
this.afterLoad();
|
|
@@ -96,6 +155,7 @@ export class ProjectLoadService {
|
|
|
96
155
|
// create an empty new project
|
|
97
156
|
const project = new Project();
|
|
98
157
|
project.uuid = this.uuidService.getUuid();
|
|
158
|
+
project.version = this.projectService.currentProjectVersion;
|
|
99
159
|
this.projectService.project = project;
|
|
100
160
|
this.projectService.project.shareToken = this.uuidService.getUuid();
|
|
101
161
|
// Add a default scene and preset
|
|
@@ -137,7 +197,7 @@ export class ProjectLoadService {
|
|
|
137
197
|
this.selectScenesPresetComposition();
|
|
138
198
|
this.afterLoad();
|
|
139
199
|
}
|
|
140
|
-
static { this.ɵfac = function ProjectLoadService_Factory(t) { return new (t || ProjectLoadService)(i0.ɵɵinject(i1.ProjectService), i0.ɵɵinject(i2.PreviewService), i0.ɵɵinject(i3.FixtureService), i0.ɵɵinject(i4.PresetService), i0.ɵɵinject(i5.SceneService), i0.ɵɵinject(i6.BsModalService), i0.ɵɵinject(i7.UuidService), i0.ɵɵinject(i8.TimelineService), i0.ɵɵinject(i9.Router), i0.ɵɵinject(i9.ActivatedRoute)); }; }
|
|
200
|
+
static { this.ɵfac = function ProjectLoadService_Factory(t) { return new (t || ProjectLoadService)(i0.ɵɵinject(i1.ProjectService), i0.ɵɵinject(i2.PreviewService), i0.ɵɵinject(i3.FixtureService), i0.ɵɵinject(i4.PresetService), i0.ɵɵinject(i5.SceneService), i0.ɵɵinject(i6.BsModalService), i0.ɵɵinject(i7.UuidService), i0.ɵɵinject(i8.TimelineService), i0.ɵɵinject(i9.Router), i0.ɵɵinject(i9.ActivatedRoute), i0.ɵɵinject(i10.WarningDialogService)); }; }
|
|
141
201
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProjectLoadService, factory: ProjectLoadService.ɵfac, providedIn: 'root' }); }
|
|
142
202
|
}
|
|
143
203
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProjectLoadService, [{
|
|
@@ -145,5 +205,5 @@ export class ProjectLoadService {
|
|
|
145
205
|
args: [{
|
|
146
206
|
providedIn: 'root',
|
|
147
207
|
}]
|
|
148
|
-
}], () => [{ type: i1.ProjectService }, { type: i2.PreviewService }, { type: i3.FixtureService }, { type: i4.PresetService }, { type: i5.SceneService }, { type: i6.BsModalService }, { type: i7.UuidService }, { type: i8.TimelineService }, { type: i9.Router }, { type: i9.ActivatedRoute }], null); })();
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3NlcnZpY2VzL3Byb2plY3QtbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFLN0MsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGNBQThCLEVBQzlCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLFlB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aUJBQWlCLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsTUFBTSxXQUFXLEdBQVc7WUFDMUIsRUFBRSxFQUFFLEVBQUU7WUFDTixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQy9CLFdBQVc7WUFDWCxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsaURBQWlEO1NBQ2hGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixpQ0FBaUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV0QyxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzttRkFySVUsa0JBQWtCO3VFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNOztpRkFFUCxrQkFBa0I7Y0FIOUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcywgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJlc2V0IH0gZnJvbSAnLi4vbW9kZWxzL3ByZXNldCc7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vbW9kZWxzL3Byb2plY3QnO1xuaW1wb3J0IHsgV2FpdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL3dhaXQtZGlhbG9nL3dhaXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4vZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuL3ByZXNldC5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXZpZXdTZXJ2aWNlIH0gZnJvbSAnLi9wcmV2aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQgeyBTY2VuZVNlcnZpY2UgfSBmcm9tICcuL3NjZW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGltZWxpbmVTZXJ2aWNlIH0gZnJvbSAnLi90aW1lbGluZS5zZXJ2aWNlJztcbmltcG9ydCB7IFV1aWRTZXJ2aWNlIH0gZnJvbSAnLi91dWlkLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdExvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmV2aWV3U2VydmljZTogUHJldmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaXh0dXJlU2VydmljZTogRml4dHVyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NlbmVTZXJ2aWNlOiBTY2VuZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXVpZFNlcnZpY2U6IFV1aWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGltZWxpbmVTZXJ2aWNlOiBUaW1lbGluZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHt9XG5cbiAgcHJpdmF0ZSBhZnRlckxvYWQoKSB7XG4gICAgdGhpcy5maXh0dXJlU2VydmljZS51cGRhdGVDYWNoZWRGaXh0dXJlcygpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5yZW1vdmVEZWxldGVkRml4dHVyZXMoKTtcbiAgICB0aGlzLnByZXZpZXdTZXJ2aWNlLnVwZGF0ZUZpeHR1cmVTZXR1cCgpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5maXh0dXJlU2VsZWN0aW9uQ2hhbmdlZC5uZXh0KCk7XG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLmF1dG9PcGVuRmlyc3RFZmZlY3QoKTtcbiAgICB0aGlzLnByZXZpZXdTZXJ2aWNlLnVwZGF0ZVN0YWdlKCk7XG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKCk7XG4gICAgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0UHJlc2V0RnJvbVNlbGVjdGVkU2NlbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0U2NlbmVzUHJlc2V0Q29tcG9zaXRpb24oKSB7XG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0ID0gdGhpcy5wcmVzZXRTZXJ2aWNlLmdldFByZXNldEJ5VXVpZCh0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2VsZWN0ZWRQcmVzZXRVdWlkKTtcbiAgICB0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lcyA9IFtdO1xuICAgIGlmICh0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2VsZWN0ZWRTY2VuZVV1aWRzKSB7XG4gICAgICBmb3IgKGNvbnN0IHV1aWQgb2YgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNlbGVjdGVkU2NlbmVVdWlkcykge1xuICAgICAgICB0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lcy5wdXNoKHRoaXMuc2NlbmVTZXJ2aWNlLmdldFNjZW5lQnlVdWlkKHV1aWQpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uSW5kZXggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2UuZGVzdHJveVdhdmVTdXJmZXIoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5jb21wb3NpdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QuY29tcG9zaXRpb25zW2ldLnV1aWQgPT09IHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zZWxlY3RlZENvbXBvc2l0aW9uVXVpZCkge1xuICAgICAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RDb21wb3NpdGlvbkluZGV4KGkpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsb2FkKGlkOiBudW1iZXIsIG5hbWU6IHN0cmluZywgc2hhcmVUb2tlbj86IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IHJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coV2FpdERpYWxvZ0NvbXBvbmVudCwgeyBrZXlib2FyZDogZmFsc2UsIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IHRydWUgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5nZXRQcm9qZWN0KGlkLCBuYW1lLCBzaGFyZVRva2VuKS5waXBlKFxuICAgICAgbWFwKChwcm9qZWN0KSA9PiB7XG4gICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdCA9IHByb2plY3Q7XG4gICAgICAgIHRoaXMuc2VsZWN0U2NlbmVzUHJlc2V0Q29tcG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5hZnRlckxvYWQoKTtcblxuICAgICAgICBjb25zdCBxdWVyeVBhcmFtczogUGFyYW1zID0ge1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHRva2VuOiBwcm9qZWN0LnNoYXJlVG9rZW4sXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCAvLyByZW1vdmUgdG8gcmVwbGFjZSBhbGwgcXVlcnkgcGFyYW1zIGJ5IHByb3ZpZGVkXG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIC8vIGhpZGUgdGhlIG1vZGFsIGFnYWluIGJlY2F1c2Ugb2Y6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92YWxvci1zb2Z0d2FyZS9uZ3gtYm9vdHN0cmFwL2lzc3Vlcy8zNzExXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHJlZi5oaWRlKCk7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHJlZi5oaWRlKCk7XG4gICAgICAgIH0sIDUwMCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHJlZi5oaWRlKCk7XG4gICAgICAgIH0sIDE1MDApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmV3KCkge1xuICAgIC8vIGNyZWF0ZSBhbiBlbXB0eSBuZXcgcHJvamVjdFxuICAgIGNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdCgpO1xuICAgIHByb2plY3QudXVpZCA9IHRoaXMudXVpZFNlcnZpY2UuZ2V0VXVpZCgpO1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdCA9IHByb2plY3Q7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNoYXJlVG9rZW4gPSB0aGlzLnV1aWRTZXJ2aWNlLmdldFV1aWQoKTtcblxuICAgIC8vIEFkZCBhIGRlZmF1bHQgc2NlbmUgYW5kIHByZXNldFxuICAgIGNvbnN0IHByZXNldCA9IG5ldyBQcmVzZXQoKTtcbiAgICBwcmVzZXQudXVpZCA9IHRoaXMudXVpZFNlcnZpY2UuZ2V0VXVpZCgpO1xuICAgIHByZXNldC5uYW1lID0gJ05ldyBQcmVzZXQnO1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5wcmVzZXRzLnB1c2gocHJlc2V0KTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0UHJlc2V0KDApO1xuXG4gICAgdGhpcy5zY2VuZVNlcnZpY2UuYWRkU2NlbmUoKTtcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2NlbmVzWzBdLnByZXNldFV1aWRzLnB1c2gocHJlc2V0LnV1aWQpO1xuXG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXZpZXdQcmVzZXQgPSB0cnVlO1xuXG4gICAgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXMgPSBbdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNjZW5lc1swXV07XG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0ID0gdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXNldHNbMF07XG5cbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5zZWxlY3RlZENvbXBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb25JbmRleCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5kZXN0cm95V2F2ZVN1cmZlcigpO1xuXG4gICAgdGhpcy5hZnRlckxvYWQoKTtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7XG4gICAgICBpZDogJycsXG4gICAgICB0b2tlbjogJycsXG4gICAgfTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5hY3RpdmF0ZWRSb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJywgLy8gcmVtb3ZlIHRvIHJlcGxhY2UgYWxsIHF1ZXJ5IHBhcmFtcyBieSBwcm92aWRlZFxuICAgIH0pO1xuICB9XG5cbiAgdGVtcGxhdGUoKSB7XG4gICAgLy8gbG9hZCB0aGUgdGVtcGxhdGUgcHJvamVjdCB3aXRoIGlkIDFcbiAgICB0aGlzLmxvYWQoMSwgbnVsbCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5pZCA9IHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgfVxuXG4gIGltcG9ydChkYXRhOiBzdHJpbmcpIHtcbiAgICAvLyBpbXBvcnQgYSBwcm9qZWN0IGZyb20gYSBzdHJpbmdcbiAgICBjb25zdCBwcm9qZWN0ID0gbmV3IFByb2plY3QoSlNPTi5wYXJzZShkYXRhKSk7XG4gICAgcHJvamVjdC5pZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QgPSBwcm9qZWN0O1xuXG4gICAgdGhpcy5zZWxlY3RTY2VuZXNQcmVzZXRDb21wb3NpdGlvbigpO1xuICAgIHRoaXMuYWZ0ZXJMb2FkKCk7XG4gIH1cbn1cbiJdfQ==
|
|
208
|
+
}], () => [{ type: i1.ProjectService }, { type: i2.PreviewService }, { type: i3.FixtureService }, { type: i4.PresetService }, { type: i5.SceneService }, { type: i6.BsModalService }, { type: i7.UuidService }, { type: i8.TimelineService }, { type: i9.Router }, { type: i9.ActivatedRoute }, { type: i10.WarningDialogService }], null); })();
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3NlcnZpY2VzL3Byb2plY3QtbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7OztBQUtoRSxN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Q0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdEMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7bUZBbE1VLGtCQUFrQjt1RUFBbEIsa0JBQWtCLFdBQWxCLGtCQUFrQixtQkFGakIsTUFBTTs7aUZBRVAsa0JBQWtCO2NBSDlCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByZXNldCB9IGZyb20gJy4uL21vZGVscy9wcmVzZXQnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL21vZGVscy9wcm9qZWN0JztcbmltcG9ydCB7IFdhaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi93YWl0LWRpYWxvZy93YWl0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQcmV2aWV3U2VydmljZSB9IGZyb20gJy4vcHJldmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2NlbmVTZXJ2aWNlIH0gZnJvbSAnLi9zY2VuZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4vdGltZWxpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBVdWlkU2VydmljZSB9IGZyb20gJy4vdXVpZC5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldEZpeHR1cmUgfSBmcm9tICcuLi9tb2RlbHMvcHJlc2V0LWZpeHR1cmUnO1xuaW1wb3J0IHsgV2FybmluZ0RpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL3dhcm5pbmctZGlhbG9nLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdExvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmV2aWV3U2VydmljZTogUHJldmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaXh0dXJlU2VydmljZTogRml4dHVyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2NlbmVTZXJ2aWNlOiBTY2VuZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXVpZFNlcnZpY2U6IFV1aWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGltZWxpbmVTZXJ2aWNlOiBUaW1lbGluZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHdhcm5pbmdEaWFsb2dTZXJ2aWNlOiBXYXJuaW5nRGlhbG9nU2VydmljZVxuICApIHt9XG5cbiAgcHJpdmF0ZSBtaWdyYXRlVG9WZXJzaW9uMigpIHtcbiAgICBmb3IgKGxldCBmaXh0dXJlIG9mIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5maXh0dXJlcykge1xuICAgICAgY29uc3QgcGl4ZWxLZXlzID0gdGhpcy5maXh0dXJlU2VydmljZS5maXh0dXJlR2V0VW5pcXVlUGl4ZWxLZXlzKGZpeHR1cmUpO1xuICAgICAgaWYgKHBpeGVsS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAobGV0IHBpeGVsS2V5IG9mIHBpeGVsS2V5cykge1xuICAgICAgICAgIGNvbnN0IHByb2plY3RGaXh0dXJlID0gbmV3IFByZXNldEZpeHR1cmUoKTtcbiAgICAgICAgICBwcm9qZWN0Rml4dHVyZS5maXh0dXJlVXVpZCA9IGZpeHR1cmUudXVpZDtcbiAgICAgICAgICBwcm9qZWN0Rml4dHVyZS5waXhlbEtleSA9IHBpeGVsS2V5O1xuICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5wcmVzZXRGaXh0dXJlcy5wdXNoKHByb2plY3RGaXh0dXJlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcHJvamVjdEZpeHR1cmUgPSBuZXcgUHJlc2V0Rml4dHVyZSgpO1xuICAgICAgICBwcm9qZWN0Rml4dHVyZS5maXh0dXJlVXVpZCA9IGZpeHR1cmUudXVpZDtcbiAgICAgICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXNldEZpeHR1cmVzLnB1c2gocHJvamVjdEZpeHR1cmUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBwcmVzZXQgb2YgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXNldHMpIHtcbiAgICAgIGZvciAobGV0IGZpeHR1cmVVdWlkIG9mIHByZXNldC5maXh0dXJlVXVpZHMpIHtcbiAgICAgICAgY29uc3QgZml4dHVyZSA9IHRoaXMuZml4dHVyZVNlcnZpY2UuZ2V0Rml4dHVyZUJ5VXVpZChmaXh0dXJlVXVpZCk7XG4gICAgICAgIGNvbnN0IHBpeGVsS2V5cyA9IHRoaXMuZml4dHVyZVNlcnZpY2UuZml4dHVyZUdldFVuaXF1ZVBpeGVsS2V5cyhmaXh0dXJlKTtcbiAgICAgICAgaWYgKHBpeGVsS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZm9yIChsZXQgcGl4ZWxLZXkgb2YgcGl4ZWxLZXlzKSB7XG4gICAgICAgICAgICBjb25zdCBwcmVzZXRGaXh0dXJlID0gbmV3IFByZXNldEZpeHR1cmUoKTtcbiAgICAgICAgICAgIHByZXNldEZpeHR1cmUuZml4dHVyZVV1aWQgPSBmaXh0dXJlVXVpZDtcbiAgICAgICAgICAgIHByZXNldEZpeHR1cmUucGl4ZWxLZXkgPSBwaXhlbEtleTtcbiAgICAgICAgICAgIHByZXNldC5maXh0dXJlcy5wdXNoKHByZXNldEZpeHR1cmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBwcmVzZXRGaXh0dXJlID0gbmV3IFByZXNldEZpeHR1cmUoKTtcbiAgICAgICAgICBwcmVzZXRGaXh0dXJlLmZpeHR1cmVVdWlkID0gZml4dHVyZVV1aWQ7XG4gICAgICAgICAgcHJlc2V0LmZpeHR1cmVzLnB1c2gocHJlc2V0Rml4dHVyZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnZlcnNpb24gPSAyO1xuICB9XG5cbiAgcHJpdmF0ZSBtaWdyYXRlRnJvbU9sZFByb2plY3QoKSB7XG4gICAgbGV0IG1pZ3JhdGVkID0gZmFsc2U7XG5cbiAgICBpZiAoIXRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC52ZXJzaW9uKSB7XG4gICAgICAvLyBNaWdyYXRlIGZyb20gdmVyc2lvbiAxXG4gICAgICB0aGlzLm1pZ3JhdGVUb1ZlcnNpb24yKCk7XG4gICAgICBtaWdyYXRlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKG1pZ3JhdGVkKSB7XG4gICAgICB0aGlzLndhcm5pbmdEaWFsb2dTZXJ2aWNlLnNob3coJ2Rlc2lnbmVyLnByb2plY3QubWlncmF0ZWQnKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFmdGVyTG9hZCgpIHtcbiAgICB0aGlzLm1pZ3JhdGVGcm9tT2xkUHJvamVjdCgpO1xuICAgIHRoaXMuZml4dHVyZVNlcnZpY2UudXBkYXRlQ2FjaGVkRml4dHVyZXMoKTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UucmVtb3ZlRGVsZXRlZEZpeHR1cmVzKCk7XG4gICAgdGhpcy5wcmV2aWV3U2VydmljZS51cGRhdGVGaXh0dXJlU2V0dXAoKTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWQubmV4dCgpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5hdXRvT3BlbkZpcnN0RWZmZWN0KCk7XG4gICAgdGhpcy5wcmV2aWV3U2VydmljZS51cGRhdGVTdGFnZSgpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuICAgIHRoaXMuc2NlbmVTZXJ2aWNlLnNlbGVjdFByZXNldEZyb21TZWxlY3RlZFNjZW5lKCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdFNjZW5lc1ByZXNldENvbXBvc2l0aW9uKCkge1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCA9IHRoaXMucHJlc2V0U2VydmljZS5nZXRQcmVzZXRCeVV1aWQodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNlbGVjdGVkUHJlc2V0VXVpZCk7XG4gICAgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXMgPSBbXTtcbiAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnNlbGVjdGVkU2NlbmVVdWlkcykge1xuICAgICAgZm9yIChjb25zdCB1dWlkIG9mIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zZWxlY3RlZFNjZW5lVXVpZHMpIHtcbiAgICAgICAgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXMucHVzaCh0aGlzLnNjZW5lU2VydmljZS5nZXRTY2VuZUJ5VXVpZCh1dWlkKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbkluZGV4ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLmRlc3Ryb3lXYXZlU3VyZmVyKCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QuY29tcG9zaXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LmNvbXBvc2l0aW9uc1tpXS51dWlkID09PSB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2VsZWN0ZWRDb21wb3NpdGlvblV1aWQpIHtcbiAgICAgICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0Q29tcG9zaXRpb25JbmRleChpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbG9hZChpZDogbnVtYmVyLCBuYW1lOiBzdHJpbmcsIHNoYXJlVG9rZW4/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCByZWYgPSB0aGlzLm1vZGFsU2VydmljZS5zaG93KFdhaXREaWFsb2dDb21wb25lbnQsIHsga2V5Ym9hcmQ6IGZhbHNlLCBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuZ2V0UHJvamVjdChpZCwgbmFtZSwgc2hhcmVUb2tlbikucGlwZShcbiAgICAgIG1hcCgocHJvamVjdCkgPT4ge1xuICAgICAgICBpZiAocHJvamVjdC52ZXJzaW9uID4gdGhpcy5wcm9qZWN0U2VydmljZS5jdXJyZW50UHJvamVjdFZlcnNpb24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnVGhlIHByb2plY3QgdmVyc2lvbiAnICtcbiAgICAgICAgICAgICAgcHJvamVjdC52ZXJzaW9uICtcbiAgICAgICAgICAgICAgJyBpcyBjcmVhdGVkIHdpdGggYSBuZXdlciB2ZXJzaW9uIG9mIHRoZSBkZXNpZ25lci4gUGxlYXNlIHVwZGF0ZSB5b3VyIFJvY2tldCBTaG93IHZlcnNpb24gdG8gb3BlbiB0aGlzIHByb2plY3QuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0ID0gcHJvamVjdDtcbiAgICAgICAgdGhpcy5zZWxlY3RTY2VuZXNQcmVzZXRDb21wb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmFmdGVyTG9hZCgpO1xuXG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgdG9rZW46IHByb2plY3Quc2hhcmVUb2tlbixcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsIC8vIHJlbW92ZSB0byByZXBsYWNlIGFsbCBxdWVyeSBwYXJhbXMgYnkgcHJvdmlkZWRcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgLy8gaGlkZSB0aGUgbW9kYWwgYWdhaW4gYmVjYXVzZSBvZjpcbiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3ZhbG9yLXNvZnR3YXJlL25neC1ib290c3RyYXAvaXNzdWVzLzM3MTFcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgcmVmLmhpZGUoKTtcbiAgICAgICAgfSwgMjUwKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgcmVmLmhpZGUoKTtcbiAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgcmVmLmhpZGUoKTtcbiAgICAgICAgfSwgMTUwMCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZXcoKSB7XG4gICAgLy8gY3JlYXRlIGFuIGVtcHR5IG5ldyBwcm9qZWN0XG4gICAgY29uc3QgcHJvamVjdCA9IG5ldyBQcm9qZWN0KCk7XG4gICAgcHJvamVjdC51dWlkID0gdGhpcy51dWlkU2VydmljZS5nZXRVdWlkKCk7XG4gICAgcHJvamVjdC52ZXJzaW9uID0gdGhpcy5wcm9qZWN0U2VydmljZS5jdXJyZW50UHJvamVjdFZlcnNpb247XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0ID0gcHJvamVjdDtcbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2hhcmVUb2tlbiA9IHRoaXMudXVpZFNlcnZpY2UuZ2V0VXVpZCgpO1xuXG4gICAgLy8gQWRkIGEgZGVmYXVsdCBzY2VuZSBhbmQgcHJlc2V0XG4gICAgY29uc3QgcHJlc2V0ID0gbmV3IFByZXNldCgpO1xuICAgIHByZXNldC51dWlkID0gdGhpcy51dWlkU2VydmljZS5nZXRVdWlkKCk7XG4gICAgcHJlc2V0Lm5hbWUgPSAnTmV3IFByZXNldCc7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXNldHMucHVzaChwcmVzZXQpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RQcmVzZXQoMCk7XG5cbiAgICB0aGlzLnNjZW5lU2VydmljZS5hZGRTY2VuZSgpO1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5zY2VuZXNbMF0ucHJlc2V0VXVpZHMucHVzaChwcmVzZXQudXVpZCk7XG5cbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QucHJldmlld1ByZXNldCA9IHRydWU7XG5cbiAgICB0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lcyA9IFt0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3Quc2NlbmVzWzBdXTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQgPSB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QucHJlc2V0c1swXTtcblxuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLnNlbGVjdGVkQ29tcG9zaXRpb24gPSB1bmRlZmluZWQ7XG4gICAgdGhpcy50aW1lbGluZVNlcnZpY2Uuc2VsZWN0ZWRDb21wb3NpdGlvbkluZGV4ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMudGltZWxpbmVTZXJ2aWNlLmRlc3Ryb3lXYXZlU3VyZmVyKCk7XG5cbiAgICB0aGlzLmFmdGVyTG9hZCgpO1xuXG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IFBhcmFtcyA9IHtcbiAgICAgIGlkOiAnJyxcbiAgICAgIHRva2VuOiAnJyxcbiAgICB9O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCAvLyByZW1vdmUgdG8gcmVwbGFjZSBhbGwgcXVlcnkgcGFyYW1zIGJ5IHByb3ZpZGVkXG4gICAgfSk7XG4gIH1cblxuICB0ZW1wbGF0ZSgpIHtcbiAgICAvLyBsb2FkIHRoZSB0ZW1wbGF0ZSBwcm9qZWN0IHdpdGggaWQgMVxuICAgIHRoaXMubG9hZCgxLCBudWxsKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LmlkID0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG5cbiAgaW1wb3J0KGRhdGE6IHN0cmluZykge1xuICAgIC8vIGltcG9ydCBhIHByb2plY3QgZnJvbSBhIHN0cmluZ1xuICAgIGNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdChKU09OLnBhcnNlKGRhdGEpKTtcbiAgICBwcm9qZWN0LmlkID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdCA9IHByb2plY3Q7XG5cbiAgICB0aGlzLnNlbGVjdFNjZW5lc1ByZXNldENvbXBvc2l0aW9uKCk7XG4gICAgdGhpcy5hZnRlckxvYWQoKTtcbiAgfVxufVxuIl19
|
|
@@ -6,26 +6,22 @@ import { ToastrService } from 'ngx-toastr';
|
|
|
6
6
|
import { map } from 'rxjs/operators';
|
|
7
7
|
import { Project } from '../models/project';
|
|
8
8
|
import { UserService } from './user.service';
|
|
9
|
-
import { UuidService } from './uuid.service';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
12
|
-
import * as i2 from "
|
|
13
|
-
import * as i3 from "
|
|
14
|
-
import * as i4 from "@
|
|
15
|
-
import * as i5 from "
|
|
16
|
-
import * as i6 from "ngx-toastr";
|
|
10
|
+
import * as i1 from "@angular/common/http";
|
|
11
|
+
import * as i2 from "./user.service";
|
|
12
|
+
import * as i3 from "@angular/router";
|
|
13
|
+
import * as i4 from "@ngx-translate/core";
|
|
14
|
+
import * as i5 from "ngx-toastr";
|
|
17
15
|
export class ProjectService {
|
|
18
|
-
constructor(
|
|
19
|
-
this.uuidService = uuidService;
|
|
16
|
+
constructor(http, userService, router, activatedRoute, translateService, toastrService) {
|
|
20
17
|
this.http = http;
|
|
21
18
|
this.userService = userService;
|
|
22
19
|
this.router = router;
|
|
23
20
|
this.activatedRoute = activatedRoute;
|
|
24
21
|
this.translateService = translateService;
|
|
25
22
|
this.toastrService = toastrService;
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
this.project.name = 'New Project';
|
|
23
|
+
// the project-file versions used in this version of the designer (older ones will be migrated, newer ones are not supported)
|
|
24
|
+
this.currentProjectVersion = 2;
|
|
29
25
|
}
|
|
30
26
|
saveApi(project) {
|
|
31
27
|
return this.http.post('project', JSON.stringify(project), { headers: this.userService.getHeaders() }).pipe(map((response) => {
|
|
@@ -85,7 +81,7 @@ export class ProjectService {
|
|
|
85
81
|
return project;
|
|
86
82
|
}));
|
|
87
83
|
}
|
|
88
|
-
static { this.ɵfac = function ProjectService_Factory(t) { return new (t || ProjectService)(i0.ɵɵinject(i1.
|
|
84
|
+
static { this.ɵfac = function ProjectService_Factory(t) { return new (t || ProjectService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.UserService), i0.ɵɵinject(i3.Router), i0.ɵɵinject(i3.ActivatedRoute), i0.ɵɵinject(i4.TranslateService), i0.ɵɵinject(i5.ToastrService)); }; }
|
|
89
85
|
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ProjectService, factory: ProjectService.ɵfac, providedIn: 'root' }); }
|
|
90
86
|
}
|
|
91
87
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProjectService, [{
|
|
@@ -93,5 +89,5 @@ export class ProjectService {
|
|
|
93
89
|
args: [{
|
|
94
90
|
providedIn: 'root',
|
|
95
91
|
}]
|
|
96
|
-
}], () => [{ type: i1.
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
}], () => [{ type: i1.HttpClient }, { type: i2.UserService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.TranslateService }, { type: i5.ToastrService }], null); })();
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9zZXJ2aWNlcy9wcm9qZWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBSzdDLE1BQU0sT0FBTyxjQUFjO0lBT3pCLFlBQ1UsSUFBZ0IsRUFDaEIsV0FBd0IsRUFDeEIsTUFBYyxFQUNkLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxhQUE0QjtRQUw1QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVR0Qyw2SEFBNkg7UUFDdEgsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO0lBUzlCLENBQUM7SUFFSSxPQUFPLENBQUMsT0FBZ0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFT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T0FBTyxDQUFDLENBQUM7Z0JBQzNDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0IsQ0FBQztZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEdBQUcsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUgsQ0FBQztJQUVELFVBQVUsQ0FBQyxFQUFVLEVBQUUsSUFBWSxFQUFFLFVBQW1CO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLEVBQUUsR0FBRyxRQUFRLEdBQUcsSUFBSSxHQUFHLFNBQVMsR0FBRyxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNsSSxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUVoQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrRUExRlUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNOztpRkFFUCxjQUFjO2NBSDFCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJy4uL21vZGVscy9wcm9qZWN0JztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUHJvamVjdFNlcnZpY2Uge1xuICAvLyB0aGUgY3VycmVudCBwcm9qZWN0XG4gIHB1YmxpYyBwcm9qZWN0OiBQcm9qZWN0O1xuXG4gIC8vIHRoZSBwcm9qZWN0LWZpbGUgdmVyc2lvbnMgdXNlZCBpbiB0aGlzIHZlcnNpb24gb2YgdGhlIGRlc2lnbmVyIChvbGRlciBvbmVzIHdpbGwgYmUgbWlncmF0ZWQsIG5ld2VyIG9uZXMgYXJlIG5vdCBzdXBwb3J0ZWQpXG4gIHB1YmxpYyBjdXJyZW50UHJvamVjdFZlcnNpb24gPSAyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgc2F2ZUFwaShwcm9qZWN0OiBQcm9qZWN0KTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoJ3Byb2plY3QnLCBKU09OLnN0cmluZ2lmeShwcm9qZWN0KSwgeyBoZWFkZXJzOiB0aGlzLnVzZXJTZXJ2aWNlLmdldEhlYWRlcnMoKSB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIHByb2plY3QuaWQgPSByZXNwb25zZS5pZDtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc2hhcmVUb2tlbikge1xuICAgICAgICAgICAgcHJvamVjdC5zaGFyZVRva2VuID0gcmVzcG9uc2Uuc2hhcmVUb2tlbjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcXVlcnlQYXJhbXM6IFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGlkOiBwcm9qZWN0LmlkLFxuICAgICAgICAgICAgdG9rZW46IHByb2plY3Quc2hhcmVUb2tlbixcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLmFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLCAvLyByZW1vdmUgdG8gcmVwbGFjZSBhbGwgcXVlcnkgcGFyYW1zIGJ5IHByb3ZpZGVkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzYXZlKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICAvLyB0cmllcyB0byBzYXZlIHRoZSBwcm9qZWN0IGFuZCByZXR1cm5zLCB3aGV0aGVyIGl0IGhhcyBiZWVuIHNhdmVkIG9yIG5vdFxuICAgIHRoaXMuc2F2ZUFwaShwcm9qZWN0KS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1zZyA9ICdkZXNpZ25lci5wcm9qZWN0LnNhdmUtc3VjY2Vzcyc7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gJ2Rlc2lnbmVyLnByb2plY3Quc2F2ZS1zdWNjZXNzLXRpdGxlJztcblxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KFttc2csIHRpdGxlXSkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc3VjY2VzcyhyZXN1bHRbbXNnXSwgcmVzdWx0W3RpdGxlXSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXNlclNlcnZpY2Uuc2V0QXV0b0xvYWRQcm9qZWN0KHByb2plY3QpO1xuICAgICAgfSxcbiAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBjb25zdCBtc2cgPSAnZGVzaWduZXIucHJvamVjdC5zYXZlLWVycm9yJztcbiAgICAgICAgY29uc3QgdGl0bGUgPSAnZGVzaWduZXIucHJvamVjdC5zYXZlLWVycm9yLXRpdGxlJztcbiAgICAgICAgY29uc3QgZXJyb3IgPSByZXNwb25zZSAmJiByZXNwb25zZS5lcnJvciA/IHJlc3BvbnNlLmVycm9yLmVycm9yIDogJ3Vua25vd24nO1xuXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoW21zZywgdGl0bGVdKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcihyZXN1bHRbbXNnXSArICcgKCcgKyBlcnJvciArICcpJywgcmVzdWx0W3RpdGxlXSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRBbGxQcm9qZWN0cygpOiBPYnNlcnZhYmxlPFByb2plY3RbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KCdwcm9qZWN0cycsIHsgaGVhZGVyczogdGhpcy51c2VyU2VydmljZS5nZXRIZWFkZXJzKCkgfSkucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwcm9qZWN0czogUHJvamVjdFtdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcHJvamVjdCBvZiByZXNwb25zZSkge1xuICAgICAgICAgIGNvbnN0IHByb2plY3RPYmplY3QgPSBuZXcgUHJvamVjdChwcm9qZWN0KTtcbiAgICAgICAgICBwcm9qZWN0cy5wdXNoKHByb2plY3RPYmplY3QpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9qZWN0cztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZVByb2plY3QocHJvamVjdDogUHJvamVjdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoJ3Byb2plY3Q/aWQ9JyArIHByb2plY3QuaWQgKyAnJm5hbWU9JyArIHByb2plY3QubmFtZSwgeyBoZWFkZXJzOiB0aGlzLnVzZXJTZXJ2aWNlLmdldEhlYWRlcnMoKSB9KTtcbiAgfVxuXG4gIGdldFByb2plY3QoaWQ6IG51bWJlciwgbmFtZTogc3RyaW5nLCBzaGFyZVRva2VuPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9qZWN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoJ3Byb2plY3Q/aWQ9JyArIGlkICsgJyZuYW1lPScgKyBuYW1lICsgJyZ0b2tlbj0nICsgc2hhcmVUb2tlbiwgeyBoZWFkZXJzOiB0aGlzLnVzZXJTZXJ2aWNlLmdldEhlYWRlcnMoKSB9KS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdChyZXNwb25zZSk7XG4gICAgICAgIHByb2plY3QuaWQgPSBpZDtcblxuICAgICAgICByZXR1cm4gcHJvamVjdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -21,7 +21,7 @@ import * as i8 from "../../services/project.service";
|
|
|
21
21
|
import * as i9 from "@angular/common";
|
|
22
22
|
import * as i10 from "@angular/forms";
|
|
23
23
|
import * as i11 from "ngx-bootstrap/typeahead";
|
|
24
|
-
import * as i12 from "
|
|
24
|
+
import * as i12 from "../../dropzone/dropzone.component";
|
|
25
25
|
import * as i13 from "../../array-sort-pipe";
|
|
26
26
|
function CompositionSettingsComponent_div_22_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
27
27
|
i0.ɵɵelementStart(0, "div");
|
|
@@ -82,8 +82,8 @@ function CompositionSettingsComponent_div_22_Template(rf, ctx) { if (rf & 1) {
|
|
|
82
82
|
i0.ɵɵtemplate(4, CompositionSettingsComponent_div_22_div_4_Template, 3, 3, "div", 19)(5, CompositionSettingsComponent_div_22_div_5_Template, 2, 1, "div", 19);
|
|
83
83
|
i0.ɵɵelementEnd()();
|
|
84
84
|
i0.ɵɵtemplate(6, CompositionSettingsComponent_div_22_ul_6_Template, 11, 6, "ul", 20);
|
|
85
|
-
i0.ɵɵelementStart(7, "div", 21)(8, "div", 22)(9, "dropzone", 23);
|
|
86
|
-
i0.ɵɵlistener("error", function
|
|
85
|
+
i0.ɵɵelementStart(7, "div", 21)(8, "div", 22)(9, "app-dropzone", 23);
|
|
86
|
+
i0.ɵɵlistener("error", function CompositionSettingsComponent_div_22_Template_app_dropzone_error_9_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onUploadError($event)); })("success", function CompositionSettingsComponent_div_22_Template_app_dropzone_success_9_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onUploadSuccess($event)); })("queuecomplete", function CompositionSettingsComponent_div_22_Template_app_dropzone_queuecomplete_9_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onQueueComplete($event)); })("addedfile", function CompositionSettingsComponent_div_22_Template_app_dropzone_addedfile_9_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onAddedFile($event)); });
|
|
87
87
|
i0.ɵɵelementEnd()();
|
|
88
88
|
i0.ɵɵelementStart(10, "div", 24)(11, "input", 25);
|
|
89
89
|
i0.ɵɵpipe(12, "translate");
|
|
@@ -102,11 +102,11 @@ function CompositionSettingsComponent_div_22_Template(rf, ctx) { if (rf & 1) {
|
|
|
102
102
|
i0.ɵɵadvance();
|
|
103
103
|
i0.ɵɵproperty("ngIf", ctx_r1.configService.enableMediaLibrary);
|
|
104
104
|
i0.ɵɵadvance(3);
|
|
105
|
-
i0.ɵɵproperty("
|
|
105
|
+
i0.ɵɵproperty("url", ctx_r1.getDropzoneUrl())("acceptedFiles", "audio/*");
|
|
106
106
|
i0.ɵɵadvance(2);
|
|
107
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(12,
|
|
107
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(12, 7, "designer.misc.search"));
|
|
108
108
|
i0.ɵɵadvance(5);
|
|
109
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(17,
|
|
109
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind2(17, 9, ctx_r1.filteredExistingFiles, "name"));
|
|
110
110
|
} }
|
|
111
111
|
export class CompositionSettingsComponent {
|
|
112
112
|
constructor(bsModalRef, timelineService, configService, translateService, http, warningDialogService, toastrService, projectService) {
|
|
@@ -125,40 +125,6 @@ export class CompositionSettingsComponent {
|
|
|
125
125
|
this.uploading = false;
|
|
126
126
|
}
|
|
127
127
|
ngOnInit() {
|
|
128
|
-
const projectId = this.projectService.project.id ? this.projectService.project.id : '';
|
|
129
|
-
this.dropzoneConfig = {
|
|
130
|
-
url: this.configService.restUrl + 'file/upload?compositionUuid=' + this.composition.uuid + '&projectId=' + projectId,
|
|
131
|
-
addRemoveLinks: false,
|
|
132
|
-
maxFilesize: 100 /* 100 MB */,
|
|
133
|
-
acceptedFiles: 'audio/*',
|
|
134
|
-
timeout: 0,
|
|
135
|
-
parallelUploads: 1,
|
|
136
|
-
previewTemplate: `
|
|
137
|
-
<div class="dz-preview dz-file-preview">
|
|
138
|
-
<!-- The attachment details -->
|
|
139
|
-
<div class="dz-details" style="text-align: left">
|
|
140
|
-
<i class="fa fa-file-o"></i> <span data-dz-name></span> <small>
|
|
141
|
-
<span class="label label-default file-size" data-dz-size></span></small>
|
|
142
|
-
</div>
|
|
143
|
-
|
|
144
|
-
<!--div class="mt-5">
|
|
145
|
-
<span data-dz-errormessage></span>
|
|
146
|
-
</div-->
|
|
147
|
-
|
|
148
|
-
<div class="progress mt-4 mb-1" style="height: 10px">
|
|
149
|
-
<div class="progress-bar progress-bar-striped progress-bar-animated"
|
|
150
|
-
role="progressbar" style="width:0%;" data-dz-uploadprogress>
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
`,
|
|
155
|
-
};
|
|
156
|
-
this.translateService
|
|
157
|
-
.get('designer.misc.dropzone-message')
|
|
158
|
-
.pipe(map((result) => {
|
|
159
|
-
this.uploadMessage = '<h3 class="mb-0"><i class="fa fa-cloud-upload"></i></h3>' + result;
|
|
160
|
-
}))
|
|
161
|
-
.subscribe();
|
|
162
128
|
this.loadFiles();
|
|
163
129
|
if (this.timelineService.externalCompositionsAvailable) {
|
|
164
130
|
this.timelineService.getExternalCompositionNames().subscribe((compositionNames) => {
|
|
@@ -166,6 +132,10 @@ export class CompositionSettingsComponent {
|
|
|
166
132
|
});
|
|
167
133
|
}
|
|
168
134
|
}
|
|
135
|
+
getDropzoneUrl() {
|
|
136
|
+
const projectId = this.projectService.project.id ? this.projectService.project.id : '';
|
|
137
|
+
return 'file/upload?compositionUuid=' + this.composition.uuid + '&projectId=' + projectId;
|
|
138
|
+
}
|
|
169
139
|
ok() {
|
|
170
140
|
this.onClose.next(1);
|
|
171
141
|
this.bsModalRef.hide();
|
|
@@ -262,7 +232,7 @@ export class CompositionSettingsComponent {
|
|
|
262
232
|
static { this.ɵfac = function CompositionSettingsComponent_Factory(t) { return new (t || CompositionSettingsComponent)(i0.ɵɵdirectiveInject(i1.BsModalRef), i0.ɵɵdirectiveInject(i2.TimelineService), i0.ɵɵdirectiveInject(i3.ConfigService), i0.ɵɵdirectiveInject(i4.TranslateService), i0.ɵɵdirectiveInject(i5.HttpClient), i0.ɵɵdirectiveInject(i6.WarningDialogService), i0.ɵɵdirectiveInject(i7.ToastrService), i0.ɵɵdirectiveInject(i8.ProjectService)); }; }
|
|
263
233
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CompositionSettingsComponent, selectors: [["lib-app-composition-settings"]], hostBindings: function CompositionSettingsComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
264
234
|
i0.ɵɵlistener("keydown.enter", function CompositionSettingsComponent_keydown_enter_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
|
|
265
|
-
} }, decls: 30, vars: 21, consts: [[1, "modal-header"], [1, "modal-title", "pull-left"], ["type", "button", "aria-label", "Close", 1, "close", "pull-right", 3, "click"], ["aria-hidden", "true"], [1, "modal-body"], [1, "form-group", "row"], [1, "col-lg-4", "col-form-label"], [1, "col-lg-8", "d-flex"], ["type", "text", 1, "form-control", 3, "ngModelChange", "ngModel", "typeahead"], [1, "custom-select", 3, "ngModelChange", "ngModel"], ["value", "audio"], ["class", "row", 4, "ngIf"], [1, "modal-footer"], ["href", "#", "role", "button", 1, "mr-3", "my-auto", 3, "click"], ["type", "button", 1, "btn", "btn-primary", 3, "click", "disabled"], [1, "row"], [1, "px-3", "w-100"], [1, "card", "border-secondary", "mb-3"], [1, "card-body"], [4, "ngIf"], ["class", "nav nav-tabs mb-3", "id", "myTab", "role", "tablist", 4, "ngIf"], ["id", "myTabContent", 1, "tab-content"], ["id", "upload", "role", "tabpanel", 1, "tab-pane", "fade", "show", "active"], [3, "error", "success", "queuecomplete", "addedfile", "
|
|
235
|
+
} }, decls: 30, vars: 21, consts: [[1, "modal-header"], [1, "modal-title", "pull-left"], ["type", "button", "aria-label", "Close", 1, "close", "pull-right", 3, "click"], ["aria-hidden", "true"], [1, "modal-body"], [1, "form-group", "row"], [1, "col-lg-4", "col-form-label"], [1, "col-lg-8", "d-flex"], ["type", "text", 1, "form-control", 3, "ngModelChange", "ngModel", "typeahead"], [1, "custom-select", 3, "ngModelChange", "ngModel"], ["value", "audio"], ["class", "row", 4, "ngIf"], [1, "modal-footer"], ["href", "#", "role", "button", 1, "mr-3", "my-auto", 3, "click"], ["type", "button", 1, "btn", "btn-primary", 3, "click", "disabled"], [1, "row"], [1, "px-3", "w-100"], [1, "card", "border-secondary", "mb-3"], [1, "card-body"], [4, "ngIf"], ["class", "nav nav-tabs mb-3", "id", "myTab", "role", "tablist", 4, "ngIf"], ["id", "myTabContent", 1, "tab-content"], ["id", "upload", "role", "tabpanel", 1, "tab-pane", "fade", "show", "active"], [3, "error", "success", "queuecomplete", "addedfile", "url", "acceptedFiles"], ["id", "media-library", "role", "tabpanel", 1, "tab-pane", "fade"], ["type", "text", "id", "searchFileList", 1, "form-control", "input-block", "mb-3", 3, "input", "placeholder"], [1, "card", "border-secondary", 2, "height", "200px", "overflow-y", "scroll"], [1, "card-body", "p-0"], [1, "list-group", "list-group-flush"], ["class", "list-group-item", "href", "#", 3, "active", "click", 4, "ngFor", "ngForOf"], ["id", "myTab", "role", "tablist", 1, "nav", "nav-tabs", "mb-3"], [1, "nav-item"], ["id", "upload-tab", "data-toggle", "tab", "href", "#upload", "role", "tab", 1, "nav-link", "active"], ["aria-hidden", "true", 1, "fa", "fa-upload"], ["id", "media-library-tab", "data-toggle", "tab", "href", "#media-library", "role", "tab", 1, "nav-link"], ["aria-hidden", "true", 1, "fa", "fa-folder-o"], ["href", "#", 1, "list-group-item", 3, "click"], [1, "col-auto", "my-auto", "flex-grow", "text-break-word"], [1, "col-auto", "my-auto", "pl-0", "text-danger", "float-right", 3, "click"], ["aria-hidden", "true", 1, "fa", "fa-trash-o"]], template: function CompositionSettingsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
266
236
|
i0.ɵɵelementStart(0, "div", 0)(1, "h4", 1);
|
|
267
237
|
i0.ɵɵtext(2);
|
|
268
238
|
i0.ɵɵelementEnd();
|
|
@@ -288,7 +258,7 @@ export class CompositionSettingsComponent {
|
|
|
288
258
|
i0.ɵɵtext(20);
|
|
289
259
|
i0.ɵɵpipe(21, "translate");
|
|
290
260
|
i0.ɵɵelementEnd()()()();
|
|
291
|
-
i0.ɵɵtemplate(22, CompositionSettingsComponent_div_22_Template, 18,
|
|
261
|
+
i0.ɵɵtemplate(22, CompositionSettingsComponent_div_22_Template, 18, 12, "div", 11);
|
|
292
262
|
i0.ɵɵelementEnd();
|
|
293
263
|
i0.ɵɵelementStart(23, "div", 12)(24, "a", 13);
|
|
294
264
|
i0.ɵɵlistener("click", function CompositionSettingsComponent_Template_a_click_24_listener() { ctx.cancel(); return false; });
|
|
@@ -325,10 +295,10 @@ export class CompositionSettingsComponent {
|
|
|
325
295
|
}
|
|
326
296
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CompositionSettingsComponent, [{
|
|
327
297
|
type: Component,
|
|
328
|
-
args: [{ selector: 'lib-app-composition-settings', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ composition.name }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.composition-name' | translate }}</label>\n <div class=\"col-lg-8 d-flex\">\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"composition.name\"\n (ngModelChange)=\"composition.name = $event\"\n [typeahead]=\"existingCompositionNames\"\n />\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.composition-sync-type' | translate }}</label>\n <div class=\"col-lg-8 d-flex\">\n <select class=\"custom-select\" [ngModel]=\"composition.syncType\" (ngModelChange)=\"composition.syncType = $event\">\n <!-- TODO -->\n <!-- <option value=\"none\">{{ 'designer.timeline.composition-sync-type-none' | translate }}</option> -->\n <option value=\"audio\">{{ 'designer.timeline.composition-sync-type-audio' | translate }}</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"composition.syncType == 'audio'\" class=\"row\">\n <div class=\"px-3 w-100\">\n <!-- Selected file -->\n <div class=\"card border-secondary mb-3\">\n <div class=\"card-body\">\n <!-- No file selected -->\n <div *ngIf=\"!composition.audioFileName\">\n {{ 'designer.timeline.composition-no-file-selected' | translate }}\n </div>\n\n <!-- A file is selected -->\n <div *ngIf=\"composition.audioFileName\">\n {{ composition.audioFileName }}\n </div>\n </div>\n </div>\n\n <!-- Choose file -->\n <ul *ngIf=\"configService.enableMediaLibrary\" class=\"nav nav-tabs mb-3\" id=\"myTab\" role=\"tablist\">\n <li class=\"nav-item\">\n <a class=\"nav-link active\" id=\"upload-tab\" data-toggle=\"tab\" href=\"#upload\" role=\"tab\">\n <i class=\"fa fa-upload\" aria-hidden=\"true\"></i>\n {{ 'designer.timeline.composition-file-upload' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" id=\"media-library-tab\" data-toggle=\"tab\" href=\"#media-library\" role=\"tab\">\n <i class=\"fa fa-folder-o\" aria-hidden=\"true\"></i>\n {{ 'designer.timeline.composition-file-library' | translate }}\n </a>\n </li>\n </ul>\n\n <div class=\"tab-content\" id=\"myTabContent\">\n <!-- Upload -->\n <div class=\"tab-pane fade show active\" id=\"upload\" role=\"tabpanel\">\n
|
|
298
|
+
args: [{ selector: 'lib-app-composition-settings', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ composition.name }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.composition-name' | translate }}</label>\n <div class=\"col-lg-8 d-flex\">\n <input\n type=\"text\"\n class=\"form-control\"\n [ngModel]=\"composition.name\"\n (ngModelChange)=\"composition.name = $event\"\n [typeahead]=\"existingCompositionNames\"\n />\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.timeline.composition-sync-type' | translate }}</label>\n <div class=\"col-lg-8 d-flex\">\n <select class=\"custom-select\" [ngModel]=\"composition.syncType\" (ngModelChange)=\"composition.syncType = $event\">\n <!-- TODO -->\n <!-- <option value=\"none\">{{ 'designer.timeline.composition-sync-type-none' | translate }}</option> -->\n <option value=\"audio\">{{ 'designer.timeline.composition-sync-type-audio' | translate }}</option>\n </select>\n </div>\n </div>\n\n <div *ngIf=\"composition.syncType == 'audio'\" class=\"row\">\n <div class=\"px-3 w-100\">\n <!-- Selected file -->\n <div class=\"card border-secondary mb-3\">\n <div class=\"card-body\">\n <!-- No file selected -->\n <div *ngIf=\"!composition.audioFileName\">\n {{ 'designer.timeline.composition-no-file-selected' | translate }}\n </div>\n\n <!-- A file is selected -->\n <div *ngIf=\"composition.audioFileName\">\n {{ composition.audioFileName }}\n </div>\n </div>\n </div>\n\n <!-- Choose file -->\n <ul *ngIf=\"configService.enableMediaLibrary\" class=\"nav nav-tabs mb-3\" id=\"myTab\" role=\"tablist\">\n <li class=\"nav-item\">\n <a class=\"nav-link active\" id=\"upload-tab\" data-toggle=\"tab\" href=\"#upload\" role=\"tab\">\n <i class=\"fa fa-upload\" aria-hidden=\"true\"></i>\n {{ 'designer.timeline.composition-file-upload' | translate }}\n </a>\n </li>\n <li class=\"nav-item\">\n <a class=\"nav-link\" id=\"media-library-tab\" data-toggle=\"tab\" href=\"#media-library\" role=\"tab\">\n <i class=\"fa fa-folder-o\" aria-hidden=\"true\"></i>\n {{ 'designer.timeline.composition-file-library' | translate }}\n </a>\n </li>\n </ul>\n\n <div class=\"tab-content\" id=\"myTabContent\">\n <!-- Upload -->\n <div class=\"tab-pane fade show active\" id=\"upload\" role=\"tabpanel\">\n <app-dropzone\n [url]=\"getDropzoneUrl()\"\n [acceptedFiles]=\"'audio/*'\"\n (error)=\"onUploadError($event)\"\n (success)=\"onUploadSuccess($event)\"\n (queuecomplete)=\"onQueueComplete($event)\"\n (addedfile)=\"onAddedFile($event)\"\n ></app-dropzone>\n </div>\n\n <!-- Media library -->\n <div class=\"tab-pane fade\" id=\"media-library\" role=\"tabpanel\">\n <input\n type=\"text\"\n class=\"form-control input-block mb-3\"\n id=\"searchFileList\"\n placeholder=\"{{ 'designer.misc.search' | translate }}\"\n (input)=\"filterExistingFiles($event.target.value)\"\n />\n\n <div class=\"card border-secondary\" style=\"height: 200px; overflow-y: scroll\">\n <div class=\"card-body p-0\">\n <div class=\"list-group list-group-flush\">\n <a\n *ngFor=\"let existingFile of filteredExistingFiles | sort : 'name'\"\n class=\"list-group-item\"\n [class.active]=\"composition.audioFileName == existingFile\"\n href=\"#\"\n (click)=\"selectExistingFile(existingFile); (false)\"\n >\n <div class=\"row\">\n <div class=\"col-auto my-auto flex-grow text-break-word\">\n {{ existingFile }}\n </div>\n\n <div class=\"col-auto my-auto pl-0 text-danger float-right\" (click)=\"deleteFile(existingFile); (false)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </div>\n </div>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div class=\"modal-footer\">\n <a class=\"mr-3 my-auto\" href=\"#\" role=\"button\" (click)=\"cancel(); (false)\">\n {{ 'designer.misc.cancel' | translate }}\n </a>\n <button [disabled]=\"uploading\" type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\">{{ 'designer.misc.ok' | translate }}</button>\n</div>\n" }]
|
|
329
299
|
}], () => [{ type: i1.BsModalRef }, { type: i2.TimelineService }, { type: i3.ConfigService }, { type: i4.TranslateService }, { type: i5.HttpClient }, { type: i6.WarningDialogService }, { type: i7.ToastrService }, { type: i8.ProjectService }], { handleKeyboardEvent: [{
|
|
330
300
|
type: HostListener,
|
|
331
301
|
args: ['document:keydown.enter', ['$event']]
|
|
332
302
|
}] }); })();
|
|
333
303
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompositionSettingsComponent, { className: "CompositionSettingsComponent" }); })();
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi90aW1lbGluZS9jb21wb3NpdGlvbi1zZXR0aW5ncy9jb21wb3NpdGlvbi1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3RpbWVsaW5lL2NvbXBvc2l0aW9uLXNldHRpbmdzL2NvbXBvc2l0aW9uLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ3lCbkUsMkJBQXdDO0lBQ3RDLFlBQ0Y7O0lBQUEsaUJBQU07O0lBREosY0FDRjtJQURFLHVHQUNGOzs7SUFHQSwyQkFBdUM7SUFD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b3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IERyb3B6b25lQ29uZmlnSW50ZXJmYWNlIH0gZnJvbSAnbmd4LWRyb3B6b25lLXdyYXBwZXInO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9zaXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tcG9zaXRpb24nO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRpbWVsaW5lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpbWVsaW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2FybmluZ0RpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93YXJuaW5nLWRpYWxvZy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFwcC1jb21wb3NpdGlvbi1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wb3NpdGlvbi1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbXBvc2l0aW9uLXNldHRpbmdzLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29tcG9zaXRpb25TZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbXBvc2l0aW9uOiBDb21wb3NpdGlvbjtcbiAgZXhpc3RpbmdDb21wb3NpdGlvbk5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHB1YmxpYyBvbkNsb3NlOiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBkcm9wem9uZUNvbmZpZzogRHJvcHpvbmVDb25maWdJbnRlcmZhY2U7XG4gIHB1YmxpYyB1cGxvYWRNZXNzYWdlOiBzdHJpbmc7XG5cbiAgcHVibGljIGV4aXN0aW5nRmlsZXM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBmaWx0ZXJlZEV4aXN0aW5nRmlsZXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIHVwbG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmLFxuICAgIHByaXZhdGUgdGltZWxpbmVTZXJ2aWNlOiBUaW1lbGluZVNlcnZpY2UsXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIHdhcm5pbmdEaWFsb2dTZXJ2aWNlOiBXYXJuaW5nRGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0clNlcnZpY2U6IFRvYXN0clNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHByb2plY3RJZCA9IHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5pZCA/IHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5pZCA6ICcnO1xuICAgIHRoaXMuZHJvcHpvbmVDb25maWcgPSB7XG4gICAgICB1cmw6IHRoaXMuY29uZmlnU2VydmljZS5yZXN0VXJsICsgJ2ZpbGUvdXBsb2FkP2NvbXBvc2l0aW9uVXVpZD0nICsgdGhpcy5jb21wb3NpdGlvbi51dWlkICsgJyZwcm9qZWN0SWQ9JyArIHByb2plY3RJZCxcbiAgICAgIGFkZFJlbW92ZUxpbmtzOiBmYWxzZSxcbiAgICAgIG1heEZpbGVzaXplOiAxMDAgLyogMTAwIE1CICovLFxuICAgICAgYWNjZXB0ZWRGaWxlczogJ2F1ZGlvLyonLFxuICAgICAgdGltZW91dDogMCxcbiAgICAgIHBhcmFsbGVsVXBsb2FkczogMSxcbiAgICAgIHByZXZpZXdUZW1wbGF0ZTogYFxuICAgICAgPGRpdiBjbGFzcz1cImR6LXByZXZpZXcgZHotZmlsZS1wcmV2aWV3XCI+XG4gICAgICAgIDwhLS0gVGhlIGF0dGFjaG1lbnQgZGV0YWlscyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImR6LWRldGFpbHNcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnRcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWZpbGUtb1wiPjwvaT4gPHNwYW4gZGF0YS1kei1uYW1lPjwvc3Bhbj4gPHNtYWxsPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwgbGFiZWwtZGVmYXVsdCBmaWxlLXNpemVcIiBkYXRhLWR6LXNpemU+PC9zcGFuPjwvc21hbGw+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS1kaXYgY2xhc3M9XCJtdC01XCI+XG4gICAgICAgICAgPHNwYW4gZGF0YS1kei1lcnJvcm1lc3NhZ2U+PC9zcGFuPlxuICAgICAgICA8L2Rpdi0tPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcyBtdC00IG1iLTFcIiBzdHlsZT1cImhlaWdodDogMTBweFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLXN0cmlwZWQgcHJvZ3Jlc3MtYmFyLWFuaW1hdGVkXCJcbiAgICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiIHN0eWxlPVwid2lkdGg6MCU7XCIgZGF0YS1kei11cGxvYWRwcm9ncmVzcz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgfTtcblxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgICAgLmdldCgnZGVzaWduZXIubWlzYy5kcm9wem9uZS1tZXNzYWdlJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIHRoaXMudXBsb2FkTWVzc2FnZSA9ICc8aDMgY2xhc3M9XCJtYi0wXCI+PGkgY2xhc3M9XCJmYSBmYS1jbG91ZC11cGxvYWRcIj48L2k+PC9oMz4nICsgcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5sb2FkRmlsZXMoKTtcblxuICAgIGlmICh0aGlzLnRpbWVsaW5lU2VydmljZS5leHRlcm5hbENvbXBvc2l0aW9uc0F2YWlsYWJsZSkge1xuICAgICAgdGhpcy50aW1lbGluZVNlcnZpY2UuZ2V0RXh0ZXJuYWxDb21wb3NpdGlvbk5hbWVzKCkuc3Vic2NyaWJlKChjb21wb3NpdGlvbk5hbWVzKSA9PiB7XG4gICAgICAgIHRoaXMuZXhpc3RpbmdDb21wb3NpdGlvbk5hbWVzID0gY29tcG9zaXRpb25OYW1lcztcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9rKCkge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KDEpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5vbkNsb3NlLm5leHQoMik7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZW50ZXInLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm9rKCk7XG4gIH1cblxuICBwcml2YXRlIGdldE5hbWVGcm9tRmlsZShkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRhLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGxvYWRGaWxlcygpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnU2VydmljZS5lbmFibGVNZWRpYUxpYnJhcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmh0dHBcbiAgICAgIC5nZXQoJ2ZpbGUvbGlzdCcpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0W10pID0+IHtcbiAgICAgICAgICB0aGlzLmV4aXN0aW5nRmlsZXMgPSBbXTtcblxuICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiByZXNwb25zZSkge1xuICAgICAgICAgICAgLy8gb25seSBsb2FkIGF1ZGlvIGZpbGVzXG4gICAgICAgICAgICBpZiAoKGZpbGUgYXMgYW55KS5hdWRpb0ZpbGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5leGlzdGluZ0ZpbGVzLnB1c2godGhpcy5nZXROYW1lRnJvbUZpbGUoKGZpbGUgYXMgYW55KS5hdWRpb0ZpbGUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmZpbHRlckV4aXN0aW5nRmlsZXMoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblVwbG9hZEVycm9yKGFyZ3M6IGFueSkge1xuICAgIGNvbnN0IG1zZyA9ICdkZXNpZ25lci5taXNjLnRvYXN0LXVwbG9hZC1lcnJvcic7XG4gICAgY29uc3QgdGl0bGUgPSAnZGVzaWduZXIubWlzYy50b2FzdC11cGxvYWQtZXJyb3ItdGl0bGUnO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoW21zZywgdGl0bGVdKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLmVycm9yKHJlc3VsdFttc2ddICsgYXJnc1sxXSwgcmVzdWx0W3RpdGxlXSwgeyB0aW1lT3V0OiAwLCBleHRlbmRlZFRpbWVPdXQ6IDAsIGVuYWJsZUh0bWw6IHRydWUgfSk7XG4gICAgICAvLyBIaWRlIHRoZSBwcmV2aWV3IGVsZW1lbnRcbiAgICAgIGFyZ3NbMF0ucHJldmlld0VsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblVwbG9hZFN1Y2Nlc3MoYXJnczogYW55KSB7XG4gICAgdGhpcy5sb2FkRmlsZXMoKTtcblxuICAgIC8vIGFsbG93IHRvIGd1ZXNzIHRoZSBicG0gb2YgdGhlIG5ld2x5IHVwbG9hZGVkIGZpbGVcbiAgICB0aGlzLmNvbXBvc2l0aW9uLnRlbXBvR3Vlc3NlZCA9IGZhbHNlO1xuXG4gICAgLy8gaGlkZSB0aGUgcHJldmlldyBlbGVtZW50XG4gICAgYXJnc1swXS5wcmV2aWV3RWxlbWVudC5oaWRkZW4gPSB0cnVlO1xuXG4gICAgLy8gc2VsZWN0IHRoaXMgZmlsZVxuICAgIHRoaXMuY29tcG9zaXRpb24uYXVkaW9GaWxlTmFtZSA9IGFyZ3NbMF0ubmFtZTtcblxuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuZW5hYmxlTWVkaWFMaWJyYXJ5KSB7XG4gICAgICAvLyB0aGUgZmlsZSBoYXMgYmVlbiB1cGxvYWRlZCB0byB0aGUgbWVkaWEgbGlicmFyeVxuICAgICAgdGhpcy5jb21wb3NpdGlvbi5hdWRpb0ZpbGVJbkxpYnJhcnkgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblF1ZXVlQ29tcGxldGUoYXJnczogYW55KSB7XG4gICAgdGhpcy51cGxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZGVkRmlsZShhcmdzOiBhbnkpIHtcbiAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7XG4gIH1cblxuICAvLyBGaWx0ZXIgdGhlIGV4aXN0aW5nIGZpbGVzXG4gIGZpbHRlckV4aXN0aW5nRmlsZXMoc2VhcmNoVmFsdWU/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXNlYXJjaFZhbHVlKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkRXhpc3RpbmdGaWxlcyA9IHRoaXMuZXhpc3RpbmdGaWxlcztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlcmVkRXhpc3RpbmdGaWxlcyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHRoaXMuZXhpc3RpbmdGaWxlcykge1xuICAgICAgaWYgKGZpbGUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpICE9PSAtMSkge1xuICAgICAgICB0aGlzLmZpbHRlcmVkRXhpc3RpbmdGaWxlcy5wdXNoKGZpbGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEV4aXN0aW5nRmlsZShleGlzdGluZ0ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMuY29tcG9zaXRpb24uYXVkaW9GaWxlTmFtZSA9IGV4aXN0aW5nRmlsZTtcblxuICAgIC8vIHRoZSBmaWxlIGhhcyBiZWVuIHNlbGVjdGVkIGZyb20gdGhlIG1lZGlhIGxpYnJhcnlcbiAgICB0aGlzLmNvbXBvc2l0aW9uLmF1ZGlvRmlsZUluTGlicmFyeSA9IHRydWU7XG4gIH1cblxuICBkZWxldGVGaWxlKGV4aXN0aW5nRmlsZTogc3RyaW5nKSB7XG4gICAgdGhpcy53YXJuaW5nRGlhbG9nU2VydmljZVxuICAgICAgLnNob3coJ2Rlc2lnbmVyLnRpbWVsaW5lLndhcm5pbmctZGVsZXRlLWZpbGUnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgIC5wb3N0KCdmaWxlL2RlbGV0ZT9uYW1lPScgKyBleGlzdGluZ0ZpbGUgKyAnJnR5cGU9QVVESU8nLCB1bmRlZmluZWQpXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IFJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eyBjb21wb3NpdGlvbi5uYW1lIH19PC9oND5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZSBwdWxsLXJpZ2h0XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImJzTW9kYWxSZWYuaGlkZSgpXCI+XG4gICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ2Rlc2lnbmVyLnRpbWVsaW5lLmNvbXBvc2l0aW9uLW5hbWUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTggZC1mbGV4XCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFtuZ01vZGVsXT1cImNvbXBvc2l0aW9uLm5hbWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjb21wb3NpdGlvbi5uYW1lID0gJGV2ZW50XCJcbiAgICAgICAgW3R5cGVhaGVhZF09XCJleGlzdGluZ0NvbXBvc2l0aW9uTmFtZXNcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiY29sLWxnLTQgY29sLWZvcm0tbGFiZWxcIj57eyAnZGVzaWduZXIudGltZWxpbmUuY29tcG9zaXRpb24tc3luYy10eXBlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy04IGQtZmxleFwiPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIiBbbmdNb2RlbF09XCJjb21wb3NpdGlvbi5zeW5jVHlwZVwiIChuZ01vZGVsQ2hhbmdlKT1cImNvbXBvc2l0aW9uLnN5bmNUeXBlID0gJGV2ZW50XCI+XG4gICAgICAgIDwhLS0gVE9ETyAtLT5cbiAgICAgICAgPCEtLSA8b3B0aW9uIHZhbHVlPVwibm9uZVwiPnt7ICdkZXNpZ25lci50aW1lbGluZS5jb21wb3NpdGlvbi1zeW5jLXR5cGUtbm9uZScgfCB0cmFuc2xhdGUgfX08L29wdGlvbj4gLS0+XG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJhdWRpb1wiPnt7ICdkZXNpZ25lci50aW1lbGluZS5jb21wb3NpdGlvbi1zeW5jLXR5cGUtYXVkaW8nIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cImNvbXBvc2l0aW9uLnN5bmNUeXBlID09ICdhdWRpbydcIiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJweC0zIHctMTAwXCI+XG4gICAgICA8IS0tIFNlbGVjdGVkIGZpbGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBib3JkZXItc2Vjb25kYXJ5IG1iLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgIDwhLS0gTm8gZmlsZSBzZWxlY3RlZCAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWNvbXBvc2l0aW9uLmF1ZGlvRmlsZU5hbWVcIj5cbiAgICAgICAgICAgIHt7ICdkZXNpZ25lci50aW1lbGluZS5jb21wb3NpdGlvbi1uby1maWxlLXNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBBIGZpbGUgaXMgc2VsZWN0ZWQgLS0+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbXBvc2l0aW9uLmF1ZGlvRmlsZU5hbWVcIj5cbiAgICAgICAgICAgIHt7IGNvbXBvc2l0aW9uLmF1ZGlvRmlsZU5hbWUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDaG9vc2UgZmlsZSAtLT5cbiAgICAgIDx1bCAqbmdJZj1cImNvbmZpZ1NlcnZpY2UuZW5hYmxlTWVkaWFMaWJyYXJ5XCIgY2xhc3M9XCJuYXYgbmF2LXRhYnMgbWItM1wiIGlkPVwibXlUYWJcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiPlxuICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgYWN0aXZlXCIgaWQ9XCJ1cGxvYWQtdGFiXCIgZGF0YS10b2dnbGU9XCJ0YWJcIiBocmVmPVwiI3VwbG9hZFwiIHJvbGU9XCJ0YWJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdXBsb2FkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAge3sgJ2Rlc2lnbmVyLnRpbWVsaW5lLmNvbXBvc2l0aW9uLWZpbGUtdXBsb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rXCIgaWQ9XCJtZWRpYS1saWJyYXJ5LXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiNtZWRpYS1saWJyYXJ5XCIgcm9sZT1cInRhYlwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1mb2xkZXItb1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIHt7ICdkZXNpZ25lci50aW1lbGluZS5jb21wb3NpdGlvbi1maWxlLWxpYnJhcnknIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cblxuICAgICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50XCIgaWQ9XCJteVRhYkNvbnRlbnRcIj5cbiAgICAgICAgPCEtLSBVcGxvYWQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBmYWRlIHNob3cgYWN0aXZlXCIgaWQ9XCJ1cGxvYWRcIiByb2xlPVwidGFicGFuZWxcIj5cbiAgICAgICAgICA8IS0tIERyb3B6b25lIC0tPlxuICAgICAgICAgIDxkcm9wem9uZVxuICAgICAgICAgICAgW2NvbmZpZ109XCJkcm9wem9uZUNvbmZpZ1wiXG4gICAgICAgICAgICBbdXNlRHJvcHpvbmVDbGFzc109XCInZmFsc2UnXCJcbiAgICAgICAgICAgIFttZXNzYWdlXT1cInVwbG9hZE1lc3NhZ2VcIlxuICAgICAgICAgICAgKGVycm9yKT1cIm9uVXBsb2FkRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc3VjY2Vzcyk9XCJvblVwbG9hZFN1Y2Nlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgICAocXVldWVjb21wbGV0ZSk9XCJvblF1ZXVlQ29tcGxldGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYWRkZWRmaWxlKT1cIm9uQWRkZWRGaWxlKCRldmVudClcIlxuICAgICAgICAgID48L2Ryb3B6b25lPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIE1lZGlhIGxpYnJhcnkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBmYWRlXCIgaWQ9XCJtZWRpYS1saWJyYXJ5XCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC1ibG9jayBtYi0zXCJcbiAgICAgICAgICAgIGlkPVwic2VhcmNoRmlsZUxpc3RcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZGVzaWduZXIubWlzYy5zZWFyY2gnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJmaWx0ZXJFeGlzdGluZ0ZpbGVzKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLXNlY29uZGFyeVwiIHN0eWxlPVwiaGVpZ2h0OiAyMDBweDsgb3ZlcmZsb3cteTogc2Nyb2xsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBleGlzdGluZ0ZpbGUgb2YgZmlsdGVyZWRFeGlzdGluZ0ZpbGVzIHwgc29ydDogJ25hbWUnXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiY29tcG9zaXRpb24uYXVkaW9GaWxlTmFtZSA9PSBleGlzdGluZ0ZpbGVcIlxuICAgICAgICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEV4aXN0aW5nRmlsZShleGlzdGluZ0ZpbGUpOyAoZmFsc2UpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBteS1hdXRvIGZsZXgtZ3JvdyB0ZXh0LWJyZWFrLXdvcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBleGlzdGluZ0ZpbGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIG15LWF1dG8gcGwtMCB0ZXh0LWRhbmdlciBmbG9hdC1yaWdodFwiIChjbGljayk9XCJkZWxldGVGaWxlKGV4aXN0aW5nRmlsZSk7IChmYWxzZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRyYXNoLW9cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICA8YSBjbGFzcz1cIm1yLTMgbXktYXV0b1wiIGhyZWY9XCIjXCIgcm9sZT1cImJ1dHRvblwiIChjbGljayk9XCJjYW5jZWwoKTsgKGZhbHNlKVwiPlxuICAgIHt7ICdkZXNpZ25lci5taXNjLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9hPlxuICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ1cGxvYWRpbmdcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib2soKVwiPnt7ICdkZXNpZ25lci5taXNjLm9rJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi90aW1lbGluZS9jb21wb3NpdGlvbi1zZXR0aW5ncy9jb21wb3NpdGlvbi1zZXR0aW5ncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3RpbWVsaW5lL2NvbXBvc2l0aW9uLXNldHRpbmdzL2NvbXBvc2l0aW9uLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ3lCbkUsMkJBQXdDO0lBQ3RDLFlBQ0Y7O0lBQUEsaUJBQU07O0lBREosY0FDRjtJQURFLHVHQUNGOzs7SUFHQSwyQkFBdUM7SUFD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LFNBQUcsS0FBSyxJQUFFO1lBQ3hFLGFBQ0Y7O1lBQUEsaUJBQUk7WUFDSixtQ0FBb0Y7WUFBZiwwR0FBUyxRQUFJLElBQUM7WUFBQyxhQUFvQzs7WUFDMUgsQUFEMEgsaUJBQVMsRUFDN0g7O1lBdkg4QixlQUFzQjtZQUF0QiwwQ0FBc0I7WUFPZixlQUFzRDtZQUF0RCxrRkFBc0Q7WUFLekYsZUFBNEI7WUFFNUIsQUFGQSw4Q0FBNEIsMkNBRVU7WUFNSCxlQUEyRDtZQUEzRCx1RkFBMkQ7WUFFbEUsZUFBZ0M7WUFBaEMsa0RBQWdDO1lBR3RDLGVBQWlFO1lBQWpFLDZGQUFpRTtZQUt2RixlQUFxQztZQUFyQywwREFBcUM7WUFzRnpDLGVBQ0Y7WUFERSwrRUFDRjtZQUNRLGVBQXNCO1lBQXRCLHdDQUFzQjtZQUFzRCxjQUFvQztZQUFwQyxnRUFBb0M7OztpRkRwRzdHLDRCQUE0QjtjQUx4QyxTQUFTOzJCQUNFLDhCQUE4Qjt5UEF1RHhDLG1CQUFtQjtrQkFEbEIsWUFBWTttQkFBQyx3QkFBd0IsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0ZBbER2Qyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgRHJvcHpvbmVDb25maWdJbnRlcmZhY2UgfSBmcm9tICduZ3gtZHJvcHpvbmUtd3JhcHBlcic7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb3NpdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb3NpdGlvbic7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVGltZWxpbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGltZWxpbmUuc2VydmljZSc7XG5pbXBvcnQgeyBXYXJuaW5nRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dhcm5pbmctZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLWNvbXBvc2l0aW9uLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBvc2l0aW9uLXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb3NpdGlvblNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29tcG9zaXRpb246IENvbXBvc2l0aW9uO1xuICBleGlzdGluZ0NvbXBvc2l0aW9uTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIG9uQ2xvc2U6IFN1YmplY3Q8bnVtYmVyPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIGRyb3B6b25lQ29uZmlnOiBEcm9wem9uZUNvbmZpZ0ludGVyZmFjZTtcbiAgcHVibGljIHVwbG9hZE1lc3NhZ2U6IHN0cmluZztcblxuICBwdWJsaWMgZXhpc3RpbmdGaWxlczogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIGZpbHRlcmVkRXhpc3RpbmdGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgdXBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSB0aW1lbGluZVNlcnZpY2U6IFRpbWVsaW5lU2VydmljZSxcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgd2FybmluZ0RpYWxvZ1NlcnZpY2U6IFdhcm5pbmdEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwdWJsaWMgcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmxvYWRGaWxlcygpO1xuXG4gICAgaWYgKHRoaXMudGltZWxpbmVTZXJ2aWNlLmV4dGVybmFsQ29tcG9zaXRpb25zQXZhaWxhYmxlKSB7XG4gICAgICB0aGlzLnRpbWVsaW5lU2VydmljZS5nZXRFeHRlcm5hbENvbXBvc2l0aW9uTmFtZXMoKS5zdWJzY3JpYmUoKGNvbXBvc2l0aW9uTmFtZXMpID0+IHtcbiAgICAgICAgdGhpcy5leGlzdGluZ0NvbXBvc2l0aW9uTmFtZXMgPSBjb21wb3NpdGlvbk5hbWVzO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RHJvcHpvbmVVcmwoKSB7XG4gICAgY29uc3QgcHJvamVjdElkID0gdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LmlkID8gdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LmlkIDogJyc7XG4gICAgcmV0dXJuICdmaWxlL3VwbG9hZD9jb21wb3NpdGlvblV1aWQ9JyArIHRoaXMuY29tcG9zaXRpb24udXVpZCArICcmcHJvamVjdElkPScgKyBwcm9qZWN0SWQ7XG4gIH1cblxuICBvaygpIHtcbiAgICB0aGlzLm9uQ2xvc2UubmV4dCgxKTtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KDIpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5vaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROYW1lRnJvbUZpbGUoZGF0YTogYW55KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0YS5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRmlsZXMoKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZ1NlcnZpY2UuZW5hYmxlTWVkaWFMaWJyYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5odHRwXG4gICAgICAuZ2V0KCdmaWxlL2xpc3QnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdFtdKSA9PiB7XG4gICAgICAgICAgdGhpcy5leGlzdGluZ0ZpbGVzID0gW107XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIG9ubHkgbG9hZCBhdWRpbyBmaWxlc1xuICAgICAgICAgICAgaWYgKChmaWxlIGFzIGFueSkuYXVkaW9GaWxlKSB7XG4gICAgICAgICAgICAgIHRoaXMuZXhpc3RpbmdGaWxlcy5wdXNoKHRoaXMuZ2V0TmFtZUZyb21GaWxlKChmaWxlIGFzIGFueSkuYXVkaW9GaWxlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5maWx0ZXJFeGlzdGluZ0ZpbGVzKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25VcGxvYWRFcnJvcihhcmdzOiBhbnkpIHtcbiAgICBjb25zdCBtc2cgPSAnZGVzaWduZXIubWlzYy50b2FzdC11cGxvYWQtZXJyb3InO1xuICAgIGNvbnN0IHRpdGxlID0gJ2Rlc2lnbmVyLm1pc2MudG9hc3QtdXBsb2FkLWVycm9yLXRpdGxlJztcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KFttc2csIHRpdGxlXSkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIHRoaXMudG9hc3RyU2VydmljZS5lcnJvcihyZXN1bHRbbXNnXSArIGFyZ3NbMV0sIHJlc3VsdFt0aXRsZV0sIHsgdGltZU91dDogMCwgZXh0ZW5kZWRUaW1lT3V0OiAwLCBlbmFibGVIdG1sOiB0cnVlIH0pO1xuICAgICAgLy8gSGlkZSB0aGUgcHJldmlldyBlbGVtZW50XG4gICAgICBhcmdzWzBdLnByZXZpZXdFbGVtZW50LmhpZGRlbiA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25VcGxvYWRTdWNjZXNzKGFyZ3M6IGFueSkge1xuICAgIHRoaXMubG9hZEZpbGVzKCk7XG5cbiAgICAvLyBhbGxvdyB0byBndWVzcyB0aGUgYnBtIG9mIHRoZSBuZXdseSB1cGxvYWRlZCBmaWxlXG4gICAgdGhpcy5jb21wb3NpdGlvbi50ZW1wb0d1ZXNzZWQgPSBmYWxzZTtcblxuICAgIC8vIGhpZGUgdGhlIHByZXZpZXcgZWxlbWVudFxuICAgIGFyZ3NbMF0ucHJldmlld0VsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcblxuICAgIC8vIHNlbGVjdCB0aGlzIGZpbGVcbiAgICB0aGlzLmNvbXBvc2l0aW9uLmF1ZGlvRmlsZU5hbWUgPSBhcmdzWzBdLm5hbWU7XG5cbiAgICBpZiAodGhpcy5jb25maWdTZXJ2aWNlLmVuYWJsZU1lZGlhTGlicmFyeSkge1xuICAgICAgLy8gdGhlIGZpbGUgaGFzIGJlZW4gdXBsb2FkZWQgdG8gdGhlIG1lZGlhIGxpYnJhcnlcbiAgICAgIHRoaXMuY29tcG9zaXRpb24uYXVkaW9GaWxlSW5MaWJyYXJ5ID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25RdWV1ZUNvbXBsZXRlKGFyZ3M6IGFueSkge1xuICAgIHRoaXMudXBsb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgb25BZGRlZEZpbGUoYXJnczogYW55KSB7XG4gICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xuICB9XG5cbiAgLy8gRmlsdGVyIHRoZSBleGlzdGluZyBmaWxlc1xuICBmaWx0ZXJFeGlzdGluZ0ZpbGVzKHNlYXJjaFZhbHVlPzogc3RyaW5nKSB7XG4gICAgaWYgKCFzZWFyY2hWYWx1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJlZEV4aXN0aW5nRmlsZXMgPSB0aGlzLmV4aXN0aW5nRmlsZXM7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJlZEV4aXN0aW5nRmlsZXMgPSBbXTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLmV4aXN0aW5nRmlsZXMpIHtcbiAgICAgIGlmIChmaWxlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZEV4aXN0aW5nRmlsZXMucHVzaChmaWxlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZWxlY3RFeGlzdGluZ0ZpbGUoZXhpc3RpbmdGaWxlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbXBvc2l0aW9uLmF1ZGlvRmlsZU5hbWUgPSBleGlzdGluZ0ZpbGU7XG5cbiAgICAvLyB0aGUgZmlsZSBoYXMgYmVlbiBzZWxlY3RlZCBmcm9tIHRoZSBtZWRpYSBsaWJyYXJ5XG4gICAgdGhpcy5jb21wb3NpdGlvbi5hdWRpb0ZpbGVJbkxpYnJhcnkgPSB0cnVlO1xuICB9XG5cbiAgZGVsZXRlRmlsZShleGlzdGluZ0ZpbGU6IHN0cmluZykge1xuICAgIHRoaXMud2FybmluZ0RpYWxvZ1NlcnZpY2VcbiAgICAgIC5zaG93KCdkZXNpZ25lci50aW1lbGluZS53YXJuaW5nLWRlbGV0ZS1maWxlJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAucG9zdCgnZmlsZS9kZWxldGU/bmFtZT0nICsgZXhpc3RpbmdGaWxlICsgJyZ0eXBlPUFVRElPJywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkRmlsZXMoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cbiAgPGg0IGNsYXNzPVwibW9kYWwtdGl0bGUgcHVsbC1sZWZ0XCI+e3sgY29tcG9zaXRpb24ubmFtZSB9fTwvaDQ+XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2UgcHVsbC1yaWdodFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJic01vZGFsUmVmLmhpZGUoKVwiPlxuICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbGctNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdkZXNpZ25lci50aW1lbGluZS5jb21wb3NpdGlvbi1uYW1lJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy04IGQtZmxleFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICBbbmdNb2RlbF09XCJjb21wb3NpdGlvbi5uYW1lXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY29tcG9zaXRpb24ubmFtZSA9ICRldmVudFwiXG4gICAgICAgIFt0eXBlYWhlYWRdPVwiZXhpc3RpbmdDb21wb3NpdGlvbk5hbWVzXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ2Rlc2lnbmVyLnRpbWVsaW5lLmNvbXBvc2l0aW9uLXN5bmMtdHlwZScgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOCBkLWZsZXhcIj5cbiAgICAgIDxzZWxlY3QgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCIgW25nTW9kZWxdPVwiY29tcG9zaXRpb24uc3luY1R5cGVcIiAobmdNb2RlbENoYW5nZSk9XCJjb21wb3NpdGlvbi5zeW5jVHlwZSA9ICRldmVudFwiPlxuICAgICAgICA8IS0tIFRPRE8gLS0+XG4gICAgICAgIDwhLS0gPG9wdGlvbiB2YWx1ZT1cIm5vbmVcIj57eyAnZGVzaWduZXIudGltZWxpbmUuY29tcG9zaXRpb24tc3luYy10eXBlLW5vbmUnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+IC0tPlxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYXVkaW9cIj57eyAnZGVzaWduZXIudGltZWxpbmUuY29tcG9zaXRpb24tc3luYy10eXBlLWF1ZGlvJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJjb21wb3NpdGlvbi5zeW5jVHlwZSA9PSAnYXVkaW8nXCIgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHgtMyB3LTEwMFwiPlxuICAgICAgPCEtLSBTZWxlY3RlZCBmaWxlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLXNlY29uZGFyeSBtYi0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICA8IS0tIE5vIGZpbGUgc2VsZWN0ZWQgLS0+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb21wb3NpdGlvbi5hdWRpb0ZpbGVOYW1lXCI+XG4gICAgICAgICAgICB7eyAnZGVzaWduZXIudGltZWxpbmUuY29tcG9zaXRpb24tbm8tZmlsZS1zZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gQSBmaWxlIGlzIHNlbGVjdGVkIC0tPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb21wb3NpdGlvbi5hdWRpb0ZpbGVOYW1lXCI+XG4gICAgICAgICAgICB7eyBjb21wb3NpdGlvbi5hdWRpb0ZpbGVOYW1lIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ2hvb3NlIGZpbGUgLS0+XG4gICAgICA8dWwgKm5nSWY9XCJjb25maWdTZXJ2aWNlLmVuYWJsZU1lZGlhTGlicmFyeVwiIGNsYXNzPVwibmF2IG5hdi10YWJzIG1iLTNcIiBpZD1cIm15VGFiXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICA8YSBjbGFzcz1cIm5hdi1saW5rIGFjdGl2ZVwiIGlkPVwidXBsb2FkLXRhYlwiIGRhdGEtdG9nZ2xlPVwidGFiXCIgaHJlZj1cIiN1cGxvYWRcIiByb2xlPVwidGFiXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXVwbG9hZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIHt7ICdkZXNpZ25lci50aW1lbGluZS5jb21wb3NpdGlvbi1maWxlLXVwbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCI+XG4gICAgICAgICAgPGEgY2xhc3M9XCJuYXYtbGlua1wiIGlkPVwibWVkaWEtbGlicmFyeS10YWJcIiBkYXRhLXRvZ2dsZT1cInRhYlwiIGhyZWY9XCIjbWVkaWEtbGlicmFyeVwiIHJvbGU9XCJ0YWJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZm9sZGVyLW9cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICB7eyAnZGVzaWduZXIudGltZWxpbmUuY29tcG9zaXRpb24tZmlsZS1saWJyYXJ5JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudFwiIGlkPVwibXlUYWJDb250ZW50XCI+XG4gICAgICAgIDwhLS0gVXBsb2FkIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXBhbmUgZmFkZSBzaG93IGFjdGl2ZVwiIGlkPVwidXBsb2FkXCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgICAgICAgPGFwcC1kcm9wem9uZVxuICAgICAgICAgICAgW3VybF09XCJnZXREcm9wem9uZVVybCgpXCJcbiAgICAgICAgICAgIFthY2NlcHRlZEZpbGVzXT1cIidhdWRpby8qJ1wiXG4gICAgICAgICAgICAoZXJyb3IpPVwib25VcGxvYWRFcnJvcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChzdWNjZXNzKT1cIm9uVXBsb2FkU3VjY2VzcygkZXZlbnQpXCJcbiAgICAgICAgICAgIChxdWV1ZWNvbXBsZXRlKT1cIm9uUXVldWVDb21wbGV0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChhZGRlZGZpbGUpPVwib25BZGRlZEZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvYXBwLWRyb3B6b25lPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIE1lZGlhIGxpYnJhcnkgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBmYWRlXCIgaWQ9XCJtZWRpYS1saWJyYXJ5XCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBpbnB1dC1ibG9jayBtYi0zXCJcbiAgICAgICAgICAgIGlkPVwic2VhcmNoRmlsZUxpc3RcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnZGVzaWduZXIubWlzYy5zZWFyY2gnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJmaWx0ZXJFeGlzdGluZ0ZpbGVzKCRldmVudC50YXJnZXQudmFsdWUpXCJcbiAgICAgICAgICAvPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLXNlY29uZGFyeVwiIHN0eWxlPVwiaGVpZ2h0OiAyMDBweDsgb3ZlcmZsb3cteTogc2Nyb2xsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cCBsaXN0LWdyb3VwLWZsdXNoXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBleGlzdGluZ0ZpbGUgb2YgZmlsdGVyZWRFeGlzdGluZ0ZpbGVzIHwgc29ydCA6ICduYW1lJ1wiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImNvbXBvc2l0aW9uLmF1ZGlvRmlsZU5hbWUgPT0gZXhpc3RpbmdGaWxlXCJcbiAgICAgICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RFeGlzdGluZ0ZpbGUoZXhpc3RpbmdGaWxlKTsgKGZhbHNlKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gbXktYXV0byBmbGV4LWdyb3cgdGV4dC1icmVhay13b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgZXhpc3RpbmdGaWxlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBteS1hdXRvIHBsLTAgdGV4dC1kYW5nZXIgZmxvYXQtcmlnaHRcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShleGlzdGluZ0ZpbGUpOyAoZmFsc2UpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10cmFzaC1vXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgPGEgY2xhc3M9XCJtci0zIG15LWF1dG9cIiBocmVmPVwiI1wiIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKCk7IChmYWxzZSlcIj5cbiAgICB7eyAnZGVzaWduZXIubWlzYy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYT5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidXBsb2FkaW5nXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm9rKClcIj57eyAnZGVzaWduZXIubWlzYy5vaycgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
|