@eo-sdk/client 10.0.0-beta.2 → 10.0.0-beta.4
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/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +7 -3
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-shell.module.d.ts +2 -1
- package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
- package/app/eo-framework/eo-framework.module.d.ts +26 -29
- package/app/eo-framework/eo-framework.module.d.ts.map +1 -1
- package/app/eo-framework/form-elements/checkbox/checkbox.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +3 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/date/date.component.d.ts +2 -0
- package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/date/year-range/year-range.directive.d.ts.map +1 -0
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +3 -1
- package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/form-elements.module.d.ts +37 -39
- package/app/eo-framework/form-elements/form-elements.module.d.ts.map +1 -1
- package/app/eo-framework/form-elements/id-reference/id-reference.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/index.d.ts +1 -3
- package/app/eo-framework/form-elements/index.d.ts.map +1 -1
- package/app/eo-framework/form-elements/reference/reference.component.d.ts.map +1 -1
- package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts +3 -2
- package/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.d.ts.map +1 -1
- package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts +1 -5
- package/app/eo-framework/grid/extensions/filter/text/text-filter.component.d.ts.map +1 -1
- package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +4 -7
- package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
- package/app/eo-framework/grid/grid.module.d.ts +4 -3
- package/app/eo-framework/grid/grid.module.d.ts.map +1 -1
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts +2 -7
- package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
- package/app/eo-framework/index.d.ts +0 -1
- package/app/eo-framework/index.d.ts.map +1 -1
- package/app/eo-framework/media/media.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-details.component.d.ts +2 -7
- package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
- package/app/eo-framework/object-details/object-history/object-history.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/object-form.component.d.ts +6 -59
- package/app/eo-framework/object-form/object-form/object-form.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form-helper.service.d.ts +86 -2
- package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts +3 -11
- package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
- package/app/eo-framework/plugins/plugin.component.d.ts +0 -2
- package/app/eo-framework/plugins/plugin.component.d.ts.map +1 -1
- package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
- package/app/eo-framework/process/details/process-details.component.d.ts +2 -7
- package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
- package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +2 -7
- package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts.map +1 -1
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +2 -1
- package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +2 -0
- package/assets/_default/i18n/en.json +4 -2
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +5 -5
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +1 -1
- package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +3 -3
- package/esm2020/app/eo-client/login/login.component.mjs +5 -6
- package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +1 -1
- package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +4 -4
- package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +1 -1
- package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +6 -8
- package/esm2020/app/eo-client/settings/settings.component.mjs +3 -3
- package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +4 -4
- package/esm2020/app/eo-client/version-state/version-state.component.mjs +1 -1
- package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +1 -1
- package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +1 -1
- package/esm2020/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +1 -1
- package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +2 -2
- package/esm2020/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +1 -1
- package/esm2020/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +1 -1
- package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +32 -20
- package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +8 -4
- package/esm2020/app/eo-framework/eo-framework.module.mjs +3 -36
- package/esm2020/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +1 -4
- package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +9 -3
- package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +9 -24
- package/esm2020/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +44 -0
- package/esm2020/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +2 -2
- package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +9 -3
- package/esm2020/app/eo-framework/form-elements/form-elements.module.mjs +3 -13
- package/esm2020/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +11 -12
- package/esm2020/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +2 -2
- package/esm2020/app/eo-framework/form-elements/index.mjs +2 -4
- package/esm2020/app/eo-framework/form-elements/number-range/number-range.component.mjs +2 -2
- package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +2 -2
- package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +5 -5
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +8 -3
- package/esm2020/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +9 -17
- package/esm2020/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +2 -2
- package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +9 -27
- package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +2 -2
- package/esm2020/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +2 -2
- package/esm2020/app/eo-framework/grid/grid.component.mjs +2 -2
- package/esm2020/app/eo-framework/grid/grid.module.mjs +5 -8
- package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +8 -15
- package/esm2020/app/eo-framework/index.mjs +1 -2
- package/esm2020/app/eo-framework/media/media.component.mjs +5 -4
- package/esm2020/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-details/object-details.component.mjs +10 -15
- package/esm2020/app/eo-framework/object-details/object-history/object-history.component.mjs +1 -2
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +4 -4
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +18 -494
- package/esm2020/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +506 -7
- package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +19 -27
- package/esm2020/app/eo-framework/plugins/plugin.component.mjs +5 -7
- package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -4
- package/esm2020/app/eo-framework/process/details/process-details.component.mjs +10 -16
- package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +7 -16
- package/esm2020/app/eo-framework/result-list/result-list.component.mjs +1 -1
- package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +6 -3
- package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
- package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +6 -1
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +5 -0
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +3744 -4567
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +5 -0
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +3746 -4568
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +4 -4
- package/projects/eo-sdk/core/lib/util/utils.d.ts +1 -0
- package/projects/eo-sdk/core/lib/util/utils.d.ts.map +1 -1
- package/scss/_eo-variables.scss +70 -40
- package/scss/_form.scss +6 -0
- package/scss/_main.scss +1 -1
- package/scss/_theme-dark.scss +22 -0
- package/scss/_yuuvis-components.scss +13 -2
- package/styles.css +51 -24
- package/styles.scss +5 -10
- package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts +0 -67
- package/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.d.ts.map +0 -1
- package/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.d.ts +0 -21
- package/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.d.ts.map +0 -1
- package/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.d.ts +0 -33
- package/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.d.ts.map +0 -1
- package/app/eo-framework/form-elements/datetime/datetime.component.d.ts +0 -51
- package/app/eo-framework/form-elements/datetime/datetime.component.d.ts.map +0 -1
- package/app/eo-framework/form-elements/datetime/year-range/year-range.directive.d.ts.map +0 -1
- package/app/eo-framework/tab-container/index.d.ts +0 -6
- package/app/eo-framework/tab-container/index.d.ts.map +0 -1
- package/app/eo-framework/tab-container/tab-container.component.d.ts +0 -62
- package/app/eo-framework/tab-container/tab-container.component.d.ts.map +0 -1
- package/app/eo-framework/tab-container/tab-container.module.d.ts +0 -18
- package/app/eo-framework/tab-container/tab-container.module.d.ts.map +0 -1
- package/app/eo-framework/tab-container/tab-panel/tab-panel.component.d.ts +0 -13
- package/app/eo-framework/tab-container/tab-panel/tab-panel.component.d.ts.map +0 -1
- package/app/eo-framework/tab-container/tab-view/tab-view.component.d.ts +0 -19
- package/app/eo-framework/tab-container/tab-view/tab-view.component.d.ts.map +0 -1
- package/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.d.ts +0 -11
- package/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.d.ts.map +0 -1
- package/esm2020/app/eo-framework/form-elements/datetime/datepicker/datepicker.component.mjs +0 -239
- package/esm2020/app/eo-framework/form-elements/datetime/datepicker/datepicker.interface.mjs +0 -2
- package/esm2020/app/eo-framework/form-elements/datetime/datepicker/service/datepicker.service.mjs +0 -109
- package/esm2020/app/eo-framework/form-elements/datetime/datetime.component.mjs +0 -142
- package/esm2020/app/eo-framework/form-elements/datetime/year-range/year-range.directive.mjs +0 -44
- package/esm2020/app/eo-framework/tab-container/index.mjs +0 -6
- package/esm2020/app/eo-framework/tab-container/tab-container.component.mjs +0 -184
- package/esm2020/app/eo-framework/tab-container/tab-container.module.mjs +0 -47
- package/esm2020/app/eo-framework/tab-container/tab-panel/tab-panel.component.mjs +0 -26
- package/esm2020/app/eo-framework/tab-container/tab-view/tab-view.component.mjs +0 -61
- package/esm2020/app/eo-framework/tab-container/tab-view-nav/tab-view-nav.component.mjs +0 -25
- package/scss/_eo-inverted.scss +0 -73
- package/scss/_eo-pink-theme.scss +0 -73
- package/scss/_eo-theme.scss +0 -81
- package/scss/_eo-vars.scss +0 -3
- /package/app/eo-framework/form-elements/{datetime → date}/year-range/year-range.directive.d.ts +0 -0
|
@@ -93,7 +93,8 @@ export class MediaComponent extends UnsubscribeOnDestroy {
|
|
|
93
93
|
"mimeType": ["message/rfc822", "application/vnd.ms-outlook"],
|
|
94
94
|
"viewer": "viewer/view/api/mail/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}"
|
|
95
95
|
},
|
|
96
|
-
|
|
96
|
+
// We need another pathPdf for email attachment files. This will only come in place if the mimetype is pdf or one of the not supported ones.
|
|
97
|
+
{ "viewer": "() => {var attachment = parameters.pathPdf.match(new RegExp('attachment=(\\\\d)')); if (attachment) {parameters.pathPdf = location.origin + '/rest-ws/service/dms/' + dmsObject.content.id + '/attachments/' + attachment[1]} debugger; return parameters.defaultViewer;}" },
|
|
97
98
|
{ "error": true, "type": "error", "viewer": "viewer/view/api/error/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}" }
|
|
98
99
|
];
|
|
99
100
|
this.undockDisabled = false;
|
|
@@ -250,10 +251,10 @@ export class MediaComponent extends UnsubscribeOnDestroy {
|
|
|
250
251
|
MediaComponent.VIDEO_VIEWER = 'viewer/view/api/video/?path=${path}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}';
|
|
251
252
|
MediaComponent.PDF_VIEWER = 'viewer/view/api/pdf/web/viewer.html?file=&path=${path}&pathPdf=${pathPdf}&mimeType=${mimeType}&fileExtension=${fileExtension}&lang=${lang}&theme=${theme}&css=%23toolbarViewerRight%20%23print%7Bdisplay%3Ablock!important%3B%7D';
|
|
252
253
|
MediaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: MediaComponent, deps: [{ token: i1.TranslateService }, { token: i1.DmsService }, { token: i0.Renderer2 }, { token: i1.SystemService }, { token: i1.Config }, { token: i2.PluginsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
253
|
-
MediaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: MediaComponent, selector: "eo-media", inputs: { undockDisabled: "undockDisabled", enableCloseBtn: "enableCloseBtn", useVersion: "useVersion", setAttachments: ["attachments", "setAttachments"], setSearchTerm: ["searchTerm", "setSearchTerm"], previewUri: "previewUri", previewFile: "previewFile", dmsObject: "dmsObject" }, host: { properties: { "class.open": "this.open" } }, providers: [ContentPreviewService], viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [hidden]=\"!open\">\n <!-- attachments overlay -->\n <div class=\"attachments\" *ngIf=\"attachments?.length\"\n [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\n (eoOutsideClick)=\"attachmentsShown = false\">\n <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\n <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\n <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\n {{a.name}}\n </div>\n </div>\n\n <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\n [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\n </div>\n\n <yvc-popout [triggerPosition]=\"popoutTriggerPosition\" [disabled]=\"undockDisabled\">\n\n <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\n <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\n <div class=\"slide\" *ngIf=\"isUndocked\">\n <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\n </div>\n </div>\n </yvc-popout>\n</div>\n\n<div [hidden]=\"open\" class=\"empty-container\">\n <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\n</div>\n", styles: [":host>div{height:100%}:host ::ng-deep .popoutWrapper{height:100%}:host ::ng-deep .popoutWrapper button.trigger{z-index:
|
|
254
|
+
MediaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: MediaComponent, selector: "eo-media", inputs: { undockDisabled: "undockDisabled", enableCloseBtn: "enableCloseBtn", useVersion: "useVersion", setAttachments: ["attachments", "setAttachments"], setSearchTerm: ["searchTerm", "setSearchTerm"], previewUri: "previewUri", previewFile: "previewFile", dmsObject: "dmsObject" }, host: { properties: { "class.open": "this.open" } }, providers: [ContentPreviewService], viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [hidden]=\"!open\">\n <!-- attachments overlay -->\n <div class=\"attachments\" *ngIf=\"attachments?.length\"\n [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\n (eoOutsideClick)=\"attachmentsShown = false\">\n <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\n <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\n <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\n {{a.name}}\n </div>\n </div>\n\n <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\n [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\n </div>\n\n <yvc-popout [triggerPosition]=\"popoutTriggerPosition\" [disabled]=\"undockDisabled\">\n\n <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\n <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\n <div class=\"slide\" *ngIf=\"isUndocked\">\n <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\n </div>\n </div>\n </yvc-popout>\n</div>\n\n<div [hidden]=\"open\" class=\"empty-container\">\n <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\n</div>\n", styles: [":host>div{height:100%}:host ::ng-deep .popoutWrapper{height:100%}:host ::ng-deep .popoutWrapper button.trigger{z-index:100}:host .empty-container{display:flex;justify-content:center;align-items:center;height:100%}:host .empty-container .nofile{width:128px;height:128px;opacity:.09}:host .preview-container{position:absolute;inset:0;overflow:hidden}:host .preview-container .slide{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;align-items:center;justify-content:center}:host .preview-container .slide .large-content{position:absolute;top:0;cursor:pointer;display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;justify-content:center;width:100%;padding:var(--app-pane-padding);color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.5)}:host .preview-container .slide .large-content.not-supported,:host .preview-container .slide .large-content:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .preview-container .slide .large-content.not-supported{cursor:inherit}:host .preview-container .slide img{padding:var(--app-pane-padding);width:100%}:host .preview-container .slide eo-icon{width:128px;height:128px;opacity:.2}:host .attachments{position:absolute;z-index:5;color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.6);right:calc(var(--app-pane-padding) / 2);bottom:calc(var(--app-pane-padding) * 3);display:flex;flex-flow:row;align-items:flex-end;border-radius:2px;max-width:calc(100% - 16px)}:host .attachments:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .attachments eo-icon{flex:0 0 auto;margin:calc(var(--app-pane-padding) / 2)}:host .attachments .attachments-list{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;overflow:auto;max-height:150px;padding:calc(var(--app-pane-padding) / 2);flex-flow:wrap}:host .attachments .attachments-list .attachment{border-radius:4px;background-color:rgba(var(--color-white-rgb),.1);padding:calc(var(--app-pane-padding) / 4);margin:calc(var(--app-pane-padding) / 8);cursor:pointer;border:1px solid rgba(var(--color-white-rgb),0);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;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .attachments .attachments-list .attachment:hover{border-color:rgba(var(--color-white-rgb),.5)}:host .attachments .attachments-list .attachment.current{background-color:var(--color-accent)}:host .attachments .attachments-list .attachment.main{background-color:var(--color-primary);order:100;flex:1 1 100%}:host .attachments .attachments-list .attachment:not(.main){font-style:italic}:host .attachments.notmain{background-color:var(--color-accent)}:host .attachments.active{background-color:rgba(var(--color-primary-rgb),.9);align-items:center;bottom:calc(var(--app-pane-padding) / 2)}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i5.OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "component", type: i6.PopoutComponent, selector: "yvc-popout", inputs: ["triggerPosition", "triggerTooltip", "windowTitle", "disabled"], outputs: ["popOut", "popIn"] }] });
|
|
254
255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: MediaComponent, decorators: [{
|
|
255
256
|
type: Component,
|
|
256
|
-
args: [{ selector: 'eo-media', providers: [ContentPreviewService], template: "<div [hidden]=\"!open\">\n <!-- attachments overlay -->\n <div class=\"attachments\" *ngIf=\"attachments?.length\"\n [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\n (eoOutsideClick)=\"attachmentsShown = false\">\n <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\n <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\n <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\n {{a.name}}\n </div>\n </div>\n\n <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\n [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\n </div>\n\n <yvc-popout [triggerPosition]=\"popoutTriggerPosition\" [disabled]=\"undockDisabled\">\n\n <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\n <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\n <div class=\"slide\" *ngIf=\"isUndocked\">\n <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\n </div>\n </div>\n </yvc-popout>\n</div>\n\n<div [hidden]=\"open\" class=\"empty-container\">\n <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\n</div>\n", styles: [":host>div{height:100%}:host ::ng-deep .popoutWrapper{height:100%}:host ::ng-deep .popoutWrapper button.trigger{z-index:
|
|
257
|
+
args: [{ selector: 'eo-media', providers: [ContentPreviewService], template: "<div [hidden]=\"!open\">\n <!-- attachments overlay -->\n <div class=\"attachments\" *ngIf=\"attachments?.length\"\n [ngClass]=\"{notmain: latestUri !== previewUri && !attachmentsShown, active: attachmentsShown}\"\n (eoOutsideClick)=\"attachmentsShown = false\">\n <div class=\"attachments-list\" *ngIf=\"attachmentsShown\">\n <div class=\"attachment main\" (click)=\"selectAttachment(null)\" [ngClass]=\"{current: latestUri === previewUri}\">{{dmsObjectTitle}}</div>\n <div class=\"attachment\" *ngFor=\"let a of attachments\" (click)=\"selectAttachment(a)\" [ngClass]=\"{current: latestUri === a.previewUri}\">\n {{a.name}}\n </div>\n </div>\n\n <eo-icon class=\"button\" [badge]=\"attachments?.length\" (click)=\"attachmentsShown = !attachmentsShown\"\n [iconSrc]=\"attachmentsShown ? 'assets/_default/svg/ic_clear.svg' : 'assets/_default/svg/ic_attachment.svg'\"></eo-icon>\n </div>\n\n <yvc-popout [triggerPosition]=\"popoutTriggerPosition\" [disabled]=\"undockDisabled\">\n\n <div class=\"preview-container\" [style.overflow]=\"'hidden'\">\n <iframe [hidden]=\"isUndocked || loading\" #iframe height=\"100%\" width=\"100%\" frameborder=\"0\"></iframe>\n <div class=\"slide\" *ngIf=\"isUndocked\">\n <eo-icon *ngIf=\"mediaType\" [objectType]=\"mediaType\"></eo-icon>\n </div>\n </div>\n </yvc-popout>\n</div>\n\n<div [hidden]=\"open\" class=\"empty-container\">\n <eo-icon class=\"nofile\" [iconSrc]=\"'assets/_default/svg/ic_no-file.svg'\"></eo-icon>\n</div>\n", styles: [":host>div{height:100%}:host ::ng-deep .popoutWrapper{height:100%}:host ::ng-deep .popoutWrapper button.trigger{z-index:100}:host .empty-container{display:flex;justify-content:center;align-items:center;height:100%}:host .empty-container .nofile{width:128px;height:128px;opacity:.09}:host .preview-container{position:absolute;inset:0;overflow:hidden}:host .preview-container .slide{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;height:100%;align-items:center;justify-content:center}:host .preview-container .slide .large-content{position:absolute;top:0;cursor:pointer;display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;justify-content:center;width:100%;padding:var(--app-pane-padding);color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.5)}:host .preview-container .slide .large-content.not-supported,:host .preview-container .slide .large-content:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .preview-container .slide .large-content.not-supported{cursor:inherit}:host .preview-container .slide img{padding:var(--app-pane-padding);width:100%}:host .preview-container .slide eo-icon{width:128px;height:128px;opacity:.2}:host .attachments{position:absolute;z-index:5;color:var(--color-white);background-color:rgba(var(--color-primary-rgb),.6);right:calc(var(--app-pane-padding) / 2);bottom:calc(var(--app-pane-padding) * 3);display:flex;flex-flow:row;align-items:flex-end;border-radius:2px;max-width:calc(100% - 16px)}:host .attachments:hover{background-color:rgba(var(--color-primary-rgb),.9)}:host .attachments eo-icon{flex:0 0 auto;margin:calc(var(--app-pane-padding) / 2)}:host .attachments .attachments-list{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;overflow:auto;max-height:150px;padding:calc(var(--app-pane-padding) / 2);flex-flow:wrap}:host .attachments .attachments-list .attachment{border-radius:4px;background-color:rgba(var(--color-white-rgb),.1);padding:calc(var(--app-pane-padding) / 4);margin:calc(var(--app-pane-padding) / 8);cursor:pointer;border:1px solid rgba(var(--color-white-rgb),0);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;display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host .attachments .attachments-list .attachment:hover{border-color:rgba(var(--color-white-rgb),.5)}:host .attachments .attachments-list .attachment.current{background-color:var(--color-accent)}:host .attachments .attachments-list .attachment.main{background-color:var(--color-primary);order:100;flex:1 1 100%}:host .attachments .attachments-list .attachment:not(.main){font-style:italic}:host .attachments.notmain{background-color:var(--color-accent)}:host .attachments.active{background-color:rgba(var(--color-primary-rgb),.9);align-items:center;bottom:calc(var(--app-pane-padding) / 2)}\n"] }]
|
|
257
258
|
}], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i1.DmsService }, { type: i0.Renderer2 }, { type: i1.SystemService }, { type: i1.Config }, { type: i2.PluginsService }]; }, propDecorators: { undockDisabled: [{
|
|
258
259
|
type: Input
|
|
259
260
|
}], enableCloseBtn: [{
|
|
@@ -279,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
279
280
|
}], dmsObject: [{
|
|
280
281
|
type: Input
|
|
281
282
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBd0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVTlHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUEwQmxFLE1BQU0sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBeUR0RCxJQUNJLGNBQWMsQ0FBQyxXQUFXO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ0ksYUFBYSxDQUFDLFVBQVU7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUNJLFVBQVUsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNJLFdBQVcsQ0FBQyxJQUFpQjtRQUMvQixJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7U0FDMUM7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELElBQ0ksU0FBUyxDQUFDLElBQWU7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUUxQyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQiw4QkFBOEI7WUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN6RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFNUMsSUFBSSxDQUFDLFdBQVcsR0FBRztnQkFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO2dCQUNwSCxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7Z0JBQ25ILFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLGFBQWEsRUFBRSxJQUFJLENBQUMsUUFBUTthQUM3QixDQUFDO1lBRUYsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUM3RyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDbEgsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDakc7U0FFRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsWUFBbUIsU0FBMkIsRUFDcEMsR0FBZSxFQUNmLFFBQW1CLEVBQ25CLE1BQXFCLEVBQ3JCLE1BQWMsRUFDZCxjQUE4QjtRQUN0QyxLQUFLLEVBQUUsQ0FBQztRQU5TLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ3BDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQTFIaEMsZUFBVSxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTztRQVU5QyxnQkFBVyxHQUEwQixFQUFFLENBQUM7UUFLeEMsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFFekIsMEJBQXFCLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFBO1FBQzFELG1CQUFjLEdBQUc7WUFDZjtnQkFDRSxVQUFVLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQztnQkFDek0sUUFBUSxFQUFFLHNIQUFzSDthQUNqSTtZQUNEO2dCQUNFLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQztnQkFDN0gsUUFBUSxFQUFFLHFIQUFxSDthQUNoSTtZQUNEO2dCQUNFLFVBQVUsRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQztnQkFDL0csUUFBUSxFQUFFLG1IQUFtSDthQUM5SDtZQUNEO2dCQUNFLFVBQVUsRUFBRSxDQUFDLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDO2dCQUM1RCxRQUFRLEVBQUUsb0hBQW9IO2FBQy9IO1lBQ0QsRUFBQyxRQUFRLEVBQUUsZ0NBQWdDLEVBQUM7WUFDNUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLHFIQUFxSCxFQUFDO1NBQ2xLLENBQUM7UUFLTyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUNoQywwR0FBMEc7UUFDMUcsMEZBQTBGO1FBQ2pGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUE2RTFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ2xFLE1BQU0sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsMkJBQTJCLEVBQUU7Z0JBQzFILElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRztnQkFDdkIsR0FBRztnQkFDSCxHQUFHO2dCQUNILFVBQVU7YUFDWCxDQUFDLENBQUM7WUFDSCxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFnQjtRQUMvQixNQUFNLFVBQVUsR0FBRyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDO1FBQzNHLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM5QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFpQjtRQUN6QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1FBQ3hGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFlLEVBQUUsRUFBRTtZQUN4RCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUM5SCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDeEosT0FBTyxPQUFPLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRztZQUNqQixJQUFJO1lBQ0osSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUc7WUFDaEMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU07WUFDdEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLElBQUksYUFBYTtZQUN2QyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUk7WUFDbEIsYUFBYTtZQUNiLFFBQVE7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULGFBQWE7WUFDYixVQUFVLEVBQUUsRUFBRTtTQUNmLENBQUM7UUFDRixVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQztRQUVuSyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNsRSxJQUFJLE1BQU07WUFBRSxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBRTFKLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxVQUFVLENBQUMsTUFBYyxFQUFFLFVBQWU7UUFDaEQsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNO2FBQ25DLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDO2FBQzNDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3ZELE9BQU8sQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzdELE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDekUsT0FBTyxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDL0QsT0FBTyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDekQsT0FBTyxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVyxFQUFFLEtBQWU7UUFDdkMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1lBQ2hELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0UsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLENBQUM7U0FDekU7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0UsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEdBQVE7UUFDbkMsZ0NBQWdDO1FBQ2hDLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25ELElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO1lBQ3pELEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xFLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDL0UsR0FBRyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNqRixvQ0FBb0M7WUFDcEMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDM0c7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsR0FBUTtRQUMvQixJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3BELEdBQUcsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUNwRSw0Q0FBNEM7WUFDNUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDakQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFpQjtRQUNoRCxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7aUJBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7aUJBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7WUFDTCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxNQUFXO1FBQ3hCLDJCQUEyQjtRQUMzQixNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsYUFBYSxJQUFJLE1BQU0sQ0FBQztRQUM1QyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRTtZQUN0QixHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLG1CQUFtQixHQUFHLENBQUMsVUFBZSxFQUFFLEVBQUU7Z0JBQzNELE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO2dCQUNsSixPQUFPLEVBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLElBQUksRUFBQyxDQUFDO1lBQ3JELENBQUMsQ0FBQztTQUNIO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxXQUFXO0lBQ1gsQ0FBQzs7QUE3Uk0sMkJBQVksR0FBRyxxSEFBcUgsQ0FBQztBQUNySSx5QkFBVSxHQUFHLGtPQUFrTyxDQUFDOzJHQUg1TyxjQUFjOytGQUFkLGNBQWMsbVhBRmQsQ0FBQyxxQkFBcUIsQ0FBQyxpS0N6Q3BDLHdnREE4QkE7MkZEYWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxVQUFVLGFBR1QsQ0FBQyxxQkFBcUIsQ0FBQztzT0FpRHpCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNxQixJQUFJO3NCQUE5QixXQUFXO3VCQUFDLFlBQVk7Z0JBRVksTUFBTTtzQkFBMUMsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUcvQixjQUFjO3NCQURqQixLQUFLO3VCQUFDLGFBQWE7Z0JBT2hCLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsWUFBWTtnQkFNZixVQUFVO3NCQURiLEtBQUs7Z0JBV0YsV0FBVztzQkFEZCxLQUFLO2dCQVlGLFNBQVM7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maWcsXG4gIERtc09iamVjdCxcbiAgRG1zT2JqZWN0QXR0YWNobWVudCxcbiAgRG1zU2VydmljZSxcbiAgT2JqZWN0VHlwZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7IFBvcG91dFRyaWdnZXJQb3NpdGlvbiB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9wb3BvdXQnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGlwZXMvZmlsZXNpemUucGlwZSc7XG5pbXBvcnQgeyBVbnN1YnNjcmliZU9uRGVzdHJveSB9IGZyb20gJy4uL3V0aWwvdW5zdWJzY3JpYmUvdW5zdWJzY3JpYmUuY29tcG9uZW50JztcbmltcG9ydCB7IFBsdWdpbnNTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9hcGkvcGx1Z2lucy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnRQcmV2aWV3U2VydmljZSB9IGZyb20gJy4vY29udGVudC1wcmV2aWV3LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdlckNvbmZpZyB7XG4gIG1pbWVUeXBlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgdmlld2VyOiBzdHJpbmc7XG4gIGVycm9yPzogYm9vbGVhbjtcbiAgdHlwZT86ICdjb21wYXJlJyB8ICdleHRlbmQnIHwgJ2Vycm9yJyB8ICdkZWZhdWx0Jztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlld0ZpbGUge1xuICB1cmk6IHN0cmluZztcbiAgdXJpUGRmOiBzdHJpbmc7XG4gIG1pbWV0eXBlOiBzdHJpbmc7XG4gIG1pbWVncm91cDogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmc7XG4gIG1lZGlhVHlwZU5hbWU/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW1lZGlhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ29udGVudFByZXZpZXdTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYUNvbXBvbmVudCBleHRlbmRzIFVuc3Vic2NyaWJlT25EZXN0cm95IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBzdGF0aWMgVklERU9fVklFV0VSID0gJ3ZpZXdlci92aWV3L2FwaS92aWRlby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX0nO1xuICBzdGF0aWMgUERGX1ZJRVdFUiA9ICd2aWV3ZXIvdmlldy9hcGkvcGRmL3dlYi92aWV3ZXIuaHRtbD9maWxlPSZwYXRoPSR7cGF0aH0mcGF0aFBkZj0ke3BhdGhQZGZ9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX0mY3NzPSUyM3Rvb2xiYXJWaWV3ZXJSaWdodCUyMCUyM3ByaW50JTdCZGlzcGxheSUzQWJsb2NrIWltcG9ydGFudCUzQiU3RCc7XG5cbiAgcHJpdmF0ZSBTSVpFX0xJTUlUID0gMTAyNCAqIDEwMjQgKiAxMDsgLy8gMTBNQlxuICBwcml2YXRlIHBkZmpzOiBhbnk7XG4gIGxhdGVzdFVyaTogc3RyaW5nO1xuICBzbGlkZVVyaTogc3RyaW5nO1xuICB2aWV3ZXI6IGFueTtcbiAgZG1zT2JqZWN0VGl0bGU6IHN0cmluZztcbiAgcHJpdmF0ZSBfcHJldmlld1VyaTogc3RyaW5nO1xuICBwcml2YXRlIF9kbXNPYmplY3Q6IERtc09iamVjdDtcbiAgZmlsZVNpemVQaXBlOiBGaWxlU2l6ZVBpcGU7XG4gIGN1cnJlbnRJbmRleDogbnVtYmVyO1xuICBhdHRhY2htZW50czogRG1zT2JqZWN0QXR0YWNobWVudFtdID0gW107XG4gIGF0dGFjaG1lbnRzTG9hZGluZzogU3Vic2NyaXB0aW9uO1xuICBhdHRhY2htZW50c1Nob3duOiBib29sZWFuO1xuICBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gIG1lZGlhVHlwZTogT2JqZWN0VHlwZTtcbiAgY3VzdG9tQ29uZmlnOiBhbnlbXSA9IFtdO1xuXG4gIHBvcG91dFRyaWdnZXJQb3NpdGlvbiA9IFBvcG91dFRyaWdnZXJQb3NpdGlvbi5CT1RUT01fUklHSFRcbiAgZGVmYXVsdFZpZXdlcnMgPSBbXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJhcHBsaWNhdGlvbi9qc29uXCIsIFwidGV4dC9qc29uXCIsIFwidGV4dC9wbGFpblwiLCBcInRleHQveG1sXCIsIFwidGV4dC9qYXZhXCIsIFwidGV4dC9qYXZhc2NyaXB0XCIsIFwiYXBwbGljYXRpb24vamF2YXNjcmlwdFwiLCBcInRleHQvaHRtbFwiLCBcInRleHQvbWFya2Rvd25cIiwgXCJ0ZXh0L3gtd2ViLW1hcmtkb3duXCIsIFwidGV4dC94LW1hcmtkb3duXCJdLFxuICAgICAgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvbW9uYWNvLz9wYXRoPSR7cGF0aH0mbWltZVR5cGU9JHttaW1lVHlwZX0mZmlsZUV4dGVuc2lvbj0ke2ZpbGVFeHRlbnNpb259Jmxhbmc9JHtsYW5nfSZ0aGVtZT0ke3RoZW1lfVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm1pbWVUeXBlXCI6IFtcImF1ZGlvL21wM1wiLCBcImF1ZGlvL3dlYm1cIiwgXCJhdWRpby9vZ2dcIiwgXCJhdWRpby9tcGVnXCIsIFwidmlkZW8vbXA0XCIsIFwidmlkZW8vd2VibVwiLCBcInZpZGVvL29nZ1wiLCBcImFwcGxpY2F0aW9uL29nZ1wiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL3ZpZGVvLz9wYXRoPSR7cGF0aH0mbWltZVR5cGU9JHttaW1lVHlwZX0mZmlsZUV4dGVuc2lvbj0ke2ZpbGVFeHRlbnNpb259Jmxhbmc9JHtsYW5nfSZ0aGVtZT0ke3RoZW1lfVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm1pbWVUeXBlXCI6IFtcImltYWdlL3RpZmZcIiwgXCJpbWFnZS9qcGVnXCIsIFwiaW1hZ2UvcG5nXCIsIFwiaW1hZ2UvYXBuZ1wiLCBcImltYWdlL2dpZlwiLCBcImltYWdlL3N2Zyt4bWxcIiwgXCJpbWFnZS93ZWJwXCJdLFxuICAgICAgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvaW1nLz9wYXRoPSR7cGF0aH0mbWltZVR5cGU9JHttaW1lVHlwZX0mZmlsZUV4dGVuc2lvbj0ke2ZpbGVFeHRlbnNpb259Jmxhbmc9JHtsYW5nfSZ0aGVtZT0ke3RoZW1lfVwiXG4gICAgfSxcbiAgICB7XG4gICAgICBcIm1pbWVUeXBlXCI6IFtcIm1lc3NhZ2UvcmZjODIyXCIsIFwiYXBwbGljYXRpb24vdm5kLm1zLW91dGxvb2tcIl0sXG4gICAgICBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS9tYWlsLz9wYXRoPSR7cGF0aH0mbWltZVR5cGU9JHttaW1lVHlwZX0mZmlsZUV4dGVuc2lvbj0ke2ZpbGVFeHRlbnNpb259Jmxhbmc9JHtsYW5nfSZ0aGVtZT0ke3RoZW1lfVwiXG4gICAgfSxcbiAgICB7XCJ2aWV3ZXJcIjogXCIoKSA9PiBwYXJhbWV0ZXJzLmRlZmF1bHRWaWV3ZXJcIn0sXG4gICAge1wiZXJyb3JcIjogdHJ1ZSwgXCJ0eXBlXCI6IFwiZXJyb3JcIiwgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvZXJyb3IvP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9XCJ9XG4gIF07XG5cbiAgaXNVbmRvY2tlZDogYm9vbGVhbjtcbiAgbG9hZGluZzogYm9vbGVhbjtcblxuICBASW5wdXQoKSB1bmRvY2tEaXNhYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGVuYWJsZUNsb3NlQnRuID0gZmFsc2U7XG4gIC8vIGJ5IGRlZmF1bHQsIHRoZSB2aWV3ZXIgaWdub3JlcyB0aGUgdmVyc2lvbiBvZiB0aGUgZG1zIG9iamVjdC4gVGhpcyB3aWxsIGFsd2F5cyBzaG93IHRoZSBsYXRlc3QgdmVyc2lvbi5cbiAgLy8gV2UgbmVlZCB0aGlzIHRvIGJlIGFibGUgdG8gcmVmcmVzaCB0aGUgdmlld2VyIGJlY2F1c2Ugb3RoZXJ3aXNlIHBkZmpzIHdvcmtlciB3aWxsIGZhaWwuXG4gIEBJbnB1dCgpIHVzZVZlcnNpb24gPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5vcGVuJykgb3BlbjtcblxuICBAVmlld0NoaWxkKCdpZnJhbWUnLCB7c3RhdGljOiB0cnVlfSkgaWZyYW1lO1xuXG4gIEBJbnB1dCgnYXR0YWNobWVudHMnKVxuICBzZXQgc2V0QXR0YWNobWVudHMoYXR0YWNobWVudHMpIHtcbiAgICB0aGlzLmF0dGFjaG1lbnRzID0gYXR0YWNobWVudHM7XG4gICAgdGhpcy5hdHRhY2htZW50c1Nob3duID0gZmFsc2U7XG4gIH1cblxuICBASW5wdXQoJ3NlYXJjaFRlcm0nKVxuICBzZXQgc2V0U2VhcmNoVGVybShzZWFyY2hUZXJtKSB7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSB8fCAnJztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwcmV2aWV3VXJpKHVyaTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcHJldmlld1VyaSA9IHVyaTtcbiAgICB0aGlzLnRvZ2dsZVZpZXdlcigpO1xuICB9XG5cbiAgZ2V0IHByZXZpZXdVcmkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpZXdVcmk7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgcHJldmlld0ZpbGUoZmlsZTogUHJldmlld0ZpbGUpIHtcbiAgICBpZiAoZmlsZSkge1xuICAgICAgdGhpcy52aWV3ZXIgPSB0aGlzLmdldFZpZXdlcihmaWxlKTtcbiAgICAgIHRoaXMubWVkaWFUeXBlID0gZmlsZS5tZWRpYVR5cGVOYW1lICYmIHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUoZmlsZS5tZWRpYVR5cGVOYW1lKTtcbiAgICAgIHRoaXMucHJldmlld1VyaSA9IHRoaXMudmlld2VyLnByZXZpZXdVcmk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlld1VyaSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5fZG1zT2JqZWN0ID0gaXRlbTtcbiAgICB0aGlzLmRtc09iamVjdFRpdGxlID0gaXRlbS50aXRsZSB8fCAnLi4uJztcblxuICAgIHRoaXMuc2V0QXR0YWNobWVudHMgPSBbXTtcbiAgICBpZiAodGhpcy5hdHRhY2htZW50c0xvYWRpbmcpIHtcbiAgICAgIC8vIGNhbmNlbCBhbnkgcGVuZGluZyByZXF1ZXN0c1xuICAgICAgdGhpcy5hdHRhY2htZW50c0xvYWRpbmcudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKGl0ZW0uY29udGVudCAmJiBpdGVtLmNvbnRlbnQuY29udGVudHMgJiYgaXRlbS5jb250ZW50LmNvbnRlbnRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgZmlsZSA9IGl0ZW0uY29udGVudC5jb250ZW50c1swXSB8fCB7fTtcblxuICAgICAgdGhpcy5wcmV2aWV3RmlsZSA9IHtcbiAgICAgICAgdXJpOiB0aGlzLmRtcy5nZXRQcmV2aWV3KGl0ZW0uY29udGVudC5pZCwgaXRlbS5jb250ZW50LnR5cGUsIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGwsIHVuZGVmaW5lZCwgdHJ1ZSksXG4gICAgICAgIHVyaVBkZjogdGhpcy5kbXMuZ2V0UHJldmlldyhpdGVtLmNvbnRlbnQuaWQsIGl0ZW0uY29udGVudC50eXBlLCB0aGlzLnVzZVZlcnNpb24gPyBpdGVtLnZlcnNpb24gOiBudWxsLCAnUERGJywgdHJ1ZSksXG4gICAgICAgIG1pbWV0eXBlOiBmaWxlLm1pbWV0eXBlLFxuICAgICAgICBtaW1lZ3JvdXA6IGZpbGUubWltZWdyb3VwLFxuICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgIHBhdGg6IGZpbGUucGF0aCxcbiAgICAgICAgbWVkaWFUeXBlTmFtZTogaXRlbS50eXBlTmFtZVxuICAgICAgfTtcblxuICAgICAgaWYgKCEhZmlsZS5taW1lZ3JvdXA/Lm1hdGNoKC9ebWFpbHxvY3RldC1zdHJlYW0vKSAmJiB0aGlzLnZpZXdlci52aWV3ZXIuc3RhcnRzV2l0aChNZWRpYUNvbXBvbmVudC5QREZfVklFV0VSKSkge1xuICAgICAgICB0aGlzLnNsaWRlVXJpID0gdGhpcy5kbXMuZ2V0U2xpZGUoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgMjU2KTtcbiAgICAgICAgdGhpcy5hdHRhY2htZW50c0xvYWRpbmcgPSB0aGlzLmRtcy5nZXRBdHRhY2htZW50cyhpdGVtKS5zdWJzY3JpYmUoYSA9PiB0aGlzLnNldEF0dGFjaG1lbnRzID0gYSk7XG4gICAgICB9XG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gJyc7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRtczogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICBwcml2YXRlIHBsdWdpbnNTZXJ2aWNlOiBQbHVnaW5zU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5TSVpFX0xJTUlUID0gdGhpcy5jb25maWcuZ2V0UmF3KCdwcmV2aWV3LmZpbGVTaXplTGltaXQnKSB8fCB0aGlzLlNJWkVfTElNSVQ7XG4gICAgdGhpcy5jdXN0b21Db25maWcgPSAodGhpcy5jb25maWcuZ2V0UmF3KCdwcmV2aWV3LnZpZXdlcnMnKSB8fCBbXSkuY29uY2F0KHRoaXMuZGVmYXVsdFZpZXdlcnMpO1xuXG4gICAgdGhpcy5wbHVnaW5zU2VydmljZS5hcGkuY29udGVudC5jYXRjaEVycm9yKCkuc3Vic2NyaWJlKChldnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3Qge2Vyciwgd2luLCBwYXJhbWV0ZXJzfSA9IGV2dC5kYXRhO1xuICAgICAgY29uc3QgdXJpID0gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHRoaXMuY3VzdG9tQ29uZmlnPy5maW5kKCh2KSA9PiB2LmVycm9yKT8udmlld2VyLCAnYXBpLCBlcnIsIHdpbiwgcGFyYW1ldGVycycsIFtcbiAgICAgICAgdGhpcy5wbHVnaW5zU2VydmljZS5hcGksXG4gICAgICAgIGVycixcbiAgICAgICAgd2luLFxuICAgICAgICBwYXJhbWV0ZXJzXG4gICAgICBdKTtcbiAgICAgIHVyaSAmJiB3aW4gJiYgKHdpbi5sb2NhdGlvbi5ocmVmID0gdGhpcy5yZXNvbHZlVXJpKHVyaSwgcGFyYW1ldGVycykpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0QXR0YWNobWVudChhdHRhY2htZW50PzogYW55KSB7XG4gICAgY29uc3QgcHJldmlld1VyaSA9IGF0dGFjaG1lbnQgJiYgdGhpcy5nZXRWaWV3ZXIoe3VyaVBkZjogYXR0YWNobWVudC5wcmV2aWV3VXJpfSBhcyBQcmV2aWV3RmlsZSkucHJldmlld1VyaTtcbiAgICB0aGlzLmxvYWREb2N1bWVudChwcmV2aWV3VXJpIHx8IHRoaXMucHJldmlld1VyaSwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVmlld2VyKCkge1xuICAgIHRoaXMub3BlbiA9ICEhdGhpcy5wcmV2aWV3VXJpO1xuICAgIGlmICghIXRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5sb2FkRG9jdW1lbnQodGhpcy5wcmV2aWV3VXJpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmxvYWREb2N1bWVudCh0aGlzLnByZXZpZXdVcmksIHRydWUpO1xuICB9XG5cbiAgZ2V0Vmlld2VyKGZpbGU6IFByZXZpZXdGaWxlKTogYW55IHtcbiAgICBjb25zdCBpc1ZpZGVvID0gISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15hdWRpb3xedmlkZW8vKTtcbiAgICBjb25zdCBkZWZhdWx0Vmlld2VyID0gaXNWaWRlbyA/IE1lZGlhQ29tcG9uZW50LlZJREVPX1ZJRVdFUiA6IE1lZGlhQ29tcG9uZW50LlBERl9WSUVXRVI7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGUuZmlsZUV4dGVuc2lvbiB8fCAoZmlsZS5wYXRoPy5pbmNsdWRlcygnLicpID8gZmlsZS5wYXRoLnNwbGl0KCcuJykucG9wKCkgOiAnJyk7XG4gICAgY29uc3QgbWltZVR5cGUgPSBmaWxlLm1pbWV0eXBlO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY3VzdG9tQ29uZmlnLmZpbmQoKGM6IFZpZXdlckNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hNVCA9ICFjLm1pbWVUeXBlIHx8ICh0eXBlb2YgYy5taW1lVHlwZSA9PT0gJ3N0cmluZycgPyBbYy5taW1lVHlwZV0gOiBjLm1pbWVUeXBlKS5pbmNsdWRlcyhtaW1lVHlwZT8udG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBtYXRjaEZFID0gIWMuZmlsZUV4dGVuc2lvbiB8fCAodHlwZW9mIGMuZmlsZUV4dGVuc2lvbiA9PT0gJ3N0cmluZycgPyBbYy5maWxlRXh0ZW5zaW9uXSA6IGMuZmlsZUV4dGVuc2lvbikuaW5jbHVkZXMoKGZpbGVFeHRlbnNpb24pLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgcmV0dXJuIG1hdGNoTVQgJiYgbWF0Y2hGRSAmJiAoIWMudHlwZSB8fCBjLnR5cGUgPT09ICdkZWZhdWx0Jyk7XG4gICAgfSk7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgIGZpbGUsXG4gICAgICBwYXRoOiBsb2NhdGlvbi5vcmlnaW4gKyBmaWxlLnVyaSxcbiAgICAgIHBhdGhQZGY6IGxvY2F0aW9uLm9yaWdpbiArIGZpbGUudXJpUGRmLFxuICAgICAgdmlld2VyOiBjb25maWc/LnZpZXdlciB8fCBkZWZhdWx0Vmlld2VyLFxuICAgICAgbG9hZDogY29uZmlnPy5sb2FkLFxuICAgICAgZmlsZUV4dGVuc2lvbixcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgdGhlbWU6ICcnLFxuICAgICAgZGVmYXVsdFZpZXdlcixcbiAgICAgIHByZXZpZXdVcmk6ICcnXG4gICAgfTtcbiAgICBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihwYXJhbWV0ZXJzLnZpZXdlciwgJ2NvbXBvbmVudCwgZG1zT2JqZWN0LCBwYXJhbWV0ZXJzJywgW3RoaXMsIHRoaXMuX2Rtc09iamVjdCwgcGFyYW1ldGVyc10pIHx8IGRlZmF1bHRWaWV3ZXI7XG5cbiAgICBjb25zdCBleHRlbmQgPSB0aGlzLmN1c3RvbUNvbmZpZy5maW5kKChjKSA9PiBjLnR5cGUgPT09ICdleHRlbmQnKTtcbiAgICBpZiAoZXh0ZW5kKSBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihleHRlbmQudmlld2VyLCAnY29tcG9uZW50LCBkbXNPYmplY3QsIHBhcmFtZXRlcnMnLCBbdGhpcywgdGhpcy5fZG1zT2JqZWN0LCBwYXJhbWV0ZXJzXSk7XG5cbiAgICBwYXJhbWV0ZXJzLnByZXZpZXdVcmkgPSB0aGlzLnJlc29sdmVVcmkocGFyYW1ldGVycy52aWV3ZXIsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVXJpKHZpZXdlcjogc3RyaW5nLCBwYXJhbWV0ZXJzOiBhbnkpIHtcbiAgICBsZXQgb3JpZ2luID0gd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvJztcbiAgICBpZiAoIXZpZXdlci5zdGFydHNXaXRoKCd2aWV3ZXInKSkge1xuICAgICAgb3JpZ2luID0gZG9jdW1lbnQuYmFzZVVSSTtcbiAgICB9XG4gICAgcmV0dXJuICh2aWV3ZXIgPyBvcmlnaW4gOiAnJykgKyB2aWV3ZXJcbiAgICAgIC5yZXBsYWNlKCcke29yaWdpbmFsUGF0aH0nLCBwYXJhbWV0ZXJzLnBhdGgpXG4gICAgICAucmVwbGFjZSgnJHtwYXRofScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnBhdGgpKVxuICAgICAgLnJlcGxhY2UoJyR7cGF0aFBkZn0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy5wYXRoUGRmKSlcbiAgICAgIC5yZXBsYWNlKCcke2ZpbGVFeHRlbnNpb259JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMuZmlsZUV4dGVuc2lvbikpXG4gICAgICAucmVwbGFjZSgnJHttaW1lVHlwZX0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy5taW1lVHlwZSkpXG4gICAgICAucmVwbGFjZSgnJHt0aGVtZX0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy50aGVtZSkpXG4gICAgICAucmVwbGFjZSgnJHtsYW5nfScsIENvbnRlbnRQcmV2aWV3U2VydmljZS5tYXBMYW5nKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nKSk7XG4gIH1cblxuICBsb2FkRG9jdW1lbnQodXJpOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbikge1xuICAgIGlmICghZm9yY2UgJiYgKCF1cmkgfHwgKHVyaSA9PT0gdGhpcy5sYXRlc3RVcmkpKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLmxhdGVzdFVyaSA9IHVyaSB8fCAnJztcblxuICAgIGlmICh0aGlzLnByZXZpZXdVcmkpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsICdzcmMnLCB0aGlzLmxhdGVzdFVyaSk7XG4gICAgICBjb25zdCBvbmxvYWQgPSAoKSA9PiB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24odGhpcy52aWV3ZXI/LmxvYWQsICdpZnJhbWUsIGNvbXBvbmVudCcsIFt0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCB0aGlzXSk7XG4gICAgICB0aGlzLmlmcmFtZUluaXQodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgdGhpcy52aWV3ZXI/LmxvYWQgJiYgb25sb2FkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgJ3NyYycsIHRoaXMubGF0ZXN0VXJpKTtcbiAgICAgIGNvbnN0IG9ubG9hZCA9ICgpID0+IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbih0aGlzLnZpZXdlcj8ubG9hZCwgJ2lmcmFtZSwgY29tcG9uZW50JywgW3RoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXNdKTtcbiAgICAgIHRoaXMuaWZyYW1lSW5pdCh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCB0aGlzLnZpZXdlcj8ubG9hZCAmJiBvbmxvYWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gc2VhcmNoIGluc2lkZSBQREYuSlMgYmFzZWQgb24gc2VhcmNoIHRlcm1cbiAgICogQHBhcmFtIHRlcm0gc2VhcmNoIHRlcm1cbiAgICogQHBhcmFtIHdpbiBpZnJhbWUgd2luZG93XG4gICAqL1xuICBwcml2YXRlIHNlYXJjaFBERih0ZXJtID0gJycsIHdpbjogYW55KSB7XG4gICAgLy8gcmVtb3ZlIGFsbCBzcGVjaWFsIGNoYXJhY3RlcnNcbiAgICB0ZXJtID0gKHRlcm0gfHwgJycpLnJlcGxhY2UoL1tcXFwifFxcKl0vZywgJycpLnRyaW0oKTtcbiAgICBpZiAodGVybSAmJiB3aW4/LlBERlZpZXdlckFwcGxpY2F0aW9uPy5hcHBDb25maWc/LmZpbmRCYXIpIHtcbiAgICAgIHdpbi5QREZWaWV3ZXJBcHBsaWNhdGlvbi5hcHBDb25maWcuZmluZEJhci5maW5kRmllbGQudmFsdWUgPSB0ZXJtO1xuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmFwcENvbmZpZy5maW5kQmFyLmhpZ2hsaWdodEFsbENoZWNrYm94LmNoZWNrZWQgPSB0cnVlO1xuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmFwcENvbmZpZy5maW5kQmFyLmNhc2VTZW5zaXRpdmVDaGVja2JveC5jaGVja2VkID0gZmFsc2U7XG4gICAgICAvLyB0cmlnZ2VyIGZpbmQgZXZlbnQgb24gcGRmLmpzIGxvYWRcbiAgICAgIHdpbi5QREZWaWV3ZXJBcHBsaWNhdGlvbi5pbml0aWFsaXplZFByb21pc2U/LnRoZW4oKCkgPT4gd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmZpbmRCYXIuZGlzcGF0Y2hFdmVudCgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnREcm9wRXZlbnQod2luOiBhbnkpIHtcbiAgICBpZiAod2luPy5sb2NhdGlvbj8ub3JpZ2luID09PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luKSB7XG4gICAgICB3aW4/LmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgKGUpID0+IGUuc3RvcFByb3BhZ2F0aW9uKCkpO1xuICAgICAgLy8gZGlzcGFjaCBkcmFnICYgZHJvcCBldmVudHMgdG8gbWFpbiB3aW5kb3dcbiAgICAgIHdpbj8uZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdlbnRlcicsIChlKSA9PiB7XG4gICAgICAgIHdpbmRvdy5kb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBEcmFnRXZlbnQoJ2RyYWdlbnRlcicsIGUpKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB3aW5kb3cuZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRHJhZ0V2ZW50KCdkcmFnbGVhdmUnLCBlKSksIDEwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlmcmFtZUluaXQoaWZyYW1lID0gdGhpcy5pZnJhbWUsIG9ubG9hZD86IEZ1bmN0aW9uKSB7XG4gICAgaWYgKGlmcmFtZSkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGlmcmFtZS5faW5pdCB8fCBmcm9tRXZlbnQoaWZyYW1lLCAnbG9hZCcpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB3aW4gPSB0aGlzLnNldEFwaShpZnJhbWUpO1xuICAgICAgICAgIG9ubG9hZCAmJiBvbmxvYWQoKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUERGKHRoaXMuc2VhcmNoVGVybSwgd2luKTtcbiAgICAgICAgICAgIHRoaXMucHJldmVudERyb3BFdmVudCh3aW4pO1xuICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgIH0pO1xuICAgICAgaWZyYW1lLl9pbml0ID0gISF0aGlzLnNldEFwaShpZnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QXBpKGlmcmFtZTogYW55KSB7XG4gICAgLy8gc2V0IGFwaSB0byBpZnJhbWUgd2luZG93XG4gICAgY29uc3Qgd2luID0gaWZyYW1lPy5jb250ZW50V2luZG93IHx8IGlmcmFtZTtcbiAgICB3aW5bJ2FwaSddID0gd2luZG93WydhcGknXTtcbiAgICBpZih3aW5bJ2FwaSddPy5jb250ZW50KSB7XG4gICAgICB3aW5bJ2FwaSddLmNvbnRlbnQucmVzb2x2ZVZpZXdlclBhcmFtcyA9IChwYXJhbWV0ZXJzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdXJpID0gcGFyYW1ldGVycy5wYXRoLnJlcGxhY2UobG9jYXRpb24ub3JpZ2luLCAnJyk7XG4gICAgICAgIGNvbnN0IHZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKHt1cmksIG1pbWV0eXBlOiBwYXJhbWV0ZXJzLm1pbWVUeXBlLCBmaWxlRXh0ZW5zaW9uOiBwYXJhbWV0ZXJzLmZpbGVFeHRlbnNpb24sIHVyaVBkZjogdXJpLCBtaW1lZ3JvdXA6ICcnLCBzaXplOiAxfSk7XG4gICAgICAgIHJldHVybiB7dXJpOiB2aWV3ZXIucHJldmlld1VyaSB8fCBwYXJhbWV0ZXJzLnBhdGh9O1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICB9XG5cbn1cbiIsIjxkaXYgW2hpZGRlbl09XCIhb3BlblwiPlxuICA8IS0tIGF0dGFjaG1lbnRzIG92ZXJsYXkgLS0+XG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50c1wiICpuZ0lmPVwiYXR0YWNobWVudHM/Lmxlbmd0aFwiXG4gICAgW25nQ2xhc3NdPVwie25vdG1haW46IGxhdGVzdFVyaSAhPT0gcHJldmlld1VyaSAmJiAhYXR0YWNobWVudHNTaG93biwgYWN0aXZlOiBhdHRhY2htZW50c1Nob3dufVwiXG4gICAgKGVvT3V0c2lkZUNsaWNrKT1cImF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50cy1saXN0XCIgKm5nSWY9XCJhdHRhY2htZW50c1Nob3duXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudCBtYWluXCIgKGNsaWNrKT1cInNlbGVjdEF0dGFjaG1lbnQobnVsbClcIiBbbmdDbGFzc109XCJ7Y3VycmVudDogbGF0ZXN0VXJpID09PSBwcmV2aWV3VXJpfVwiPnt7ZG1zT2JqZWN0VGl0bGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRcIiAqbmdGb3I9XCJsZXQgYSBvZiBhdHRhY2htZW50c1wiIChjbGljayk9XCJzZWxlY3RBdHRhY2htZW50KGEpXCIgW25nQ2xhc3NdPVwie2N1cnJlbnQ6IGxhdGVzdFVyaSA9PT0gYS5wcmV2aWV3VXJpfVwiPlxuICAgICAgICB7e2EubmFtZX19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uXCIgW2JhZGdlXT1cImF0dGFjaG1lbnRzPy5sZW5ndGhcIiAoY2xpY2spPVwiYXR0YWNobWVudHNTaG93biA9ICFhdHRhY2htZW50c1Nob3duXCJcbiAgICAgIFtpY29uU3JjXT1cImF0dGFjaG1lbnRzU2hvd24gPyAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnIDogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXR0YWNobWVudC5zdmcnXCI+PC9lby1pY29uPlxuICA8L2Rpdj5cblxuICA8eXZjLXBvcG91dCBbdHJpZ2dlclBvc2l0aW9uXT1cInBvcG91dFRyaWdnZXJQb3NpdGlvblwiIFtkaXNhYmxlZF09XCJ1bmRvY2tEaXNhYmxlZFwiPlxuXG4gICAgPGRpdiBjbGFzcz1cInByZXZpZXctY29udGFpbmVyXCIgW3N0eWxlLm92ZXJmbG93XT1cIidoaWRkZW4nXCI+XG4gICAgICA8aWZyYW1lIFtoaWRkZW5dPVwiaXNVbmRvY2tlZCB8fCBsb2FkaW5nXCIgI2lmcmFtZSBoZWlnaHQ9XCIxMDAlXCIgd2lkdGg9XCIxMDAlXCIgZnJhbWVib3JkZXI9XCIwXCI+PC9pZnJhbWU+XG4gICAgICA8ZGl2IGNsYXNzPVwic2xpZGVcIiAqbmdJZj1cImlzVW5kb2NrZWRcIj5cbiAgICAgICAgPGVvLWljb24gKm5nSWY9XCJtZWRpYVR5cGVcIiBbb2JqZWN0VHlwZV09XCJtZWRpYVR5cGVcIj48L2VvLWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC95dmMtcG9wb3V0PlxuPC9kaXY+XG5cbjxkaXYgW2hpZGRlbl09XCJvcGVuXCIgY2xhc3M9XCJlbXB0eS1jb250YWluZXJcIj5cbiAgPGVvLWljb24gY2xhc3M9XCJub2ZpbGVcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19uby1maWxlLnN2ZydcIj48L2VvLWljb24+XG48L2Rpdj5cbiJdfQ==
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBd0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVTlHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUVqRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUEwQmxFLE1BQU0sT0FBTyxjQUFlLFNBQVEsb0JBQW9CO0lBMER0RCxJQUNJLGNBQWMsQ0FBQyxXQUFXO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ0ksYUFBYSxDQUFDLFVBQVU7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUNJLFVBQVUsQ0FBQyxHQUFXO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FB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cnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29uZmlnLFxuICBEbXNPYmplY3QsXG4gIERtc09iamVjdEF0dGFjaG1lbnQsXG4gIERtc1NlcnZpY2UsXG4gIE9iamVjdFR5cGUsXG4gIFN5c3RlbVNlcnZpY2UsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQgeyBQb3BvdXRUcmlnZ2VyUG9zaXRpb24gfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvcG9wb3V0JztcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZpbGVTaXplUGlwZSB9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BpcGVzL2ZpbGVzaXplLnBpcGUnO1xuaW1wb3J0IHsgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgfSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQbHVnaW5zU2VydmljZSB9IGZyb20gJy4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL3BsdWdpbnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50UHJldmlld1NlcnZpY2UgfSBmcm9tICcuL2NvbnRlbnQtcHJldmlldy5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBWaWV3ZXJDb25maWcge1xuICBtaW1lVHlwZT86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBmaWxlRXh0ZW5zaW9uPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIHZpZXdlcjogc3RyaW5nO1xuICBlcnJvcj86IGJvb2xlYW47XG4gIHR5cGU/OiAnY29tcGFyZScgfCAnZXh0ZW5kJyB8ICdlcnJvcicgfCAnZGVmYXVsdCc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFByZXZpZXdGaWxlIHtcbiAgdXJpOiBzdHJpbmc7XG4gIHVyaVBkZjogc3RyaW5nO1xuICBtaW1ldHlwZTogc3RyaW5nO1xuICBtaW1lZ3JvdXA6IHN0cmluZztcbiAgc2l6ZTogbnVtYmVyO1xuICBwYXRoPzogc3RyaW5nO1xuICBmaWxlRXh0ZW5zaW9uPzogc3RyaW5nO1xuICBtZWRpYVR5cGVOYW1lPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1tZWRpYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lZGlhLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NvbnRlbnRQcmV2aWV3U2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgTWVkaWFDb21wb25lbnQgZXh0ZW5kcyBVbnN1YnNjcmliZU9uRGVzdHJveSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgc3RhdGljIFZJREVPX1ZJRVdFUiA9ICd2aWV3ZXIvdmlldy9hcGkvdmlkZW8vP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JztcbiAgc3RhdGljIFBERl9WSUVXRVIgPSAndmlld2VyL3ZpZXcvYXBpL3BkZi93ZWIvdmlld2VyLmh0bWw/ZmlsZT0mcGF0aD0ke3BhdGh9JnBhdGhQZGY9JHtwYXRoUGRmfSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JmNzcz0lMjN0b29sYmFyVmlld2VyUmlnaHQlMjAlMjNwcmludCU3QmRpc3BsYXklM0FibG9jayFpbXBvcnRhbnQlM0IlN0QnO1xuXG4gIHByaXZhdGUgU0laRV9MSU1JVCA9IDEwMjQgKiAxMDI0ICogMTA7IC8vIDEwTUJcbiAgcHJpdmF0ZSBwZGZqczogYW55O1xuICBsYXRlc3RVcmk6IHN0cmluZztcbiAgc2xpZGVVcmk6IHN0cmluZztcbiAgdmlld2VyOiBhbnk7XG4gIGRtc09iamVjdFRpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgX3ByZXZpZXdVcmk6IHN0cmluZztcbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XG4gIGZpbGVTaXplUGlwZTogRmlsZVNpemVQaXBlO1xuICBjdXJyZW50SW5kZXg6IG51bWJlcjtcbiAgYXR0YWNobWVudHM6IERtc09iamVjdEF0dGFjaG1lbnRbXSA9IFtdO1xuICBhdHRhY2htZW50c0xvYWRpbmc6IFN1YnNjcmlwdGlvbjtcbiAgYXR0YWNobWVudHNTaG93bjogYm9vbGVhbjtcbiAgc2VhcmNoVGVybTogc3RyaW5nO1xuICBtZWRpYVR5cGU6IE9iamVjdFR5cGU7XG4gIGN1c3RvbUNvbmZpZzogYW55W10gPSBbXTtcblxuICBwb3BvdXRUcmlnZ2VyUG9zaXRpb24gPSBQb3BvdXRUcmlnZ2VyUG9zaXRpb24uQk9UVE9NX1JJR0hUXG4gIGRlZmF1bHRWaWV3ZXJzID0gW1xuICAgIHtcbiAgICAgIFwibWltZVR5cGVcIjogW1wiYXBwbGljYXRpb24vanNvblwiLCBcInRleHQvanNvblwiLCBcInRleHQvcGxhaW5cIiwgXCJ0ZXh0L3htbFwiLCBcInRleHQvamF2YVwiLCBcInRleHQvamF2YXNjcmlwdFwiLCBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIiwgXCJ0ZXh0L2h0bWxcIiwgXCJ0ZXh0L21hcmtkb3duXCIsIFwidGV4dC94LXdlYi1tYXJrZG93blwiLCBcInRleHQveC1tYXJrZG93blwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL21vbmFjby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJhdWRpby9tcDNcIiwgXCJhdWRpby93ZWJtXCIsIFwiYXVkaW8vb2dnXCIsIFwiYXVkaW8vbXBlZ1wiLCBcInZpZGVvL21wNFwiLCBcInZpZGVvL3dlYm1cIiwgXCJ2aWRlby9vZ2dcIiwgXCJhcHBsaWNhdGlvbi9vZ2dcIl0sXG4gICAgICBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS92aWRlby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJpbWFnZS90aWZmXCIsIFwiaW1hZ2UvanBlZ1wiLCBcImltYWdlL3BuZ1wiLCBcImltYWdlL2FwbmdcIiwgXCJpbWFnZS9naWZcIiwgXCJpbWFnZS9zdmcreG1sXCIsIFwiaW1hZ2Uvd2VicFwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL2ltZy8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJtZXNzYWdlL3JmYzgyMlwiLCBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCJdLFxuICAgICAgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvbWFpbC8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAgLy8gV2UgbmVlZCBhbm90aGVyIHBhdGhQZGYgZm9yIGVtYWlsIGF0dGFjaG1lbnQgZmlsZXMuIFRoaXMgd2lsbCBvbmx5IGNvbWUgaW4gcGxhY2UgaWYgdGhlIG1pbWV0eXBlIGlzIHBkZiBvciBvbmUgb2YgdGhlIG5vdCBzdXBwb3J0ZWQgb25lcy5cbiAgICB7XCJ2aWV3ZXJcIjogXCIoKSA9PiB7dmFyIGF0dGFjaG1lbnQgPSBwYXJhbWV0ZXJzLnBhdGhQZGYubWF0Y2gobmV3IFJlZ0V4cCgnYXR0YWNobWVudD0oXFxcXFxcXFxkKScpKTsgaWYgKGF0dGFjaG1lbnQpIHtwYXJhbWV0ZXJzLnBhdGhQZGYgPSBsb2NhdGlvbi5vcmlnaW4gKyAnL3Jlc3Qtd3Mvc2VydmljZS9kbXMvJyArIGRtc09iamVjdC5jb250ZW50LmlkICsgJy9hdHRhY2htZW50cy8nICsgYXR0YWNobWVudFsxXX0gZGVidWdnZXI7IHJldHVybiBwYXJhbWV0ZXJzLmRlZmF1bHRWaWV3ZXI7fVwifSxcbiAgICB7XCJlcnJvclwiOiB0cnVlLCBcInR5cGVcIjogXCJlcnJvclwiLCBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS9lcnJvci8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIn1cbiAgXTtcblxuICBpc1VuZG9ja2VkOiBib29sZWFuO1xuICBsb2FkaW5nOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHVuZG9ja0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZW5hYmxlQ2xvc2VCdG4gPSBmYWxzZTtcbiAgLy8gYnkgZGVmYXVsdCwgdGhlIHZpZXdlciBpZ25vcmVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBkbXMgb2JqZWN0LiBUaGlzIHdpbGwgYWx3YXlzIHNob3cgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAvLyBXZSBuZWVkIHRoaXMgdG8gYmUgYWJsZSB0byByZWZyZXNoIHRoZSB2aWV3ZXIgYmVjYXVzZSBvdGhlcndpc2UgcGRmanMgd29ya2VyIHdpbGwgZmFpbC5cbiAgQElucHV0KCkgdXNlVmVyc2lvbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9wZW4nKSBvcGVuO1xuXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZScsIHtzdGF0aWM6IHRydWV9KSBpZnJhbWU7XG5cbiAgQElucHV0KCdhdHRhY2htZW50cycpXG4gIHNldCBzZXRBdHRhY2htZW50cyhhdHRhY2htZW50cykge1xuICAgIHRoaXMuYXR0YWNobWVudHMgPSBhdHRhY2htZW50cztcbiAgICB0aGlzLmF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZTtcbiAgfVxuXG4gIEBJbnB1dCgnc2VhcmNoVGVybScpXG4gIHNldCBzZXRTZWFyY2hUZXJtKHNlYXJjaFRlcm0pIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtIHx8ICcnO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHByZXZpZXdVcmkodXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wcmV2aWV3VXJpID0gdXJpO1xuICAgIHRoaXMudG9nZ2xlVmlld2VyKCk7XG4gIH1cblxuICBnZXQgcHJldmlld1VyaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlld1VyaTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwcmV2aWV3RmlsZShmaWxlOiBQcmV2aWV3RmlsZSkge1xuICAgIGlmIChmaWxlKSB7XG4gICAgICB0aGlzLnZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKGZpbGUpO1xuICAgICAgdGhpcy5tZWRpYVR5cGUgPSBmaWxlLm1lZGlhVHlwZU5hbWUgJiYgdGhpcy5zeXN0ZW0uZ2V0T2JqZWN0VHlwZShmaWxlLm1lZGlhVHlwZU5hbWUpO1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gdGhpcy52aWV3ZXIucHJldmlld1VyaTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gJyc7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRtc09iamVjdChpdGVtOiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLl9kbXNPYmplY3QgPSBpdGVtO1xuICAgIHRoaXMuZG1zT2JqZWN0VGl0bGUgPSBpdGVtLnRpdGxlIHx8ICcuLi4nO1xuXG4gICAgdGhpcy5zZXRBdHRhY2htZW50cyA9IFtdO1xuICAgIGlmICh0aGlzLmF0dGFjaG1lbnRzTG9hZGluZykge1xuICAgICAgLy8gY2FuY2VsIGFueSBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzTG9hZGluZy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAoaXRlbS5jb250ZW50ICYmIGl0ZW0uY29udGVudC5jb250ZW50cyAmJiBpdGVtLmNvbnRlbnQuY29udGVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBmaWxlID0gaXRlbS5jb250ZW50LmNvbnRlbnRzWzBdIHx8IHt9O1xuXG4gICAgICB0aGlzLnByZXZpZXdGaWxlID0ge1xuICAgICAgICB1cmk6IHRoaXMuZG1zLmdldFByZXZpZXcoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgdW5kZWZpbmVkLCB0cnVlKSxcbiAgICAgICAgdXJpUGRmOiB0aGlzLmRtcy5nZXRQcmV2aWV3KGl0ZW0uY29udGVudC5pZCwgaXRlbS5jb250ZW50LnR5cGUsIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGwsICdQREYnLCB0cnVlKSxcbiAgICAgICAgbWltZXR5cGU6IGZpbGUubWltZXR5cGUsXG4gICAgICAgIG1pbWVncm91cDogZmlsZS5taW1lZ3JvdXAsXG4gICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICBtZWRpYVR5cGVOYW1lOiBpdGVtLnR5cGVOYW1lXG4gICAgICB9O1xuXG4gICAgICBpZiAoISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15tYWlsfG9jdGV0LXN0cmVhbS8pICYmIHRoaXMudmlld2VyLnZpZXdlci5zdGFydHNXaXRoKE1lZGlhQ29tcG9uZW50LlBERl9WSUVXRVIpKSB7XG4gICAgICAgIHRoaXMuc2xpZGVVcmkgPSB0aGlzLmRtcy5nZXRTbGlkZShpdGVtLmNvbnRlbnQuaWQsIGl0ZW0uY29udGVudC50eXBlLCB0aGlzLnVzZVZlcnNpb24gPyBpdGVtLnZlcnNpb24gOiBudWxsLCAyNTYpO1xuICAgICAgICB0aGlzLmF0dGFjaG1lbnRzTG9hZGluZyA9IHRoaXMuZG1zLmdldEF0dGFjaG1lbnRzKGl0ZW0pLnN1YnNjcmliZShhID0+IHRoaXMuc2V0QXR0YWNobWVudHMgPSBhKTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByZXZpZXdVcmkgPSAnJztcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnLFxuICAgIHByaXZhdGUgcGx1Z2luc1NlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLlNJWkVfTElNSVQgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcuZmlsZVNpemVMaW1pdCcpIHx8IHRoaXMuU0laRV9MSU1JVDtcbiAgICB0aGlzLmN1c3RvbUNvbmZpZyA9ICh0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcudmlld2VycycpIHx8IFtdKS5jb25jYXQodGhpcy5kZWZhdWx0Vmlld2Vycyk7XG5cbiAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaS5jb250ZW50LmNhdGNoRXJyb3IoKS5zdWJzY3JpYmUoKGV2dDogYW55KSA9PiB7XG4gICAgICBjb25zdCB7ZXJyLCB3aW4sIHBhcmFtZXRlcnN9ID0gZXZ0LmRhdGE7XG4gICAgICBjb25zdCB1cmkgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24odGhpcy5jdXN0b21Db25maWc/LmZpbmQoKHYpID0+IHYuZXJyb3IpPy52aWV3ZXIsICdhcGksIGVyciwgd2luLCBwYXJhbWV0ZXJzJywgW1xuICAgICAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaSxcbiAgICAgICAgZXJyLFxuICAgICAgICB3aW4sXG4gICAgICAgIHBhcmFtZXRlcnNcbiAgICAgIF0pO1xuICAgICAgdXJpICYmIHdpbiAmJiAod2luLmxvY2F0aW9uLmhyZWYgPSB0aGlzLnJlc29sdmVVcmkodXJpLCBwYXJhbWV0ZXJzKSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RBdHRhY2htZW50KGF0dGFjaG1lbnQ/OiBhbnkpIHtcbiAgICBjb25zdCBwcmV2aWV3VXJpID0gYXR0YWNobWVudCAmJiB0aGlzLmdldFZpZXdlcih7dXJpUGRmOiBhdHRhY2htZW50LnByZXZpZXdVcml9IGFzIFByZXZpZXdGaWxlKS5wcmV2aWV3VXJpO1xuICAgIHRoaXMubG9hZERvY3VtZW50KHByZXZpZXdVcmkgfHwgdGhpcy5wcmV2aWV3VXJpLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVWaWV3ZXIoKSB7XG4gICAgdGhpcy5vcGVuID0gISF0aGlzLnByZXZpZXdVcmk7XG4gICAgaWYgKCEhdGhpcy5wcmV2aWV3VXJpKSB7XG4gICAgICB0aGlzLmxvYWREb2N1bWVudCh0aGlzLnByZXZpZXdVcmkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCkge1xuICAgIHRoaXMubG9hZERvY3VtZW50KHRoaXMucHJldmlld1VyaSwgdHJ1ZSk7XG4gIH1cblxuICBnZXRWaWV3ZXIoZmlsZTogUHJldmlld0ZpbGUpOiBhbnkge1xuICAgIGNvbnN0IGlzVmlkZW8gPSAhIWZpbGUubWltZWdyb3VwPy5tYXRjaCgvXmF1ZGlvfF52aWRlby8pO1xuICAgIGNvbnN0IGRlZmF1bHRWaWV3ZXIgPSBpc1ZpZGVvID8gTWVkaWFDb21wb25lbnQuVklERU9fVklFV0VSIDogTWVkaWFDb21wb25lbnQuUERGX1ZJRVdFUjtcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZS5maWxlRXh0ZW5zaW9uIHx8IChmaWxlLnBhdGg/LmluY2x1ZGVzKCcuJykgPyBmaWxlLnBhdGguc3BsaXQoJy4nKS5wb3AoKSA6ICcnKTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IGZpbGUubWltZXR5cGU7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jdXN0b21Db25maWcuZmluZCgoYzogVmlld2VyQ29uZmlnKSA9PiB7XG4gICAgICBjb25zdCBtYXRjaE1UID0gIWMubWltZVR5cGUgfHwgKHR5cGVvZiBjLm1pbWVUeXBlID09PSAnc3RyaW5nJyA/IFtjLm1pbWVUeXBlXSA6IGMubWltZVR5cGUpLmluY2x1ZGVzKG1pbWVUeXBlPy50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNvbnN0IG1hdGNoRkUgPSAhYy5maWxlRXh0ZW5zaW9uIHx8ICh0eXBlb2YgYy5maWxlRXh0ZW5zaW9uID09PSAnc3RyaW5nJyA/IFtjLmZpbGVFeHRlbnNpb25dIDogYy5maWxlRXh0ZW5zaW9uKS5pbmNsdWRlcygoZmlsZUV4dGVuc2lvbikudG9Mb3dlckNhc2UoKSk7XG4gICAgICByZXR1cm4gbWF0Y2hNVCAmJiBtYXRjaEZFICYmICghYy50eXBlIHx8IGMudHlwZSA9PT0gJ2RlZmF1bHQnKTtcbiAgICB9KTtcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0ge1xuICAgICAgZmlsZSxcbiAgICAgIHBhdGg6IGxvY2F0aW9uLm9yaWdpbiArIGZpbGUudXJpLFxuICAgICAgcGF0aFBkZjogbG9jYXRpb24ub3JpZ2luICsgZmlsZS51cmlQZGYsXG4gICAgICB2aWV3ZXI6IGNvbmZpZz8udmlld2VyIHx8IGRlZmF1bHRWaWV3ZXIsXG4gICAgICBsb2FkOiBjb25maWc/LmxvYWQsXG4gICAgICBmaWxlRXh0ZW5zaW9uLFxuICAgICAgbWltZVR5cGUsXG4gICAgICB0aGVtZTogJycsXG4gICAgICBkZWZhdWx0Vmlld2VyLFxuICAgICAgcHJldmlld1VyaTogJydcbiAgICB9O1xuICAgIHBhcmFtZXRlcnMudmlld2VyID0gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHBhcmFtZXRlcnMudmlld2VyLCAnY29tcG9uZW50LCBkbXNPYmplY3QsIHBhcmFtZXRlcnMnLCBbdGhpcywgdGhpcy5fZG1zT2JqZWN0LCBwYXJhbWV0ZXJzXSkgfHwgZGVmYXVsdFZpZXdlcjtcblxuICAgIGNvbnN0IGV4dGVuZCA9IHRoaXMuY3VzdG9tQ29uZmlnLmZpbmQoKGMpID0+IGMudHlwZSA9PT0gJ2V4dGVuZCcpO1xuICAgIGlmIChleHRlbmQpIHBhcmFtZXRlcnMudmlld2VyID0gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKGV4dGVuZC52aWV3ZXIsICdjb21wb25lbnQsIGRtc09iamVjdCwgcGFyYW1ldGVycycsIFt0aGlzLCB0aGlzLl9kbXNPYmplY3QsIHBhcmFtZXRlcnNdKTtcblxuICAgIHBhcmFtZXRlcnMucHJldmlld1VyaSA9IHRoaXMucmVzb2x2ZVVyaShwYXJhbWV0ZXJzLnZpZXdlciwgcGFyYW1ldGVycyk7XG4gICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVVcmkodmlld2VyOiBzdHJpbmcsIHBhcmFtZXRlcnM6IGFueSkge1xuICAgIGxldCBvcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy8nO1xuICAgIGlmICghdmlld2VyLnN0YXJ0c1dpdGgoJ3ZpZXdlcicpKSB7XG4gICAgICBvcmlnaW4gPSBkb2N1bWVudC5iYXNlVVJJO1xuICAgIH1cbiAgICByZXR1cm4gKHZpZXdlciA/IG9yaWdpbiA6ICcnKSArIHZpZXdlclxuICAgICAgLnJlcGxhY2UoJyR7b3JpZ2luYWxQYXRofScsIHBhcmFtZXRlcnMucGF0aClcbiAgICAgIC5yZXBsYWNlKCcke3BhdGh9JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMucGF0aCkpXG4gICAgICAucmVwbGFjZSgnJHtwYXRoUGRmfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnBhdGhQZGYpKVxuICAgICAgLnJlcGxhY2UoJyR7ZmlsZUV4dGVuc2lvbn0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy5maWxlRXh0ZW5zaW9uKSlcbiAgICAgIC5yZXBsYWNlKCcke21pbWVUeXBlfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLm1pbWVUeXBlKSlcbiAgICAgIC5yZXBsYWNlKCcke3RoZW1lfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnRoZW1lKSlcbiAgICAgIC5yZXBsYWNlKCcke2xhbmd9JywgQ29udGVudFByZXZpZXdTZXJ2aWNlLm1hcExhbmcodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcbiAgfVxuXG4gIGxvYWREb2N1bWVudCh1cmk6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKCFmb3JjZSAmJiAoIXVyaSB8fCAodXJpID09PSB0aGlzLmxhdGVzdFVyaSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMubGF0ZXN0VXJpID0gdXJpIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgJ3NyYycsIHRoaXMubGF0ZXN0VXJpKTtcbiAgICAgIGNvbnN0IG9ubG9hZCA9ICgpID0+IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbih0aGlzLnZpZXdlcj8ubG9hZCwgJ2lmcmFtZSwgY29tcG9uZW50JywgW3RoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXNdKTtcbiAgICAgIHRoaXMuaWZyYW1lSW5pdCh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCB0aGlzLnZpZXdlcj8ubG9hZCAmJiBvbmxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCAnc3JjJywgdGhpcy5sYXRlc3RVcmkpO1xuICAgICAgY29uc3Qgb25sb2FkID0gKCkgPT4gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHRoaXMudmlld2VyPy5sb2FkLCAnaWZyYW1lLCBjb21wb25lbnQnLCBbdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgdGhpc10pO1xuICAgICAgdGhpcy5pZnJhbWVJbml0KHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXMudmlld2VyPy5sb2FkICYmIG9ubG9hZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBzZWFyY2ggaW5zaWRlIFBERi5KUyBiYXNlZCBvbiBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gdGVybSBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gd2luIGlmcmFtZSB3aW5kb3dcbiAgICovXG4gIHByaXZhdGUgc2VhcmNoUERGKHRlcm0gPSAnJywgd2luOiBhbnkpIHtcbiAgICAvLyByZW1vdmUgYWxsIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgIHRlcm0gPSAodGVybSB8fCAnJykucmVwbGFjZSgvW1xcXCJ8XFwqXS9nLCAnJykudHJpbSgpO1xuICAgIGlmICh0ZXJtICYmIHdpbj8uUERGVmlld2VyQXBwbGljYXRpb24/LmFwcENvbmZpZz8uZmluZEJhcikge1xuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmFwcENvbmZpZy5maW5kQmFyLmZpbmRGaWVsZC52YWx1ZSA9IHRlcm07XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuaGlnaGxpZ2h0QWxsQ2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuY2FzZVNlbnNpdGl2ZUNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIC8vIHRyaWdnZXIgZmluZCBldmVudCBvbiBwZGYuanMgbG9hZFxuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmluaXRpYWxpemVkUHJvbWlzZT8udGhlbigoKSA9PiB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uZmluZEJhci5kaXNwYXRjaEV2ZW50KCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudERyb3BFdmVudCh3aW46IGFueSkge1xuICAgIGlmICh3aW4/LmxvY2F0aW9uPy5vcmlnaW4gPT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgIHdpbj8uZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCAoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSk7XG4gICAgICAvLyBkaXNwYWNoIGRyYWcgJiBkcm9wIGV2ZW50cyB0byBtYWluIHdpbmRvd1xuICAgICAgd2luPy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgKGUpID0+IHtcbiAgICAgICAgd2luZG93LmRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IERyYWdFdmVudCgnZHJhZ2VudGVyJywgZSkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy5kb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBEcmFnRXZlbnQoJ2RyYWdsZWF2ZScsIGUpKSwgMTApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaWZyYW1lSW5pdChpZnJhbWUgPSB0aGlzLmlmcmFtZSwgb25sb2FkPzogRnVuY3Rpb24pIHtcbiAgICBpZiAoaWZyYW1lKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWZyYW1lLl9pbml0IHx8IGZyb21FdmVudChpZnJhbWUsICdsb2FkJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHdpbiA9IHRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgICAgICAgb25sb2FkICYmIG9ubG9hZCgpO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQREYodGhpcy5zZWFyY2hUZXJtLCB3aW4pO1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RHJvcEV2ZW50KHdpbik7XG4gICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfSk7XG4gICAgICBpZnJhbWUuX2luaXQgPSAhIXRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBcGkoaWZyYW1lOiBhbnkpIHtcbiAgICAvLyBzZXQgYXBpIHRvIGlmcmFtZSB3aW5kb3dcbiAgICBjb25zdCB3aW4gPSBpZnJhbWU/LmNvbnRlbnRXaW5kb3cgfHwgaWZyYW1lO1xuICAgIHdpblsnYXBpJ10gPSB3aW5kb3dbJ2FwaSddO1xuICAgIGlmKHdpblsnYXBpJ10/LmNvbnRlbnQpIHtcbiAgICAgIHdpblsnYXBpJ10uY29udGVudC5yZXNvbHZlVmlld2VyUGFyYW1zID0gKHBhcmFtZXRlcnM6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB1cmkgPSBwYXJhbWV0ZXJzLnBhdGgucmVwbGFjZShsb2NhdGlvbi5vcmlnaW4sICcnKTtcbiAgICAgICAgY29uc3Qgdmlld2VyID0gdGhpcy5nZXRWaWV3ZXIoe3VyaSwgbWltZXR5cGU6IHBhcmFtZXRlcnMubWltZVR5cGUsIGZpbGVFeHRlbnNpb246IHBhcmFtZXRlcnMuZmlsZUV4dGVuc2lvbiwgdXJpUGRmOiB1cmksIG1pbWVncm91cDogJycsIHNpemU6IDF9KTtcbiAgICAgICAgcmV0dXJuIHt1cmk6IHZpZXdlci5wcmV2aWV3VXJpIHx8IHBhcmFtZXRlcnMucGF0aH07XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gd2luO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gIH1cblxufVxuIiwiPGRpdiBbaGlkZGVuXT1cIiFvcGVuXCI+XG4gIDwhLS0gYXR0YWNobWVudHMgb3ZlcmxheSAtLT5cbiAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzXCIgKm5nSWY9XCJhdHRhY2htZW50cz8ubGVuZ3RoXCJcbiAgICBbbmdDbGFzc109XCJ7bm90bWFpbjogbGF0ZXN0VXJpICE9PSBwcmV2aWV3VXJpICYmICFhdHRhY2htZW50c1Nob3duLCBhY3RpdmU6IGF0dGFjaG1lbnRzU2hvd259XCJcbiAgICAoZW9PdXRzaWRlQ2xpY2spPVwiYXR0YWNobWVudHNTaG93biA9IGZhbHNlXCI+XG4gICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRzLWxpc3RcIiAqbmdJZj1cImF0dGFjaG1lbnRzU2hvd25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50IG1haW5cIiAoY2xpY2spPVwic2VsZWN0QXR0YWNobWVudChudWxsKVwiIFtuZ0NsYXNzXT1cIntjdXJyZW50OiBsYXRlc3RVcmkgPT09IHByZXZpZXdVcml9XCI+e3tkbXNPYmplY3RUaXRsZX19PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudFwiICpuZ0Zvcj1cImxldCBhIG9mIGF0dGFjaG1lbnRzXCIgKGNsaWNrKT1cInNlbGVjdEF0dGFjaG1lbnQoYSlcIiBbbmdDbGFzc109XCJ7Y3VycmVudDogbGF0ZXN0VXJpID09PSBhLnByZXZpZXdVcml9XCI+XG4gICAgICAgIHt7YS5uYW1lfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGVvLWljb24gY2xhc3M9XCJidXR0b25cIiBbYmFkZ2VdPVwiYXR0YWNobWVudHM/Lmxlbmd0aFwiIChjbGljayk9XCJhdHRhY2htZW50c1Nob3duID0gIWF0dGFjaG1lbnRzU2hvd25cIlxuICAgICAgW2ljb25TcmNdPVwiYXR0YWNobWVudHNTaG93biA/ICdhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2NsZWFyLnN2ZycgOiAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hdHRhY2htZW50LnN2ZydcIj48L2VvLWljb24+XG4gIDwvZGl2PlxuXG4gIDx5dmMtcG9wb3V0IFt0cmlnZ2VyUG9zaXRpb25dPVwicG9wb3V0VHJpZ2dlclBvc2l0aW9uXCIgW2Rpc2FibGVkXT1cInVuZG9ja0Rpc2FibGVkXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1jb250YWluZXJcIiBbc3R5bGUub3ZlcmZsb3ddPVwiJ2hpZGRlbidcIj5cbiAgICAgIDxpZnJhbWUgW2hpZGRlbl09XCJpc1VuZG9ja2VkIHx8IGxvYWRpbmdcIiAjaWZyYW1lIGhlaWdodD1cIjEwMCVcIiB3aWR0aD1cIjEwMCVcIiBmcmFtZWJvcmRlcj1cIjBcIj48L2lmcmFtZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbGlkZVwiICpuZ0lmPVwiaXNVbmRvY2tlZFwiPlxuICAgICAgICA8ZW8taWNvbiAqbmdJZj1cIm1lZGlhVHlwZVwiIFtvYmplY3RUeXBlXT1cIm1lZGlhVHlwZVwiPjwvZW8taWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3l2Yy1wb3BvdXQ+XG48L2Rpdj5cblxuPGRpdiBbaGlkZGVuXT1cIm9wZW5cIiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxuICA8ZW8taWNvbiBjbGFzcz1cIm5vZmlsZVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX25vLWZpbGUuc3ZnJ1wiPjwvZW8taWNvbj5cbjwvZGl2PlxuIl19
|
|
@@ -40,7 +40,7 @@ export class EditIconComponent {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
EditIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EditIconComponent, deps: [{ token: i1.UserService }, { token: i2.AgentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
EditIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: EditIconComponent, selector: "eo-edit-icon", inputs: { item: "item" }, ngImport: i0, template: "<eo-icon class=\"button favorite\"\n [iconTitle]=\"('eo.action.menu.edit.document.label' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"agentAlwayslock === 'ask' && !item.lock ? toggle($event) : editOriginalContent()\">\n</eo-icon>\n\n<eo-dialog\n [title]=\"('eo.action.menu.edit.document.label' | translate)\"\n [(visible)]=\"display\"\n [minWidth]=\"400\">\n\n <eo-open-document *ngIf=\"display\" [selection]=\"[item]\" (finished)=\"fetchAgentAlwayslock(); display = false\" (canceled)=\"display = false\"></eo-open-document>\n</eo-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i5.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "component", type: i6.OpenDocumentComponent, selector: "eo-open-document", inputs: ["selection"], outputs: ["finished", "canceled"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
43
|
+
EditIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: EditIconComponent, selector: "eo-edit-icon", inputs: { item: "item" }, ngImport: i0, template: "<eo-icon class=\"button favorite\"\n [iconTitle]=\"('eo.action.menu.edit.document.label' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"agentAlwayslock === 'ask' && !item.lock ? toggle($event) : editOriginalContent()\">\n</eo-icon>\n\n<eo-dialog\n [title]=\"('eo.action.menu.edit.document.label' | translate)\"\n [(visible)]=\"display\"\n [minWidth]=\"400\">\n\n <eo-open-document *ngIf=\"display\" [selection]=\"[item]\" (finished)=\"fetchAgentAlwayslock(); display = false\" (canceled)=\"display = false\"></eo-open-document>\n</eo-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i5.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: i6.OpenDocumentComponent, selector: "eo-open-document", inputs: ["selection"], outputs: ["finished", "canceled"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
44
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: EditIconComponent, decorators: [{
|
|
45
45
|
type: Component,
|
|
46
46
|
args: [{ selector: 'eo-edit-icon', template: "<eo-icon class=\"button favorite\"\n [iconTitle]=\"('eo.action.menu.edit.document.label' | translate)\"\n [iconSrc]=\"'assets/_default/svg/ic_edit.svg'\"\n (click)=\"agentAlwayslock === 'ask' && !item.lock ? toggle($event) : editOriginalContent()\">\n</eo-icon>\n\n<eo-dialog\n [title]=\"('eo.action.menu.edit.document.label' | translate)\"\n [(visible)]=\"display\"\n [minWidth]=\"400\">\n\n <eo-open-document *ngIf=\"display\" [selection]=\"[item]\" (finished)=\"fetchAgentAlwayslock(); display = false\" (canceled)=\"display = false\"></eo-open-document>\n</eo-dialog>\n" }]
|
|
@@ -86,7 +86,7 @@ export class FavoriteIconComponent extends UnsubscribeOnDestroy {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
FavoriteIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FavoriteIconComponent, deps: [{ token: i1.UserService }, { token: i1.EventService }, { token: i1.NotificationsService }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
89
|
-
FavoriteIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FavoriteIconComponent, selector: "eo-favorite-icon", inputs: { item: "item" }, viewQueries: [{ propertyName: "favNameInputElement", first: true, predicate: ["favName"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-icon class=\"button favorite\"\n [ngClass]=\"{active: item.isFavorite}\"\n [iconTitle]=\"tooltip\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n (click)=\"toggle($event)\">\n</eo-icon>\n\n<eo-dialog\n [title]=\"('eo.favorite.icon.dialog.title' | translate)\"\n [(visible)]=\"display\"\n [minWidth]=\"400\"\n [styleClass]=\"'favorite-form__dialog'\">\n\n <form name=\"favoriteForm\" (ngSubmit)=\"save()\">\n <eo-form-input [label]=\" 'eo.favorite.icon.dialog.input.label' | translate\">\n <input [(ngModel)]=\"value\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" #favName />\n </eo-form-input>\n <div class=\"action-buttons favorite-form__dialog--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"toggle($event, true)\" translate>eo.favorite.icon.dialog.cancel</button>\n <button type=\"submit\" [disabled]=\"!value\" class=\"button primary\" translate>eo.favorite.icon.dialog.save</button>\n </div>\n </form>\n</eo-dialog>\n", styles: [":host eo-icon.active{color:var(--color-favorite)}::ng-deep .favorite-form__dialog{padding:8px;min-height:unset!important}::ng-deep .favorite-form__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:white!important}::ng-deep .favorite-form__dialog .eo-dialog-content{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
89
|
+
FavoriteIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: FavoriteIconComponent, selector: "eo-favorite-icon", inputs: { item: "item" }, viewQueries: [{ propertyName: "favNameInputElement", first: true, predicate: ["favName"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-icon class=\"button favorite\"\n [ngClass]=\"{active: item.isFavorite}\"\n [iconTitle]=\"tooltip\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n (click)=\"toggle($event)\">\n</eo-icon>\n\n<eo-dialog\n [title]=\"('eo.favorite.icon.dialog.title' | translate)\"\n [(visible)]=\"display\"\n [minWidth]=\"400\"\n [styleClass]=\"'favorite-form__dialog'\">\n\n <form name=\"favoriteForm\" (ngSubmit)=\"save()\">\n <eo-form-input [label]=\" 'eo.favorite.icon.dialog.input.label' | translate\">\n <input [(ngModel)]=\"value\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" #favName />\n </eo-form-input>\n <div class=\"action-buttons favorite-form__dialog--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"toggle($event, true)\" translate>eo.favorite.icon.dialog.cancel</button>\n <button type=\"submit\" [disabled]=\"!value\" class=\"button primary\" translate>eo.favorite.icon.dialog.save</button>\n </div>\n </form>\n</eo-dialog>\n", styles: [":host eo-icon.active{color:var(--color-favorite)}::ng-deep .favorite-form__dialog{padding:8px;min-height:unset!important}::ng-deep .favorite-form__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:white!important}::ng-deep .favorite-form__dialog .eo-dialog-content{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i7.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: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
90
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: FavoriteIconComponent, decorators: [{
|
|
91
91
|
type: Component,
|
|
92
92
|
args: [{ selector: 'eo-favorite-icon', template: "<eo-icon class=\"button favorite\"\n [ngClass]=\"{active: item.isFavorite}\"\n [iconTitle]=\"tooltip\"\n [iconSrc]=\"'assets/_default/svg/ic_favorite.svg'\"\n (click)=\"toggle($event)\">\n</eo-icon>\n\n<eo-dialog\n [title]=\"('eo.favorite.icon.dialog.title' | translate)\"\n [(visible)]=\"display\"\n [minWidth]=\"400\"\n [styleClass]=\"'favorite-form__dialog'\">\n\n <form name=\"favoriteForm\" (ngSubmit)=\"save()\">\n <eo-form-input [label]=\" 'eo.favorite.icon.dialog.input.label' | translate\">\n <input [(ngModel)]=\"value\" maxlength=\"250\" [ngModelOptions]=\"{standalone: true}\" #favName />\n </eo-form-input>\n <div class=\"action-buttons favorite-form__dialog--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"toggle($event, true)\" translate>eo.favorite.icon.dialog.cancel</button>\n <button type=\"submit\" [disabled]=\"!value\" class=\"button primary\" translate>eo.favorite.icon.dialog.save</button>\n </div>\n </form>\n</eo-dialog>\n", styles: [":host eo-icon.active{color:var(--color-favorite)}::ng-deep .favorite-form__dialog{padding:8px;min-height:unset!important}::ng-deep .favorite-form__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:white!important}::ng-deep .favorite-form__dialog .eo-dialog-content{overflow:hidden}\n"] }]
|