@eo-sdk/client 11.4.0-rc.2 → 11.4.0-rc.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.
Files changed (60) hide show
  1. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -1
  3. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +1 -0
  4. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
  5. package/app/eo-framework/object-details/object-links/object-links.component.d.ts +5 -23
  6. package/app/eo-framework/object-details/object-links/object-links.component.d.ts.map +1 -1
  7. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
  8. package/assets/_default/i18n/de.json +2 -34
  9. package/assets/_default/i18n/en.json +4 -36
  10. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  11. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  12. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +2 -2
  13. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +2 -2
  14. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +2 -2
  15. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +2 -2
  16. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +4 -4
  17. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  18. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +5 -3
  19. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  20. package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
  21. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +4 -4
  22. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  23. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  24. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  25. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  26. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  27. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +4 -4
  28. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +2 -2
  29. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +2 -2
  30. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  31. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  32. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  33. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  34. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +2 -2
  35. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  36. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
  37. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +3 -3
  38. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  39. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  40. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +2 -2
  41. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +7 -1
  42. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +2 -2
  43. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  44. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  45. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  46. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
  47. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +17 -163
  48. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +3 -3
  49. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +3 -3
  50. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  51. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
  52. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  53. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  54. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +4 -4
  55. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +8 -5
  56. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +2 -2
  57. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +3 -3
  58. package/fesm2022/eo-sdk-client.mjs +112 -243
  59. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  60. package/package.json +2 -2
@@ -189,7 +189,7 @@ let ActionMenuComponent = class ActionMenuComponent {
189
189
  this.hideActionMenu();
190
190
  }
191
191
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActionMenuComponent, deps: [{ token: i1.ActionService }, { token: i2.Router }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
192
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ActionMenuComponent, selector: "eo-action-menu", viewQueries: [{ propertyName: "eoActionComponentAnchor", first: true, predicate: ActionComponentAnchorDirective, descendants: true }, { propertyName: "externalDialog", first: true, predicate: ActionComponentAnchorDirective, descendants: true }], ngImport: i0, template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div>\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" [attr.tabindex]=\"0\" *ngFor=\"let actionListEntry of actionLists.common; let i = index\"\n (click)=\"onClick(actionListEntry)\" [ngClass]=\"{active: activeActionIndex === i}\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" *ngFor=\"let actionListEntry of actionLists.further; index as i\"\n eoPreventDoubleClick [ngClass]=\"{active: activeActionIndex === i + actionLists?.common.length }\"\n (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.export.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n", styles: [".action-menu{position:absolute;top:0;right:0;bottom:0;width:25vw;min-width:300px;z-index:100;background-color:rgba(var(--color-primary-rgb),.95);animation:eoFadeInRight var(--app-default-transition-duration);box-shadow:0 0 10px rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;overflow:hidden}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.action-menu .group .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);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}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{text-decoration:none;color:inherit;display:block;opacity:1}.action-menu .action.active{background:rgba(var(--color-white-rgb),.1)}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{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;cursor:pointer;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) 0;display:flex;align-items:center}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding) / 2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{margin:0 calc(var(--app-pane-padding) / 2);color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.action-menu .action eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{border-radius:2px;-webkit-border-radius:2px;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;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.action-menu .action:last-child{border:0}.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{display:flex;justify-content:center;align-items:center;padding:16px;margin:50% auto}\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: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "directive", type: i7.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "component", type: i8.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i9.ActionComponentAnchorDirective, selector: "[eoActionComponentAnchor]" }, { kind: "directive", type: i10.PreventDoubleClickDirective, selector: "[eoPreventDoubleClick]", inputs: ["debounceTime"], outputs: ["debounceClick"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
192
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: ActionMenuComponent, selector: "eo-action-menu", viewQueries: [{ propertyName: "eoActionComponentAnchor", first: true, predicate: ActionComponentAnchorDirective, descendants: true }, { propertyName: "externalDialog", first: true, predicate: ActionComponentAnchorDirective, descendants: true }], ngImport: i0, template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div>\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" [attr.tabindex]=\"0\" *ngFor=\"let actionListEntry of actionLists.common; let i = index\"\n (click)=\"onClick(actionListEntry)\" [ngClass]=\"{active: activeActionIndex === i}\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" *ngFor=\"let actionListEntry of actionLists.further; index as i\"\n eoPreventDoubleClick [ngClass]=\"{active: activeActionIndex === i + actionLists?.common.length }\"\n (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.cta.button.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n", styles: [".action-menu{position:absolute;top:0;right:0;bottom:0;width:25vw;min-width:300px;z-index:100;background-color:rgba(var(--color-primary-rgb),.95);animation:eoFadeInRight var(--app-default-transition-duration);box-shadow:0 0 10px rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;overflow:hidden}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.action-menu .group .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);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}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{text-decoration:none;color:inherit;display:block;opacity:1}.action-menu .action.active{background:rgba(var(--color-white-rgb),.1)}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{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;cursor:pointer;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) 0;display:flex;align-items:center}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding) / 2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{margin:0 calc(var(--app-pane-padding) / 2);color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.action-menu .action eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{border-radius:2px;-webkit-border-radius:2px;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;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.action-menu .action:last-child{border:0}.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{display:flex;justify-content:center;align-items:center;padding:16px;margin:50% auto}\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: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.OutsideClickDirective, selector: "[eoOutsideClick]", outputs: ["eoOutsideClick"] }, { kind: "directive", type: i7.RouterLinkDirective, selector: "a[routerLink]" }, { kind: "component", type: i8.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i9.ActionComponentAnchorDirective, selector: "[eoActionComponentAnchor]" }, { kind: "directive", type: i10.PreventDoubleClickDirective, selector: "[eoPreventDoubleClick]", inputs: ["debounceTime"], outputs: ["debounceClick"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
193
193
  };
194
194
  ActionMenuComponent = __decorate([
195
195
  UntilDestroy()
@@ -197,7 +197,7 @@ ActionMenuComponent = __decorate([
197
197
  export { ActionMenuComponent };
198
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: ActionMenuComponent, decorators: [{
199
199
  type: Component,
200
- args: [{ selector: 'eo-action-menu', encapsulation: ViewEncapsulation.None, template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div>\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" [attr.tabindex]=\"0\" *ngFor=\"let actionListEntry of actionLists.common; let i = index\"\n (click)=\"onClick(actionListEntry)\" [ngClass]=\"{active: activeActionIndex === i}\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" *ngFor=\"let actionListEntry of actionLists.further; index as i\"\n eoPreventDoubleClick [ngClass]=\"{active: activeActionIndex === i + actionLists?.common.length }\"\n (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.export.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n", styles: [".action-menu{position:absolute;top:0;right:0;bottom:0;width:25vw;min-width:300px;z-index:100;background-color:rgba(var(--color-primary-rgb),.95);animation:eoFadeInRight var(--app-default-transition-duration);box-shadow:0 0 10px rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;overflow:hidden}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.action-menu .group .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);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}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{text-decoration:none;color:inherit;display:block;opacity:1}.action-menu .action.active{background:rgba(var(--color-white-rgb),.1)}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{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;cursor:pointer;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) 0;display:flex;align-items:center}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding) / 2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{margin:0 calc(var(--app-pane-padding) / 2);color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.action-menu .action eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{border-radius:2px;-webkit-border-radius:2px;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;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.action-menu .action:last-child{border:0}.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{display:flex;justify-content:center;align-items:center;padding:16px;margin:50% auto}\n"] }]
200
+ args: [{ selector: 'eo-action-menu', encapsulation: ViewEncapsulation.None, template: "<div class=\"action-menu dark\" *ngIf=\"showMenu\" (eoOutsideClick)=\"hide()\">\n\n <div class=\"head\">\n <div class=\"left\">\n <div class=\"title\" translate>eo.actions.sticky.title</div>\n <div class=\"sub-title\" *ngIf=\"selection?.length > 1; else multi\" translate>eo.actions.sticky.title.sub.selection</div>\n <ng-template #multi>\n <div class=\"sub-title\" *ngIf=\"selection && selection.length\"><span translate>eo.actions.sticky.title.sub.for</span> '{{selection[0].title}}'</div>\n </ng-template>\n </div>\n <div class=\"right\">\n <span class=\"count\">{{subSelection?.length || selection?.length || ''}}</span>\n <eo-icon class=\"button\" [iconSrc]=\"'assets/_default/svg/ic_clear.svg'\" (click)=\"hide()\"></eo-icon>\n </div>\n </div>\n\n <div class=\"actions\" [hidden]=\"subActionsList || showComponent\">\n\n <ng-template #action let-entry let-id>\n\n <a *ngIf=\"isLinkAction(entry.action); else default\" class=\"link\"\n [routerLink]=\"entry.action.getLink(entry.availableSelection)\"\n [queryParams]=\"entry.action.getParams(entry.availableSelection, true)\">\n <ng-container *ngTemplateOutlet=\"default\"></ng-container>\n </a>\n\n <ng-template #default>\n <div>\n <eo-icon [iconSrc]=\"entry.action.iconSrc\" [iconId]=\"entry.action.iconId\"\n [badge]=\"entry.availableSelection?.length != selection?.length ? entry.availableSelection?.length : null\"></eo-icon>\n <div class=\"label\">{{entry.action.label}}</div>\n <!-- <div class=\"available-count\" *ngIf=\"entry.availableSelection?.length != selection?.length\">{{entry.availableSelection?.length}}</div> -->\n <eo-icon class=\"info-icon\" [iconSrc]=\"'assets/_default/svg/ic_info.svg'\" (click)=\"showActionDescription(id, $event)\"></eo-icon>\n </div>\n <div class=\"description\" [hidden]=\"id !== actionDescription\">{{entry.action.description}}</div>\n </ng-template>\n </ng-template>\n\n <div class=\"group\" *ngIf=\"actionLists?.common.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.common</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" [attr.tabindex]=\"0\" *ngFor=\"let actionListEntry of actionLists.common; let i = index\"\n (click)=\"onClick(actionListEntry)\" [ngClass]=\"{active: activeActionIndex === i}\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: +i}\"></ng-container>\n\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading; else loader\">\n <div *ngIf=\"actionLists?.further.length > 0\">\n <div class=\"group-title\" translate>eo.actions.group.further_actions</div>\n <div class=\"action\" id=\"{{actionListEntry.id}}\" (keydown)=\"isArrowUpOrDownPressed($event)\" *ngFor=\"let actionListEntry of actionLists.further; index as i\"\n eoPreventDoubleClick [ngClass]=\"{active: activeActionIndex === i + actionLists?.common.length }\"\n (debounceClick)=\"onClick(actionListEntry)\">\n\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 'f'+i}\"></ng-container>\n\n </div>\n </div>\n </div>\n\n <div class=\"group\" *ngIf=\"!loading && !actionLists?.further.length && !actionLists?.common.length\" [style.textAlign]=\"'center'\">\n {{ 'eo.action.not.available' | translate}}\n </div>\n\n <ng-template #loader>\n <div class=\"loading-container\">\n <eo-loading-spinner [size]=\"'medium'\"></eo-loading-spinner>\n </div>\n </ng-template>\n </div>\n\n <!-- sub actions -->\n <div class=\"group sub\" *ngIf=\"subActionsList && !showComponent\">\n <div class=\"sub-actions\">\n <div class=\"group-title\">{{subActionsListHeader}}</div>\n <div class=\"action sub\" *ngFor=\"let actionListEntry of subActionsList; index as i\" (click)=\"onClick(actionListEntry)\">\n <ng-container *ngTemplateOutlet=\"action; context: {$implicit: actionListEntry, id: 's'+i}\"></ng-container>\n </div>\n </div>\n <div class=\"group-buttons\">\n <button (click)=\"onCancel()\" translate>eo.cta.button.cancel</button>\n </div>\n </div>\n\n <div>\n <ng-template eoActionComponentAnchor></ng-template>\n </div>\n\n <div>\n <ng-template eoExtActionComponentAnchor></ng-template>\n </div>\n\n</div>\n", styles: [".action-menu{position:absolute;top:0;right:0;bottom:0;width:25vw;min-width:300px;z-index:100;background-color:rgba(var(--color-primary-rgb),.95);animation:eoFadeInRight var(--app-default-transition-duration);box-shadow:0 0 10px rgba(var(--color-black-rgb),.3);color:var(--color-white);height:100vh;overflow:hidden}.action-menu .head{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:0;padding:var(--app-pane-padding)}.action-menu .head .left{flex:1 1 auto;order:0}.action-menu .head .left .title{font-size:var(--font-headline);font-weight:var(--font-weight-light)}.action-menu .head .left .sub-title{font-size:var(--font-body);font-weight:var(--font-weight-light)}.action-menu .head .right{display:flex;flex:0 0 auto;flex-flow:row nowrap;order:1}.action-menu .head .right .count{color:rgba(var(--color-white-rgb),.3);font-size:5em;font-weight:var(--font-weight-light);line-height:1em;padding-right:var(--app-pane-padding)}.action-menu .head .right .close{margin:0;z-index:10}.action-menu .actions{height:100%;overflow:scroll}.action-menu .actions .group:last-child{margin-bottom:100px}.action-menu .group{padding:var(--app-pane-padding);min-width:200px;display:inline-block;width:90%}.action-menu .group .group-title{background:rgba(var(--color-white-rgb),.1);margin-bottom:calc(var(--app-pane-padding) / 4);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2);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}.action-menu .group:not(.sub):hover .group-title{background:rgba(var(--color-white-rgb),.3)}.action-menu .action{border-bottom:1px solid rgba(var(--color-white-rgb),.2)}.action-menu .action a.link{text-decoration:none;color:inherit;display:block;opacity:1}.action-menu .action.active{background:rgba(var(--color-white-rgb),.1)}.action-menu .action>a.link>div:first-child,.action-menu .action>div:first-child{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;cursor:pointer;padding:calc(var(--app-pane-padding) / 2) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) 0;display:flex;align-items:center}.action-menu .action.sub>div:first-child{padding-left:calc(var(--app-pane-padding) / 2)}.action-menu .action .label{flex:1 1 auto}.action-menu .action .available-count{margin:0 calc(var(--app-pane-padding) / 2);color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon{margin:0 calc(var(--app-pane-padding) / 2)}.action-menu .action eo-icon.info-icon{margin:0;padding:3px;box-sizing:border-box;border-radius:50%;color:rgba(var(--color-white-rgb),.3)}.action-menu .action eo-icon.info-icon:hover{background-color:var(--color-primary)}.action-menu .action .description{border-radius:2px;-webkit-border-radius:2px;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;color:rgba(var(--color-white-rgb),.54);font-style:italic;padding:calc(var(--app-pane-padding) / 4) var(--app-pane-padding) calc(var(--app-pane-padding) / 2) var(--app-pane-padding)}.action-menu .action:last-child{border:0}.action-menu .action:hover{background:rgba(var(--color-white-rgb),.1)}.action-menu .group-buttons{display:flex;justify-content:flex-end;padding-top:var(--app-pane-padding)}.action-menu .group-buttons button{background-color:transparent}.action-menu .group-buttons button:hover{background-color:rgba(var(--color-white-rgb),.1)}.action-menu .loading-container{display:flex;justify-content:center;align-items:center;padding:16px;margin:50% auto}\n"] }]
201
201
  }], ctorParameters: () => [{ type: i1.ActionService }, { type: i2.Router }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.ComponentFactoryResolver }], propDecorators: { eoActionComponentAnchor: [{
202
202
  type: ViewChild,
203
203
  args: [ActionComponentAnchorDirective]
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
205
205
  type: ViewChild,
206
206
  args: [ActionComponentAnchorDirective]
207
207
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUE4QyxTQUFTLEVBQW9CLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBQyxlQUFlLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLakQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkRBQTZELENBQUM7Ozs7Ozs7Ozs7OztBQVNwRyxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQXFCOUIsWUFBb0IsYUFBNEIsRUFDNUIsTUFBYyxFQUNmLGdCQUFrQyxFQUNqQyxPQUFtQixFQUNuQix3QkFBa0Q7UUFKbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBckJ0RSxnQkFBVyxHQUdQO1lBQ0YsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVB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Q0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBMU1VLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCtHQUVuQiw4QkFBOEIsaUZBQzlCLDhCQUE4QixnRENyQjNDLG00SUE4RkE7O0FENUVhLG1CQUFtQjtJQVAvQixZQUFZLEVBQUU7R0FPRixtQkFBbUIsQ0EyTS9COzsyRkEzTVksbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJO3NNQUlNLHVCQUF1QjtzQkFBakUsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBQ0UsY0FBYztzQkFBeEQsU0FBUzt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1V0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtmaWx0ZXIsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlLCBBY3Rpb25TaG93Q29tbWFuZH0gZnJvbSAnLi4vYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtBY3Rpb25MaXN0RW50cnl9IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLWxpc3QtZW50cnknO1xuaW1wb3J0IHtDb21wb25lbnRBY3Rpb24sIEV4dGVybmFsQ29tcG9uZW50QWN0aW9uLCBFeHRlcm5hbFByb2Nlc3NDb21wb25lbnRBY3Rpb24sIExpc3RBY3Rpb24sIFNpbXBsZUFjdGlvbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlfSBmcm9tICcuL2FjdGlvbi1jb21wb25lbnQtYW5jaG9yL2FjdGlvbi1jb21wb25lbnQtYW5jaG9yLmRpcmVjdGl2ZSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWN0aW9uLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbk1lbnVDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlKSBlb0FjdGlvbkNvbXBvbmVudEFuY2hvcjogQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZSkgZXh0ZXJuYWxEaWFsb2c6IEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZTtcbiAgYWN0aW9uTGlzdHM6IHtcbiAgICBjb21tb246IEFjdGlvbkxpc3RFbnRyeVtdLFxuICAgIGZ1cnRoZXI6IEFjdGlvbkxpc3RFbnRyeVtdXG4gIH0gPSB7XG4gICAgY29tbW9uOiBbXSwgZnVydGhlcjogW11cbiAgfTtcbiAgc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSAnJztcbiAgc3ViQWN0aW9uc0xpc3Q6IEFjdGlvbkxpc3RFbnRyeVtdO1xuICBzZWxlY3Rpb246IGFueVtdO1xuICBzdWJTZWxlY3Rpb246IGFueVtdO1xuICB0YXJnZXQ6IHN0cmluZztcbiAgc2hvd0NvbXBvbmVudCA9IGZhbHNlO1xuICBhY3Rpb25EZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzaG93TWVudSA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGFjdGl2ZUFjdGlvbkluZGV4ID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGVsZW1SZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcblxuICAgIC8vIHN1YnNjcmliZSBmb3IgdmlzaWJpbGl0eSBvYnNlcnZhYmxlIGluZGljYXRpbmcgd2hldGhlciB0byBzaG93IG9yIGhpZGUgdGhlIGFjdGlvbnNcbiAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgIC5hY3Rpb25zU2hvd2luZyQucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoY21kOiBBY3Rpb25TaG93Q29tbWFuZCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd01lbnUgJiYgY21kLnNob3cpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IGNtZC5zZWxlY3Rpb247XG4gICAgICAgICAgdGhpcy50YXJnZXQgPSBjbWQudGFyZ2V0O1xuICAgICAgICAgIHRoaXMuc2hvd0FjdGlvbk1lbnUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNob3dNZW51ICYmICFjbWQuc2hvdykge1xuICAgICAgICAgIHRoaXMuaGlkZUFjdGlvbk1lbnUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgICAgZmlsdGVyKGV2dCA9PiBldnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhpZGUoKSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aW9ucygpIHtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgIC5nZXRBY3Rpb25zTGlzdCh0aGlzLnNlbGVjdGlvbiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgLnN1YnNjcmliZShhY3Rpb25zTGlzdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uID0gYWN0aW9uc0xpc3QuZmlsdGVyKGFjdGlvbkxpc3RFbnRyeSA9PiBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmdyb3VwID09PSAnY29tbW9uJyk7XG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdHMuZnVydGhlciA9IGFjdGlvbnNMaXN0LmZpbHRlcihhY3Rpb25MaXN0RW50cnkgPT4gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5ncm91cCA9PT0gJ2Z1cnRoZXInKTtcbiAgICAgIH0pO1xuXG4gIH1cblxuICBwcml2YXRlIGdldE1vcmVBY3Rpb25zKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuZ2V0TW9yZUFjdGlvbnModGhpcy5zZWxlY3Rpb24sIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICAgIC5zdWJzY3JpYmUoYWN0aW9uTGlzdCA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIgPSB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIuY29uY2F0KGFjdGlvbkxpc3QpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnYWN0aW9uLmxhYmVsJykpO1xuICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmhpZGVBY3Rpb25zKCk7XG4gIH1cblxuICBzaG93QWN0aW9uRGVzY3JpcHRpb24oaSwgZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWN0aW9uRGVzY3JpcHRpb24gPSBpID09PSB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID8gbnVsbCA6IGk7XG4gIH1cblxuICBjYXRjaEZvY3VzKCkgeyAgICBcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZWxlbVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgIH0sKTtcbiAgfVxuXG4gIGlzQXJyb3dVcE9yRG93blByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgbGV0IGxlbmd0aCA9IHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uLmxlbmd0aCArIHRoaXMuYWN0aW9uTGlzdHMuZnVydGhlci5sZW5ndGggLSAxO1xuICAgIGlmIChrZXkgPT09ICdBcnJvd1VwJyB8fCAoZXZlbnQuc2hpZnRLZXkgJiYga2V5ID09PSAnVGFiJykgKSB7XG4gICAgICB0aGlzLmFjdGl2ZUFjdGlvbkluZGV4ID0gKHRoaXMuYWN0aXZlQWN0aW9uSW5kZXggPT09IDApID8gbGVuZ3RoIDogdGhpcy5hY3RpdmVBY3Rpb25JbmRleCAtIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd0Rvd24nIHx8IGtleSA9PT0gJ1RhYicpIHtcbiAgICAgIHRoaXMuYWN0aXZlQWN0aW9uSW5kZXggPSAodGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9PT0gbGVuZ3RoKSA/IDAgOiB0aGlzLmFjdGl2ZUFjdGlvbkluZGV4ICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0VudGVyJykge1xuICAgICAgbGV0IGNsaWNrZWRMaXN0RW50cnk7XG4gICAgICBpZiAodGhpcy5hY3RpdmVBY3Rpb25JbmRleCA8IHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uLmxlbmd0aCkge1xuICAgICAgICBjbGlja2VkTGlzdEVudHJ5ID0gdGhpcy5hY3Rpb25MaXN0cy5jb21tb25bdGhpcy5hY3RpdmVBY3Rpb25JbmRleF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGlja2VkTGlzdEVudHJ5ID0gdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyW3RoaXMuYWN0aXZlQWN0aW9uSW5kZXggLSB0aGlzLmFjdGlvbkxpc3RzLmNvbW1vbi5sZW5ndGhdO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkNsaWNrKGNsaWNrZWRMaXN0RW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FjdGlvbk1lbnUoKSB7XG4gICAgdGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9IDA7XG4gICAgdGhpcy5nZXRBY3Rpb25zKCk7XG4gICAgaWYgKHRoaXMudGFyZ2V0ID09PSAnRE1TX09CSkVDVCcpIHtcbiAgICAgIHRoaXMuZ2V0TW9yZUFjdGlvbnMoKTtcbiAgICB9XG4gICAgdGhpcy5zaG93TWVudSA9IHRydWU7XG4gICAgdGhpcy5jYXRjaEZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVBY3Rpb25NZW51KCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7XG4gICAgdGhpcy5hY3Rpb25MaXN0cyA9IHtjb21tb246IFtdLCBmdXJ0aGVyOiBbXX07XG4gIH1cblxuICBvbkNsaWNrKGFjdGlvbkxpc3RFbnRyeTogQWN0aW9uTGlzdEVudHJ5KSB7XG4gICAgdGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9IDA7XG4gICAgdGhpcy5zdWJTZWxlY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uO1xuICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgYWN0aW9ucyBpbXBsZW1lbnQgbW9yZSB0aGFuIG9uZSBhY3Rpb24gaW50ZXJmYWNlXG4gICAgLy8gc28gd2Ugc2hvdWxkIGJlIGF3YXJlIG9mIHJ1bm5pbmcgYW4gYWN0aW9uIGFuZCB0aGVuIG9wZW4gaXRzIHN1YiBhY3Rpb25zXG5cbiAgICBjb25zdCBpc1NpbXBsZUFjdGlvbiA9ICEhYWN0aW9uTGlzdEVudHJ5LmFjdGlvblsncnVuJ107XG4gICAgY29uc3QgaXNMaXN0QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnc3ViQWN0aW9uQ29tcG9uZW50cycpO1xuICAgIGNvbnN0IGlzQ29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnY29tcG9uZW50Jyk7XG4gICAgY29uc3QgaXNFeHRlcm5hbENvbXBvbmVudEFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24uaGFzT3duUHJvcGVydHkoJ2V4dENvbXBvbmVudHMnKTtcbiAgICBjb25zdCBpc1dvcmtGbG93QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvblsnZXhlY3V0YWJsZVByb2Nlc3MnXSAmJiBpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuICAgIGNvbnN0IGlzU2ltcGxlQWN0aW9uT25seSA9IGlzU2ltcGxlQWN0aW9uICYmICFpc0xpc3RBY3Rpb24gJiYgIWlzQ29tcG9uZW50QWN0aW9uICYmICFpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuXG4gICAgaWYgKGlzU2ltcGxlQWN0aW9uKSB7XG4gICAgICBjb25zdCBzaW1wbGVBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIFNpbXBsZUFjdGlvbjtcbiAgICAgIHNpbXBsZUFjdGlvbi5ydW4oYWN0aW9uTGlzdEVudHJ5LmF2YWlsYWJsZVNlbGVjdGlvbik7XG5cbiAgICAgIC8vIGhpZGUgYWN0aW9uIG1lbnUgaWYgbm90aGluZyBlbHNlIGlzIHRvIGJlIHNob3duL2RvbmVcbiAgICAgIGlmIChpc1NpbXBsZUFjdGlvbk9ubHkpIHtcbiAgICAgICAgdGhpcy5oaWRlQWN0aW9uTWVudSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0xpc3RBY3Rpb24pIHtcbiAgICAgIGNvbnN0IGxpc3RBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIExpc3RBY3Rpb247XG4gICAgICB0aGlzLnN1YkFjdGlvbnNMaXN0SGVhZGVyID0gbGlzdEFjdGlvbi5oZWFkZXI7XG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgICAgLmdldEV4ZWN1dGFibGVBY3Rpb25zTGlzdEZyb21HaXZlbkFjdGlvbnMobGlzdEFjdGlvbi5zdWJBY3Rpb25Db21wb25lbnRzLCB0aGlzLnNlbGVjdGlvbiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgICAuc3Vic2NyaWJlKChhY3Rpb25zTGlzdDogQWN0aW9uTGlzdEVudHJ5W10pID0+IHRoaXMuc3ViQWN0aW9uc0xpc3QgPSBhY3Rpb25zTGlzdCk7XG4gICAgfSBlbHNlIGlmIChpc0NvbXBvbmVudEFjdGlvbikge1xuICAgICAgY29uc3QgY29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBDb21wb25lbnRBY3Rpb247XG4gICAgICB0aGlzLnNob3dBY3Rpb25Db21wb25lbnQoY29tcG9uZW50QWN0aW9uLmNvbXBvbmVudCwgdGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvciwgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAoaXNFeHRlcm5hbENvbXBvbmVudEFjdGlvbiAmJiAhaXNXb3JrRmxvd0FjdGlvbikge1xuICAgICAgY29uc3QgZXh0Q29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBFeHRlcm5hbENvbXBvbmVudEFjdGlvbjtcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkNvbXBvbmVudChleHRDb21wb25lbnRBY3Rpb24uZXh0Q29tcG9uZW50cywgdGhpcy5leHRlcm5hbERpYWxvZywgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKGlzV29ya0Zsb3dBY3Rpb24pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBleHRDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIEV4dGVybmFsUHJvY2Vzc0NvbXBvbmVudEFjdGlvbjtcbiAgICAgICAgdGhpcy5zaG93QWN0aW9uQ29tcG9uZW50KGV4dENvbXBvbmVudEFjdGlvbi5leHRDb21wb25lbnRzLCB0aGlzLmV4dGVybmFsRGlhbG9nLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICBmYWxzZSwge2V4ZWN1dGFibGVQcm9jZXNzOiBleHRDb21wb25lbnRBY3Rpb24uZXhlY3V0YWJsZVByb2Nlc3N9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FjdGlvbkNvbXBvbmVudChjb21wb25lbnQ6IFR5cGU8YW55Piwgdmlld0NvbnRSZWYsIGZhY3RvcnlSZXNvbHZlciwgc2hvd0NvbXBvbmVudCwgaW5wdXRzPzogYW55KSB7XG4gICAgdGhpcy5zaG93Q29tcG9uZW50ID0gc2hvd0NvbXBvbmVudDtcbiAgICBsZXQgY29tcG9uZW50RmFjdG9yeSA9IGZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuICAgIGxldCBhbmNob3JWaWV3Q29udGFpbmVyUmVmID0gdmlld0NvbnRSZWYudmlld0NvbnRhaW5lclJlZjtcbiAgICBhbmNob3JWaWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IGFuY2hvclZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc2VsZWN0aW9uID0gdGhpcy5zdWJTZWxlY3Rpb24gfHwgdGhpcy5zZWxlY3Rpb247XG4gICAgKDxBY3Rpb25Db21wb25lbnQ+Y29tcG9uZW50UmVmLmluc3RhbmNlKS5jYW5jZWxlZC5waXBlKHRha2UoMSksIHRhcCgoKSA9PiAodGhpcy5zdWJTZWxlY3Rpb24gPSBudWxsKSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2FuY2VsKCkpO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZmluaXNoZWQucGlwZSh0YWtlKDEpLCB0YXAoKCkgPT4gKHRoaXMuc3ViU2VsZWN0aW9uID0gbnVsbCkpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkZpbmlzaCgpKTtcbiAgICBpZiAoaW5wdXRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhpbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IGlucHV0c1trZXldO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaXNMaW5rQWN0aW9uKGFjdGlvbikge1xuICAgIC8vIHVzZWQgZnJvbSB3aXRoaW4gdGVtcGxhdGVcbiAgICByZXR1cm4gISEoYWN0aW9uICYmIGFjdGlvbi5nZXRMaW5rICYmIGFjdGlvbi5nZXRQYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhcigpIHtcbiAgICB0aGlzLnNob3dDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLnN1YkFjdGlvbnNMaXN0ID0gbnVsbDtcbiAgICB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBpZiAodGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvcikge1xuICAgICAgdGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvci52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuY2F0Y2hGb2N1cygpO1xuICB9XG5cbiAgb25GaW5pc2goKSB7XG4gICAgdGhpcy5oaWRlQWN0aW9uTWVudSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWN0aW9uLW1lbnUgZGFya1wiICpuZ0lmPVwic2hvd01lbnVcIiAoZW9PdXRzaWRlQ2xpY2spPVwiaGlkZSgpXCI+XG5cbiAgPGRpdiBjbGFzcz1cImhlYWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgdHJhbnNsYXRlPmVvLmFjdGlvbnMuc3RpY2t5LnRpdGxlPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlXCIgKm5nSWY9XCJzZWxlY3Rpb24/Lmxlbmd0aCA+IDE7IGVsc2UgbXVsdGlcIiB0cmFuc2xhdGU+ZW8uYWN0aW9ucy5zdGlja3kudGl0bGUuc3ViLnNlbGVjdGlvbjwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10aXRsZVwiICpuZ0lmPVwic2VsZWN0aW9uICYmIHNlbGVjdGlvbi5sZW5ndGhcIj48c3BhbiB0cmFuc2xhdGU+ZW8uYWN0aW9ucy5zdGlja3kudGl0bGUuc3ViLmZvcjwvc3Bhbj4gJ3t7c2VsZWN0aW9uWzBdLnRpdGxlfX0nPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudFwiPnt7c3ViU2VsZWN0aW9uPy5sZW5ndGggfHwgc2VsZWN0aW9uPy5sZW5ndGggfHwgJyd9fTwvc3Bhbj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiIChjbGljayk9XCJoaWRlKClcIj48L2VvLWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgW2hpZGRlbl09XCJzdWJBY3Rpb25zTGlzdCB8fCBzaG93Q29tcG9uZW50XCI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2FjdGlvbiBsZXQtZW50cnkgbGV0LWlkPlxuXG4gICAgICA8YSAqbmdJZj1cImlzTGlua0FjdGlvbihlbnRyeS5hY3Rpb24pOyBlbHNlIGRlZmF1bHRcIiBjbGFzcz1cImxpbmtcIlxuICAgICAgICAgW3JvdXRlckxpbmtdPVwiZW50cnkuYWN0aW9uLmdldExpbmsoZW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uKVwiXG4gICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZW50cnkuYWN0aW9uLmdldFBhcmFtcyhlbnRyeS5hdmFpbGFibGVTZWxlY3Rpb24sIHRydWUpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2E+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCJlbnRyeS5hY3Rpb24uaWNvblNyY1wiIFtpY29uSWRdPVwiZW50cnkuYWN0aW9uLmljb25JZFwiXG4gICAgICAgICAgW2JhZGdlXT1cImVudHJ5LmF2YWlsYWJsZVNlbGVjdGlvbj8ubGVuZ3RoICE9IHNlbGVjdGlvbj8ubGVuZ3RoID8gZW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uPy5sZW5ndGggOiBudWxsXCI+PC9lby1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7ZW50cnkuYWN0aW9uLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhdmFpbGFibGUtY291bnRcIiAqbmdJZj1cImVudHJ5LmF2YWlsYWJsZVNlbGVjdGlvbj8ubGVuZ3RoICE9IHNlbGVjdGlvbj8ubGVuZ3RoXCI+e3tlbnRyeS5hdmFpbGFibGVTZWxlY3Rpb24/Lmxlbmd0aH19PC9kaXY+IC0tPlxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiaW5mby1pY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5mby5zdmcnXCIgKGNsaWNrKT1cInNob3dBY3Rpb25EZXNjcmlwdGlvbihpZCwgJGV2ZW50KVwiPjwvZW8taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIFtoaWRkZW5dPVwiaWQgIT09IGFjdGlvbkRlc2NyaXB0aW9uXCI+e3tlbnRyeS5hY3Rpb24uZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBjbGFzcz1cImdyb3VwXCIgKm5nSWY9XCJhY3Rpb25MaXN0cz8uY29tbW9uLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cC10aXRsZVwiIHRyYW5zbGF0ZT5lby5hY3Rpb25zLmdyb3VwLmNvbW1vbjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvblwiIGlkPVwie3thY3Rpb25MaXN0RW50cnkuaWR9fVwiIChrZXlkb3duKT1cImlzQXJyb3dVcE9yRG93blByZXNzZWQoJGV2ZW50KVwiIFthdHRyLnRhYmluZGV4XT1cIjBcIiAqbmdGb3I9XCJsZXQgYWN0aW9uTGlzdEVudHJ5IG9mIGFjdGlvbkxpc3RzLmNvbW1vbjsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKGFjdGlvbkxpc3RFbnRyeSlcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBhY3RpdmVBY3Rpb25JbmRleCA9PT0gaX1cIj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBhY3Rpb25MaXN0RW50cnksIGlkOiAraX1cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIiAqbmdJZj1cIiFsb2FkaW5nOyBlbHNlIGxvYWRlclwiPlxuICAgICAgPGRpdiAqbmdJZj1cImFjdGlvbkxpc3RzPy5mdXJ0aGVyLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXRpdGxlXCIgdHJhbnNsYXRlPmVvLmFjdGlvbnMuZ3JvdXAuZnVydGhlcl9hY3Rpb25zPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25cIiBpZD1cInt7YWN0aW9uTGlzdEVudHJ5LmlkfX1cIiAoa2V5ZG93bik9XCJpc0Fycm93VXBPckRvd25QcmVzc2VkKCRldmVudClcIiAqbmdGb3I9XCJsZXQgYWN0aW9uTGlzdEVudHJ5IG9mIGFjdGlvbkxpc3RzLmZ1cnRoZXI7IGluZGV4IGFzIGlcIlxuICAgICAgICAgIGVvUHJldmVudERvdWJsZUNsaWNrIFtuZ0NsYXNzXT1cInthY3RpdmU6IGFjdGl2ZUFjdGlvbkluZGV4ID09PSBpICsgYWN0aW9uTGlzdHM/LmNvbW1vbi5sZW5ndGggfVwiXG4gICAgICAgICAgKGRlYm91bmNlQ2xpY2spPVwib25DbGljayhhY3Rpb25MaXN0RW50cnkpXCI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBhY3Rpb25MaXN0RW50cnksIGlkOiAnZicraX1cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdyb3VwXCIgKm5nSWY9XCIhbG9hZGluZyAmJiAhYWN0aW9uTGlzdHM/LmZ1cnRoZXIubGVuZ3RoICYmICFhY3Rpb25MaXN0cz8uY29tbW9uLmxlbmd0aFwiIFtzdHlsZS50ZXh0QWxpZ25dPVwiJ2NlbnRlcidcIj5cbiAgICAgIHt7ICdlby5hY3Rpb24ubm90LmF2YWlsYWJsZScgfCB0cmFuc2xhdGV9fVxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNsb2FkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cbiAgICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbWVkaXVtJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPCEtLSBzdWIgYWN0aW9ucyAtLT5cbiAgPGRpdiAgY2xhc3M9XCJncm91cCBzdWJcIiAqbmdJZj1cInN1YkFjdGlvbnNMaXN0ICYmICFzaG93Q29tcG9uZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInN1Yi1hY3Rpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtdGl0bGVcIj57e3N1YkFjdGlvbnNMaXN0SGVhZGVyfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24gc3ViXCIgKm5nRm9yPVwibGV0IGFjdGlvbkxpc3RFbnRyeSBvZiBzdWJBY3Rpb25zTGlzdDsgaW5kZXggYXMgaVwiIChjbGljayk9XCJvbkNsaWNrKGFjdGlvbkxpc3RFbnRyeSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbjsgY29udGV4dDogeyRpbXBsaWNpdDogYWN0aW9uTGlzdEVudHJ5LCBpZDogJ3MnK2l9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtYnV0dG9uc1wiPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWwoKVwiIHRyYW5zbGF0ZT5lby5leHBvcnQuY2FuY2VsPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXY+XG4gICAgPG5nLXRlbXBsYXRlIGVvQWN0aW9uQ29tcG9uZW50QW5jaG9yPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG4gIDxkaXY+XG4gICAgPG5nLXRlbXBsYXRlIGVvRXh0QWN0aW9uQ29tcG9uZW50QW5jaG9yPjwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvYWN0aW9ucy9hY3Rpb24tbWVudS9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbi1tZW51L2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUE4QyxTQUFTLEVBQW9CLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBQyxlQUFlLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLakQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sNkRBQTZELENBQUM7Ozs7Ozs7Ozs7OztBQVNwRyxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQXFCOUIsWUFBb0IsYUFBNEIsRUFDNUIsTUFBYyxFQUNmLGdCQUFrQyxFQUNqQyxPQUFtQixFQUNuQix3QkFBa0Q7UUFKbEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBckJ0RSxnQkFBVyxHQUdQO1lBQ0YsTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVB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Q0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBMU1VLG1CQUFtQjtrR0FBbkIsbUJBQW1CLCtHQUVuQiw4QkFBOEIsaUZBQzlCLDhCQUE4QixnRENyQjNDLHU0SUE4RkE7O0FENUVhLG1CQUFtQjtJQVAvQixZQUFZLEVBQUU7R0FPRixtQkFBbUIsQ0EyTS9COzsyRkEzTVksbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJO3NNQUlNLHVCQUF1QjtzQkFBakUsU0FBUzt1QkFBQyw4QkFBOEI7Z0JBQ0UsY0FBYztzQkFBeEQsU0FBUzt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbGVtZW50UmVmLCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1V0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtmaWx0ZXIsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBY3Rpb25TZXJ2aWNlLCBBY3Rpb25TaG93Q29tbWFuZH0gZnJvbSAnLi4vYWN0aW9uLXNlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtBY3Rpb25MaXN0RW50cnl9IGZyb20gJy4uL2ludGVyZmFjZXMvYWN0aW9uLWxpc3QtZW50cnknO1xuaW1wb3J0IHtDb21wb25lbnRBY3Rpb24sIEV4dGVybmFsQ29tcG9uZW50QWN0aW9uLCBFeHRlcm5hbFByb2Nlc3NDb21wb25lbnRBY3Rpb24sIExpc3RBY3Rpb24sIFNpbXBsZUFjdGlvbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9hY3Rpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlfSBmcm9tICcuL2FjdGlvbi1jb21wb25lbnQtYW5jaG9yL2FjdGlvbi1jb21wb25lbnQtYW5jaG9yLmRpcmVjdGl2ZSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWN0aW9uLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFjdGlvbk1lbnVDb21wb25lbnQge1xuXG4gIEBWaWV3Q2hpbGQoQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlKSBlb0FjdGlvbkNvbXBvbmVudEFuY2hvcjogQWN0aW9uQ29tcG9uZW50QW5jaG9yRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZSkgZXh0ZXJuYWxEaWFsb2c6IEFjdGlvbkNvbXBvbmVudEFuY2hvckRpcmVjdGl2ZTtcbiAgYWN0aW9uTGlzdHM6IHtcbiAgICBjb21tb246IEFjdGlvbkxpc3RFbnRyeVtdLFxuICAgIGZ1cnRoZXI6IEFjdGlvbkxpc3RFbnRyeVtdXG4gIH0gPSB7XG4gICAgY29tbW9uOiBbXSwgZnVydGhlcjogW11cbiAgfTtcbiAgc3ViQWN0aW9uc0xpc3RIZWFkZXIgPSAnJztcbiAgc3ViQWN0aW9uc0xpc3Q6IEFjdGlvbkxpc3RFbnRyeVtdO1xuICBzZWxlY3Rpb246IGFueVtdO1xuICBzdWJTZWxlY3Rpb246IGFueVtdO1xuICB0YXJnZXQ6IHN0cmluZztcbiAgc2hvd0NvbXBvbmVudCA9IGZhbHNlO1xuICBhY3Rpb25EZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzaG93TWVudSA9IGZhbHNlO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGFjdGl2ZUFjdGlvbkluZGV4ID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGVsZW1SZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcblxuICAgIC8vIHN1YnNjcmliZSBmb3IgdmlzaWJpbGl0eSBvYnNlcnZhYmxlIGluZGljYXRpbmcgd2hldGhlciB0byBzaG93IG9yIGhpZGUgdGhlIGFjdGlvbnNcbiAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgIC5hY3Rpb25zU2hvd2luZyQucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoY21kOiBBY3Rpb25TaG93Q29tbWFuZCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc2hvd01lbnUgJiYgY21kLnNob3cpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IGNtZC5zZWxlY3Rpb247XG4gICAgICAgICAgdGhpcy50YXJnZXQgPSBjbWQudGFyZ2V0O1xuICAgICAgICAgIHRoaXMuc2hvd0FjdGlvbk1lbnUoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNob3dNZW51ICYmICFjbWQuc2hvdykge1xuICAgICAgICAgIHRoaXMuaGlkZUFjdGlvbk1lbnUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgICAgZmlsdGVyKGV2dCA9PiBldnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhpZGUoKSk7XG5cbiAgfVxuXG4gIHByaXZhdGUgZ2V0QWN0aW9ucygpIHtcbiAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgIC5nZXRBY3Rpb25zTGlzdCh0aGlzLnNlbGVjdGlvbiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgLnN1YnNjcmliZShhY3Rpb25zTGlzdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uID0gYWN0aW9uc0xpc3QuZmlsdGVyKGFjdGlvbkxpc3RFbnRyeSA9PiBhY3Rpb25MaXN0RW50cnkuYWN0aW9uLmdyb3VwID09PSAnY29tbW9uJyk7XG4gICAgICAgIHRoaXMuYWN0aW9uTGlzdHMuZnVydGhlciA9IGFjdGlvbnNMaXN0LmZpbHRlcihhY3Rpb25MaXN0RW50cnkgPT4gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5ncm91cCA9PT0gJ2Z1cnRoZXInKTtcbiAgICAgIH0pO1xuXG4gIH1cblxuICBwcml2YXRlIGdldE1vcmVBY3Rpb25zKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlXG4gICAgICAuZ2V0TW9yZUFjdGlvbnModGhpcy5zZWxlY3Rpb24sIHRoaXMudmlld0NvbnRhaW5lclJlZilcbiAgICAgIC5zdWJzY3JpYmUoYWN0aW9uTGlzdCA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIgPSB0aGlzLmFjdGlvbkxpc3RzLmZ1cnRoZXIuY29uY2F0KGFjdGlvbkxpc3QpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnYWN0aW9uLmxhYmVsJykpO1xuICAgICAgfSwgVXRpbHMudGhyb3coKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpKTtcbiAgfVxuXG4gIGhpZGUoKSB7XG4gICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmhpZGVBY3Rpb25zKCk7XG4gIH1cblxuICBzaG93QWN0aW9uRGVzY3JpcHRpb24oaSwgZXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWN0aW9uRGVzY3JpcHRpb24gPSBpID09PSB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID8gbnVsbCA6IGk7XG4gIH1cblxuICBjYXRjaEZvY3VzKCkgeyAgICBcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZWxlbVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1t0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgIH0sKTtcbiAgfVxuXG4gIGlzQXJyb3dVcE9yRG93blByZXNzZWQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXkgPSBldmVudC5rZXk7XG4gICAgbGV0IGxlbmd0aCA9IHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uLmxlbmd0aCArIHRoaXMuYWN0aW9uTGlzdHMuZnVydGhlci5sZW5ndGggLSAxO1xuICAgIGlmIChrZXkgPT09ICdBcnJvd1VwJyB8fCAoZXZlbnQuc2hpZnRLZXkgJiYga2V5ID09PSAnVGFiJykgKSB7XG4gICAgICB0aGlzLmFjdGl2ZUFjdGlvbkluZGV4ID0gKHRoaXMuYWN0aXZlQWN0aW9uSW5kZXggPT09IDApID8gbGVuZ3RoIDogdGhpcy5hY3RpdmVBY3Rpb25JbmRleCAtIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdBcnJvd0Rvd24nIHx8IGtleSA9PT0gJ1RhYicpIHtcbiAgICAgIHRoaXMuYWN0aXZlQWN0aW9uSW5kZXggPSAodGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9PT0gbGVuZ3RoKSA/IDAgOiB0aGlzLmFjdGl2ZUFjdGlvbkluZGV4ICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0VudGVyJykge1xuICAgICAgbGV0IGNsaWNrZWRMaXN0RW50cnk7XG4gICAgICBpZiAodGhpcy5hY3RpdmVBY3Rpb25JbmRleCA8IHRoaXMuYWN0aW9uTGlzdHMuY29tbW9uLmxlbmd0aCkge1xuICAgICAgICBjbGlja2VkTGlzdEVudHJ5ID0gdGhpcy5hY3Rpb25MaXN0cy5jb21tb25bdGhpcy5hY3RpdmVBY3Rpb25JbmRleF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGlja2VkTGlzdEVudHJ5ID0gdGhpcy5hY3Rpb25MaXN0cy5mdXJ0aGVyW3RoaXMuYWN0aXZlQWN0aW9uSW5kZXggLSB0aGlzLmFjdGlvbkxpc3RzLmNvbW1vbi5sZW5ndGhdO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkNsaWNrKGNsaWNrZWRMaXN0RW50cnkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FjdGlvbk1lbnUoKSB7XG4gICAgdGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9IDA7XG4gICAgdGhpcy5nZXRBY3Rpb25zKCk7XG4gICAgaWYgKHRoaXMudGFyZ2V0ID09PSAnRE1TX09CSkVDVCcpIHtcbiAgICAgIHRoaXMuZ2V0TW9yZUFjdGlvbnMoKTtcbiAgICB9XG4gICAgdGhpcy5zaG93TWVudSA9IHRydWU7XG4gICAgdGhpcy5jYXRjaEZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVBY3Rpb25NZW51KCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICB0aGlzLnNob3dNZW51ID0gZmFsc2U7XG4gICAgdGhpcy5hY3Rpb25MaXN0cyA9IHtjb21tb246IFtdLCBmdXJ0aGVyOiBbXX07XG4gIH1cblxuICBvbkNsaWNrKGFjdGlvbkxpc3RFbnRyeTogQWN0aW9uTGlzdEVudHJ5KSB7XG4gICAgdGhpcy5hY3RpdmVBY3Rpb25JbmRleCA9IDA7XG4gICAgdGhpcy5zdWJTZWxlY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uO1xuICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgYWN0aW9ucyBpbXBsZW1lbnQgbW9yZSB0aGFuIG9uZSBhY3Rpb24gaW50ZXJmYWNlXG4gICAgLy8gc28gd2Ugc2hvdWxkIGJlIGF3YXJlIG9mIHJ1bm5pbmcgYW4gYWN0aW9uIGFuZCB0aGVuIG9wZW4gaXRzIHN1YiBhY3Rpb25zXG5cbiAgICBjb25zdCBpc1NpbXBsZUFjdGlvbiA9ICEhYWN0aW9uTGlzdEVudHJ5LmFjdGlvblsncnVuJ107XG4gICAgY29uc3QgaXNMaXN0QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnc3ViQWN0aW9uQ29tcG9uZW50cycpO1xuICAgIGNvbnN0IGlzQ29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbi5oYXNPd25Qcm9wZXJ0eSgnY29tcG9uZW50Jyk7XG4gICAgY29uc3QgaXNFeHRlcm5hbENvbXBvbmVudEFjdGlvbiA9IGFjdGlvbkxpc3RFbnRyeS5hY3Rpb24uaGFzT3duUHJvcGVydHkoJ2V4dENvbXBvbmVudHMnKTtcbiAgICBjb25zdCBpc1dvcmtGbG93QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvblsnZXhlY3V0YWJsZVByb2Nlc3MnXSAmJiBpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuICAgIGNvbnN0IGlzU2ltcGxlQWN0aW9uT25seSA9IGlzU2ltcGxlQWN0aW9uICYmICFpc0xpc3RBY3Rpb24gJiYgIWlzQ29tcG9uZW50QWN0aW9uICYmICFpc0V4dGVybmFsQ29tcG9uZW50QWN0aW9uO1xuXG4gICAgaWYgKGlzU2ltcGxlQWN0aW9uKSB7XG4gICAgICBjb25zdCBzaW1wbGVBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIFNpbXBsZUFjdGlvbjtcbiAgICAgIHNpbXBsZUFjdGlvbi5ydW4oYWN0aW9uTGlzdEVudHJ5LmF2YWlsYWJsZVNlbGVjdGlvbik7XG5cbiAgICAgIC8vIGhpZGUgYWN0aW9uIG1lbnUgaWYgbm90aGluZyBlbHNlIGlzIHRvIGJlIHNob3duL2RvbmVcbiAgICAgIGlmIChpc1NpbXBsZUFjdGlvbk9ubHkpIHtcbiAgICAgICAgdGhpcy5oaWRlQWN0aW9uTWVudSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0xpc3RBY3Rpb24pIHtcbiAgICAgIGNvbnN0IGxpc3RBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIExpc3RBY3Rpb247XG4gICAgICB0aGlzLnN1YkFjdGlvbnNMaXN0SGVhZGVyID0gbGlzdEFjdGlvbi5oZWFkZXI7XG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2VcbiAgICAgICAgLmdldEV4ZWN1dGFibGVBY3Rpb25zTGlzdEZyb21HaXZlbkFjdGlvbnMobGlzdEFjdGlvbi5zdWJBY3Rpb25Db21wb25lbnRzLCB0aGlzLnNlbGVjdGlvbiwgdGhpcy52aWV3Q29udGFpbmVyUmVmKVxuICAgICAgICAuc3Vic2NyaWJlKChhY3Rpb25zTGlzdDogQWN0aW9uTGlzdEVudHJ5W10pID0+IHRoaXMuc3ViQWN0aW9uc0xpc3QgPSBhY3Rpb25zTGlzdCk7XG4gICAgfSBlbHNlIGlmIChpc0NvbXBvbmVudEFjdGlvbikge1xuICAgICAgY29uc3QgY29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBDb21wb25lbnRBY3Rpb247XG4gICAgICB0aGlzLnNob3dBY3Rpb25Db21wb25lbnQoY29tcG9uZW50QWN0aW9uLmNvbXBvbmVudCwgdGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvciwgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIHRydWUpO1xuICAgIH0gZWxzZSBpZiAoaXNFeHRlcm5hbENvbXBvbmVudEFjdGlvbiAmJiAhaXNXb3JrRmxvd0FjdGlvbikge1xuICAgICAgY29uc3QgZXh0Q29tcG9uZW50QWN0aW9uID0gYWN0aW9uTGlzdEVudHJ5LmFjdGlvbiBhcyBFeHRlcm5hbENvbXBvbmVudEFjdGlvbjtcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkNvbXBvbmVudChleHRDb21wb25lbnRBY3Rpb24uZXh0Q29tcG9uZW50cywgdGhpcy5leHRlcm5hbERpYWxvZywgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKGlzV29ya0Zsb3dBY3Rpb24pIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBleHRDb21wb25lbnRBY3Rpb24gPSBhY3Rpb25MaXN0RW50cnkuYWN0aW9uIGFzIEV4dGVybmFsUHJvY2Vzc0NvbXBvbmVudEFjdGlvbjtcbiAgICAgICAgdGhpcy5zaG93QWN0aW9uQ29tcG9uZW50KGV4dENvbXBvbmVudEFjdGlvbi5leHRDb21wb25lbnRzLCB0aGlzLmV4dGVybmFsRGlhbG9nLCB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICBmYWxzZSwge2V4ZWN1dGFibGVQcm9jZXNzOiBleHRDb21wb25lbnRBY3Rpb24uZXhlY3V0YWJsZVByb2Nlc3N9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd0FjdGlvbkNvbXBvbmVudChjb21wb25lbnQ6IFR5cGU8YW55Piwgdmlld0NvbnRSZWYsIGZhY3RvcnlSZXNvbHZlciwgc2hvd0NvbXBvbmVudCwgaW5wdXRzPzogYW55KSB7XG4gICAgdGhpcy5zaG93Q29tcG9uZW50ID0gc2hvd0NvbXBvbmVudDtcbiAgICBsZXQgY29tcG9uZW50RmFjdG9yeSA9IGZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuICAgIGxldCBhbmNob3JWaWV3Q29udGFpbmVyUmVmID0gdmlld0NvbnRSZWYudmlld0NvbnRhaW5lclJlZjtcbiAgICBhbmNob3JWaWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IGFuY2hvclZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc2VsZWN0aW9uID0gdGhpcy5zdWJTZWxlY3Rpb24gfHwgdGhpcy5zZWxlY3Rpb247XG4gICAgKDxBY3Rpb25Db21wb25lbnQ+Y29tcG9uZW50UmVmLmluc3RhbmNlKS5jYW5jZWxlZC5waXBlKHRha2UoMSksIHRhcCgoKSA9PiAodGhpcy5zdWJTZWxlY3Rpb24gPSBudWxsKSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2FuY2VsKCkpO1xuICAgICg8QWN0aW9uQ29tcG9uZW50PmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZmluaXNoZWQucGlwZSh0YWtlKDEpLCB0YXAoKCkgPT4gKHRoaXMuc3ViU2VsZWN0aW9uID0gbnVsbCkpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkZpbmlzaCgpKTtcbiAgICBpZiAoaW5wdXRzKSB7XG4gICAgICBPYmplY3Qua2V5cyhpbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IGlucHV0c1trZXldO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaXNMaW5rQWN0aW9uKGFjdGlvbikge1xuICAgIC8vIHVzZWQgZnJvbSB3aXRoaW4gdGVtcGxhdGVcbiAgICByZXR1cm4gISEoYWN0aW9uICYmIGFjdGlvbi5nZXRMaW5rICYmIGFjdGlvbi5nZXRQYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhcigpIHtcbiAgICB0aGlzLnNob3dDb21wb25lbnQgPSBmYWxzZTtcbiAgICB0aGlzLnN1YkFjdGlvbnNMaXN0ID0gbnVsbDtcbiAgICB0aGlzLmFjdGlvbkRlc2NyaXB0aW9uID0gbnVsbDtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBpZiAodGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvcikge1xuICAgICAgdGhpcy5lb0FjdGlvbkNvbXBvbmVudEFuY2hvci52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuY2F0Y2hGb2N1cygpO1xuICB9XG5cbiAgb25GaW5pc2goKSB7XG4gICAgdGhpcy5oaWRlQWN0aW9uTWVudSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWN0aW9uLW1lbnUgZGFya1wiICpuZ0lmPVwic2hvd01lbnVcIiAoZW9PdXRzaWRlQ2xpY2spPVwiaGlkZSgpXCI+XG5cbiAgPGRpdiBjbGFzcz1cImhlYWRcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgdHJhbnNsYXRlPmVvLmFjdGlvbnMuc3RpY2t5LnRpdGxlPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlXCIgKm5nSWY9XCJzZWxlY3Rpb24/Lmxlbmd0aCA+IDE7IGVsc2UgbXVsdGlcIiB0cmFuc2xhdGU+ZW8uYWN0aW9ucy5zdGlja3kudGl0bGUuc3ViLnNlbGVjdGlvbjwvZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlICNtdWx0aT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10aXRsZVwiICpuZ0lmPVwic2VsZWN0aW9uICYmIHNlbGVjdGlvbi5sZW5ndGhcIj48c3BhbiB0cmFuc2xhdGU+ZW8uYWN0aW9ucy5zdGlja3kudGl0bGUuc3ViLmZvcjwvc3Bhbj4gJ3t7c2VsZWN0aW9uWzBdLnRpdGxlfX0nPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjb3VudFwiPnt7c3ViU2VsZWN0aW9uPy5sZW5ndGggfHwgc2VsZWN0aW9uPy5sZW5ndGggfHwgJyd9fTwvc3Bhbj5cbiAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY2xlYXIuc3ZnJ1wiIChjbGljayk9XCJoaWRlKClcIj48L2VvLWljb24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgW2hpZGRlbl09XCJzdWJBY3Rpb25zTGlzdCB8fCBzaG93Q29tcG9uZW50XCI+XG5cbiAgICA8bmctdGVtcGxhdGUgI2FjdGlvbiBsZXQtZW50cnkgbGV0LWlkPlxuXG4gICAgICA8YSAqbmdJZj1cImlzTGlua0FjdGlvbihlbnRyeS5hY3Rpb24pOyBlbHNlIGRlZmF1bHRcIiBjbGFzcz1cImxpbmtcIlxuICAgICAgICAgW3JvdXRlckxpbmtdPVwiZW50cnkuYWN0aW9uLmdldExpbmsoZW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uKVwiXG4gICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZW50cnkuYWN0aW9uLmdldFBhcmFtcyhlbnRyeS5hdmFpbGFibGVTZWxlY3Rpb24sIHRydWUpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2E+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZW8taWNvbiBbaWNvblNyY109XCJlbnRyeS5hY3Rpb24uaWNvblNyY1wiIFtpY29uSWRdPVwiZW50cnkuYWN0aW9uLmljb25JZFwiXG4gICAgICAgICAgW2JhZGdlXT1cImVudHJ5LmF2YWlsYWJsZVNlbGVjdGlvbj8ubGVuZ3RoICE9IHNlbGVjdGlvbj8ubGVuZ3RoID8gZW50cnkuYXZhaWxhYmxlU2VsZWN0aW9uPy5sZW5ndGggOiBudWxsXCI+PC9lby1pY29uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiPnt7ZW50cnkuYWN0aW9uLmxhYmVsfX08L2Rpdj5cbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJhdmFpbGFibGUtY291bnRcIiAqbmdJZj1cImVudHJ5LmF2YWlsYWJsZVNlbGVjdGlvbj8ubGVuZ3RoICE9IHNlbGVjdGlvbj8ubGVuZ3RoXCI+e3tlbnRyeS5hdmFpbGFibGVTZWxlY3Rpb24/Lmxlbmd0aH19PC9kaXY+IC0tPlxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiaW5mby1pY29uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfaW5mby5zdmcnXCIgKGNsaWNrKT1cInNob3dBY3Rpb25EZXNjcmlwdGlvbihpZCwgJGV2ZW50KVwiPjwvZW8taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiIFtoaWRkZW5dPVwiaWQgIT09IGFjdGlvbkRlc2NyaXB0aW9uXCI+e3tlbnRyeS5hY3Rpb24uZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBjbGFzcz1cImdyb3VwXCIgKm5nSWY9XCJhY3Rpb25MaXN0cz8uY29tbW9uLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJncm91cC10aXRsZVwiIHRyYW5zbGF0ZT5lby5hY3Rpb25zLmdyb3VwLmNvbW1vbjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvblwiIGlkPVwie3thY3Rpb25MaXN0RW50cnkuaWR9fVwiIChrZXlkb3duKT1cImlzQXJyb3dVcE9yRG93blByZXNzZWQoJGV2ZW50KVwiIFthdHRyLnRhYmluZGV4XT1cIjBcIiAqbmdGb3I9XCJsZXQgYWN0aW9uTGlzdEVudHJ5IG9mIGFjdGlvbkxpc3RzLmNvbW1vbjsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKGFjdGlvbkxpc3RFbnRyeSlcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBhY3RpdmVBY3Rpb25JbmRleCA9PT0gaX1cIj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBhY3Rpb25MaXN0RW50cnksIGlkOiAraX1cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBcIiAqbmdJZj1cIiFsb2FkaW5nOyBlbHNlIGxvYWRlclwiPlxuICAgICAgPGRpdiAqbmdJZj1cImFjdGlvbkxpc3RzPy5mdXJ0aGVyLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyb3VwLXRpdGxlXCIgdHJhbnNsYXRlPmVvLmFjdGlvbnMuZ3JvdXAuZnVydGhlcl9hY3Rpb25zPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25cIiBpZD1cInt7YWN0aW9uTGlzdEVudHJ5LmlkfX1cIiAoa2V5ZG93bik9XCJpc0Fycm93VXBPckRvd25QcmVzc2VkKCRldmVudClcIiAqbmdGb3I9XCJsZXQgYWN0aW9uTGlzdEVudHJ5IG9mIGFjdGlvbkxpc3RzLmZ1cnRoZXI7IGluZGV4IGFzIGlcIlxuICAgICAgICAgIGVvUHJldmVudERvdWJsZUNsaWNrIFtuZ0NsYXNzXT1cInthY3RpdmU6IGFjdGl2ZUFjdGlvbkluZGV4ID09PSBpICsgYWN0aW9uTGlzdHM/LmNvbW1vbi5sZW5ndGggfVwiXG4gICAgICAgICAgKGRlYm91bmNlQ2xpY2spPVwib25DbGljayhhY3Rpb25MaXN0RW50cnkpXCI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uOyBjb250ZXh0OiB7JGltcGxpY2l0OiBhY3Rpb25MaXN0RW50cnksIGlkOiAnZicraX1cIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdyb3VwXCIgKm5nSWY9XCIhbG9hZGluZyAmJiAhYWN0aW9uTGlzdHM/LmZ1cnRoZXIubGVuZ3RoICYmICFhY3Rpb25MaXN0cz8uY29tbW9uLmxlbmd0aFwiIFtzdHlsZS50ZXh0QWxpZ25dPVwiJ2NlbnRlcidcIj5cbiAgICAgIHt7ICdlby5hY3Rpb24ubm90LmF2YWlsYWJsZScgfCB0cmFuc2xhdGV9fVxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNsb2FkZXI+XG4gICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cbiAgICAgICAgPGVvLWxvYWRpbmctc3Bpbm5lciBbc2l6ZV09XCInbWVkaXVtJ1wiPjwvZW8tbG9hZGluZy1zcGlubmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPCEtLSBzdWIgYWN0aW9ucyAtLT5cbiAgPGRpdiAgY2xhc3M9XCJncm91cCBzdWJcIiAqbmdJZj1cInN1YkFjdGlvbnNMaXN0ICYmICFzaG93Q29tcG9uZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInN1Yi1hY3Rpb25zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtdGl0bGVcIj57e3N1YkFjdGlvbnNMaXN0SGVhZGVyfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24gc3ViXCIgKm5nRm9yPVwibGV0IGFjdGlvbkxpc3RFbnRyeSBvZiBzdWJBY3Rpb25zTGlzdDsgaW5kZXggYXMgaVwiIChjbGljayk9XCJvbkNsaWNrKGFjdGlvbkxpc3RFbnRyeSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbjsgY29udGV4dDogeyRpbXBsaWNpdDogYWN0aW9uTGlzdEVudHJ5LCBpZDogJ3MnK2l9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ3JvdXAtYnV0dG9uc1wiPlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25DYW5jZWwoKVwiIHRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSBlb0FjdGlvbkNvbXBvbmVudEFuY2hvcj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxuZy10ZW1wbGF0ZSBlb0V4dEFjdGlvbkNvbXBvbmVudEFuY2hvcj48L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
@@ -183,11 +183,11 @@ export class AddResubmissionComponent {
183
183
  this.titleField.nativeElement.getElementsByTagName('input')[0].select();
184
184
  }
185
185
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AddResubmissionComponent, deps: [{ token: i1.TranslateService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AddResubmissionComponent, selector: "eo-add-resubmission", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, viewQueries: [{ propertyName: "titleField", first: true, predicate: ["titleField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\" [required]=\"true\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"false\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i8.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: i9.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i10.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }] }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AddResubmissionComponent, selector: "eo-add-resubmission", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, viewQueries: [{ propertyName: "titleField", first: true, predicate: ["titleField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\" [required]=\"true\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"false\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i8.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: i9.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i10.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }] }); }
187
187
  }
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AddResubmissionComponent, decorators: [{
189
189
  type: Component,
190
- args: [{ selector: 'eo-add-resubmission', template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\" [required]=\"true\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"false\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.resubmission.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"] }]
190
+ args: [{ selector: 'eo-add-resubmission', template: "<div class=\"eo-resubmission\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addResubmissionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"dueFieldLabel\" [required]=\"true\">\n <eo-date [withTime]=\"true\" [onlyFutureDates]=\"false\" formControlName=\"dueFieldFCN\"></eo-date>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"dueFieldValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\"\n *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\" [tristate]=\"false\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [tristate]=\"false\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"notificationMethodValidation\" translate>eo.resubmission.error.msg</div>\n <div class=\"err-msg\" *ngIf=\"dateValidation\" translate>eo.resubmission.error.msg.date</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\" translate>eo.cta.button.cancel</button>\n <button class=\"secondary\" *ngIf=\"selection[0].resubmissions.length\" (click)=\"removeResubmission()\"\n translate>eo.resubmission.delete</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"selection[0].resubmissions.length\" (click)=\"updateResubmission()\" translate>eo.resubmission.apply</button>\n <button class=\"primary\" [disabled]=\"addResubmissionForm.errors || titleValidity\"\n *ngIf=\"!selection[0].resubmissions.length\" (click)=\"createResubmission()\" translate>eo.resubmission.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n", styles: [".eo-resubmission{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-resubmission h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-resubmission .form-buttons{padding:5px 0;text-align:right}.eo-resubmission .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-resubmission .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-resubmission .process-indicator{display:flex;justify-content:flex-end}.eo-resubmission .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-resubmission .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"] }]
191
191
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.DmsService }, { type: i1.UserService }, { type: i2.UntypedFormBuilder }], propDecorators: { selection: [{
192
192
  type: Input
193
193
  }], titleField: [{
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
198
198
  }], canceled: [{
199
199
  type: Output
200
200
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9hZGQtcmVzdWJtaXNzaW9uLWFjdGlvbi9hZGQtcmVzdWJtaXNzaW9uL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFNBQVMsRUFBVSxZQUFZLEVBQUUsU0FBUyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQW1CLFVBQVUsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ25HLENBQUM7SUFhRCxZQUFvQixTQUEyQixFQUNyQyxHQUFlLEVBQ2YsV0FBd0IsRUFDeEIsRUFBc0I7UUFIWixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNyQyxRQUFHLEdBQUgs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QUFVLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFFLENBQUM7OEdBM01VLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGdSQ2JyQyw2M0VBNENBOzsyRkQvQmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHFCQUFxQjt5S0FNdEIsU0FBUztzQkFBakIsS0FBSztnQkFDbUMsVUFBVTtzQkFBbEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQU03QixRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZvcmtKb2luLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9hY3Rpb24tY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0lucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUJ1aWxkZXJ9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgRG1zT2JqZWN0LCBVc2VyU2VydmljZSwgRG1zU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1hZGQtcmVzdWJtaXNzaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWRkUmVzdWJtaXNzaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBY3Rpb25Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogRG1zT2JqZWN0W107XG4gIEBWaWV3Q2hpbGQoJ3RpdGxlRmllbGQnLCB7c3RhdGljOiB0cnVlfSkgdGl0bGVGaWVsZDogRWxlbWVudFJlZjxhbnk+O1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBoZWFkZXI6IHN0cmluZztcbiAgYWRkUmVzdWJtaXNzaW9uRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgZHVlRmllbGRMYWJlbDogc3RyaW5nO1xuICB0aXRsZUZpZWxkTGFiZWw6IHN0cmluZztcbiAgaW5ib3hDYkxhYmVsOiBzdHJpbmc7XG4gIGVtYWlsQ2JMYWJlbDogc3RyaW5nO1xuICBwcm9jZXNzaW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xuICB9XG5cbiAgY3JlYXRlUmVzdWJtaXNzaW9uRm9ybSgpIHtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBuZXcgRGF0ZShkLnNldERhdGUoZC5nZXREYXRlKCkgKyAxNCkpO1xuICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdGl0bGVGaWVsZEZDTjogW3RoaXMuY3JlYXRlVGl0bGUodGhpcy5zZWxlY3Rpb25bMF0pXSxcbiAgICAgIGR1ZUZpZWxkRkNOOiBbZGVmYXVsdFZhbHVlXSxcbiAgICAgIGluYm94Q2JGQ046IFt0cnVlXSxcbiAgICAgIGVtYWlsQ2JGQ046IFtmYWxzZV0sXG4gICAgfSwge1xuICAgICAgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRvcignaW5ib3hDYkZDTicsICdlbWFpbENiRkNOJyksXG4gICAgICAgIHRoaXMuZHVlRGF0ZVZhbGlkYXRvcignZHVlRmllbGRGQ04nKVxuICAgICAgXSlcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5jb250cm9sc1sndGl0bGVGaWVsZEZDTiddLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ2R1ZUZpZWxkRkNOJ10uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1WYWx1ZXModGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzLCB0aGlzLnNlbGVjdGlvblswXSk7XG4gIH1cblxuICBzZXRGb3JtVmFsdWVzKGNvbnRyb2xzLCBzZWxlY3Rpb246IERtc09iamVjdCkge1xuICAgIGlmIChzZWxlY3Rpb24ucmVzdWJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIC8vIGlmIHJlc3VibWlzc2lvbnMgYXJyYXkgaXNuJ3QgZW1wdHksIGl0J3MgYW4gdXBkYXRlXG4gICAgICBjb25zdCB7aW5mbywgZHVlLCBvbmx5ZW1haWwsIGVtYWlsfSA9IHNlbGVjdGlvbi5yZXN1Ym1pc3Npb25zWzBdO1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5lZGl0cmVzdWJtaXNzaW9uJyk7XG4gICAgICB0aGlzLnBhdGNoRm9ybShpbmZvLCBuZXcgRGF0ZShgJHtkdWV9YCksICFvbmx5ZW1haWwsIGVtYWlsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5hZGRyZXN1Ym1pc3Npb24nKTtcbiAgICB9XG4gIH1cblxuICBwYXRjaEZvcm0odGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04gPSBmYWxzZSkge1xuICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5zZXRWYWx1ZSh7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ059KTtcbiAgfVxuXG4gIGdldCB0aXRsZVZhbGlkaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uZ2V0KCd0aXRsZUZpZWxkRkNOJykuaW52YWxpZDtcbiAgfVxuXG4gIGdldCBkdWVGaWVsZFZhbGlkaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uZ2V0KCdkdWVGaWVsZEZDTicpLmludmFsaWQ7XG4gIH1cblxuICBwcml2YXRlIGR1ZURhdGVWYWxpZGF0b3IoZHVlRGF0ZSkge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIChncm91cDogVW50eXBlZEZvcm1Hcm91cCkgPT4ge1xuICAgICAgaWYgKGdyb3VwLmNvbnRyb2xzW2R1ZURhdGVdLmludmFsaWQgfHwgZ3JvdXAuY29udHJvbHNbZHVlRGF0ZV0udmFsdWUgPT09IG51bGwgfHwgZ3JvdXAuY29udHJvbHNbZHVlRGF0ZV0udmFsdWUgPiBub3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4geydkdWVEYXRlJzogdHJ1ZX1cbiAgICB9XG4gIH1cblxuICBnZXQgZGF0ZVZhbGlkYXRpb24oKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge2Vycm9ycywgY29udHJvbHN9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtO1xuICAgIGxldCBkYXRlVmFsaWRhdGlvbkVycm9yID0gZmFsc2U7XG4gICAgaWYgKGVycm9ycykge1xuICAgICAgZGF0ZVZhbGlkYXRpb25FcnJvciA9IChjb250cm9scy5kdWVGaWVsZEZDTi50b3VjaGVkIHx8IGNvbnRyb2xzLmR1ZUZpZWxkRkNOLmRpcnR5KSAmJiBlcnJvcnMuZHVlRGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGVWYWxpZGF0aW9uRXJyb3I7XG4gIH1cblxuICBwcml2YXRlIG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRvcihpbmJveENiRkNOLCBlbWFpbENiRkNOKSB7XG4gICAgcmV0dXJuIChncm91cDogVW50eXBlZEZvcm1Hcm91cCkgPT4ge1xuICAgICAgaWYgKGdyb3VwLmNvbnRyb2xzW2luYm94Q2JGQ05dLnZhbHVlIHx8IGdyb3VwLmNvbnRyb2xzW2VtYWlsQ2JGQ05dLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsnbm90aWZpY2F0aW9uTWV0aG9kJzogdHJ1ZX1cbiAgICB9XG4gIH1cblxuICBnZXQgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB7ZXJyb3JzfSA9IHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybTtcbiAgICBsZXQgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbkVycm9yID0gZmFsc2U7XG4gICAgaWYgKGVycm9ycykge1xuICAgICAgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbkVycm9yID0gZXJyb3JzLm5vdGlmaWNhdGlvbk1ldGhvZDtcbiAgICB9XG4gICAgcmV0dXJuIG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25FcnJvcjtcbiAgfVxuXG4gIGNyZWF0ZVJlc3VibWlzc2lvbigpIHtcbiAgICBjb25zdCB7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ046IHNlbmRFbWFpbH0gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0udmFsdWU7XG4gICAgY29uc3Qgb25seUVtYWlsID0gdGhpcy5oYXNFbWFpbCA/IHNlbmRFbWFpbCAmJiAhaW5ib3hDYkZDTiA6IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBjcmVhdGVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSA/IHRpdGxlRmllbGRGQ04gOiB0aGlzLmNyZWF0ZVRpdGxlKGl0ZW0pO1xuICAgICAgY3JlYXRlVGFza3MucHVzaCh0aGlzLmRtcy5jcmVhdGVSZXN1Ym1pc3Npb24oaXRlbSwgdGl0bGUsIGR1ZUZpZWxkRkNOLCB1bmRlZmluZWQsIHNlbmRFbWFpbCwgb25seUVtYWlsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICAgIC8vIHRvZG86IG1heWJlIGFkZCBzb21lIGVycm9yIG5vdGlmaWNhdGlvbiB0aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgICAgICAgY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpXG4gICAgICAgICAgKVxuICAgICAgICApKTtcbiAgICB9KTtcbiAgICBpZiAoY3JlYXRlVGFza3MubGVuZ3RoKSB7XG4gICAgICBmb3JrSm9pbihjcmVhdGVUYXNrcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgICAgfVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVJlc3VibWlzc2lvbigpIHtcbiAgICBjb25zdCB7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ046IHNlbmRFbWFpbH0gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0udmFsdWU7XG4gICAgY29uc3Qgb25seUVtYWlsID0gdGhpcy5oYXNFbWFpbCA/IHNlbmRFbWFpbCAmJiAhaW5ib3hDYkZDTiA6IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCB1cGRhdGVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSA/IHRpdGxlRmllbGRGQ04gOiB0aGlzLmNyZWF0ZVRpdGxlKGl0ZW0pO1xuICAgICAgdXBkYXRlVGFza3MucHVzaCh0aGlzLmRtcy51cGRhdGVSZXN1Ym1pc3Npb24oaXRlbSwgdGl0bGUsIGR1ZUZpZWxkRkNOLCB1bmRlZmluZWQsIHNlbmRFbWFpbCwgb25seUVtYWlsKS5waXBlKFxuICAgICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICAvLyB0b2RvOiBtYXliZSBhZGQgc29tZSBlcnJvciBub3RpZmljYXRpb24gdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpXG4gICAgICApKTtcbiAgICB9KTtcbiAgICBpZiAodXBkYXRlVGFza3MubGVuZ3RoKSB7XG4gICAgICBmb3JrSm9pbih1cGRhdGVUYXNrcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgICAgfVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVJlc3VibWlzc2lvbigpIHtcbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHJlbW92ZVRhc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIHJlbW92ZVRhc2tzLnB1c2godGhpcy5kbXMucmVtb3ZlUmVzdWJtaXNzaW9uc0J5SWQoaXRlbS5pZCwgaXRlbSlcbiAgICAgICAgLy8gZXZlbiBpbiBjYXNlIG9pZiBhbiBlcnJvciByZXR1cm4gc29tZXRoaW5nIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB3aG9sZSBmb3JrSm9pbiB3aWxsIGZhaWxcbiAgICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKSkpO1xuICAgIH0pO1xuICAgIGlmIChyZW1vdmVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKHJlbW92ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUaXRsZShpdGVtOiBEbXNPYmplY3QpIHtcbiAgICByZXR1cm4gaXRlbS5pc0NvbnRleHRGb2xkZXIgJiYgaXRlbS5jb250ZXh0Rm9sZGVyID8gYCR7aXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlfSA+ICR7aXRlbS50aXRsZX1gIDogaXRlbS50aXRsZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZHVlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5kdWUnKTtcbiAgICB0aGlzLnRpdGxlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5pbmZvJyk7XG4gICAgdGhpcy5pbmJveENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmluYm94Jyk7XG4gICAgdGhpcy5lbWFpbENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmVtYWlsJyk7XG5cbiAgICB0aGlzLmNyZWF0ZVJlc3VibWlzc2lvbkZvcm0oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnRpdGxlRmllbGQubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXS5zZWxlY3QoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tcmVzdWJtaXNzaW9uXCIgZW9UcmFwRm9jdXM+XG4gIDxoMj57e2hlYWRlcn19PC9oMj5cbiAgPGZvcm0gI3RpdGxlRmllbGQgW2Zvcm1Hcm91cF09XCJhZGRSZXN1Ym1pc3Npb25Gb3JtXCI+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJkdWVGaWVsZExhYmVsXCIgW3JlcXVpcmVkXT1cInRydWVcIj5cbiAgICAgIDxlby1kYXRlIFt3aXRoVGltZV09XCJ0cnVlXCIgW29ubHlGdXR1cmVEYXRlc109XCJmYWxzZVwiIGZvcm1Db250cm9sTmFtZT1cImR1ZUZpZWxkRkNOXCI+PC9lby1kYXRlPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwiZHVlRmllbGRWYWxpZGl0eVwiPlxuICAgICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxlby1mb3JtLWlucHV0IFtza2lwVG9nZ2xlXT1cInRydWVcIiBbbGFiZWxdPVwidGl0bGVGaWVsZExhYmVsXCIgW3JlcXVpcmVkXT1cInRydWVcIiBbaW52YWxpZF09XCJ0aXRsZVZhbGlkaXR5XCJcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uLmxlbmd0aCA9PT0gMVwiPlxuICAgICAgPGVvLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZUZpZWxkRkNOXCI+PC9lby1zdHJpbmc+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJ0aXRsZVZhbGlkaXR5XCI+XG4gICAgICA8ZGl2IHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnJlcXVpcmVkPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJpbmJveENiTGFiZWxcIj5cbiAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJpbmJveENiRkNOXCIgW3RyaXN0YXRlXT1cImZhbHNlXCI+PC9lby1jaGVja2JveD5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJlbWFpbENiTGFiZWxcIj5cbiAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbENiRkNOXCIgW3RyaXN0YXRlXT1cImZhbHNlXCIgW3JlYWRvbmx5XT1cIiFoYXNFbWFpbFwiPjwvZW8tY2hlY2tib3g+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICA8L2Zvcm0+XG5cbiAgPCEtLSBlcnJvci92YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cIm5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25cIiB0cmFuc2xhdGU+ZW8ucmVzdWJtaXNzaW9uLmVycm9yLm1zZzwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJkYXRlVmFsaWRhdGlvblwiIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uZXJyb3IubXNnLmRhdGU8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tYnV0dG9uc1wiICpuZ0lmPVwiIXByb2Nlc3Npbmc7IGVsc2UgaW5kaWNhdG9yXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uY2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInNlY29uZGFyeVwiICpuZ0lmPVwic2VsZWN0aW9uWzBdLnJlc3VibWlzc2lvbnMubGVuZ3RoXCIgKGNsaWNrKT1cInJlbW92ZVJlc3VibWlzc2lvbigpXCJcbiAgICAgIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uZGVsZXRlPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiYWRkUmVzdWJtaXNzaW9uRm9ybS5lcnJvcnMgfHwgdGl0bGVWYWxpZGl0eVwiXG4gICAgICAqbmdJZj1cInNlbGVjdGlvblswXS5yZXN1Ym1pc3Npb25zLmxlbmd0aFwiIChjbGljayk9XCJ1cGRhdGVSZXN1Ym1pc3Npb24oKVwiIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uYXBwbHk8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJhZGRSZXN1Ym1pc3Npb25Gb3JtLmVycm9ycyB8fCB0aXRsZVZhbGlkaXR5XCJcbiAgICAgICpuZ0lmPVwiIXNlbGVjdGlvblswXS5yZXN1Ym1pc3Npb25zLmxlbmd0aFwiIChjbGljayk9XCJjcmVhdGVSZXN1Ym1pc3Npb24oKVwiIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uYWRkPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWluZGljYXRvclwiPjxlby1pY29uIFtpY29uU3JjXT1cIidpY19raXR0LWxvYWRlci5zdmcnXCI+PC9lby1pY29uPjwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlc3VibWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXJlc3VibWlzc2lvbi1hY3Rpb24vYWRkLXJlc3VibWlzc2lvbi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9hZGQtcmVzdWJtaXNzaW9uLWFjdGlvbi9hZGQtcmVzdWJtaXNzaW9uL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFNBQVMsRUFBVSxZQUFZLEVBQUUsU0FBUyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQW1CLFVBQVUsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ25HLENBQUM7SUFhRCxZQUFvQixTQUEyQixFQUNyQyxHQUFlLEVBQ2YsV0FBd0IsRUFDeEIsRUFBc0I7UUFIWixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUNyQyxRQUFHLEdBQUgs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QUFVLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFFLENBQUM7OEdBM01VLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGdSQ2JyQywyM0VBNENBOzsyRkQvQmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHFCQUFxQjt5S0FNdEIsU0FBUztzQkFBakIsS0FBSztnQkFDbUMsVUFBVTtzQkFBbEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQU03QixRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2ZvcmtKb2luLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9hY3Rpb24tY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge0lucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUJ1aWxkZXJ9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgRG1zT2JqZWN0LCBVc2VyU2VydmljZSwgRG1zU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1hZGQtcmVzdWJtaXNzaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1yZXN1Ym1pc3Npb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQtcmVzdWJtaXNzaW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWRkUmVzdWJtaXNzaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBY3Rpb25Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogRG1zT2JqZWN0W107XG4gIEBWaWV3Q2hpbGQoJ3RpdGxlRmllbGQnLCB7c3RhdGljOiB0cnVlfSkgdGl0bGVGaWVsZDogRWxlbWVudFJlZjxhbnk+O1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBoZWFkZXI6IHN0cmluZztcbiAgYWRkUmVzdWJtaXNzaW9uRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgZHVlRmllbGRMYWJlbDogc3RyaW5nO1xuICB0aXRsZUZpZWxkTGFiZWw6IHN0cmluZztcbiAgaW5ib3hDYkxhYmVsOiBzdHJpbmc7XG4gIGVtYWlsQ2JMYWJlbDogc3RyaW5nO1xuICBwcm9jZXNzaW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xuICB9XG5cbiAgY3JlYXRlUmVzdWJtaXNzaW9uRm9ybSgpIHtcbiAgICBjb25zdCBkID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBuZXcgRGF0ZShkLnNldERhdGUoZC5nZXREYXRlKCkgKyAxNCkpO1xuICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgdGl0bGVGaWVsZEZDTjogW3RoaXMuY3JlYXRlVGl0bGUodGhpcy5zZWxlY3Rpb25bMF0pXSxcbiAgICAgIGR1ZUZpZWxkRkNOOiBbZGVmYXVsdFZhbHVlXSxcbiAgICAgIGluYm94Q2JGQ046IFt0cnVlXSxcbiAgICAgIGVtYWlsQ2JGQ046IFtmYWxzZV0sXG4gICAgfSwge1xuICAgICAgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRvcignaW5ib3hDYkZDTicsICdlbWFpbENiRkNOJyksXG4gICAgICAgIHRoaXMuZHVlRGF0ZVZhbGlkYXRvcignZHVlRmllbGRGQ04nKVxuICAgICAgXSlcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5jb250cm9sc1sndGl0bGVGaWVsZEZDTiddLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uY29udHJvbHNbJ2R1ZUZpZWxkRkNOJ10uc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEZvcm1WYWx1ZXModGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtLmNvbnRyb2xzLCB0aGlzLnNlbGVjdGlvblswXSk7XG4gIH1cblxuICBzZXRGb3JtVmFsdWVzKGNvbnRyb2xzLCBzZWxlY3Rpb246IERtc09iamVjdCkge1xuICAgIGlmIChzZWxlY3Rpb24ucmVzdWJtaXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIC8vIGlmIHJlc3VibWlzc2lvbnMgYXJyYXkgaXNuJ3QgZW1wdHksIGl0J3MgYW4gdXBkYXRlXG4gICAgICBjb25zdCB7aW5mbywgZHVlLCBvbmx5ZW1haWwsIGVtYWlsfSA9IHNlbGVjdGlvbi5yZXN1Ym1pc3Npb25zWzBdO1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5lZGl0cmVzdWJtaXNzaW9uJyk7XG4gICAgICB0aGlzLnBhdGNoRm9ybShpbmZvLCBuZXcgRGF0ZShgJHtkdWV9YCksICFvbmx5ZW1haWwsIGVtYWlsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5hZGRyZXN1Ym1pc3Npb24nKTtcbiAgICB9XG4gIH1cblxuICBwYXRjaEZvcm0odGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ04gPSBmYWxzZSkge1xuICAgIHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybS5zZXRWYWx1ZSh7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ059KTtcbiAgfVxuXG4gIGdldCB0aXRsZVZhbGlkaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uZ2V0KCd0aXRsZUZpZWxkRkNOJykuaW52YWxpZDtcbiAgfVxuXG4gIGdldCBkdWVGaWVsZFZhbGlkaXR5KCkge1xuICAgIHJldHVybiB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0uZ2V0KCdkdWVGaWVsZEZDTicpLmludmFsaWQ7XG4gIH1cblxuICBwcml2YXRlIGR1ZURhdGVWYWxpZGF0b3IoZHVlRGF0ZSkge1xuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgcmV0dXJuIChncm91cDogVW50eXBlZEZvcm1Hcm91cCkgPT4ge1xuICAgICAgaWYgKGdyb3VwLmNvbnRyb2xzW2R1ZURhdGVdLmludmFsaWQgfHwgZ3JvdXAuY29udHJvbHNbZHVlRGF0ZV0udmFsdWUgPT09IG51bGwgfHwgZ3JvdXAuY29udHJvbHNbZHVlRGF0ZV0udmFsdWUgPiBub3cpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4geydkdWVEYXRlJzogdHJ1ZX1cbiAgICB9XG4gIH1cblxuICBnZXQgZGF0ZVZhbGlkYXRpb24oKTogYm9vbGVhbiB7XG4gICAgY29uc3Qge2Vycm9ycywgY29udHJvbHN9ID0gdGhpcy5hZGRSZXN1Ym1pc3Npb25Gb3JtO1xuICAgIGxldCBkYXRlVmFsaWRhdGlvbkVycm9yID0gZmFsc2U7XG4gICAgaWYgKGVycm9ycykge1xuICAgICAgZGF0ZVZhbGlkYXRpb25FcnJvciA9IChjb250cm9scy5kdWVGaWVsZEZDTi50b3VjaGVkIHx8IGNvbnRyb2xzLmR1ZUZpZWxkRkNOLmRpcnR5KSAmJiBlcnJvcnMuZHVlRGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGVWYWxpZGF0aW9uRXJyb3I7XG4gIH1cblxuICBwcml2YXRlIG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRvcihpbmJveENiRkNOLCBlbWFpbENiRkNOKSB7XG4gICAgcmV0dXJuIChncm91cDogVW50eXBlZEZvcm1Hcm91cCkgPT4ge1xuICAgICAgaWYgKGdyb3VwLmNvbnRyb2xzW2luYm94Q2JGQ05dLnZhbHVlIHx8IGdyb3VwLmNvbnRyb2xzW2VtYWlsQ2JGQ05dLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsnbm90aWZpY2F0aW9uTWV0aG9kJzogdHJ1ZX1cbiAgICB9XG4gIH1cblxuICBnZXQgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbigpOiBib29sZWFuIHtcbiAgICBjb25zdCB7ZXJyb3JzfSA9IHRoaXMuYWRkUmVzdWJtaXNzaW9uRm9ybTtcbiAgICBsZXQgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbkVycm9yID0gZmFsc2U7XG4gICAgaWYgKGVycm9ycykge1xuICAgICAgbm90aWZpY2F0aW9uTWV0aG9kVmFsaWRhdGlvbkVycm9yID0gZXJyb3JzLm5vdGlmaWNhdGlvbk1ldGhvZDtcbiAgICB9XG4gICAgcmV0dXJuIG5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25FcnJvcjtcbiAgfVxuXG4gIGNyZWF0ZVJlc3VibWlzc2lvbigpIHtcbiAgICBjb25zdCB7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ046IHNlbmRFbWFpbH0gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0udmFsdWU7XG4gICAgY29uc3Qgb25seUVtYWlsID0gdGhpcy5oYXNFbWFpbCA/IHNlbmRFbWFpbCAmJiAhaW5ib3hDYkZDTiA6IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBjcmVhdGVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSA/IHRpdGxlRmllbGRGQ04gOiB0aGlzLmNyZWF0ZVRpdGxlKGl0ZW0pO1xuICAgICAgY3JlYXRlVGFza3MucHVzaCh0aGlzLmRtcy5jcmVhdGVSZXN1Ym1pc3Npb24oaXRlbSwgdGl0bGUsIGR1ZUZpZWxkRkNOLCB1bmRlZmluZWQsIHNlbmRFbWFpbCwgb25seUVtYWlsKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICAgIC8vIHRvZG86IG1heWJlIGFkZCBzb21lIGVycm9yIG5vdGlmaWNhdGlvbiB0aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nXG4gICAgICAgICAgY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpXG4gICAgICAgICAgKVxuICAgICAgICApKTtcbiAgICB9KTtcbiAgICBpZiAoY3JlYXRlVGFza3MubGVuZ3RoKSB7XG4gICAgICBmb3JrSm9pbihjcmVhdGVUYXNrcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgICAgfVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVJlc3VibWlzc2lvbigpIHtcbiAgICBjb25zdCB7dGl0bGVGaWVsZEZDTiwgZHVlRmllbGRGQ04sIGluYm94Q2JGQ04sIGVtYWlsQ2JGQ046IHNlbmRFbWFpbH0gPSB0aGlzLmFkZFJlc3VibWlzc2lvbkZvcm0udmFsdWU7XG4gICAgY29uc3Qgb25seUVtYWlsID0gdGhpcy5oYXNFbWFpbCA/IHNlbmRFbWFpbCAmJiAhaW5ib3hDYkZDTiA6IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCB1cGRhdGVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSA/IHRpdGxlRmllbGRGQ04gOiB0aGlzLmNyZWF0ZVRpdGxlKGl0ZW0pO1xuICAgICAgdXBkYXRlVGFza3MucHVzaCh0aGlzLmRtcy51cGRhdGVSZXN1Ym1pc3Npb24oaXRlbSwgdGl0bGUsIGR1ZUZpZWxkRkNOLCB1bmRlZmluZWQsIHNlbmRFbWFpbCwgb25seUVtYWlsKS5waXBlKFxuICAgICAgICAvLyBldmVuIGluIGNhc2Ugb2lmIGFuIGVycm9yIHJldHVybiBzb21ldGhpbmcgYmVjYXVzZSBvdGhlcndpc2UgdGhlIHdob2xlIGZvcmtKb2luIHdpbGwgZmFpbFxuICAgICAgICAvLyB0b2RvOiBtYXliZSBhZGQgc29tZSBlcnJvciBub3RpZmljYXRpb24gdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgICAgICBjYXRjaEVycm9yKGUgPT4gb2YobnVsbCkpXG4gICAgICApKTtcbiAgICB9KTtcbiAgICBpZiAodXBkYXRlVGFza3MubGVuZ3RoKSB7XG4gICAgICBmb3JrSm9pbih1cGRhdGVUYXNrcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgICAgfVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVJlc3VibWlzc2lvbigpIHtcbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuICAgIGNvbnN0IHJlbW92ZVRhc2tzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIHJlbW92ZVRhc2tzLnB1c2godGhpcy5kbXMucmVtb3ZlUmVzdWJtaXNzaW9uc0J5SWQoaXRlbS5pZCwgaXRlbSlcbiAgICAgICAgLy8gZXZlbiBpbiBjYXNlIG9pZiBhbiBlcnJvciByZXR1cm4gc29tZXRoaW5nIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSB3aG9sZSBmb3JrSm9pbiB3aWxsIGZhaWxcbiAgICAgICAgLy8gdG9kbzogbWF5YmUgYWRkIHNvbWUgZXJyb3Igbm90aWZpY2F0aW9uIHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKSkpO1xuICAgIH0pO1xuICAgIGlmIChyZW1vdmVUYXNrcy5sZW5ndGgpIHtcbiAgICAgIGZvcmtKb2luKHJlbW92ZVRhc2tzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVUaXRsZShpdGVtOiBEbXNPYmplY3QpIHtcbiAgICByZXR1cm4gaXRlbS5pc0NvbnRleHRGb2xkZXIgJiYgaXRlbS5jb250ZXh0Rm9sZGVyID8gYCR7aXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlfSA+ICR7aXRlbS50aXRsZX1gIDogaXRlbS50aXRsZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZHVlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5kdWUnKTtcbiAgICB0aGlzLnRpdGxlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlc3VibWlzc2lvbi5maWVsZC5pbmZvJyk7XG4gICAgdGhpcy5pbmJveENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmluYm94Jyk7XG4gICAgdGhpcy5lbWFpbENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZXN1Ym1pc3Npb24uZmllbGQubm90aWZpY2F0aW9uLmVtYWlsJyk7XG5cbiAgICB0aGlzLmNyZWF0ZVJlc3VibWlzc2lvbkZvcm0oKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnRpdGxlRmllbGQubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKVswXS5zZWxlY3QoKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tcmVzdWJtaXNzaW9uXCIgZW9UcmFwRm9jdXM+XG4gIDxoMj57e2hlYWRlcn19PC9oMj5cbiAgPGZvcm0gI3RpdGxlRmllbGQgW2Zvcm1Hcm91cF09XCJhZGRSZXN1Ym1pc3Npb25Gb3JtXCI+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJkdWVGaWVsZExhYmVsXCIgW3JlcXVpcmVkXT1cInRydWVcIj5cbiAgICAgIDxlby1kYXRlIFt3aXRoVGltZV09XCJ0cnVlXCIgW29ubHlGdXR1cmVEYXRlc109XCJmYWxzZVwiIGZvcm1Db250cm9sTmFtZT1cImR1ZUZpZWxkRkNOXCI+PC9lby1kYXRlPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwiZHVlRmllbGRWYWxpZGl0eVwiPlxuICAgICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxlby1mb3JtLWlucHV0IFtza2lwVG9nZ2xlXT1cInRydWVcIiBbbGFiZWxdPVwidGl0bGVGaWVsZExhYmVsXCIgW3JlcXVpcmVkXT1cInRydWVcIiBbaW52YWxpZF09XCJ0aXRsZVZhbGlkaXR5XCJcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uLmxlbmd0aCA9PT0gMVwiPlxuICAgICAgPGVvLXN0cmluZyBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZUZpZWxkRkNOXCI+PC9lby1zdHJpbmc+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJ0aXRsZVZhbGlkaXR5XCI+XG4gICAgICA8ZGl2IHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnJlcXVpcmVkPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJpbmJveENiTGFiZWxcIj5cbiAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJpbmJveENiRkNOXCIgW3RyaXN0YXRlXT1cImZhbHNlXCI+PC9lby1jaGVja2JveD5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCJlbWFpbENiTGFiZWxcIj5cbiAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbENiRkNOXCIgW3RyaXN0YXRlXT1cImZhbHNlXCIgW3JlYWRvbmx5XT1cIiFoYXNFbWFpbFwiPjwvZW8tY2hlY2tib3g+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICA8L2Zvcm0+XG5cbiAgPCEtLSBlcnJvci92YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICA8ZGl2IGNsYXNzPVwiZXJyb3JzXCI+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cIm5vdGlmaWNhdGlvbk1ldGhvZFZhbGlkYXRpb25cIiB0cmFuc2xhdGU+ZW8ucmVzdWJtaXNzaW9uLmVycm9yLm1zZzwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJkYXRlVmFsaWRhdGlvblwiIHRyYW5zbGF0ZT5lby5yZXN1Ym1pc3Npb24uZXJyb3IubXNnLmRhdGU8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tYnV0dG9uc1wiICpuZ0lmPVwiIXByb2Nlc3Npbmc7IGVsc2UgaW5kaWNhdG9yXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWwoKVwiIHRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAqbmdJZj1cInNlbGVjdGlvblswXS5yZXN1Ym1pc3Npb25zLmxlbmd0aFwiIChjbGljayk9XCJyZW1vdmVSZXN1Ym1pc3Npb24oKVwiXG4gICAgICB0cmFuc2xhdGU+ZW8ucmVzdWJtaXNzaW9uLmRlbGV0ZTwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImFkZFJlc3VibWlzc2lvbkZvcm0uZXJyb3JzIHx8IHRpdGxlVmFsaWRpdHlcIlxuICAgICAgKm5nSWY9XCJzZWxlY3Rpb25bMF0ucmVzdWJtaXNzaW9ucy5sZW5ndGhcIiAoY2xpY2spPVwidXBkYXRlUmVzdWJtaXNzaW9uKClcIiB0cmFuc2xhdGU+ZW8ucmVzdWJtaXNzaW9uLmFwcGx5PC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiYWRkUmVzdWJtaXNzaW9uRm9ybS5lcnJvcnMgfHwgdGl0bGVWYWxpZGl0eVwiXG4gICAgICAqbmdJZj1cIiFzZWxlY3Rpb25bMF0ucmVzdWJtaXNzaW9ucy5sZW5ndGhcIiAoY2xpY2spPVwiY3JlYXRlUmVzdWJtaXNzaW9uKClcIiB0cmFuc2xhdGU+ZW8ucmVzdWJtaXNzaW9uLmFkZDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI2luZGljYXRvcj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvY2Vzcy1pbmRpY2F0b3JcIj48ZW8taWNvbiBbaWNvblNyY109XCInaWNfa2l0dC1sb2FkZXIuc3ZnJ1wiPjwvZW8taWNvbj48L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -116,11 +116,11 @@ export class AddSubscriptionComponent {
116
116
  this.canceled.emit();
117
117
  }
118
118
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AddSubscriptionComponent, deps: [{ token: i1.TranslateService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i2.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AddSubscriptionComponent, selector: "eo-add-subscription", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, viewQueries: [{ propertyName: "titleField", first: true, predicate: ["titleField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"eo-subscription\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input *ngIf=\"!selection[0].isFolder\" [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.subscription.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n", styles: [".eo-subscription{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-subscription h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-subscription .form-buttons{padding:5px 0;text-align:right}.eo-subscription .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-subscription .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-subscription .process-indicator{display:flex;justify-content:flex-end}.eo-subscription .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-subscription .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i8.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i9.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i10.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
119
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: AddSubscriptionComponent, selector: "eo-add-subscription", inputs: { selection: "selection" }, outputs: { finished: "finished", canceled: "canceled" }, viewQueries: [{ propertyName: "titleField", first: true, predicate: ["titleField"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"eo-subscription\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input *ngIf=\"!selection[0].isFolder\" [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.cta.button.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n", styles: [".eo-subscription{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-subscription h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-subscription .form-buttons{padding:5px 0;text-align:right}.eo-subscription .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-subscription .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-subscription .process-indicator{display:flex;justify-content:flex-end}.eo-subscription .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-subscription .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i6.TrapFocusDirective, selector: "[eoTrapFocus]" }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i8.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i9.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i10.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
120
120
  }
121
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AddSubscriptionComponent, decorators: [{
122
122
  type: Component,
123
- args: [{ selector: 'eo-add-subscription', template: "<div class=\"eo-subscription\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input *ngIf=\"!selection[0].isFolder\" [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.subscription.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n", styles: [".eo-subscription{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-subscription h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-subscription .form-buttons{padding:5px 0;text-align:right}.eo-subscription .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-subscription .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-subscription .process-indicator{display:flex;justify-content:flex-end}.eo-subscription .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-subscription .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"] }]
123
+ args: [{ selector: 'eo-add-subscription', template: "<div class=\"eo-subscription\" eoTrapFocus>\n <h2>{{header}}</h2>\n <form #titleField [formGroup]=\"addSubscriptionForm\">\n <eo-form-input [skipToggle]=\"true\" [label]=\"titleFieldLabel\" [required]=\"true\" [invalid]=\"titleValidity\" *ngIf=\"selection.length === 1\">\n <eo-string formControlName=\"titleFieldFCN\"></eo-string>\n </eo-form-input>\n <div class=\"err-msg\" *ngIf=\"titleValidity\">\n <div translate>eo.form.property.required</div>\n </div>\n <eo-form-input [skipToggle]=\"true\" [label]=\"inboxCbLabel\">\n <eo-checkbox formControlName=\"inboxCbFCN\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input [skipToggle]=\"true\" [label]=\"emailCbLabel\">\n <eo-checkbox formControlName=\"emailCbFCN\" [readonly]=\"!hasEmail\"></eo-checkbox>\n </eo-form-input>\n <eo-form-input *ngIf=\"!selection[0].isFolder\" [skipToggle]=\"true\" [label]=\"'eo.subscription.field.mode.label' | translate\">\n <eo-codesystem formControlName=\"modeFieldFCN\" [codesystem]=\"subscriptionModeCodesystem\" [pickerTitle]=\"'eo.subscription.field.mode.label' | translate\"></eo-codesystem>\n </eo-form-input>\n </form>\n\n <!-- error/validation messages -->\n <div class=\"errors\">\n <div class=\"err-msg\" *ngIf=\"addSubscriptionForm.errors?.addSubscriptionForm\" translate>eo.subscription.error.msg</div>\n </div>\n\n <div class=\"form-buttons\" *ngIf=\"!processing; else indicator\">\n <button class=\"secondary\" (click)=\"cancel()\"translate>eo.cta.button.cancel</button>\n <button class=\"primary\" [disabled]=\"addSubscriptionForm.errors || titleValidity\" (click)=\"createSubscription()\"translate>eo.subscription.add</button>\n </div>\n\n <ng-template #indicator>\n <div class=\"process-indicator\"><eo-icon [iconSrc]=\"'assets/_default/svg/ic_kitt-loader.svg'\"></eo-icon></div>\n </ng-template>\n</div>\n\n", styles: [".eo-subscription{display:flex;flex-flow:column;justify-content:center;margin:var(--app-pane-padding)}.eo-subscription h2{font-weight:var(--font-weight-light);font-size:var(--font-subhead)}.eo-subscription .form-buttons{padding:5px 0;text-align:right}.eo-subscription .form-buttons button:nth-child(2n):not(:last-child){margin:0 calc(var(--app-pane-padding) / 2)}.eo-subscription .form-buttons button:nth-child(2n):last-child{margin-left:calc(var(--app-pane-padding) / 2);margin-right:0}.eo-subscription .process-indicator{display:flex;justify-content:flex-end}.eo-subscription .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}.eo-subscription .errors .err-msg:before{content:\"!\";padding:0 calc(var(--app-pane-padding) / 4)}\n"] }]
124
124
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i1.DmsService }, { type: i1.UserService }, { type: i2.UntypedFormBuilder }], propDecorators: { selection: [{
125
125
  type: Input
126
126
  }], finished: [{
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
131
131
  type: ViewChild,
132
132
  args: ['titleField', { static: true }]
133
133
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24vYWRkLXN1YnNjcmlwdGlvbi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9hZGQtc3Vic2NyaXB0aW9uLWFjdGlvbi9hZGQtc3Vic2NyaXB0aW9uL2FkZC1zdWJzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFNBQVMsRUFBVSxZQUFZLEVBQWMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJGLE9BQU8sRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBdUMsVUFBVSxFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBdUQsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDcEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNuRyxDQUFDO0lBYUQsWUFBb0IsU0FBMkIsRUFDM0IsR0FBZSxFQUNmLFdBQXdCLEVBQ3hCLEVBQXNC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QyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUNBLENBQUE7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsSUFBSTtRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OEdBM0hVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGdSQ2JyQyxtMkRBbUNBOzsyRkR0QmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHFCQUFxQjt5S0FRdEIsU0FBUztzQkFBakIsS0FBSztnQkFNSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ2tDLFVBQVU7c0JBQWxELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgVW50eXBlZEZvcm1CdWlsZGVyfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIERtc1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBEbXNPYmplY3QsIFN1YnNjcmlwdGlvbk1vZGV9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWRkLXN1YnNjcmlwdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZFN1YnNjcmlwdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWN0aW9uQ29tcG9uZW50IHtcblxuICBzdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbTtcblxuICBASW5wdXQoKSBzZWxlY3Rpb246IERtc09iamVjdFtdO1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgndGl0bGVGaWVsZCcsIHtzdGF0aWM6IHRydWV9KSB0aXRsZUZpZWxkIDogRWxlbWVudFJlZjxhbnk+O1xuXG4gIGhlYWRlcjogc3RyaW5nO1xuICBhZGRTdWJzY3JpcHRpb25Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICB0aXRsZUZpZWxkTGFiZWw6IHN0cmluZztcbiAgaW5ib3hDYkxhYmVsOiBzdHJpbmc7XG4gIGVtYWlsQ2JMYWJlbDogc3RyaW5nO1xuICBwcm9jZXNzaW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRtczogRG1zU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5hZGRzdWJzY3JpcHRpb24nKTtcbiAgICB0aGlzLnRpdGxlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5pbmZvJyk7XG4gICAgdGhpcy5pbmJveENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQubm90aWZpY2F0aW9uLmluYm94Jyk7XG4gICAgdGhpcy5lbWFpbENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQubm90aWZpY2F0aW9uLmVtYWlsJyk7XG5cbiAgICBjb25zdCBpbmNsdWRlc0ZvbGRlcnMgPSB0aGlzLnNlbGVjdGlvbi5maW5kKGl0ZW0gPT4gaXRlbS5pc0ZvbGRlcik7XG4gICAgY29uc3QgaW5jbHVkZXNEb2N1bWVudHMgPSB0aGlzLnNlbGVjdGlvbi5maW5kKGl0ZW0gPT4gIWl0ZW0uaXNGb2xkZXIpO1xuXG4gICAgdGhpcy5hZGRTdWJzY3JpcHRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB0aXRsZUZpZWxkRkNOOiBbJyddLFxuICAgICAgaW5ib3hDYkZDTjogW3RydWVdLFxuICAgICAgZW1haWxDYkZDTjogW2ZhbHNlXSxcbiAgICAgIG1vZGVGaWVsZEZDTjogW2luY2x1ZGVzRm9sZGVycyA/IFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUQgOiBTdWJzY3JpcHRpb25Nb2RlLkRNU19PQkpFQ1RfQ0hBTkdFRF1cbiAgICB9LCB7dmFsaWRhdG9yOiB0aGlzLnZhbGlkYXRvcn0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgdGl0bGVGaWVsZENvbnRyb2wgPSB0aGlzLmFkZFN1YnNjcmlwdGlvbkZvcm0uY29udHJvbHNbJ3RpdGxlRmllbGRGQ04nXTtcbiAgICAgIHRpdGxlRmllbGRDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aXRsZUZpZWxkQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmNyZWF0ZVRpdGxlKHRoaXMuc2VsZWN0aW9uWzBdKSk7XG4gICAgfVxuXG4gICAgaWYgKGluY2x1ZGVzRm9sZGVycyAmJiBpbmNsdWRlc0RvY3VtZW50cykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbSA9IHtcbiAgICAgICAgZW50cmllczogW1xuICAgICAgICAgIHtpZDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5tZXRhLmxhYmVsJyksIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5tZXRhLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUR9LFxuICAgICAgICAgIHtpZDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5ib3RoLmxhYmVsJyksIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5ib3RoLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuRE1TX09CSkVDVF9DSEFOR0VEfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbmNsdWRlc0ZvbGRlcnMgJiYgIWluY2x1ZGVzRG9jdW1lbnRzKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbk1vZGVDb2Rlc3lzdGVtID0ge1xuICAgICAgICBlbnRyaWVzOiBbXG4gICAgICAgICAge2lkOiAwLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTW9kZUNvZGVzeXN0ZW0gPSB7XG4gICAgICAgIGVudHJpZXM6IFtcbiAgICAgICAgICB7aWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEfSxcbiAgICAgICAgICB7aWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuY29udGVudC5sYWJlbCcpLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuY29udGVudC5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfRE9DVU1FTlRfQ09OVEVOVF9DSEFOR0VEfSxcbiAgICAgICAgICB7aWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuYm90aC5sYWJlbCcpLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuYm90aC5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLkRNU19PQkpFQ1RfQ0hBTkdFRH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGl0bGVGaWVsZC5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdLnNlbGVjdCgpO1xuICAgIH0sKTtcbiAgfVxuXG5cbiAgZ2V0IHRpdGxlVmFsaWRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkU3Vic2NyaXB0aW9uRm9ybS5nZXQoJ3RpdGxlRmllbGRGQ04nKS5pbnZhbGlkO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUuaW5ib3hDYkZDTiB8fCBjb250cm9sLnZhbHVlLmVtYWlsQ2JGQ04pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhZGRTdWJzY3JpcHRpb25Gb3JtOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlU3Vic2NyaXB0aW9uKCkge1xuICAgIGNvbnN0IHt0aXRsZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOOiBzZW5kRW1haWwsIG1vZGVGaWVsZEZDTn0gPSB0aGlzLmFkZFN1YnNjcmlwdGlvbkZvcm0udmFsdWU7XG4gICAgY29uc3Qgb25seUVtYWlsID0gdGhpcy5oYXNFbWFpbCA/IHNlbmRFbWFpbCAmJiAhaW5ib3hDYkZDTiA6IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBjcmVhdGVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSA/IHRpdGxlRmllbGRGQ04gOiB0aGlzLmNyZWF0ZVRpdGxlKGl0ZW0pO1xuICAgICAgY3JlYXRlVGFza3MucHVzaCh0aGlzLmRtcy5jcmVhdGVTdWJzY3JpcHRpb24oaXRlbSwgdGl0bGUsIHVuZGVmaW5lZCwgc2VuZEVtYWlsLCBvbmx5RW1haWwsIG1vZGVGaWVsZEZDTilcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKSkpO1xuICAgIH0pO1xuXG4gICAgaWYgKGNyZWF0ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4oY3JlYXRlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpdGxlKGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5pc0NvbnRleHRGb2xkZXIgJiYgaXRlbS5jb250ZXh0Rm9sZGVyID8gaXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlICsgJyA+ICcgKyBpdGVtLnRpdGxlIDogaXRlbS50aXRsZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgfVxuXG59IiwiPGRpdiBjbGFzcz1cImVvLXN1YnNjcmlwdGlvblwiIGVvVHJhcEZvY3VzPlxuICA8aDI+e3toZWFkZXJ9fTwvaDI+XG4gIDxmb3JtICN0aXRsZUZpZWxkIFtmb3JtR3JvdXBdPVwiYWRkU3Vic2NyaXB0aW9uRm9ybVwiPlxuICAgIDxlby1mb3JtLWlucHV0IFtza2lwVG9nZ2xlXT1cInRydWVcIiBbbGFiZWxdPVwidGl0bGVGaWVsZExhYmVsXCIgW3JlcXVpcmVkXT1cInRydWVcIiBbaW52YWxpZF09XCJ0aXRsZVZhbGlkaXR5XCIgKm5nSWY9XCJzZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XG4gICAgICA8ZW8tc3RyaW5nIGZvcm1Db250cm9sTmFtZT1cInRpdGxlRmllbGRGQ05cIj48L2VvLXN0cmluZz5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cInRpdGxlVmFsaWRpdHlcIj5cbiAgICAgIDxkaXYgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkucmVxdWlyZWQ8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImluYm94Q2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImluYm94Q2JGQ05cIj48L2VvLWNoZWNrYm94PlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImVtYWlsQ2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImVtYWlsQ2JGQ05cIiBbcmVhZG9ubHldPVwiIWhhc0VtYWlsXCI+PC9lby1jaGVja2JveD5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGVvLWZvcm0taW5wdXQgKm5nSWY9XCIhc2VsZWN0aW9uWzBdLmlzRm9sZGVyXCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCInZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUubGFiZWwnIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8ZW8tY29kZXN5c3RlbSBmb3JtQ29udHJvbE5hbWU9XCJtb2RlRmllbGRGQ05cIiBbY29kZXN5c3RlbV09XCJzdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbVwiIFtwaWNrZXJUaXRsZV09XCInZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUubGFiZWwnIHwgdHJhbnNsYXRlXCI+PC9lby1jb2Rlc3lzdGVtPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgPC9mb3JtPlxuXG4gIDwhLS0gZXJyb3IvdmFsaWRhdGlvbiBtZXNzYWdlcyAtLT5cbiAgPGRpdiBjbGFzcz1cImVycm9yc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJhZGRTdWJzY3JpcHRpb25Gb3JtLmVycm9ycz8uYWRkU3Vic2NyaXB0aW9uRm9ybVwiIHRyYW5zbGF0ZT5lby5zdWJzY3JpcHRpb24uZXJyb3IubXNnPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWJ1dHRvbnNcIiAqbmdJZj1cIiFwcm9jZXNzaW5nOyBlbHNlIGluZGljYXRvclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcInRyYW5zbGF0ZT5lby5zdWJzY3JpcHRpb24uY2FuY2VsPC9idXR0b24+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiYWRkU3Vic2NyaXB0aW9uRm9ybS5lcnJvcnMgfHwgdGl0bGVWYWxpZGl0eVwiIChjbGljayk9XCJjcmVhdGVTdWJzY3JpcHRpb24oKVwidHJhbnNsYXRlPmVvLnN1YnNjcmlwdGlvbi5hZGQ8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPG5nLXRlbXBsYXRlICNpbmRpY2F0b3I+XG4gICAgPGRpdiBjbGFzcz1cInByb2Nlc3MtaW5kaWNhdG9yXCI+PGVvLWljb24gW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfa2l0dC1sb2FkZXIuc3ZnJ1wiPjwvZW8taWNvbj48L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9hY3Rpb25zL2FjdGlvbnMvYWRkLXN1YnNjcmlwdGlvbi1hY3Rpb24vYWRkLXN1YnNjcmlwdGlvbi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2FjdGlvbnMvYWN0aW9ucy9hZGQtc3Vic2NyaXB0aW9uLWFjdGlvbi9hZGQtc3Vic2NyaXB0aW9uL2FkZC1zdWJzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFDLFNBQVMsRUFBVSxZQUFZLEVBQWMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJGLE9BQU8sRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBdUMsVUFBVSxFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBdUQsZ0JBQWdCLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDcEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNuRyxDQUFDO0lBYUQsWUFBb0IsU0FBMkIsRUFDM0IsR0FBZSxFQUNmLFdBQXdCLEVBQ3hCLEVBQXNC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QyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUNBLENBQUE7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsSUFBSTtRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDakgsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OEdBM0hVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLGdSQ2JyQyxpMkRBbUNBOzsyRkR0QmEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHFCQUFxQjt5S0FRdEIsU0FBUztzQkFBakIsS0FBSztnQkFNSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ2tDLFVBQVU7c0JBQWxELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Zm9ya0pvaW4sIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2FjdGlvbi1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7SW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgVW50eXBlZEZvcm1CdWlsZGVyfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIERtc1NlcnZpY2UsIFVzZXJTZXJ2aWNlLCBEbXNPYmplY3QsIFN1YnNjcmlwdGlvbk1vZGV9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWRkLXN1YnNjcmlwdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXN1YnNjcmlwdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZFN1YnNjcmlwdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWN0aW9uQ29tcG9uZW50IHtcblxuICBzdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbTtcblxuICBASW5wdXQoKSBzZWxlY3Rpb246IERtc09iamVjdFtdO1xuXG4gIGdldCBoYXNFbWFpbCgpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmVtYWlsICYmIHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5lbWFpbC5sZW5ndGg7XG4gIH1cblxuICBAT3V0cHV0KCkgZmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBjYW5jZWxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgndGl0bGVGaWVsZCcsIHtzdGF0aWM6IHRydWV9KSB0aXRsZUZpZWxkIDogRWxlbWVudFJlZjxhbnk+O1xuXG4gIGhlYWRlcjogc3RyaW5nO1xuICBhZGRTdWJzY3JpcHRpb25Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICB0aXRsZUZpZWxkTGFiZWw6IHN0cmluZztcbiAgaW5ib3hDYkxhYmVsOiBzdHJpbmc7XG4gIGVtYWlsQ2JMYWJlbDogc3RyaW5nO1xuICBwcm9jZXNzaW5nOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRtczogRG1zU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5oZWFkZXIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5vYmplY3QuaW5saW5lbWVudS5hZGRzdWJzY3JpcHRpb24nKTtcbiAgICB0aGlzLnRpdGxlRmllbGRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5pbmZvJyk7XG4gICAgdGhpcy5pbmJveENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQubm90aWZpY2F0aW9uLmluYm94Jyk7XG4gICAgdGhpcy5lbWFpbENiTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zdWJzY3JpcHRpb24uZmllbGQubm90aWZpY2F0aW9uLmVtYWlsJyk7XG5cbiAgICBjb25zdCBpbmNsdWRlc0ZvbGRlcnMgPSB0aGlzLnNlbGVjdGlvbi5maW5kKGl0ZW0gPT4gaXRlbS5pc0ZvbGRlcik7XG4gICAgY29uc3QgaW5jbHVkZXNEb2N1bWVudHMgPSB0aGlzLnNlbGVjdGlvbi5maW5kKGl0ZW0gPT4gIWl0ZW0uaXNGb2xkZXIpO1xuXG4gICAgdGhpcy5hZGRTdWJzY3JpcHRpb25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB0aXRsZUZpZWxkRkNOOiBbJyddLFxuICAgICAgaW5ib3hDYkZDTjogW3RydWVdLFxuICAgICAgZW1haWxDYkZDTjogW2ZhbHNlXSxcbiAgICAgIG1vZGVGaWVsZEZDTjogW2luY2x1ZGVzRm9sZGVycyA/IFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUQgOiBTdWJzY3JpcHRpb25Nb2RlLkRNU19PQkpFQ1RfQ0hBTkdFRF1cbiAgICB9LCB7dmFsaWRhdG9yOiB0aGlzLnZhbGlkYXRvcn0pO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgdGl0bGVGaWVsZENvbnRyb2wgPSB0aGlzLmFkZFN1YnNjcmlwdGlvbkZvcm0uY29udHJvbHNbJ3RpdGxlRmllbGRGQ04nXTtcbiAgICAgIHRpdGxlRmllbGRDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB0aXRsZUZpZWxkQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmNyZWF0ZVRpdGxlKHRoaXMuc2VsZWN0aW9uWzBdKSk7XG4gICAgfVxuXG4gICAgaWYgKGluY2x1ZGVzRm9sZGVycyAmJiBpbmNsdWRlc0RvY3VtZW50cykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbSA9IHtcbiAgICAgICAgZW50cmllczogW1xuICAgICAgICAgIHtpZDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5tZXRhLmxhYmVsJyksIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5tZXRhLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuT05MWV9JTkRFWF9EQVRBX0NIQU5HRUR9LFxuICAgICAgICAgIHtpZDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5ib3RoLmxhYmVsJyksIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUuZW50cmllcy5ib3RoLmxhYmVsJyksIGRhdGE6IFN1YnNjcmlwdGlvbk1vZGUuRE1TX09CSkVDVF9DSEFOR0VEfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbmNsdWRlc0ZvbGRlcnMgJiYgIWluY2x1ZGVzRG9jdW1lbnRzKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbk1vZGVDb2Rlc3lzdGVtID0ge1xuICAgICAgICBlbnRyaWVzOiBbXG4gICAgICAgICAge2lkOiAwLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uTW9kZUNvZGVzeXN0ZW0gPSB7XG4gICAgICAgIGVudHJpZXM6IFtcbiAgICAgICAgICB7aWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMubWV0YS5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfSU5ERVhfREFUQV9DSEFOR0VEfSxcbiAgICAgICAgICB7aWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuY29udGVudC5sYWJlbCcpLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuY29udGVudC5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLk9OTFlfRE9DVU1FTlRfQ09OVEVOVF9DSEFOR0VEfSxcbiAgICAgICAgICB7aWQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuYm90aC5sYWJlbCcpLCBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnN1YnNjcmlwdGlvbi5maWVsZC5tb2RlLmVudHJpZXMuYm90aC5sYWJlbCcpLCBkYXRhOiBTdWJzY3JpcHRpb25Nb2RlLkRNU19PQkpFQ1RfQ0hBTkdFRH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudGl0bGVGaWVsZC5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpWzBdLnNlbGVjdCgpO1xuICAgIH0sKTtcbiAgfVxuXG5cbiAgZ2V0IHRpdGxlVmFsaWRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWRkU3Vic2NyaXB0aW9uRm9ybS5nZXQoJ3RpdGxlRmllbGRGQ04nKS5pbnZhbGlkO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0b3IoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUuaW5ib3hDYkZDTiB8fCBjb250cm9sLnZhbHVlLmVtYWlsQ2JGQ04pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhZGRTdWJzY3JpcHRpb25Gb3JtOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlU3Vic2NyaXB0aW9uKCkge1xuICAgIGNvbnN0IHt0aXRsZUZpZWxkRkNOLCBpbmJveENiRkNOLCBlbWFpbENiRkNOOiBzZW5kRW1haWwsIG1vZGVGaWVsZEZDTn0gPSB0aGlzLmFkZFN1YnNjcmlwdGlvbkZvcm0udmFsdWU7XG4gICAgY29uc3Qgb25seUVtYWlsID0gdGhpcy5oYXNFbWFpbCA/IHNlbmRFbWFpbCAmJiAhaW5ib3hDYkZDTiA6IGZhbHNlO1xuXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBjcmVhdGVUYXNrcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMSA/IHRpdGxlRmllbGRGQ04gOiB0aGlzLmNyZWF0ZVRpdGxlKGl0ZW0pO1xuICAgICAgY3JlYXRlVGFza3MucHVzaCh0aGlzLmRtcy5jcmVhdGVTdWJzY3JpcHRpb24oaXRlbSwgdGl0bGUsIHVuZGVmaW5lZCwgc2VuZEVtYWlsLCBvbmx5RW1haWwsIG1vZGVGaWVsZEZDTilcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlID0+IG9mKG51bGwpKSkpO1xuICAgIH0pO1xuXG4gICAgaWYgKGNyZWF0ZVRhc2tzLmxlbmd0aCkge1xuICAgICAgZm9ya0pvaW4oY3JlYXRlVGFza3MpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICAgIH1cbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbmlzaGVkLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpdGxlKGl0ZW0pIHtcbiAgICByZXR1cm4gaXRlbS5pc0NvbnRleHRGb2xkZXIgJiYgaXRlbS5jb250ZXh0Rm9sZGVyID8gaXRlbS5jb250ZXh0Rm9sZGVyLnRpdGxlICsgJyA+ICcgKyBpdGVtLnRpdGxlIDogaXRlbS50aXRsZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbGVkLmVtaXQoKTtcbiAgfVxuXG59IiwiPGRpdiBjbGFzcz1cImVvLXN1YnNjcmlwdGlvblwiIGVvVHJhcEZvY3VzPlxuICA8aDI+e3toZWFkZXJ9fTwvaDI+XG4gIDxmb3JtICN0aXRsZUZpZWxkIFtmb3JtR3JvdXBdPVwiYWRkU3Vic2NyaXB0aW9uRm9ybVwiPlxuICAgIDxlby1mb3JtLWlucHV0IFtza2lwVG9nZ2xlXT1cInRydWVcIiBbbGFiZWxdPVwidGl0bGVGaWVsZExhYmVsXCIgW3JlcXVpcmVkXT1cInRydWVcIiBbaW52YWxpZF09XCJ0aXRsZVZhbGlkaXR5XCIgKm5nSWY9XCJzZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XG4gICAgICA8ZW8tc3RyaW5nIGZvcm1Db250cm9sTmFtZT1cInRpdGxlRmllbGRGQ05cIj48L2VvLXN0cmluZz5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiAqbmdJZj1cInRpdGxlVmFsaWRpdHlcIj5cbiAgICAgIDxkaXYgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkucmVxdWlyZWQ8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImluYm94Q2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImluYm94Q2JGQ05cIj48L2VvLWNoZWNrYm94PlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cImVtYWlsQ2JMYWJlbFwiPlxuICAgICAgPGVvLWNoZWNrYm94IGZvcm1Db250cm9sTmFtZT1cImVtYWlsQ2JGQ05cIiBbcmVhZG9ubHldPVwiIWhhc0VtYWlsXCI+PC9lby1jaGVja2JveD5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgPGVvLWZvcm0taW5wdXQgKm5nSWY9XCIhc2VsZWN0aW9uWzBdLmlzRm9sZGVyXCIgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCInZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUubGFiZWwnIHwgdHJhbnNsYXRlXCI+XG4gICAgICA8ZW8tY29kZXN5c3RlbSBmb3JtQ29udHJvbE5hbWU9XCJtb2RlRmllbGRGQ05cIiBbY29kZXN5c3RlbV09XCJzdWJzY3JpcHRpb25Nb2RlQ29kZXN5c3RlbVwiIFtwaWNrZXJUaXRsZV09XCInZW8uc3Vic2NyaXB0aW9uLmZpZWxkLm1vZGUubGFiZWwnIHwgdHJhbnNsYXRlXCI+PC9lby1jb2Rlc3lzdGVtPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgPC9mb3JtPlxuXG4gIDwhLS0gZXJyb3IvdmFsaWRhdGlvbiBtZXNzYWdlcyAtLT5cbiAgPGRpdiBjbGFzcz1cImVycm9yc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJhZGRTdWJzY3JpcHRpb25Gb3JtLmVycm9ycz8uYWRkU3Vic2NyaXB0aW9uRm9ybVwiIHRyYW5zbGF0ZT5lby5zdWJzY3JpcHRpb24uZXJyb3IubXNnPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWJ1dHRvbnNcIiAqbmdJZj1cIiFwcm9jZXNzaW5nOyBlbHNlIGluZGljYXRvclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJzZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcInRyYW5zbGF0ZT5lby5jdGEuYnV0dG9uLmNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImFkZFN1YnNjcmlwdGlvbkZvcm0uZXJyb3JzIHx8IHRpdGxlVmFsaWRpdHlcIiAoY2xpY2spPVwiY3JlYXRlU3Vic2NyaXB0aW9uKClcInRyYW5zbGF0ZT5lby5zdWJzY3JpcHRpb24uYWRkPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9jZXNzLWluZGljYXRvclwiPjxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2tpdHQtbG9hZGVyLnN2ZydcIj48L2VvLWljb24+PC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuIl19