nuxeo-development-framework 2.0.8 → 3.0.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/bundles/nuxeo-development-framework.umd.js +8335 -455
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +84 -0
- package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +35 -0
- package/esm2015/lib/components/activities-log/activities-log.module.js +30 -0
- package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +54 -0
- package/esm2015/lib/components/attachment-item/attachment-item.module.js +44 -0
- package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +40 -0
- package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +157 -0
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +30 -0
- package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +30 -0
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +44 -0
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +140 -0
- package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +24 -0
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +177 -0
- package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +43 -0
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +39 -0
- package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +34 -0
- package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +132 -0
- package/esm2015/lib/components/file-manger/components/copy/copy.component.js +119 -0
- package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +91 -0
- package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +455 -0
- package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +26 -0
- package/esm2015/lib/components/file-manger/components/delete/delete.component.js +77 -0
- package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +114 -0
- package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +80 -0
- package/esm2015/lib/components/file-manger/components/move/move.component.js +108 -0
- package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +111 -0
- package/esm2015/lib/components/file-manger/components/rename/rename.component.js +86 -0
- package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +313 -0
- package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +294 -0
- package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +256 -0
- package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +64 -0
- package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +71 -0
- package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +358 -0
- package/esm2015/lib/components/file-manger/file-manager.abstract.js +1004 -0
- package/esm2015/lib/components/file-manger/file-manger.module.js +275 -0
- package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +8 -2
- package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +2 -2
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +51 -0
- package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +30 -0
- package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +177 -0
- package/esm2015/lib/components/permissions/permission.service.js +118 -0
- package/esm2015/lib/components/permissions/permissions/permissions.component.js +232 -0
- package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +117 -0
- package/esm2015/lib/components/permissions/permissions.module.js +71 -0
- package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +47 -0
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +27 -0
- package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +116 -0
- package/esm2015/lib/components/user/user/user.component.js +29 -0
- package/esm2015/lib/components/user/user.module.js +30 -0
- package/esm2015/lib/directive/directive.module.js +9 -4
- package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +46 -0
- package/esm2015/lib/shared/libraryShared.module.js +1 -4
- package/esm2015/lib/shared-services/dialog-mangment.service.js +61 -0
- package/esm2015/lib/shared-services/dynamic-form.service.js +241 -0
- package/esm2015/lib/shared-services/file-manager.adapter.js +74 -0
- package/esm2015/lib/shared-services/file-manager.service.js +741 -0
- package/esm2015/lib/shared-services/global-pdftron.service.js +46 -0
- package/esm2015/lib/shared-services/mainfolder.service.js +157 -0
- package/esm2015/lib/shared-services/publishing-document.service.js +202 -0
- package/esm2015/lib/shared-services/recently-viewed.service.js +57 -0
- package/esm2015/lib/shared-services/shared-docs.service.js +135 -0
- package/esm2015/lib/shared-services/shared-services.module.js +20 -0
- package/esm2015/lib/shared-services/upload-file.service.js +29 -0
- package/esm2015/lib/shared-services/upload-managment.service.js +151 -0
- package/esm2015/lib/shared-services/user.service.js +54 -0
- package/esm2015/public-api.js +64 -1
- package/fesm2015/nuxeo-development-framework.js +7628 -154
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/activities-log/activities-log/activities-log.component.d.ts +23 -0
- package/lib/components/activities-log/activities-log/activities-log.service.d.ts +9 -0
- package/lib/components/activities-log/activities-log.module.d.ts +10 -0
- package/lib/components/attachment-item/attachment-item/attachment-item.component.d.ts +21 -0
- package/lib/components/attachment-item/attachment-item.module.d.ts +13 -0
- package/lib/components/attachment-modal/attachment-modal.module.d.ts +12 -0
- package/lib/components/attachment-modal/attachments/attachments.component.d.ts +50 -0
- package/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +12 -0
- package/lib/components/confirmation-dialog/confirmation-dialog.module.d.ts +10 -0
- package/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.d.ts +17 -0
- package/lib/components/display-suitable-icon/display-suitable-icon/icon.service.d.ts +8 -0
- package/lib/components/display-suitable-icon/display-suitable-icon.module.d.ts +8 -0
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.d.ts +137 -0
- package/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.d.ts +12 -0
- package/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.d.ts +13 -0
- package/lib/components/dynamic-tabs/dynamic-tabs.module.d.ts +11 -0
- package/lib/components/file-manger/components/add-to-collection/add-to-collection.component.d.ts +31 -0
- package/lib/components/file-manger/components/copy/copy.component.d.ts +32 -0
- package/lib/components/file-manger/components/create-directory/create-directory.component.d.ts +24 -0
- package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts +108 -0
- package/lib/components/file-manger/components/creation-type/creation-type.component.d.ts +11 -0
- package/lib/components/file-manger/components/delete/delete.component.d.ts +30 -0
- package/lib/components/file-manger/components/folder-modal/folder-modal.component.d.ts +56 -0
- package/lib/components/file-manger/components/loan-request/loan-request.component.d.ts +23 -0
- package/lib/components/file-manger/components/move/move.component.d.ts +32 -0
- package/lib/components/file-manger/components/publish-dialog/publish-dialog.component.d.ts +32 -0
- package/lib/components/file-manger/components/rename/rename.component.d.ts +25 -0
- package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +95 -0
- package/lib/components/file-manger/components/share-dialog/share-dialog.component.d.ts +58 -0
- package/lib/components/file-manger/components/sidepanel/sidepanel.component.d.ts +62 -0
- package/lib/components/file-manger/components/template-modal/template-modal.component.d.ts +34 -0
- package/lib/components/file-manger/components/transfer-doc/transfer-doc.component.d.ts +24 -0
- package/lib/components/file-manger/components/update-modal/update-modal.component.d.ts +194 -0
- package/lib/components/file-manger/file-manager.abstract.d.ts +169 -0
- package/lib/components/file-manger/file-manger.module.d.ts +55 -0
- package/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.d.ts +2 -0
- package/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.d.ts +17 -0
- package/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.d.ts +10 -0
- package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +44 -0
- package/lib/components/permissions/permission.service.d.ts +21 -0
- package/lib/components/permissions/permissions/permissions.component.d.ts +48 -0
- package/lib/components/permissions/permissions-template/permissions-template.component.d.ts +22 -0
- package/lib/components/permissions/permissions.module.d.ts +21 -0
- package/lib/components/select-users-by-department/select-users-by-department.module.d.ts +13 -0
- package/lib/components/select-users-by-department/select-users-by-departments/department-management.service.d.ts +10 -0
- package/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.d.ts +33 -0
- package/lib/components/user/user/user.component.d.ts +12 -0
- package/lib/components/user/user.module.d.ts +10 -0
- package/lib/directive/directive.module.d.ts +3 -2
- package/lib/directive/drag-and-drop/drag-and-drop.directive.d.ts +11 -0
- package/lib/shared/libraryShared.module.d.ts +1 -1
- package/lib/shared-services/dialog-mangment.service.d.ts +15 -0
- package/lib/shared-services/dynamic-form.service.d.ts +24 -0
- package/lib/shared-services/file-manager.adapter.d.ts +48 -0
- package/lib/shared-services/file-manager.service.d.ts +89 -0
- package/lib/shared-services/global-pdftron.service.d.ts +10 -0
- package/lib/shared-services/mainfolder.service.d.ts +29 -0
- package/lib/shared-services/publishing-document.service.d.ts +25 -0
- package/lib/shared-services/recently-viewed.service.d.ts +17 -0
- package/lib/shared-services/shared-docs.service.d.ts +21 -0
- package/lib/shared-services/shared-services.module.d.ts +7 -0
- package/lib/shared-services/upload-file.service.d.ts +10 -0
- package/lib/shared-services/upload-managment.service.d.ts +72 -0
- package/lib/shared-services/user.service.d.ts +12 -0
- package/package.json +7 -6
- package/public-api.d.ts +61 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { UpdateModalComponent } from '../update-modal/update-modal.component';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { Utils } from 'formiojs';
|
|
6
|
+
import { UserPreferenceValues } from '../../../../Core/services/user/user-preferences.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "../../../../Core/services/user/user-preferences.service";
|
|
10
|
+
import * as i3 from "../../../../shared-services/dialog-mangment.service";
|
|
11
|
+
import * as i4 from "../../../../shared-services/dynamic-form.service";
|
|
12
|
+
import * as i5 from "../../../documents/services/documents.service";
|
|
13
|
+
import * as i6 from "../../../cts-tags/services/tags-api.service";
|
|
14
|
+
import * as i7 from "../../../../Core/services/translation/translation.service";
|
|
15
|
+
import * as i8 from "@angular/material/dialog";
|
|
16
|
+
import * as i9 from "../../../../shared-services/shared-docs.service";
|
|
17
|
+
import * as i10 from "@angular/material/icon";
|
|
18
|
+
import * as i11 from "../../../dynamic-tabs/dynamic-tabs/dynamic-tabs.component";
|
|
19
|
+
import * as i12 from "../../../comments/components/comments-dashlet/comments-dashlet.component";
|
|
20
|
+
import * as i13 from "../../../activities-log/activities-log/activities-log.component";
|
|
21
|
+
import * as i14 from "../../../permissions/permissions/permissions.component";
|
|
22
|
+
import * as i15 from "../../../correspondence-relation/components/versions/versions.component";
|
|
23
|
+
import * as i16 from "../../../user/user/user.component";
|
|
24
|
+
import * as i17 from "../../../mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component";
|
|
25
|
+
import * as i18 from "../../../cts-tags/components/correspondence-tags/correspondence-tags.component";
|
|
26
|
+
import * as i19 from "../../../../directive/rtl/set-rtl.directive";
|
|
27
|
+
import * as i20 from "../../../../directive/permissions/permissions.directive";
|
|
28
|
+
import * as i21 from "@angular/material/tooltip";
|
|
29
|
+
import * as i22 from "@angular/cdk/bidi";
|
|
30
|
+
import * as i23 from "@ngx-translate/core";
|
|
31
|
+
import * as i24 from "../../../../pipes/localized-date.pipe";
|
|
32
|
+
export class SidepanelComponent {
|
|
33
|
+
constructor(datePipe, userPreferenceService, dialogMangmentService, dynamicFormService, documentService, tagsApiService, translationService, dialog, shared) {
|
|
34
|
+
this.datePipe = datePipe;
|
|
35
|
+
this.userPreferenceService = userPreferenceService;
|
|
36
|
+
this.dialogMangmentService = dialogMangmentService;
|
|
37
|
+
this.dynamicFormService = dynamicFormService;
|
|
38
|
+
this.documentService = documentService;
|
|
39
|
+
this.tagsApiService = tagsApiService;
|
|
40
|
+
this.translationService = translationService;
|
|
41
|
+
this.dialog = dialog;
|
|
42
|
+
this.shared = shared;
|
|
43
|
+
this.onDestroy$ = new Subject();
|
|
44
|
+
this.menuOpen = false;
|
|
45
|
+
this.sourcePage = 'files';
|
|
46
|
+
this.allowAddAndBlock = true;
|
|
47
|
+
this.sideMenuLoading = false;
|
|
48
|
+
this.onCloseSideMenu = new EventEmitter();
|
|
49
|
+
this.rtlEnabled = false;
|
|
50
|
+
this.isArabic = true;
|
|
51
|
+
this.showDetails = false;
|
|
52
|
+
this.myTabs = [];
|
|
53
|
+
this.sharedData = [];
|
|
54
|
+
this.sharedList = [];
|
|
55
|
+
this.sharedListUser = [];
|
|
56
|
+
// ----------------------------------------------open file side menu details-----------------------------------------------------------
|
|
57
|
+
this.customeHeader = 'lock,dc:creator,dc:contributors,gdoc:countryCategoryCode,gdoc:countryCode,gdoc:agencyNameCode,gdoc:agencyCategoryCode';
|
|
58
|
+
}
|
|
59
|
+
ngOnChanges(changes) {
|
|
60
|
+
if (this.menuOpen) {
|
|
61
|
+
this.openSideMenuDetails();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
ngOnInit() {
|
|
65
|
+
this.myTabs = [
|
|
66
|
+
{
|
|
67
|
+
label: 'Details',
|
|
68
|
+
icon: 'subtitles',
|
|
69
|
+
template: this.detailsTemplate,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
label: 'comments',
|
|
73
|
+
icon: 'textsms',
|
|
74
|
+
template: this.commentsTemplate,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
label: 'permissions',
|
|
78
|
+
icon: 'lock',
|
|
79
|
+
template: this.permissionsTemplate,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
label: 'activity',
|
|
83
|
+
icon: 'list_alt',
|
|
84
|
+
template: this.activityTemplate,
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
if (this.userPreferenceService) {
|
|
88
|
+
this.userPreferenceService
|
|
89
|
+
.select(UserPreferenceValues.Locale)
|
|
90
|
+
.pipe(takeUntil(this.onDestroy$))
|
|
91
|
+
.subscribe((locale) => {
|
|
92
|
+
this.rtlEnabled = locale === 'ar' ? true : false;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
this.tagsSubscription = this.tagsApiService.getUpdatedFile.subscribe((res) => {
|
|
96
|
+
this.documentService
|
|
97
|
+
.getDocument(this.selectedItem.entity.uid)
|
|
98
|
+
.subscribe((res) => {
|
|
99
|
+
this.sideMenuFileDetails = res;
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
this.languageSubscription = this.translationService.isArabic$.subscribe((res) => {
|
|
103
|
+
this.isArabic = res;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
openUpdateFromSideMenu() {
|
|
107
|
+
this.closeDetailsMenu();
|
|
108
|
+
this.openUpdateModal();
|
|
109
|
+
}
|
|
110
|
+
openUpdateModal() {
|
|
111
|
+
this.dialog.open(UpdateModalComponent, {
|
|
112
|
+
width: '40%',
|
|
113
|
+
height: '70%',
|
|
114
|
+
maxWidth: 'auto',
|
|
115
|
+
panelClass: 'watcher-dialog-container',
|
|
116
|
+
data: {
|
|
117
|
+
id: this.selectedItem.id,
|
|
118
|
+
type: this.selectedItem.entity.type,
|
|
119
|
+
code: this.selectedItem.entity.properties['gdoc:documentTypeCode'] ? this.selectedItem.entity.properties['gdoc:documentTypeCode'] : this.selectedItem.entity.type,
|
|
120
|
+
isDirectory: this.selectedItem.isDirectory,
|
|
121
|
+
},
|
|
122
|
+
disableClose: true,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
openSideMenuDetails() {
|
|
126
|
+
this.sideMenuLoading = true;
|
|
127
|
+
this.sideMenuFileDetails = {};
|
|
128
|
+
this.sharedListUser = [];
|
|
129
|
+
// this.showDetails = false; // if it was open close it then open it again to allow tabs to be rerendred
|
|
130
|
+
this.dynamicForm = null;
|
|
131
|
+
// if (this.selectedItem.isDirectory === false) {
|
|
132
|
+
this.dynamicFormService
|
|
133
|
+
.getDynamicForm(this.selectedItem.entity.properties['gdoc:documentTypeCode'] ? this.selectedItem.entity.properties['gdoc:documentTypeCode'] : this.selectedItem.entity.type)
|
|
134
|
+
.subscribe((res) => {
|
|
135
|
+
if (res && res['components'] && res['components'].length > 0) {
|
|
136
|
+
this.dynamicForm = res;
|
|
137
|
+
let prefix = res.prefix;
|
|
138
|
+
Utils.eachComponent(res.components, (comp) => {
|
|
139
|
+
if (comp.type === 'userSelector') {
|
|
140
|
+
// this.userSelectorKeys.push(comp.fixedKey);
|
|
141
|
+
let compPrefix = prefix[comp.fixedKey]
|
|
142
|
+
? prefix[comp.fixedKey]
|
|
143
|
+
: '';
|
|
144
|
+
if (compPrefix) {
|
|
145
|
+
this.customeHeader =
|
|
146
|
+
this.customeHeader +
|
|
147
|
+
',' +
|
|
148
|
+
compPrefix +
|
|
149
|
+
':' +
|
|
150
|
+
comp.fixedKey;
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
this.customeHeader =
|
|
154
|
+
this.customeHeader + ',' + comp.fixedKey;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
this.documentService
|
|
160
|
+
.getDocument(this.selectedItem.entity.uid, {
|
|
161
|
+
'X-NXfetch-document': this.customeHeader,
|
|
162
|
+
})
|
|
163
|
+
.subscribe((res) => {
|
|
164
|
+
this.sideMenuFileDetails = res;
|
|
165
|
+
this.dynamicFormData = res === null || res === void 0 ? void 0 : res.properties;
|
|
166
|
+
this.showDetails = true;
|
|
167
|
+
this.sideMenuLoading = false;
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
this.getSharesByMe();
|
|
171
|
+
// } else {
|
|
172
|
+
// setTimeout(() => {
|
|
173
|
+
// this.sideMenuFileDetails = this.selectedItem.entity
|
|
174
|
+
// this.showDetails = true
|
|
175
|
+
// }, 1000);
|
|
176
|
+
// }
|
|
177
|
+
}
|
|
178
|
+
closeDetailsMenu() {
|
|
179
|
+
this.showDetails = false;
|
|
180
|
+
this.sideMenuLoading = false;
|
|
181
|
+
this.onCloseSideMenu.emit();
|
|
182
|
+
}
|
|
183
|
+
// closeDetailsSideMenu(event) {
|
|
184
|
+
// if (!this.permissionService.disableClickOutSide) {
|
|
185
|
+
// if (
|
|
186
|
+
// event.id !== 'see_details' &&
|
|
187
|
+
// !this.checkForClass(event.className)
|
|
188
|
+
// ) {
|
|
189
|
+
// this.showDetails = false;
|
|
190
|
+
// }
|
|
191
|
+
// }
|
|
192
|
+
// }
|
|
193
|
+
checkForClass(className) {
|
|
194
|
+
let classes = [
|
|
195
|
+
'detailed-menu',
|
|
196
|
+
'ng-tag-label',
|
|
197
|
+
'ng-option-label',
|
|
198
|
+
'ng-star-inserted',
|
|
199
|
+
];
|
|
200
|
+
let classFounded = false;
|
|
201
|
+
classes.map((item) => {
|
|
202
|
+
if (className.includes(item)) {
|
|
203
|
+
classFounded = true;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
return classFounded;
|
|
207
|
+
}
|
|
208
|
+
getSharesByMe() {
|
|
209
|
+
this.sharedSub = this.shared.getSharesByMe(this.selectedItem.entity.uid).subscribe(res => {
|
|
210
|
+
this.sharedListUser = res;
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
ngOnDestroy() {
|
|
214
|
+
this.tagsSubscription ? this.tagsSubscription.unsubscribe() : null;
|
|
215
|
+
this.languageSubscription ? this.languageSubscription.unsubscribe() : null;
|
|
216
|
+
this.onDestroy$.next();
|
|
217
|
+
this.onDestroy$.complete();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
SidepanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SidepanelComponent, deps: [{ token: i1.DatePipe }, { token: i2.UserPreferencesService }, { token: i3.DialogMangmentService }, { token: i4.DynamicFormService }, { token: i5.DocumentsService }, { token: i6.TagsApiService }, { token: i7.TranslationService }, { token: i8.MatDialog }, { token: i9.SharedDocsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
221
|
+
SidepanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: SidepanelComponent, selector: "app-sidepanel", inputs: { selectedItem: "selectedItem", menuOpen: "menuOpen", sourcePage: "sourcePage", allowAddAndBlock: "allowAddAndBlock" }, outputs: { onCloseSideMenu: "onCloseSideMenu" }, viewQueries: [{ propertyName: "detailsTemplate", first: true, predicate: ["detailsTemplate"], descendants: true, static: true }, { propertyName: "commentsTemplate", first: true, predicate: ["commentsTemplate"], descendants: true, static: true }, { propertyName: "activityTemplate", first: true, predicate: ["activityTemplate"], descendants: true, static: true }, { propertyName: "permissionsTemplate", first: true, predicate: ["permissionsTemplate"], descendants: true, static: true }, { propertyName: "filesTemplate", first: true, predicate: ["filesTemplate"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"side-menu-details\" SetRtl>\r\n <div class=\"h-full\" *ngIf=\"selectedItem && showDetails && !sideMenuLoading\">\r\n <div class=\"\">\r\n <div class=\"mb-3 px-5 py-1 w-100 flex border-b-2 items-center\">\r\n <title-with-icon class=\"-my-1.5\" [context]=\"selectedItem.entity\" [showTitle]=\"false\"></title-with-icon>\r\n\r\n <div class=\"justify-center flex flex-col flex-1 flex-grow-0 w-7/12\" *ngIf=\"!selectedItem.isDirectory\">\r\n <div class=\"text-base text-gray-500 font-bold truncate\"\r\n [title]=\"selectedItem.entity?.properties?.['file:content']?.['name']\"\r\n [alt]=\"selectedItem.entity?.properties?.['file:content']?.['name']\">\r\n {{selectedItem.entity?.properties?.['file:content']?.['name']}}\r\n </div>\r\n <div class=\"text-gray-500 text-sm\">\r\n {{((selectedItem.entity?.properties?.['file:content']?.['length']) / (1024 *\r\n 1024)).toFixed(2) }}\r\n MB\r\n </div>\r\n </div>\r\n <div class=\"\r\n d-flex\r\n items-center\r\n text-base text-gray-500\r\n font-bold\r\n \" *ngIf=\"selectedItem.isDirectory\">\r\n {{ selectedItem?.name }}\r\n </div>\r\n <ng-container *permission=\"{name: 'lockOwnerIfLocked', entity: selectedItem.entity}\">\r\n <mat-icon class=\"text-gray-500 cursor-pointer mx-3\"\r\n *permission=\"{name: 'canUpdate', entity: selectedItem.entity}\"\r\n matTooltip=\"{{ 'FOLDERS.UPDATE_DETAILS' | translate }}\"\r\n (click)=\"openUpdateFromSideMenu()\">edit</mat-icon>\r\n </ng-container>\r\n </div>\r\n <mat-icon class=\"close-icon text-gray-500\" (click)=\"closeDetailsMenu()\"\r\n [matTooltip]=\"'BUTTONS.CLOSE' | translate\">close</mat-icon>\r\n </div>\r\n <div class=\"dynamic-section\">\r\n <div class=\"mx-2 h-full\">\r\n <app-dynamic-tabs [tabs]=\"myTabs\"></app-dynamic-tabs>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"h-full font-bold d-flex justify-center items-center\" *ngIf=\"sideMenuLoading\">\r\n {{ \"loading\" | translate }}\r\n </div>\r\n</div>\r\n\r\n<!-- Comments -->\r\n<ng-template #commentsTemplate>\r\n <div class=\"overflow-auto h-full\">\r\n <app-comments-dashlet [correspondence]=\"sideMenuFileDetails\" [entityId]=\"selectedItem.entity.uid\"\r\n [showaddcomment]=\"true\" [row]=\"false\">\r\n </app-comments-dashlet>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- myLogFile -->\r\n<ng-template #activityTemplate>\r\n <!-- <cts-viewer-log [correspondence]=\"selectedItem.entity\"></cts-viewer-log> -->\r\n <div class=\"h-full mt-3\">\r\n <app-activities-log [documentId]=\"selectedItem.entity.uid\" [documentTitle]=\"selectedItem.entity.title\"\r\n [file]=\"sideMenuFileDetails\"></app-activities-log>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #permissionsTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <app-permissions [sourcePage]=\"sourcePage\"\r\n [allowAddAndBlock]=\"allowAddAndBlock\" [document]=\"sideMenuFileDetails\"\r\n [documentId]=\"selectedItem.entity.uid\"></app-permissions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Files Tab -->\r\n<ng-template #filesTemplate>\r\n <div class=\"h-full overflow-auto px-2 mt-3\">\r\n <cts-versions [file]=\"selectedItem.entity\"></cts-versions>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Details -->\r\n<ng-template #detailsTemplate>\r\n <div class=\"pb-2 mt-3 h-full px-2 overflow-auto\">\r\n <div class=\"static-data\">\r\n <div class=\"mt-5\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.TITLE_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:title\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.DESCRIPTION_ONLY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"dc:description\"] }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CREATED_AT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:created\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.LAST_MODIFIED\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{\r\n dynamicFormData[\"dc:modified\"]\r\n | localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')\r\n }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"super-document-fields\">\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentSubject\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_SUBJECT\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentSubject\"] ? dynamicFormData[\"gdoc:documentSubject\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:documentNumber\"] ? dynamicFormData[\"gdoc:documentNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:documentReferenceNumber\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_REF_NUMBER\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\" dir=\"ltr\">\r\n {{ dynamicFormData[\"gdoc:documentReferenceNumber\"] ?\r\n dynamicFormData[\"gdoc:documentReferenceNumber\"] : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:gDocumentDate\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_DATE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:gDocumentDate\"] ? (dynamicFormData[\"gdoc:gDocumentDate\"] |\r\n localizedDate: \"dd MMMM yyyy\":(isArabic? 'ar-AR' : 'en-US')) : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.category && selectedItem.entity.category !== {})'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.category && selectedItem.entity.category !== {}) ?\r\n (isArabic ? selectedItem.entity.category.arabicName : selectedItem.entity.category.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.CATEGORY_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.categoryType && selectedItem.entity.categoryType.arabicName) ?\r\n (isArabic ? selectedItem.entity.categoryType.arabicName :\r\n selectedItem.entity.categoryType.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='(selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.MAIN_TOPIC\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.mainTopic && selectedItem.entity.mainTopic.arabicName) ?\r\n (isArabic ? selectedItem.entity.mainTopic.arabicName :\r\n selectedItem.entity.mainTopic.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\"\r\n *ngIf='(selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName)'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DOCUMENT_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ (selectedItem.entity.documentType && selectedItem.entity.documentType.arabicName) ?\r\n (isArabic ? selectedItem.entity.documentType.arabicName :\r\n selectedItem.entity.documentType.englishTitle)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:secrecyLevel\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.SCRECY_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_SecrecyLevel.' + dynamicFormData[\"gdoc:secrecyLevel\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:importance\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.IMPORTANCE_LEVEL\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ 'vocabulary.VOC_Importance.' + dynamicFormData[\"gdoc:importance\"] | translate}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='selectedItem.entity.department'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ selectedItem.entity.department ?\r\n (isArabic ? selectedItem.entity.department.arabicName :\r\n selectedItem.entity.department.englishName)\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:departmentCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.DEPARTMENT_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:departmentCode\"] ? dynamicFormData[\"gdoc:departmentCode\"] : '--'}}\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:agencyNameCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.AGENCY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:agencyNameCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:agencyNameCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCategoryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_CATEGORY_CODE\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCategoryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCategoryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:countryCode\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.COUNTRY_NAME\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:countryCode\"] ?\r\n (isArabic ? dynamicFormData[\"gdoc:countryCode\"]['properties']['label_ar']\r\n : dynamicFormData[\"gdoc:countryCode\"]['properties']['label_en'])\r\n : '--'}}\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf='dynamicFormData[\"gdoc:remarks\"]'>\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"CREATE.REMARKS\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm\">\r\n {{ dynamicFormData[\"gdoc:remarks\"] ? dynamicFormData[\"gdoc:remarks\"] : '--'}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mt-3\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.BY\" | translate }}\r\n </div>\r\n <div class=\"text-gray-900 text-sm d-flex\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl\">\r\n <app-user [user]=\"dynamicFormData['dc:creator']\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"dynamicFormData['dc:contributors'].length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{ \"FOLDERS.CONTRUBITORS\" | translate }}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\"\r\n *ngFor=\"let user of dynamicFormData['dc:contributors']\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"sharedListUser.length > 0\">\r\n <div class=\"text-gray-500 font-bold text-base\">\r\n {{\"share.shareWith\" | translate}}\r\n </div>\r\n <div class=\"d-flex flex-wrap\">\r\n <div class=\"d-flex items-center bg-gray-100 rounded-xl mb-2\" *ngFor=\"let user of sharedListUser\">\r\n <app-user [user]=\"user\"></app-user>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5\" *ngIf=\"dynamicForm && dynamicFormData\">\r\n <app-multiple-dynamic-form-viewer [form]=\"dynamicForm\"\r\n [data]=\"dynamicFormData\"></app-multiple-dynamic-form-viewer>\r\n </div>\r\n <div class=\"tags-wrappers relative px-0 py-3\">\r\n <cts-correspondence-tags [correspondence]=\"sideMenuFileDetails\" [customClass]=\"'tags-dms-wrapper'\"\r\n [useParams]=\"true\" [addCustomApiName]=\"'Services.TagDocument'\"\r\n [deleteCustomApiName]=\"'Services.UntagDocument'\">\r\n </cts-correspondence-tags>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [""], components: [{ type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i11.DynamicTabsComponent, selector: "app-dynamic-tabs", inputs: ["tabs", "selectedIndex"] }, { type: i12.CommentsDashletComponent, selector: "app-comments-dashlet", inputs: ["entityId", "correspondence", "row", "showaddcomment", "showCommentActions"] }, { type: i13.ActivitiesLogComponent, selector: "app-activities-log", inputs: ["documentId", "file", "documentTitle"], outputs: ["success"] }, { type: i14.PermissionsComponent, selector: "app-permissions", inputs: ["documentId", "document", "allowAddAndBlock", "sourcePage"] }, { type: i15.VersionsComponent, selector: "cts-versions", inputs: ["selectedVersion", "file", "actions"], outputs: ["handleActions"] }, { type: i16.UserComponent, selector: "app-user", inputs: ["user", "type"] }, { type: i17.MultipleDynamicFormViewerComponent, selector: "app-multiple-dynamic-form-viewer", inputs: ["form", "data"] }, { type: i18.CorrespondenceTagsComponent, selector: "cts-correspondence-tags", inputs: ["correspondence", "customClass", "addCustomApiName", "deleteCustomApiName", "useParams", "accordionMode", "systemTags", "accordionOpen", "title"] }], directives: [{ type: i19.SetRtlDirective, selector: "[SetRtl]" }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i20.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i21.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i22.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i23.TranslatePipe, "localizedDate": i24.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: SidepanelComponent, decorators: [{
|
|
223
|
+
type: Component,
|
|
224
|
+
args: [{
|
|
225
|
+
selector: 'app-sidepanel',
|
|
226
|
+
templateUrl: './sidepanel.component.html',
|
|
227
|
+
styleUrls: ['./sidepanel.component.scss'],
|
|
228
|
+
encapsulation: ViewEncapsulation.None
|
|
229
|
+
}]
|
|
230
|
+
}], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i2.UserPreferencesService }, { type: i3.DialogMangmentService }, { type: i4.DynamicFormService }, { type: i5.DocumentsService }, { type: i6.TagsApiService }, { type: i7.TranslationService }, { type: i8.MatDialog }, { type: i9.SharedDocsService }]; }, propDecorators: { detailsTemplate: [{
|
|
231
|
+
type: ViewChild,
|
|
232
|
+
args: ['detailsTemplate', { static: true }]
|
|
233
|
+
}], commentsTemplate: [{
|
|
234
|
+
type: ViewChild,
|
|
235
|
+
args: ['commentsTemplate', { static: true }]
|
|
236
|
+
}], activityTemplate: [{
|
|
237
|
+
type: ViewChild,
|
|
238
|
+
args: ['activityTemplate', { static: true }]
|
|
239
|
+
}], permissionsTemplate: [{
|
|
240
|
+
type: ViewChild,
|
|
241
|
+
args: ['permissionsTemplate', { static: true }]
|
|
242
|
+
}], filesTemplate: [{
|
|
243
|
+
type: ViewChild,
|
|
244
|
+
args: ['filesTemplate', { static: true }]
|
|
245
|
+
}], selectedItem: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], menuOpen: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], sourcePage: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}], allowAddAndBlock: [{
|
|
252
|
+
type: Input
|
|
253
|
+
}], onCloseSideMenu: [{
|
|
254
|
+
type: Output
|
|
255
|
+
}] } });
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaWRlcGFuZWwvc2lkZXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaWRlcGFuZWwvc2lkZXBhbmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBOEIsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZLLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSTlFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBMEIsTUFBTSx5REFBeUQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXdkgsTUFBTSxPQUFPLGtCQUFrQjtJQW1DN0IsWUFBbUIsUUFBa0IsRUFDM0IscUJBQTZDLEVBQzlDLHFCQUE0QyxFQUMzQyxrQkFBc0MsRUFDdEMsZUFBaUMsRUFDakMsY0FBOEIsRUFDOUIsa0JBQXNDLEVBQ3RDLE1BQWlCLEVBQ2pCLE1BQXlCO1FBUmhCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDM0IsMEJBQXFCLEdBQXJCLHFC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O3NCQURmLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUcvQyxnQkFBZ0I7c0JBRGYsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRy9DLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR2xELGFBQWE7c0JBRFosU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUluQyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVXBkYXRlTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi91cGRhdGUtbW9kYWwvdXBkYXRlLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ01hbmdtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9kaWFsb2ctbWFuZ21lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IER5bmFtaWNGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFNoYXJlZERvY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkLXNlcnZpY2VzL3NoYXJlZC1kb2NzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJ2Zvcm1pb2pzJztcclxuaW1wb3J0IHsgVXNlclByZWZlcmVuY2VWYWx1ZXMsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9Db3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhZ3NBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY3RzLXRhZ3Mvc2VydmljZXMvdGFncy1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zaWRlcGFuZWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NpZGVwYW5lbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZGVwYW5lbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAsIE9uRGVzdHJveXtcclxuICBAVmlld0NoaWxkKCdkZXRhaWxzVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGRldGFpbHNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdjb21tZW50c1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBjb21tZW50c1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5VGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGFjdGl2aXR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgncGVybWlzc2lvbnNUZW1wbGF0ZScsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcGVybWlzc2lvbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdmaWxlc1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBmaWxlc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBwcml2YXRlIG9uRGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkSXRlbTogYW55O1xyXG4gIEBJbnB1dCgpIG1lbnVPcGVuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc291cmNlUGFnZSA9ICdmaWxlcyc7XHJcbiAgQElucHV0KCkgYWxsb3dBZGRBbmRCbG9jayA9IHRydWU7XHJcbiAgc2lkZU1lbnVMb2FkaW5nID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uQ2xvc2VTaWRlTWVudSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZHluYW1pY0Zvcm07IC8vIGNvbnRhaW4gZHluYW1pYyBmb3JtXHJcbiAgZHluYW1pY0Zvcm1EYXRhOyAvLyBjb250YWluIGFsbCBmaWxlIGRhdGEgaW5jbHVkaW5nIGR5bmFtaWMgZm9ybSBkYXRhXHJcbiAgcnRsRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGlzQXJhYmljID0gdHJ1ZTtcclxuICBzaWRlTWVudUZpbGVEZXRhaWxzOyAvLyBob2xkIGRhdGEgb2YgZGFjdW1lbnQgdG8gYmUgc2hvd24gaW4gc2lkZSBtZW51IGRldGFpbHNcclxuICBzaG93RGV0YWlscyA9IGZhbHNlO1xyXG4gIG15VGFicyA9IFtdO1xyXG4gIG11bHRpU2VsZWN0ZWRrZXlzOiBzdHJpbmdbXTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHRhZ3NTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBzaGFyZWRTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBzaGFyZWREYXRhID0gW107XHJcbiAgc2hhcmVkTGlzdCA9IFtdO1xyXG4gIHNoYXJlZExpc3RVc2VyID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIHVzZXJQcmVmZXJlbmNlU2VydmljZTogVXNlclByZWZlcmVuY2VzU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dNYW5nbWVudFNlcnZpY2U6IERpYWxvZ01hbmdtZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1TZXJ2aWNlOiBEeW5hbWljRm9ybVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgdGFnc0FwaVNlcnZpY2U6IFRhZ3NBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHNoYXJlZDogU2hhcmVkRG9jc1NlcnZpY2UsKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubWVudU9wZW4pIHtcclxuICAgICAgdGhpcy5vcGVuU2lkZU1lbnVEZXRhaWxzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubXlUYWJzID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdEZXRhaWxzJyxcclxuICAgICAgICBpY29uOiAnc3VidGl0bGVzJyxcclxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5kZXRhaWxzVGVtcGxhdGUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBsYWJlbDogJ2NvbW1lbnRzJyxcclxuICAgICAgICBpY29uOiAndGV4dHNtcycsXHJcbiAgICAgICAgdGVtcGxhdGU6IHRoaXMuY29tbWVudHNUZW1wbGF0ZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGxhYmVsOiAncGVybWlzc2lvbnMnLFxyXG4gICAgICAgIGljb246ICdsb2NrJyxcclxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5wZXJtaXNzaW9uc1RlbXBsYXRlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbGFiZWw6ICdhY3Rpdml0eScsXHJcbiAgICAgICAgaWNvbjogJ2xpc3RfYWx0JyxcclxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5hY3Rpdml0eVRlbXBsYXRlLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICAgIGlmICh0aGlzLnVzZXJQcmVmZXJlbmNlU2VydmljZSkge1xyXG4gICAgICB0aGlzLnVzZXJQcmVmZXJlbmNlU2VydmljZVxyXG4gICAgICAgIC5zZWxlY3QoVXNlclByZWZlcmVuY2VWYWx1ZXMuTG9jYWxlKVxyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5ydGxFbmFibGVkID0gbG9jYWxlID09PSAnYXInID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWdzU3Vic2NyaXB0aW9uID0gdGhpcy50YWdzQXBpU2VydmljZS5nZXRVcGRhdGVkRmlsZS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZVxyXG4gICAgICAgICAgLmdldERvY3VtZW50KHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS51aWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaWRlTWVudUZpbGVEZXRhaWxzID0gcmVzO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmlzQXJhYmljJC5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmlzQXJhYmljID0gcmVzO1xyXG5cclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9wZW5VcGRhdGVGcm9tU2lkZU1lbnUoKSB7XHJcbiAgICB0aGlzLmNsb3NlRGV0YWlsc01lbnUoKTtcclxuICAgIHRoaXMub3BlblVwZGF0ZU1vZGFsKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuVXBkYXRlTW9kYWwoKSB7XHJcbiAgICB0aGlzLmRpYWxvZy5vcGVuKFVwZGF0ZU1vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiAnNDAlJyxcclxuICAgICAgaGVpZ2h0OiAnNzAlJyxcclxuICAgICAgbWF4V2lkdGg6ICdhdXRvJyxcclxuICAgICAgcGFuZWxDbGFzczogJ3dhdGNoZXItZGlhbG9nLWNvbnRhaW5lcicsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpZDogdGhpcy5zZWxlY3RlZEl0ZW0uaWQsXHJcbiAgICAgICAgdHlwZTogdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnR5cGUsXHJcbiAgICAgICAgY29kZTogdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddID8gdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnByb3BlcnRpZXNbJ2dkb2M6ZG9jdW1lbnRUeXBlQ29kZSddIDogdGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnR5cGUsXHJcbiAgICAgICAgaXNEaXJlY3Rvcnk6IHRoaXMuc2VsZWN0ZWRJdGVtLmlzRGlyZWN0b3J5LFxyXG4gICAgICB9LFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1vcGVuIGZpbGUgc2lkZSBtZW51IGRldGFpbHMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gIGN1c3RvbWVIZWFkZXIgPVxyXG4gICAgJ2xvY2ssZGM6Y3JlYXRvcixkYzpjb250cmlidXRvcnMsZ2RvYzpjb3VudHJ5Q2F0ZWdvcnlDb2RlLGdkb2M6Y291bnRyeUNvZGUsZ2RvYzphZ2VuY3lOYW1lQ29kZSxnZG9jOmFnZW5jeUNhdGVnb3J5Q29kZSc7XHJcblxyXG4gIG9wZW5TaWRlTWVudURldGFpbHMoKSB7XHJcbiAgICB0aGlzLnNpZGVNZW51TG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNpZGVNZW51RmlsZURldGFpbHMgPSB7fTtcclxuICAgIHRoaXMuc2hhcmVkTGlzdFVzZXIgPSBbXTtcclxuICAgIC8vIHRoaXMuc2hvd0RldGFpbHMgPSBmYWxzZTsgLy8gaWYgaXQgd2FzIG9wZW4gY2xvc2UgaXQgdGhlbiBvcGVuIGl0IGFnYWluIHRvIGFsbG93IHRhYnMgdG8gYmUgcmVyZW5kcmVkXHJcbiAgICB0aGlzLmR5bmFtaWNGb3JtID0gbnVsbDtcclxuICAgIC8vIGlmICh0aGlzLnNlbGVjdGVkSXRlbS5pc0RpcmVjdG9yeSA9PT0gZmFsc2UpIHtcclxuICAgIHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlXHJcbiAgICAgIC5nZXREeW5hbWljRm9ybSh0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllc1snZ2RvYzpkb2N1bWVudFR5cGVDb2RlJ10gPyB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkucHJvcGVydGllc1snZ2RvYzpkb2N1bWVudFR5cGVDb2RlJ10gOiB0aGlzLnNlbGVjdGVkSXRlbS5lbnRpdHkudHlwZSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXNbJ2NvbXBvbmVudHMnXSAmJiByZXNbJ2NvbXBvbmVudHMnXS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNGb3JtID0gcmVzO1xyXG4gICAgICAgICAgbGV0IHByZWZpeCA9IHJlcy5wcmVmaXg7XHJcbiAgICAgICAgICBVdGlscy5lYWNoQ29tcG9uZW50KHJlcy5jb21wb25lbnRzLCAoY29tcCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY29tcC50eXBlID09PSAndXNlclNlbGVjdG9yJykge1xyXG4gICAgICAgICAgICAgIC8vIHRoaXMudXNlclNlbGVjdG9yS2V5cy5wdXNoKGNvbXAuZml4ZWRLZXkpO1xyXG4gICAgICAgICAgICAgIGxldCBjb21wUHJlZml4ID0gcHJlZml4W2NvbXAuZml4ZWRLZXldXHJcbiAgICAgICAgICAgICAgICA/IHByZWZpeFtjb21wLmZpeGVkS2V5XVxyXG4gICAgICAgICAgICAgICAgOiAnJztcclxuICAgICAgICAgICAgICBpZiAoY29tcFByZWZpeCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21lSGVhZGVyID1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXN0b21lSGVhZGVyICtcclxuICAgICAgICAgICAgICAgICAgJywnICtcclxuICAgICAgICAgICAgICAgICAgY29tcFByZWZpeCArXHJcbiAgICAgICAgICAgICAgICAgICc6JyArXHJcbiAgICAgICAgICAgICAgICAgIGNvbXAuZml4ZWRLZXk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZUhlYWRlciA9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tZUhlYWRlciArICcsJyArIGNvbXAuZml4ZWRLZXk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0RG9jdW1lbnQodGhpcy5zZWxlY3RlZEl0ZW0uZW50aXR5LnVpZCwge1xyXG4gICAgICAgICAgICAnWC1OWGZldGNoLWRvY3VtZW50JzogdGhpcy5jdXN0b21lSGVhZGVyLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVNZW51RmlsZURldGFpbHMgPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm1EYXRhID0gcmVzPy5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dEZXRhaWxzID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5zaWRlTWVudUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZ2V0U2hhcmVzQnlNZSgpO1xyXG5cclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuc2lkZU1lbnVGaWxlRGV0YWlscyA9IHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eVxyXG4gICAgLy8gICAgIHRoaXMuc2hvd0RldGFpbHMgPSB0cnVlXHJcbiAgICAvLyAgIH0sIDEwMDApO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEZXRhaWxzTWVudSgpIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbHMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2lkZU1lbnVMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLm9uQ2xvc2VTaWRlTWVudS5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBjbG9zZURldGFpbHNTaWRlTWVudShldmVudCkge1xyXG4gIC8vICAgaWYgKCF0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmRpc2FibGVDbGlja091dFNpZGUpIHtcclxuICAvLyAgICAgaWYgKFxyXG4gIC8vICAgICAgIGV2ZW50LmlkICE9PSAnc2VlX2RldGFpbHMnICYmXHJcbiAgLy8gICAgICAgIXRoaXMuY2hlY2tGb3JDbGFzcyhldmVudC5jbGFzc05hbWUpXHJcbiAgLy8gICAgICkge1xyXG4gIC8vICAgICAgIHRoaXMuc2hvd0RldGFpbHMgPSBmYWxzZTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgY2hlY2tGb3JDbGFzcyhjbGFzc05hbWUpIHtcclxuICAgIGxldCBjbGFzc2VzID0gW1xyXG4gICAgICAnZGV0YWlsZWQtbWVudScsXHJcbiAgICAgICduZy10YWctbGFiZWwnLFxyXG4gICAgICAnbmctb3B0aW9uLWxhYmVsJyxcclxuICAgICAgJ25nLXN0YXItaW5zZXJ0ZWQnLFxyXG4gICAgXTtcclxuICAgIGxldCBjbGFzc0ZvdW5kZWQgPSBmYWxzZTtcclxuICAgIGNsYXNzZXMubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChjbGFzc05hbWUuaW5jbHVkZXMoaXRlbSkpIHtcclxuICAgICAgICBjbGFzc0ZvdW5kZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjbGFzc0ZvdW5kZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRTaGFyZXNCeU1lKCkge1xyXG4gICAgdGhpcy5zaGFyZWRTdWIgPSB0aGlzLnNoYXJlZC5nZXRTaGFyZXNCeU1lKHRoaXMuc2VsZWN0ZWRJdGVtLmVudGl0eS51aWQpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNoYXJlZExpc3RVc2VyID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy50YWdzU3Vic2NyaXB0aW9uID8gdGhpcy50YWdzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkgOiBudWxsO1xyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA/IHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSA6IG51bGw7XHJcbiAgICB0aGlzLm9uRGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJzaWRlLW1lbnUtZGV0YWlsc1wiIFNldFJ0bD5cclxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGxcIiAqbmdJZj1cInNlbGVjdGVkSXRlbSAmJiBzaG93RGV0YWlscyAmJiAhc2lkZU1lbnVMb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBweC01IHB5LTEgdy0xMDAgZmxleCBib3JkZXItYi0yIGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHRpdGxlLXdpdGgtaWNvbiBjbGFzcz1cIi1teS0xLjVcIiBbY29udGV4dF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5XCIgW3Nob3dUaXRsZV09XCJmYWxzZVwiPjwvdGl0bGUtd2l0aC1pY29uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqdXN0aWZ5LWNlbnRlciBmbGV4IGZsZXgtY29sICAgZmxleC0xIGZsZXgtZ3Jvdy0wIHctNy8xMlwiICpuZ0lmPVwiIXNlbGVjdGVkSXRlbS5pc0RpcmVjdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdHJ1bmNhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VsZWN0ZWRJdGVtLmVudGl0eT8ucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWyduYW1lJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cInNlbGVjdGVkSXRlbS5lbnRpdHk/LnByb3BlcnRpZXM/LlsnZmlsZTpjb250ZW50J10/LlsnbmFtZSddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRJdGVtLmVudGl0eT8ucHJvcGVydGllcz8uWydmaWxlOmNvbnRlbnQnXT8uWyduYW1lJ119fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3soKHNlbGVjdGVkSXRlbS5lbnRpdHk/LnByb3BlcnRpZXM/LlsnZmlsZTpjb250ZW50J10/LlsnbGVuZ3RoJ10pIC8gKDEwMjQgKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAxMDI0KSkudG9GaXhlZCgyKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBNQlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBkLWZsZXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLWNlbnRlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1iYXNlIHRleHQtZ3JheS01MDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtYm9sZFxyXG4gICAgICAgICAgICAgICAgICAgICBcIiAqbmdJZj1cInNlbGVjdGVkSXRlbS5pc0RpcmVjdG9yeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkSXRlbT8ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwie25hbWU6ICdsb2NrT3duZXJJZkxvY2tlZCcsIGVudGl0eTogc2VsZWN0ZWRJdGVtLmVudGl0eX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGN1cnNvci1wb2ludGVyICBteC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7bmFtZTogJ2NhblVwZGF0ZScsIGVudGl0eTogc2VsZWN0ZWRJdGVtLmVudGl0eX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0ZPTERFUlMuVVBEQVRFX0RFVEFJTFMnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5VcGRhdGVGcm9tU2lkZU1lbnUoKVwiPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjbG9zZS1pY29uIHRleHQtZ3JheS01MDBcIiAoY2xpY2spPVwiY2xvc2VEZXRhaWxzTWVudSgpXCJcclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidCVVRUT05TLkNMT1NFJyB8IHRyYW5zbGF0ZVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIGgtZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1keW5hbWljLXRhYnMgW3RhYnNdPVwibXlUYWJzXCI+PC9hcHAtZHluYW1pYy10YWJzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCBmb250LWJvbGQgZC1mbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiICpuZ0lmPVwic2lkZU1lbnVMb2FkaW5nXCI+XHJcbiAgICAgICAge3sgXCJsb2FkaW5nXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gQ29tbWVudHMgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjY29tbWVudHNUZW1wbGF0ZT5cclxuICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGgtZnVsbFwiPlxyXG4gICAgICAgIDxhcHAtY29tbWVudHMtZGFzaGxldCBbY29ycmVzcG9uZGVuY2VdPVwic2lkZU1lbnVGaWxlRGV0YWlsc1wiIFtlbnRpdHlJZF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5LnVpZFwiXHJcbiAgICAgICAgICAgIFtzaG93YWRkY29tbWVudF09XCJ0cnVlXCIgW3Jvd109XCJmYWxzZVwiPlxyXG4gICAgICAgIDwvYXBwLWNvbW1lbnRzLWRhc2hsZXQ+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS0gbXlMb2dGaWxlIC0tPlxyXG48bmctdGVtcGxhdGUgI2FjdGl2aXR5VGVtcGxhdGU+XHJcbiAgICA8IS0tIDxjdHMtdmlld2VyLWxvZyBbY29ycmVzcG9uZGVuY2VdPVwic2VsZWN0ZWRJdGVtLmVudGl0eVwiPjwvY3RzLXZpZXdlci1sb2c+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCBtdC0zXCI+XHJcbiAgICAgICAgPGFwcC1hY3Rpdml0aWVzLWxvZyBbZG9jdW1lbnRJZF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5LnVpZFwiIFtkb2N1bWVudFRpdGxlXT1cInNlbGVjdGVkSXRlbS5lbnRpdHkudGl0bGVcIlxyXG4gICAgICAgICAgICBbZmlsZV09XCJzaWRlTWVudUZpbGVEZXRhaWxzXCI+PC9hcHAtYWN0aXZpdGllcy1sb2c+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcGVybWlzc2lvbnNUZW1wbGF0ZT5cclxuICAgIDxkaXYgY2xhc3M9XCJoLWZ1bGwgb3ZlcmZsb3ctYXV0byBweC0yIG10LTNcIj5cclxuICAgICAgICA8YXBwLXBlcm1pc3Npb25zIFtzb3VyY2VQYWdlXT1cInNvdXJjZVBhZ2VcIlxyXG4gICAgICAgIFthbGxvd0FkZEFuZEJsb2NrXT1cImFsbG93QWRkQW5kQmxvY2tcIiAgW2RvY3VtZW50XT1cInNpZGVNZW51RmlsZURldGFpbHNcIlxyXG4gICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJzZWxlY3RlZEl0ZW0uZW50aXR5LnVpZFwiPjwvYXBwLXBlcm1pc3Npb25zPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIEZpbGVzIFRhYiAtLT5cclxuPG5nLXRlbXBsYXRlICNmaWxlc1RlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cImgtZnVsbCBvdmVyZmxvdy1hdXRvIHB4LTIgbXQtM1wiPlxyXG4gICAgICAgIDxjdHMtdmVyc2lvbnMgW2ZpbGVdPVwic2VsZWN0ZWRJdGVtLmVudGl0eVwiPjwvY3RzLXZlcnNpb25zPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIERldGFpbHMgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjZGV0YWlsc1RlbXBsYXRlPlxyXG4gICAgPGRpdiBjbGFzcz1cInBiLTIgbXQtMyBoLWZ1bGwgcHgtMiBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRpYy1kYXRhXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLlRJVExFX09OTFlcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZGM6dGl0bGVcIl0gfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBcIkZPTERFUlMuREVTQ1JJUFRJT05fT05MWVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJkYzpkZXNjcmlwdGlvblwiXSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IFwiRk9MREVSUy5DUkVBVEVEX0FUXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgZHluYW1pY0Zvcm1EYXRhW1wiZGM6Y3JlYXRlZFwiXVxyXG4gICAgICAgICAgICAgICAgICAgIHwgbG9jYWxpemVkRGF0ZTogXCJkZCBNTU1NIHl5eXlcIjooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLkxBU1RfTU9ESUZJRURcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBkeW5hbWljRm9ybURhdGFbXCJkYzptb2RpZmllZFwiXVxyXG4gICAgICAgICAgICAgICAgICAgIHwgbG9jYWxpemVkRGF0ZTogXCJkZCBNTU1NIHl5eXlcIjooaXNBcmFiaWM/ICdhci1BUicgOiAnZW4tVVMnKVxyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VwZXItZG9jdW1lbnQtZmllbGRzXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50U3ViamVjdFwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ET0NVTUVOVF9TVUJKRUNUXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnRTdWJqZWN0XCJdID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkb2N1bWVudFN1YmplY3RcIl0gOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnROdW1iZXJcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuRE9DVU1FTlRfTlVNQkVSXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnROdW1iZXJcIl0gPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50TnVtYmVyXCJdIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRvY3VtZW50UmVmZXJlbmNlTnVtYmVyXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkRPQ1VNRU5UX1JFRl9OVU1CRVJcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIiBkaXI9XCJsdHJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpkb2N1bWVudFJlZmVyZW5jZU51bWJlclwiXSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZG9jdW1lbnRSZWZlcmVuY2VOdW1iZXJcIl0gOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6Z0RvY3VtZW50RGF0ZVwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ET0NVTUVOVF9EQVRFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6Z0RvY3VtZW50RGF0ZVwiXSA/IChkeW5hbWljRm9ybURhdGFbXCJnZG9jOmdEb2N1bWVudERhdGVcIl0gfFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGl6ZWREYXRlOiBcImRkIE1NTU0geXl5eVwiOihpc0FyYWJpYz8gJ2FyLUFSJyA6ICdlbi1VUycpKSA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nKHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkgJiYgc2VsZWN0ZWRJdGVtLmVudGl0eS5jYXRlZ29yeSAhPT0ge30pJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkNBVEVHT1JZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IChzZWxlY3RlZEl0ZW0uZW50aXR5LmNhdGVnb3J5ICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkgIT09IHt9KSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkuYXJhYmljTmFtZSA6IHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnkuZW5nbGlzaE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj0nKHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlLmFyYWJpY05hbWUpJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkNBVEVHT1JZX1RZUEVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgKHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlLmFyYWJpY05hbWUpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gc2VsZWN0ZWRJdGVtLmVudGl0eS5jYXRlZ29yeVR5cGUuYXJhYmljTmFtZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5lbnRpdHkuY2F0ZWdvcnlUeXBlLmVuZ2xpc2hOYW1lKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPScoc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMgJiYgc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMuYXJhYmljTmFtZSknPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuTUFJTl9UT1BJQ1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAoc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMgJiYgc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMuYXJhYmljTmFtZSkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNBcmFiaWMgPyBzZWxlY3RlZEl0ZW0uZW50aXR5Lm1haW5Ub3BpYy5hcmFiaWNOYW1lIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtLmVudGl0eS5tYWluVG9waWMuZW5nbGlzaE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj0nKHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlLmFyYWJpY05hbWUpJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkRPQ1VNRU5UX1RZUEVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgKHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlICYmIHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlLmFyYWJpY05hbWUpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gc2VsZWN0ZWRJdGVtLmVudGl0eS5kb2N1bWVudFR5cGUuYXJhYmljTmFtZSA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbS5lbnRpdHkuZG9jdW1lbnRUeXBlLmVuZ2xpc2hUaXRsZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6c2VjcmVjeUxldmVsXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLlNDUkVDWV9MRVZFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAndm9jYWJ1bGFyeS5WT0NfU2VjcmVjeUxldmVsLicgKyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOnNlY3JlY3lMZXZlbFwiXSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmltcG9ydGFuY2VcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuSU1QT1JUQU5DRV9MRVZFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAndm9jYWJ1bGFyeS5WT0NfSW1wb3J0YW5jZS4nICsgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzppbXBvcnRhbmNlXCJdIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J3NlbGVjdGVkSXRlbS5lbnRpdHkuZGVwYXJ0bWVudCc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5ERVBBUlRNRU5UX05BTUVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRJdGVtLmVudGl0eS5kZXBhcnRtZW50ID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gc2VsZWN0ZWRJdGVtLmVudGl0eS5kZXBhcnRtZW50LmFyYWJpY05hbWUgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uZW50aXR5LmRlcGFydG1lbnQuZW5nbGlzaE5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZGVwYXJ0bWVudENvZGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuREVQQVJUTUVOVF9DT0RFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCB0ZXh0LXNtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6ZGVwYXJ0bWVudENvZGVcIl0gPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmRlcGFydG1lbnRDb2RlXCJdIDogJy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj0nZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuQUdFTkNZX0NBVEVHT1JZX0NPREVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGVcIl0gP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXNBcmFiaWMgPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmFnZW5jeUNhdGVnb3J5Q29kZVwiXVsncHJvcGVydGllcyddWydsYWJlbF9hciddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lDYXRlZ29yeUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfZW4nXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5TmFtZUNvZGVcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuQUdFTkNZX05BTUVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzphZ2VuY3lOYW1lQ29kZVwiXSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc0FyYWJpYyA/IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5TmFtZUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfYXInXVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGR5bmFtaWNGb3JtRGF0YVtcImdkb2M6YWdlbmN5TmFtZUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfZW4nXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9J2R5bmFtaWNGb3JtRGF0YVtcImdkb2M6Y291bnRyeUNhdGVnb3J5Q29kZVwiXSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS01MDAgZm9udC1ib2xkIHRleHQtYmFzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5DT1VOVFJZX0NBVEVHT1JZX0NPREVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktOTAwIHRleHQtc21cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q2F0ZWdvcnlDb2RlXCJdID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q2F0ZWdvcnlDb2RlXCJdWydwcm9wZXJ0aWVzJ11bJ2xhYmVsX2FyJ11cclxuICAgICAgICAgICAgICAgICAgICAgICAgOiBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmNvdW50cnlDYXRlZ29yeUNvZGVcIl1bJ3Byb3BlcnRpZXMnXVsnbGFiZWxfZW4nXSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOmNvdW50cnlDb2RlXCJdJz5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkNPVU5UUllfTkFNRVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOmNvdW50cnlDb2RlXCJdID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzQXJhYmljID8gZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q29kZVwiXVsncHJvcGVydGllcyddWydsYWJlbF9hciddXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZHluYW1pY0Zvcm1EYXRhW1wiZ2RvYzpjb3VudHJ5Q29kZVwiXVsncHJvcGVydGllcyddWydsYWJlbF9lbiddKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICctLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtM1wiICpuZ0lmPSdkeW5hbWljRm9ybURhdGFbXCJnZG9jOnJlbWFya3NcIl0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgXCJDUkVBVEUuUkVNQVJLU1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOnJlbWFya3NcIl0gPyBkeW5hbWljRm9ybURhdGFbXCJnZG9jOnJlbWFya3NcIl0gOiAnLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTUwMCBmb250LWJvbGQgdGV4dC1iYXNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgXCJGT0xERVJTLkJZXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZ3JheS05MDAgdGV4dC1zbSBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGl0ZW1zLWNlbnRlciBiZy1ncmF5LTEwMCByb3VuZGVkLXhsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdXNlciBbdXNlcl09XCJkeW5hbWljRm9ybURhdGFbJ2RjOmNyZWF0b3InXVwiPjwvYXBwLXVzZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJkeW5hbWljRm9ybURhdGFbJ2RjOmNvbnRyaWJ1dG9ycyddLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBcIkZPTERFUlMuQ09OVFJVQklUT1JTXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGl0ZW1zLWNlbnRlciBiZy1ncmF5LTEwMCByb3VuZGVkLXhsIG1iLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdXNlciBvZiBkeW5hbWljRm9ybURhdGFbJ2RjOmNvbnRyaWJ1dG9ycyddXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdXNlciBbdXNlcl09XCJ1c2VyXCI+PC9hcHAtdXNlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cInNoYXJlZExpc3RVc2VyLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXktNTAwIGZvbnQtYm9sZCB0ZXh0LWJhc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e1wic2hhcmUuc2hhcmVXaXRoXCIgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggaXRlbXMtY2VudGVyIGJnLWdyYXktMTAwIHJvdW5kZWQteGwgbWItMlwiICpuZ0Zvcj1cImxldCB1c2VyIG9mIHNoYXJlZExpc3RVc2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtdXNlciBbdXNlcl09XCJ1c2VyXCI+PC9hcHAtdXNlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNVwiICpuZ0lmPVwiZHluYW1pY0Zvcm0gJiYgZHluYW1pY0Zvcm1EYXRhXCI+XHJcbiAgICAgICAgICAgIDxhcHAtbXVsdGlwbGUtZHluYW1pYy1mb3JtLXZpZXdlciBbZm9ybV09XCJkeW5hbWljRm9ybVwiXHJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJkeW5hbWljRm9ybURhdGFcIj48L2FwcC1tdWx0aXBsZS1keW5hbWljLWZvcm0tdmlld2VyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWdzLXdyYXBwZXJzIHJlbGF0aXZlIHB4LTAgcHktM1wiPlxyXG4gICAgICAgICAgICA8Y3RzLWNvcnJlc3BvbmRlbmNlLXRhZ3MgW2NvcnJlc3BvbmRlbmNlXT1cInNpZGVNZW51RmlsZURldGFpbHNcIiBbY3VzdG9tQ2xhc3NdPVwiJ3RhZ3MtZG1zLXdyYXBwZXInXCJcclxuICAgICAgICAgICAgICAgIFt1c2VQYXJhbXNdPVwidHJ1ZVwiIFthZGRDdXN0b21BcGlOYW1lXT1cIidTZXJ2aWNlcy5UYWdEb2N1bWVudCdcIlxyXG4gICAgICAgICAgICAgICAgW2RlbGV0ZUN1c3RvbUFwaU5hbWVdPVwiJ1NlcnZpY2VzLlVudGFnRG9jdW1lbnQnXCI+XHJcbiAgICAgICAgICAgIDwvY3RzLWNvcnJlc3BvbmRlbmNlLXRhZ3M+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../../../shared-services/upload-managment.service";
|
|
5
|
+
import * as i2 from "@angular/material/dialog";
|
|
6
|
+
import * as i3 from "../../../../shared-services/dialog-mangment.service";
|
|
7
|
+
import * as i4 from "../../../../shared-services/dynamic-form.service";
|
|
8
|
+
import * as i5 from "../../../dynamic-form/components/dynamic-form/dynamic-form.component";
|
|
9
|
+
import * as i6 from "@angular/forms";
|
|
10
|
+
import * as i7 from "@angular/common";
|
|
11
|
+
import * as i8 from "@ngx-translate/core";
|
|
12
|
+
export class TemplateModalComponent {
|
|
13
|
+
constructor(data, uploadMangmentService, dialogRef, dialogMangmentService, dynamicFormService) {
|
|
14
|
+
this.data = data;
|
|
15
|
+
this.uploadMangmentService = uploadMangmentService;
|
|
16
|
+
this.dialogRef = dialogRef;
|
|
17
|
+
this.dialogMangmentService = dialogMangmentService;
|
|
18
|
+
this.dynamicFormService = dynamicFormService;
|
|
19
|
+
this.selectedFile = {
|
|
20
|
+
title: '',
|
|
21
|
+
description: '',
|
|
22
|
+
fileType: '',
|
|
23
|
+
dynamicForm: '',
|
|
24
|
+
dynamicData: {
|
|
25
|
+
valid: false,
|
|
26
|
+
data: {}
|
|
27
|
+
},
|
|
28
|
+
file: ''
|
|
29
|
+
};
|
|
30
|
+
this.showRenderer = false;
|
|
31
|
+
this.temporaryDyanmicData = {};
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.fileType = this.dialogMangmentService.fileType;
|
|
35
|
+
this.source = this.dialogMangmentService.addingFrom;
|
|
36
|
+
// this.dynamicFormService.getDynamicForm(this.fileType).subscribe(res => {
|
|
37
|
+
this.selectedFile.dynamicForm = this.dialogMangmentService.storedDynamicForm;
|
|
38
|
+
this.showRenderer = true;
|
|
39
|
+
// })
|
|
40
|
+
}
|
|
41
|
+
ondynamicFormChange(dynamicData) {
|
|
42
|
+
if (dynamicData.data) {
|
|
43
|
+
console.log(dynamicData.data);
|
|
44
|
+
this.selectedFile.dynamicData = Object.assign({}, dynamicData);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
closeDialog() {
|
|
48
|
+
this.dialogRef.close(false);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
TemplateModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TemplateModalComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.UploadManagmentService }, { token: i2.MatDialogRef }, { token: i3.DialogMangmentService }, { token: i4.DynamicFormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
TemplateModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: TemplateModalComponent, selector: "app-template-modal", ngImport: i0, template: "<div class=\"template-modal-wraper d-flex relative h-full\">\r\n <div class=\"modal-body-section d-flex w-full\">\r\n <!-- forms and properties -->\r\n <div class=\"forms-section w-1/2\">\r\n <div class=\"\">\r\n <div class=\"mb-5\">\r\n <div class=\"text-base font-bold text-gray-900\">\r\n {{ \"CREATE.FILE_TYPE\" | translate }}\r\n </div>\r\n <div class=\"text-base text-gray-900\">{{ fileType }}</div>\r\n </div>\r\n <div class=\"file-fields mt-3\">\r\n <form #fileForm=\"ngForm\">\r\n <div class=\"single-field mb-3\">\r\n <div class=\"text-base font-bold text-gray-900\">\r\n {{ \"CREATE.TITLE\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"\r\n h-10\r\n w-full\r\n bg-gray-100\r\n p-1\r\n border-2 border-gray-200\r\n rounded\r\n \"\r\n [(ngModel)]=\"selectedFile.title\"\r\n required\r\n name=\"title\"\r\n id=\"title\"\r\n />\r\n </div>\r\n <div class=\"single-field mb-3\">\r\n <div class=\"text-base font-bold text-gray-900\">\r\n {{ \"CREATE.DESCRIPTION\" | translate\r\n }}<span class=\"text-red-500\">*</span>\r\n </div>\r\n <input\r\n class=\"\r\n h-10\r\n w-full\r\n bg-gray-100\r\n p-1\r\n border-2 border-gray-200\r\n rounded\r\n \"\r\n [(ngModel)]=\"selectedFile.description\"\r\n required\r\n name=\"description\"\r\n id=\"description\"\r\n />\r\n </div>\r\n </form>\r\n <!-- *ngIf=\"\" -->\r\n <div\r\n class=\"dynamic-part -mx-4\"\r\n *ngIf=\"selectedFile.dynamicForm && showRenderer\"\r\n >\r\n <app-dynamic-form\r\n [form]=\"selectedFile.dynamicForm\"\r\n [data]=\"temporaryDyanmicData\"\r\n (change)=\"ondynamicFormChange($event)\"\r\n ></app-dynamic-form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"template-side-menu w-1/2 d-flex justify-center items-center\"\r\n >\r\n <div class=\"text-gray-900 font-bold\">No Templates Yet</div>\r\n </div>\r\n </div>\r\n\r\n <!-- actions and buttons -->\r\n <div\r\n class=\"\r\n w-full\r\n d-flex\r\n justify-between\r\n scanner-actions-wrapper\r\n absolute\r\n bottom-0\r\n \"\r\n >\r\n <div class=\"flex\">\r\n <button\r\n class=\"\r\n cursor-pointer\r\n flex\r\n justify-center\r\n items-center\r\n border-2 border-gray-900\r\n text-gray-900\r\n rounded-3xl\r\n text-white\r\n w-30\r\n h-10\r\n \"\r\n (click)=\"closeDialog()\"\r\n >\r\n {{ \"BUTTONS.CANCEL\" | translate }}\r\n </button>\r\n\r\n <!-- *ngIf=\"\r\n uploadMangmentService.uploadedFilesStatus\r\n .uploadInProgress ||\r\n uploadMangmentService.uploadedFilesStatus\r\n .numberOfUploadedFiles !== 0 ||\r\n addingProperties\r\n \" -->\r\n <!-- <button\r\n class=\"\r\n cursor-pointer\r\n flex\r\n justify-center\r\n items-center\r\n border-2 border-gray-900\r\n text-gray-900\r\n rounded-3xl\r\n text-white\r\n w-30\r\n h-10\r\n mx-2\r\n \"\r\n (click)=\"minimizDialog()\"\r\n >\r\n {{ \"BUTTONS.MINIMIZED\" | translate }}\r\n </button> -->\r\n </div>\r\n\r\n <!-- -->\r\n <div class=\"d-flex\">\r\n <!-- <button\r\n *ngIf=\"\r\n (uploadMangmentService.uploadedFilesStatus\r\n .uploadInProgress ||\r\n selectedFile.file) &&\r\n !uploadMangmentService.addingPropertiesMode\r\n \"\r\n (click)=\"startAddingProperties()\"\r\n class=\"\r\n hover:text-white hover:bg-gray-900\r\n cursor-pointer\r\n flex\r\n justify-center\r\n items-center\r\n border-2 border-gray-900\r\n text-gray-900\r\n rounded-3xl\r\n text-white\r\n w-36\r\n h-10\r\n \"\r\n >\r\n {{ \"BUTTONS.ADD_PROPERTIES\" | translate }}\r\n </button> -->\r\n\r\n <!-- *ngIf=\"\r\n uploadMangmentService.addingPropertiesMode &&\r\n !uploadMangmentService.uploadedFilesStatus.uploadInProgress\r\n \" -->\r\n <!-- <button\r\n \r\n (click)=\"createDocument()\"\r\n [disabled]=\"scannerUploadButton.disabled || !selectedFile.dynamicData.valid || fileForm.invalid\"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed': scannerUploadButton.disabled || !selectedFile.dynamicData.valid || fileForm.invalid\r\n }\"\r\n class=\"\r\n flex\r\n justify-center\r\n items-center\r\n border-2 border-gray-900\r\n text-white bg-gray-900\r\n rounded-3xl\r\n w-30\r\n h-10\r\n \"\r\n >\r\n {{ \"BUTTONS.CREATE\" | translate }}\r\n </button> -->\r\n\r\n <!-- <button\r\n *ngIf=\"\r\n uploadMangmentService.addingPropertiesMode &&\r\n uploadMangmentService.uploadedFilesStatus.uploadInProgress\r\n \"\r\n (click)=\"createWhenFinish()\"\r\n [disabled]=\"checkValidation()\"\r\n [ngClass]=\"{\r\n 'opacity-30 cursor-not-allowed': checkValidation(),\r\n 'cursor-pointer hover:text-white hover:bg-gray-900':\r\n !checkValidation()\r\n }\"\r\n class=\"\r\n flex\r\n justify-center\r\n items-center\r\n border-2 border-gray-900\r\n text-gray-900\r\n rounded-3xl\r\n text-white\r\n w-40\r\n h-10\r\n \"\r\n >\r\n {{ \"BUTTONS.CREATE_WHEN_FINSH\" | translate }}\r\n </button> -->\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".modal-body-section{height:calc(100% - 80px)}\n"], components: [{ type: i5.DynamicFormComponent, selector: "app-dynamic-form", inputs: ["form", "data", "readOnly"], outputs: ["change"] }], directives: [{ type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i8.TranslatePipe } });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: TemplateModalComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{
|
|
56
|
+
selector: 'app-template-modal',
|
|
57
|
+
templateUrl: './template-modal.component.html',
|
|
58
|
+
styleUrls: ['./template-modal.component.scss']
|
|
59
|
+
}]
|
|
60
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
61
|
+
type: Inject,
|
|
62
|
+
args: [MAT_DIALOG_DATA]
|
|
63
|
+
}] }, { type: i1.UploadManagmentService }, { type: i2.MatDialogRef }, { type: i3.DialogMangmentService }, { type: i4.DynamicFormService }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL3RlbXBsYXRlLW1vZGFsL3RlbXBsYXRlLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy90ZW1wbGF0ZS1tb2RhbC90ZW1wbGF0ZS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBVXpFLE1BQU0sT0FBTyxzQkFBc0I7SUFnQmpDLFlBQTRDLElBQUksRUFDekMscUJBQTZDLEVBQzdDLFNBQStDLEVBQy9DLHFCQUE0QyxFQUMzQyxrQkFBc0M7UUFKRixTQUFJLEdBQUosSUFBSSxDQUFBO1FBQ3pDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBd0I7UUFDN0MsY0FBUyxHQUFULFNBQVMsQ0FBc0M7UUFDL0MsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUMzQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBakI5QyxpQkFBWSxHQUFHO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxXQUFXLEVBQUUsRUFBRTtZQUNmLFFBQVEsRUFBRSxFQUFFO1lBQ1osV0FBVyxFQUFFLEVBQUU7WUFDZixXQUFXLEVBQUU7Z0JBQ1gsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLEVBQUU7YUFDVDtZQUNELElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQztRQUNGLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztJQUt3QixDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDO1FBRXBELDJFQUEyRTtRQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUM7UUFDN0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDM0IsS0FBSztJQUNQLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxXQUFXO1FBQzdCLElBQUksV0FBVyxDQUFDLElBQUksRUFBRTtZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcscUJBQVEsV0FBVyxDQUFFLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTlCLENBQUM7O21IQTFDVSxzQkFBc0Isa0JBZ0JiLGVBQWU7dUdBaEJ4QixzQkFBc0IsMERDWG5DLDAwUUFxTkE7MkZEMU1hLHNCQUFzQjtrQkFMbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixXQUFXLEVBQUUsaUNBQWlDO29CQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztpQkFDL0M7OzBCQWlCYyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVXBsb2FkTWFuYWdtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy91cGxvYWQtbWFuYWdtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dNYW5nbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZGlhbG9nLW1hbmdtZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEeW5hbWljRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGVtcGxhdGUtbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGVtcGxhdGUtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZmlsZVR5cGU7XHJcbiAgc291cmNlO1xyXG4gIHNlbGVjdGVkRmlsZSA9IHtcclxuICAgIHRpdGxlOiAnJyxcclxuICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgIGZpbGVUeXBlOiAnJyxcclxuICAgIGR5bmFtaWNGb3JtOiAnJyxcclxuICAgIGR5bmFtaWNEYXRhOiB7XHJcbiAgICAgIHZhbGlkOiBmYWxzZSxcclxuICAgICAgZGF0YToge31cclxuICAgIH0sXHJcbiAgICBmaWxlOiAnJ1xyXG4gIH07XHJcbiAgc2hvd1JlbmRlcmVyID0gZmFsc2U7XHJcbiAgdGVtcG9yYXJ5RHlhbm1pY0RhdGEgPSB7fTtcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGEsXHJcbiAgcHVibGljIHVwbG9hZE1hbmdtZW50U2VydmljZTogVXBsb2FkTWFuYWdtZW50U2VydmljZSxcclxuICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8VGVtcGxhdGVNb2RhbENvbXBvbmVudD4sXHJcbiAgcHVibGljIGRpYWxvZ01hbmdtZW50U2VydmljZTogRGlhbG9nTWFuZ21lbnRTZXJ2aWNlLFxyXG4gIHByaXZhdGUgZHluYW1pY0Zvcm1TZXJ2aWNlOiBEeW5hbWljRm9ybVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZVR5cGUgPSB0aGlzLmRpYWxvZ01hbmdtZW50U2VydmljZS5maWxlVHlwZTtcclxuICAgIHRoaXMuc291cmNlID0gdGhpcy5kaWFsb2dNYW5nbWVudFNlcnZpY2UuYWRkaW5nRnJvbTtcclxuXHJcbiAgICAvLyB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS5nZXREeW5hbWljRm9ybSh0aGlzLmZpbGVUeXBlKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZpbGUuZHluYW1pY0Zvcm0gPSB0aGlzLmRpYWxvZ01hbmdtZW50U2VydmljZS5zdG9yZWREeW5hbWljRm9ybTtcclxuICAgICAgdGhpcy5zaG93UmVuZGVyZXIgPSB0cnVlO1xyXG4gICAgLy8gfSlcclxuICB9XHJcblxyXG4gIG9uZHluYW1pY0Zvcm1DaGFuZ2UoZHluYW1pY0RhdGEpIHtcclxuICAgIGlmIChkeW5hbWljRGF0YS5kYXRhKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKGR5bmFtaWNEYXRhLmRhdGEpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlLmR5bmFtaWNEYXRhID0geyAuLi5keW5hbWljRGF0YSB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XHJcblxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGVtcGxhdGUtbW9kYWwtd3JhcGVyIGQtZmxleCByZWxhdGl2ZSBoLWZ1bGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5LXNlY3Rpb24gZC1mbGV4IHctZnVsbFwiPlxyXG4gICAgICAgIDwhLS0gZm9ybXMgYW5kIHByb3BlcnRpZXMgIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3Jtcy1zZWN0aW9uIHctMS8yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBcIkNSRUFURS5GSUxFX1RZUEVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJhc2UgdGV4dC1ncmF5LTkwMFwiPnt7IGZpbGVUeXBlIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWZpZWxkcyBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gI2ZpbGVGb3JtPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtZmllbGQgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLlRJVExFXCIgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0xMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LWZ1bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmctZ3JheS0xMDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC0xXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci0yIGJvcmRlci1ncmF5LTIwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRmlsZS50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaW5nbGUtZmllbGQgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGQgdGV4dC1ncmF5LTkwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiQ1JFQVRFLkRFU0NSSVBUSU9OXCIgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC0xMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3LWZ1bGxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmctZ3JheS0xMDBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcC0xXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci0yIGJvcmRlci1ncmF5LTIwMFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRmlsZS5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gKm5nSWY9XCJcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZHluYW1pYy1wYXJ0IC1teC00XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEZpbGUuZHluYW1pY0Zvcm0gJiYgc2hvd1JlbmRlcmVyXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZHluYW1pYy1mb3JtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJzZWxlY3RlZEZpbGUuZHluYW1pY0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwidGVtcG9yYXJ5RHlhbm1pY0RhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbmR5bmFtaWNGb3JtQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9hcHAtZHluYW1pYy1mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ0ZW1wbGF0ZS1zaWRlLW1lbnUgdy0xLzIgZC1mbGV4IGp1c3RpZnktY2VudGVyIGl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCBmb250LWJvbGRcIj5ObyBUZW1wbGF0ZXMgWWV0PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIGFjdGlvbnMgYW5kIGJ1dHRvbnMgIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgICAgIHctZnVsbFxyXG4gICAgICAgICAgICBkLWZsZXhcclxuICAgICAgICAgICAganVzdGlmeS1iZXR3ZWVuXHJcbiAgICAgICAgICAgIHNjYW5uZXItYWN0aW9ucy13cmFwcGVyXHJcbiAgICAgICAgICAgIGFic29sdXRlXHJcbiAgICAgICAgICAgIGJvdHRvbS0wXHJcbiAgICAgICAgXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvci1wb2ludGVyXHJcbiAgICAgICAgICAgICAgICAgICAgZmxleFxyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY2VudGVyXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMtY2VudGVyXHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLTIgYm9yZGVyLWdyYXktOTAwXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1ncmF5LTkwMFxyXG4gICAgICAgICAgICAgICAgICAgIHJvdW5kZWQtM3hsXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC13aGl0ZVxyXG4gICAgICAgICAgICAgICAgICAgIHctMzBcclxuICAgICAgICAgICAgICAgICAgICBoLTEwXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBcIkJVVFRPTlMuQ0FOQ0VMXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8IS0tICpuZ0lmPVwiXHJcbiAgICAgICAgICAgIHVwbG9hZE1hbmdtZW50U2VydmljZS51cGxvYWRlZEZpbGVzU3RhdHVzXHJcbiAgICAgICAgICAgICAgICAudXBsb2FkSW5Qcm9ncmVzcyB8fFxyXG4gICAgICAgICAgICB1cGxvYWRNYW5nbWVudFNlcnZpY2UudXBsb2FkZWRGaWxlc1N0YXR1c1xyXG4gICAgICAgICAgICAgICAgLm51bWJlck9mVXBsb2FkZWRGaWxlcyAhPT0gMCB8fFxyXG4gICAgICAgICAgICBhZGRpbmdQcm9wZXJ0aWVzXHJcbiAgICAgICAgXCIgLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICAgICAgICBjdXJzb3ItcG9pbnRlclxyXG4gICAgICAgICAgICAgICAgICAgIGZsZXhcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNlbnRlclxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLWNlbnRlclxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci0yIGJvcmRlci1ncmF5LTkwMFxyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtZ3JheS05MDBcclxuICAgICAgICAgICAgICAgICAgICByb3VuZGVkLTN4bFxyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtd2hpdGVcclxuICAgICAgICAgICAgICAgICAgICB3LTMwXHJcbiAgICAgICAgICAgICAgICAgICAgaC0xMFxyXG4gICAgICAgICAgICAgICAgICAgIG14LTJcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluaW1pekRpYWxvZygpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgXCJCVVRUT05TLk1JTklNSVpFRFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSAgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICA8IS0tIDxidXR0b25cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHVwbG9hZE1hbmdtZW50U2VydmljZS51cGxvYWRlZEZpbGVzU3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC51cGxvYWRJblByb2dyZXNzIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkRmlsZS5maWxlKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICF1cGxvYWRNYW5nbWVudFNlcnZpY2UuYWRkaW5nUHJvcGVydGllc01vZGVcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3RhcnRBZGRpbmdQcm9wZXJ0aWVzKClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgICAgICAgICAgICBob3Zlcjp0ZXh0LXdoaXRlIGhvdmVyOmJnLWdyYXktOTAwXHJcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yLXBvaW50ZXJcclxuICAgICAgICAgICAgICAgICAgICBmbGV4XHJcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jZW50ZXJcclxuICAgICAgICAgICAgICAgICAgICBpdGVtcy1jZW50ZXJcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItMiBib3JkZXItZ3JheS05MDBcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LWdyYXktOTAwXHJcbiAgICAgICAgICAgICAgICAgICAgcm91bmRlZC0zeGxcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0LXdoaXRlXHJcbiAgICAgICAgICAgICAgICAgICAgdy0zNlxyXG4gICAgICAgICAgICAgICAgICAgIGgtMTBcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IFwiQlVUVE9OUy5BRERfUFJPUEVSVElFU1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICB1cGxvYWRNYW5nbWVudFNlcnZpY2UuYWRkaW5nUHJvcGVydGllc01vZGUgJiZcclxuICAgICAgICAgICAgICAgICAgICAhdXBsb2FkTWFuZ21lbnRTZXJ2aWNlLnVwbG9hZGVkRmlsZXNTdGF0dXMudXBsb2FkSW5Qcm9ncmVzc1xyXG4gICAgICAgICAgICAgICAgXCIgLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY3JlYXRlRG9jdW1lbnQoKVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2Nhbm5lclVwbG9hZEJ1dHRvbi5kaXNhYmxlZCB8fCAhc2VsZWN0ZWRGaWxlLmR5bmFtaWNEYXRhLnZhbGlkIHx8IGZpbGVGb3JtLmludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICdvcGFjaXR5LTMwIGN1cnNvci1ub3QtYWxsb3dlZCc6IHNjYW5uZXJVcGxvYWRCdXR0b24uZGlzYWJsZWQgfHwgIXNlbGVjdGVkRmlsZS5keW5hbWljRGF0YS52YWxpZCB8fCBmaWxlRm9ybS5pbnZhbGlkXHJcbiAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmxleFxyXG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY2VudGVyXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMtY2VudGVyXHJcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLTIgYm9yZGVyLWdyYXktOTAwXHJcbiAgICAgICAgICAgICAgICAgICAgdGV4dC13aGl0ZSBiZy1ncmF5LTkwMFxyXG4gICAgICAgICAgICAgICAgICAgIHJvdW5kZWQtM3hsXHJcbiAgICAgICAgICAgICAgICAgICAgdy0zMFxyXG4gICAgICAgICAgICAgICAgICAgIGgtMTBcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7IFwiQlVUVE9OUy5DUkVBVEVcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxidXR0b25cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdXBsb2FkTWFuZ21lbnRTZXJ2aWNlLmFkZGluZ1Byb3BlcnRpZXNNb2RlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdXBsb2FkTWFuZ21lbnRTZXJ2aWNlLnVwbG9hZGVkRmlsZXNTdGF0dXMudXBsb2FkSW5Qcm9ncmVzc1xyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVXaGVuRmluaXNoKClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNoZWNrVmFsaWRhdGlvbigpXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAnb3BhY2l0eS0zMCBjdXJzb3Itbm90LWFsbG93ZWQnOiBjaGVja1ZhbGlkYXRpb24oKSxcclxuICAgICAgICAgICAgICAgICAgICAnY3Vyc29yLXBvaW50ZXIgaG92ZXI6dGV4dC13aGl0ZSBob3ZlcjpiZy1ncmF5LTkwMCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICFjaGVja1ZhbGlkYXRpb24oKVxyXG4gICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGZsZXhcclxuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNlbnRlclxyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLWNlbnRlclxyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci0yIGJvcmRlci1ncmF5LTkwMFxyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtZ3JheS05MDBcclxuICAgICAgICAgICAgICAgICAgICByb3VuZGVkLTN4bFxyXG4gICAgICAgICAgICAgICAgICAgIHRleHQtd2hpdGVcclxuICAgICAgICAgICAgICAgICAgICB3LTQwXHJcbiAgICAgICAgICAgICAgICAgICAgaC0xMFxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgXCJCVVRUT05TLkNSRUFURV9XSEVOX0ZJTlNIXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|