@valtimo/dashboard-management 12.5.1 → 12.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -84,11 +84,11 @@ export class EditDashboardModalComponent {
84
84
  this.disabled$.next(false);
85
85
  }
86
86
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditDashboardModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DashboardManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditDashboardModalComponent, selector: "valtimo-edit-dashboard-modal", inputs: { showModal$: "showModal$", dashboard: "dashboard" }, outputs: { saveEvent: "saveEvent" }, providers: [NotificationService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{disabled: disabled$ | async} as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.widgets.editDashboard' | translate }}\"\n class=\"edit-dashboard-modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dashboardManagement.widgets.editDashboard' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"editDashboardFormTemplate;context:{obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"editDashboardButtons;context:{obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #editDashboardFormTemplate let-obs=\"obs\">\n <form *ngIf=\"editDashboardForm\" [formGroup]=\"editDashboardForm\" class=\"dashboard-modal__form\">\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.dashboardTitle' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n formControlName=\"title\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [helperText]=\"'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n [invalidText]=\"\n 'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\n \"\n >\n {{ 'dashboardManagement.widgets.form.dashboardDescription' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n formControlName=\"description\"\n />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editDashboardButtons let-obs=\"obs\">\n <button cdsButton=\"ghost\" [disabled]=\"obs.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"editDashboardForm.invalid || obs.disabled\"\n (click)=\"saveDashboard()\"\n >\n {{ 'dashboardManagement.widgets.complete' | translate }}\n </button>\n</ng-template>\n", styles: [".edit-dashboard-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end}.edit-dashboard-modal .form__element{width:100%;margin-bottom:32px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: EditDashboardModalComponent, selector: "valtimo-edit-dashboard-modal", inputs: { showModal$: "showModal$", dashboard: "dashboard" }, outputs: { saveEvent: "saveEvent" }, providers: [NotificationService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{disabled: disabled$ | async} as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.widgets.editDashboard' | translate }}\"\n class=\"edit-dashboard-modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dashboardManagement.widgets.editDashboard' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"editDashboardFormTemplate;context:{obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"editDashboardButtons;context:{obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #editDashboardFormTemplate let-obs=\"obs\">\n <form\n *ngIf=\"editDashboardForm\"\n [formGroup]=\"editDashboardForm\"\n class=\"dashboard-modal__form\"\n [cdsLayer]=\"1\"\n >\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.dashboardTitle' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n formControlName=\"title\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [helperText]=\"'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n [invalidText]=\"\n 'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\n \"\n >\n {{ 'dashboardManagement.widgets.form.dashboardDescription' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n formControlName=\"description\"\n />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editDashboardButtons let-obs=\"obs\">\n <button cdsButton=\"ghost\" [disabled]=\"obs.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"editDashboardForm.invalid || obs.disabled\"\n (click)=\"saveDashboard()\"\n >\n {{ 'dashboardManagement.widgets.complete' | translate }}\n </button>\n</ng-template>\n", styles: [".edit-dashboard-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end}.edit-dashboard-modal .form__element{width:100%;margin-bottom:32px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
88
88
  }
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditDashboardModalComponent, decorators: [{
90
90
  type: Component,
91
- args: [{ selector: 'valtimo-edit-dashboard-modal', encapsulation: ViewEncapsulation.None, providers: [NotificationService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{disabled: disabled$ | async} as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.widgets.editDashboard' | translate }}\"\n class=\"edit-dashboard-modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dashboardManagement.widgets.editDashboard' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"editDashboardFormTemplate;context:{obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"editDashboardButtons;context:{obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #editDashboardFormTemplate let-obs=\"obs\">\n <form *ngIf=\"editDashboardForm\" [formGroup]=\"editDashboardForm\" class=\"dashboard-modal__form\">\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.dashboardTitle' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n formControlName=\"title\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [helperText]=\"'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n [invalidText]=\"\n 'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\n \"\n >\n {{ 'dashboardManagement.widgets.form.dashboardDescription' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n formControlName=\"description\"\n />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editDashboardButtons let-obs=\"obs\">\n <button cdsButton=\"ghost\" [disabled]=\"obs.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"editDashboardForm.invalid || obs.disabled\"\n (click)=\"saveDashboard()\"\n >\n {{ 'dashboardManagement.widgets.complete' | translate }}\n </button>\n</ng-template>\n", styles: [".edit-dashboard-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end}.edit-dashboard-modal .form__element{width:100%;margin-bottom:32px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
91
+ args: [{ selector: 'valtimo-edit-dashboard-modal', encapsulation: ViewEncapsulation.None, providers: [NotificationService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{disabled: disabled$ | async} as obs\"\n valtimoCdsModal\n [open]=\"open$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.widgets.editDashboard' | translate }}\"\n class=\"edit-dashboard-modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'dashboardManagement.widgets.editDashboard' | translate }}</h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"editDashboardFormTemplate;context:{obs: obs}\"></ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngTemplateOutlet=\"editDashboardButtons;context:{obs: obs}\"></ng-container>\n </cds-modal-footer>\n</cds-modal>\n\n<ng-template #editDashboardFormTemplate let-obs=\"obs\">\n <form\n *ngIf=\"editDashboardForm\"\n [formGroup]=\"editDashboardForm\"\n class=\"dashboard-modal__form\"\n [cdsLayer]=\"1\"\n >\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.dashboardTitle' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardTitle.dirty && dashboardTitle.invalid\"\n formControlName=\"title\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\">\n <cds-label\n [disabled]=\"obs.disabled\"\n [helperText]=\"'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n [invalidText]=\"\n 'dashboardManagement.widgets.form.dashboardDescriptionHelperText' | translate\n \"\n >\n {{ 'dashboardManagement.widgets.form.dashboardDescription' | translate }}\n\n <input\n cdsText\n [disabled]=\"obs.disabled\"\n [invalid]=\"dashboardDescription.dirty && dashboardDescription.invalid\"\n formControlName=\"description\"\n />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editDashboardButtons let-obs=\"obs\">\n <button cdsButton=\"ghost\" [disabled]=\"obs.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"editDashboardForm.invalid || obs.disabled\"\n (click)=\"saveDashboard()\"\n >\n {{ 'dashboardManagement.widgets.complete' | translate }}\n </button>\n</ng-template>\n", styles: [".edit-dashboard-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end}.edit-dashboard-modal .form__element{width:100%;margin-bottom:32px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
92
92
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.DashboardManagementService }], propDecorators: { showModal$: [{
93
93
  type: Input
94
94
  }], dashboard: [{
@@ -96,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
96
96
  }], saveEvent: [{
97
97
  type: Output
98
98
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kYXNoYm9hcmQtbW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWRhc2hib2FyZC1tb2RhbC9lZGl0LWRhc2hib2FyZC1tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2VkaXQtZGFzaGJvYXJkLW1vZGFsL2VkaXQtZGFzaGJvYXJkLW1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBWXJELE1BQU0sT0FBTywyQkFBMkI7SUFZdEMsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFJRCxZQUNtQixFQUFlLEVBQ2YsMEJBQXNEO1FBRHRELE9BQUUsR0FBRixFQUFFLENBQWE7UUFD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QUFTO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGFzaGJvYXJkSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q0FSQk9OX0NPTlNUQU5UU30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0Rhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbk91dHB1dH0gZnJvbSAnQHZhbHRpbW8vZGFzaGJvYXJkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1lZGl0LWRhc2hib2FyZC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWRhc2hib2FyZC1tb2RhbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1kYXNoYm9hcmQtbW9kYWwuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVkaXREYXNoYm9hcmRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93TW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBASW5wdXQoKSBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRJdGVtO1xuICBAT3V0cHV0KCkgcHVibGljIHNhdmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlndXJhdGlvbk91dHB1dD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZWRpdERhc2hib2FyZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aXRsZTogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIGRlc2NyaXB0aW9uOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgZGFzaGJvYXJkVGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdERhc2hib2FyZEZvcm0uZ2V0KCd0aXRsZScpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXNoYm9hcmREZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0RGFzaGJvYXJkRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2U6IERhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuT3BlblN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuJC5uZXh0KGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lZGl0RGFzaGJvYXJkRm9ybS5yZXNldCgpO1xuICAgIH0sIENBUkJPTl9DT05TVEFOVFMubW9kYWxBbmltYXRpb25Ncyk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZURhc2hib2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC51cGRhdGVEYXNoYm9hcmQoe1xuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvbi52YWx1ZSxcbiAgICAgICAgdGl0bGU6IHRoaXMuZGFzaGJvYXJkVGl0bGUudmFsdWUsXG4gICAgICAgIGtleTogdGhpcy5kYXNoYm9hcmQua2V5LFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEVkaXREYXNoYm9hcmRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhc2hib2FyZCkge1xuICAgICAgdGhpcy5kYXNoYm9hcmRUaXRsZT8uc2V0VmFsdWUodGhpcy5kYXNoYm9hcmQudGl0bGUpO1xuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvbj8uc2V0VmFsdWUodGhpcy5kYXNoYm9hcmQuZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHRoaXMuZW5hYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5PcGVuU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5TdWJzY3JpcHRpb24gPSB0aGlzLnNob3dNb2RhbCQuc3Vic2NyaWJlKHNob3cgPT4ge1xuICAgICAgdGhpcy5zZXRFZGl0RGFzaGJvYXJkRm9ybSgpO1xuICAgICAgdGhpcy5vcGVuJC5uZXh0KHNob3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsXG4gICpuZ0lmPVwie2Rpc2FibGVkOiBkaXNhYmxlZCQgfCBhc3luY30gYXMgb2JzXCJcbiAgdmFsdGltb0Nkc01vZGFsXG4gIFtvcGVuXT1cIm9wZW4kIHwgYXN5bmNcIlxuICBzaG93Rm9vdGVyPVwidHJ1ZVwiXG4gIHRpdGxlPVwie3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5lZGl0RGFzaGJvYXJkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gIGNsYXNzPVwiZWRpdC1kYXNoYm9hcmQtbW9kYWxcIlxuPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz57eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmVkaXREYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuXG4gIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdERhc2hib2FyZEZvcm1UZW1wbGF0ZTtjb250ZXh0OntvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zZWN0aW9uPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0RGFzaGJvYXJkQnV0dG9ucztjb250ZXh0OntvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdERhc2hib2FyZEZvcm1UZW1wbGF0ZSBsZXQtb2JzPVwib2JzXCI+XG4gIDxmb3JtICpuZ0lmPVwiZWRpdERhc2hib2FyZEZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXREYXNoYm9hcmRGb3JtXCIgY2xhc3M9XCJkYXNoYm9hcmQtbW9kYWxfX2Zvcm1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZWxlbWVudFwiPlxuICAgICAgPGNkcy1sYWJlbFxuICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgW2ludmFsaWRdPVwiZGFzaGJvYXJkVGl0bGUuZGlydHkgJiYgZGFzaGJvYXJkVGl0bGUuaW52YWxpZFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXNoYm9hcmRUaXRsZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgICAgW2ludmFsaWRdPVwiZGFzaGJvYXJkVGl0bGUuZGlydHkgJiYgZGFzaGJvYXJkVGl0bGUuaW52YWxpZFwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Nkcy1sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgICA8Y2RzLWxhYmVsXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbaGVscGVyVGV4dF09XCInZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGFzaGJvYXJkRGVzY3JpcHRpb25IZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImRhc2hib2FyZERlc2NyaXB0aW9uLmRpcnR5ICYmIGRhc2hib2FyZERlc2NyaXB0aW9uLmludmFsaWRcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiXG4gICAgICAgICAgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRhc2hib2FyZERlc2NyaXB0aW9uSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRhc2hib2FyZERlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbaW52YWxpZF09XCJkYXNoYm9hcmREZXNjcmlwdGlvbi5kaXJ0eSAmJiBkYXNoYm9hcmREZXNjcmlwdGlvbi5pbnZhbGlkXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICAgIC8+XG4gICAgICA8L2Nkcy1sYWJlbD5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0RGFzaGJvYXJkQnV0dG9ucyBsZXQtb2JzPVwib2JzXCI+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgW2Rpc2FibGVkXT1cImVkaXREYXNoYm9hcmRGb3JtLmludmFsaWQgfHwgb2JzLmRpc2FibGVkXCJcbiAgICAoY2xpY2spPVwic2F2ZURhc2hib2FyZCgpXCJcbiAgPlxuICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuY29tcGxldGUnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kYXNoYm9hcmQtbW9kYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rhc2hib2FyZC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWRhc2hib2FyZC1tb2RhbC9lZGl0LWRhc2hib2FyZC1tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2VkaXQtZGFzaGJvYXJkLW1vZGFsL2VkaXQtZGFzaGJvYXJkLW1vZGFsLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBWXJELE1BQU0sT0FBTywyQkFBMkI7SUFZdEMsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFJRCxZQUNtQixFQUFlLEVBQ2YsMEJBQXNEO1FBRHRELE9BQUUsR0FBRixFQUFFLENBQWE7UUFD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QUFTO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGFzaGJvYXJkSXRlbX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Rm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q0FSQk9OX0NPTlNUQU5UU30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0Rhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXNoYm9hcmQtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbk91dHB1dH0gZnJvbSAnQHZhbHRpbW8vZGFzaGJvYXJkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1lZGl0LWRhc2hib2FyZC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWRhc2hib2FyZC1tb2RhbC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdC1kYXNoYm9hcmQtbW9kYWwuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVkaXREYXNoYm9hcmRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93TW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBASW5wdXQoKSBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRJdGVtO1xuICBAT3V0cHV0KCkgcHVibGljIHNhdmVFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlndXJhdGlvbk91dHB1dD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZWRpdERhc2hib2FyZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aXRsZTogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIGRlc2NyaXB0aW9uOiB0aGlzLmZiLmNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuXG4gIHB1YmxpYyBnZXQgZGFzaGJvYXJkVGl0bGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdERhc2hib2FyZEZvcm0uZ2V0KCd0aXRsZScpO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXNoYm9hcmREZXNjcmlwdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5lZGl0RGFzaGJvYXJkRm9ybS5nZXQoJ2Rlc2NyaXB0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2U6IERhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuT3BlblN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuJC5uZXh0KGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lZGl0RGFzaGJvYXJkRm9ybS5yZXNldCgpO1xuICAgIH0sIENBUkJPTl9DT05TVEFOVFMubW9kYWxBbmltYXRpb25Ncyk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZURhc2hib2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC51cGRhdGVEYXNoYm9hcmQoe1xuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvbi52YWx1ZSxcbiAgICAgICAgdGl0bGU6IHRoaXMuZGFzaGJvYXJkVGl0bGUudmFsdWUsXG4gICAgICAgIGtleTogdGhpcy5kYXNoYm9hcmQua2V5LFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldEVkaXREYXNoYm9hcmRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhc2hib2FyZCkge1xuICAgICAgdGhpcy5kYXNoYm9hcmRUaXRsZT8uc2V0VmFsdWUodGhpcy5kYXNoYm9hcmQudGl0bGUpO1xuICAgICAgdGhpcy5kYXNoYm9hcmREZXNjcmlwdGlvbj8uc2V0VmFsdWUodGhpcy5kYXNoYm9hcmQuZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHRoaXMuZW5hYmxlKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5PcGVuU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5TdWJzY3JpcHRpb24gPSB0aGlzLnNob3dNb2RhbCQuc3Vic2NyaWJlKHNob3cgPT4ge1xuICAgICAgdGhpcy5zZXRFZGl0RGFzaGJvYXJkRm9ybSgpO1xuICAgICAgdGhpcy5vcGVuJC5uZXh0KHNob3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsXG4gICpuZ0lmPVwie2Rpc2FibGVkOiBkaXNhYmxlZCQgfCBhc3luY30gYXMgb2JzXCJcbiAgdmFsdGltb0Nkc01vZGFsXG4gIFtvcGVuXT1cIm9wZW4kIHwgYXN5bmNcIlxuICBzaG93Rm9vdGVyPVwidHJ1ZVwiXG4gIHRpdGxlPVwie3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5lZGl0RGFzaGJvYXJkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gIGNsYXNzPVwiZWRpdC1kYXNoYm9hcmQtbW9kYWxcIlxuPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz57eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmVkaXREYXNoYm9hcmQnIHwgdHJhbnNsYXRlIH19PC9oMz5cbiAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuXG4gIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWRpdERhc2hib2FyZEZvcm1UZW1wbGF0ZTtjb250ZXh0OntvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9zZWN0aW9uPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0RGFzaGJvYXJkQnV0dG9ucztjb250ZXh0OntvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9jZHMtbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdERhc2hib2FyZEZvcm1UZW1wbGF0ZSBsZXQtb2JzPVwib2JzXCI+XG4gIDxmb3JtXG4gICAgKm5nSWY9XCJlZGl0RGFzaGJvYXJkRm9ybVwiXG4gICAgW2Zvcm1Hcm91cF09XCJlZGl0RGFzaGJvYXJkRm9ybVwiXG4gICAgY2xhc3M9XCJkYXNoYm9hcmQtbW9kYWxfX2Zvcm1cIlxuICAgIFtjZHNMYXllcl09XCIxXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgICA8Y2RzLWxhYmVsXG4gICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICBbaW52YWxpZF09XCJkYXNoYm9hcmRUaXRsZS5kaXJ0eSAmJiBkYXNoYm9hcmRUaXRsZS5pbnZhbGlkXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRhc2hib2FyZFRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgICAgICBbaW52YWxpZF09XCJkYXNoYm9hcmRUaXRsZS5kaXJ0eSAmJiBkYXNoYm9hcmRUaXRsZS5pbnZhbGlkXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiXG4gICAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICAgIDxjZHMtbGFiZWxcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICAgIFtoZWxwZXJUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXNoYm9hcmREZXNjcmlwdGlvbkhlbHBlclRleHQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ludmFsaWRdPVwiZGFzaGJvYXJkRGVzY3JpcHRpb24uZGlydHkgJiYgZGFzaGJvYXJkRGVzY3JpcHRpb24uaW52YWxpZFwiXG4gICAgICAgIFtpbnZhbGlkVGV4dF09XCJcbiAgICAgICAgICAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGFzaGJvYXJkRGVzY3JpcHRpb25IZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGFzaGJvYXJkRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIlxuICAgICAgICAgIFtpbnZhbGlkXT1cImRhc2hib2FyZERlc2NyaXB0aW9uLmRpcnR5ICYmIGRhc2hib2FyZERlc2NyaXB0aW9uLmludmFsaWRcIlxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VkaXREYXNoYm9hcmRCdXR0b25zIGxldC1vYnM9XCJvYnNcIj5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJnaG9zdFwiIFtkaXNhYmxlZF09XCJvYnMuZGlzYWJsZWRcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiZWRpdERhc2hib2FyZEZvcm0uaW52YWxpZCB8fCBvYnMuZGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJzYXZlRGFzaGJvYXJkKClcIlxuICA+XG4gICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5jb21wbGV0ZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -31,6 +31,7 @@ export class WidgetModalComponent {
31
31
  set editWidgetConfiguration(configuration) {
32
32
  if (configuration) {
33
33
  this.title.setValue(configuration.title);
34
+ this.url.setValue(configuration.url);
34
35
  this.dataSourceSelected({ item: { key: configuration.dataSourceKey } });
35
36
  this.displayTypeSelected({ item: { key: configuration.displayType } });
36
37
  this.dataSourcePrefillConfig$.next(configuration.dataSourceProperties);
@@ -53,6 +54,9 @@ export class WidgetModalComponent {
53
54
  get displayType() {
54
55
  return this.form.get('displayType');
55
56
  }
57
+ get url() {
58
+ return this.form.get('url');
59
+ }
56
60
  constructor(document, fb, translateService, notificationService, dashboardManagementService, widgetService, widgetTranslationService) {
57
61
  this.document = document;
58
62
  this.fb = fb;
@@ -66,6 +70,7 @@ export class WidgetModalComponent {
66
70
  title: this.fb.control('', [Validators.required]),
67
71
  dataSource: this.fb.control(null, [Validators.required]),
68
72
  displayType: this.fb.control(null, [Validators.required]),
73
+ url: this.fb.control(''),
69
74
  });
70
75
  this.open$ = new BehaviorSubject(false);
71
76
  this.selectedDataSourceKey$ = new BehaviorSubject('');
@@ -151,6 +156,7 @@ export class WidgetModalComponent {
151
156
  dataSourceKey: selectedDataSourceKey,
152
157
  dataSourceProperties: { ...dataSourceConfiguration.data },
153
158
  displayTypeProperties: { ...displayTypeConfiguration.data },
159
+ url: this.url.value,
154
160
  })), switchMap(widgetUpdateObject => this.type === 'create'
155
161
  ? this.dashboardManagementService.createDashboardWidgetConfiguration(this.dashboard.key, widgetUpdateObject)
156
162
  : this.dashboardManagementService.updateDashboardWidgetConfiguration(this.dashboard.key, { ...widgetUpdateObject, key: this.widgetKey })))
@@ -230,11 +236,11 @@ export class WidgetModalComponent {
230
236
  return `${text}`.trim().toUpperCase();
231
237
  }
232
238
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetModalComponent, deps: [{ token: DOCUMENT }, { token: i1.FormBuilder }, { token: i2.TranslateService }, { token: i3.NotificationService }, { token: i4.DashboardManagementService }, { token: i5.WidgetService }, { token: i5.WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
233
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetModalComponent, selector: "valtimo-widget-modal", inputs: { showModal$: "showModal$", type: "type", dashboard: "dashboard", widgetKey: "widgetKey", editWidgetConfiguration: "editWidgetConfiguration" }, outputs: { saveEvent: "saveEvent" }, providers: [NotificationService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n isCreate: type === 'create',\n isDelete: type === 'delete',\n isEdit: type === 'edit',\n open: open$ | async,\n } as vars\"\n>\n <ng-container\n *ngIf=\"{\n create: vars.isCreate && ('dashboardManagement.widgets.add' | translate),\n delete: vars.isDelete && ('dashboardManagement.widgets.delete' | translate),\n edit: vars.isEdit && ('dashboardManagement.widgets.edit' | translate),\n } as titles\"\n >\n <cds-modal\n *ngIf=\"{\n title: titles.edit || titles.create || titles.delete,\n } as translations\"\n valtimoCdsModal\n [open]=\"vars.open\"\n showFooter=\"true\"\n size=\"md\"\n title=\"{{ translations.title }}\"\n class=\"widget-modal\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ translations.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngIf=\"vars.isDelete\">\n {{ 'dashboardManagement.widgets.deleteDescription' | translate }}</ng-container\n >\n\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"widgetForm; context: {vars: vars}\"></ng-container>\n </ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"editButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"vars.isDelete\">\n <ng-container *ngTemplateOutlet=\"deleteButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-container>\n\n<ng-template #widgetForm let-vars=\"vars\">\n <form\n *ngIf=\"\n form && {\n dataSourceItems: dataSourceItems$ | async,\n displayTypeDropdownDisabled: displayTypeDropdownDisabled$ | async,\n displayTypeItems: displayTypeItems$ | async,\n selectedDataSourceKey: selectedDataSourceKey$ | async,\n selectedDisplayTypeKey: selectedDisplayTypeKey$ | async,\n } as obs\n \"\n [formGroup]=\"form\"\n class=\"dashboard-modal__form\"\n >\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.title' | translate }}\n\n <input\n cdsText\n formControlName=\"title\"\n [invalid]=\"title.dirty && title.invalid\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\" *ngIf=\"obs.dataSourceItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"dataSource\"\n [helperText]=\"'dashboardManagement.widgets.form.dataSourceHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.dateSourceHelperText' | translate\"\n [invalid]=\"dataSource.dirty && dataSource.invalid\"\n [label]=\"'dashboardManagement.widgets.form.dataSource' | translate\"\n (selected)=\"dataSourceSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.dataSourceItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDataSourceKey\"\n [dataSourceKey]=\"obs.selectedDataSourceKey\"\n [disabled]=\"vars.disabled\"\n [prefillConfiguration]=\"dataSourcePrefillConfig$ | async\"\n (configurationEvent)=\"dataSourceConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\" *ngIf=\"obs.displayTypeItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"displayType\"\n [helperText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [invalid]=\"displayType.dirty && displayType.invalid\"\n [invalidText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [label]=\"'dashboardManagement.widgets.form.displayType' | translate\"\n (selected)=\"displayTypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.displayTypeItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDisplayTypeKey\"\n [disabled]=\"vars.disabled\"\n [displayTypeKey]=\"obs.selectedDisplayTypeKey\"\n [prefillConfiguration]=\"displayTypePrefillConfig$ | async\"\n (configurationEvent)=\"displayTypeConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n </form>\n</ng-template>\n\n<ng-template #editButtons let-vars=\"vars\">\n <ng-container\n *ngIf=\"{\n dataSourceConfiguration: dataSourceConfiguration$ | async,\n displayTypeConfiguration: displayTypeConfiguration$ | async,\n } as obs\"\n >\n <button cdsButton=\"ghost\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"\n form.invalid ||\n !obs.dataSourceConfiguration.valid ||\n !obs.displayTypeConfiguration.valid ||\n vars.disabled\n \"\n (click)=\"save()\"\n >\n {{ 'dashboardManagement.widgets.save' | translate }}\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #deleteButtons let-vars=\"vars\">\n <button cdsButton=\"secondary\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button cdsButton=\"danger\" [disabled]=\"vars.disabled\" (click)=\"delete()\">\n {{ 'dashboardManagement.widgets.delete' | translate }}\n </button>\n</ng-template>\n", styles: [".widget-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.widget-modal .form__spacer{width:32px}.widget-modal .form__element{width:100%;margin-bottom:32px}.widget-modal .form__element.--with-button{display:flex;align-items:flex-end;flex-direction:row}.widget-modal .form__element.--with-button button{margin-left:16px}.widget-modal .form__element.--readonly input{background-color:transparent}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.WidgetConfigurationContainerComponent, selector: "valtimo-widget-configuration-container", inputs: ["dataSourceKey", "displayTypeKey", "disabled", "prefillConfiguration"], outputs: ["configurationEvent"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
239
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: WidgetModalComponent, selector: "valtimo-widget-modal", inputs: { showModal$: "showModal$", type: "type", dashboard: "dashboard", widgetKey: "widgetKey", editWidgetConfiguration: "editWidgetConfiguration" }, outputs: { saveEvent: "saveEvent" }, providers: [NotificationService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n isCreate: type === 'create',\n isDelete: type === 'delete',\n isEdit: type === 'edit',\n open: open$ | async,\n } as vars\"\n>\n <ng-container\n *ngIf=\"{\n create: vars.isCreate && ('dashboardManagement.widgets.add' | translate),\n delete: vars.isDelete && ('dashboardManagement.widgets.delete' | translate),\n edit: vars.isEdit && ('dashboardManagement.widgets.edit' | translate),\n } as titles\"\n >\n <cds-modal\n *ngIf=\"{\n title: titles.edit || titles.create || titles.delete,\n } as translations\"\n valtimoCdsModal\n [open]=\"vars.open\"\n showFooter=\"true\"\n size=\"md\"\n title=\"{{ translations.title }}\"\n class=\"widget-modal\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ translations.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <ng-container *ngIf=\"vars.isDelete\">\n {{ 'dashboardManagement.widgets.deleteDescription' | translate }}</ng-container\n >\n\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"widgetForm; context: {vars: vars}\"></ng-container>\n </ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"editButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"vars.isDelete\">\n <ng-container *ngTemplateOutlet=\"deleteButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-container>\n\n<ng-template #widgetForm let-vars=\"vars\">\n <form\n *ngIf=\"\n form && {\n dataSourceItems: dataSourceItems$ | async,\n displayTypeDropdownDisabled: displayTypeDropdownDisabled$ | async,\n displayTypeItems: displayTypeItems$ | async,\n selectedDataSourceKey: selectedDataSourceKey$ | async,\n selectedDisplayTypeKey: selectedDisplayTypeKey$ | async,\n } as obs\n \"\n [formGroup]=\"form\"\n class=\"dashboard-modal__form\"\n >\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.title' | translate }}\n\n <input\n cdsText\n formControlName=\"title\"\n [invalid]=\"title.dirty && title.invalid\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\" *ngIf=\"obs.dataSourceItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"dataSource\"\n [helperText]=\"'dashboardManagement.widgets.form.dataSourceHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.dateSourceHelperText' | translate\"\n [invalid]=\"dataSource.dirty && dataSource.invalid\"\n [label]=\"'dashboardManagement.widgets.form.dataSource' | translate\"\n (selected)=\"dataSourceSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.dataSourceItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDataSourceKey\"\n [dataSourceKey]=\"obs.selectedDataSourceKey\"\n [disabled]=\"vars.disabled\"\n [prefillConfiguration]=\"dataSourcePrefillConfig$ | async\"\n (configurationEvent)=\"dataSourceConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\" *ngIf=\"obs.displayTypeItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"displayType\"\n [helperText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [invalid]=\"displayType.dirty && displayType.invalid\"\n [invalidText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [label]=\"'dashboardManagement.widgets.form.displayType' | translate\"\n (selected)=\"displayTypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.displayTypeItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDisplayTypeKey\"\n [disabled]=\"vars.disabled\"\n [displayTypeKey]=\"obs.selectedDisplayTypeKey\"\n [prefillConfiguration]=\"displayTypePrefillConfig$ | async\"\n (configurationEvent)=\"displayTypeConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.urlHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.urlHelperText' | translate\"\n [invalid]=\"url.dirty && url.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.url' | translate }}\n\n <input cdsText formControlName=\"url\" [invalid]=\"url.dirty && url.invalid\" />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editButtons let-vars=\"vars\">\n <ng-container\n *ngIf=\"{\n dataSourceConfiguration: dataSourceConfiguration$ | async,\n displayTypeConfiguration: displayTypeConfiguration$ | async,\n } as obs\"\n >\n <button cdsButton=\"ghost\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"\n form.invalid ||\n !obs.dataSourceConfiguration.valid ||\n !obs.displayTypeConfiguration.valid ||\n vars.disabled\n \"\n (click)=\"save()\"\n >\n {{ 'dashboardManagement.widgets.save' | translate }}\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #deleteButtons let-vars=\"vars\">\n <button cdsButton=\"secondary\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button cdsButton=\"danger\" [disabled]=\"vars.disabled\" (click)=\"delete()\">\n {{ 'dashboardManagement.widgets.delete' | translate }}\n </button>\n</ng-template>\n", styles: [".widget-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.widget-modal .form__spacer{width:32px}.widget-modal .form__element{width:100%;margin-bottom:32px}.widget-modal .form__element.--with-button{display:flex;align-items:flex-end;flex-direction:row}.widget-modal .form__element.--with-button button{margin-left:16px}.widget-modal .form__element.--readonly input{background-color:transparent}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.LayerDirective, selector: "[cdsLayer], [ibmLayer]", inputs: ["ibmLayer", "cdsLayer"], exportAs: ["layer"] }, { kind: "component", type: i7.WidgetConfigurationContainerComponent, selector: "valtimo-widget-configuration-container", inputs: ["dataSourceKey", "displayTypeKey", "disabled", "prefillConfiguration"], outputs: ["configurationEvent"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
234
240
  }
235
241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetModalComponent, decorators: [{
236
242
  type: Component,
237
- args: [{ selector: 'valtimo-widget-modal', encapsulation: ViewEncapsulation.None, providers: [NotificationService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n isCreate: type === 'create',\n isDelete: type === 'delete',\n isEdit: type === 'edit',\n open: open$ | async,\n } as vars\"\n>\n <ng-container\n *ngIf=\"{\n create: vars.isCreate && ('dashboardManagement.widgets.add' | translate),\n delete: vars.isDelete && ('dashboardManagement.widgets.delete' | translate),\n edit: vars.isEdit && ('dashboardManagement.widgets.edit' | translate),\n } as titles\"\n >\n <cds-modal\n *ngIf=\"{\n title: titles.edit || titles.create || titles.delete,\n } as translations\"\n valtimoCdsModal\n [open]=\"vars.open\"\n showFooter=\"true\"\n size=\"md\"\n title=\"{{ translations.title }}\"\n class=\"widget-modal\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ translations.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngIf=\"vars.isDelete\">\n {{ 'dashboardManagement.widgets.deleteDescription' | translate }}</ng-container\n >\n\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"widgetForm; context: {vars: vars}\"></ng-container>\n </ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"editButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"vars.isDelete\">\n <ng-container *ngTemplateOutlet=\"deleteButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-container>\n\n<ng-template #widgetForm let-vars=\"vars\">\n <form\n *ngIf=\"\n form && {\n dataSourceItems: dataSourceItems$ | async,\n displayTypeDropdownDisabled: displayTypeDropdownDisabled$ | async,\n displayTypeItems: displayTypeItems$ | async,\n selectedDataSourceKey: selectedDataSourceKey$ | async,\n selectedDisplayTypeKey: selectedDisplayTypeKey$ | async,\n } as obs\n \"\n [formGroup]=\"form\"\n class=\"dashboard-modal__form\"\n >\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.title' | translate }}\n\n <input\n cdsText\n formControlName=\"title\"\n [invalid]=\"title.dirty && title.invalid\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\" *ngIf=\"obs.dataSourceItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"dataSource\"\n [helperText]=\"'dashboardManagement.widgets.form.dataSourceHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.dateSourceHelperText' | translate\"\n [invalid]=\"dataSource.dirty && dataSource.invalid\"\n [label]=\"'dashboardManagement.widgets.form.dataSource' | translate\"\n (selected)=\"dataSourceSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.dataSourceItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDataSourceKey\"\n [dataSourceKey]=\"obs.selectedDataSourceKey\"\n [disabled]=\"vars.disabled\"\n [prefillConfiguration]=\"dataSourcePrefillConfig$ | async\"\n (configurationEvent)=\"dataSourceConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\" *ngIf=\"obs.displayTypeItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"displayType\"\n [helperText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [invalid]=\"displayType.dirty && displayType.invalid\"\n [invalidText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [label]=\"'dashboardManagement.widgets.form.displayType' | translate\"\n (selected)=\"displayTypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.displayTypeItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDisplayTypeKey\"\n [disabled]=\"vars.disabled\"\n [displayTypeKey]=\"obs.selectedDisplayTypeKey\"\n [prefillConfiguration]=\"displayTypePrefillConfig$ | async\"\n (configurationEvent)=\"displayTypeConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n </form>\n</ng-template>\n\n<ng-template #editButtons let-vars=\"vars\">\n <ng-container\n *ngIf=\"{\n dataSourceConfiguration: dataSourceConfiguration$ | async,\n displayTypeConfiguration: displayTypeConfiguration$ | async,\n } as obs\"\n >\n <button cdsButton=\"ghost\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"\n form.invalid ||\n !obs.dataSourceConfiguration.valid ||\n !obs.displayTypeConfiguration.valid ||\n vars.disabled\n \"\n (click)=\"save()\"\n >\n {{ 'dashboardManagement.widgets.save' | translate }}\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #deleteButtons let-vars=\"vars\">\n <button cdsButton=\"secondary\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button cdsButton=\"danger\" [disabled]=\"vars.disabled\" (click)=\"delete()\">\n {{ 'dashboardManagement.widgets.delete' | translate }}\n </button>\n</ng-template>\n", styles: [".widget-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.widget-modal .form__spacer{width:32px}.widget-modal .form__element{width:100%;margin-bottom:32px}.widget-modal .form__element.--with-button{display:flex;align-items:flex-end;flex-direction:row}.widget-modal .form__element.--with-button button{margin-left:16px}.widget-modal .form__element.--readonly input{background-color:transparent}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
243
+ args: [{ selector: 'valtimo-widget-modal', encapsulation: ViewEncapsulation.None, providers: [NotificationService], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n disabled: disabled$ | async,\n isCreate: type === 'create',\n isDelete: type === 'delete',\n isEdit: type === 'edit',\n open: open$ | async,\n } as vars\"\n>\n <ng-container\n *ngIf=\"{\n create: vars.isCreate && ('dashboardManagement.widgets.add' | translate),\n delete: vars.isDelete && ('dashboardManagement.widgets.delete' | translate),\n edit: vars.isEdit && ('dashboardManagement.widgets.edit' | translate),\n } as titles\"\n >\n <cds-modal\n *ngIf=\"{\n title: titles.edit || titles.create || titles.delete,\n } as translations\"\n valtimoCdsModal\n [open]=\"vars.open\"\n showFooter=\"true\"\n size=\"md\"\n title=\"{{ translations.title }}\"\n class=\"widget-modal\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ translations.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent [cdsLayer]=\"1\">\n <ng-container *ngIf=\"vars.isDelete\">\n {{ 'dashboardManagement.widgets.deleteDescription' | translate }}</ng-container\n >\n\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"widgetForm; context: {vars: vars}\"></ng-container>\n </ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"editButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"vars.isDelete\">\n <ng-container *ngTemplateOutlet=\"deleteButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-container>\n\n<ng-template #widgetForm let-vars=\"vars\">\n <form\n *ngIf=\"\n form && {\n dataSourceItems: dataSourceItems$ | async,\n displayTypeDropdownDisabled: displayTypeDropdownDisabled$ | async,\n displayTypeItems: displayTypeItems$ | async,\n selectedDataSourceKey: selectedDataSourceKey$ | async,\n selectedDisplayTypeKey: selectedDisplayTypeKey$ | async,\n } as obs\n \"\n [formGroup]=\"form\"\n class=\"dashboard-modal__form\"\n >\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.title' | translate }}\n\n <input\n cdsText\n formControlName=\"title\"\n [invalid]=\"title.dirty && title.invalid\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\" *ngIf=\"obs.dataSourceItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"dataSource\"\n [helperText]=\"'dashboardManagement.widgets.form.dataSourceHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.dateSourceHelperText' | translate\"\n [invalid]=\"dataSource.dirty && dataSource.invalid\"\n [label]=\"'dashboardManagement.widgets.form.dataSource' | translate\"\n (selected)=\"dataSourceSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.dataSourceItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDataSourceKey\"\n [dataSourceKey]=\"obs.selectedDataSourceKey\"\n [disabled]=\"vars.disabled\"\n [prefillConfiguration]=\"dataSourcePrefillConfig$ | async\"\n (configurationEvent)=\"dataSourceConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\" *ngIf=\"obs.displayTypeItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"displayType\"\n [helperText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [invalid]=\"displayType.dirty && displayType.invalid\"\n [invalidText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [label]=\"'dashboardManagement.widgets.form.displayType' | translate\"\n (selected)=\"displayTypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.displayTypeItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDisplayTypeKey\"\n [disabled]=\"vars.disabled\"\n [displayTypeKey]=\"obs.selectedDisplayTypeKey\"\n [prefillConfiguration]=\"displayTypePrefillConfig$ | async\"\n (configurationEvent)=\"displayTypeConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.urlHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.urlHelperText' | translate\"\n [invalid]=\"url.dirty && url.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.url' | translate }}\n\n <input cdsText formControlName=\"url\" [invalid]=\"url.dirty && url.invalid\" />\n </cds-label>\n </div>\n </form>\n</ng-template>\n\n<ng-template #editButtons let-vars=\"vars\">\n <ng-container\n *ngIf=\"{\n dataSourceConfiguration: dataSourceConfiguration$ | async,\n displayTypeConfiguration: displayTypeConfiguration$ | async,\n } as obs\"\n >\n <button cdsButton=\"ghost\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"\n form.invalid ||\n !obs.dataSourceConfiguration.valid ||\n !obs.displayTypeConfiguration.valid ||\n vars.disabled\n \"\n (click)=\"save()\"\n >\n {{ 'dashboardManagement.widgets.save' | translate }}\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #deleteButtons let-vars=\"vars\">\n <button cdsButton=\"secondary\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button cdsButton=\"danger\" [disabled]=\"vars.disabled\" (click)=\"delete()\">\n {{ 'dashboardManagement.widgets.delete' | translate }}\n </button>\n</ng-template>\n", styles: [".widget-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.widget-modal .form__spacer{width:32px}.widget-modal .form__element{width:100%;margin-bottom:32px}.widget-modal .form__element.--with-button{display:flex;align-items:flex-end;flex-direction:row}.widget-modal .form__element.--with-button button{margin-left:16px}.widget-modal .form__element.--readonly input{background-color:transparent}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
238
244
  }], ctorParameters: () => [{ type: Document, decorators: [{
239
245
  type: Inject,
240
246
  args: [DOCUMENT]
@@ -251,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
251
257
  }], saveEvent: [{
252
258
  type: Output
253
259
  }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL3dpZGdldC1tb2RhbC93aWRnZXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvd2lkZ2V0LW1vZGFsL3dpZGdldC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sR0FBRyxFQUdILFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBVyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXhFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7O0FBZ0JyRCxNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLElBQW9CLHVCQUF1QixDQUFDLGFBQTJDO1FBQ3JGLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxrQkFB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Q0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3JDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDOytHQS9SVSxvQkFBb0Isa0JBNEhyQixRQUFRO21HQTVIUCxvQkFBb0IsNE9BRnBCLENBQUMsbUJBQW1CLENBQUMsMEJDekRsQywwc05Bd0xBOzs0RkQ3SGEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLHNCQUFzQixpQkFHakIsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG1CQUFtQixDQUFDOzswQkE4SDdCLE1BQU07MkJBQUMsUUFBUTtnUEEzSEYsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDYyx1QkFBdUI7c0JBQTFDLEtBQUs7Z0JBWVcsU0FBUztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBPYnNlcnZhYmxlLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7RGFzaGJvYXJkSXRlbSwgV2lkZ2V0RGF0YVNvdXJjZSwgV2lkZ2V0TW9kYWxUeXBlfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMaXN0SXRlbSwgTm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtET0NVTUVOVH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Rhc2hib2FyZC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtDQVJCT05fQ09OU1RBTlRTfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvbmZpZ3VyYXRpb25PdXRwdXQsXG4gIERhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24sXG4gIERpc3BsYXlUeXBlU3BlY2lmaWNhdGlvbixcbiAgV2lkZ2V0U2VydmljZSxcbiAgV2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9kYXNoYm9hcmQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXdpZGdldC1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbTm90aWZpY2F0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd01vZGFsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgQElucHV0KCkgcHVibGljIHR5cGU6IFdpZGdldE1vZGFsVHlwZTtcbiAgQElucHV0KCkgcHVibGljIGRhc2hib2FyZDogRGFzaGJvYXJkSXRlbTtcbiAgQElucHV0KCkgcHVibGljIHdpZGdldEtleSE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNldCBlZGl0V2lkZ2V0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uKSB7XG4gICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRoaXMudGl0bGUuc2V0VmFsdWUoY29uZmlndXJhdGlvbi50aXRsZSk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2VTZWxlY3RlZCh7aXRlbToge2tleTogY29uZmlndXJhdGlvbi5kYXRhU291cmNlS2V5fX0gYXMgYW55KTtcbiAgICAgIHRoaXMuZGlzcGxheVR5cGVTZWxlY3RlZCh7aXRlbToge2tleTogY29uZmlndXJhdGlvbi5kaXNwbGF5VHlwZX19IGFzIGFueSk7XG4gICAgICB0aGlzLmRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJC5uZXh0KGNvbmZpZ3VyYXRpb24uZGF0YVNvdXJjZVByb3BlcnRpZXMpO1xuICAgICAgdGhpcy5kaXNwbGF5VHlwZVByZWZpbGxDb25maWckLm5leHQoY29uZmlndXJhdGlvbi5kaXNwbGF5VHlwZVByb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJC5uZXh0KG51bGwpO1xuICAgICAgdGhpcy5kaXNwbGF5VHlwZVByZWZpbGxDb25maWckLm5leHQobnVsbCk7XG4gICAgfVxuICB9XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2F2ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxDb25maWd1cmF0aW9uT3V0cHV0PigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgdGl0bGU6IHRoaXMuZmIuY29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBkYXRhU291cmNlOiB0aGlzLmZiLmNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICBkaXNwbGF5VHlwZTogdGhpcy5mYi5jb250cm9sKG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBvcGVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWREYXRhU291cmNlS2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERpc3BsYXlUeXBlS2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2VJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UuZ2V0RGF0YVNvdXJjZXMoKSxcbiAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUtleSQsXG4gICAgdGhpcy53aWRnZXRTZXJ2aWNlLnN1cHBvcnRlZERhdGFTb3VyY2VzJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtkYXRhU291cmNlc10pID0+ICEhZGF0YVNvdXJjZXMpLFxuICAgIHRhcCgoW2RhdGFTb3VyY2VzLCBzZWxlY3RlZERhdGFTb3VyY2VLZXldKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWREYXRhU291cmNlS2V5KSB7XG4gICAgICAgIHRoaXMuc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcyhkYXRhU291cmNlcywgc2VsZWN0ZWREYXRhU291cmNlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVzZXRDb21wYXRpYmxlRGlzcGxheVR5cGVzKCk7XG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKChbZGF0YVNvdXJjZXMsIHNlbGVjdGVkRGF0YVNvdXJjZUtleSwgc3VwcG9ydGVkRGF0YVNvdXJjZXNdKSA9PlxuICAgICAgZGF0YVNvdXJjZXNcbiAgICAgICAgLmZpbHRlcihkYXRhU291cmNlID0+XG4gICAgICAgICAgc3VwcG9ydGVkRGF0YVNvdXJjZXMuZmluZChcbiAgICAgICAgICAgIHN1cHBvcnRlZERhdGFTb3VyY2UgPT4gc3VwcG9ydGVkRGF0YVNvdXJjZS5kYXRhU291cmNlS2V5ID09PSBkYXRhU291cmNlLmtleVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAubWFwKGRhdGFTb3VyY2UgPT4gKHtcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCd0aXRsZScsIGRhdGFTb3VyY2Uua2V5KSxcbiAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWREYXRhU291cmNlS2V5ID09PSBkYXRhU291cmNlLmtleSxcbiAgICAgICAgICBrZXk6IGRhdGFTb3VyY2Uua2V5LFxuICAgICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VHlwZVByZWZpbGxDb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxvYmplY3QgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wYXRpYmxlRGlzcGxheVR5cGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RGlzcGxheVR5cGVTcGVjaWZpY2F0aW9uPj4oXG4gICAgW11cbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVR5cGVJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2NvbXBhdGlibGVEaXNwbGF5VHlwZXMkLFxuICAgIHRoaXMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29tcGF0aWJsZURpc3BsYXlUeXBlcywgc2VsZWN0ZWREaXNwbGF5VHlwZUtleV0pID0+XG4gICAgICBjb21wYXRpYmxlRGlzcGxheVR5cGVzLm1hcChkaXNwbGF5VHlwZSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCd0aXRsZScsIGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5KSxcbiAgICAgICAgc2VsZWN0ZWQ6IGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5ID09PSBzZWxlY3RlZERpc3BsYXlUeXBlS2V5LFxuICAgICAgICBrZXk6IGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5LFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VHlwZURyb3Bkb3duRGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fY29tcGF0aWJsZURpc3BsYXlUeXBlcyQsXG4gICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VLZXkkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY29tcGF0aWJsZURpc3BsYXlUeXBlcywgc2VsZWN0ZWREYXRhU291cmNlS2V5XSkgPT5cbiAgICAgICAgY29tcGF0aWJsZURpc3BsYXlUeXBlcz8ubGVuZ3RoID09PSAwIHx8ICFzZWxlY3RlZERhdGFTb3VyY2VLZXlcbiAgICApLFxuICAgIHRhcChkaXNwbGF5VHlwZURyb3Bkb3duRGlzYWJsZWQgPT4ge1xuICAgICAgaWYgKGRpc3BsYXlUeXBlRHJvcGRvd25EaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlUeXBlPy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BsYXlUeXBlPy5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhU291cmNlQ29uZmlndXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyYXRpb25PdXRwdXQ+KHtcbiAgICB2YWxpZDogZmFsc2UsXG4gICAgZGF0YToge30sXG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uZmlndXJhdGlvbk91dHB1dD4oe1xuICAgIHZhbGlkOiBmYWxzZSxcbiAgICBkYXRhOiB7fSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgX29wZW5TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgndGl0bGUnKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgna2V5Jyk7XG4gIH1cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkYXRhU291cmNlJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXlUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkaXNwbGF5VHlwZScpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlOiBEYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFNlcnZpY2U6IFdpZGdldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aWRnZXRUcmFuc2xhdGlvblNlcnZpY2U6IFdpZGdldFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3Blbk9wZW5TdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vcGVuU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuJC5uZXh0KGZhbHNlKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VLZXkkLm5leHQoJycpO1xuICAgICAgdGhpcy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5JC5uZXh0KCcnKTtcbiAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICB9XG5cbiAgcHVibGljIHNhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlS2V5JCxcbiAgICAgIHRoaXMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleSQsXG4gICAgICB0aGlzLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbiQsXG4gICAgICB0aGlzLmRhdGFTb3VyY2VDb25maWd1cmF0aW9uJCxcbiAgICBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoW1xuICAgICAgICAgICAgc2VsZWN0ZWREYXRhU291cmNlS2V5LFxuICAgICAgICAgICAgc2VsZWN0ZWREaXNwbGF5VHlwZUtleSxcbiAgICAgICAgICAgIGRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGRhdGFTb3VyY2VDb25maWd1cmF0aW9uLFxuICAgICAgICAgIF0pID0+ICh7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZS52YWx1ZSxcbiAgICAgICAgICAgIGRpc3BsYXlUeXBlOiBzZWxlY3RlZERpc3BsYXlUeXBlS2V5LFxuICAgICAgICAgICAgZGF0YVNvdXJjZUtleTogc2VsZWN0ZWREYXRhU291cmNlS2V5LFxuICAgICAgICAgICAgZGF0YVNvdXJjZVByb3BlcnRpZXM6IHsuLi5kYXRhU291cmNlQ29uZmlndXJhdGlvbi5kYXRhfSxcbiAgICAgICAgICAgIGRpc3BsYXlUeXBlUHJvcGVydGllczogey4uLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbi5kYXRhfSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICBzd2l0Y2hNYXAod2lkZ2V0VXBkYXRlT2JqZWN0ID0+XG4gICAgICAgICAgdGhpcy50eXBlID09PSAnY3JlYXRlJ1xuICAgICAgICAgICAgPyB0aGlzLmRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlLmNyZWF0ZURhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICAgICAgdGhpcy5kYXNoYm9hcmQua2V5LFxuICAgICAgICAgICAgICAgIHdpZGdldFVwZGF0ZU9iamVjdFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UudXBkYXRlRGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLmRhc2hib2FyZC5rZXksXG4gICAgICAgICAgICAgICAgey4uLndpZGdldFVwZGF0ZU9iamVjdCwga2V5OiB0aGlzLndpZGdldEtleX1cbiAgICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC5kZWxldGVEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uKHRoaXMuZGFzaGJvYXJkLmtleSwgdGhpcy53aWRnZXRLZXkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRhdGFTb3VyY2VTZWxlY3RlZChkYXRhU291cmNlOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlS2V5JC5uZXh0KGRhdGFTb3VyY2U/Lml0ZW0/LmtleSk7XG4gICAgdGhpcy5kYXRhU291cmNlLnNldFZhbHVlKGRhdGFTb3VyY2U/Lml0ZW0/LmtleSk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVTZWxlY3RlZChkaXNwbGF5VHlwZTogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIWRpc3BsYXlUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5JC5uZXh0KGRpc3BsYXlUeXBlPy5pdGVtPy5rZXkpO1xuICAgIHRoaXMuZGlzcGxheVR5cGUuc2V0VmFsdWUoZGlzcGxheVR5cGU/Lml0ZW0/LmtleSk7XG4gIH1cblxuICBwdWJsaWMgZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbk91dHB1dCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24kLm5leHQoY29uZmlndXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb25PdXRwdXQpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbiQubmV4dChjb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgb3Blbk9wZW5TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlblN1YnNjcmlwdGlvbiA9IHRoaXMuc2hvd01vZGFsJC5zdWJzY3JpYmUoc2hvdyA9PiB7XG4gICAgICB0aGlzLm9wZW4kLm5leHQoc2hvdyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jb21wYXRpYmxlRGlzcGxheVR5cGVzJC5uZXh0KFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcyhcbiAgICBkYXRhU291cmNlczogQXJyYXk8V2lkZ2V0RGF0YVNvdXJjZT4sXG4gICAgc2VsZWN0ZWREYXRhU291cmNlS2V5OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRTZXJ2aWNlLnN1cHBvcnRlZERpc3BsYXlUeXBlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc3VwcG9ydGVkRGlzcGxheVR5cGVzID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YVNvdXJjZSA9IGRhdGFTb3VyY2VzLmZpbmQoc291cmNlID0+IHNvdXJjZS5rZXkgPT09IHNlbGVjdGVkRGF0YVNvdXJjZUtleSk7XG4gICAgICBjb25zdCBhdmFpbGFibGVEYXRhRmVhdHVyZXMgPSBzZWxlY3RlZERhdGFTb3VyY2U/LmRhdGFGZWF0dXJlcztcbiAgICAgIGNvbnN0IGNvbXBhdGlibGVEaXNwbGF5VHlwZXMgPSBzdXBwb3J0ZWREaXNwbGF5VHlwZXMuZmlsdGVyKGRpc3BsYXlUeXBlID0+IHtcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkRGF0YUZlYXR1cmVzID0gZGlzcGxheVR5cGUucmVxdWlyZWREYXRhRmVhdHVyZXMuZmlsdGVyKFxuICAgICAgICAgIHJlcXVpcmVkRGF0YUZlYXR1cmUgPT5cbiAgICAgICAgICAgICEhYXZhaWxhYmxlRGF0YUZlYXR1cmVzPy5zb21lKFxuICAgICAgICAgICAgICBhdmFpbGFibGVEYXRhRmVhdHVyZSA9PlxuICAgICAgICAgICAgICAgIHRoaXMudHJpbUFuZFRvVXBwZXJDYXNlKGF2YWlsYWJsZURhdGFGZWF0dXJlKSA9PT1cbiAgICAgICAgICAgICAgICB0aGlzLnRyaW1BbmRUb1VwcGVyQ2FzZShyZXF1aXJlZERhdGFGZWF0dXJlKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gc3VwcG9ydGVkRGF0YUZlYXR1cmVzLmxlbmd0aCA9PT0gZGlzcGxheVR5cGUucmVxdWlyZWREYXRhRmVhdHVyZXMubGVuZ3RoO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2NvbXBhdGlibGVEaXNwbGF5VHlwZXMkLm5leHQoY29tcGF0aWJsZURpc3BsYXlUeXBlcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmltQW5kVG9VcHBlckNhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGV4dH1gLnRyaW0oKS50b1VwcGVyQ2FzZSgpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jLFxuICAgIGlzQ3JlYXRlOiB0eXBlID09PSAnY3JlYXRlJyxcbiAgICBpc0RlbGV0ZTogdHlwZSA9PT0gJ2RlbGV0ZScsXG4gICAgaXNFZGl0OiB0eXBlID09PSAnZWRpdCcsXG4gICAgb3Blbjogb3BlbiQgfCBhc3luYyxcbiAgfSBhcyB2YXJzXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie1xuICAgICAgY3JlYXRlOiB2YXJzLmlzQ3JlYXRlICYmICgnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmFkZCcgfCB0cmFuc2xhdGUpLFxuICAgICAgZGVsZXRlOiB2YXJzLmlzRGVsZXRlICYmICgnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmRlbGV0ZScgfCB0cmFuc2xhdGUpLFxuICAgICAgZWRpdDogdmFycy5pc0VkaXQgJiYgKCdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZWRpdCcgfCB0cmFuc2xhdGUpLFxuICAgIH0gYXMgdGl0bGVzXCJcbiAgPlxuICAgIDxjZHMtbW9kYWxcbiAgICAgICpuZ0lmPVwie1xuICAgICAgICB0aXRsZTogdGl0bGVzLmVkaXQgfHwgdGl0bGVzLmNyZWF0ZSB8fCB0aXRsZXMuZGVsZXRlLFxuICAgICAgfSBhcyB0cmFuc2xhdGlvbnNcIlxuICAgICAgdmFsdGltb0Nkc01vZGFsXG4gICAgICBbb3Blbl09XCJ2YXJzLm9wZW5cIlxuICAgICAgc2hvd0Zvb3Rlcj1cInRydWVcIlxuICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgIHRpdGxlPVwie3sgdHJhbnNsYXRpb25zLnRpdGxlIH19XCJcbiAgICAgIGNsYXNzPVwid2lkZ2V0LW1vZGFsXCJcbiAgICA+XG4gICAgICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgICAge3sgdHJhbnNsYXRpb25zLnRpdGxlIH19XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG5cbiAgICAgIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhcnMuaXNEZWxldGVcIj5cbiAgICAgICAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmRlbGV0ZURlc2NyaXB0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGFpbmVyXG4gICAgICAgID5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFycy5pc0VkaXQgfHwgdmFycy5pc0NyZWF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ3aWRnZXRGb3JtOyBjb250ZXh0OiB7dmFyczogdmFyc31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NlY3Rpb24+XG5cbiAgICAgIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFycy5pc0VkaXQgfHwgdmFycy5pc0NyZWF0ZVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlZGl0QnV0dG9uczsgY29udGV4dDoge3ZhcnM6IHZhcnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YXJzLmlzRGVsZXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRlbGV0ZUJ1dHRvbnM7IGNvbnRleHQ6IHt2YXJzOiB2YXJzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvY2RzLW1vZGFsLWZvb3Rlcj5cbiAgICA8L2Nkcy1tb2RhbD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN3aWRnZXRGb3JtIGxldC12YXJzPVwidmFyc1wiPlxuICA8Zm9ybVxuICAgICpuZ0lmPVwiXG4gICAgICBmb3JtICYmIHtcbiAgICAgICAgZGF0YVNvdXJjZUl0ZW1zOiBkYXRhU291cmNlSXRlbXMkIHwgYXN5bmMsXG4gICAgICAgIGRpc3BsYXlUeXBlRHJvcGRvd25EaXNhYmxlZDogZGlzcGxheVR5cGVEcm9wZG93bkRpc2FibGVkJCB8IGFzeW5jLFxuICAgICAgICBkaXNwbGF5VHlwZUl0ZW1zOiBkaXNwbGF5VHlwZUl0ZW1zJCB8IGFzeW5jLFxuICAgICAgICBzZWxlY3RlZERhdGFTb3VyY2VLZXk6IHNlbGVjdGVkRGF0YVNvdXJjZUtleSQgfCBhc3luYyxcbiAgICAgICAgc2VsZWN0ZWREaXNwbGF5VHlwZUtleTogc2VsZWN0ZWREaXNwbGF5VHlwZUtleSQgfCBhc3luYyxcbiAgICAgIH0gYXMgb2JzXG4gICAgXCJcbiAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgIGNsYXNzPVwiZGFzaGJvYXJkLW1vZGFsX19mb3JtXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCI+XG4gICAgICA8Y2RzLWxhYmVsXG4gICAgICAgIFtoZWxwZXJUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS50aXRsZUhlbHBlclRleHQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ludmFsaWRUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS50aXRsZUhlbHBlclRleHQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ludmFsaWRdPVwidGl0bGUuZGlydHkgJiYgdGl0bGUuaW52YWxpZFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS50aXRsZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICAgIFtpbnZhbGlkXT1cInRpdGxlLmRpcnR5ICYmIHRpdGxlLmludmFsaWRcIlxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Nkcy1sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtX19lbGVtZW50XCIgKm5nSWY9XCJvYnMuZGF0YVNvdXJjZUl0ZW1zXCI+XG4gICAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAgIFthcHBlbmRJbmxpbmVdPVwidHJ1ZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRhdGFTb3VyY2VcIlxuICAgICAgICBbaGVscGVyVGV4dF09XCInZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGF0YVNvdXJjZUhlbHBlclRleHQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ludmFsaWRUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXRlU291cmNlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZF09XCJkYXRhU291cmNlLmRpcnR5ICYmIGRhdGFTb3VyY2UuaW52YWxpZFwiXG4gICAgICAgIFtsYWJlbF09XCInZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGF0YVNvdXJjZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiZGF0YVNvdXJjZVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icy5kYXRhU291cmNlSXRlbXNcIiB0eXBlPVwibXVsdGlcIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICAgICAgPC9jZHMtZHJvcGRvd24+XG4gICAgPC9kaXY+XG5cbiAgICA8dmFsdGltby13aWRnZXQtY29uZmlndXJhdGlvbi1jb250YWluZXJcbiAgICAgICpuZ0lmPVwib2JzLnNlbGVjdGVkRGF0YVNvdXJjZUtleVwiXG4gICAgICBbZGF0YVNvdXJjZUtleV09XCJvYnMuc2VsZWN0ZWREYXRhU291cmNlS2V5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJ2YXJzLmRpc2FibGVkXCJcbiAgICAgIFtwcmVmaWxsQ29uZmlndXJhdGlvbl09XCJkYXRhU291cmNlUHJlZmlsbENvbmZpZyQgfCBhc3luY1wiXG4gICAgICAoY29uZmlndXJhdGlvbkV2ZW50KT1cImRhdGFTb3VyY2VDb25maWd1cmF0aW9uKCRldmVudClcIlxuICAgID48L3ZhbHRpbW8td2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIiAqbmdJZj1cIm9icy5kaXNwbGF5VHlwZUl0ZW1zXCI+XG4gICAgICA8Y2RzLWRyb3Bkb3duXG4gICAgICAgIFthcHBlbmRJbmxpbmVdPVwidHJ1ZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlUeXBlXCJcbiAgICAgICAgW2hlbHBlclRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRpc3BsYXlUeXBlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZF09XCJkaXNwbGF5VHlwZS5kaXJ0eSAmJiBkaXNwbGF5VHlwZS5pbnZhbGlkXCJcbiAgICAgICAgW2ludmFsaWRUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kaXNwbGF5VHlwZUhlbHBlclRleHQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2xhYmVsXT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kaXNwbGF5VHlwZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiZGlzcGxheVR5cGVTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJvYnMuZGlzcGxheVR5cGVJdGVtc1wiIHR5cGU9XCJtdWx0aVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgICA8L2Nkcy1kcm9wZG93bj5cbiAgICA8L2Rpdj5cblxuICAgIDx2YWx0aW1vLXdpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJvYnMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleVwiXG4gICAgICBbZGlzYWJsZWRdPVwidmFycy5kaXNhYmxlZFwiXG4gICAgICBbZGlzcGxheVR5cGVLZXldPVwib2JzLnNlbGVjdGVkRGlzcGxheVR5cGVLZXlcIlxuICAgICAgW3ByZWZpbGxDb25maWd1cmF0aW9uXT1cImRpc3BsYXlUeXBlUHJlZmlsbENvbmZpZyQgfCBhc3luY1wiXG4gICAgICAoY29uZmlndXJhdGlvbkV2ZW50KT1cImRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbigkZXZlbnQpXCJcbiAgICA+PC92YWx0aW1vLXdpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lcj5cbiAgPC9mb3JtPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0QnV0dG9ucyBsZXQtdmFycz1cInZhcnNcIj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie1xuICAgICAgZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb246IGRhdGFTb3VyY2VDb25maWd1cmF0aW9uJCB8IGFzeW5jLFxuICAgICAgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uOiBkaXNwbGF5VHlwZUNvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgfSBhcyBvYnNcIlxuICA+XG4gICAgPGJ1dHRvbiBjZHNCdXR0b249XCJnaG9zdFwiIFtkaXNhYmxlZF09XCJ2YXJzLmRpc2FibGVkXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgZm9ybS5pbnZhbGlkIHx8XG4gICAgICAgICFvYnMuZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24udmFsaWQgfHxcbiAgICAgICAgIW9icy5kaXNwbGF5VHlwZUNvbmZpZ3VyYXRpb24udmFsaWQgfHxcbiAgICAgICAgdmFycy5kaXNhYmxlZFxuICAgICAgXCJcbiAgICAgIChjbGljayk9XCJzYXZlKClcIlxuICAgID5cbiAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuc2F2ZScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlbGV0ZUJ1dHRvbnMgbGV0LXZhcnM9XCJ2YXJzXCI+XG4gIDxidXR0b24gY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCIgW2Rpc2FibGVkXT1cInZhcnMuZGlzYWJsZWRcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b24gY2RzQnV0dG9uPVwiZGFuZ2VyXCIgW2Rpc2FibGVkXT1cInZhcnMuZGlzYWJsZWRcIiAoY2xpY2spPVwiZGVsZXRlKClcIj5cbiAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuIl19
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL3dpZGdldC1tb2RhbC93aWRnZXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvd2lkZ2V0LW1vZGFsL3dpZGdldC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sR0FBRyxFQUdILFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBVyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXhFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7O0FBZ0JyRCxNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLElBQW9CLHVCQUF1QixDQUFDLGFBQTJDO1FBQ3JGLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxHQUFH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Q0YsT0FBTyxxQkFBcUIsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDckMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7K0dBcFNVLG9CQUFvQixrQkFnSXJCLFFBQVE7bUdBaElQLG9CQUFvQiw0T0FGcEIsQ0FBQyxtQkFBbUIsQ0FBQywwQkN6RGxDLHdyT0FvTUE7OzRGRHpJYSxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0Usc0JBQXNCLGlCQUdqQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsbUJBQW1CLENBQUM7OzBCQWtJN0IsTUFBTTsyQkFBQyxRQUFRO2dQQS9IRixVQUFVO3NCQUF6QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNjLHVCQUF1QjtzQkFBMUMsS0FBSztnQkFhVyxTQUFTO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIFN1YnNjcmlwdGlvbixcbiAgc3dpdGNoTWFwLFxuICB0YWtlLFxuICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtEYXNoYm9hcmRJdGVtLCBXaWRnZXREYXRhU291cmNlLCBXaWRnZXRNb2RhbFR5cGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0xpc3RJdGVtLCBOb3RpZmljYXRpb25TZXJ2aWNlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtEYXNoYm9hcmRNYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGFzaGJvYXJkLW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQge0NBUkJPTl9DT05TVEFOVFN9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQ29uZmlndXJhdGlvbk91dHB1dCxcbiAgRGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbixcbiAgRGlzcGxheVR5cGVTcGVjaWZpY2F0aW9uLFxuICBXaWRnZXRTZXJ2aWNlLFxuICBXaWRnZXRUcmFuc2xhdGlvblNlcnZpY2UsXG59IGZyb20gJ0B2YWx0aW1vL2Rhc2hib2FyZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93TW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBASW5wdXQoKSBwdWJsaWMgdHlwZTogV2lkZ2V0TW9kYWxUeXBlO1xuICBASW5wdXQoKSBwdWJsaWMgZGFzaGJvYXJkOiBEYXNoYm9hcmRJdGVtO1xuICBASW5wdXQoKSBwdWJsaWMgd2lkZ2V0S2V5ITogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGVkaXRXaWRnZXRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IERhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24pIHtcbiAgICBpZiAoY29uZmlndXJhdGlvbikge1xuICAgICAgdGhpcy50aXRsZS5zZXRWYWx1ZShjb25maWd1cmF0aW9uLnRpdGxlKTtcbiAgICAgIHRoaXMudXJsLnNldFZhbHVlKGNvbmZpZ3VyYXRpb24udXJsKTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZVNlbGVjdGVkKHtpdGVtOiB7a2V5OiBjb25maWd1cmF0aW9uLmRhdGFTb3VyY2VLZXl9fSBhcyBhbnkpO1xuICAgICAgdGhpcy5kaXNwbGF5VHlwZVNlbGVjdGVkKHtpdGVtOiB7a2V5OiBjb25maWd1cmF0aW9uLmRpc3BsYXlUeXBlfX0gYXMgYW55KTtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZVByZWZpbGxDb25maWckLm5leHQoY29uZmlndXJhdGlvbi5kYXRhU291cmNlUHJvcGVydGllcyk7XG4gICAgICB0aGlzLmRpc3BsYXlUeXBlUHJlZmlsbENvbmZpZyQubmV4dChjb25maWd1cmF0aW9uLmRpc3BsYXlUeXBlUHJvcGVydGllcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZVByZWZpbGxDb25maWckLm5leHQobnVsbCk7XG4gICAgICB0aGlzLmRpc3BsYXlUeXBlUHJlZmlsbENvbmZpZyQubmV4dChudWxsKTtcbiAgICB9XG4gIH1cbiAgQE91dHB1dCgpIHB1YmxpYyBzYXZlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpZ3VyYXRpb25PdXRwdXQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICB0aXRsZTogdGhpcy5mYi5jb250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIGRhdGFTb3VyY2U6IHRoaXMuZmIuY29udHJvbChudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgIGRpc3BsYXlUeXBlOiB0aGlzLmZiLmNvbnRyb2wobnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICB1cmw6IHRoaXMuZmIuY29udHJvbCgnJyksXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBvcGVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWREYXRhU291cmNlS2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERpc3BsYXlUeXBlS2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2VJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UuZ2V0RGF0YVNvdXJjZXMoKSxcbiAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUtleSQsXG4gICAgdGhpcy53aWRnZXRTZXJ2aWNlLnN1cHBvcnRlZERhdGFTb3VyY2VzJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBmaWx0ZXIoKFtkYXRhU291cmNlc10pID0+ICEhZGF0YVNvdXJjZXMpLFxuICAgIHRhcCgoW2RhdGFTb3VyY2VzLCBzZWxlY3RlZERhdGFTb3VyY2VLZXldKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0ZWREYXRhU291cmNlS2V5KSB7XG4gICAgICAgIHRoaXMuc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcyhkYXRhU291cmNlcywgc2VsZWN0ZWREYXRhU291cmNlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVzZXRDb21wYXRpYmxlRGlzcGxheVR5cGVzKCk7XG4gICAgICB9XG4gICAgfSksXG4gICAgbWFwKChbZGF0YVNvdXJjZXMsIHNlbGVjdGVkRGF0YVNvdXJjZUtleSwgc3VwcG9ydGVkRGF0YVNvdXJjZXNdKSA9PlxuICAgICAgZGF0YVNvdXJjZXNcbiAgICAgICAgLmZpbHRlcihkYXRhU291cmNlID0+XG4gICAgICAgICAgc3VwcG9ydGVkRGF0YVNvdXJjZXMuZmluZChcbiAgICAgICAgICAgIHN1cHBvcnRlZERhdGFTb3VyY2UgPT4gc3VwcG9ydGVkRGF0YVNvdXJjZS5kYXRhU291cmNlS2V5ID09PSBkYXRhU291cmNlLmtleVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAubWFwKGRhdGFTb3VyY2UgPT4gKHtcbiAgICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCd0aXRsZScsIGRhdGFTb3VyY2Uua2V5KSxcbiAgICAgICAgICBzZWxlY3RlZDogc2VsZWN0ZWREYXRhU291cmNlS2V5ID09PSBkYXRhU291cmNlLmtleSxcbiAgICAgICAgICBrZXk6IGRhdGFTb3VyY2Uua2V5LFxuICAgICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VHlwZVByZWZpbGxDb25maWckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxvYmplY3QgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wYXRpYmxlRGlzcGxheVR5cGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8RGlzcGxheVR5cGVTcGVjaWZpY2F0aW9uPj4oXG4gICAgW11cbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVR5cGVJdGVtcyQ6IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX2NvbXBhdGlibGVEaXNwbGF5VHlwZXMkLFxuICAgIHRoaXMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleSQsXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbY29tcGF0aWJsZURpc3BsYXlUeXBlcywgc2VsZWN0ZWREaXNwbGF5VHlwZUtleV0pID0+XG4gICAgICBjb21wYXRpYmxlRGlzcGxheVR5cGVzLm1hcChkaXNwbGF5VHlwZSA9PiAoe1xuICAgICAgICBjb250ZW50OiB0aGlzLndpZGdldFRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCd0aXRsZScsIGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5KSxcbiAgICAgICAgc2VsZWN0ZWQ6IGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5ID09PSBzZWxlY3RlZERpc3BsYXlUeXBlS2V5LFxuICAgICAgICBrZXk6IGRpc3BsYXlUeXBlLmRpc3BsYXlUeXBlS2V5LFxuICAgICAgfSkpXG4gICAgKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VHlwZURyb3Bkb3duRGlzYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fY29tcGF0aWJsZURpc3BsYXlUeXBlcyQsXG4gICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VLZXkkLFxuICBdKS5waXBlKFxuICAgIG1hcChcbiAgICAgIChbY29tcGF0aWJsZURpc3BsYXlUeXBlcywgc2VsZWN0ZWREYXRhU291cmNlS2V5XSkgPT5cbiAgICAgICAgY29tcGF0aWJsZURpc3BsYXlUeXBlcz8ubGVuZ3RoID09PSAwIHx8ICFzZWxlY3RlZERhdGFTb3VyY2VLZXlcbiAgICApLFxuICAgIHRhcChkaXNwbGF5VHlwZURyb3Bkb3duRGlzYWJsZWQgPT4ge1xuICAgICAgaWYgKGRpc3BsYXlUeXBlRHJvcGRvd25EaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmRpc3BsYXlUeXBlPy5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRpc3BsYXlUeXBlPy5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBkYXRhU291cmNlQ29uZmlndXJhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyYXRpb25PdXRwdXQ+KHtcbiAgICB2YWxpZDogZmFsc2UsXG4gICAgZGF0YToge30sXG4gIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uZmlndXJhdGlvbk91dHB1dD4oe1xuICAgIHZhbGlkOiBmYWxzZSxcbiAgICBkYXRhOiB7fSxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgX29wZW5TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgndGl0bGUnKTtcbiAgfVxuICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgna2V5Jyk7XG4gIH1cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdkYXRhU291cmNlJyk7XG4gIH1cbiAgcHVibGljIGdldCBkaXNwbGF5VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgnZGlzcGxheVR5cGUnKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldCgndXJsJyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2U6IERhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0U2VydmljZTogV2lkZ2V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFRyYW5zbGF0aW9uU2VydmljZTogV2lkZ2V0VHJhbnNsYXRpb25TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuT3BlblN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29wZW5TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4kLm5leHQoZmFsc2UpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmVuYWJsZSgpO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUtleSQubmV4dCgnJyk7XG4gICAgICB0aGlzLnNlbGVjdGVkRGlzcGxheVR5cGVLZXkkLm5leHQoJycpO1xuICAgIH0sIENBUkJPTl9DT05TVEFOVFMubW9kYWxBbmltYXRpb25Ncyk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VLZXkkLFxuICAgICAgdGhpcy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5JCxcbiAgICAgIHRoaXMuZGlzcGxheVR5cGVDb25maWd1cmF0aW9uJCxcbiAgICAgIHRoaXMuZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24kLFxuICAgIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChbXG4gICAgICAgICAgICBzZWxlY3RlZERhdGFTb3VyY2VLZXksXG4gICAgICAgICAgICBzZWxlY3RlZERpc3BsYXlUeXBlS2V5LFxuICAgICAgICAgICAgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgXSkgPT4gKHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLnZhbHVlLFxuICAgICAgICAgICAgZGlzcGxheVR5cGU6IHNlbGVjdGVkRGlzcGxheVR5cGVLZXksXG4gICAgICAgICAgICBkYXRhU291cmNlS2V5OiBzZWxlY3RlZERhdGFTb3VyY2VLZXksXG4gICAgICAgICAgICBkYXRhU291cmNlUHJvcGVydGllczogey4uLmRhdGFTb3VyY2VDb25maWd1cmF0aW9uLmRhdGF9LFxuICAgICAgICAgICAgZGlzcGxheVR5cGVQcm9wZXJ0aWVzOiB7Li4uZGlzcGxheVR5cGVDb25maWd1cmF0aW9uLmRhdGF9LFxuICAgICAgICAgICAgdXJsOiB0aGlzLnVybC52YWx1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICBzd2l0Y2hNYXAod2lkZ2V0VXBkYXRlT2JqZWN0ID0+XG4gICAgICAgICAgdGhpcy50eXBlID09PSAnY3JlYXRlJ1xuICAgICAgICAgICAgPyB0aGlzLmRhc2hib2FyZE1hbmFnZW1lbnRTZXJ2aWNlLmNyZWF0ZURhc2hib2FyZFdpZGdldENvbmZpZ3VyYXRpb24oXG4gICAgICAgICAgICAgICAgdGhpcy5kYXNoYm9hcmQua2V5LFxuICAgICAgICAgICAgICAgIHdpZGdldFVwZGF0ZU9iamVjdFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2UudXBkYXRlRGFzaGJvYXJkV2lkZ2V0Q29uZmlndXJhdGlvbihcbiAgICAgICAgICAgICAgICB0aGlzLmRhc2hib2FyZC5rZXksXG4gICAgICAgICAgICAgICAgey4uLndpZGdldFVwZGF0ZU9iamVjdCwga2V5OiB0aGlzLndpZGdldEtleX1cbiAgICAgICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUoKTtcblxuICAgIHRoaXMuZGFzaGJvYXJkTWFuYWdlbWVudFNlcnZpY2VcbiAgICAgIC5kZWxldGVEYXNoYm9hcmRXaWRnZXRDb25maWd1cmF0aW9uKHRoaXMuZGFzaGJvYXJkLmtleSwgdGhpcy53aWRnZXRLZXkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KCk7XG4gICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRhdGFTb3VyY2VTZWxlY3RlZChkYXRhU291cmNlOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgIGlmICghZGF0YVNvdXJjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlS2V5JC5uZXh0KGRhdGFTb3VyY2U/Lml0ZW0/LmtleSk7XG4gICAgdGhpcy5kYXRhU291cmNlLnNldFZhbHVlKGRhdGFTb3VyY2U/Lml0ZW0/LmtleSk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVTZWxlY3RlZChkaXNwbGF5VHlwZTogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIWRpc3BsYXlUeXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5JC5uZXh0KGRpc3BsYXlUeXBlPy5pdGVtPy5rZXkpO1xuICAgIHRoaXMuZGlzcGxheVR5cGUuc2V0VmFsdWUoZGlzcGxheVR5cGU/Lml0ZW0/LmtleSk7XG4gIH1cblxuICBwdWJsaWMgZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbk91dHB1dCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24kLm5leHQoY29uZmlndXJhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVR5cGVDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb25PdXRwdXQpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbiQubmV4dChjb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgb3Blbk9wZW5TdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fb3BlblN1YnNjcmlwdGlvbiA9IHRoaXMuc2hvd01vZGFsJC5zdWJzY3JpYmUoc2hvdyA9PiB7XG4gICAgICB0aGlzLm9wZW4kLm5leHQoc2hvdyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jb21wYXRpYmxlRGlzcGxheVR5cGVzJC5uZXh0KFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29tcGF0aWJsZURpc3BsYXlUeXBlcyhcbiAgICBkYXRhU291cmNlczogQXJyYXk8V2lkZ2V0RGF0YVNvdXJjZT4sXG4gICAgc2VsZWN0ZWREYXRhU291cmNlS2V5OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRTZXJ2aWNlLnN1cHBvcnRlZERpc3BsYXlUeXBlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoc3VwcG9ydGVkRGlzcGxheVR5cGVzID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkRGF0YVNvdXJjZSA9IGRhdGFTb3VyY2VzLmZpbmQoc291cmNlID0+IHNvdXJjZS5rZXkgPT09IHNlbGVjdGVkRGF0YVNvdXJjZUtleSk7XG4gICAgICBjb25zdCBhdmFpbGFibGVEYXRhRmVhdHVyZXMgPSBzZWxlY3RlZERhdGFTb3VyY2U/LmRhdGFGZWF0dXJlcztcbiAgICAgIGNvbnN0IGNvbXBhdGlibGVEaXNwbGF5VHlwZXMgPSBzdXBwb3J0ZWREaXNwbGF5VHlwZXMuZmlsdGVyKGRpc3BsYXlUeXBlID0+IHtcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkRGF0YUZlYXR1cmVzID0gZGlzcGxheVR5cGUucmVxdWlyZWREYXRhRmVhdHVyZXMuZmlsdGVyKFxuICAgICAgICAgIHJlcXVpcmVkRGF0YUZlYXR1cmUgPT5cbiAgICAgICAgICAgICEhYXZhaWxhYmxlRGF0YUZlYXR1cmVzPy5zb21lKFxuICAgICAgICAgICAgICBhdmFpbGFibGVEYXRhRmVhdHVyZSA9PlxuICAgICAgICAgICAgICAgIHRoaXMudHJpbUFuZFRvVXBwZXJDYXNlKGF2YWlsYWJsZURhdGFGZWF0dXJlKSA9PT1cbiAgICAgICAgICAgICAgICB0aGlzLnRyaW1BbmRUb1VwcGVyQ2FzZShyZXF1aXJlZERhdGFGZWF0dXJlKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gc3VwcG9ydGVkRGF0YUZlYXR1cmVzLmxlbmd0aCA9PT0gZGlzcGxheVR5cGUucmVxdWlyZWREYXRhRmVhdHVyZXMubGVuZ3RoO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2NvbXBhdGlibGVEaXNwbGF5VHlwZXMkLm5leHQoY29tcGF0aWJsZURpc3BsYXlUeXBlcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmZvcm0uZGlzYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgdGhpcy5mb3JtLmVuYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmltQW5kVG9VcHBlckNhc2UodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGV4dH1gLnRyaW0oKS50b1VwcGVyQ2FzZSgpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkJCB8IGFzeW5jLFxuICAgIGlzQ3JlYXRlOiB0eXBlID09PSAnY3JlYXRlJyxcbiAgICBpc0RlbGV0ZTogdHlwZSA9PT0gJ2RlbGV0ZScsXG4gICAgaXNFZGl0OiB0eXBlID09PSAnZWRpdCcsXG4gICAgb3Blbjogb3BlbiQgfCBhc3luYyxcbiAgfSBhcyB2YXJzXCJcbj5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwie1xuICAgICAgY3JlYXRlOiB2YXJzLmlzQ3JlYXRlICYmICgnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmFkZCcgfCB0cmFuc2xhdGUpLFxuICAgICAgZGVsZXRlOiB2YXJzLmlzRGVsZXRlICYmICgnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmRlbGV0ZScgfCB0cmFuc2xhdGUpLFxuICAgICAgZWRpdDogdmFycy5pc0VkaXQgJiYgKCdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZWRpdCcgfCB0cmFuc2xhdGUpLFxuICAgIH0gYXMgdGl0bGVzXCJcbiAgPlxuICAgIDxjZHMtbW9kYWxcbiAgICAgICpuZ0lmPVwie1xuICAgICAgICB0aXRsZTogdGl0bGVzLmVkaXQgfHwgdGl0bGVzLmNyZWF0ZSB8fCB0aXRsZXMuZGVsZXRlLFxuICAgICAgfSBhcyB0cmFuc2xhdGlvbnNcIlxuICAgICAgdmFsdGltb0Nkc01vZGFsXG4gICAgICBbb3Blbl09XCJ2YXJzLm9wZW5cIlxuICAgICAgc2hvd0Zvb3Rlcj1cInRydWVcIlxuICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgIHRpdGxlPVwie3sgdHJhbnNsYXRpb25zLnRpdGxlIH19XCJcbiAgICAgIGNsYXNzPVwid2lkZ2V0LW1vZGFsXCJcbiAgICA+XG4gICAgICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgICAge3sgdHJhbnNsYXRpb25zLnRpdGxlIH19XG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG5cbiAgICAgIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudCBbY2RzTGF5ZXJdPVwiMVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFycy5pc0RlbGV0ZVwiPlxuICAgICAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZGVsZXRlRGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXJcbiAgICAgICAgPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YXJzLmlzRWRpdCB8fCB2YXJzLmlzQ3JlYXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIndpZGdldEZvcm07IGNvbnRleHQ6IHt2YXJzOiB2YXJzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YXJzLmlzRWRpdCB8fCB2YXJzLmlzQ3JlYXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVkaXRCdXR0b25zOyBjb250ZXh0OiB7dmFyczogdmFyc31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhcnMuaXNEZWxldGVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVsZXRlQnV0dG9uczsgY29udGV4dDoge3ZhcnM6IHZhcnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuICAgIDwvY2RzLW1vZGFsPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3dpZGdldEZvcm0gbGV0LXZhcnM9XCJ2YXJzXCI+XG4gIDxmb3JtXG4gICAgKm5nSWY9XCJcbiAgICAgIGZvcm0gJiYge1xuICAgICAgICBkYXRhU291cmNlSXRlbXM6IGRhdGFTb3VyY2VJdGVtcyQgfCBhc3luYyxcbiAgICAgICAgZGlzcGxheVR5cGVEcm9wZG93bkRpc2FibGVkOiBkaXNwbGF5VHlwZURyb3Bkb3duRGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgICAgIGRpc3BsYXlUeXBlSXRlbXM6IGRpc3BsYXlUeXBlSXRlbXMkIHwgYXN5bmMsXG4gICAgICAgIHNlbGVjdGVkRGF0YVNvdXJjZUtleTogc2VsZWN0ZWREYXRhU291cmNlS2V5JCB8IGFzeW5jLFxuICAgICAgICBzZWxlY3RlZERpc3BsYXlUeXBlS2V5OiBzZWxlY3RlZERpc3BsYXlUeXBlS2V5JCB8IGFzeW5jLFxuICAgICAgfSBhcyBvYnNcbiAgICBcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgY2xhc3M9XCJkYXNoYm9hcmQtbW9kYWxfX2Zvcm1cIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICAgIDxjZHMtbGFiZWxcbiAgICAgICAgW2hlbHBlclRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLnRpdGxlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLnRpdGxlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZF09XCJ0aXRsZS5kaXJ0eSAmJiB0aXRsZS5pbnZhbGlkXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGNkc1RleHRcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwidGl0bGUuZGlydHkgJiYgdGl0bGUuaW52YWxpZFwiXG4gICAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIiAqbmdJZj1cIm9icy5kYXRhU291cmNlSXRlbXNcIj5cbiAgICAgIDxjZHMtZHJvcGRvd25cbiAgICAgICAgW2FwcGVuZElubGluZV09XCJ0cnVlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0YVNvdXJjZVwiXG4gICAgICAgIFtoZWxwZXJUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXRhU291cmNlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRhdGVTb3VyY2VIZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImRhdGFTb3VyY2UuZGlydHkgJiYgZGF0YVNvdXJjZS5pbnZhbGlkXCJcbiAgICAgICAgW2xhYmVsXT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS5kYXRhU291cmNlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJkYXRhU291cmNlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxjZHMtZHJvcGRvd24tbGlzdCBbaXRlbXNdPVwib2JzLmRhdGFTb3VyY2VJdGVtc1wiIHR5cGU9XCJtdWx0aVwiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gICAgICA8L2Nkcy1kcm9wZG93bj5cbiAgICA8L2Rpdj5cblxuICAgIDx2YWx0aW1vLXdpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJvYnMuc2VsZWN0ZWREYXRhU291cmNlS2V5XCJcbiAgICAgIFtkYXRhU291cmNlS2V5XT1cIm9icy5zZWxlY3RlZERhdGFTb3VyY2VLZXlcIlxuICAgICAgW2Rpc2FibGVkXT1cInZhcnMuZGlzYWJsZWRcIlxuICAgICAgW3ByZWZpbGxDb25maWd1cmF0aW9uXT1cImRhdGFTb3VyY2VQcmVmaWxsQ29uZmlnJCB8IGFzeW5jXCJcbiAgICAgIChjb25maWd1cmF0aW9uRXZlbnQpPVwiZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24oJGV2ZW50KVwiXG4gICAgPjwvdmFsdGltby13aWRnZXQtY29uZmlndXJhdGlvbi1jb250YWluZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybV9fZWxlbWVudFwiICpuZ0lmPVwib2JzLmRpc3BsYXlUeXBlSXRlbXNcIj5cbiAgICAgIDxjZHMtZHJvcGRvd25cbiAgICAgICAgW2FwcGVuZElubGluZV09XCJ0cnVlXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheVR5cGVcIlxuICAgICAgICBbaGVscGVyVGV4dF09XCInZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmZvcm0uZGlzcGxheVR5cGVIZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cImRpc3BsYXlUeXBlLmRpcnR5ICYmIGRpc3BsYXlUeXBlLmludmFsaWRcIlxuICAgICAgICBbaW52YWxpZFRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRpc3BsYXlUeXBlSGVscGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbGFiZWxdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLmRpc3BsYXlUeXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChzZWxlY3RlZCk9XCJkaXNwbGF5VHlwZVNlbGVjdGVkKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cIm9icy5kaXNwbGF5VHlwZUl0ZW1zXCIgdHlwZT1cIm11bHRpXCI+PC9jZHMtZHJvcGRvd24tbGlzdD5cbiAgICAgIDwvY2RzLWRyb3Bkb3duPlxuICAgIDwvZGl2PlxuXG4gICAgPHZhbHRpbW8td2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyXG4gICAgICAqbmdJZj1cIm9icy5zZWxlY3RlZERpc3BsYXlUeXBlS2V5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJ2YXJzLmRpc2FibGVkXCJcbiAgICAgIFtkaXNwbGF5VHlwZUtleV09XCJvYnMuc2VsZWN0ZWREaXNwbGF5VHlwZUtleVwiXG4gICAgICBbcHJlZmlsbENvbmZpZ3VyYXRpb25dPVwiZGlzcGxheVR5cGVQcmVmaWxsQ29uZmlnJCB8IGFzeW5jXCJcbiAgICAgIChjb25maWd1cmF0aW9uRXZlbnQpPVwiZGlzcGxheVR5cGVDb25maWd1cmF0aW9uKCRldmVudClcIlxuICAgID48L3ZhbHRpbW8td2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm1fX2VsZW1lbnRcIj5cbiAgICAgIDxjZHMtbGFiZWxcbiAgICAgICAgW2hlbHBlclRleHRdPVwiJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5mb3JtLnVybEhlbHBlclRleHQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ludmFsaWRUZXh0XT1cIidkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS51cmxIZWxwZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpbnZhbGlkXT1cInVybC5kaXJ0eSAmJiB1cmwuaW52YWxpZFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZm9ybS51cmwnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPGlucHV0IGNkc1RleHQgZm9ybUNvbnRyb2xOYW1lPVwidXJsXCIgW2ludmFsaWRdPVwidXJsLmRpcnR5ICYmIHVybC5pbnZhbGlkXCIgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2VkaXRCdXR0b25zIGxldC12YXJzPVwidmFyc1wiPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJ7XG4gICAgICBkYXRhU291cmNlQ29uZmlndXJhdGlvbjogZGF0YVNvdXJjZUNvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgICBkaXNwbGF5VHlwZUNvbmZpZ3VyYXRpb246IGRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbiQgfCBhc3luYyxcbiAgICB9IGFzIG9ic1wiXG4gID5cbiAgICA8YnV0dG9uIGNkc0J1dHRvbj1cImdob3N0XCIgW2Rpc2FibGVkXT1cInZhcnMuZGlzYWJsZWRcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+XG4gICAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBmb3JtLmludmFsaWQgfHxcbiAgICAgICAgIW9icy5kYXRhU291cmNlQ29uZmlndXJhdGlvbi52YWxpZCB8fFxuICAgICAgICAhb2JzLmRpc3BsYXlUeXBlQ29uZmlndXJhdGlvbi52YWxpZCB8fFxuICAgICAgICB2YXJzLmRpc2FibGVkXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXG4gICAgPlxuICAgICAge3sgJ2Rhc2hib2FyZE1hbmFnZW1lbnQud2lkZ2V0cy5zYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVsZXRlQnV0dG9ucyBsZXQtdmFycz1cInZhcnNcIj5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJzZWNvbmRhcnlcIiBbZGlzYWJsZWRdPVwidmFycy5kaXNhYmxlZFwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICB7eyAnZGFzaGJvYXJkTWFuYWdlbWVudC53aWRnZXRzLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvbiBjZHNCdXR0b249XCJkYW5nZXJcIiBbZGlzYWJsZWRdPVwidmFycy5kaXNhYmxlZFwiIChjbGljayk9XCJkZWxldGUoKVwiPlxuICAgIHt7ICdkYXNoYm9hcmRNYW5hZ2VtZW50LndpZGdldHMuZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -18,7 +18,7 @@ import { NgModule } from '@angular/core';
18
18
  import { ReactiveFormsModule } from '@angular/forms';
19
19
  import { TranslateModule } from '@ngx-translate/core';
20
20
  import { CarbonListModule, ConfirmationModalModule, ListModule, RenderInPageHeaderDirectiveModule, SpinnerModule, } from '@valtimo/components';
21
- import { ButtonModule, DropdownModule, IconModule, InputModule, ModalModule, NotificationModule, } from 'carbon-components-angular';
21
+ import { ButtonModule, DropdownModule, IconModule, InputModule, LayerModule, ModalModule, NotificationModule, } from 'carbon-components-angular';
22
22
  import { DashboardDetailsComponent } from './components/dashboard-details/dashboard-details.component';
23
23
  import { DashboardManagementComponent } from './components/dashboard-management/dashboard-management.component';
24
24
  import { DashboardManagementRoutingModule } from './dashboard-management-routing.module';
@@ -48,7 +48,8 @@ export class DashboardManagementModule {
48
48
  NotificationModule,
49
49
  IconModule,
50
50
  WidgetTranslatePipeModule,
51
- CarbonListModule] }); }
51
+ CarbonListModule,
52
+ LayerModule] }); }
52
53
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardManagementModule, imports: [ButtonModule,
53
54
  CommonModule,
54
55
  DashboardManagementRoutingModule,
@@ -64,7 +65,8 @@ export class DashboardManagementModule {
64
65
  NotificationModule,
65
66
  IconModule,
66
67
  WidgetTranslatePipeModule,
67
- CarbonListModule] }); }
68
+ CarbonListModule,
69
+ LayerModule] }); }
68
70
  }
69
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DashboardManagementModule, decorators: [{
70
72
  type: NgModule,
@@ -93,8 +95,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
93
95
  IconModule,
94
96
  WidgetTranslatePipeModule,
95
97
  CarbonListModule,
98
+ LayerModule,
96
99
  ],
97
100
  exports: [],
98
101
  }]
99
102
  }] });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2Rhc2hib2FyZC1tYW5hZ2VtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixVQUFVLEVBQ1YsaUNBQWlDLEVBQ2pDLGFBQWEsR0FDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzlHLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzdELE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHNGQUFzRixDQUFDOztBQThCM0ksTUFBTSxPQUFPLHlCQUF5QjsrR0FBekIseUJBQXlCO2dIQUF6Qix5QkFBeUIsaUJBMUJsQyw0QkFBNEI7WUFDNUIseUJBQXlCO1lBQ3pCLG9CQUFvQjtZQUNwQiwyQkFBMkI7WUFDM0IscUNBQXFDLGFBR3JDLFlBQVk7WUFDWixZQUFZO1lBQ1osZ0NBQWdDO1lBQ2hDLGNBQWM7WUFDZCxXQUFXO1lBQ1gsVUFBVTtZQUNWLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGVBQWU7WUFDZixpQ0FBaUM7WUFDakMsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YseUJBQXlCO1lBQ3pCLGdCQUFnQjtnSEFJUCx5QkFBeUIsWUFuQmxDLFlBQVk7WUFDWixZQUFZO1lBQ1osZ0NBQWdDO1lBQ2hDLGNBQWM7WUFDZCxXQUFXO1lBQ1gsVUFBVTtZQUNWLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGVBQWU7WUFDZixpQ0FBaUM7WUFDakMsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YseUJBQXlCO1lBQ3pCLGdCQUFnQjs7NEZBSVAseUJBQXlCO2tCQTVCckMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osNEJBQTRCO3dCQUM1Qix5QkFBeUI7d0JBQ3pCLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3dCQUMzQixxQ0FBcUM7cUJBQ3RDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osZ0NBQWdDO3dCQUNoQyxjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGlDQUFpQzt3QkFDakMsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLFVBQVU7d0JBQ1YseUJBQXlCO3dCQUN6QixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIENhcmJvbkxpc3RNb2R1bGUsXG4gIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICBMaXN0TW9kdWxlLFxuICBSZW5kZXJJblBhZ2VIZWFkZXJEaXJlY3RpdmVNb2R1bGUsXG4gIFNwaW5uZXJNb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlLFxuICBEcm9wZG93bk1vZHVsZSxcbiAgSWNvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIE1vZGFsTW9kdWxlLFxuICBOb3RpZmljYXRpb25Nb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtEYXNoYm9hcmREZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZGFzaGJvYXJkLWRldGFpbHMvZGFzaGJvYXJkLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7RGFzaGJvYXJkTWFuYWdlbWVudENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2Rhc2hib2FyZC1tYW5hZ2VtZW50L2Rhc2hib2FyZC1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge0Rhc2hib2FyZE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlfSBmcm9tICcuL2Rhc2hib2FyZC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7V2lkZ2V0TW9kYWxDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy93aWRnZXQtbW9kYWwvd2lkZ2V0LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge0VkaXREYXNoYm9hcmRNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtZGFzaGJvYXJkLW1vZGFsL2VkaXQtZGFzaGJvYXJkLW1vZGFsJztcbmltcG9ydCB7V2lkZ2V0VHJhbnNsYXRlUGlwZU1vZHVsZX0gZnJvbSAnQHZhbHRpbW8vZGFzaGJvYXJkJztcbmltcG9ydCB7V2lkZ2V0Q29uZmlndXJhdGlvbkNvbnRhaW5lckNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lci93aWRnZXQtY29uZmlndXJhdGlvbi1jb250YWluZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRGFzaGJvYXJkTWFuYWdlbWVudENvbXBvbmVudCxcbiAgICBEYXNoYm9hcmREZXRhaWxzQ29tcG9uZW50LFxuICAgIFdpZGdldE1vZGFsQ29tcG9uZW50LFxuICAgIEVkaXREYXNoYm9hcmRNb2RhbENvbXBvbmVudCxcbiAgICBXaWRnZXRDb25maWd1cmF0aW9uQ29udGFpbmVyQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEYXNoYm9hcmRNYW5hZ2VtZW50Um91dGluZ01vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBMaXN0TW9kdWxlLFxuICAgIE1vZGFsTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgU3Bpbm5lck1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVuZGVySW5QYWdlSGVhZGVyRGlyZWN0aXZlTW9kdWxlLFxuICAgIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICAgIE5vdGlmaWNhdGlvbk1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIFdpZGdldFRyYW5zbGF0ZVBpcGVNb2R1bGUsXG4gICAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZE1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLW1hbmFnZW1lbnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kYXNoYm9hcmQtbWFuYWdlbWVudC9zcmMvbGliL2Rhc2hib2FyZC1tYW5hZ2VtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixVQUFVLEVBQ1YsaUNBQWlDLEVBQ2pDLGFBQWEsR0FDZCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLFdBQVcsRUFDWCxrQkFBa0IsR0FDbkIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNuRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSxzRkFBc0YsQ0FBQzs7QUErQjNJLE1BQU0sT0FBTyx5QkFBeUI7K0dBQXpCLHlCQUF5QjtnSEFBekIseUJBQXlCLGlCQTNCbEMsNEJBQTRCO1lBQzVCLHlCQUF5QjtZQUN6QixvQkFBb0I7WUFDcEIsMkJBQTJCO1lBQzNCLHFDQUFxQyxhQUdyQyxZQUFZO1lBQ1osWUFBWTtZQUNaLGdDQUFnQztZQUNoQyxjQUFjO1lBQ2QsV0FBVztZQUNYLFVBQVU7WUFDVixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixlQUFlO1lBQ2YsaUNBQWlDO1lBQ2pDLHVCQUF1QjtZQUN2QixrQkFBa0I7WUFDbEIsVUFBVTtZQUNWLHlCQUF5QjtZQUN6QixnQkFBZ0I7WUFDaEIsV0FBVztnSEFJRix5QkFBeUIsWUFwQmxDLFlBQVk7WUFDWixZQUFZO1lBQ1osZ0NBQWdDO1lBQ2hDLGNBQWM7WUFDZCxXQUFXO1lBQ1gsVUFBVTtZQUNWLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGVBQWU7WUFDZixpQ0FBaUM7WUFDakMsdUJBQXVCO1lBQ3ZCLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YseUJBQXlCO1lBQ3pCLGdCQUFnQjtZQUNoQixXQUFXOzs0RkFJRix5QkFBeUI7a0JBN0JyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWiw0QkFBNEI7d0JBQzVCLHlCQUF5Qjt3QkFDekIsb0JBQW9CO3dCQUNwQiwyQkFBMkI7d0JBQzNCLHFDQUFxQztxQkFDdEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsaUNBQWlDO3dCQUNqQyx1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsVUFBVTt3QkFDVix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIsV0FBVztxQkFDWjtvQkFDRCxPQUFPLEVBQUUsRUFBRTtpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBDYXJib25MaXN0TW9kdWxlLFxuICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgTGlzdE1vZHVsZSxcbiAgUmVuZGVySW5QYWdlSGVhZGVyRGlyZWN0aXZlTW9kdWxlLFxuICBTcGlubmVyTW9kdWxlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRHJvcGRvd25Nb2R1bGUsXG4gIEljb25Nb2R1bGUsXG4gIElucHV0TW9kdWxlLFxuICBMYXllck1vZHVsZSxcbiAgTW9kYWxNb2R1bGUsXG4gIE5vdGlmaWNhdGlvbk1vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0Rhc2hib2FyZERldGFpbHNDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9kYXNoYm9hcmQtZGV0YWlscy9kYXNoYm9hcmQtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHtEYXNoYm9hcmRNYW5hZ2VtZW50Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkLW1hbmFnZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7RGFzaGJvYXJkTWFuYWdlbWVudFJvdXRpbmdNb2R1bGV9IGZyb20gJy4vZGFzaGJvYXJkLW1hbmFnZW1lbnQtcm91dGluZy5tb2R1bGUnO1xuaW1wb3J0IHtXaWRnZXRNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3dpZGdldC1tb2RhbC93aWRnZXQtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7RWRpdERhc2hib2FyZE1vZGFsQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdC1kYXNoYm9hcmQtbW9kYWwvZWRpdC1kYXNoYm9hcmQtbW9kYWwnO1xuaW1wb3J0IHtXaWRnZXRUcmFuc2xhdGVQaXBlTW9kdWxlfSBmcm9tICdAdmFsdGltby9kYXNoYm9hcmQnO1xuaW1wb3J0IHtXaWRnZXRDb25maWd1cmF0aW9uQ29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvd2lkZ2V0LWNvbmZpZ3VyYXRpb24tY29udGFpbmVyL3dpZGdldC1jb25maWd1cmF0aW9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEYXNoYm9hcmRNYW5hZ2VtZW50Q29tcG9uZW50LFxuICAgIERhc2hib2FyZERldGFpbHNDb21wb25lbnQsXG4gICAgV2lkZ2V0TW9kYWxDb21wb25lbnQsXG4gICAgRWRpdERhc2hib2FyZE1vZGFsQ29tcG9uZW50LFxuICAgIFdpZGdldENvbmZpZ3VyYXRpb25Db250YWluZXJDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERhc2hib2FyZE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlLFxuICAgIERyb3Bkb3duTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIExpc3RNb2R1bGUsXG4gICAgTW9kYWxNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBTcGlubmVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBSZW5kZXJJblBhZ2VIZWFkZXJEaXJlY3RpdmVNb2R1bGUsXG4gICAgQ29uZmlybWF0aW9uTW9kYWxNb2R1bGUsXG4gICAgTm90aWZpY2F0aW9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgV2lkZ2V0VHJhbnNsYXRlUGlwZU1vZHVsZSxcbiAgICBDYXJib25MaXN0TW9kdWxlLFxuICAgIExheWVyTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkTWFuYWdlbWVudE1vZHVsZSB7fVxuIl19
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export {};
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWl0ZW0udHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9tb2RlbHMvZGFzaGJvYXJkLWl0ZW0udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkSXRlbSB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICByb2xlcz86IEFycmF5PHN0cmluZz47XG4gIGNyZWF0ZWRCeT86IHN0cmluZztcbiAgY3JlYXRlZE9uPzogc3RyaW5nO1xufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLWl0ZW0udHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZGFzaGJvYXJkLW1hbmFnZW1lbnQvc3JjL2xpYi9tb2RlbHMvZGFzaGJvYXJkLWl0ZW0udHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkSXRlbSB7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICByb2xlcz86IEFycmF5PHN0cmluZz47XG4gIGNyZWF0ZWRCeT86IHN0cmluZztcbiAgY3JlYXRlZE9uPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG59XG4iXX0=