@eo-sdk/client 11.1.0-rc.1 → 11.2.0-rc.1
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/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +6 -2
- package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
- package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts.map +1 -1
- package/app/eo-framework/tree/tree.component.d.ts +1 -0
- package/app/eo-framework/tree/tree.component.d.ts.map +1 -1
- package/assets/_default/i18n/en.json +1 -1
- package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +58 -11
- package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +7 -2
- package/esm2022/app/eo-client/settings/settings.component.mjs +2 -2
- package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +2 -2
- package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +1 -4
- package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
- package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +2 -2
- package/esm2022/app/eo-framework/tree/tree.component.mjs +22 -11
- package/fesm2022/eo-sdk-client.mjs +91 -31
- package/fesm2022/eo-sdk-client.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -272,7 +272,6 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
|
|
|
272
272
|
}
|
|
273
273
|
};
|
|
274
274
|
}
|
|
275
|
-
;
|
|
276
275
|
this.searchService.executeQuery({
|
|
277
276
|
aggs: aggsQquery,
|
|
278
277
|
...this._query.getQueryJson()
|
|
@@ -288,6 +287,12 @@ let ChartsWidgetComponent = class ChartsWidgetComponent {
|
|
|
288
287
|
value: e.doc_count,
|
|
289
288
|
};
|
|
290
289
|
}
|
|
290
|
+
else if (type === 'NUMBER') {
|
|
291
|
+
return {
|
|
292
|
+
group: e.key.replace("_", "-"),
|
|
293
|
+
value: e.doc_count,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
291
296
|
else {
|
|
292
297
|
return {
|
|
293
298
|
value: e.doc_count,
|
|
@@ -449,4 +454,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
449
454
|
}], widgetConfig: [{
|
|
450
455
|
type: Input
|
|
451
456
|
}] } });
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWlHLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUluSSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUXpCLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBcUZoQyxJQUFhLFlBQVksQ0FBQyxDQUFzQjtRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFT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QUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixNQUFNLGFBQWEsR0FBcUIsRUFBQyxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDbkYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBN2NVLHFCQUFxQjtrR0FBckIscUJBQXFCLHdIQ2ZsQyxzcEVBa0RBOztBRG5DYSxxQkFBcUI7SUFOakMsWUFBWSxFQUFFO0dBTUYscUJBQXFCLENBOGNqQzs7MkZBOWNZLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7b09BdUZuQixRQUFRO3NCQUFoQixLQUFLO2dCQUVPLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZWFyY2hRdWVyeSwgU2VhcmNoU2VydmljZSwgU3RvcmVkUXVlcmllc1NlcnZpY2UsIFN0b3JlZFF1ZXJ5LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7SVdpZGdldENvbXBvbmVudH0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQge0ljaGFydHN9IGZyb20gJy4vaWNoYXJ0cyc7XG5pbXBvcnQge0FwcFNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFTVBUWSwgdGFwfSBmcm9tICdyeGpzJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1jaGFydHMtd2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0cy13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRzV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCB7XG4gIGhpc3RvZ3JhbTogYW55O1xuXG4gIHNoYXJlZE9wdGlvbnMgPSB7XG4gICAgdGl0bGU6ICcnLFxuICAgIGNvbG9yOiB7XG4gICAgICB0ZXh0OiAnIzkyNTY5OScsXG4gICAgICBsYWJlbDogJyM5MjU2OTknXG4gICAgfSxcbiAgICByZXNpemFibGU6IHRydWUsXG4gICAgZG9udXQ6IHtcbiAgICAgICdhbGlnbm1lbnQnOiAnY2VudGVyJ1xuICAgIH0sXG5cbiAgICB0b29sYmFyOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIGhlaWdodDogJzQwMHB4JyxcbiAgICBjdXJ2ZTogJ2N1cnZlTW9ub3RvbmVYJyxcbiAgICBsZWdlbmQ6IHtcbiAgICAgICdhbGlnbm1lbnQnOiAnY2VudGVyJ1xuICAgIH0sXG4gICAgYXhlczoge1xuICAgICAgbGVmdDoge1xuICAgICAgICBtYXBzVG86ICd2YWx1ZScsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICAgIGJvdHRvbToge1xuICAgICAgICBtYXBzVG86ICdncm91cCcsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xhYmVscycsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGRlZmF1bHRMaW5lU3RyYWlnaHRDaGFydE9wdGlvbiA9IHtcbiAgICAuLi50aGlzLnNoYXJlZE9wdGlvbnMsXG4gICAgY3VydmU6IHVuZGVmaW5lZCxcbiAgICBsZWdlbmQ6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgYXhlczoge1xuICAgICAgYm90dG9tOiB7XG4gICAgICAgIG1hcHNUbzogJ2RhdGUnLFxuICAgICAgICBzY2FsZVR5cGU6ICd0aW1lJyxcbiAgICAgICAgdGl0bGU6ICcnXG4gICAgICB9LFxuICAgICAgbGVmdDoge1xuICAgICAgICBtYXBzVG86ICd2YWx1ZScsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xpbmVhcicsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICB9XG4gIH07XG4gIGxpbmVTdHJhaWdodENoYXJ0T3B0aW9uO1xuXG4gIGRlZmF1bHRMaW5lQ3VydmVDaGFydE9wdGlvbiA9IHtcbiAgICAuLi50aGlzLnNoYXJlZE9wdGlvbnMsXG4gICAgbGVnZW5kOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIGF4ZXM6IHtcbiAgICAgIGJvdHRvbToge1xuICAgICAgICBtYXBzVG86ICdkYXRlJyxcbiAgICAgICAgc2NhbGVUeXBlOiAndGltZScsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICAgIGxlZnQ6IHtcbiAgICAgICAgbWFwc1RvOiAndmFsdWUnLFxuICAgICAgICBzY2FsZVR5cGU6ICdsaW5lYXInLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgbGluZUN1cnZlQ2hhcnRPcHRpb247XG5cbiAgY2hhcnREYXRhOiB7Z3JvdXA6IHN0cmluZzsgdmFsdWU6IGFueTsgZGF0ZTogc3RyaW5nfVtdID0gW107XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcmVmcmVzaGluZ1JlcXVlc3Q6IGJvb2xlYW47XG4gIHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJY2hhcnRzIHwgdW5kZWZpbmVkO1xuICByYW5nZVZhbHVlcyA9IFtdO1xuXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHdpZGdldENvbmZpZyhjOiBJY2hhcnRzIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0gYztcbiAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSAmJiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24pIHtcbiAgICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpO1xuICAgICAgICB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5uYW1lO1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uKSB7XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5pbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlcyA9IHRoaXMuZ2VuZXJhdGVSYW5nZSh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaW50ZXJ2YWwsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdGFydGluZ3BvaW50LCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDaGFydERhdGEodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uLCB0aGlzLl93aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSxcbiAgICAgICAgICAgIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlLFxuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlcywgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNvcnRSZXZlcnQsXG4gICAgICAgICAgICB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYXR0cmlidXRNZXRyaWMsXG4gICAgICAgICAgICB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWV0cmljLCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWluRG9jQ291bnRcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0TGVnZW5kRGlhZ3JhbW0oKTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCB3aWRnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldENvbmZpZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXRTdG9yZWRRdWVyeShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcnkoaWQpLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgIHRhcChzdG9yZWRRdWVyeSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBzdG9yZWRRdWVyeTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVSYW5nZShpbnRlcnZhbCwgc3RhcnQsIHNpemUpIHtcbiAgICBjb25zdCByYW5nZVZhbHVlcyA9IFtdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2l6ZTsgaisrKSB7XG4gICAgICBjb25zdCByYW5nZUl0ZW0gPSB7XG4gICAgICAgIG8xOiBwYXJzZUZsb2F0KHN0YXJ0ICsgaiAqIGludGVydmFsKSxcbiAgICAgICAgbzI6IHBhcnNlRmxvYXQoc3RhcnQgKyAoaiArIDEpICogaW50ZXJ2YWwpLFxuICAgICAgfTtcbiAgICAgIHJhbmdlVmFsdWVzLnB1c2gocmFuZ2VJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhbmdlVmFsdWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNoYXJ0RGF0YShmaWVsZCwgdHlwZSwgaGlzdG9ncmFtVHlwZSwgcmFuZ2VWYWx1ZXMsIHNvcnQsIGF0dHJpYnV0TWV0cmljLCBtZXRyaWMsIG1pbkRvY0NvdW50KSB7XG4gICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IHRydWU7XG4gICAgY29uc3QgcXVlcnlOYW1lID0gdGhpcy5fcXVlcnkubmFtZTtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkubmFtZTtcbiAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5KTtcbiAgICB0aGlzLmxpbmVDdXJ2ZUNoYXJ0T3B0aW9uID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRlZmF1bHRMaW5lQ3VydmVDaGFydE9wdGlvbikpO1xuICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGVmYXVsdExpbmVTdHJhaWdodENoYXJ0T3B0aW9uKSk7XG4gICAgaWYgKHR5cGUgPT09ICdEQVRFVElNRScgJiYgaGlzdG9ncmFtVHlwZSkge1xuICAgICAgdGhpcy5jaGFydFdpdGhIaXN0b2dyYW0ocXVlcnlOYW1lLCBmaWVsZCwgaGlzdG9ncmFtVHlwZSk7XG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dE1ldHJpYyAmJiBtZXRyaWMpIHtcbiAgICAgIHRoaXMuYmFyQ2hhcnRNZXRyaWMocXVlcnlOYW1lLCBmaWVsZCwgc29ydCwgbWluRG9jQ291bnQsIGF0dHJpYnV0TWV0cmljLCBtZXRyaWMpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ05VTUJFUicgJiYgKHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVDdXJ2ZScgfHwgdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZVN0cmFpZ2h0JykpIHtcbiAgICAgIHRoaXMubGluZUNoYXJ0TnVtYmVyKHF1ZXJ5TmFtZSwgZmllbGQsIHR5cGUsIHNvcnQsIG1pbkRvY0NvdW50LCByYW5nZVZhbHVlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hhcnRXaXRoTm9NZXRyaWMocXVlcnlOYW1lLCBmaWVsZCwgdHlwZSwgc29ydCwgbWluRG9jQ291bnQsIHJhbmdlVmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoYXJ0V2l0aEhpc3RvZ3JhbShxdWVyeU5hbWUsIGZpZWxkLCBoaXN0b2dyYW1UeXBlKSB7XG4gICAgY29uc3QgaGlzdG9ncmFtQ29uZmlnID0ge1xuICAgICAgJ3llYXJseSc6IHtjYWxlbmRhcl9pbnRlcnZhbDogJ3llYXInLCBmb3JtYXQ6ICd5eXl5J30sXG4gICAgICAnd2Vla2x5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnd2VlaycsIGZvcm1hdDogJ3l5eXktd3cnfSxcbiAgICAgICdtb250aGx5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnbW9udGgnLCBmb3JtYXQ6ICd5eXl5LU1NJ30sXG4gICAgICAnZGFpbHknOiB7Y2FsZW5kYXJfaW50ZXJ2YWw6ICdkYXknLCBmb3JtYXQ6ICd5eXl5LU1NLWRkJ31cbiAgICB9O1xuICAgIGlmIChoaXN0b2dyYW1Db25maWcuaGFzT3duUHJvcGVydHkoaGlzdG9ncmFtVHlwZSkpIHtcbiAgICAgIHRoaXMuaGlzdG9ncmFtID0gaGlzdG9ncmFtQ29uZmlnW2hpc3RvZ3JhbVR5cGVdO1xuICAgICAgdGhpcy5oaXN0b2dyYW0uc2l6ZSA9IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgOiAxMDtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgW2ZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJyldOiB7XG4gICAgICAgICAgICBoaXN0b2dyYW06IHRoaXMuaGlzdG9ncmFtXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgfTtcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkocXVlcnksIHRydWUpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgYWdncmVnYXRpb25LZXkgPSBPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXTtcbiAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVDdXJ2ZScgfHwgdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZVN0cmFpZ2h0Jykge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1thZ2dyZWdhdGlvbktleV0uYnVja2V0cy5tYXAoKGUpID0+ICh7XG4gICAgICAgICAgICBncm91cDogJ2RhdGFzZXQxJyxcbiAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKGUua2V5KS50b0lTT1N0cmluZygpLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnNbYWdncmVnYXRpb25LZXldLmJ1Y2tldHMubWFwKChlKSA9PiAoe1xuICAgICAgICAgICAgZ3JvdXA6IGUua2V5X2FzX3N0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmFyQ2hhcnRNZXRyaWMocXVlcnlOYW1lLCBmaWVsZCwgc29ydCwgbWluRG9jQ291bnQsIGF0dHJpYnV0TWV0cmljLCBtZXRyaWMpIHtcbiAgICBjb25zdCBmaWVsZEtleSA9IGZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJykucmVwbGFjZSgnc3lzZG9jdW1lbnQuJywgJycpO1xuICAgIGNvbnN0IGF0dHJpYnV0TWV0cmljS2V5ID0gYXR0cmlidXRNZXRyaWMucmVwbGFjZSgnc3lzb2JqZWN0LicsICcnKS5yZXBsYWNlKCdzeXNkb2N1bWVudC4nLCAnJyk7XG4gICAgbGV0IGFnZ3NRcXVlcnk7XG4gICAgYWdnc1FxdWVyeSA9IHtcbiAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgIG9yZGVyOiBzb3J0ID8gJ2FzYycgOiAnZGVzYycsXG4gICAgICAgIHNvcnQ6IGF0dHJpYnV0TWV0cmljS2V5ICsgJy52YWx1ZScsXG4gICAgICAgIG1pbl9kb2NfY291bnQ6IG1pbkRvY0NvdW50LFxuICAgICAgICBzdWI6IHtcbiAgICAgICAgICBbYXR0cmlidXRNZXRyaWNLZXldOiB7XG4gICAgICAgICAgICBtZXRyaWNzOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWV0cmljXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5KFxuICAgICAge1xuICAgICAgICBhZ2dzOiBhZ2dzUXF1ZXJ5XG4gICAgICAgICwgLi4udGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKClcbiAgICAgIH0sIHRydWUpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgaWYgKHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1tPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXV0uYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleS5yZXBsYWNlKCdfJywgJy0nKSxcbiAgICAgICAgICAgICAgdmFsdWU6IGVbbWV0cmljICsgJyMnICsgYXR0cmlidXRNZXRyaWNLZXldLnZhbHVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaW5lQ2hhcnROdW1iZXIocXVlcnlOYW1lLCBmaWVsZCwgdHlwZSwgc29ydCwgbWluRG9jQ291bnQsIHJhbmdlVmFsdWVzKSB7XG5cbiAgICBjb25zdCBmaWVsZEtleSA9IGZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJykucmVwbGFjZSgnc3lzZG9jdW1lbnQuJywgJycpO1xuICAgIGxldCBhZ2dzUXF1ZXJ5O1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKHJhbmdlVmFsdWVzKS5sZW5ndGggIT09IDAgJiYgdHlwZSA9PT0gJ05VTUJFUicpIHtcbiAgICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24uYXhlcy5ib3R0b20gPSB7XG4gICAgICAgIG1hcHNUbzogJ2tleScsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xhYmVscycsXG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgIH07XG4gICAgICB0aGlzLmxpbmVDdXJ2ZUNoYXJ0T3B0aW9uLmF4ZXMuYm90dG9tID0ge1xuICAgICAgICBtYXBzVG86ICdrZXknLFxuICAgICAgICBzY2FsZVR5cGU6ICdsYWJlbHMnLFxuICAgICAgICB0aXRsZTogJycsXG4gICAgICB9O1xuXG4gICAgICBhZ2dzUXF1ZXJ5ID0ge1xuICAgICAgICBbZmllbGRLZXldOiB7XG4gICAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgICAgcmc6IHJhbmdlVmFsdWVzLFxuICAgICAgICAgIG9yZGVyOiBzb3J0ID8gJ2FzYycgOiAnZGVzYycsXG4gICAgICAgICAgc29ydDogJ19jb3VudCcsXG4gICAgICAgICAgbWluX2RvY19jb3VudDogbWluRG9jQ291bnRcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saW5lQ3VydmVDaGFydE9wdGlvbiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kZWZhdWx0TGluZUN1cnZlQ2hhcnRPcHRpb24pKTtcbiAgICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGVmYXVsdExpbmVTdHJhaWdodENoYXJ0T3B0aW9uKSk7XG5cbiAgICAgIGFnZ3NRcXVlcnkgPSB7XG4gICAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgICBvcmRlcjogc29ydCA/ICdhc2MnIDogJ2Rlc2MnLFxuICAgICAgICAgIGhpc3RvZ3JhbToge2NhbGVuZGFyX2ludGVydmFsOiAnbW9udGgnLCBmb3JtYXQ6ICd5eXl5LU1NJ30sXG4gICAgICAgICAgc29ydDogJ19jb3VudCcsXG4gICAgICAgICAgbWluX2RvY19jb3VudDogbWluRG9jQ291bnQsXG4gICAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfTtcblxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkoXG4gICAgICB7XG4gICAgICAgIGFnZ3M6IGFnZ3NRcXVlcnlcbiAgICAgICAgLCAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgfSwgdHJ1ZSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3F1ZXJ5Lm5hbWUgPSBxdWVyeU5hbWU7XG4gICAgICAgIGlmIChyZXMuYWdncmVnYXRpb25zW09iamVjdC5rZXlzKHJlcy5hZ2dyZWdhdGlvbnMpWzBdXS5idWNrZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ0JPT0xFQU4nKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5ID09PSAwID8gJ1xcdTI2MTAnIDogJ1xcdTI2MTEnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICAgIGtleTogdHlwZW9mIGUua2V5ID09PSAnc3RyaW5nJyA/IGUua2V5LnJlcGxhY2UoJ18nLCAnLScpIDogZS5rZXksXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGFydFdpdGhOb01ldHJpYyhxdWVyeU5hbWUsIGZpZWxkLCB0eXBlLCBzb3J0LCBtaW5Eb2NDb3VudCwgcmFuZ2VWYWx1ZXMpIHtcbiAgICBjb25zdCBmaWVsZEtleSA9IGZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJykucmVwbGFjZSgnc3lzZG9jdW1lbnQuJywgJycpO1xuICAgIGxldCBhZ2dzUXF1ZXJ5O1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKHJhbmdlVmFsdWVzKS5sZW5ndGggIT09IDAgJiYgdHlwZSA9PT0gJ05VTUJFUicpIHtcbiAgICAgIGFnZ3NRcXVlcnkgPSB7XG4gICAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgICBzaXplOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSB8fCAxMCxcbiAgICAgICAgICByZzogcmFuZ2VWYWx1ZXMsXG4gICAgICAgICAgb3JkZXI6IHNvcnQgPyAnYXNjJyA6ICdkZXNjJyxcbiAgICAgICAgICBzb3J0OiAnX2NvdW50JyxcbiAgICAgICAgICBtaW5fZG9jX2NvdW50OiBtaW5Eb2NDb3VudFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBhZ2dzUXF1ZXJ5ID0ge1xuICAgICAgICBbZmllbGRLZXldOiB7XG4gICAgICAgICAgb3JkZXI6IHNvcnQgPyAnYXNjJyA6ICdkZXNjJyxcbiAgICAgICAgICBoaXN0b2dyYW06IHtjYWxlbmRhcl9pbnRlcnZhbDogJ21vbnRoJywgZm9ybWF0OiAneXl5eS1NTSd9LFxuICAgICAgICAgIHNvcnQ6ICdfY291bnQnLFxuICAgICAgICAgIG1pbl9kb2NfY291bnQ6IG1pbkRvY0NvdW50LFxuICAgICAgICAgIHNpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplIHx8IDEwLFxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5KFxuICAgICAge1xuICAgICAgICBhZ2dzOiBhZ2dzUXF1ZXJ5XG4gICAgICAgICwgLi4udGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKClcbiAgICAgIH0sIHRydWUpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9xdWVyeS5uYW1lID0gcXVlcnlOYW1lO1xuICAgICAgICBpZiAocmVzLmFnZ3JlZ2F0aW9uc1tPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXV0uYnVja2V0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zW09iamVjdC5rZXlzKHJlcy5hZ2dyZWdhdGlvbnMpWzBdXS5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdCT09MRUFOJykge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiBlLmtleSA9PT0gMCA/ICdcXHUyNjEwJyA6ICdcXHUyNjExJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiB0eXBlb2YgZS5rZXkgPT09ICdzdHJpbmcnID8gZS5rZXkucmVwbGFjZSgnXycsICctJykgOiBlLmtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5tb2RpZmllZCcpIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnMubW9kaWZpZWQuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleV9hc19zdHJpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5jcmVhdGVkJykge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5jcmVhdGVkLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBncm91cDogZS5rZXlfYXNfc3RyaW5nLFxuICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNkb2N1bWVudC5taW1ldHlwZWdyb3VwJykge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5taW1ldHlwZWdyb3VwLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBncm91cDogZS5rZXksXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC50eXBlJykge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy50eXBlLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBncm91cDogdGhpcy5zeXN0ZW1TZXJ2aWNlLmdldE9iamVjdFR5cGUoZS5rZXkpLmxhYmVsLFxuICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gPT09ICdzeXNkb2N1bWVudC5maWxlc2l6ZScpIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnMuZmlsZXNpemUuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleS5yZXBsYWNlKCdfJywgJy0nKSxcbiAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgfVxuXG4gIHNldFF1ZXJ5VG9BcHBTZWFyY2goKSB7XG4gICAgdGhpcy5hcHBTZWFyY2hTZXJ2aWNlLnNldFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7b3V0bGV0czoge21vZGFsOiAnc2VhcmNoJ319XSk7XG4gIH1cblxuICBwcml2YXRlIHNldExlZ2VuZERpYWdyYW1tKCkge1xuICAgIHRoaXMuc2hhcmVkT3B0aW9ucy50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUudGl0bGU7XG4gICAgdGhpcy5zaGFyZWRPcHRpb25zLmF4ZXMuYm90dG9tLnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS54QXhlO1xuICAgIHRoaXMuc2hhcmVkT3B0aW9ucy5heGVzLmxlZnQudGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnlBeGU7XG5cbiAgICB0aGlzLmxpbmVDdXJ2ZUNoYXJ0T3B0aW9uLnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS50aXRsZTtcbiAgICB0aGlzLmxpbmVDdXJ2ZUNoYXJ0T3B0aW9uLmF4ZXMuYm90dG9tLnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS54QXhlO1xuICAgIHRoaXMubGluZUN1cnZlQ2hhcnRPcHRpb24uYXhlcy5sZWZ0LnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS55QXhlO1xuXG4gICAgdGhpcy5saW5lU3RyYWlnaHRDaGFydE9wdGlvbi50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUudGl0bGU7XG4gICAgdGhpcy5saW5lU3RyYWlnaHRDaGFydE9wdGlvbi5heGVzLmJvdHRvbS50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUueEF4ZTtcbiAgICB0aGlzLmxpbmVTdHJhaWdodENoYXJ0T3B0aW9uLmF4ZXMubGVmdC50aXRsZSA9IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlLnlBeGU7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeSh0aGlzLnN0b3JlZFF1ZXJ5KTtcbiAgICAgIHRoaXMuX3dpZGdldENvbmZpZy5mb3JtVmFsdWUuc3RvcmVkUXVlcnkgPSB0aGlzLnN0b3JlZFF1ZXJ5Lm5hbWU7XG4gICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uKSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVDaGFydERhdGEodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uLCB0aGlzLl93aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSxcbiAgICAgICAgICB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaGlzdG9ncmFtVHlwZSwgdGhpcy5yYW5nZVZhbHVlcywgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNvcnRSZXZlcnQsXG4gICAgICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmF0dHJpYnV0TWV0cmljLCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWV0cmljLFxuICAgICAgICAgIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5taW5Eb2NDb3VudCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBvbkVtaXRRdWVyeUNsaWNrKGV2ZW50KSB7XG4gICAgZGVsZXRlIHRoaXMuX3F1ZXJ5LmZpZWxkcztcbiAgICBjb25zdCB1cmlQYXJhbSA9IGVuY29kZVVSSUNvbXBvbmVudChVdGlscy5mb3JtRGF0YVN0cmluZ2lmeSh0aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKSkpO1xuICAgIGNvbnN0IHVyaVBhcmFtUXVlcnk6IE5hdmlnYXRpb25FeHRyYXMgPSB7cXVlcnlQYXJhbXM6IHsncXVlcnknOiB1cmlQYXJhbX19O1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh1cmlQYXJhbVF1ZXJ5LnF1ZXJ5UGFyYW1zKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcvZGFzaGJvYXJkJylbMF0gKyAnL3Jlc3VsdD8nICsgcXVlcnlQYXJhbXM7XG4gICAgd2luZG93Lm9wZW4odXJsLCBldmVudD8uY3RybEtleSB8fCB0aGlzLmVkaXRNb2RlID8gJ19ibGFuaycgOiAnX3NlbGYnKTtcbiAgfVxufVxuIiwiPGhlYWRlcj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiPlxuICAgIEBpZiAod2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnN0b3JlZFF1ZXJ5KSB7XG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57eyB3aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc3RvcmVkUXVlcnkgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29ucy10aXRsZVwiPlxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc2F2ZWRfc2VhcmNoLnN2ZydcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0UXVlcnlUb0FwcFNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAuc2F2ZWRTZWFyY2hJY29uJ3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX29wZW5fdGFiLnN2ZydcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25FbWl0UXVlcnlDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAub3BlbmlucmVzdWx0bGlzdCd8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIiAoY2xpY2spPVwicmVmcmVzaCgpXCJcbiAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLndpZGdldC5oaXRsaXN0LnRvb2x0aXAucmVmcmVzaCd8IHRyYW5zbGF0ZSlcIj48L2VvLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9oZWFkZXI+XG5cbkBpZiAocmVmcmVzaGluZ1JlcXVlc3QpIHtcbiAgPG1haW4gY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiPlxuICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgW3NpemVdPVwiJ2xhcmdlJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICA8L21haW4+XG59IEBlbHNlIGlmIChjaGFydERhdGEubGVuZ3RoID4gMCAmJiAhcmVmcmVzaGluZ1JlcXVlc3QpIHtcbiAgPG1haW4gY2xhc3M9XCJjaGFydFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpdGVtXCI+XG4gICAgICBAc3dpdGNoICh3aWRnZXRDb25maWchLmZvcm1WYWx1ZS5jaGFydFR5cGUpIHtcbiAgICAgICAgQGNhc2UgKCdiYXInKSB7XG4gICAgICAgICAgPGlibS1zaW1wbGUtYmFyLWNoYXJ0IFtkYXRhXT1cImNoYXJ0RGF0YVwiIFtvcHRpb25zXT1cInNoYXJlZE9wdGlvbnNcIj48L2libS1zaW1wbGUtYmFyLWNoYXJ0PlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgncGllJykge1xuICAgICAgICAgIDxpYm0tcGllLWNoYXJ0IFtkYXRhXT1cImNoYXJ0RGF0YVwiIFtvcHRpb25zXT1cInNoYXJlZE9wdGlvbnNcIj48L2libS1waWUtY2hhcnQ+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdkb251dCcpIHtcbiAgICAgICAgICA8aWJtLWRvbnV0LWNoYXJ0IFtkYXRhXT1cImNoYXJ0RGF0YVwiIFtvcHRpb25zXT1cInNoYXJlZE9wdGlvbnNcIj48L2libS1kb251dC1jaGFydD5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2xpbmVTdHJhaWdodCcpIHtcbiAgICAgICAgICA8aWJtLWxpbmUtY2hhcnQgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwibGluZVN0cmFpZ2h0Q2hhcnRPcHRpb25cIj48L2libS1saW5lLWNoYXJ0PlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnbGluZUN1cnZlJykge1xuICAgICAgICAgIDxpYm0tbGluZS1jaGFydCBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJsaW5lQ3VydmVDaGFydE9wdGlvblwiPjwvaWJtLWxpbmUtY2hhcnQ+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9tYWluPlxufSBAZWxzZSB7XG4gIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgIDxlby1lcnJvci1tZXNzYWdlXG4gICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX3NhdmVkX3NlYXJjaC5zdmcnLCB0ZXh0OiAnZW8ud29ya3NwYWNlLndpZGdldC5jb25maWd1cmF0aW9uLm5vdE9rJ31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gIDwvZGl2PlxufVxuIl19
|
|
457
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXdpZGdldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy13aWRnZXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvZGFzaGJvYXJkL3dpZGdldHMvY2hhcnRzLXdpZGdldC9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWlHLEtBQUssRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUluSSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRW5FLE9BQU8sRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUXpCLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBcUZoQyxJQUFhLFlBQVksQ0FBQyxDQUFzQjtRQUM5QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFT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Q3BCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzFCLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixNQUFNLGFBQWEsR0FBcUIsRUFBQyxXQUFXLEVBQUUsRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUUsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDbkYsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pFLENBQUM7OEdBbGRVLHFCQUFxQjtrR0FBckIscUJBQXFCLHdIQ2ZsQyxzcEVBa0RBOztBRG5DYSxxQkFBcUI7SUFOakMsWUFBWSxFQUFFO0dBTUYscUJBQXFCLENBbWRqQzs7MkZBbmRZLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7b09BdUZuQixRQUFRO3NCQUFoQixLQUFLO2dCQUVPLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTZWFyY2hRdWVyeSwgU2VhcmNoU2VydmljZSwgU3RvcmVkUXVlcmllc1NlcnZpY2UsIFN0b3JlZFF1ZXJ5LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7SVdpZGdldENvbXBvbmVudH0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQge0ljaGFydHN9IGZyb20gJy4vaWNoYXJ0cyc7XG5pbXBvcnQge0FwcFNlYXJjaFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFTVBUWSwgdGFwfSBmcm9tICdyeGpzJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1jaGFydHMtd2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0cy13aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydHMtd2lkZ2V0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRzV2lkZ2V0Q29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCB7XG4gIGhpc3RvZ3JhbTogYW55O1xuXG4gIHNoYXJlZE9wdGlvbnMgPSB7XG4gICAgdGl0bGU6ICcnLFxuICAgIGNvbG9yOiB7XG4gICAgICB0ZXh0OiAnIzkyNTY5OScsXG4gICAgICBsYWJlbDogJyM5MjU2OTknXG4gICAgfSxcbiAgICByZXNpemFibGU6IHRydWUsXG4gICAgZG9udXQ6IHtcbiAgICAgICdhbGlnbm1lbnQnOiAnY2VudGVyJ1xuICAgIH0sXG5cbiAgICB0b29sYmFyOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIGhlaWdodDogJzQwMHB4JyxcbiAgICBjdXJ2ZTogJ2N1cnZlTW9ub3RvbmVYJyxcbiAgICBsZWdlbmQ6IHtcbiAgICAgICdhbGlnbm1lbnQnOiAnY2VudGVyJ1xuICAgIH0sXG4gICAgYXhlczoge1xuICAgICAgbGVmdDoge1xuICAgICAgICBtYXBzVG86ICd2YWx1ZScsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICAgIGJvdHRvbToge1xuICAgICAgICBtYXBzVG86ICdncm91cCcsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xhYmVscycsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGRlZmF1bHRMaW5lU3RyYWlnaHRDaGFydE9wdGlvbiA9IHtcbiAgICAuLi50aGlzLnNoYXJlZE9wdGlvbnMsXG4gICAgY3VydmU6IHVuZGVmaW5lZCxcbiAgICBsZWdlbmQ6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgYXhlczoge1xuICAgICAgYm90dG9tOiB7XG4gICAgICAgIG1hcHNUbzogJ2RhdGUnLFxuICAgICAgICBzY2FsZVR5cGU6ICd0aW1lJyxcbiAgICAgICAgdGl0bGU6ICcnXG4gICAgICB9LFxuICAgICAgbGVmdDoge1xuICAgICAgICBtYXBzVG86ICd2YWx1ZScsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xpbmVhcicsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICB9XG4gIH07XG4gIGxpbmVTdHJhaWdodENoYXJ0T3B0aW9uO1xuXG4gIGRlZmF1bHRMaW5lQ3VydmVDaGFydE9wdGlvbiA9IHtcbiAgICAuLi50aGlzLnNoYXJlZE9wdGlvbnMsXG4gICAgbGVnZW5kOiB7XG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICB9LFxuICAgIGF4ZXM6IHtcbiAgICAgIGJvdHRvbToge1xuICAgICAgICBtYXBzVG86ICdkYXRlJyxcbiAgICAgICAgc2NhbGVUeXBlOiAndGltZScsXG4gICAgICAgIHRpdGxlOiAnJ1xuICAgICAgfSxcbiAgICAgIGxlZnQ6IHtcbiAgICAgICAgbWFwc1RvOiAndmFsdWUnLFxuICAgICAgICBzY2FsZVR5cGU6ICdsaW5lYXInLFxuICAgICAgICB0aXRsZTogJydcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcbiAgbGluZUN1cnZlQ2hhcnRPcHRpb247XG5cbiAgY2hhcnREYXRhOiB7Z3JvdXA6IHN0cmluZzsgdmFsdWU6IGFueTsgZGF0ZTogc3RyaW5nfVtdID0gW107XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgcmVmcmVzaGluZ1JlcXVlc3Q6IGJvb2xlYW47XG4gIHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJY2hhcnRzIHwgdW5kZWZpbmVkO1xuICByYW5nZVZhbHVlcyA9IFtdO1xuXG4gIEBJbnB1dCgpIGVkaXRNb2RlID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHdpZGdldENvbmZpZyhjOiBJY2hhcnRzIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0gYztcbiAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSAmJiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24pIHtcbiAgICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnLnN0b3JlZFF1ZXJ5KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpO1xuICAgICAgICB0aGlzLl93aWRnZXRDb25maWcuZm9ybVZhbHVlLnN0b3JlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyeS5uYW1lO1xuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uKSB7XG4gICAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5pbnRlcnZhbCkge1xuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlcyA9IHRoaXMuZ2VuZXJhdGVSYW5nZSh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaW50ZXJ2YWwsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdGFydGluZ3BvaW50LCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDaGFydERhdGEodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uLCB0aGlzLl93aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSxcbiAgICAgICAgICAgIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlLFxuICAgICAgICAgICAgdGhpcy5yYW5nZVZhbHVlcywgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNvcnRSZXZlcnQsXG4gICAgICAgICAgICB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYXR0cmlidXRNZXRyaWMsXG4gICAgICAgICAgICB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWV0cmljLCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWluRG9jQ291bnRcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMuc2V0TGVnZW5kRGlhZ3JhbW0oKTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCB3aWRnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldENvbmZpZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwU2VhcmNoU2VydmljZTogQXBwU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbVNlcnZpY2U6IFN5c3RlbVNlcnZpY2VcbiAgKSB7IH1cblxuICBnZXRTdG9yZWRRdWVyeShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcnkoaWQpLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgIHRhcChzdG9yZWRRdWVyeSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBzdG9yZWRRdWVyeTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVSYW5nZShpbnRlcnZhbCwgc3RhcnQsIHNpemUpIHtcbiAgICBjb25zdCByYW5nZVZhbHVlcyA9IFtdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2l6ZTsgaisrKSB7XG4gICAgICBjb25zdCByYW5nZUl0ZW0gPSB7XG4gICAgICAgIG8xOiBwYXJzZUZsb2F0KHN0YXJ0ICsgaiAqIGludGVydmFsKSxcbiAgICAgICAgbzI6IHBhcnNlRmxvYXQoc3RhcnQgKyAoaiArIDEpICogaW50ZXJ2YWwpLFxuICAgICAgfTtcbiAgICAgIHJhbmdlVmFsdWVzLnB1c2gocmFuZ2VJdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIHJhbmdlVmFsdWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNoYXJ0RGF0YShmaWVsZCwgdHlwZSwgaGlzdG9ncmFtVHlwZSwgcmFuZ2VWYWx1ZXMsIHNvcnQsIGF0dHJpYnV0TWV0cmljLCBtZXRyaWMsIG1pbkRvY0NvdW50KSB7XG4gICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IHRydWU7XG4gICAgY29uc3QgcXVlcnlOYW1lID0gdGhpcy5fcXVlcnkubmFtZTtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkubmFtZTtcbiAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuX3F1ZXJ5KTtcbiAgICB0aGlzLmxpbmVDdXJ2ZUNoYXJ0T3B0aW9uID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRlZmF1bHRMaW5lQ3VydmVDaGFydE9wdGlvbikpO1xuICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGVmYXVsdExpbmVTdHJhaWdodENoYXJ0T3B0aW9uKSk7XG4gICAgaWYgKHR5cGUgPT09ICdEQVRFVElNRScgJiYgaGlzdG9ncmFtVHlwZSkge1xuICAgICAgdGhpcy5jaGFydFdpdGhIaXN0b2dyYW0ocXVlcnlOYW1lLCBmaWVsZCwgaGlzdG9ncmFtVHlwZSk7XG4gICAgfSBlbHNlIGlmIChhdHRyaWJ1dE1ldHJpYyAmJiBtZXRyaWMpIHtcbiAgICAgIHRoaXMuYmFyQ2hhcnRNZXRyaWMocXVlcnlOYW1lLCBmaWVsZCwgc29ydCwgbWluRG9jQ291bnQsIGF0dHJpYnV0TWV0cmljLCBtZXRyaWMpO1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ05VTUJFUicgJiYgKHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVDdXJ2ZScgfHwgdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZVN0cmFpZ2h0JykpIHtcbiAgICAgIHRoaXMubGluZUNoYXJ0TnVtYmVyKHF1ZXJ5TmFtZSwgZmllbGQsIHR5cGUsIHNvcnQsIG1pbkRvY0NvdW50LCByYW5nZVZhbHVlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hhcnRXaXRoTm9NZXRyaWMocXVlcnlOYW1lLCBmaWVsZCwgdHlwZSwgc29ydCwgbWluRG9jQ291bnQsIHJhbmdlVmFsdWVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoYXJ0V2l0aEhpc3RvZ3JhbShxdWVyeU5hbWUsIGZpZWxkLCBoaXN0b2dyYW1UeXBlKSB7XG4gICAgY29uc3QgaGlzdG9ncmFtQ29uZmlnID0ge1xuICAgICAgJ3llYXJseSc6IHtjYWxlbmRhcl9pbnRlcnZhbDogJ3llYXInLCBmb3JtYXQ6ICd5eXl5J30sXG4gICAgICAnd2Vla2x5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnd2VlaycsIGZvcm1hdDogJ3l5eXktd3cnfSxcbiAgICAgICdtb250aGx5Jzoge2NhbGVuZGFyX2ludGVydmFsOiAnbW9udGgnLCBmb3JtYXQ6ICd5eXl5LU1NJ30sXG4gICAgICAnZGFpbHknOiB7Y2FsZW5kYXJfaW50ZXJ2YWw6ICdkYXknLCBmb3JtYXQ6ICd5eXl5LU1NLWRkJ31cbiAgICB9O1xuICAgIGlmIChoaXN0b2dyYW1Db25maWcuaGFzT3duUHJvcGVydHkoaGlzdG9ncmFtVHlwZSkpIHtcbiAgICAgIHRoaXMuaGlzdG9ncmFtID0gaGlzdG9ncmFtQ29uZmlnW2hpc3RvZ3JhbVR5cGVdO1xuICAgICAgdGhpcy5oaXN0b2dyYW0uc2l6ZSA9IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplID8gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgOiAxMDtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICBhZ2dzOiB7XG4gICAgICAgICAgW2ZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJyldOiB7XG4gICAgICAgICAgICBoaXN0b2dyYW06IHRoaXMuaGlzdG9ncmFtXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgfTtcbiAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkocXVlcnksIHRydWUpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgYWdncmVnYXRpb25LZXkgPSBPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXTtcbiAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgaWYgKHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVDdXJ2ZScgfHwgdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZVN0cmFpZ2h0Jykge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1thZ2dyZWdhdGlvbktleV0uYnVja2V0cy5tYXAoKGUpID0+ICh7XG4gICAgICAgICAgICBncm91cDogJ2RhdGFzZXQxJyxcbiAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKGUua2V5KS50b0lTT1N0cmluZygpLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnNbYWdncmVnYXRpb25LZXldLmJ1Y2tldHMubWFwKChlKSA9PiAoe1xuICAgICAgICAgICAgZ3JvdXA6IGUua2V5X2FzX3N0cmluZyxcbiAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gW107XG4gICAgICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWZyZXNoaW5nUmVxdWVzdCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmFyQ2hhcnRNZXRyaWMocXVlcnlOYW1lLCBmaWVsZCwgc29ydCwgbWluRG9jQ291bnQsIGF0dHJpYnV0TWV0cmljLCBtZXRyaWMpIHtcbiAgICBjb25zdCBmaWVsZEtleSA9IGZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJykucmVwbGFjZSgnc3lzZG9jdW1lbnQuJywgJycpO1xuICAgIGNvbnN0IGF0dHJpYnV0TWV0cmljS2V5ID0gYXR0cmlidXRNZXRyaWMucmVwbGFjZSgnc3lzb2JqZWN0LicsICcnKS5yZXBsYWNlKCdzeXNkb2N1bWVudC4nLCAnJyk7XG4gICAgbGV0IGFnZ3NRcXVlcnk7XG4gICAgYWdnc1FxdWVyeSA9IHtcbiAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgIG9yZGVyOiBzb3J0ID8gJ2FzYycgOiAnZGVzYycsXG4gICAgICAgIHNvcnQ6IGF0dHJpYnV0TWV0cmljS2V5ICsgJy52YWx1ZScsXG4gICAgICAgIG1pbl9kb2NfY291bnQ6IG1pbkRvY0NvdW50LFxuICAgICAgICBzdWI6IHtcbiAgICAgICAgICBbYXR0cmlidXRNZXRyaWNLZXldOiB7XG4gICAgICAgICAgICBtZXRyaWNzOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWV0cmljXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5KFxuICAgICAge1xuICAgICAgICBhZ2dzOiBhZ2dzUXF1ZXJ5XG4gICAgICAgICwgLi4udGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKClcbiAgICAgIH0sIHRydWUpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgaWYgKHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1tPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXV0uYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleS5yZXBsYWNlKCdfJywgJy0nKSxcbiAgICAgICAgICAgICAgdmFsdWU6IGVbbWV0cmljICsgJyMnICsgYXR0cmlidXRNZXRyaWNLZXldLnZhbHVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaW5lQ2hhcnROdW1iZXIocXVlcnlOYW1lLCBmaWVsZCwgdHlwZSwgc29ydCwgbWluRG9jQ291bnQsIHJhbmdlVmFsdWVzKSB7XG5cbiAgICBjb25zdCBmaWVsZEtleSA9IGZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJykucmVwbGFjZSgnc3lzZG9jdW1lbnQuJywgJycpO1xuICAgIGxldCBhZ2dzUXF1ZXJ5O1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKHJhbmdlVmFsdWVzKS5sZW5ndGggIT09IDAgJiYgdHlwZSA9PT0gJ05VTUJFUicpIHtcbiAgICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24uYXhlcy5ib3R0b20gPSB7XG4gICAgICAgIG1hcHNUbzogJ2tleScsXG4gICAgICAgIHNjYWxlVHlwZTogJ2xhYmVscycsXG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgIH07XG4gICAgICB0aGlzLmxpbmVDdXJ2ZUNoYXJ0T3B0aW9uLmF4ZXMuYm90dG9tID0ge1xuICAgICAgICBtYXBzVG86ICdrZXknLFxuICAgICAgICBzY2FsZVR5cGU6ICdsYWJlbHMnLFxuICAgICAgICB0aXRsZTogJycsXG4gICAgICB9O1xuXG4gICAgICBhZ2dzUXF1ZXJ5ID0ge1xuICAgICAgICBbZmllbGRLZXldOiB7XG4gICAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgICAgcmc6IHJhbmdlVmFsdWVzLFxuICAgICAgICAgIG9yZGVyOiBzb3J0ID8gJ2FzYycgOiAnZGVzYycsXG4gICAgICAgICAgc29ydDogJ19jb3VudCcsXG4gICAgICAgICAgbWluX2RvY19jb3VudDogbWluRG9jQ291bnRcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5saW5lQ3VydmVDaGFydE9wdGlvbiA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kZWZhdWx0TGluZUN1cnZlQ2hhcnRPcHRpb24pKTtcbiAgICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGVmYXVsdExpbmVTdHJhaWdodENoYXJ0T3B0aW9uKSk7XG5cbiAgICAgIGFnZ3NRcXVlcnkgPSB7XG4gICAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgICBvcmRlcjogc29ydCA/ICdhc2MnIDogJ2Rlc2MnLFxuICAgICAgICAgIGhpc3RvZ3JhbToge2NhbGVuZGFyX2ludGVydmFsOiAnbW9udGgnLCBmb3JtYXQ6ICd5eXl5LU1NJ30sXG4gICAgICAgICAgc29ydDogJ19jb3VudCcsXG4gICAgICAgICAgbWluX2RvY19jb3VudDogbWluRG9jQ291bnQsXG4gICAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmV4ZWN1dGVRdWVyeShcbiAgICAgIHtcbiAgICAgICAgYWdnczogYWdnc1FxdWVyeVxuICAgICAgICAsIC4uLnRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpXG4gICAgICB9LCB0cnVlKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fcXVlcnkubmFtZSA9IHF1ZXJ5TmFtZTtcbiAgICAgICAgaWYgKHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9uc1tPYmplY3Qua2V5cyhyZXMuYWdncmVnYXRpb25zKVswXV0uYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnQk9PTEVBTicpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBncm91cDogZS5rZXkgPT09IDAgPyAnXFx1MjYxMCcgOiAnXFx1MjYxMScsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnTlVNQkVSJykge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdyb3VwOiBlLmtleS5yZXBsYWNlKFwiX1wiLCBcIi1cIiksXG4gICAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICAgICAga2V5OiB0eXBlb2YgZS5rZXkgPT09ICdzdHJpbmcnID8gZS5rZXkucmVwbGFjZSgnXycsICctJykgOiBlLmtleSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNoYXJ0V2l0aE5vTWV0cmljKHF1ZXJ5TmFtZSwgZmllbGQsIHR5cGUsIHNvcnQsIG1pbkRvY0NvdW50LCByYW5nZVZhbHVlcykge1xuICAgIGNvbnN0IGZpZWxkS2V5ID0gZmllbGQucmVwbGFjZSgnc3lzb2JqZWN0LicsICcnKS5yZXBsYWNlKCdzeXNkb2N1bWVudC4nLCAnJyk7XG4gICAgbGV0IGFnZ3NRcXVlcnk7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMocmFuZ2VWYWx1ZXMpLmxlbmd0aCAhPT0gMCAmJiB0eXBlID09PSAnTlVNQkVSJykge1xuICAgICAgYWdnc1FxdWVyeSA9IHtcbiAgICAgICAgW2ZpZWxkS2V5XToge1xuICAgICAgICAgIHNpemU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zaXplIHx8IDEwLFxuICAgICAgICAgIHJnOiByYW5nZVZhbHVlcyxcbiAgICAgICAgICBvcmRlcjogc29ydCA/ICdhc2MnIDogJ2Rlc2MnLFxuICAgICAgICAgIHNvcnQ6ICdfY291bnQnLFxuICAgICAgICAgIG1pbl9kb2NfY291bnQ6IG1pbkRvY0NvdW50XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGFnZ3NRcXVlcnkgPSB7XG4gICAgICAgIFtmaWVsZEtleV06IHtcbiAgICAgICAgICBvcmRlcjogc29ydCA/ICdhc2MnIDogJ2Rlc2MnLFxuICAgICAgICAgIGhpc3RvZ3JhbToge2NhbGVuZGFyX2ludGVydmFsOiAnbW9udGgnLCBmb3JtYXQ6ICd5eXl5LU1NJ30sXG4gICAgICAgICAgc29ydDogJ19jb3VudCcsXG4gICAgICAgICAgbWluX2RvY19jb3VudDogbWluRG9jQ291bnQsXG4gICAgICAgICAgc2l6ZTogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LnNpemUgfHwgMTAsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkoXG4gICAgICB7XG4gICAgICAgIGFnZ3M6IGFnZ3NRcXVlcnlcbiAgICAgICAgLCAuLi50aGlzLl9xdWVyeS5nZXRRdWVyeUpzb24oKVxuICAgICAgfSwgdHJ1ZSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3F1ZXJ5Lm5hbWUgPSBxdWVyeU5hbWU7XG4gICAgICAgIGlmIChyZXMuYWdncmVnYXRpb25zW09iamVjdC5rZXlzKHJlcy5hZ2dyZWdhdGlvbnMpWzBdXS5idWNrZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IHJlcy5hZ2dyZWdhdGlvbnNbT2JqZWN0LmtleXMocmVzLmFnZ3JlZ2F0aW9ucylbMF1dLmJ1Y2tldHMubWFwKChlKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ0JPT0xFQU4nKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5ID09PSAwID8gJ1xcdTI2MTAnIDogJ1xcdTI2MTEnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZ3JvdXA6IHR5cGVvZiBlLmtleSA9PT0gJ3N0cmluZycgPyBlLmtleS5yZXBsYWNlKCdfJywgJy0nKSA6IGUua2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNoYXJ0RGF0YSA9IFtdO1xuICAgICAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uID09PSAnc3lzb2JqZWN0Lm1vZGlmaWVkJykge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5tb2RpZmllZC5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5X2FzX3N0cmluZyxcbiAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uID09PSAnc3lzb2JqZWN0LmNyZWF0ZWQnKSB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zLmNyZWF0ZWQuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleV9hc19zdHJpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c2RvY3VtZW50Lm1pbWV0eXBlZ3JvdXAnKSB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zLm1pbWV0eXBlZ3JvdXAuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGdyb3VwOiBlLmtleSxcbiAgICAgICAgICAgICAgdmFsdWU6IGUuZG9jX2NvdW50LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uID09PSAnc3lzb2JqZWN0LnR5cGUnKSB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSByZXMuYWdncmVnYXRpb25zLnR5cGUuYnVja2V0cy5tYXAoKGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGdyb3VwOiB0aGlzLnN5c3RlbVNlcnZpY2UuZ2V0T2JqZWN0VHlwZShlLmtleSkubGFiZWwsXG4gICAgICAgICAgICAgIHZhbHVlOiBlLmRvY19jb3VudCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hZ2dyZWdhdGlvbiA9PT0gJ3N5c2RvY3VtZW50LmZpbGVzaXplJykge1xuICAgICAgICAgIHRoaXMuY2hhcnREYXRhID0gcmVzLmFnZ3JlZ2F0aW9ucy5maWxlc2l6ZS5idWNrZXRzLm1hcCgoZSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZ3JvdXA6IGUua2V5LnJlcGxhY2UoJ18nLCAnLScpLFxuICAgICAgICAgICAgICB2YWx1ZTogZS5kb2NfY291bnQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2hpbmdSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICB9XG5cbiAgc2V0UXVlcnlUb0FwcFNlYXJjaCgpIHtcbiAgICB0aGlzLmFwcFNlYXJjaFNlcnZpY2Uuc2V0UXVlcnkodGhpcy5zdG9yZWRRdWVyeSk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3tvdXRsZXRzOiB7bW9kYWw6ICdzZWFyY2gnfX1dKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGVnZW5kRGlhZ3JhbW0oKSB7XG4gICAgdGhpcy5zaGFyZWRPcHRpb25zLnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS50aXRsZTtcbiAgICB0aGlzLnNoYXJlZE9wdGlvbnMuYXhlcy5ib3R0b20udGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnhBeGU7XG4gICAgdGhpcy5zaGFyZWRPcHRpb25zLmF4ZXMubGVmdC50aXRsZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUueUF4ZTtcblxuICAgIHRoaXMubGluZUN1cnZlQ2hhcnRPcHRpb24udGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnRpdGxlO1xuICAgIHRoaXMubGluZUN1cnZlQ2hhcnRPcHRpb24uYXhlcy5ib3R0b20udGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnhBeGU7XG4gICAgdGhpcy5saW5lQ3VydmVDaGFydE9wdGlvbi5heGVzLmxlZnQudGl0bGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLnlBeGU7XG5cbiAgICB0aGlzLmxpbmVTdHJhaWdodENoYXJ0T3B0aW9uLnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS50aXRsZTtcbiAgICB0aGlzLmxpbmVTdHJhaWdodENoYXJ0T3B0aW9uLmF4ZXMuYm90dG9tLnRpdGxlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS54QXhlO1xuICAgIHRoaXMubGluZVN0cmFpZ2h0Q2hhcnRPcHRpb24uYXhlcy5sZWZ0LnRpdGxlID0gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUueUF4ZTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgdGhpcy5nZXRTdG9yZWRRdWVyeSh0aGlzLl93aWRnZXRDb25maWcuc3RvcmVkUXVlcnkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9xdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHRoaXMuc3RvcmVkUXVlcnkpO1xuICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5zdG9yZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcnkubmFtZTtcbiAgICAgIGlmICh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24pIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZUNoYXJ0RGF0YSh0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24sIHRoaXMuX3dpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlLFxuICAgICAgICAgIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlLCB0aGlzLnJhbmdlVmFsdWVzLCB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc29ydFJldmVydCxcbiAgICAgICAgICB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYXR0cmlidXRNZXRyaWMsIHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5tZXRyaWMsXG4gICAgICAgICAgdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/Lm1pbkRvY0NvdW50LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgdGhpcy5jaGFydERhdGEgPSBbXTtcbiAgICAgIHRoaXMucmVmcmVzaGluZ1JlcXVlc3QgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uRW1pdFF1ZXJ5Q2xpY2soZXZlbnQpIHtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkuZmllbGRzO1xuICAgIGNvbnN0IHVyaVBhcmFtID0gZW5jb2RlVVJJQ29tcG9uZW50KFV0aWxzLmZvcm1EYXRhU3RyaW5naWZ5KHRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpKSk7XG4gICAgY29uc3QgdXJpUGFyYW1RdWVyeTogTmF2aWdhdGlvbkV4dHJhcyA9IHtxdWVyeVBhcmFtczogeydxdWVyeSc6IHVyaVBhcmFtfX07XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHVyaVBhcmFtUXVlcnkucXVlcnlQYXJhbXMpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYuc3BsaXQoJy9kYXNoYm9hcmQnKVswXSArICcvcmVzdWx0PycgKyBxdWVyeVBhcmFtcztcbiAgICB3aW5kb3cub3Blbih1cmwsIGV2ZW50Py5jdHJsS2V5IHx8IHRoaXMuZWRpdE1vZGUgPyAnX2JsYW5rJyA6ICdfc2VsZicpO1xuICB9XG59XG4iLCI8aGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRpdGxlXCI+XG4gICAgQGlmICh3aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc3RvcmVkUXVlcnkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7IHdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdG9yZWRRdWVyeSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImljb25zLXRpdGxlXCI+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHByaW1hcnlcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zYXZlZF9zZWFyY2guc3ZnJ1wiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRRdWVyeVRvQXBwU2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ud2lkZ2V0LmhpdGxpc3QudG9vbHRpcC5zYXZlZFNlYXJjaEljb24nfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfb3Blbl90YWIuc3ZnJ1wiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkVtaXRRdWVyeUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ud2lkZ2V0LmhpdGxpc3QudG9vbHRpcC5vcGVuaW5yZXN1bHRsaXN0J3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX3JlZnJlc2guc3ZnJ1wiIChjbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICAgICAgICAgICBbaWNvblRpdGxlXT1cIignZW8ud2lkZ2V0LmhpdGxpc3QudG9vbHRpcC5yZWZyZXNoJ3wgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L2hlYWRlcj5cblxuQGlmIChyZWZyZXNoaW5nUmVxdWVzdCkge1xuICA8bWFpbiBjbGFzcz1cImxvYWRlci1vdmVybGF5X19tYXNrXCI+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbGFyZ2UnXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG4gIDwvbWFpbj5cbn0gQGVsc2UgaWYgKGNoYXJ0RGF0YS5sZW5ndGggPiAwICYmICFyZWZyZXNoaW5nUmVxdWVzdCkge1xuICA8bWFpbiBjbGFzcz1cImNoYXJ0XCI+XG4gICAgPGRpdiBjbGFzcz1cIml0ZW1cIj5cbiAgICAgIEBzd2l0Y2ggKHdpZGdldENvbmZpZyEuZm9ybVZhbHVlLmNoYXJ0VHlwZSkge1xuICAgICAgICBAY2FzZSAoJ2JhcicpIHtcbiAgICAgICAgICA8aWJtLXNpbXBsZS1iYXItY2hhcnQgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwic2hhcmVkT3B0aW9uc1wiPjwvaWJtLXNpbXBsZS1iYXItY2hhcnQ+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdwaWUnKSB7XG4gICAgICAgICAgPGlibS1waWUtY2hhcnQgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwic2hhcmVkT3B0aW9uc1wiPjwvaWJtLXBpZS1jaGFydD5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoJ2RvbnV0Jykge1xuICAgICAgICAgIDxpYm0tZG9udXQtY2hhcnQgW2RhdGFdPVwiY2hhcnREYXRhXCIgW29wdGlvbnNdPVwic2hhcmVkT3B0aW9uc1wiPjwvaWJtLWRvbnV0LWNoYXJ0PlxuICAgICAgICB9XG4gICAgICAgIEBjYXNlICgnbGluZVN0cmFpZ2h0Jykge1xuICAgICAgICAgIDxpYm0tbGluZS1jaGFydCBbZGF0YV09XCJjaGFydERhdGFcIiBbb3B0aW9uc109XCJsaW5lU3RyYWlnaHRDaGFydE9wdGlvblwiPjwvaWJtLWxpbmUtY2hhcnQ+XG4gICAgICAgIH1cbiAgICAgICAgQGNhc2UgKCdsaW5lQ3VydmUnKSB7XG4gICAgICAgICAgPGlibS1saW5lLWNoYXJ0IFtkYXRhXT1cImNoYXJ0RGF0YVwiIFtvcHRpb25zXT1cImxpbmVDdXJ2ZUNoYXJ0T3B0aW9uXCI+PC9pYm0tbGluZS1jaGFydD5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L21haW4+XG59IEBlbHNlIHtcbiAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgPGVvLWVycm9yLW1lc3NhZ2VcbiAgICAgIFtlbXB0eVN0YXRlXT1cIntpY29uOiAnaWNfc2F2ZWRfc2VhcmNoLnN2ZycsIHRleHQ6ICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNvbmZpZ3VyYXRpb24ubm90T2snfVwiPjwvZW8tZXJyb3ItbWVzc2FnZT5cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -250,7 +250,7 @@ let SettingsComponent = class SettingsComponent {
|
|
|
250
250
|
});
|
|
251
251
|
}
|
|
252
252
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SettingsComponent, deps: [{ token: i0.Renderer2 }, { token: i1.UserService }, { token: i1.Config }, { token: i1.NotificationsService }, { token: i1.SystemService }, { token: i1.EventService }, { token: i1.CapabilitiesService }, { token: i2.PageTitleService }, { token: i3.AgentService }, { token: i4.UntypedFormBuilder }, { token: i1.AppCacheService }, { token: i1.LocalStorageService }, { token: i1.TranslateService }, { token: i0.ElementRef }, { token: i1.NotificationsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SettingsComponent, selector: "eo-settings", viewQueries: [{ propertyName: "files", first: true, predicate: ["files"], descendants: true }, { propertyName: "headerBg", first: true, predicate: ["headerBg"], descendants: true }, { propertyName: "userAvatar", first: true, predicate: ["userAvatar"], descendants: true }, { propertyName: "confirmDeleteBtn", first: true, predicate: ["confirmDeleteBtn"], descendants: true }, { propertyName: "profileImageOverlay", first: true, predicate: ["profileImageOverlay"], descendants: true }, { propertyName: "deputiesForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"$event.target.value=null\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\n </button>\n </div>\n </div>\n\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\n [ngClass]=\"{active: activeSchema === locale.code}\"\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.delete.dialog.ok</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i8.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i9.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: i10.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i11.OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: i12.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i13.ChangePasswordFormComponent, selector: "eo-change-password-form", inputs: ["userRegex"], outputs: ["onFormSumbit"] }, { kind: "component", type: i14.PermissionsComponent, selector: "eo-permissions", inputs: ["roles"] }, { kind: "component", type: i15.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: SettingsComponent, selector: "eo-settings", viewQueries: [{ propertyName: "files", first: true, predicate: ["files"], descendants: true }, { propertyName: "headerBg", first: true, predicate: ["headerBg"], descendants: true }, { propertyName: "userAvatar", first: true, predicate: ["userAvatar"], descendants: true }, { propertyName: "confirmDeleteBtn", first: true, predicate: ["confirmDeleteBtn"], descendants: true }, { propertyName: "profileImageOverlay", first: true, predicate: ["profileImageOverlay"], descendants: true }, { propertyName: "deputiesForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"$event.target.value=null\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\n </button>\n </div>\n </div>\n\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\n [ngClass]=\"{active: activeSchema === locale.code}\"\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.delete.dialog.ok</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto;overflow-x:hidden}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i7.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i8.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i9.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "component", type: i10.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i11.OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: i12.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i13.ChangePasswordFormComponent, selector: "eo-change-password-form", inputs: ["userRegex"], outputs: ["onFormSumbit"] }, { kind: "component", type: i14.PermissionsComponent, selector: "eo-permissions", inputs: ["roles"] }, { kind: "component", type: i15.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
|
|
254
254
|
};
|
|
255
255
|
SettingsComponent = __decorate([
|
|
256
256
|
UntilDestroy()
|
|
@@ -258,7 +258,7 @@ SettingsComponent = __decorate([
|
|
|
258
258
|
export { SettingsComponent };
|
|
259
259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
260
260
|
type: Component,
|
|
261
|
-
args: [{ selector: 'eo-settings', template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"$event.target.value=null\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\n </button>\n </div>\n </div>\n\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\n [ngClass]=\"{active: activeSchema === locale.code}\"\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.delete.dialog.ok</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"] }]
|
|
261
|
+
args: [{ selector: 'eo-settings', template: "<div class=\"eo-settings\" *ngIf=\"user\" eoRtlAware>\n\n <div class=\"header\">\n\n <div #headerBg class=\"bg\"></div>\n <div class=\"fill\">\n <div class=\"meta username\">{{user.name}}</div>\n <h1>{{user.firstname}} {{user.lastname}}</h1>\n <div class=\"meta email\">{{user.email}}</div>\n\n <div class=\"presence\" *ngIf=\"capabilities.inbox\">\n <button class=\"toggle dark present\" id=\"presence\" (click)=\"setPresence(true)\" [ngClass]=\"{active: user.present}\"\n translate>eo.state.settings.presence.present</button>\n <button class=\"toggle dark absent\" (click)=\"setPresence(false)\" (keydown.tab)=\"tabAction($event.target)\" [ngClass]=\"{active: !user.present}\"\n translate>eo.state.settings.presence.absent</button>\n </div>\n </div>\n <div (mouseenter)=\"mouseEnter()\" (mouseleave)=\"mouseLeave()\" (keydown.tab)=\"mouseEnter()\">\n\n <eo-user-avatar #userAvatar class=\"userImage\" tabindex=\"-1\" eoRtlAware=\"full\">\n <input type=\"file\" accept=\".jpg, .png\" style=\"display:none;\" #files (change)=\"selectImage($event.target)\" (click)=\"$event.target.value=null\">\n </eo-user-avatar>\n <eo-dialog [styleClass]=\"'view'\" [minWidth]=\"'300px'\" [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\"\n [(visible)]=\"showPreviewDialog\" [focusOnShow]=\"false\">\n <ng-container>\n <div class=\"contain\">\n <div class=\"attachments\">\n <div class=\"atta\">\n <img loading=\"lazy\" [src]=\"preview\">\n </div>\n <div class=\"user-avatar\" *ngIf=\"preview\">\n <eo-user-avatar class=\"preview-round\" [previewUri]=\"preview\"></eo-user-avatar>\n </div>\n </div>\n </div>\n <div class=\"button-block\">\n <button type=\"button\" (click)=\"closePreviewDialog()\" class=\"button danger\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"uploadNewUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.dialog.save</button>\n </div>\n </ng-container>\n </eo-dialog>\n\n <div class=\"overlay\" #profileImageOverlay tabindex=\"0\" eoRtlAware=\"full\">\n <span class=\"updateMessage\" *ngIf=\"hoverSelector\">\n <eo-icon tabindex=\"0\" (keydown.enter)=\"files.click()\" [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"files.click()\"></eo-icon>\n <eo-icon tabindex=\"0\" (keydown.enter)=\"trashIconClick()\" *ngIf=\"showDeleteIconTrash\"\n [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\" aria-disabled=\"true\" (click)=\"trashIconClick()\"></eo-icon>\n </span>\n </div>\n </div>\n\n </div>\n\n <div class=\"body\" (keydown.tab)=\"tabAction($event.target)\">\n\n <div class=\"body-wrap\">\n\n <div class=\"section section-deputies\" *ngIf=\"capabilities.bpm && hasPrivilege('MANAGE_DEPUTY_LIST')\">\n <h3 translate>eo.state.settings.deputies</h3>\n\n <!-- deputies -->\n <div class=\"entry deputies\">\n <div class=\"label\" translate>eo.state.settings.deputies.label</div>\n <div class=\"values\">\n <form #deputiesForm=\"ngForm\" [ngClass]=\"{dirty: deputiesForm.dirty}\">\n <eo-organization name=\"deputies\" [dataMeta]=\"deputies.dataMeta\" [filterObject]=\"{type: 'USER'}\"\n [exceptions]=\"[user.name]\" [multiselect]=\"true\" tabindex=\"0\" [(ngModel)]=\"deputies.data\"></eo-organization>\n <div class=\"actions\" *ngIf=\"deputiesForm.valid && deputiesForm.dirty\">\n <button class=\"secondary\" (click)=\"resetDeputies()\" translate>eo.state.settings.deputies.cancel</button>\n <button class=\"primary\" (click)=\"saveDeputies()\" translate>eo.state.settings.deputies.save</button>\n </div>\n </form>\n </div>\n </div>\n\n <!-- substitute of -->\n <div class=\"entry substitute\">\n <div class=\"label\" translate>eo.state.settings.deputies.subsituteof.label</div>\n <div class=\"values\">\n <span class=\"chip\" *ngFor=\"let sub of user.substitutesOf\" [ngClass]=\"{present: sub.present}\">\n <eo-icon class=\"chip substitute substitute--present\" *ngIf=\"sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_done.svg'\"></eo-icon>\n <eo-icon class=\"chip substitute substitute--away\" *ngIf=\"!sub.present\"\n [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\"></eo-icon>\n <span>{{sub.title}} ({{sub.name}})</span>\n </span>\n </div>\n </div>\n </div>\n\n <!-- password -->\n <section class=\"section section-password\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.password.reset</div>\n <div class=\"values\">\n <eo-simple-accordion #simpleAcc [header]=\"('eo.password.reset' | translate)\"\n [styles]=\"'setting__change-password'\" [headerClass]=\"'setting__change-password-header'\">\n\n <eo-change-password-form (onFormSumbit)=\"simpleAcc.selected = false\"></eo-change-password-form>\n </eo-simple-accordion>\n </div>\n </div>\n </section>\n\n <!-- language -->\n <div class=\"section section-lang\">\n <h3 translate>eo.state.settings.language</h3>\n <div class=\"entry lang-app\">\n <div class=\"label\" translate>eo.state.settings.language.client</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeClientLocale(locale.iso)\"\n [ngClass]=\"{active: translate.currentLang === locale.iso}\"\n *ngFor=\"let locale of clientLocales\">{{locale.label}}\n </button>\n </div>\n </div>\n\n <div class=\"entry lang-def\">\n <div class=\"label\" translate>eo.state.settings.language.schema</div>\n <div class=\"values\">\n <button class=\"toggle\" (click)=\"changeSchemaLocale(locale.code)\"\n [ngClass]=\"{active: activeSchema === locale.code}\"\n *ngFor=\"let locale of schemaLocales\">{{locale.displayname}}</button>\n </div>\n </div>\n </div>\n\n <!-- permissions -->\n <div class=\"section section-perm\">\n <h3 translate>eo.state.settings.permission</h3>\n <div class=\"entry perm-roles\">\n <div class=\"label\" translate>eo.state.settings.roles</div>\n <div class=\"values roles\">\n <eo-simple-accordion [header]=\"('eo.state.settings.roles' | translate)\">\n <eo-permissions [roles]=\"user.roles\"></eo-permissions>\n </eo-simple-accordion>\n </div>\n </div>\n </div>\n\n <!-- agent -->\n <div class=\"section section-others\">\n <h3 translate>eo.state.settings.others</h3>\n <ng-container *ngIf=\"showAgentConfig\">\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.agent</div>\n <div class=\"values\">\n <div class=\"use-agent\">\n <eo-checkbox [formControl]=\"useAgentControl\" [readonly]=\"useAgentControl.disabled\"\n *ngIf=\"useAgentControl\"></eo-checkbox>\n <span class=\"use-agent-label\" translate>eo.state.settings.agent.use</span>\n <!-- <a href=\"https://help.optimal-systems.com/yuuvisRAD/v60/user/client/de/client/integration/cln_tsk_agent_global.htm?Highlight=agent\">\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\"></eo-icon>\n </a> -->\n </div>\n </div>\n </div>\n\n\n <div class=\"entry lock-settings\" [ngClass]=\"{'lock-settings--show': (agentStatus | async)}\">\n <div class=\"label\" translate>eo.state.settings.lock</div>\n <div class=\"values\">\n <button class=\"toggle button-enabled\" (click)=\"changeLockSettings(LockSettings.always)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.always}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.enable</button>\n <button class=\"toggle button-disabled\" (click)=\"changeLockSettings(LockSettings.never)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.never}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.disable</button>\n <button class=\"toggle button-ask\" (click)=\"changeLockSettings(LockSettings.ask)\"\n [ngClass]=\"{active: agentLockSettings === LockSettings.ask}\" [disabled]=\"defaultLockSetting\"\n translate>eo.state.settings.lock.ask</button>\n </div>\n </div>\n\n\n </ng-container>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.localSettings</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"saveLocalSettings()\">eo.state.settings.localSettings.save</button>\n <button translate (click)=\"loadLocalSettings()\">eo.state.settings.localSettings.load</button>\n <button translate (click)=\"clearLocalSettings()\">eo.state.settings.localSettings.clear</button>\n </div>\n </div>\n </div>\n <div class=\"entry\">\n <div class=\"label\" translate>eo.state.settings.dashboard.defaut</div>\n <div class=\"values\">\n <div class=\"flex-row\">\n <button translate (click)=\"deleteConfigDashboard = true\">eo.state.settings.dashboard.button.clear</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <eo-dialog [title]=\"'eo.state.settings.dashboard.default.dialog.title' | translate\" [(visible)]=\"deleteConfigDashboard\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.dashboard.default.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"deleteConfigDashboard = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"defaultDashboard(); deleteConfigDashboard = false\" class=\"button primary\"\n translate>eo.state.settings.dashboard.button.reset</button>\n </div>\n</eo-dialog>\n <eo-dialog [title]=\"'eo.state.settings.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n <div>{{'eo.state.settings.details.delete.dialog.message' | translate}}</div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\" >\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial #confirmDeleteBtn (click)=\"deleteUserImage()\" class=\"button primary\"\n translate>eo.state.settings.details.delete.dialog.ok</button>\n </div>\n </eo-dialog>\n\n <eo-dialog [title]=\"'eo.state.settings.details.upload.dialog.title' | translate\" [(visible)]=\"showErrorDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'delete__dialog'\">\n\n <div>\n <p>{{fileName}}</p>\n <p *ngIf=\"viewMode ==='size'\" translate>eo.state.settings.details.upload.dialog.sizeError</p>\n <p *ngIf=\"viewMode ==='image'\" translate>eo.state.settings.details.upload.dialog.fileError </p>\n </div>\n\n <div class=\"action-buttons image-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showErrorDialog = false\"\n translate>eo.state.settings.details.delete.dialog.cancel</button>\n <button type=\"button\" cdkFocusInitial (click)=\"files.click(); showErrorDialog = false\" class=\"button primary\"\n translate>eo.state.settings.details.upload.dialog.back</button>\n </div>\n </eo-dialog>\n</div>\n", styles: [":host{position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center}:host .cache{display:flex;flex-flow:row;margin:0 var(--app-pane-padding)}.eo-settings{margin:var(--app-pane-padding);box-sizing:border-box;width:800px;background:var(--color-white);display:flex;flex-flow:column;box-shadow:0 2px 5px #0003}@media screen and (max-width: 832px){.eo-settings{margin:0;min-width:inherit;width:100%}}.eo-settings .header{min-height:200px;max-height:300px;position:relative;flex:1 1}@media screen and (max-width: 480px){.eo-settings .header{min-height:210px}}.eo-settings .header h1{margin:0;padding:0;font-size:var(--font-display);font-weight:var(--font-weight-light);line-height:1em}.eo-settings .header .meta{margin:calc(var(--app-pane-padding) / 2) 0}.eo-settings .header .presence{margin-top:calc(var(--app-pane-padding) * 2)}.eo-settings .header .bg{position:absolute;inset:0;background-size:cover;background-position:center center;filter:grayscale(1)}.eo-settings .header .fill{position:absolute;inset:0;background:rgba(var(--color-primary-rgb),.85);color:var(--color-white);padding:var(--app-pane-padding)}.eo-settings .header .userImage{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);background-size:cover;width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .userImage{width:105px;height:105px}}.eo-settings .header .userImage.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay{position:absolute;z-index:1;right:var(--app-pane-padding);bottom:calc(var(--app-pane-padding) * -1);width:150px;height:150px;border:4px solid var(--color-white);box-shadow:0 2px 5px rgba(var(--color-black-rgb),.26)}@media screen and (max-width: 480px){.eo-settings .header .overlay{width:105px;height:105px}}.eo-settings .header .overlay.rtl{left:var(--app-pane-padding);right:auto}.eo-settings .header .overlay:focus{border-color:var(--color-accent);opacity:2}.eo-settings .header .overlay:hover{border-color:var(--color-accent);opacity:100}.eo-settings .header .overlay .updateMessage{box-sizing:border-box;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#c0bcbcf1;background-clip:border-box}.eo-settings .header .overlay .updateMessage eo-icon{color:var(--color-white);width:48px;height:48px;opacity:.5;transition:all var(--app-default-transition-duration) ease-in-out;-webkit-transition:all var(--app-default-transition-duration) ease-in-out;-moz-transition:all var(--app-default-transition-duration) ease-in-out;-o-transition:all var(--app-default-transition-duration) ease-in-out}.eo-settings .header .overlay .updateMessage eo-icon:focus,.eo-settings .header .overlay .updateMessage eo-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body{flex:1 1 auto;position:relative}.eo-settings .body .body-wrap{padding:var(--app-pane-padding);box-sizing:border-box;position:absolute;inset:0;overflow-y:auto;overflow-x:hidden}.eo-settings .body .section{margin-top:var(--app-pane-padding)}.eo-settings .body .section.section-deputies form{border-radius:2px}.eo-settings .body .section.section-deputies form .actions{display:flex;justify-content:flex-end;padding-top:calc(var(--app-pane-padding) / 4)}.eo-settings .body .section.section-deputies form .actions button{padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);border-radius:2px}.eo-settings .body .section.section-deputies form.dirty{padding:2px;background-color:rgba(var(--color-black-rgb),.06)}.eo-settings .body .section.section-deputies .entry.deputies .values{padding:0 2px;border:1px solid var(--eo-chips-border-color);border-radius:2px}.eo-settings .body .section.section-deputies .entry.substitute .values{display:flex;flex-flow:row wrap}.eo-settings .body .section.section-deputies .entry.substitute .values .chip{display:flex;align-items:center;font-size:.9em;padding:2px 4px}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute{width:calc(var(--app-pane-padding) * .75);height:calc(var(--app-pane-padding) * .6);border-radius:4px;border:0;color:var(--color-white)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--present{background-color:var(--color-success)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip .substitute--away{background-color:var(--color-error)}.eo-settings .body .section.section-deputies .entry.substitute .values .chip>span{margin:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-default{background-color:var(--color-white);border-color:rgba(var(--color-black-rgb),.1);border-radius:2px;padding:0 0 2px 2px;min-height:27px}.eo-settings .body .section.section-deputies ::ng-deep .values .ui-state-disabled{opacity:1;border-color:transparent}.eo-settings .body .section p{line-height:1.7em}.eo-settings .body .section h3{margin:0;padding:0 0 0 150px;color:var(--text-color-caption);font-weight:var(--font-weight-normal);font-size:var(--font-subhead)}@media screen and (max-width: 480px){.eo-settings .body .section h3{padding:0}}.eo-settings .body .section .entry{display:flex;flex-flow:row nowrap;padding:var(--app-pane-padding) 0 0 0}.eo-settings .body .section .entry.lock-settings{overflow:hidden;opacity:0;height:0;transition:all .5s ease-in-out}.eo-settings .body .section .entry.lock-settings--show{opacity:1;height:100%}@media screen and (max-width: 480px){.eo-settings .body .section .entry{flex-flow:column}}.eo-settings .body .section .entry .label{flex:0 0 150px;color:var(--text-color-caption)}@media screen and (max-width: 480px){.eo-settings .body .section .entry .label{margin-bottom:calc(var(--app-pane-padding) / 2);flex:0 0 auto}}.eo-settings .body .section .entry .values{flex:1 1 auto}.eo-settings .body .section .entry .values button{margin:0 4px 4px 0;cursor:pointer}.eo-settings .body .section .entry .values button.active{cursor:default}.eo-settings .body .section .entry .values button.toggle:disabled{cursor:default}.eo-settings .body .section .entry .use-agent{display:flex;align-items:center}.eo-settings .body .section .entry .use-agent .use-agent-label{margin:0 calc(var(--app-pane-padding) / 2);color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:var(--text-color-caption)}.eo-settings .body .section .entry .use-agent eo-icon.info-icon:hover{background-color:var(--color-primary);color:var(--color-white);cursor:pointer}.eo-settings .body .section .values.roles{display:flex;flex-flow:column;align-items:flex-start}.eo-settings .body .section .values.roles .role{display:flex;flex-flow:row nowrap;margin-bottom:calc(var(--app-pane-padding) / 2);word-break:break-all}.eo-settings .body .section .values.roles .role eo-icon{width:18px;height:18px;color:var(--text-color-hint)}.eo-settings .body .section .values.roles .role>div{padding:0 calc(var(--app-pane-padding) / 2)}.eo-settings .body .section .values.roles .role>div .description{font-size:var(--font-caption);color:var(--text-color-caption)}.eo-settings .body .toggle-btn{display:inline-block;padding:2px 5px;border-radius:2px;-webkit-border-radius:2px;background:rgba(var(--color-black-rgb),.1);color:var(--text-color-caption);cursor:pointer;margin-right:3px;text-decoration:none}.eo-settings.rtl .header .userImage{right:auto;left:var(--app-pane-padding)}.eo-settings.rtl .body .section h3{padding:0 150px 0 0}::ng-deep .view{width:100%;height:100%}::ng-deep .view .eo-dialog-content{overflow:hidden}::ng-deep .view .contain{display:flex;flex-flow:column}@media screen and (max-width: 480px){::ng-deep .view .contain{min-height:210px}}::ng-deep .view .contain .attachments{width:100%;height:100%;display:flex;align-items:center;justify-content:space-around;margin:5px 60px 0}::ng-deep .view .contain .attachments .atta{position:relative;display:block;padding:0;margin-inline:10px;margin-top:10px}::ng-deep .view .contain .attachments .atta img{max-width:200px;max-height:200px;min-width:80px;min-height:80px;border:2px solid #5c5959;box-sizing:border-box}::ng-deep .view .contain .attachments .user-avatar{display:flex;margin-right:109px;align-items:center}::ng-deep .view .contain .attachments .user-avatar .preview-round{width:90px;height:90px;border-radius:50%;border:2px solid #5c5959}::ng-deep .view .button-block{display:flex;margin:8px;justify-content:right}::ng-deep .delete__dialog{padding:8px;min-height:unset!important}::ng-deep .delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:#fff!important}\n"] }]
|
|
262
262
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.UserService }, { type: i1.Config }, { type: i1.NotificationsService }, { type: i1.SystemService }, { type: i1.EventService }, { type: i1.CapabilitiesService }, { type: i2.PageTitleService }, { type: i3.AgentService }, { type: i4.UntypedFormBuilder }, { type: i1.AppCacheService }, { type: i1.LocalStorageService }, { type: i1.TranslateService }, { type: i0.ElementRef }, { type: i1.NotificationsService }], propDecorators: { files: [{
|
|
263
263
|
type: ViewChild,
|
|
264
264
|
args: ['files']
|