@eo-sdk/client 11.14.0-rc.4 → 11.14.0-rc.5
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/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
- package/app/eo-client/process-state/process-state.component.d.ts +1 -0
- package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/context-search/context-search.component.d.ts +3 -2
- package/app/eo-framework/app-shell/app-bar/context-search/context-search.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +10 -8
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +21 -0
- package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/object-form.component.d.ts.map +1 -1
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +19 -0
- package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +20 -2
- package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +2 -2
- package/esm2022/app/eo-client/process-state/process-state.component.mjs +8 -7
- package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +4 -1
- package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +6 -1
- package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +8 -6
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +32 -28
- package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +4 -4
- package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +2 -2
- package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -4
- package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +2 -2
- package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
- package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +4 -2
- package/esm2022/app/eo-framework/media/media.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +2 -5
- package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +57 -14
- package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -1
- package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +37 -3
- package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +2 -2
- package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +5 -5
- package/fesm2022/eo-sdk-client.mjs +193 -82
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
- package/scss/_yuuvis-components.scss +4 -0
- package/styles.css +16 -0
- package/styles.scss +14 -0
|
@@ -103,7 +103,25 @@ let InboxStateComponent = class InboxStateComponent {
|
|
|
103
103
|
modelFCN: null,
|
|
104
104
|
});
|
|
105
105
|
this.bpmService.fetchProcessModels().subscribe(processModels => {
|
|
106
|
-
|
|
106
|
+
let models = [];
|
|
107
|
+
processModels.forEach((model) => {
|
|
108
|
+
if (model.models) {
|
|
109
|
+
model.models.forEach(m => {
|
|
110
|
+
models.push(m);
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (model.projects) {
|
|
114
|
+
model.projects.forEach(project => {
|
|
115
|
+
if (project.models) {
|
|
116
|
+
project.models.forEach(m => {
|
|
117
|
+
models.push(m);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
this.processModelsListObject.entries = models;
|
|
124
|
+
this.processModelsListObject.entries.sort(Utils.sortValues('title'));
|
|
107
125
|
this.getStorageCache();
|
|
108
126
|
});
|
|
109
127
|
this.filterForm.valueChanges.pipe(untilDestroyed(this)).subscribe((e) => {
|
|
@@ -393,4 +411,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
393
411
|
type: ViewChild,
|
|
394
412
|
args: ['eoGrid']
|
|
395
413
|
}] } });
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBR0wsVUFBVSxFQUVWLFNBQVMsRUFLVCxLQUFLLEVBQ04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUc1RyxPQUFPLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFHdEgsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUWxCLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBcUQ5QixZQUFtQixTQUEyQixFQUNyQyxTQUEyQixFQUMxQixZQUE4QixFQUMvQixZQUEwQixFQUN6QixjQUFxQyxFQUNyQyxLQUF3QixFQUN6QixVQUFzQixFQUNyQixFQUFzQixFQUN0QixPQUF1QixFQUN2QixZQUEwQixFQUMxQixLQUFxQixFQUNyQixjQUFtQyxFQUNuQyxhQUE0QjtRQVpuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNyQyxj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QUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFTDs7O1dBR0c7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QiwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFHRCxVQUFVLENBQUMsRUFBRTtRQUNYLE9BQU8sRUFBRSxFQUFFLFFBQVEsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLEtBQUssSUFBSSxDQUFDO0lBQ2pFLENBQUM7SUFHRDs7Ozs7T0FLRztJQUNILFdBQVc7UUFDVCxNQUFNLE9BQU8sR0FBRztZQUNkO2dCQUNFLE1BQU0sRUFBRSxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDdEQ7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQTFZVSxtQkFBbUI7a0dBQW5CLG1CQUFtQix3SkNyQ2hDLHEvSkEwRkE7O0FEckRhLG1CQUFtQjtJQU4vQixZQUFZLEVBQUU7R0FNRixtQkFBbUIsQ0E0WS9COzsyRkE1WVksbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjsrYkFzREwsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb2xEZWYsIEdyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQmFja2VuZFNlcnZpY2UsXG4gIEJwbVNlcnZpY2UsXG4gIEVuYWlvRXZlbnQsXG4gIEV2ZW50U2VydmljZSxcbiAgSW5ib3hJdGVtLFxuICBJbmJveFNlcnZpY2UsXG4gIEluYm94U3RhdGUsXG4gIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG4gIFV0aWxzXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge0VtcHR5U3RhdGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge0VtcHR5U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7Q3VzdG9tU29ydENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9jdXN0b20tc29ydC9jdXN0b20tc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHtJU2V0RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXJzLmludGVyZmFjZSc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbmltcG9ydCB7SW5ib3hUeXBlcywgSW5ib3hUeXBlc0ZpbHRlcn0gZnJvbSAnLi9pbmJveC50eXBlcy5lbnVtJztcbmltcG9ydCB7UmV0dXJuVGFza0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9yZXR1cm4tdGFzay1hY3Rpb24vcmV0dXJuLXRhc2stYWN0aW9uJztcbmltcG9ydCB7QWN0aW9uU2VydmljZSwgR2xvYmFsU2hvcnRjdXRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yayc7XG5pbXBvcnQge1VudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWluYm94LXN0YXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luYm94LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5ib3gtc3RhdGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbmJveFN0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50IHtcblxuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICBpbmJveEZpbHRlckZpZWxkczogSVNldEZpbHRlcltdID0gW107XG4gIHR5cGVGaWx0ZXJGaWVsZHM6IElTZXRGaWx0ZXJbXSA9IFtdO1xuICBpbmJveFNlbGVjdGlvbklkID0gJ2luYm94JztcbiAgaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZCA9ICdpbmJveF9kbXMnO1xuICBmaWx0ZXJDYWNoZUtleSA9IFwiZW8uaW5ib3gubGlzdC5maWx0ZXJcIjtcbiAgaW5ib3hTZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2U7XG4gIHNlbGVjdEZpcnN0ID0gdHJ1ZTtcbiAgZmlsdGVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgZW1wdHlTdGF0ZTE6IEVtcHR5U3RhdGUgPSB7aWNvbjogJycsIHRleHQ6ICcnLCBjbGFzc05hbWU6ICcnfTtcbiAgZW1wdHlTdGF0ZTI6IEVtcHR5U3RhdGUgPSB7aWNvbjogJycsIHRleHQ6ICcnLCBjbGFzc05hbWU6ICcnfTtcblxuICBwcm9jZXNzTW9kZWxzTGlzdE9iamVjdCA9IHtcbiAgICBlbnRyaWVzOiBbXSxcbiAgICBjb25maWc6IHtcbiAgICAgIHZhbHVlRmllbGQ6ICduYW1lJyxcbiAgICAgIHRpdGxlOiAndGl0bGUnLFxuICAgICAgc3ViRW50cmllc0ZpZWxkOiAnbW9kZWxzJ1xuICAgIH1cbiAgfVxuXG4gIGlkTWF0Y2ggPSB0cnVlO1xuICBncmlkRGF0YTtcbiAgZGVmYXVsdEZpbHRlclBhcmFtczogYW55ID0ge307XG4gIGVtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSB7aWNvbjogJ2ljX25vLWZpbGUuc3ZnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuICBpbmJveENoYW5nZWQgPSBmYWxzZTtcbiAgc3RvcmFnZUtleUxhc3RJdGVtSUQgPSAnZW8uaW5ib3gubGFzdEl0ZW1JRCc7XG5cbiAgLy8gZGVmaW5lIGEgR2xvYmFsU2hvcnRjdXRDb21wb25lbnQgZm9yIHRoZSBpbmJveCBzdGF0ZVxuICBzaG9ydGN1dHM6IEdsb2JhbFNob3J0Y3V0Q29tcG9uZW50ID0ge1xuICAgIGlkOiAnZW8uaW5ib3gtc3RhdGUnLFxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5saXN0LnRpdGxlJyksXG4gICAgbGFiZWxLZXk6ICdlby5pbmJveC5saXN0LnRpdGxlJyxcbiAgICBmb2N1c2VkOiB0cnVlLFxuICAgIGFjdGlvbnM6IFt7XG4gICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLnRhc2snKSxcbiAgICAgIG5hbWVLZXk6ICdlby5zaG9ydGN1dHMuYWN0aW9uLnRhc2snLFxuICAgICAgc2hvcnRjdXQ6ICdUJyxcbiAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLnNob3dBY3Rpb25zKCk7XG4gICAgICB9LFxuICAgICAgaXNIaWRkZW46ICgpOiBib29sZWFuID0+IHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1dXG4gIH07XG5cbiAgQFZpZXdDaGlsZCgnZW9HcmlkJykgZW9HcmlkOiBHcmlkQ29tcG9uZW50O1xuICBzdG9yYWdlRmlsdGVyVmFsdWUgPSAnJztcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHVibGljIGluYm94U2VydmljZTogSW5ib3hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIGVtcHR5OiBFbXB0eVN0YXRlU2VydmljZSxcbiAgICBwdWJsaWMgYnBtU2VydmljZTogQnBtU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0QmFzZVRpdGxlKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94Lmxpc3QudGl0bGUnKSk7XG4gICAgLy9zZWNvbmRhcnkgc2VsZWN0aW9uIGluc3RhbmNlIGZvciBpbmJveCBpdGVtc1xuICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbi5jcmVhdGVOZXcodGhpcy5pbmJveFNlbGVjdGlvbklkKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5jcmVhdGVOZXcodGhpcy5pbmJveERtc09iamVjdFNlbGVjdGlvbklkKTtcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcyA9IHtjb250ZXh0OiB7ZGVmYXVsdFZhbHVlOiBwYXJhbXMuaWR9fTtcbiAgICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbW9kZWxGQ046IG51bGwsXG4gICAgfSk7XG4gICAgdGhpcy5icG1TZXJ2aWNlLmZldGNoUHJvY2Vzc01vZGVscygpLnN1YnNjcmliZShwcm9jZXNzTW9kZWxzID0+IHtcbiAgICAgIHRoaXMucHJvY2Vzc01vZGVsc0xpc3RPYmplY3QuZW50cmllcyA9IHByb2Nlc3NNb2RlbHM7XG4gICAgICB0aGlzLmdldFN0b3JhZ2VDYWNoZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRNb2RlbChlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaW5ib3hTZXJ2aWNlLmluYm94U3RhdGUkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBJbmJveFN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmVvR3JpZCkge1xuICAgICAgICAgIC8vIHRvZG86IHRlbXBvcmFyeSBmaXggdW50aWwgc3RhdHVzIHNlcnZpY2UgdXBkYXRlXG4gICAgICAgICAgLy8gdGhpcy5pbmJveENoYW5nZWQgPSB0aGlzLmVvR3JpZC5jb250ZXh0Q291bnQgIT09IHN0YXRlLnRvdGFsbWVzc2FnZXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZE1vZGVsKGU6IGFueSkge1xuICAgIGlmIChlLm1vZGVsRkNOICE9PSBudWxsICYmIGUubW9kZWxGQ04/Lm1vZGVsRkNOICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy5maWx0ZXJDYWNoZUtleSwgdGhpcy5maWx0ZXJGb3JtLmdldCgnbW9kZWxGQ04nKS52YWx1ZSk7XG4gICAgICB0aGlzLm9uUGFnZUNoYW5nZWQoKTtcbiAgICB9IGVsc2UgaWYgKGUubW9kZWxGQ04gPT09IG51bGwpIHtcbiAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhKTtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmZpbHRlckNhY2hlS2V5LCBudWxsKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdG9yYWdlQ2FjaGUoKSB7XG4gICAgdGhpcy5zdG9yYWdlRmlsdGVyVmFsdWUgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5maWx0ZXJDYWNoZUtleSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9yYWdlRmlsdGVyVmFsdWUpIHtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVyKHRoaXMuc3RvcmFnZUZpbHRlclZhbHVlKTtcbiAgICAgIH1cbiAgICB9LCAzMDApO1xuICB9XG5cblxuICBwcml2YXRlIGluaXRGaWx0ZXIoc3RvcmFnZUZpbHRlclZhbHVlKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgbW9kZWxGQ046IHN0b3JhZ2VGaWx0ZXJWYWx1ZSxcbiAgICB9KVxuICB9XG5cbiAgb25QYWdlQ2hhbmdlZCgpIHtcbiAgICB0aGlzLmZldGNoUm93RGF0YSh7XG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IChyb3dzKSA9PiB7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaT8uc2V0R3JpZE9wdGlvbjxhbnk+KCdyb3dEYXRhJywgcm93cyk7XG4gICAgICAgIHRoaXMuZW9HcmlkLnNlbGVjdFJvdygwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJvY2Vzc2VzKCkge1xuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKHRoaXMuYWRkRmlsdGVyUGFyYW1zVG9VcmwoJycpLCB7fSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24odXJsLCB0aGlzLmJhY2tlbmQuZ2V0SW5ib3hCYXNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgcmVzcG9uc2UucHJvY2Vzc2VzID0gcmVzcG9uc2UuY29udGVudC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEluYm94SXRlbShpdGVtKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRGaWx0ZXJQYXJhbXNUb1VybCh1cmwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUubW9kZWxGQ04pIHtcbiAgICAgIHVybCArPSAnL2dldD9zb3VyY2VHcm91cElkPScgKyB0aGlzLmdldE1vZGVsSWRGcm9tTmFtZSh0aGlzLmZpbHRlckZvcm0udmFsdWUubW9kZWxGQ04pICsgJyZwYWdlPTAmc2l6ZT0xMDAwJztcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hSb3dEYXRhKHBhcmFtcykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRQcm9jZXNzZXMoKS5zdWJzY3JpYmUoKHByb2Nlc3NlcykgPT4ge1xuICAgICAgICBpZiAocGFyYW1zLnN0YXJ0Um93ID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5lbXB0eVN0YXRlMSA9IHRoaXMuZW1wdHkuZ2V0RW1wdHlTdGF0ZShwcm9jZXNzZXMuY29udGVudCA/IHByb2Nlc3Nlcy5jb250ZW50Lmxlbmd0aCA6IC0xLCB1bmRlZmluZWQsICdpY19uby1maWxlLnN2ZycpO1xuICAgICAgICAgIHRoaXMuZW1wdHlTdGF0ZTIgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUocHJvY2Vzc2VzLmNvbnRlbnQgPyBwcm9jZXNzZXMuY29udGVudC5sZW5ndGggOiAtMSwgdW5kZWZpbmVkLCAnaWNfbm8tZmlsZS5zdmcnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVvR3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0NvdW50ID0gcHJvY2Vzc2VzLnRvdGFsRWxlbWVudHM7XG4gICAgICAgIHRoaXMuZW9HcmlkLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSBwcm9jZXNzZXMudG90YWxFbGVtZW50cztcbiAgICAgICAgcGFyYW1zLnN1Y2Nlc3NDYWxsYmFjayhwcm9jZXNzZXMucHJvY2Vzc2VzLCBwcm9jZXNzZXMudG90YWxFbGVtZW50cyk7XG4gICAgICB9KTtcbiAgICB9LCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZGVsSWRGcm9tTmFtZShtb2RlbE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGlkID0gJyc7XG4gICAgdGhpcy5wcm9jZXNzTW9kZWxzTGlzdE9iamVjdC5lbnRyaWVzLmZvckVhY2gobW9kZWwgPT4ge1xuICAgICAgaWYgKG1vZGVsLm5hbWUgPT09IG1vZGVsTmFtZSkge1xuICAgICAgICBpZCA9IG1vZGVsLmlkO1xuICAgICAgfSBlbHNlIGlmIChtb2RlbC5tb2RlbHMpIHtcbiAgICAgICAgbW9kZWwubW9kZWxzLmZvckVhY2goc3VibW9kZWwgPT4ge1xuICAgICAgICAgIGlmIChzdWJtb2RlbC5uYW1lID09PSBtb2RlbE5hbWUpIHtcbiAgICAgICAgICAgIGlkID0gc3VibW9kZWwuaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBvbkNvdW50Q2hhbmdlZChldnQ6IGFueSkge1xuICAgIGlmICh0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dCAmJiB0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dC5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIGlmIChldnQucm93Q291bnQgPT09IDApIHtcbiAgICAgICAgdGhpcy5pZE1hdGNoID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLmluYm94U2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmVvR3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICB0aGlzLmluYm94Q2hhbmdlZCA9IGZhbHNlO1xuICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZShmYWxzZSk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2UuZ2V0SXRlbXMoKS5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybS5nZXQoJ21vZGVsRkNOJykudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZE1vZGVsKHRoaXMuZmlsdGVyRm9ybS5nZXQoJ21vZGVsRkNOJykudmFsdWUpO1xuICAgICAgfVxuICAgIH0sIDIwMCk7XG4gIH1cblxuICBpdGVtRmlsdGVyRmllbGRzKG5vZGUsIGl0ZW0pIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5vZGUuZGF0YVtJbmJveFR5cGVzRmlsdGVyW2l0ZW1dXTtcbiAgICBjb25zdCBhY2NlcHRlZEFuZFVuYWNjZXB0ZWRDb21iaW5lZCA9IHRoaXMuaW5ib3hGaWx0ZXJGaWVsZHMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLmlkID09PSAnYWNjZXB0ZWRUYXNrcycpLnZhbHVlXG4gICAgICAmJiB0aGlzLmluYm94RmlsdGVyRmllbGRzLmZpbmQoZmlsdGVyID0+IGZpbHRlci5pZCA9PT0gJ3VuYWNjZXB0ZWRUYXNrcycpLnZhbHVlO1xuICAgIHN3aXRjaCAoSW5ib3hUeXBlc0ZpbHRlcltpdGVtXSkge1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLm92ZXJkdWU6XG4gICAgICAgIHJldHVybiBub2RlLmRhdGEuaXNPdmVyZHVlKCk7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIuYWJzZW50OlxuICAgICAgICByZXR1cm4gISF2YWx1ZTtcbiAgICAgIGNhc2UgSW5ib3hUeXBlc0ZpbHRlci5hY2NlcHRlZFRhc2tzOlxuICAgICAgICByZXR1cm4gYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPyBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgOiBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgJiYgISFub2RlLmRhdGEuYWNjZXB0ZWQ7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIudW5hY2NlcHRlZFRhc2tzOlxuICAgICAgICByZXR1cm4gYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPyBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgOiBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgJiYgIW5vZGUuZGF0YS5hY2NlcHRlZDtcbiAgICB9XG4gIH1cblxuICBmaWVsZEZpbHRlcnMoKSB7XG4gICAgdGhpcy50eXBlRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoSW5ib3hUeXBlcykubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5pbmJveC4ke2l0ZW19YCksXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiBub2RlLmRhdGEudHlwZSA9PT0gaXRlbSxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgaWQ6IGl0ZW1cbiAgICB9KSk7XG5cbiAgICB0aGlzLmluYm94RmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoSW5ib3hUeXBlc0ZpbHRlcikubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5pbmJveC5maWx0ZXIuJHtpdGVtfWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gdGhpcy5pdGVtRmlsdGVyRmllbGRzKG5vZGUsIGl0ZW0pLFxuICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgaWQ6IGl0ZW1cbiAgICB9KSk7XG4gIH1cblxuXG4gIHVwZGF0ZUdyaWQoZGF0YTogSW5ib3hJdGVtW10pOiB2b2lkIHtcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoZGF0YSA/IGRhdGEubGVuZ3RoIDogLTEsIHVuZGVmaW5lZCwgJ2ljX25vLWZpbGUuc3ZnJyk7XG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIHRoaXMuZW9HcmlkLmlzUmVhZHkpIHtcbiAgICAgIHJldHVybiB0aGlzLmVvR3JpZC51cGRhdGVSb3dEYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRGaWx0ZXJzKCk7XG4gICAgbGV0IGNvbERlZnM6IENvbERlZltdID0gW3tcbiAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgZmllbGQ6ICdfX2N1c3RvbScsXG4gICAgICBjZWxsUmVuZGVyZXI6IHRoaXMuY2VsbFJlbmRlcmVyLFxuICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgLy8gY2VsbFJlbmRlcmVyRnJhbWV3b3JrOiBJbmJveFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfV07XG5cbiAgICB0aGlzLnNvcnRGaWVsZHMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiAncmVjZWl2ZWQnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LmRhdGUnKSwgc29ydDogbnVsbCxcbiAgICAgICAgdmFsdWVHZXR0ZXI6IChwKSA9PiAocC5kYXRhW3AuY29sRGVmLmZpZWxkXSB8fCAnJykubWF0Y2goL1xcK1xcZFxcZDpcXGRcXGQvKSA/IG5ldyBEYXRlKHAuZGF0YVtwLmNvbERlZi5maWVsZF0pLnRvSVNPU3RyaW5nKCkgOiBwLmRhdGFbcC5jb2xEZWYuZmllbGRdXG4gICAgICB9LFxuICAgICAge2ZpZWxkOiAndGl0bGUnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LnRpdGxlJyksIHNvcnQ6IG51bGx9LFxuICAgICAge2ZpZWxkOiAnZGVzY3JpcHRpb24nLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LmRlc2NyaXB0aW9uJyksIHNvcnQ6IG51bGx9XG4gICAgXTtcblxuICAgIGxldCBzb3J0Q29sRGVmcyA9IEN1c3RvbVNvcnRDb21wb25lbnQuc29ydENvbERlZnModGhpcy5zb3J0RmllbGRzKTtcblxuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb250ZXh0OiB7Y291bnQ6IGRhdGEubGVuZ3RofSxcbiAgICAgIHJvd0RhdGE6IGRhdGEsXG4gICAgICBjb2x1bW5EZWZzOiBjb2xEZWZzLmNvbmNhdChzb3J0Q29sRGVmcyksXG4gICAgICByb3dCdWZmZXI6IDIwLFxuICAgICAgcm93SGVpZ2h0OiA4MCxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ3NpbmdsZSdcbiAgICB9O1xuICB9XG5cbiAgb25GaWx0ZXJPdmVybGF5VG9nZ2xlKG9wZW46IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVvR3JpZC5hcGk/LnNldEdyaWRPcHRpb24oJ3N1cHByZXNzQ2VsbEZvY3VzJywgb3Blbik7XG4gICAgaWYgKCFvcGVuKSB7XG4gICAgICB0aGlzLmVvR3JpZC5zZWxlY3RSb3coMCk7XG4gICAgfVxuICB9XG5cbiAgY2VsbFJlbmRlcmVyKHBhcmFtcykge1xuICAgIGxldCBsYWJlbCA9ICcnO1xuICAgIGlmIChPYmplY3Qua2V5cyhJbmJveFR5cGVzKS5pbmNsdWRlcyhwYXJhbXMuZGF0YS50eXBlKSkge1xuICAgICAgbGFiZWwgPSBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudChgZW8uaW5ib3guJHtwYXJhbXMuZGF0YS50eXBlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IGBhc3NldHMvX2RlZmF1bHQvc3ZnL2ljXyR7SW5ib3hUeXBlc1twYXJhbXMuZGF0YS50eXBlXX0uc3ZnYDtcblxuICAgIGxldCBpY29uID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdpY29uJywgcGFyYW1zLCB7dmFsdWU6IHt1cmwsIGxhYmVsfX0pO1xuICAgIGxldCBzaG9ydERhdGUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7dmFsdWU6IHBhcmFtcy5kYXRhLnJlY2VpdmVkLCBwYXR0ZXJuOiAnZW9TaG9ydERhdGUnfSk7XG4gICAgbGV0IHNob3J0VGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHt2YWx1ZTogcGFyYW1zLmRhdGEucmVjZWl2ZWQsIHBhdHRlcm46ICdlb1Nob3J0VGltZSd9KTtcbiAgICBsZXQgZHVldGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHt2YWx1ZTogcGFyYW1zLmRhdGEuZHVldGltZX0pO1xuICAgIGNvbnN0IHRpdGxlQ2xhc3MgPSBwYXJhbXMuZGF0YS5hY2NlcHRlZCA/ICd0aXRsZScgOiAndGl0bGUtYm9sZCc7XG5cbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0ke3BhcmFtcy5kYXRhLmZvbGRlciA/ICcgZm9sZGVyJyA6ICcnfVwiIHVuc2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgJHtpY29ufVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250ZW50Jz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPScke3RpdGxlQ2xhc3N9Jz4ke3BhcmFtcy5kYXRhLnRpdGxlIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2Rlc2NyaXB0aW9uJz4ke3BhcmFtcy5kYXRhLmRlc2NyaXB0aW9uIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J25vdGVzJHtwYXJhbXMuZGF0YS5pc092ZXJkdWUoKSA/ICcgcGFzdER1ZScgOiAnJ30nPlxuICAgICAgICAgICAgICAgICAgJHtwYXJhbXMuZGF0YS5kdWV0aW1lID8gJzxzcGFuIGNsYXNzPVwicGVyaW9kXCI+JyArIGR1ZXRpbWUgKyAnPC9zcGFuPicgOiAnJ31cbiAgICAgICAgICAgICAgICAgICR7cGFyYW1zLmRhdGEuaXNkZXB1dHkgPyAnPHNwYW4+JyArIHBhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5pdGVtLm5vdGUuYWJzZW5jZScpICsgJzwvc3Bhbj4nIDogJyd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+JHtzaG9ydERhdGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj4ke3Nob3J0VGltZX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGA7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlZnJlc2hHcmlkKCk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2VcbiAgICAgIC5pbmJveEl0ZW1zR3JpZERhdGEkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IEluYm94SXRlbVtdKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQodGhpcy5ncmlkRGF0YSk7XG4gICAgICAgIHRoaXMuZW9HcmlkPy5hcGkucmVkcmF3Um93cygpO1xuICAgICAgICBjb25zdCBsYXN0SW5ib3hJdGVtSUQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5TGFzdEl0ZW1JRCk7XG4gICAgICAgIGlmIChsYXN0SW5ib3hJdGVtSUQgJiYgdGhpcy5ncmlkRGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gbGFzdEluYm94SXRlbUlEKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZW9HcmlkLnNlbGVjdFJvdyhsYXN0SW5ib3hJdGVtSUQpLCA1MDApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5JTkJPWF9JVEVNX0xPQ0tFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RJbmJveEl0ZW1JRCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXlMYXN0SXRlbUlEKTtcbiAgICAgICAgdGhpcy5ncmlkRGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gbGFzdEluYm94SXRlbUlEKS5hY2NlcHRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaS5yZWRyYXdSb3dzKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5JTkJPWF9JVEVNX1VOTE9DS0VEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgbGFzdEluYm94SXRlbUlEID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleUxhc3RJdGVtSUQpO1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZpbmQoaSA9PiBpLmlkID09PSBsYXN0SW5ib3hJdGVtSUQpLmFjY2VwdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaS5yZWRyYXdSb3dzKCk7XG4gICAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFN1YnNjcmliZXMgdG8gdGhlIG9uRmluaXNoJCBvYnNlcnZhYmxlIG9mIHRoZSBhY3Rpb25TZXJ2aWNlLlxuICAgICAqIFdoZW4gdGhlIG9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZSwgdGhlIHJlZnJlc2hHcmlkIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLm9uRmluaXNoJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAvLyBDbGVhcnMgYW55IGFjdGlvbnMgdGhhdCBhcmUgc3BlY2lmaWMgdG8gdGhpcyBjb21wb25lbnQuXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmNsZWFyQ29tcG9uZW50U3BlY2lmaWNBY3Rpb25zKCk7XG4gIH1cblxuXG4gIGhhc0NoYW5nZWQob1YpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb1Y/Lm1vZGVsRkNOICE9PSBudWxsICYmIG9WLm1vZGVsRkNOPy5tb2RlbEZDTiAhPT0gbnVsbDtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldHMgYW5kIGRpc3BsYXlzIGNvbXBvbmVudC1zcGVjaWZpYyBhY3Rpb25zLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuIGFycmF5IG9mIGFjdGlvbnMsIHNldHMgdGhlbSBhcyBjb21wb25lbnQtc3BlY2lmaWMgYWN0aW9uc1xuICAgKiB1c2luZyB0aGUgYWN0aW9uU2VydmljZSwgYW5kIHRoZW4gZGlzcGxheXMgdGhlc2UgYWN0aW9ucyBvbiB0aGUgcGFnZS5cbiAgICovXG4gIHNob3dBY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGFjdGlvbjogbmV3IFJldHVyblRhc2tBY3Rpb25Db21wb25lbnQodGhpcy50cmFuc2xhdGUpLFxuICAgICAgfVxuICAgIF07XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnNldENvbXBvbmVudFNwZWNpZmljQWN0aW9ucyhhY3Rpb25zKTtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2Uuc2hvd0FjdGlvbnMoW10sICdDT01QT05FTlRfU1BFQ0lGSUNfQUNUSU9OUycpO1xuICB9XG5cbn1cbiIsIjx5dmMtc3BsaXQtdmlldyBbbGF5b3V0U2V0dGluZ3NJRF09XCInaW5ib3guc3RhdGUnXCIgW2VvU2hvcnRjdXRzXT1cInNob3J0Y3V0c1wiPlxuICA8IS0tIGxpc3QgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie291dDogaW5ib3hTZWxlY3Rpb25JZH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXJcIj5cblxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImVvLWhlYWRlci1pY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5ib3guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiIHRyYW5zbGF0ZT5lby5pbmJveC5saXN0LnRpdGxlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiByZWZyZXNoLWJ1dHRvblwiIFtuZ0NsYXNzXT1cIntpbmJveENoYW5nZWQ6IGluYm94Q2hhbmdlZH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2hHcmlkKClcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgY2xhc3M9XCJvdmVybGF5LWZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJoYXNDaGFuZ2VkKGZpbHRlckZvcm0/LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9uVG9nZ2xlKT1cIm9uRmlsdGVyT3ZlcmxheVRvZ2dsZSgkZXZlbnQpXCI+XG5cbiAgICAgICAgICAgIDxlby1jdXN0b20tZmlsdGVyICNjRmlsdGVyIChjaGFuZ2UpPVwiY0ZpbHRlci51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWRTdWJqZWN0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyRm9ybV09XCJmaWx0ZXJGb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZSB8fCBoYXNDaGFuZ2VkKGZpbHRlckZvcm0/LnZhbHVlKVwiPlxuXG4gICAgICAgICAgICAgIDxlby10ZXh0LWZpbHRlciBbdGl0bGVdPVwiJ2VvLmluYm94LmZpbHRlci50aXRsZScgfCB0cmFuc2xhdGVcIiBbZmlsdGVyUGFyYW1zXT1cImRlZmF1bHRGaWx0ZXJQYXJhbXNcIlxuICAgICAgICAgICAgICAgIFtpZF09XCInaW5ib3gudGV4dCdcIiBbbWF0Y2hGaWVsZHNdPVwiWyd0aXRsZScsJ2Rlc2NyaXB0aW9uJywnaWQnXVwiIFtlbmFibGVTYXZlXT1cInRydWVcIj48L2VvLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICA8ZW8tc2V0LWZpbHRlciBjbGFzcz1cInR5cGUtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInT1InXCIgW2lkXT1cIidpbmJveC50eXBlJ1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cInR5cGVGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIGNsYXNzPVwiaW5ib3gtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInQU5EJ1wiIFtpZF09XCInaW5ib3guc2V0J1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cImluYm94RmlsdGVyRmllbGRzXCI+PC9lby1zZXQtZmlsdGVyPlxuXG4gICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiPlxuICAgICAgICAgICAgICAgIEBpZiAocHJvY2Vzc01vZGVsc0xpc3RPYmplY3QuZW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5tb2RlbCcgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxlby1keW5hbWljLWxpc3QgZm9ybUNvbnRyb2xOYW1lPVwibW9kZWxGQ05cIiBbcGlja2VyVGl0bGVdPVwiJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFtsaXN0T2JqZWN0XT1cInByb2Nlc3NNb2RlbHNMaXN0T2JqZWN0XCI+PC9lby1keW5hbWljLWxpc3Q+XG4gICAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgICAgIDwvZW8tY3VzdG9tLWZpbHRlcj5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb1NvcnQgY2xhc3M9XCJvdmVybGF5LXNvcnRcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zb3J0LnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0ICNjU29ydCBbaWRdPVwiJ2luYm94LnNvcnQnXCIgKGNoYW5nZSk9XCJjU29ydC51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWQsICRldmVudClcIlxuICAgICAgICAgICAgICAoYWN0aXZlKT1cIm9Tb3J0Lm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCIgW3NvcnRGaWVsZHNdPVwic29ydEZpZWxkc1wiPjwvZW8tY3VzdG9tLXNvcnQ+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gYWN0aW9ucy1idXR0b25cIiAoY2xpY2spPVwic2hvd0FjdGlvbnMoKVwiIFtpY29uVGl0bGVdPVwiJ2VvLnNob3J0Y3V0cy5hY3Rpb24udGFzaycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbW9yZS5zdmcnXCI+PC9lby1pY29uPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuICAgICAgICA8ZW8tZ3JpZCAjZW9HcmlkICpuZ0lmPVwiZ3JpZE9wdGlvbnM/LnJvd0RhdGFcIiBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIiBbZnVsbFdpZHRoXT1cInRydWVcIiBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd0Zvb3Rlcl09XCJ0cnVlXCIgW3NlbGVjdEZpcnN0XT1cInNlbGVjdEZpcnN0XCIgW29wdGlvbnNdPVwie2ZpbHRlckFjdGl2ZTogb0ZpbHRlci5hY3RpdmV9XCJcbiAgICAgICAgICAoZW9HcmlkQ291bnRDaGFuZ2VkKT1cImVvTGlzdC5vbkNvdW50Q2hhbmdlZCgkZXZlbnQpO29uQ291bnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgICAgIDxlby10b3RhbC1jb3VudCBbZ3JpZENvdW50XT1cImVvTGlzdC5ncmlkQ291bnRcIiBbb3V0c2lkZUdyaWRdPVwiZmFsc2VcIiBjbGFzcz1cImZsZXgtcm93XCI+PC9lby10b3RhbC1jb3VudD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAgPGVvLWVycm9yLW1lc3NhZ2VcbiAgICAgICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19pbmJveC5zdmcnLCB0ZXh0OiBvRmlsdGVyLmFjdGl2ZSA/ICdlby5uby5maWx0ZXIucmVzdWx0JyA6ICdlby5pbmJveC5saXN0LmVtcHR5J31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8ZW8tcmVzZXQtZmlsdGVyIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZSB8fCBoYXNDaGFuZ2VkKGZpbHRlckZvcm0/LnZhbHVlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9lby1ncmlkPlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1saXN0LWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPCEtLSBpbmJveCBkZXRhaWxzIC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWluYm94LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cIntpbjogaW5ib3hTZWxlY3Rpb25JZCwgb3V0OiBpbmJveERtc09iamVjdFNlbGVjdGlvbklkfVwiXG4gICAgICBbZW1wdHlTdGF0ZV09XCJlbXB0eVN0YXRlXCIgW3BsdWdpbnNdPVwiJ2luYm94LWRldGFpbHMtdGFiLmluYm94JyB8IHBsdWdpbnNcIj5cbiAgICA8L2VvLWluYm94LWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDwhLS0gb2JqZWN0IGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNDBcIj5cbiAgICA8ZW8tb2JqZWN0LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cIntpbjogaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZH1cIiBbY2FjaGVMYXlvdXRdPVwiJ2luYm94LnN0YXRlLm9iamVjdC1kZXRhaWxzJ1wiXG4gICAgW3BsdWdpbnNdPVwiJ29iamVjdC1kZXRhaWxzLXRhYi5pbmJveCcgfCBwbHVnaW5zXCI+XG4gICAgPC9lby1vYmplY3QtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwveXZjLXNwbGl0LXZpZXc+XG4iXX0=
|
|
414
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBR0wsVUFBVSxFQUVWLFNBQVMsRUFLVCxLQUFLLEVBQ04sTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQU9uRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUc1RyxPQUFPLEVBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFHdEgsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUWxCLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBcUQ5QixZQUFtQixTQUEyQixFQUNyQyxTQUEyQixFQUMxQixZQUE4QixFQUMvQixZQUEwQixFQUN6QixjQUFxQyxFQUNyQyxLQUF3QixFQUN6QixVQUFzQixFQUNyQixFQUFzQixFQUN0QixPQUF1QixFQUN2QixZQUEwQixFQUMxQixLQUFxQixFQUNyQixjQUFtQyxFQUNuQyxhQUE0QjtRQVpuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNyQyxj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YUFBYSxDQUFDLDZCQUE2QixFQUFFLENBQUM7SUFDckQsQ0FBQztJQUdELFVBQVUsQ0FBQyxFQUFFO1FBQ1gsT0FBTyxFQUFFLEVBQUUsUUFBUSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUdEOzs7OztPQUtHO0lBQ0gsV0FBVztRQUNULE1BQU0sT0FBTyxHQUFHO1lBQ2Q7Z0JBQ0UsTUFBTSxFQUFFLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUN0RDtTQUNGLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQ25FLENBQUM7OEdBNVpVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLHdKQ3JDaEMscS9KQTBGQTs7QURyRGEsbUJBQW1CO0lBTi9CLFlBQVksRUFBRTtHQU1GLG1CQUFtQixDQThaL0I7OzJGQTlaWSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCOytiQXNETCxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCYWNrZW5kU2VydmljZSxcbiAgQnBtU2VydmljZSxcbiAgRW5haW9FdmVudCxcbiAgRXZlbnRTZXJ2aWNlLFxuICBJbmJveEl0ZW0sXG4gIEluYm94U2VydmljZSxcbiAgSW5ib3hTdGF0ZSxcbiAgTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7RW1wdHlTdGF0ZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7RW1wdHlTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS90aXRsZS9wYWdlLXRpdGxlLnNlcnZpY2UnO1xuaW1wb3J0IHtDdXN0b21Tb3J0Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2N1c3RvbS1zb3J0L2N1c3RvbS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge0lTZXRGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvZmlsdGVyL3NldEZpbHRlcnMvc2V0LWZpbHRlcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmJveFR5cGVzLCBJbmJveFR5cGVzRmlsdGVyfSBmcm9tICcuL2luYm94LnR5cGVzLmVudW0nO1xuaW1wb3J0IHtSZXR1cm5UYXNrQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb25zL3JldHVybi10YXNrLWFjdGlvbi9yZXR1cm4tdGFzay1hY3Rpb24nO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlLCBHbG9iYWxTaG9ydGN1dENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrJztcbmltcG9ydCB7VW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8taW5ib3gtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmJveC1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEluYm94U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQge1xuXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgc29ydEZpZWxkczogQ29sRGVmW107XG4gIGluYm94RmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgdHlwZUZpbHRlckZpZWxkczogSVNldEZpbHRlcltdID0gW107XG4gIGluYm94U2VsZWN0aW9uSWQgPSAnaW5ib3gnO1xuICBpbmJveERtc09iamVjdFNlbGVjdGlvbklkID0gJ2luYm94X2Rtcyc7XG4gIGZpbHRlckNhY2hlS2V5ID0gXCJlby5pbmJveC5saXN0LmZpbHRlclwiO1xuICBpbmJveFNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZTtcbiAgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuICBmaWx0ZXJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBlbXB0eVN0YXRlMTogRW1wdHlTdGF0ZSA9IHtpY29uOiAnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuICBlbXB0eVN0YXRlMjogRW1wdHlTdGF0ZSA9IHtpY29uOiAnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuXG4gIHByb2Nlc3NNb2RlbHNMaXN0T2JqZWN0ID0ge1xuICAgIGVudHJpZXM6IFtdLFxuICAgIGNvbmZpZzoge1xuICAgICAgdmFsdWVGaWVsZDogJ25hbWUnLFxuICAgICAgdGl0bGU6ICd0aXRsZScsXG4gICAgICBzdWJFbnRyaWVzRmllbGQ6ICdtb2RlbHMnXG4gICAgfVxuICB9XG5cbiAgaWRNYXRjaCA9IHRydWU7XG4gIGdyaWREYXRhO1xuICBkZWZhdWx0RmlsdGVyUGFyYW1zOiBhbnkgPSB7fTtcbiAgZW1wdHlTdGF0ZTogRW1wdHlTdGF0ZSA9IHtpY29uOiAnaWNfbm8tZmlsZS5zdmcnLCB0ZXh0OiAnJywgY2xhc3NOYW1lOiAnJ307XG4gIGluYm94Q2hhbmdlZCA9IGZhbHNlO1xuICBzdG9yYWdlS2V5TGFzdEl0ZW1JRCA9ICdlby5pbmJveC5sYXN0SXRlbUlEJztcblxuICAvLyBkZWZpbmUgYSBHbG9iYWxTaG9ydGN1dENvbXBvbmVudCBmb3IgdGhlIGluYm94IHN0YXRlXG4gIHNob3J0Y3V0czogR2xvYmFsU2hvcnRjdXRDb21wb25lbnQgPSB7XG4gICAgaWQ6ICdlby5pbmJveC1zdGF0ZScsXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94Lmxpc3QudGl0bGUnKSxcbiAgICBsYWJlbEtleTogJ2VvLmluYm94Lmxpc3QudGl0bGUnLFxuICAgIGZvY3VzZWQ6IHRydWUsXG4gICAgYWN0aW9uczogW3tcbiAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5hY3Rpb24udGFzaycpLFxuICAgICAgbmFtZUtleTogJ2VvLnNob3J0Y3V0cy5hY3Rpb24udGFzaycsXG4gICAgICBzaG9ydGN1dDogJ1QnLFxuICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0FjdGlvbnMoKTtcbiAgICAgIH0sXG4gICAgICBpc0hpZGRlbjogKCk6IGJvb2xlYW4gPT4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfV1cbiAgfTtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG4gIHN0b3JhZ2VGaWx0ZXJWYWx1ZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwdWJsaWMgaW5ib3hTZXJ2aWNlOiBJbmJveFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW1wdHk6IEVtcHR5U3RhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBicG1TZXJ2aWNlOiBCcG1TZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3gubGlzdC50aXRsZScpKTtcbiAgICAvL3NlY29uZGFyeSBzZWxlY3Rpb24gaW5zdGFuY2UgZm9yIGluYm94IGl0ZW1zXG4gICAgdGhpcy5pbmJveFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uLmNyZWF0ZU5ldyh0aGlzLmluYm94U2VsZWN0aW9uSWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmNyZWF0ZU5ldyh0aGlzLmluYm94RG1zT2JqZWN0U2VsZWN0aW9uSWQpO1xuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXNcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyUGFyYW1zID0ge2NvbnRleHQ6IHtkZWZhdWx0VmFsdWU6IHBhcmFtcy5pZH19O1xuICAgICAgfSk7XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBtb2RlbEZDTjogbnVsbCxcbiAgICB9KTtcbiAgICB0aGlzLmJwbVNlcnZpY2UuZmV0Y2hQcm9jZXNzTW9kZWxzKCkuc3Vic2NyaWJlKHByb2Nlc3NNb2RlbHMgPT4ge1xuICAgICAgbGV0IG1vZGVscyA9IFtdO1xuICAgICAgcHJvY2Vzc01vZGVscy5mb3JFYWNoKChtb2RlbDogYW55KSA9PiB7XG4gICAgICAgIGlmIChtb2RlbC5tb2RlbHMpIHtcbiAgICAgICAgICBtb2RlbC5tb2RlbHMuZm9yRWFjaChtID0+IHtcbiAgICAgICAgICAgIG1vZGVscy5wdXNoKG0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb2RlbC5wcm9qZWN0cykge1xuICAgICAgICAgIG1vZGVsLnByb2plY3RzLmZvckVhY2gocHJvamVjdCA9PiB7XG4gICAgICAgICAgICBpZiAocHJvamVjdC5tb2RlbHMpIHtcbiAgICAgICAgICAgICAgcHJvamVjdC5tb2RlbHMuZm9yRWFjaChtID0+IHtcbiAgICAgICAgICAgICAgICBtb2RlbHMucHVzaChtKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5wcm9jZXNzTW9kZWxzTGlzdE9iamVjdC5lbnRyaWVzID0gbW9kZWxzO1xuICAgICAgdGhpcy5wcm9jZXNzTW9kZWxzTGlzdE9iamVjdC5lbnRyaWVzLnNvcnQoVXRpbHMuc29ydFZhbHVlcygndGl0bGUnKSk7XG4gICAgICB0aGlzLmdldFN0b3JhZ2VDYWNoZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRNb2RlbChlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuaW5ib3hTZXJ2aWNlLmluYm94U3RhdGUkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBJbmJveFN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmVvR3JpZCkge1xuICAgICAgICAgIC8vIHRvZG86IHRlbXBvcmFyeSBmaXggdW50aWwgc3RhdHVzIHNlcnZpY2UgdXBkYXRlXG4gICAgICAgICAgLy8gdGhpcy5pbmJveENoYW5nZWQgPSB0aGlzLmVvR3JpZC5jb250ZXh0Q291bnQgIT09IHN0YXRlLnRvdGFsbWVzc2FnZXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWxlY3RlZE1vZGVsKGU6IGFueSkge1xuICAgIGlmIChlLm1vZGVsRkNOICE9PSBudWxsICYmIGUubW9kZWxGQ04/Lm1vZGVsRkNOICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy5maWx0ZXJDYWNoZUtleSwgdGhpcy5maWx0ZXJGb3JtLmdldCgnbW9kZWxGQ04nKS52YWx1ZSk7XG4gICAgICB0aGlzLm9uUGFnZUNoYW5nZWQoKTtcbiAgICB9IGVsc2UgaWYgKGUubW9kZWxGQ04gPT09IG51bGwpIHtcbiAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhKTtcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmZpbHRlckNhY2hlS2V5LCBudWxsKTtcbiAgICB9XG4gIH1cblxuICBnZXRTdG9yYWdlQ2FjaGUoKSB7XG4gICAgdGhpcy5zdG9yYWdlRmlsdGVyVmFsdWUgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5maWx0ZXJDYWNoZUtleSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9yYWdlRmlsdGVyVmFsdWUpIHtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVyKHRoaXMuc3RvcmFnZUZpbHRlclZhbHVlKTtcbiAgICAgIH1cbiAgICB9LCAzMDApO1xuICB9XG5cblxuICBwcml2YXRlIGluaXRGaWx0ZXIoc3RvcmFnZUZpbHRlclZhbHVlKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgbW9kZWxGQ046IHN0b3JhZ2VGaWx0ZXJWYWx1ZSxcbiAgICB9KVxuICB9XG5cbiAgb25QYWdlQ2hhbmdlZCgpIHtcbiAgICB0aGlzLmZldGNoUm93RGF0YSh7XG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IChyb3dzKSA9PiB7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaT8uc2V0R3JpZE9wdGlvbjxhbnk+KCdyb3dEYXRhJywgcm93cyk7XG4gICAgICAgIHRoaXMuZW9HcmlkLnNlbGVjdFJvdygwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJvY2Vzc2VzKCkge1xuICAgIGNvbnN0IHVybCA9IFV0aWxzLmJ1aWxkVXJpKHRoaXMuYWRkRmlsdGVyUGFyYW1zVG9VcmwoJycpLCB7fSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24odXJsLCB0aGlzLmJhY2tlbmQuZ2V0SW5ib3hCYXNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgcmVzcG9uc2UucHJvY2Vzc2VzID0gcmVzcG9uc2UuY29udGVudC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEluYm94SXRlbShpdGVtKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRGaWx0ZXJQYXJhbXNUb1VybCh1cmwpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmZpbHRlckZvcm0udmFsdWUubW9kZWxGQ04pIHtcbiAgICAgIHVybCArPSAnL2dldD9zb3VyY2VHcm91cElkPScgKyB0aGlzLmdldE1vZGVsSWRGcm9tTmFtZSh0aGlzLmZpbHRlckZvcm0udmFsdWUubW9kZWxGQ04pICsgJyZwYWdlPTAmc2l6ZT0xMDAwJztcbiAgICB9XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hSb3dEYXRhKHBhcmFtcykge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5nZXRQcm9jZXNzZXMoKS5zdWJzY3JpYmUoKHByb2Nlc3NlcykgPT4ge1xuICAgICAgICBpZiAocGFyYW1zLnN0YXJ0Um93ID09PSAwKSB7XG4gICAgICAgICAgdGhpcy5lbXB0eVN0YXRlMSA9IHRoaXMuZW1wdHkuZ2V0RW1wdHlTdGF0ZShwcm9jZXNzZXMuY29udGVudCA/IHByb2Nlc3Nlcy5jb250ZW50Lmxlbmd0aCA6IC0xLCB1bmRlZmluZWQsICdpY19uby1maWxlLnN2ZycpO1xuICAgICAgICAgIHRoaXMuZW1wdHlTdGF0ZTIgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUocHJvY2Vzc2VzLmNvbnRlbnQgPyBwcm9jZXNzZXMuY29udGVudC5sZW5ndGggOiAtMSwgdW5kZWZpbmVkLCAnaWNfbm8tZmlsZS5zdmcnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVvR3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LnJvd0NvdW50ID0gcHJvY2Vzc2VzLnRvdGFsRWxlbWVudHM7XG4gICAgICAgIHRoaXMuZW9HcmlkLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSBwcm9jZXNzZXMudG90YWxFbGVtZW50cztcbiAgICAgICAgcGFyYW1zLnN1Y2Nlc3NDYWxsYmFjayhwcm9jZXNzZXMucHJvY2Vzc2VzLCBwcm9jZXNzZXMudG90YWxFbGVtZW50cyk7XG4gICAgICB9KTtcbiAgICB9LCk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZGVsSWRGcm9tTmFtZShtb2RlbE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGlkID0gJyc7XG4gICAgdGhpcy5wcm9jZXNzTW9kZWxzTGlzdE9iamVjdC5lbnRyaWVzLmZvckVhY2gobW9kZWwgPT4ge1xuICAgICAgaWYgKG1vZGVsLm5hbWUgPT09IG1vZGVsTmFtZSkge1xuICAgICAgICBpZCA9IG1vZGVsLmlkO1xuICAgICAgfSBlbHNlIGlmIChtb2RlbC5tb2RlbHMpIHtcbiAgICAgICAgbW9kZWwubW9kZWxzLmZvckVhY2goc3VibW9kZWwgPT4ge1xuICAgICAgICAgIGlmIChzdWJtb2RlbC5uYW1lID09PSBtb2RlbE5hbWUpIHtcbiAgICAgICAgICAgIGlkID0gc3VibW9kZWwuaWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBvbkNvdW50Q2hhbmdlZChldnQ6IGFueSkge1xuICAgIGlmICh0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dCAmJiB0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dC5kZWZhdWx0VmFsdWUpIHtcbiAgICAgIGlmIChldnQucm93Q291bnQgPT09IDApIHtcbiAgICAgICAgdGhpcy5pZE1hdGNoID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLmluYm94U2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmVvR3JpZC5ncmlkT3B0aW9ucy5jb250ZXh0LmNvdW50ID0gMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICB0aGlzLmluYm94Q2hhbmdlZCA9IGZhbHNlO1xuICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uZGlzYWJsZShmYWxzZSk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2UuZ2V0SXRlbXMoKS5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmluYm94U2VydmljZS5yZWZyZXNoSW5ib3hTdGF0ZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZmlsdGVyRm9ybS5nZXQoJ21vZGVsRkNOJykudmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZE1vZGVsKHRoaXMuZmlsdGVyRm9ybS5nZXQoJ21vZGVsRkNOJykudmFsdWUpO1xuICAgICAgfVxuICAgIH0sIDIwMCk7XG4gIH1cblxuICBpdGVtRmlsdGVyRmllbGRzKG5vZGUsIGl0ZW0pIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5vZGUuZGF0YVtJbmJveFR5cGVzRmlsdGVyW2l0ZW1dXTtcbiAgICBjb25zdCBhY2NlcHRlZEFuZFVuYWNjZXB0ZWRDb21iaW5lZCA9IHRoaXMuaW5ib3hGaWx0ZXJGaWVsZHMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLmlkID09PSAnYWNjZXB0ZWRUYXNrcycpLnZhbHVlXG4gICAgICAmJiB0aGlzLmluYm94RmlsdGVyRmllbGRzLmZpbmQoZmlsdGVyID0+IGZpbHRlci5pZCA9PT0gJ3VuYWNjZXB0ZWRUYXNrcycpLnZhbHVlO1xuICAgIHN3aXRjaCAoSW5ib3hUeXBlc0ZpbHRlcltpdGVtXSkge1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLm92ZXJkdWU6XG4gICAgICAgIHJldHVybiBub2RlLmRhdGEuaXNPdmVyZHVlKCk7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIuYWJzZW50OlxuICAgICAgICByZXR1cm4gISF2YWx1ZTtcbiAgICAgIGNhc2UgSW5ib3hUeXBlc0ZpbHRlci5hY2NlcHRlZFRhc2tzOlxuICAgICAgICByZXR1cm4gYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPyBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgOiBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgJiYgISFub2RlLmRhdGEuYWNjZXB0ZWQ7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIudW5hY2NlcHRlZFRhc2tzOlxuICAgICAgICByZXR1cm4gYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPyBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgOiBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgJiYgIW5vZGUuZGF0YS5hY2NlcHRlZDtcbiAgICB9XG4gIH1cblxuICBmaWVsZEZpbHRlcnMoKSB7XG4gICAgdGhpcy50eXBlRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoSW5ib3hUeXBlcykubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5pbmJveC4ke2l0ZW19YCksXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiBub2RlLmRhdGEudHlwZSA9PT0gaXRlbSxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgaWQ6IGl0ZW1cbiAgICB9KSk7XG5cbiAgICB0aGlzLmluYm94RmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoSW5ib3hUeXBlc0ZpbHRlcikubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5pbmJveC5maWx0ZXIuJHtpdGVtfWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gdGhpcy5pdGVtRmlsdGVyRmllbGRzKG5vZGUsIGl0ZW0pLFxuICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgaWQ6IGl0ZW1cbiAgICB9KSk7XG4gIH1cblxuXG4gIHVwZGF0ZUdyaWQoZGF0YTogSW5ib3hJdGVtW10pOiB2b2lkIHtcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoZGF0YSA/IGRhdGEubGVuZ3RoIDogLTEsIHVuZGVmaW5lZCwgJ2ljX25vLWZpbGUuc3ZnJyk7XG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIHRoaXMuZW9HcmlkLmlzUmVhZHkpIHtcbiAgICAgIHJldHVybiB0aGlzLmVvR3JpZC51cGRhdGVSb3dEYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRGaWx0ZXJzKCk7XG4gICAgbGV0IGNvbERlZnM6IENvbERlZltdID0gW3tcbiAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgZmllbGQ6ICdfX2N1c3RvbScsXG4gICAgICBjZWxsUmVuZGVyZXI6IHRoaXMuY2VsbFJlbmRlcmVyLFxuICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgLy8gY2VsbFJlbmRlcmVyRnJhbWV3b3JrOiBJbmJveFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfV07XG5cbiAgICB0aGlzLnNvcnRGaWVsZHMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiAncmVjZWl2ZWQnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LmRhdGUnKSwgc29ydDogbnVsbCxcbiAgICAgICAgdmFsdWVHZXR0ZXI6IChwKSA9PiAocC5kYXRhW3AuY29sRGVmLmZpZWxkXSB8fCAnJykubWF0Y2goL1xcK1xcZFxcZDpcXGRcXGQvKSA/IG5ldyBEYXRlKHAuZGF0YVtwLmNvbERlZi5maWVsZF0pLnRvSVNPU3RyaW5nKCkgOiBwLmRhdGFbcC5jb2xEZWYuZmllbGRdXG4gICAgICB9LFxuICAgICAge2ZpZWxkOiAndGl0bGUnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LnRpdGxlJyksIHNvcnQ6IG51bGx9LFxuICAgICAge2ZpZWxkOiAnZGVzY3JpcHRpb24nLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LmRlc2NyaXB0aW9uJyksIHNvcnQ6IG51bGx9XG4gICAgXTtcblxuICAgIGxldCBzb3J0Q29sRGVmcyA9IEN1c3RvbVNvcnRDb21wb25lbnQuc29ydENvbERlZnModGhpcy5zb3J0RmllbGRzKTtcblxuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb250ZXh0OiB7Y291bnQ6IGRhdGEubGVuZ3RofSxcbiAgICAgIHJvd0RhdGE6IGRhdGEsXG4gICAgICBjb2x1bW5EZWZzOiBjb2xEZWZzLmNvbmNhdChzb3J0Q29sRGVmcyksXG4gICAgICByb3dCdWZmZXI6IDIwLFxuICAgICAgcm93SGVpZ2h0OiA4MCxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ3NpbmdsZSdcbiAgICB9O1xuICB9XG5cbiAgb25GaWx0ZXJPdmVybGF5VG9nZ2xlKG9wZW46IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVvR3JpZC5hcGk/LnNldEdyaWRPcHRpb24oJ3N1cHByZXNzQ2VsbEZvY3VzJywgb3Blbik7XG4gICAgaWYgKCFvcGVuKSB7XG4gICAgICB0aGlzLmVvR3JpZC5zZWxlY3RSb3coMCk7XG4gICAgfVxuICB9XG5cbiAgY2VsbFJlbmRlcmVyKHBhcmFtcykge1xuICAgIGxldCBsYWJlbCA9ICcnO1xuICAgIGlmIChPYmplY3Qua2V5cyhJbmJveFR5cGVzKS5pbmNsdWRlcyhwYXJhbXMuZGF0YS50eXBlKSkge1xuICAgICAgbGFiZWwgPSBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudChgZW8uaW5ib3guJHtwYXJhbXMuZGF0YS50eXBlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IGBhc3NldHMvX2RlZmF1bHQvc3ZnL2ljXyR7SW5ib3hUeXBlc1twYXJhbXMuZGF0YS50eXBlXX0uc3ZnYDtcblxuICAgIGxldCBpY29uID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdpY29uJywgcGFyYW1zLCB7dmFsdWU6IHt1cmwsIGxhYmVsfX0pO1xuICAgIGxldCBzaG9ydERhdGUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7dmFsdWU6IHBhcmFtcy5kYXRhLnJlY2VpdmVkLCBwYXR0ZXJuOiAnZW9TaG9ydERhdGUnfSk7XG4gICAgbGV0IHNob3J0VGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHt2YWx1ZTogcGFyYW1zLmRhdGEucmVjZWl2ZWQsIHBhdHRlcm46ICdlb1Nob3J0VGltZSd9KTtcbiAgICBsZXQgZHVldGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHt2YWx1ZTogcGFyYW1zLmRhdGEuZHVldGltZX0pO1xuICAgIGNvbnN0IHRpdGxlQ2xhc3MgPSBwYXJhbXMuZGF0YS5hY2NlcHRlZCA/ICd0aXRsZScgOiAndGl0bGUtYm9sZCc7XG5cbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0ke3BhcmFtcy5kYXRhLmZvbGRlciA/ICcgZm9sZGVyJyA6ICcnfVwiIHVuc2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgJHtpY29ufVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250ZW50Jz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPScke3RpdGxlQ2xhc3N9Jz4ke3BhcmFtcy5kYXRhLnRpdGxlIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2Rlc2NyaXB0aW9uJz4ke3BhcmFtcy5kYXRhLmRlc2NyaXB0aW9uIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J25vdGVzJHtwYXJhbXMuZGF0YS5pc092ZXJkdWUoKSA/ICcgcGFzdER1ZScgOiAnJ30nPlxuICAgICAgICAgICAgICAgICAgJHtwYXJhbXMuZGF0YS5kdWV0aW1lID8gJzxzcGFuIGNsYXNzPVwicGVyaW9kXCI+JyArIGR1ZXRpbWUgKyAnPC9zcGFuPicgOiAnJ31cbiAgICAgICAgICAgICAgICAgICR7cGFyYW1zLmRhdGEuaXNkZXB1dHkgPyAnPHNwYW4+JyArIHBhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5pdGVtLm5vdGUuYWJzZW5jZScpICsgJzwvc3Bhbj4nIDogJyd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+JHtzaG9ydERhdGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj4ke3Nob3J0VGltZX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGA7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlZnJlc2hHcmlkKCk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2VcbiAgICAgIC5pbmJveEl0ZW1zR3JpZERhdGEkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IEluYm94SXRlbVtdKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSBkYXRhO1xuICAgICAgICB0aGlzLnVwZGF0ZUdyaWQodGhpcy5ncmlkRGF0YSk7XG4gICAgICAgIHRoaXMuZW9HcmlkPy5hcGkucmVkcmF3Um93cygpO1xuICAgICAgICBjb25zdCBsYXN0SW5ib3hJdGVtSUQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5TGFzdEl0ZW1JRCk7XG4gICAgICAgIGlmIChsYXN0SW5ib3hJdGVtSUQgJiYgdGhpcy5ncmlkRGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gbGFzdEluYm94SXRlbUlEKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZW9HcmlkLnNlbGVjdFJvdyhsYXN0SW5ib3hJdGVtSUQpLCA1MDApO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5JTkJPWF9JVEVNX0xPQ0tFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RJbmJveEl0ZW1JRCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXlMYXN0SXRlbUlEKTtcbiAgICAgICAgdGhpcy5ncmlkRGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gbGFzdEluYm94SXRlbUlEKS5hY2NlcHRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaS5yZWRyYXdSb3dzKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5JTkJPWF9JVEVNX1VOTE9DS0VEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgbGFzdEluYm94SXRlbUlEID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleUxhc3RJdGVtSUQpO1xuICAgICAgICB0aGlzLmdyaWREYXRhLmZpbmQoaSA9PiBpLmlkID09PSBsYXN0SW5ib3hJdGVtSUQpLmFjY2VwdGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZW9HcmlkLmFwaS5yZWRyYXdSb3dzKCk7XG4gICAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFN1YnNjcmliZXMgdG8gdGhlIG9uRmluaXNoJCBvYnNlcnZhYmxlIG9mIHRoZSBhY3Rpb25TZXJ2aWNlLlxuICAgICAqIFdoZW4gdGhlIG9ic2VydmFibGUgZW1pdHMgYSB2YWx1ZSwgdGhlIHJlZnJlc2hHcmlkIG1ldGhvZCBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLm9uRmluaXNoJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAvLyBDbGVhcnMgYW55IGFjdGlvbnMgdGhhdCBhcmUgc3BlY2lmaWMgdG8gdGhpcyBjb21wb25lbnQuXG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmNsZWFyQ29tcG9uZW50U3BlY2lmaWNBY3Rpb25zKCk7XG4gIH1cblxuXG4gIGhhc0NoYW5nZWQob1YpOiBib29sZWFuIHtcbiAgICByZXR1cm4gb1Y/Lm1vZGVsRkNOICE9PSBudWxsICYmIG9WLm1vZGVsRkNOPy5tb2RlbEZDTiAhPT0gbnVsbDtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldHMgYW5kIGRpc3BsYXlzIGNvbXBvbmVudC1zcGVjaWZpYyBhY3Rpb25zLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuIGFycmF5IG9mIGFjdGlvbnMsIHNldHMgdGhlbSBhcyBjb21wb25lbnQtc3BlY2lmaWMgYWN0aW9uc1xuICAgKiB1c2luZyB0aGUgYWN0aW9uU2VydmljZSwgYW5kIHRoZW4gZGlzcGxheXMgdGhlc2UgYWN0aW9ucyBvbiB0aGUgcGFnZS5cbiAgICovXG4gIHNob3dBY3Rpb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGFjdGlvbjogbmV3IFJldHVyblRhc2tBY3Rpb25Db21wb25lbnQodGhpcy50cmFuc2xhdGUpLFxuICAgICAgfVxuICAgIF07XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnNldENvbXBvbmVudFNwZWNpZmljQWN0aW9ucyhhY3Rpb25zKTtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2Uuc2hvd0FjdGlvbnMoW10sICdDT01QT05FTlRfU1BFQ0lGSUNfQUNUSU9OUycpO1xuICB9XG5cbn1cbiIsIjx5dmMtc3BsaXQtdmlldyBbbGF5b3V0U2V0dGluZ3NJRF09XCInaW5ib3guc3RhdGUnXCIgW2VvU2hvcnRjdXRzXT1cInNob3J0Y3V0c1wiPlxuICA8IS0tIGxpc3QgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMzBcIj5cbiAgICA8ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie291dDogaW5ib3hTZWxlY3Rpb25JZH1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXJcIj5cblxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImVvLWhlYWRlci1pY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5ib3guc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci10aXRsZVwiIHRyYW5zbGF0ZT5lby5pbmJveC5saXN0LnRpdGxlPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiByZWZyZXNoLWJ1dHRvblwiIFtuZ0NsYXNzXT1cIntpbmJveENoYW5nZWQ6IGluYm94Q2hhbmdlZH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2hHcmlkKClcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgY2xhc3M9XCJvdmVybGF5LWZpbHRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZV09XCJoYXNDaGFuZ2VkKGZpbHRlckZvcm0/LnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG9uVG9nZ2xlKT1cIm9uRmlsdGVyT3ZlcmxheVRvZ2dsZSgkZXZlbnQpXCI+XG5cbiAgICAgICAgICAgIDxlby1jdXN0b20tZmlsdGVyICNjRmlsdGVyIChjaGFuZ2UpPVwiY0ZpbHRlci51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWRTdWJqZWN0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyRm9ybV09XCJmaWx0ZXJGb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZSB8fCBoYXNDaGFuZ2VkKGZpbHRlckZvcm0/LnZhbHVlKVwiPlxuXG4gICAgICAgICAgICAgIDxlby10ZXh0LWZpbHRlciBbdGl0bGVdPVwiJ2VvLmluYm94LmZpbHRlci50aXRsZScgfCB0cmFuc2xhdGVcIiBbZmlsdGVyUGFyYW1zXT1cImRlZmF1bHRGaWx0ZXJQYXJhbXNcIlxuICAgICAgICAgICAgICAgIFtpZF09XCInaW5ib3gudGV4dCdcIiBbbWF0Y2hGaWVsZHNdPVwiWyd0aXRsZScsJ2Rlc2NyaXB0aW9uJywnaWQnXVwiIFtlbmFibGVTYXZlXT1cInRydWVcIj48L2VvLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICA8ZW8tc2V0LWZpbHRlciBjbGFzcz1cInR5cGUtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInT1InXCIgW2lkXT1cIidpbmJveC50eXBlJ1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cInR5cGVGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIGNsYXNzPVwiaW5ib3gtZmlsdGVyc1wiIFtvcGVyYXRvcl09XCInQU5EJ1wiIFtpZF09XCInaW5ib3guc2V0J1wiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiIFtvcHRpb25zXT1cImluYm94RmlsdGVyRmllbGRzXCI+PC9lby1zZXQtZmlsdGVyPlxuXG4gICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybVwiPlxuICAgICAgICAgICAgICAgIEBpZiAocHJvY2Vzc01vZGVsc0xpc3RPYmplY3QuZW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIDxlby1mb3JtLWlucHV0IFtsYWJlbF09XCIoJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLmxhYmVscy5tb2RlbCcgfCB0cmFuc2xhdGUpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxlby1keW5hbWljLWxpc3QgZm9ybUNvbnRyb2xOYW1lPVwibW9kZWxGQ05cIiBbcGlja2VyVGl0bGVdPVwiJ2VvLnN0YXRlLnByb2Nlc3MuZmlsdGVyLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFtsaXN0T2JqZWN0XT1cInByb2Nlc3NNb2RlbHNMaXN0T2JqZWN0XCI+PC9lby1keW5hbWljLWxpc3Q+XG4gICAgICAgICAgICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Zvcm0+XG5cbiAgICAgICAgICAgIDwvZW8tY3VzdG9tLWZpbHRlcj5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb1NvcnQgY2xhc3M9XCJvdmVybGF5LXNvcnRcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zb3J0LnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0ICNjU29ydCBbaWRdPVwiJ2luYm94LnNvcnQnXCIgKGNoYW5nZSk9XCJjU29ydC51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWQsICRldmVudClcIlxuICAgICAgICAgICAgICAoYWN0aXZlKT1cIm9Tb3J0Lm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCIgW3NvcnRGaWVsZHNdPVwic29ydEZpZWxkc1wiPjwvZW8tY3VzdG9tLXNvcnQ+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gYWN0aW9ucy1idXR0b25cIiAoY2xpY2spPVwic2hvd0FjdGlvbnMoKVwiIFtpY29uVGl0bGVdPVwiJ2VvLnNob3J0Y3V0cy5hY3Rpb24udGFzaycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbW9yZS5zdmcnXCI+PC9lby1pY29uPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuICAgICAgICA8ZW8tZ3JpZCAjZW9HcmlkICpuZ0lmPVwiZ3JpZE9wdGlvbnM/LnJvd0RhdGFcIiBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIiBbZnVsbFdpZHRoXT1cInRydWVcIiBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd0Zvb3Rlcl09XCJ0cnVlXCIgW3NlbGVjdEZpcnN0XT1cInNlbGVjdEZpcnN0XCIgW29wdGlvbnNdPVwie2ZpbHRlckFjdGl2ZTogb0ZpbHRlci5hY3RpdmV9XCJcbiAgICAgICAgICAoZW9HcmlkQ291bnRDaGFuZ2VkKT1cImVvTGlzdC5vbkNvdW50Q2hhbmdlZCgkZXZlbnQpO29uQ291bnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgICAgIDxlby10b3RhbC1jb3VudCBbZ3JpZENvdW50XT1cImVvTGlzdC5ncmlkQ291bnRcIiBbb3V0c2lkZUdyaWRdPVwiZmFsc2VcIiBjbGFzcz1cImZsZXgtcm93XCI+PC9lby10b3RhbC1jb3VudD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAgPGVvLWVycm9yLW1lc3NhZ2VcbiAgICAgICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19pbmJveC5zdmcnLCB0ZXh0OiBvRmlsdGVyLmFjdGl2ZSA/ICdlby5uby5maWx0ZXIucmVzdWx0JyA6ICdlby5pbmJveC5saXN0LmVtcHR5J31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8ZW8tcmVzZXQtZmlsdGVyIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZSB8fCBoYXNDaGFuZ2VkKGZpbHRlckZvcm0/LnZhbHVlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9lby1ncmlkPlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1saXN0LWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPCEtLSBpbmJveCBkZXRhaWxzIC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWluYm94LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cIntpbjogaW5ib3hTZWxlY3Rpb25JZCwgb3V0OiBpbmJveERtc09iamVjdFNlbGVjdGlvbklkfVwiXG4gICAgICBbZW1wdHlTdGF0ZV09XCJlbXB0eVN0YXRlXCIgW3BsdWdpbnNdPVwiJ2luYm94LWRldGFpbHMtdGFiLmluYm94JyB8IHBsdWdpbnNcIj5cbiAgICA8L2VvLWluYm94LWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDwhLS0gb2JqZWN0IGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNDBcIj5cbiAgICA8ZW8tb2JqZWN0LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cIntpbjogaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZH1cIiBbY2FjaGVMYXlvdXRdPVwiJ2luYm94LnN0YXRlLm9iamVjdC1kZXRhaWxzJ1wiXG4gICAgW3BsdWdpbnNdPVwiJ29iamVjdC1kZXRhaWxzLXRhYi5pbmJveCcgfCBwbHVnaW5zXCI+XG4gICAgPC9lby1vYmplY3QtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwveXZjLXNwbGl0LXZpZXc+XG4iXX0=
|
|
@@ -143,7 +143,7 @@ let PrepareStateComponent = class PrepareStateComponent {
|
|
|
143
143
|
this.selection.clear();
|
|
144
144
|
}
|
|
145
145
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PrepareStateComponent, deps: [{ token: i1.SelectionService }, { token: i2.TranslateService }, { token: i2.BackendService }, { token: i3.PageTitleService }, { token: i2.PrepareService }, { token: i4.EmptyStateService }, { token: i5.PendingChangesService }, { token: i2.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: PrepareStateComponent, selector: "eo-prepare-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-list-container:not(.templates) eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-header,:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-body{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-focus,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover:before{background-color:var(--color-primary-3)!important}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover.ag-row-selected:before{background:var(--color-primary-4)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i8.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i9.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i10.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i11.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i12.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i13.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "directive", type: i14.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i15.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i16.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: i17.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i18.PrepareDetailsComponent, selector: "eo-prepare-details", inputs: ["preparedItem", "emptyState", "applySelection"], outputs: ["onItemChanged", "onCommit", "onItemRemove"] }, { kind: "component", type: i19.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i19.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
|
|
146
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: PrepareStateComponent, selector: "eo-prepare-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-list-container:not(.templates) eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-header,:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-body{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-focus,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover:before{background-color:var(--color-primary-3)!important}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover.ag-row-selected:before{background:var(--color-primary-4)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i8.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i9.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i10.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive", "filterForm"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i11.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i12.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i13.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "directive", type: i14.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i15.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i16.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"], outputs: ["onToggle"] }, { kind: "component", type: i17.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i18.PrepareDetailsComponent, selector: "eo-prepare-details", inputs: ["preparedItem", "emptyState", "applySelection"], outputs: ["onItemChanged", "onCommit", "onItemRemove"] }, { kind: "component", type: i19.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i19.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
|
|
147
147
|
};
|
|
148
148
|
PrepareStateComponent = __decorate([
|
|
149
149
|
UntilDestroy()
|
|
@@ -151,7 +151,7 @@ PrepareStateComponent = __decorate([
|
|
|
151
151
|
export { PrepareStateComponent };
|
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PrepareStateComponent, decorators: [{
|
|
153
153
|
type: Component,
|
|
154
|
-
args: [{ selector: 'eo-prepare-state', template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-list-container:not(.templates) eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-header,:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-body{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-focus,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover:before{background-color:var(--color-primary-3)!important}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover.ag-row-selected:before{background:var(--color-primary-4)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"] }]
|
|
154
|
+
args: [{ selector: 'eo-prepare-state', template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-list-container:not(.templates) eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-header,:host ::ng-deep eo-list-container:not(.templates) eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-body{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-focus,:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover:before{background-color:var(--color-primary-3)!important}:host ::ng-deep eo-list-container:not(.templates) eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover.ag-row-selected:before{background:var(--color-primary-4)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"] }]
|
|
155
155
|
}], ctorParameters: () => [{ type: i1.SelectionService }, { type: i2.TranslateService }, { type: i2.BackendService }, { type: i3.PageTitleService }, { type: i2.PrepareService }, { type: i4.EmptyStateService }, { type: i5.PendingChangesService }, { type: i2.SystemService }], propDecorators: { eoGrid: [{
|
|
156
156
|
type: ViewChild,
|
|
157
157
|
args: ['eoGrid']
|