@c8y/ngx-components 1018.503.23 → 1018.503.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/services.d.ts +1 -1
- package/core/forms/validation-pattern.d.ts +4 -0
- package/device-grid/device-grid.component.d.ts +7 -2
- package/esm2020/api/services.mjs +2 -2
- package/esm2020/child-devices/child-devices.component.mjs +1 -1
- package/esm2020/core/bootstrap/bootstrap.component.mjs +3 -3
- package/esm2020/core/dynamic-forms/json-schema/c8y-json-schema.service.mjs +8 -2
- package/esm2020/core/forms/validation-pattern.mjs +5 -1
- package/esm2020/device-grid/device-grid-extension.service.mjs +13 -8
- package/esm2020/device-grid/device-grid.component.mjs +30 -15
- package/esm2020/device-list/device-list.component.mjs +1 -1
- package/esm2020/operations/device-selector/device-selector.component.mjs +1 -1
- package/esm2020/replace-device-wizard/replace-device-wizard.component.mjs +2 -2
- package/esm2020/sub-assets/add-group/add-group.component.mjs +4 -3
- package/esm2020/sub-assets/asset-properties-item.component.mjs +7 -3
- package/esm2020/sub-assets/asset-properties.component.mjs +25 -10
- package/esm2020/sub-assets/assign-devices/assign-devices.component.mjs +4 -3
- package/esm2020/sub-assets/location/asset-location.component.mjs +5 -3
- package/esm2020/trusted-certificates/crl/crl-check-settings.component.mjs +39 -0
- package/esm2020/trusted-certificates/crl/crl-settings.component.mjs +109 -0
- package/esm2020/trusted-certificates/crl/crl-settings.module.mjs +46 -0
- package/esm2020/trusted-certificates/factories/tabs.factory.mjs +36 -0
- package/esm2020/trusted-certificates/factories/trusted-certificates-navigation.factory.mjs +26 -0
- package/esm2020/trusted-certificates/index.mjs +4 -4
- package/esm2020/trusted-certificates/{add-trusted-certificate.component.mjs → list/add-trusted-certificate.component.mjs} +1 -1
- package/esm2020/trusted-certificates/list/trusted-certificate-list.component.mjs +184 -0
- package/esm2020/trusted-certificates/list/trusted-certificate-list.module.mjs +54 -0
- package/esm2020/trusted-certificates/list/trusted-certificate.model.mjs +36 -0
- package/esm2020/trusted-certificates/trusted-certificates.module.mjs +24 -35
- package/fesm2015/c8y-ngx-components-api.mjs +3 -2
- package/fesm2015/c8y-ngx-components-api.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-child-devices.mjs +1 -1
- package/fesm2015/c8y-ngx-components-child-devices.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-device-grid.mjs +41 -21
- package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-device-list.mjs +1 -1
- package/fesm2015/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-operations-device-selector.mjs +1 -1
- package/fesm2015/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-replace-device-wizard.mjs +1 -1
- package/fesm2015/c8y-ngx-components-replace-device-wizard.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-sub-assets.mjs +39 -18
- package/fesm2015/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-trusted-certificates.mjs +329 -86
- package/fesm2015/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +10 -3
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-api.mjs +3 -2
- package/fesm2020/c8y-ngx-components-api.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-child-devices.mjs +1 -1
- package/fesm2020/c8y-ngx-components-child-devices.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-grid.mjs +41 -21
- package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-list.mjs +1 -1
- package/fesm2020/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-operations-device-selector.mjs +1 -1
- package/fesm2020/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-replace-device-wizard.mjs +1 -1
- package/fesm2020/c8y-ngx-components-replace-device-wizard.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-sub-assets.mjs +38 -17
- package/fesm2020/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-trusted-certificates.mjs +314 -85
- package/fesm2020/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +13 -3
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +48 -0
- package/package.json +1 -1
- package/sub-assets/add-group/add-group.component.d.ts +2 -1
- package/sub-assets/asset-properties.component.d.ts +6 -0
- package/sub-assets/assign-devices/assign-devices.component.d.ts +2 -1
- package/trusted-certificates/crl/crl-check-settings.component.d.ts +18 -0
- package/trusted-certificates/crl/crl-settings.component.d.ts +28 -0
- package/trusted-certificates/crl/crl-settings.module.d.ts +13 -0
- package/trusted-certificates/factories/tabs.factory.d.ts +10 -0
- package/trusted-certificates/index.d.ts +3 -3
- package/trusted-certificates/{trusted-certificates.component.d.ts → list/trusted-certificate-list.component.d.ts} +4 -4
- package/trusted-certificates/list/trusted-certificate-list.module.d.ts +15 -0
- package/trusted-certificates/trusted-certificates.module.d.ts +4 -10
- package/esm2020/trusted-certificates/trusted-certificate.model.mjs +0 -36
- package/esm2020/trusted-certificates/trusted-certificates-navigation.factory.mjs +0 -26
- package/esm2020/trusted-certificates/trusted-certificates.component.mjs +0 -184
- /package/trusted-certificates/{trusted-certificates-navigation.factory.d.ts → factories/trusted-certificates-navigation.factory.d.ts} +0 -0
- /package/trusted-certificates/{add-trusted-certificate.component.d.ts → list/add-trusted-certificate.component.d.ts} +0 -0
- /package/trusted-certificates/{trusted-certificate.model.d.ts → list/trusted-certificate.model.d.ts} +0 -0
|
@@ -30,6 +30,7 @@ export class AssignDevicesComponent {
|
|
|
30
30
|
this.actionControls = [];
|
|
31
31
|
this.headerActionControls = [];
|
|
32
32
|
this.showChildren = false;
|
|
33
|
+
this.builtInActionsToHide = ["DELETE" /* BuiltInActionType.Delete */];
|
|
33
34
|
this.isSelectable = true;
|
|
34
35
|
}
|
|
35
36
|
onEnterKeyDown(_event) {
|
|
@@ -123,7 +124,7 @@ AssignDevicesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
123
124
|
provide: DATA_GRID_CONFIGURATION_CONTEXT,
|
|
124
125
|
useValue: AssignDevicesComponent.GRID_CONFIG_CONTEXT
|
|
125
126
|
}
|
|
126
|
-
], viewQueries: [{ propertyName: "showDevicesToggle", first: true, predicate: ["showDevicesToggle"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <div class=\"h4 text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </div>\n </div>\n </div>\n</div>\n<c8y-device-grid\n [title]=\"''\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"isSelectable\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [refresh]=\"refresh\"\n [baseQuery]=\"baseQuery\"\n [headerActionControls]=\"headerActionControls\"\n [withChildren]=\"true\"\n class=\"flex-grow col-xs-12 no-gutter\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{ component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES }\"\n></c8y-device-grid>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Cancel' | translate }}\"\n (click)=\"onCancel.emit()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.CANCEL\n }\"\n >\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n type=\"button\"\n title=\"{{ 'Assign' | translate }}\"\n (click)=\"assignDevices()\"\n [disabled]=\"selected.length === 0 || !canAssignDevice\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.ASSIGN\n }\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n\n<ng-template #showDevicesToggle let-control=\"headerActionControl\">\n <label class=\"c8y-switch a-s-center\" title=\"{{ control.text | translate }}\">\n <input type=\"checkbox\" [(ngModel)]=\"showChildren\" (click)=\"control.callback()\" />\n <span></span>\n <span>{{ control.text | translate }}</span>\n </label>\n <button\n class=\"btn-help m-r-16 a-s-center\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"childDevicesPop\"\n placement=\"bottom\"\n triggers=\"focus\"\n ></button>\n <ng-template #childDevicesPop>\n <span translate>\n Displays the button\n <span title=\"Child devices icon\" class=\"btn btn-dot btn-icon no-pointer\">\n <i class=\"text-primary dlt-c8y-icon-enter-bottom\"></i>\n </span>\n next to target devices with children. Clicking it displays a list with all child devices of\n the selected target device.\n </span>\n </ng-template>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i6.DeviceGridComponent, selector: "c8y-device-grid", inputs: ["dataCallback", "refresh", "title", "loadMoreItemsLabel", "loadingItemsLabel", "legacyConfigKey", "legacyFilterKey", "columns", "pagination", "infiniteScroll", "actionControls", "selectable", "singleSelection", "baseQuery", "bulkActionControls", "headerActionControls", "childDeviceGrid", "parentDeviceId", "withChildren", "showSearch", "activeClassName"], outputs: ["onColumnsChange", "onFilterChange", "onDeviceQueryStringChange", "itemsSelect"] }, { kind: "directive", type: i7.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
|
|
127
|
+
], viewQueries: [{ propertyName: "showDevicesToggle", first: true, predicate: ["showDevicesToggle"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <div class=\"h4 text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </div>\n </div>\n </div>\n</div>\n<c8y-device-grid\n [title]=\"''\"\n [actionControls]=\"actionControls\"\n [builtInActionsToHide]=\"builtInActionsToHide\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"isSelectable\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [refresh]=\"refresh\"\n [baseQuery]=\"baseQuery\"\n [headerActionControls]=\"headerActionControls\"\n [withChildren]=\"true\"\n class=\"flex-grow col-xs-12 no-gutter\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{ component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES }\"\n></c8y-device-grid>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Cancel' | translate }}\"\n (click)=\"onCancel.emit()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.CANCEL\n }\"\n >\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n type=\"button\"\n title=\"{{ 'Assign' | translate }}\"\n (click)=\"assignDevices()\"\n [disabled]=\"selected.length === 0 || !canAssignDevice\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.ASSIGN\n }\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n\n<ng-template #showDevicesToggle let-control=\"headerActionControl\">\n <label class=\"c8y-switch a-s-center\" title=\"{{ control.text | translate }}\">\n <input type=\"checkbox\" [(ngModel)]=\"showChildren\" (click)=\"control.callback()\" />\n <span></span>\n <span>{{ control.text | translate }}</span>\n </label>\n <button\n class=\"btn-help m-r-16 a-s-center\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"childDevicesPop\"\n placement=\"bottom\"\n triggers=\"focus\"\n ></button>\n <ng-template #childDevicesPop>\n <span translate>\n Displays the button\n <span title=\"Child devices icon\" class=\"btn btn-dot btn-icon no-pointer\">\n <i class=\"text-primary dlt-c8y-icon-enter-bottom\"></i>\n </span>\n next to target devices with children. Clicking it displays a list with all child devices of\n the selected target device.\n </span>\n </ng-template>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i6.DeviceGridComponent, selector: "c8y-device-grid", inputs: ["dataCallback", "refresh", "title", "loadMoreItemsLabel", "loadingItemsLabel", "legacyConfigKey", "legacyFilterKey", "columns", "pagination", "infiniteScroll", "builtInActionsToHide", "actionControls", "selectable", "singleSelection", "baseQuery", "bulkActionControls", "headerActionControls", "childDeviceGrid", "parentDeviceId", "withChildren", "showSearch", "activeClassName"], outputs: ["onColumnsChange", "onFilterChange", "onDeviceQueryStringChange", "itemsSelect"] }, { kind: "directive", type: i7.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
|
|
127
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AssignDevicesComponent, decorators: [{
|
|
128
129
|
type: Component,
|
|
129
130
|
args: [{ selector: 'c8y-assign-devices', providers: [
|
|
@@ -135,7 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
135
136
|
provide: DATA_GRID_CONFIGURATION_CONTEXT,
|
|
136
137
|
useValue: AssignDevicesComponent.GRID_CONFIG_CONTEXT
|
|
137
138
|
}
|
|
138
|
-
], template: "<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <div class=\"h4 text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </div>\n </div>\n </div>\n</div>\n<c8y-device-grid\n [title]=\"''\"\n [actionControls]=\"actionControls\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"isSelectable\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [refresh]=\"refresh\"\n [baseQuery]=\"baseQuery\"\n [headerActionControls]=\"headerActionControls\"\n [withChildren]=\"true\"\n class=\"flex-grow col-xs-12 no-gutter\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{ component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES }\"\n></c8y-device-grid>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Cancel' | translate }}\"\n (click)=\"onCancel.emit()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.CANCEL\n }\"\n >\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n type=\"button\"\n title=\"{{ 'Assign' | translate }}\"\n (click)=\"assignDevices()\"\n [disabled]=\"selected.length === 0 || !canAssignDevice\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.ASSIGN\n }\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n\n<ng-template #showDevicesToggle let-control=\"headerActionControl\">\n <label class=\"c8y-switch a-s-center\" title=\"{{ control.text | translate }}\">\n <input type=\"checkbox\" [(ngModel)]=\"showChildren\" (click)=\"control.callback()\" />\n <span></span>\n <span>{{ control.text | translate }}</span>\n </label>\n <button\n class=\"btn-help m-r-16 a-s-center\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"childDevicesPop\"\n placement=\"bottom\"\n triggers=\"focus\"\n ></button>\n <ng-template #childDevicesPop>\n <span translate>\n Displays the button\n <span title=\"Child devices icon\" class=\"btn btn-dot btn-icon no-pointer\">\n <i class=\"text-primary dlt-c8y-icon-enter-bottom\"></i>\n </span>\n next to target devices with children. Clicking it displays a list with all child devices of\n the selected target device.\n </span>\n </ng-template>\n</ng-template>\n" }]
|
|
139
|
+
], template: "<div class=\"card-block flex-no-shrink separator-bottom col-xs-12 large-padding p-t-24 p-b-24\">\n <div class=\"row\">\n <div class=\"col-md-6 col-md-offset-3 col-lg-4 col-lg-offset-4\">\n <div class=\"h4 text-center text-medium\">\n {{ 'Assign devices' | translate }}\n </div>\n </div>\n </div>\n</div>\n<c8y-device-grid\n [title]=\"''\"\n [actionControls]=\"actionControls\"\n [builtInActionsToHide]=\"builtInActionsToHide\"\n [infiniteScroll]=\"'auto'\"\n [selectable]=\"isSelectable\"\n [pagination]=\"pagination\"\n (itemsSelect)=\"onSelected($event)\"\n [refresh]=\"refresh\"\n [baseQuery]=\"baseQuery\"\n [headerActionControls]=\"headerActionControls\"\n [withChildren]=\"true\"\n class=\"flex-grow col-xs-12 no-gutter\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{ component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES }\"\n></c8y-device-grid>\n\n<div class=\"text-center card-footer p-24 separator\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Cancel' | translate }}\"\n (click)=\"onCancel.emit()\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.CANCEL\n }\"\n >\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n <button\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pendingStatus }\"\n type=\"button\"\n title=\"{{ 'Assign' | translate }}\"\n (click)=\"assignDevices()\"\n [disabled]=\"selected.length === 0 || !canAssignDevice\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n [actionData]=\"{\n component: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.COMPONENTS.ASSIGN_DEVICES,\n action: PRODUCT_EXPERIENCE.ASSIGN_DEVICES.ACTIONS.ASSIGN\n }\"\n >\n <span>{{ 'Assign' | translate }}</span>\n </button>\n</div>\n\n<ng-template #showDevicesToggle let-control=\"headerActionControl\">\n <label class=\"c8y-switch a-s-center\" title=\"{{ control.text | translate }}\">\n <input type=\"checkbox\" [(ngModel)]=\"showChildren\" (click)=\"control.callback()\" />\n <span></span>\n <span>{{ control.text | translate }}</span>\n </label>\n <button\n class=\"btn-help m-r-16 a-s-center\"\n type=\"button\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"childDevicesPop\"\n placement=\"bottom\"\n triggers=\"focus\"\n ></button>\n <ng-template #childDevicesPop>\n <span translate>\n Displays the button\n <span title=\"Child devices icon\" class=\"btn btn-dot btn-icon no-pointer\">\n <i class=\"text-primary dlt-c8y-icon-enter-bottom\"></i>\n </span>\n next to target devices with children. Clicking it displays a list with all child devices of\n the selected target device.\n </span>\n </ng-template>\n</ng-template>\n" }]
|
|
139
140
|
}], ctorParameters: function () { return [{ type: i1.AlertService }, { type: i2.SubAssetsService }, { type: i3.InventoryService }, { type: i1.GainsightService }]; }, propDecorators: { currentGroupId: [{
|
|
140
141
|
type: Input
|
|
141
142
|
}], refresh: [{
|
|
@@ -153,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
153
154
|
type: HostListener,
|
|
154
155
|
args: ['document:keydown.enter', ['$event']]
|
|
155
156
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLWRldmljZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3ViLWFzc2V0cy9hc3NpZ24tZGV2aWNlcy9hc3NpZ24tZGV2aWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zdWItYXNzZXRzL2Fzc2lnbi1kZXZpY2VzL2Fzc2lnbi1kZXZpY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBRUwsWUFBWSxFQUNaLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFJUCxvQ0FBb0MsRUFFckMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBZ0J6RCxNQUFNLE9BQU8sc0JBQXNCO0lBNkJqQyxZQUNVLEtBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxnQkFBa0MsRUFDbEMsZ0JBQWtDO1FBSGxDLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjVDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFHL0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakMs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QUMsQ0FBQztJQUNsQyxDQUFDOztBQXRIZSwwQ0FBbUIsR0FBcUM7SUFDdEUsR0FBRyxFQUFFLHFCQUFxQjtJQUMxQixZQUFZLEVBQUU7UUFDWixNQUFNLEVBQUUsS0FBSztLQUNkO0NBQ0YsQ0FBQzttSEFOUyxzQkFBc0I7dUdBQXRCLHNCQUFzQiwyU0FYdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLG9DQUFvQztTQUMvQztRQUNEO1lBQ0UsT0FBTyxFQUFFLCtCQUErQjtZQUN4QyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsbUJBQW1CO1NBQ3JEO0tBQ0YsNkhBa0J1QyxXQUFXLDZCQ3hEckQsNDRGQW9GQTsyRkQ1Q2Esc0JBQXNCO2tCQWRsQyxTQUFTOytCQUNFLG9CQUFvQixhQUVuQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsb0NBQW9DO3lCQUMvQzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsK0JBQStCOzRCQUN4QyxRQUFRLEVBQUUsdUJBQXVCLG1CQUFtQjt5QkFDckQ7cUJBQ0Y7Z01BYVEsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDZ0QsaUJBQWlCO3NCQUF2RSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFvQkQsY0FBYztzQkFBakUsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEFjdGlvbkNvbnRyb2wsXG4gIEFsZXJ0U2VydmljZSxcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fQ09OVEVYVCxcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fU1RSQVRFR1ksXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIEhlYWRlckFjdGlvbkNvbnRyb2wsXG4gIFBhZ2luYXRpb24sXG4gIFJvdyxcbiAgVXNlclByZWZlcmVuY2VzQ29uZmlndXJhdGlvblN0cmF0ZWd5LFxuICBVc2VyUHJlZmVyZW5jZXNHcmlkQ29uZmlnQ29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRSB9IGZyb20gJy4uL3NoYXJlZC9zdWItYXNzZXRzLm1vZGVsJztcbmltcG9ydCB7IFN1YkFzc2V0c1NlcnZpY2UgfSBmcm9tICcuLi9zdWItYXNzZXRzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXNzaWduLWRldmljZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzaWduLWRldmljZXMuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9TVFJBVEVHWSxcbiAgICAgIHVzZUNsYXNzOiBVc2VyUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uU3RyYXRlZ3lcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IERBVEFfR1JJRF9DT05GSUdVUkFUSU9OX0NPTlRFWFQsXG4gICAgICB1c2VWYWx1ZTogQXNzaWduRGV2aWNlc0NvbXBvbmVudC5HUklEX0NPTkZJR19DT05URVhUXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFzc2lnbkRldmljZXNDb21wb25lbnQge1xuICBzdGF0aWMgcmVhZG9ubHkgR1JJRF9DT05GSUdfQ09OVEVYVDogVXNlclByZWZlcmVuY2VzR3JpZENvbmZpZ0NvbnRleHQgPSB7XG4gICAga2V5OiAnYXNzaWduLWRldmljZXMtZ3JpZCcsXG4gICAgY29uZmlnRmlsdGVyOiB7XG4gICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuICBQUk9EVUNUX0VYUEVSSUVOQ0UgPSBQUk9EVUNUX0VYUEVSSUVOQ0U7XG5cbiAgQElucHV0KCkgY3VycmVudEdyb3VwSWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uU2hvd0NoaWxkRGV2aWNlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRGV2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjxJTWFuYWdlZE9iamVjdD4oKTtcbiAgQFZpZXdDaGlsZCgnc2hvd0RldmljZXNUb2dnbGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHNob3dEZXZpY2VzVG9nZ2xlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGRldmljZVF1ZXJ5U3RyaW5nT3V0cHV0OiBzdHJpbmc7XG4gIHBlbmRpbmdTdGF0dXMgPSBmYWxzZTtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHsgcGFnZVNpemU6IDIwLCBjdXJyZW50UGFnZTogMSB9O1xuICBzZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcbiAgYmFzZVF1ZXJ5OiBhbnk7XG4gIGNhbkFzc2lnbkRldmljZSA9IGZhbHNlO1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG4gIGhlYWRlckFjdGlvbkNvbnRyb2xzOiBIZWFkZXJBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgc2hvd0NoaWxkcmVuID0gZmFsc2U7XG4gIHJlYWRvbmx5IGlzU2VsZWN0YWJsZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3ViQXNzZXRzU2VydmljZTogU3ViQXNzZXRzU2VydmljZSxcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSkgb25FbnRlcktleURvd24oX2V2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hc3NpZ25EZXZpY2VzKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXROb3RJbmNsdWRlZEluR3JvdXBRdWVyeSgpO1xuICAgIHRoaXMuY2FuQXNzaWduRGV2aWNlID0gYXdhaXQgdGhpcy5zdWJBc3NldHNTZXJ2aWNlLmNhbkFzc2lnbkRldmljZSh7XG4gICAgICBpZDogdGhpcy5jdXJyZW50R3JvdXBJZFxuICAgIH0gYXMgSU1hbmFnZWRPYmplY3QpO1xuICAgIHRoaXMuc2V0SGVhZGVyQWN0aW9uQ29udHJvbHMoKTtcbiAgfVxuXG4gIHNldE5vdEluY2x1ZGVkSW5Hcm91cFF1ZXJ5KCkge1xuICAgIGNvbnN0IG5vdEluY2x1ZGVkSW5Hcm91cFF1ZXJ5ID0geyBfX25vdDogeyBfX2J5Z3JvdXBpZDogdGhpcy5jdXJyZW50R3JvdXBJZCB9IH07XG4gICAgdGhpcy5iYXNlUXVlcnkgPSBub3RJbmNsdWRlZEluR3JvdXBRdWVyeTtcbiAgfVxuXG4gIHNldEhlYWRlckFjdGlvbkNvbnRyb2xzKCkge1xuICAgIGNvbnN0IGhlYWRlckFjdGlvbkNvbnRyb2xzOiBIZWFkZXJBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgICBjb25zdCBzaG93Q2hpbGREZXZpY2VzID0ge1xuICAgICAgdHlwZTogJ0RJU1BMQVlfQ0hJTERfREVWSUNFU19CVVRUT04nLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnRW5hYmxlIGNoaWxkIGRldmljZXMgc2VsZWN0aW9uJyksXG4gICAgICB0ZW1wbGF0ZTogdGhpcy5zaG93RGV2aWNlc1RvZ2dsZSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuID0gIXRoaXMuc2hvd0NoaWxkcmVuO1xuICAgICAgICB0aGlzLnNldEFjdGlvbkNvbnRyb2xzKHRoaXMuc2hvd0NoaWxkcmVuKTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuRVZFTlQsIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BU1NJR05fREVWSUNFUy5DT01QT05FTlRTLkFTU0lHTl9ERVZJQ0VTLFxuICAgICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFTU0lHTl9ERVZJQ0VTLkFDVElPTlMuRElTUExBWV9DSElMRF9ERVZJQ0VTLFxuICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgaGVhZGVyQWN0aW9uQ29udHJvbHMucHVzaChzaG93Q2hpbGREZXZpY2VzKTtcbiAgICB0aGlzLmhlYWRlckFjdGlvbkNvbnRyb2xzID0gaGVhZGVyQWN0aW9uQ29udHJvbHM7XG4gIH1cblxuICBzZXRBY3Rpb25Db250cm9scyhzaG93Q2hpbGRyZW46IGJvb2xlYW4pIHtcbiAgICBjb25zdCBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG5cbiAgICBjb25zdCBzZWxlY3RDaGlsZHJlbkFjdGlvbjogQWN0aW9uQ29udHJvbCA9IHtcbiAgICAgIHR5cGU6ICdTSE9XX1RBUkdFVF9DSElMRF9ERVZJQ0VTJyxcbiAgICAgIGljb246ICdlbnRlci1ib3R0b20nLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnU2VsZWN0IHRhcmdldCBjaGlsZCBkZXZpY2VzJyksXG4gICAgICBjYWxsYmFjazogKGFzc2V0OiBSb3cpID0+IHRoaXMuc2VsZWN0Q2hpbGRyZW4oYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QpLFxuICAgICAgc2hvd0lmOiAoYXNzZXQ6IFJvdykgPT4gYXNzZXQuY2hpbGREZXZpY2VzLnJlZmVyZW5jZXMubGVuZ3RoID4gMFxuICAgIH07XG5cbiAgICBpZiAoc2hvd0NoaWxkcmVuKSB7XG4gICAgICBhY3Rpb25Db250cm9scy5wdXNoKHNlbGVjdENoaWxkcmVuQWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gYWN0aW9uQ29udHJvbHM7XG4gICAgdGhpcy5yZWZyZXNoLmVtaXQoKTtcbiAgfVxuXG4gIGFzeW5jIGFzc2lnbkRldmljZXMoKSB7XG4gICAgaWYgKHRoaXMuY2FuQXNzaWduRGV2aWNlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBlbmRpbmdTdGF0dXMgPSB0cnVlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5jaGlsZEFzc2V0c0J1bGtBZGQodGhpcy5zZWxlY3RlZCwgdGhpcy5jdXJyZW50R3JvdXBJZCk7XG4gICAgICB0aGlzLnJlZnJlc2guZW1pdCgpO1xuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ0RldmljZXMgYXNzaWduZWQuJykpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFsZXJ0LmRhbmdlcihnZXR0ZXh0KCdDb3VsZCBub3QgYXNzaWduIGRldmljZXMuJyksIGVycm9yKTtcbiAgICB9XG4gICAgdGhpcy5wZW5kaW5nU3RhdHVzID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xuICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgb25TZWxlY3RlZChzZWxlY3RlZERldmljZXNJRHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkRGV2aWNlc0lEcztcbiAgfVxuXG4gIHNlbGVjdENoaWxkcmVuKGFzc2V0OiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHRoaXMub25TaG93Q2hpbGREZXZpY2VzLmVtaXQodHJ1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZERldmljZS5lbWl0KGFzc2V0KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgZmxleC1uby1zaHJpbmsgc2VwYXJhdG9yLWJvdHRvbSBjb2wteHMtMTIgbGFyZ2UtcGFkZGluZyBwLXQtMjQgcC1iLTI0XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLW1kLW9mZnNldC0zIGNvbC1sZy00IGNvbC1sZy1vZmZzZXQtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImg0IHRleHQtY2VudGVyIHRleHQtbWVkaXVtXCI+XG4gICAgICAgIHt7ICdBc3NpZ24gZGV2aWNlcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGM4eS1kZXZpY2UtZ3JpZFxuICBbdGl0bGVdPVwiJydcIlxuICBbYWN0aW9uQ29udHJvbHNdPVwiYWN0aW9uQ29udHJvbHNcIlxuICBbaW5maW5pdGVTY3JvbGxdPVwiJ2F1dG8nXCJcbiAgW3NlbGVjdGFibGVdPVwiaXNTZWxlY3RhYmxlXCJcbiAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gIChpdGVtc1NlbGVjdCk9XCJvblNlbGVjdGVkKCRldmVudClcIlxuICBbcmVmcmVzaF09XCJyZWZyZXNoXCJcbiAgW2Jhc2VRdWVyeV09XCJiYXNlUXVlcnlcIlxuICBbaGVhZGVyQWN0aW9uQ29udHJvbHNdPVwiaGVhZGVyQWN0aW9uQ29udHJvbHNcIlxuICBbd2l0aENoaWxkcmVuXT1cInRydWVcIlxuICBjbGFzcz1cImZsZXgtZ3JvdyBjb2wteHMtMTIgbm8tZ3V0dGVyXCJcbiAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLkVWRU5UXCJcbiAgW2FjdGlvbkRhdGFdPVwieyBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BU1NJR05fREVWSUNFUy5DT01QT05FTlRTLkFTU0lHTl9ERVZJQ0VTIH1cIlxuPjwvYzh5LWRldmljZS1ncmlkPlxuXG48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgY2FyZC1mb290ZXIgcC0yNCBzZXBhcmF0b3JcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0aXRsZT1cInt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwib25DYW5jZWwuZW1pdCgpXCJcbiAgICBjOHlQcm9kdWN0RXhwZXJpZW5jZVxuICAgIFthY3Rpb25OYW1lXT1cIlBST0RVQ1RfRVhQRVJJRU5DRS5FVkVOVFwiXG4gICAgW2FjdGlvbkRhdGFdPVwie1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVNTSUdOX0RFVklDRVMuQ09NUE9ORU5UUy5BU1NJR05fREVWSUNFUyxcbiAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFTU0lHTl9ERVZJQ0VTLkFDVElPTlMuQ0FOQ0VMXG4gICAgfVwiXG4gID5cbiAgICA8c3Bhbj57eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgW25nQ2xhc3NdPVwieyAnYnRuLXBlbmRpbmcnOiBwZW5kaW5nU3RhdHVzIH1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ0Fzc2lnbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJhc3NpZ25EZXZpY2VzKClcIlxuICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgIWNhbkFzc2lnbkRldmljZVwiXG4gICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICBbYWN0aW9uTmFtZV09XCJQUk9EVUNUX0VYUEVSSUVOQ0UuRVZFTlRcIlxuICAgIFthY3Rpb25EYXRhXT1cIntcbiAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFTU0lHTl9ERVZJQ0VTLkNPTVBPTkVOVFMuQVNTSUdOX0RFVklDRVMsXG4gICAgICBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5BU1NJR05fREVWSUNFUy5BQ1RJT05TLkFTU0lHTlxuICAgIH1cIlxuICA+XG4gICAgPHNwYW4+e3sgJ0Fzc2lnbicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvd0RldmljZXNUb2dnbGUgbGV0LWNvbnRyb2w9XCJoZWFkZXJBY3Rpb25Db250cm9sXCI+XG4gIDxsYWJlbCBjbGFzcz1cImM4eS1zd2l0Y2ggYS1zLWNlbnRlclwiIHRpdGxlPVwie3sgY29udHJvbC50ZXh0IHwgdHJhbnNsYXRlIH19XCI+XG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwic2hvd0NoaWxkcmVuXCIgKGNsaWNrKT1cImNvbnRyb2wuY2FsbGJhY2soKVwiIC8+XG4gICAgPHNwYW4+PC9zcGFuPlxuICAgIDxzcGFuPnt7IGNvbnRyb2wudGV4dCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuLWhlbHAgbS1yLTE2IGEtcy1jZW50ZXJcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICBbcG9wb3Zlcl09XCJjaGlsZERldmljZXNQb3BcIlxuICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gID48L2J1dHRvbj5cbiAgPG5nLXRlbXBsYXRlICNjaGlsZERldmljZXNQb3A+XG4gICAgPHNwYW4gdHJhbnNsYXRlPlxuICAgICAgRGlzcGxheXMgdGhlIGJ1dHRvblxuICAgICAgPHNwYW4gdGl0bGU9XCJDaGlsZCBkZXZpY2VzIGljb25cIiBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1pY29uIG5vLXBvaW50ZXJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZGx0LWM4eS1pY29uLWVudGVyLWJvdHRvbVwiPjwvaT5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIG5leHQgdG8gdGFyZ2V0IGRldmljZXMgd2l0aCBjaGlsZHJlbi4gQ2xpY2tpbmcgaXQgZGlzcGxheXMgYSBsaXN0IHdpdGggYWxsIGNoaWxkIGRldmljZXMgb2ZcbiAgICAgIHRoZSBzZWxlY3RlZCB0YXJnZXQgZGV2aWNlLlxuICAgIDwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLWRldmljZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3ViLWFzc2V0cy9hc3NpZ24tZGV2aWNlcy9hc3NpZ24tZGV2aWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zdWItYXNzZXRzL2Fzc2lnbi1kZXZpY2VzL2Fzc2lnbi1kZXZpY2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBRUwsWUFBWSxFQUVaLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFJUCxvQ0FBb0MsRUFFckMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBZ0J6RCxNQUFNLE9BQU8sc0JBQXNCO0lBOEJqQyxZQUNVLEtBQW1CLEVBQ25CLGdCQUFrQyxFQUNsQyxnQkFBa0MsRUFDbEMsZ0JBQWtDO1FBSGxDLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUExQjVDLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFHL0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDakMs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Q0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O0FBdkhlLDBDQUFtQixHQUFxQztJQUN0RSxHQUFHLEVBQUUscUJBQXFCO0lBQzFCLFlBQVksRUFBRTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFDO21IQU5TLHNCQUFzQjt1R0FBdEIsc0JBQXNCLDJTQVh0QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsb0NBQW9DO1NBQy9DO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsK0JBQStCO1lBQ3hDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxtQkFBbUI7U0FDckQ7S0FDRiw2SEFrQnVDLFdBQVcsNkJDekRyRCwrN0ZBcUZBOzJGRDVDYSxzQkFBc0I7a0JBZGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBRW5CO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxvQ0FBb0M7eUJBQy9DO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSwrQkFBK0I7NEJBQ3hDLFFBQVEsRUFBRSx1QkFBdUIsbUJBQW1CO3lCQUNyRDtxQkFDRjtnTUFhUSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNnRCxpQkFBaUI7c0JBQXZFLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQXFCRCxjQUFjO3NCQUFqRSxZQUFZO3VCQUFDLHdCQUF3QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQWxlcnRTZXJ2aWNlLFxuICBCdWlsdEluQWN0aW9uVHlwZSxcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fQ09OVEVYVCxcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fU1RSQVRFR1ksXG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIGdldHRleHQsXG4gIEhlYWRlckFjdGlvbkNvbnRyb2wsXG4gIFBhZ2luYXRpb24sXG4gIFJvdyxcbiAgVXNlclByZWZlcmVuY2VzQ29uZmlndXJhdGlvblN0cmF0ZWd5LFxuICBVc2VyUHJlZmVyZW5jZXNHcmlkQ29uZmlnQ29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRSB9IGZyb20gJy4uL3NoYXJlZC9zdWItYXNzZXRzLm1vZGVsJztcbmltcG9ydCB7IFN1YkFzc2V0c1NlcnZpY2UgfSBmcm9tICcuLi9zdWItYXNzZXRzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXNzaWduLWRldmljZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXNzaWduLWRldmljZXMuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9TVFJBVEVHWSxcbiAgICAgIHVzZUNsYXNzOiBVc2VyUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uU3RyYXRlZ3lcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IERBVEFfR1JJRF9DT05GSUdVUkFUSU9OX0NPTlRFWFQsXG4gICAgICB1c2VWYWx1ZTogQXNzaWduRGV2aWNlc0NvbXBvbmVudC5HUklEX0NPTkZJR19DT05URVhUXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFzc2lnbkRldmljZXNDb21wb25lbnQge1xuICBzdGF0aWMgcmVhZG9ubHkgR1JJRF9DT05GSUdfQ09OVEVYVDogVXNlclByZWZlcmVuY2VzR3JpZENvbmZpZ0NvbnRleHQgPSB7XG4gICAga2V5OiAnYXNzaWduLWRldmljZXMtZ3JpZCcsXG4gICAgY29uZmlnRmlsdGVyOiB7XG4gICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuICBQUk9EVUNUX0VYUEVSSUVOQ0UgPSBQUk9EVUNUX0VYUEVSSUVOQ0U7XG5cbiAgQElucHV0KCkgY3VycmVudEdyb3VwSWQ6IHN0cmluZztcbiAgQElucHV0KCkgcmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG9uU2hvd0NoaWxkRGV2aWNlcyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkRGV2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjxJTWFuYWdlZE9iamVjdD4oKTtcbiAgQFZpZXdDaGlsZCgnc2hvd0RldmljZXNUb2dnbGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHNob3dEZXZpY2VzVG9nZ2xlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGRldmljZVF1ZXJ5U3RyaW5nT3V0cHV0OiBzdHJpbmc7XG4gIHBlbmRpbmdTdGF0dXMgPSBmYWxzZTtcbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHsgcGFnZVNpemU6IDIwLCBjdXJyZW50UGFnZTogMSB9O1xuICBzZWxlY3RlZDogc3RyaW5nW10gPSBbXTtcbiAgYmFzZVF1ZXJ5OiBhbnk7XG4gIGNhbkFzc2lnbkRldmljZSA9IGZhbHNlO1xuICBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG4gIGhlYWRlckFjdGlvbkNvbnRyb2xzOiBIZWFkZXJBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgc2hvd0NoaWxkcmVuID0gZmFsc2U7XG4gIGJ1aWx0SW5BY3Rpb25zVG9IaWRlOiBCdWlsdEluQWN0aW9uVHlwZVtdID0gW0J1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZV07XG4gIHJlYWRvbmx5IGlzU2VsZWN0YWJsZSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3ViQXNzZXRzU2VydmljZTogU3ViQXNzZXRzU2VydmljZSxcbiAgICBwcml2YXRlIGludmVudG9yeVNlcnZpY2U6IEludmVudG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSkgb25FbnRlcktleURvd24oX2V2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hc3NpZ25EZXZpY2VzKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXROb3RJbmNsdWRlZEluR3JvdXBRdWVyeSgpO1xuICAgIHRoaXMuY2FuQXNzaWduRGV2aWNlID0gYXdhaXQgdGhpcy5zdWJBc3NldHNTZXJ2aWNlLmNhbkFzc2lnbkRldmljZSh7XG4gICAgICBpZDogdGhpcy5jdXJyZW50R3JvdXBJZFxuICAgIH0gYXMgSU1hbmFnZWRPYmplY3QpO1xuICAgIHRoaXMuc2V0SGVhZGVyQWN0aW9uQ29udHJvbHMoKTtcbiAgfVxuXG4gIHNldE5vdEluY2x1ZGVkSW5Hcm91cFF1ZXJ5KCkge1xuICAgIGNvbnN0IG5vdEluY2x1ZGVkSW5Hcm91cFF1ZXJ5ID0geyBfX25vdDogeyBfX2J5Z3JvdXBpZDogdGhpcy5jdXJyZW50R3JvdXBJZCB9IH07XG4gICAgdGhpcy5iYXNlUXVlcnkgPSBub3RJbmNsdWRlZEluR3JvdXBRdWVyeTtcbiAgfVxuXG4gIHNldEhlYWRlckFjdGlvbkNvbnRyb2xzKCkge1xuICAgIGNvbnN0IGhlYWRlckFjdGlvbkNvbnRyb2xzOiBIZWFkZXJBY3Rpb25Db250cm9sW10gPSBbXTtcbiAgICBjb25zdCBzaG93Q2hpbGREZXZpY2VzID0ge1xuICAgICAgdHlwZTogJ0RJU1BMQVlfQ0hJTERfREVWSUNFU19CVVRUT04nLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnRW5hYmxlIGNoaWxkIGRldmljZXMgc2VsZWN0aW9uJyksXG4gICAgICB0ZW1wbGF0ZTogdGhpcy5zaG93RGV2aWNlc1RvZ2dsZSxcbiAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuID0gIXRoaXMuc2hvd0NoaWxkcmVuO1xuICAgICAgICB0aGlzLnNldEFjdGlvbkNvbnRyb2xzKHRoaXMuc2hvd0NoaWxkcmVuKTtcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuRVZFTlQsIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BU1NJR05fREVWSUNFUy5DT01QT05FTlRTLkFTU0lHTl9ERVZJQ0VTLFxuICAgICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFTU0lHTl9ERVZJQ0VTLkFDVElPTlMuRElTUExBWV9DSElMRF9ERVZJQ0VTLFxuICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgaGVhZGVyQWN0aW9uQ29udHJvbHMucHVzaChzaG93Q2hpbGREZXZpY2VzKTtcbiAgICB0aGlzLmhlYWRlckFjdGlvbkNvbnRyb2xzID0gaGVhZGVyQWN0aW9uQ29udHJvbHM7XG4gIH1cblxuICBzZXRBY3Rpb25Db250cm9scyhzaG93Q2hpbGRyZW46IGJvb2xlYW4pIHtcbiAgICBjb25zdCBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG5cbiAgICBjb25zdCBzZWxlY3RDaGlsZHJlbkFjdGlvbjogQWN0aW9uQ29udHJvbCA9IHtcbiAgICAgIHR5cGU6ICdTSE9XX1RBUkdFVF9DSElMRF9ERVZJQ0VTJyxcbiAgICAgIGljb246ICdlbnRlci1ib3R0b20nLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnU2VsZWN0IHRhcmdldCBjaGlsZCBkZXZpY2VzJyksXG4gICAgICBjYWxsYmFjazogKGFzc2V0OiBSb3cpID0+IHRoaXMuc2VsZWN0Q2hpbGRyZW4oYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QpLFxuICAgICAgc2hvd0lmOiAoYXNzZXQ6IFJvdykgPT4gYXNzZXQuY2hpbGREZXZpY2VzLnJlZmVyZW5jZXMubGVuZ3RoID4gMFxuICAgIH07XG5cbiAgICBpZiAoc2hvd0NoaWxkcmVuKSB7XG4gICAgICBhY3Rpb25Db250cm9scy5wdXNoKHNlbGVjdENoaWxkcmVuQWN0aW9uKTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gYWN0aW9uQ29udHJvbHM7XG4gICAgdGhpcy5yZWZyZXNoLmVtaXQoKTtcbiAgfVxuXG4gIGFzeW5jIGFzc2lnbkRldmljZXMoKSB7XG4gICAgaWYgKHRoaXMuY2FuQXNzaWduRGV2aWNlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBlbmRpbmdTdGF0dXMgPSB0cnVlO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuaW52ZW50b3J5U2VydmljZS5jaGlsZEFzc2V0c0J1bGtBZGQodGhpcy5zZWxlY3RlZCwgdGhpcy5jdXJyZW50R3JvdXBJZCk7XG4gICAgICB0aGlzLnJlZnJlc2guZW1pdCgpO1xuICAgICAgdGhpcy5hbGVydC5zdWNjZXNzKGdldHRleHQoJ0RldmljZXMgYXNzaWduZWQuJykpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFsZXJ0LmRhbmdlcihnZXR0ZXh0KCdDb3VsZCBub3QgYXNzaWduIGRldmljZXMuJyksIGVycm9yKTtcbiAgICB9XG4gICAgdGhpcy5wZW5kaW5nU3RhdHVzID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZCA9IFtdO1xuICAgIHRoaXMub25DYW5jZWwuZW1pdCgpO1xuICB9XG5cbiAgb25TZWxlY3RlZChzZWxlY3RlZERldmljZXNJRHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHNlbGVjdGVkRGV2aWNlc0lEcztcbiAgfVxuXG4gIHNlbGVjdENoaWxkcmVuKGFzc2V0OiBJTWFuYWdlZE9iamVjdCkge1xuICAgIHRoaXMub25TaG93Q2hpbGREZXZpY2VzLmVtaXQodHJ1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZERldmljZS5lbWl0KGFzc2V0KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgZmxleC1uby1zaHJpbmsgc2VwYXJhdG9yLWJvdHRvbSBjb2wteHMtMTIgbGFyZ2UtcGFkZGluZyBwLXQtMjQgcC1iLTI0XCI+XG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLW1kLW9mZnNldC0zIGNvbC1sZy00IGNvbC1sZy1vZmZzZXQtNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImg0IHRleHQtY2VudGVyIHRleHQtbWVkaXVtXCI+XG4gICAgICAgIHt7ICdBc3NpZ24gZGV2aWNlcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGM4eS1kZXZpY2UtZ3JpZFxuICBbdGl0bGVdPVwiJydcIlxuICBbYWN0aW9uQ29udHJvbHNdPVwiYWN0aW9uQ29udHJvbHNcIlxuICBbYnVpbHRJbkFjdGlvbnNUb0hpZGVdPVwiYnVpbHRJbkFjdGlvbnNUb0hpZGVcIlxuICBbaW5maW5pdGVTY3JvbGxdPVwiJ2F1dG8nXCJcbiAgW3NlbGVjdGFibGVdPVwiaXNTZWxlY3RhYmxlXCJcbiAgW3BhZ2luYXRpb25dPVwicGFnaW5hdGlvblwiXG4gIChpdGVtc1NlbGVjdCk9XCJvblNlbGVjdGVkKCRldmVudClcIlxuICBbcmVmcmVzaF09XCJyZWZyZXNoXCJcbiAgW2Jhc2VRdWVyeV09XCJiYXNlUXVlcnlcIlxuICBbaGVhZGVyQWN0aW9uQ29udHJvbHNdPVwiaGVhZGVyQWN0aW9uQ29udHJvbHNcIlxuICBbd2l0aENoaWxkcmVuXT1cInRydWVcIlxuICBjbGFzcz1cImZsZXgtZ3JvdyBjb2wteHMtMTIgbm8tZ3V0dGVyXCJcbiAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLkVWRU5UXCJcbiAgW2FjdGlvbkRhdGFdPVwieyBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BU1NJR05fREVWSUNFUy5DT01QT05FTlRTLkFTU0lHTl9ERVZJQ0VTIH1cIlxuPjwvYzh5LWRldmljZS1ncmlkPlxuXG48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgY2FyZC1mb290ZXIgcC0yNCBzZXBhcmF0b3JcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0aXRsZT1cInt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAoY2xpY2spPVwib25DYW5jZWwuZW1pdCgpXCJcbiAgICBjOHlQcm9kdWN0RXhwZXJpZW5jZVxuICAgIFthY3Rpb25OYW1lXT1cIlBST0RVQ1RfRVhQRVJJRU5DRS5FVkVOVFwiXG4gICAgW2FjdGlvbkRhdGFdPVwie1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVNTSUdOX0RFVklDRVMuQ09NUE9ORU5UUy5BU1NJR05fREVWSUNFUyxcbiAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFTU0lHTl9ERVZJQ0VTLkFDVElPTlMuQ0FOQ0VMXG4gICAgfVwiXG4gID5cbiAgICA8c3Bhbj57eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgW25nQ2xhc3NdPVwieyAnYnRuLXBlbmRpbmcnOiBwZW5kaW5nU3RhdHVzIH1cIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ0Fzc2lnbicgfCB0cmFuc2xhdGUgfX1cIlxuICAgIChjbGljayk9XCJhc3NpZ25EZXZpY2VzKClcIlxuICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZC5sZW5ndGggPT09IDAgfHwgIWNhbkFzc2lnbkRldmljZVwiXG4gICAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgICBbYWN0aW9uTmFtZV09XCJQUk9EVUNUX0VYUEVSSUVOQ0UuRVZFTlRcIlxuICAgIFthY3Rpb25EYXRhXT1cIntcbiAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFTU0lHTl9ERVZJQ0VTLkNPTVBPTkVOVFMuQVNTSUdOX0RFVklDRVMsXG4gICAgICBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5BU1NJR05fREVWSUNFUy5BQ1RJT05TLkFTU0lHTlxuICAgIH1cIlxuICA+XG4gICAgPHNwYW4+e3sgJ0Fzc2lnbicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2hvd0RldmljZXNUb2dnbGUgbGV0LWNvbnRyb2w9XCJoZWFkZXJBY3Rpb25Db250cm9sXCI+XG4gIDxsYWJlbCBjbGFzcz1cImM4eS1zd2l0Y2ggYS1zLWNlbnRlclwiIHRpdGxlPVwie3sgY29udHJvbC50ZXh0IHwgdHJhbnNsYXRlIH19XCI+XG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwic2hvd0NoaWxkcmVuXCIgKGNsaWNrKT1cImNvbnRyb2wuY2FsbGJhY2soKVwiIC8+XG4gICAgPHNwYW4+PC9zcGFuPlxuICAgIDxzcGFuPnt7IGNvbnRyb2wudGV4dCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuLWhlbHAgbS1yLTE2IGEtcy1jZW50ZXJcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCJcbiAgICBbcG9wb3Zlcl09XCJjaGlsZERldmljZXNQb3BcIlxuICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gID48L2J1dHRvbj5cbiAgPG5nLXRlbXBsYXRlICNjaGlsZERldmljZXNQb3A+XG4gICAgPHNwYW4gdHJhbnNsYXRlPlxuICAgICAgRGlzcGxheXMgdGhlIGJ1dHRvblxuICAgICAgPHNwYW4gdGl0bGU9XCJDaGlsZCBkZXZpY2VzIGljb25cIiBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1pY29uIG5vLXBvaW50ZXJcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZGx0LWM4eS1pY29uLWVudGVyLWJvdHRvbVwiPjwvaT5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIG5leHQgdG8gdGFyZ2V0IGRldmljZXMgd2l0aCBjaGlsZHJlbi4gQ2xpY2tpbmcgaXQgZGlzcGxheXMgYSBsaXN0IHdpdGggYWxsIGNoaWxkIGRldmljZXMgb2ZcbiAgICAgIHRoZSBzZWxlY3RlZCB0YXJnZXQgZGV2aWNlLlxuICAgIDwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -3,6 +3,7 @@ import { MapComponent, MapService, defaultMapConfig, getC8yMarker } from '@c8y/n
|
|
|
3
3
|
import { FormGroup } from '@angular/forms';
|
|
4
4
|
import { ActivatedRoute } from '@angular/router';
|
|
5
5
|
import { toggleFullscreen } from '../fullscreen.util';
|
|
6
|
+
import { isNumber } from 'lodash-es';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/router";
|
|
8
9
|
import * as i2 from "@c8y/ngx-components/map";
|
|
@@ -152,9 +153,10 @@ export class AssetLocationComponent {
|
|
|
152
153
|
* @param longitude Longitude of the marker
|
|
153
154
|
*/
|
|
154
155
|
setView(latitude, longitude) {
|
|
155
|
-
if (latitude && longitude && this.mapView) {
|
|
156
|
+
if (isNumber(latitude) && isNumber(longitude) && this.mapView) {
|
|
156
157
|
[latitude, longitude] = this.setLatLngValues(latitude, longitude);
|
|
157
|
-
this.
|
|
158
|
+
this.config.center = [latitude, longitude];
|
|
159
|
+
this.mapView.center();
|
|
158
160
|
}
|
|
159
161
|
}
|
|
160
162
|
setLatLngValues(latitude, longitude) {
|
|
@@ -181,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
181
183
|
}], form: [{
|
|
182
184
|
type: Input
|
|
183
185
|
}] } });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3ViLWFzc2V0cy9sb2NhdGlvbi9hc3NldC1sb2NhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zdWItYXNzZXRzL2xvY2F0aW9uL2Fzc2V0LWxvY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUtMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsWUFBWSxFQUVaLFVBQVUsRUFFVixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNiLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFFdEQsYUFBYTtBQUNiLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9CLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0NBQ3ZCLENBQUM7QUFNWCxNQUFNLE9BQU8sc0JBQXNCO0lBbUJqQyxZQUFvQixlQUErQixFQUFVLFVBQXNCO1FBQS9ELG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFibkYsV0FBTSxHQUFjO1lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQy9CLFNBQVMsRUFBRSxFQUFFO1lBQ2IsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUsbUJBQW1CO1NBQzFCLENBQUM7UUFFRixzQkFBaUIsR0FBRyxLQUFLLENB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U0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDakQsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDaEYsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbkYsT0FBTyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBSztRQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUMvQyxDQUFDOzttSEE5S1Usc0JBQXNCO3VHQUF0QixzQkFBc0IseUtBQ3RCLFlBQVkscUVDbkN6Qix5ZkFxQkE7MkZEYWEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjs4SEFLOUIsT0FBTztzQkFETixTQUFTO3VCQUFDLFlBQVk7Z0JBRWQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7XG4gIE1hcENvbXBvbmVudCxcbiAgTWFwQ29uZmlnLFxuICBNYXBTZXJ2aWNlLFxuICBQb3NpdGlvbk1hbmFnZWRPYmplY3QsXG4gIGRlZmF1bHRNYXBDb25maWcsXG4gIGdldEM4eU1hcmtlclxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL21hcCc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b2dnbGVGdWxsc2NyZWVuIH0gZnJvbSAnLi4vZnVsbHNjcmVlbi51dGlsJztcblxuLy8gRMO8c3NlbGRvcmZcbmV4cG9ydCBjb25zdCBkZWZhdWx0TWFwTG9jYXRpb24gPSB7XG4gIGxhdDogZGVmYXVsdE1hcENvbmZpZy5jZW50ZXJbMF0sXG4gIGxuZzogZGVmYXVsdE1hcENvbmZpZy5jZW50ZXJbMV1cbn0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hc3NldC1sb2NhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NldC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKE1hcENvbXBvbmVudClcbiAgbWFwVmlldzogTWFwQ29tcG9uZW50O1xuICBASW5wdXQoKSBpc0VkaXQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxvY2F0aW9uTU86IElNYW5hZ2VkT2JqZWN0O1xuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XG4gIGNvbmZpZzogTWFwQ29uZmlnID0ge1xuICAgIGNlbnRlcjogZGVmYXVsdE1hcENvbmZpZy5jZW50ZXIsXG4gICAgem9vbUxldmVsOiAxMyxcbiAgICBjb2xvcjogJ2dyZWVuJyxcbiAgICBpY29uOiAnYzh5LWljb24tbG9jYXRpb24nXG4gIH07XG4gIGFzc2V0czogUG9zaXRpb25NYW5hZ2VkT2JqZWN0O1xuICBpc01hcmtlckRyYWdnYWJsZSA9IGZhbHNlO1xuICBpc01hcENsaWNrYWJsZSA9IGZhbHNlO1xuICBkcmFnTGlzdGVuZXI6IEwuTGVhZmxldEV2ZW50SGFuZGxlckZuO1xuICBmb3JtU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHNob3dNYXAgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWN0aXZhdGVkUm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSwgcHJpdmF0ZSBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGxlYWZsZXQgPSBhd2FpdCB0aGlzLm1hcFNlcnZpY2UuZ2V0TGVhZmxldCgpO1xuICAgIGlmIChsZWFmbGV0KSB7XG4gICAgICBjb25zdCB7IGNvbnRleHREYXRhIH0gPVxuICAgICAgICAhdGhpcy5hY3RpdmF0ZWRSb3V0ZXIucGFyZW50IHx8IHRoaXMuYWN0aXZhdGVkUm91dGVyLnNuYXBzaG90LmRhdGEuY29udGV4dFxuICAgICAgICAgID8gdGhpcy5hY3RpdmF0ZWRSb3V0ZXIuc25hcHNob3QuZGF0YVxuICAgICAgICAgIDogdGhpcy5hY3RpdmF0ZWRSb3V0ZXIucGFyZW50LnNuYXBzaG90LmRhdGE7XG4gICAgICB0aGlzLmFzc2V0cyA9IGNvbnRleHREYXRhID8gY29udGV4dERhdGEgOiB0aGlzLmxvY2F0aW9uTU87XG4gICAgICBpZiAodGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxhdCAmJiB0aGlzLmFzc2V0cy5jOHlfUG9zaXRpb24ubG5nKVxuICAgICAgICB0aGlzLmNvbmZpZy5jZW50ZXIgPSBbdGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxhdCwgdGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxuZ107XG4gICAgICB0aGlzLnNldFZpZXcodGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxhdCwgdGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxuZyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmlzRWRpdD8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNob3dNYXAgPSB0cnVlO1xuICAgICAgdGhpcy5pc01hcmtlckRyYWdnYWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmlzTWFwQ2xpY2thYmxlID0gdHJ1ZTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMubWFwVmlldz8ubWFwLmludmFsaWRhdGVTaXplKCkpO1xuICAgICAgdGhpcy5tYXBWaWV3Py5tYXAub24oJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLm9uQ2xpY2tPZk1hcChldmVudCk7XG4gICAgICAgIHRoaXMudXBkYXRlTWFya2VyKGV2ZW50LmxhdGxuZy5sYXQsIGV2ZW50LmxhdGxuZy5sbmcpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU1hcmtlcih2YWx1ZS5jOHlfUG9zaXRpb24ubGF0LCB2YWx1ZS5jOHlfUG9zaXRpb24ubG5nKTtcbiAgICAgICAgdGhpcy5zZXRWaWV3KHZhbHVlLmM4eV9Qb3NpdGlvbi5sYXQsIHZhbHVlLmM4eV9Qb3NpdGlvbi5sbmcpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY2hhbmdlcy5pc0VkaXQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgY29uc3QgaXNBbnlWYWx1ZU1pc3NpbmcgPSB0aGlzLmNoZWNrSWZBbnlWYWx1ZUlzTWlzc2luZyhcbiAgICAgICAgdGhpcy5sb2NhdGlvbk1PPy5jOHlfUG9zaXRpb24ubGF0LFxuICAgICAgICB0aGlzLmxvY2F0aW9uTU8/LmM4eV9Qb3NpdGlvbi5sbmdcbiAgICAgICk7XG4gICAgICBpZiAoaXNBbnlWYWx1ZU1pc3NpbmcpIHtcbiAgICAgICAgdGhpcy5zaG93TWFwID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNNYXJrZXJEcmFnZ2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNNYXBDbGlja2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMudXBkYXRlTWFya2VyKHRoaXMubG9jYXRpb25NTz8uYzh5X1Bvc2l0aW9uLmxhdCwgdGhpcy5sb2NhdGlvbk1PPy5jOHlfUG9zaXRpb24ubG5nKTtcbiAgICAgIHRoaXMuc2V0Vmlldyh0aGlzLmxvY2F0aW9uTU8/LmM4eV9Qb3NpdGlvbi5sYXQsIHRoaXMubG9jYXRpb25NTz8uYzh5X1Bvc2l0aW9uLmxuZyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIGlmICh0aGlzLm1hcFZpZXc/Lm1hcmtlcnMgJiYgdGhpcy5kcmFnTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMubWFwVmlldz8ubWFya2Vycy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgICAgIG1hcmtlci5vZmYoJ2RyYWcnLCB0aGlzLmRyYWdMaXN0ZW5lcik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gcHJlZmlsbCB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgaW4gdGhlIGZvcm0gd2hlbiB0aGUgbWFya2VyIGlzIGRyYWdnZWQuXG4gICAqL1xuICBvbk1hcmtlckRyYWcoZXZlbnQ6IEwuTGVhZmxldEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZm9ybS5nZXQoJ2M4eV9Qb3NpdGlvbicpIGFzIEZvcm1BcnJheTtcbiAgICAgIHByb3BlcnRpZXM/LmdldCgnbGF0JykucGF0Y2hWYWx1ZShldmVudC50YXJnZXQuX2xhdGxuZy5sYXQpO1xuICAgICAgcHJvcGVydGllcz8uZ2V0KCdsbmcnKS5wYXRjaFZhbHVlKGV2ZW50LnRhcmdldC5fbGF0bG5nLmxuZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBtYXJrZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlcyBhbmQgaWYgYW55IG9uZSBvZiB0aGUgdmFsdWVzIGlzIG5vdCBhdmFpbGJsZSwgc2V0c1xuICAgKiBzaG93V2FybmluZyB0byB0cnVlLlxuICAgKiBAcGFyYW0gbGF0aXR1ZGUgLSBUaGUgbGF0aXR1ZGUgb2YgdGhlIG1hcmtlclxuICAgKiBAcGFyYW0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSBvZiB0aGUgbWFya2VyXG4gICAqL1xuICB1cGRhdGVNYXJrZXIobGF0aXR1ZGU6IG51bWJlciwgbG9uZ2l0dWRlOiBudW1iZXIpIHtcbiAgICBjb25zdCBpc0FueVZhbHVlTWlzc2luZyA9IHRoaXMuY2hlY2tJZkFueVZhbHVlSXNNaXNzaW5nKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICAgIGlmICghaXNBbnlWYWx1ZU1pc3NpbmcpIHtcbiAgICAgIFtsYXRpdHVkZSwgbG9uZ2l0dWRlXSA9IHRoaXMuc2V0TGF0TG5nVmFsdWVzKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICAgICAgY29uc3QgYXNzZXQ6IGFueSA9IHtcbiAgICAgICAgYzh5X1Bvc2l0aW9uOiB7XG4gICAgICAgICAgbGF0aXR1ZGUsXG4gICAgICAgICAgbG9uZ2l0dWRlXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLm1hcFZpZXcpIHtcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMubWFwVmlldy5nZXRBc3NldEljb24odGhpcy5hc3NldHMpO1xuICAgICAgICBjb25zdCBsZWFmbGV0TWFya2VyID0gdGhpcy5tYXBWaWV3LmxlYWZsZXQubWFya2VyKFtsYXRpdHVkZSwgbG9uZ2l0dWRlXSwge1xuICAgICAgICAgIGljb246IGljb24sXG4gICAgICAgICAgZHJhZ2dhYmxlOiB0aGlzLmlzTWFya2VyRHJhZ2dhYmxlXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5pc01hcmtlckRyYWdnYWJsZSkge1xuICAgICAgICAgIHRoaXMuZHJhZ0xpc3RlbmVyID0gZXZlbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1hcmtlckRyYWcoZXZlbnQpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgbGVhZmxldE1hcmtlci5vbignZHJhZ2VuZCcsIHRoaXMuZHJhZ0xpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hcFZpZXcuY2xlYXJNYXJrZXJzKCk7XG4gICAgICAgIGNvbnN0IG1hcmtlciA9IGdldEM4eU1hcmtlcihsZWFmbGV0TWFya2VyLCBhc3NldCk7XG4gICAgICAgIHRoaXMubWFwVmlldy5hZGRNYXJrZXJUb01hcChtYXJrZXIpO1xuICAgICAgICB0aGlzLnNldFZpZXcobGF0aXR1ZGUsIGxvbmdpdHVkZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubWFwVmlldy5jbGVhck1hcmtlcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGNvbW1hbmQgaXMgdXNlZCB0byBwcmVmaWxsIHRoZSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIHZhbHVlcyBpbiB0aGUgZm9ybSBvbiBjbGljayBvZiBtYXAuXG4gICAqL1xuICBvbkNsaWNrT2ZNYXAoZXZlbnQ6IEwuTGVhZmxldE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5mb3JtLmdldCgnYzh5X1Bvc2l0aW9uJykgYXMgRm9ybUFycmF5O1xuICAgICAgcHJvcGVydGllcz8uZ2V0KCdsYXQnKS5wYXRjaFZhbHVlKGV2ZW50LmxhdGxuZy5sYXQpO1xuICAgICAgcHJvcGVydGllcz8uZ2V0KCdsbmcnKS5wYXRjaFZhbHVlKGV2ZW50LmxhdGxuZy5sbmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGVuYWJsZSBmdWxsIHNjcmVlbiBvZiB0aGUgbWFwLlxuICAgKi9cbiAgZW5hYmxlRnVsbHNjcmVlbigpIHtcbiAgICB0b2dnbGVGdWxsc2NyZWVuKHRoaXMubWFwVmlldy5tYXBFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbnkgb25lIG9mIHRoZSB2YWx1ZXMgaS5lLiwgbGF0aXR1ZGUvbG9uZ2l0dWRlIGlzIHVuZGVmaW5lZCBvciBudWxsLlxuICAgKiBAcGFyYW0gbGF0aXR1ZGUgTGF0aXR1ZGUgdmFsdWUgb2YgdGhlIHBvc2l0aW9uXG4gICAqIEBwYXJhbSBsb25naXR1ZGUgTG9uZ2l0dWRlIHZhbHVlIG9mIHRoZSBwb3NpdGlvblxuICAgKiBAcmV0dXJucyByZXR1cm5zIHRydWUgaWYgYW55IG9uZSBvZiB0aGUgdmFsdWVzIGFyZSBib3RoIHRoZSB2YWx1ZXMgYXJlIG1pc3NpbmcgZWxzZSBpdCByZXR1cm5zIGZhbHNlLlxuICAgKi9cbiAgY2hlY2tJZkFueVZhbHVlSXNNaXNzaW5nKGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNOdWxsT3JVbmRlZmluZWQobGF0aXR1ZGUpIHx8IHRoaXMuaXNOdWxsT3JVbmRlZmluZWQobG9uZ2l0dWRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2aWV3IG9mIHRoZSBtYXAgYmFzZWQgb24gdGhlIHBvc2l0aW9uIG9mIG1hcmtlci5cbiAgICogQHBhcmFtIGxhdGl0dWRlIC0gTGF0aXR1ZGUgb2YgdGhlIG1hcmtlclxuICAgKiBAcGFyYW0gbG9uZ2l0dWRlIExvbmdpdHVkZSBvZiB0aGUgbWFya2VyXG4gICAqL1xuICBzZXRWaWV3KGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKSB7XG4gICAgaWYgKGxhdGl0dWRlICYmIGxvbmdpdHVkZSAmJiB0aGlzLm1hcFZpZXcpIHtcbiAgICAgIFtsYXRpdHVkZSwgbG9uZ2l0dWRlXSA9IHRoaXMuc2V0TGF0TG5nVmFsdWVzKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICAgICAgdGhpcy5tYXBWaWV3Lm1hcD8uc2V0VmlldyhbbGF0aXR1ZGUsIGxvbmdpdHVkZV0pO1xuICAgIH1cbiAgfVxuXG4gIHNldExhdExuZ1ZhbHVlcyhsYXRpdHVkZTogbnVtYmVyLCBsb25naXR1ZGU6IG51bWJlcik6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGxhdGl0dWRlID0gdGhpcy5pc051bGxPclVuZGVmaW5lZChsYXRpdHVkZSkgPyBkZWZhdWx0TWFwTG9jYXRpb24ubGF0IDogbGF0aXR1ZGU7XG4gICAgbG9uZ2l0dWRlID0gdGhpcy5pc051bGxPclVuZGVmaW5lZChsb25naXR1ZGUpID8gZGVmYXVsdE1hcExvY2F0aW9uLmxuZyA6IGxvbmdpdHVkZTtcbiAgICByZXR1cm4gW2xhdGl0dWRlLCBsb25naXR1ZGVdO1xuICB9XG5cbiAgcHJpdmF0ZSBpc051bGxPclVuZGVmaW5lZCh2YWx1ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xuICB9XG59XG4iLCI8ZGl2IFtoaWRkZW5dPVwiIXNob3dNYXBcIj5cbiAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB1bGwtcmlnaHRcIlxuICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEycHhcIlxuICAgICAgdGl0bGU9XCJGdWxsIHNjcmVlblwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGRhdGEtY3k9XCJhc3NldC1sb2NhdGlvbi1mdWxsLXNjcmVlblwiXG4gICAgICAoY2xpY2spPVwiZW5hYmxlRnVsbHNjcmVlbigpXCJcbiAgICA+XG4gICAgPGkgYzh5SWNvbj1cImV4cGFuZFwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJTsgaGVpZ2h0OiA0MDBweFwiPlxuICAgIDxjOHktbWFwXG4gICAgICAjbWFwXG4gICAgICBbYXNzZXRzXT1cImFzc2V0c1wiXG4gICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgPjwvYzh5LW1hcD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3ViLWFzc2V0cy9sb2NhdGlvbi9hc3NldC1sb2NhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zdWItYXNzZXRzL2xvY2F0aW9uL2Fzc2V0LWxvY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUtMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsWUFBWSxFQUVaLFVBQVUsRUFFVixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNiLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQUVyQyxhQUFhO0FBQ2IsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDL0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Q0FDdkIsQ0FBQztBQU1YLE1BQU0sT0FBTyxzQkFBc0I7SUFtQmpDLFlBQ1UsZUFBK0IsRUFDL0IsVUFBc0I7UUFEdEIsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFmaEMsV0FBTSxHQUFjO1lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQy9CLFNBQVMsRUFBRSxFQUFFO1lBQ2IsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUUs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QUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzdELENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDakQsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDaEYsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbkYsT0FBTyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8saUJBQWlCLENBQUMsS0FBSztRQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztJQUMvQyxDQUFDOzttSEFsTFUsc0JBQXNCO3VHQUF0QixzQkFBc0IseUtBQ3RCLFlBQVkscUVDcEN6Qix5ZkFxQkE7MkZEY2Esc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjs4SEFLOUIsT0FBTztzQkFETixTQUFTO3VCQUFDLFlBQVk7Z0JBRWQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgTCBmcm9tICdsZWFmbGV0JztcbmltcG9ydCB7XG4gIE1hcENvbXBvbmVudCxcbiAgTWFwQ29uZmlnLFxuICBNYXBTZXJ2aWNlLFxuICBQb3NpdGlvbk1hbmFnZWRPYmplY3QsXG4gIGRlZmF1bHRNYXBDb25maWcsXG4gIGdldEM4eU1hcmtlclxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL21hcCc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b2dnbGVGdWxsc2NyZWVuIH0gZnJvbSAnLi4vZnVsbHNjcmVlbi51dGlsJztcbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuLy8gRMO8c3NlbGRvcmZcbmV4cG9ydCBjb25zdCBkZWZhdWx0TWFwTG9jYXRpb24gPSB7XG4gIGxhdDogZGVmYXVsdE1hcENvbmZpZy5jZW50ZXJbMF0sXG4gIGxuZzogZGVmYXVsdE1hcENvbmZpZy5jZW50ZXJbMV1cbn0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hc3NldC1sb2NhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3NldC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXRMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKE1hcENvbXBvbmVudClcbiAgbWFwVmlldzogTWFwQ29tcG9uZW50O1xuICBASW5wdXQoKSBpc0VkaXQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxvY2F0aW9uTU86IElNYW5hZ2VkT2JqZWN0O1xuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XG4gIGNvbmZpZzogTWFwQ29uZmlnID0ge1xuICAgIGNlbnRlcjogZGVmYXVsdE1hcENvbmZpZy5jZW50ZXIsXG4gICAgem9vbUxldmVsOiAxMyxcbiAgICBjb2xvcjogJ2dyZWVuJyxcbiAgICBpY29uOiAnYzh5LWljb24tbG9jYXRpb24nXG4gIH07XG4gIGFzc2V0czogUG9zaXRpb25NYW5hZ2VkT2JqZWN0O1xuICBpc01hcmtlckRyYWdnYWJsZSA9IGZhbHNlO1xuICBpc01hcENsaWNrYWJsZSA9IGZhbHNlO1xuICBkcmFnTGlzdGVuZXI6IEwuTGVhZmxldEV2ZW50SGFuZGxlckZuO1xuICBmb3JtU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHNob3dNYXAgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGVyOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIG1hcFNlcnZpY2U6IE1hcFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGxlYWZsZXQgPSBhd2FpdCB0aGlzLm1hcFNlcnZpY2UuZ2V0TGVhZmxldCgpO1xuICAgIGlmIChsZWFmbGV0KSB7XG4gICAgICBjb25zdCB7IGNvbnRleHREYXRhIH0gPVxuICAgICAgICAhdGhpcy5hY3RpdmF0ZWRSb3V0ZXIucGFyZW50IHx8IHRoaXMuYWN0aXZhdGVkUm91dGVyLnNuYXBzaG90LmRhdGEuY29udGV4dFxuICAgICAgICAgID8gdGhpcy5hY3RpdmF0ZWRSb3V0ZXIuc25hcHNob3QuZGF0YVxuICAgICAgICAgIDogdGhpcy5hY3RpdmF0ZWRSb3V0ZXIucGFyZW50LnNuYXBzaG90LmRhdGE7XG4gICAgICB0aGlzLmFzc2V0cyA9IGNvbnRleHREYXRhID8gY29udGV4dERhdGEgOiB0aGlzLmxvY2F0aW9uTU87XG4gICAgICBpZiAodGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxhdCAmJiB0aGlzLmFzc2V0cy5jOHlfUG9zaXRpb24ubG5nKVxuICAgICAgICB0aGlzLmNvbmZpZy5jZW50ZXIgPSBbdGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxhdCwgdGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxuZ107XG4gICAgICB0aGlzLnNldFZpZXcodGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxhdCwgdGhpcy5hc3NldHMuYzh5X1Bvc2l0aW9uLmxuZyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmlzRWRpdD8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNob3dNYXAgPSB0cnVlO1xuICAgICAgdGhpcy5pc01hcmtlckRyYWdnYWJsZSA9IHRydWU7XG4gICAgICB0aGlzLmlzTWFwQ2xpY2thYmxlID0gdHJ1ZTtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMubWFwVmlldz8ubWFwLmludmFsaWRhdGVTaXplKCkpO1xuICAgICAgdGhpcy5tYXBWaWV3Py5tYXAub24oJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgICB0aGlzLm9uQ2xpY2tPZk1hcChldmVudCk7XG4gICAgICAgIHRoaXMudXBkYXRlTWFya2VyKGV2ZW50LmxhdGxuZy5sYXQsIGV2ZW50LmxhdGxuZy5sbmcpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU1hcmtlcih2YWx1ZS5jOHlfUG9zaXRpb24ubGF0LCB2YWx1ZS5jOHlfUG9zaXRpb24ubG5nKTtcbiAgICAgICAgdGhpcy5zZXRWaWV3KHZhbHVlLmM4eV9Qb3NpdGlvbi5sYXQsIHZhbHVlLmM4eV9Qb3NpdGlvbi5sbmcpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY2hhbmdlcy5pc0VkaXQ/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgY29uc3QgaXNBbnlWYWx1ZU1pc3NpbmcgPSB0aGlzLmNoZWNrSWZBbnlWYWx1ZUlzTWlzc2luZyhcbiAgICAgICAgdGhpcy5sb2NhdGlvbk1PPy5jOHlfUG9zaXRpb24ubGF0LFxuICAgICAgICB0aGlzLmxvY2F0aW9uTU8/LmM4eV9Qb3NpdGlvbi5sbmdcbiAgICAgICk7XG4gICAgICBpZiAoaXNBbnlWYWx1ZU1pc3NpbmcpIHtcbiAgICAgICAgdGhpcy5zaG93TWFwID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNNYXJrZXJEcmFnZ2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNNYXBDbGlja2FibGUgPSBmYWxzZTtcbiAgICAgIHRoaXMudXBkYXRlTWFya2VyKHRoaXMubG9jYXRpb25NTz8uYzh5X1Bvc2l0aW9uLmxhdCwgdGhpcy5sb2NhdGlvbk1PPy5jOHlfUG9zaXRpb24ubG5nKTtcbiAgICAgIHRoaXMuc2V0Vmlldyh0aGlzLmxvY2F0aW9uTU8/LmM4eV9Qb3NpdGlvbi5sYXQsIHRoaXMubG9jYXRpb25NTz8uYzh5X1Bvc2l0aW9uLmxuZyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JtU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIGlmICh0aGlzLm1hcFZpZXc/Lm1hcmtlcnMgJiYgdGhpcy5kcmFnTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMubWFwVmlldz8ubWFya2Vycy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgICAgIG1hcmtlci5vZmYoJ2RyYWcnLCB0aGlzLmRyYWdMaXN0ZW5lcik7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gcHJlZmlsbCB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSB2YWx1ZXMgaW4gdGhlIGZvcm0gd2hlbiB0aGUgbWFya2VyIGlzIGRyYWdnZWQuXG4gICAqL1xuICBvbk1hcmtlckRyYWcoZXZlbnQ6IEwuTGVhZmxldEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZm9ybS5nZXQoJ2M4eV9Qb3NpdGlvbicpIGFzIEZvcm1BcnJheTtcbiAgICAgIHByb3BlcnRpZXM/LmdldCgnbGF0JykucGF0Y2hWYWx1ZShldmVudC50YXJnZXQuX2xhdGxuZy5sYXQpO1xuICAgICAgcHJvcGVydGllcz8uZ2V0KCdsbmcnKS5wYXRjaFZhbHVlKGV2ZW50LnRhcmdldC5fbGF0bG5nLmxuZyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gdXBkYXRlIHRoZSBtYXJrZXIgd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlcyBhbmQgaWYgYW55IG9uZSBvZiB0aGUgdmFsdWVzIGlzIG5vdCBhdmFpbGJsZSwgc2V0c1xuICAgKiBzaG93V2FybmluZyB0byB0cnVlLlxuICAgKiBAcGFyYW0gbGF0aXR1ZGUgLSBUaGUgbGF0aXR1ZGUgb2YgdGhlIG1hcmtlclxuICAgKiBAcGFyYW0gbG9uZ2l0dWRlIC0gVGhlIGxvbmdpdHVkZSBvZiB0aGUgbWFya2VyXG4gICAqL1xuICB1cGRhdGVNYXJrZXIobGF0aXR1ZGU6IG51bWJlciwgbG9uZ2l0dWRlOiBudW1iZXIpIHtcbiAgICBjb25zdCBpc0FueVZhbHVlTWlzc2luZyA9IHRoaXMuY2hlY2tJZkFueVZhbHVlSXNNaXNzaW5nKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICAgIGlmICghaXNBbnlWYWx1ZU1pc3NpbmcpIHtcbiAgICAgIFtsYXRpdHVkZSwgbG9uZ2l0dWRlXSA9IHRoaXMuc2V0TGF0TG5nVmFsdWVzKGxhdGl0dWRlLCBsb25naXR1ZGUpO1xuICAgICAgY29uc3QgYXNzZXQ6IGFueSA9IHtcbiAgICAgICAgYzh5X1Bvc2l0aW9uOiB7XG4gICAgICAgICAgbGF0aXR1ZGUsXG4gICAgICAgICAgbG9uZ2l0dWRlXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLm1hcFZpZXcpIHtcbiAgICAgICAgY29uc3QgaWNvbiA9IHRoaXMubWFwVmlldy5nZXRBc3NldEljb24odGhpcy5hc3NldHMpO1xuICAgICAgICBjb25zdCBsZWFmbGV0TWFya2VyID0gdGhpcy5tYXBWaWV3LmxlYWZsZXQubWFya2VyKFtsYXRpdHVkZSwgbG9uZ2l0dWRlXSwge1xuICAgICAgICAgIGljb246IGljb24sXG4gICAgICAgICAgZHJhZ2dhYmxlOiB0aGlzLmlzTWFya2VyRHJhZ2dhYmxlXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy5pc01hcmtlckRyYWdnYWJsZSkge1xuICAgICAgICAgIHRoaXMuZHJhZ0xpc3RlbmVyID0gZXZlbnQgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1hcmtlckRyYWcoZXZlbnQpO1xuICAgICAgICAgIH07XG4gICAgICAgICAgbGVhZmxldE1hcmtlci5vbignZHJhZ2VuZCcsIHRoaXMuZHJhZ0xpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hcFZpZXcuY2xlYXJNYXJrZXJzKCk7XG4gICAgICAgIGNvbnN0IG1hcmtlciA9IGdldEM4eU1hcmtlcihsZWFmbGV0TWFya2VyLCBhc3NldCk7XG4gICAgICAgIHRoaXMubWFwVmlldy5hZGRNYXJrZXJUb01hcChtYXJrZXIpO1xuICAgICAgICB0aGlzLnNldFZpZXcobGF0aXR1ZGUsIGxvbmdpdHVkZSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubWFwVmlldy5jbGVhck1hcmtlcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGNvbW1hbmQgaXMgdXNlZCB0byBwcmVmaWxsIHRoZSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIHZhbHVlcyBpbiB0aGUgZm9ybSBvbiBjbGljayBvZiBtYXAuXG4gICAqL1xuICBvbkNsaWNrT2ZNYXAoZXZlbnQ6IEwuTGVhZmxldE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5mb3JtLmdldCgnYzh5X1Bvc2l0aW9uJykgYXMgRm9ybUFycmF5O1xuICAgICAgcHJvcGVydGllcz8uZ2V0KCdsYXQnKS5wYXRjaFZhbHVlKGV2ZW50LmxhdGxuZy5sYXQpO1xuICAgICAgcHJvcGVydGllcz8uZ2V0KCdsbmcnKS5wYXRjaFZhbHVlKGV2ZW50LmxhdGxuZy5sbmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGVuYWJsZSBmdWxsIHNjcmVlbiBvZiB0aGUgbWFwLlxuICAgKi9cbiAgZW5hYmxlRnVsbHNjcmVlbigpIHtcbiAgICB0b2dnbGVGdWxsc2NyZWVuKHRoaXMubWFwVmlldy5tYXBFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhbnkgb25lIG9mIHRoZSB2YWx1ZXMgaS5lLiwgbGF0aXR1ZGUvbG9uZ2l0dWRlIGlzIHVuZGVmaW5lZCBvciBudWxsLlxuICAgKiBAcGFyYW0gbGF0aXR1ZGUgTGF0aXR1ZGUgdmFsdWUgb2YgdGhlIHBvc2l0aW9uXG4gICAqIEBwYXJhbSBsb25naXR1ZGUgTG9uZ2l0dWRlIHZhbHVlIG9mIHRoZSBwb3NpdGlvblxuICAgKiBAcmV0dXJucyByZXR1cm5zIHRydWUgaWYgYW55IG9uZSBvZiB0aGUgdmFsdWVzIGFyZSBib3RoIHRoZSB2YWx1ZXMgYXJlIG1pc3NpbmcgZWxzZSBpdCByZXR1cm5zIGZhbHNlLlxuICAgKi9cbiAgY2hlY2tJZkFueVZhbHVlSXNNaXNzaW5nKGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNOdWxsT3JVbmRlZmluZWQobGF0aXR1ZGUpIHx8IHRoaXMuaXNOdWxsT3JVbmRlZmluZWQobG9uZ2l0dWRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2aWV3IG9mIHRoZSBtYXAgYmFzZWQgb24gdGhlIHBvc2l0aW9uIG9mIG1hcmtlci5cbiAgICogQHBhcmFtIGxhdGl0dWRlIC0gTGF0aXR1ZGUgb2YgdGhlIG1hcmtlclxuICAgKiBAcGFyYW0gbG9uZ2l0dWRlIExvbmdpdHVkZSBvZiB0aGUgbWFya2VyXG4gICAqL1xuICBzZXRWaWV3KGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKSB7XG4gICAgaWYgKGlzTnVtYmVyKGxhdGl0dWRlKSAmJiBpc051bWJlcihsb25naXR1ZGUpICYmIHRoaXMubWFwVmlldykge1xuICAgICAgW2xhdGl0dWRlLCBsb25naXR1ZGVdID0gdGhpcy5zZXRMYXRMbmdWYWx1ZXMobGF0aXR1ZGUsIGxvbmdpdHVkZSk7XG4gICAgICB0aGlzLmNvbmZpZy5jZW50ZXIgPSBbbGF0aXR1ZGUsIGxvbmdpdHVkZV07XG4gICAgICB0aGlzLm1hcFZpZXcuY2VudGVyKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0TGF0TG5nVmFsdWVzKGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgbGF0aXR1ZGUgPSB0aGlzLmlzTnVsbE9yVW5kZWZpbmVkKGxhdGl0dWRlKSA/IGRlZmF1bHRNYXBMb2NhdGlvbi5sYXQgOiBsYXRpdHVkZTtcbiAgICBsb25naXR1ZGUgPSB0aGlzLmlzTnVsbE9yVW5kZWZpbmVkKGxvbmdpdHVkZSkgPyBkZWZhdWx0TWFwTG9jYXRpb24ubG5nIDogbG9uZ2l0dWRlO1xuICAgIHJldHVybiBbbGF0aXR1ZGUsIGxvbmdpdHVkZV07XG4gIH1cblxuICBwcml2YXRlIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxkaXYgW2hpZGRlbl09XCIhc2hvd01hcFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHVsbC1yaWdodFwiXG4gICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTJweFwiXG4gICAgICB0aXRsZT1cIkZ1bGwgc2NyZWVuXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgZGF0YS1jeT1cImFzc2V0LWxvY2F0aW9uLWZ1bGwtc2NyZWVuXCJcbiAgICAgIChjbGljayk9XCJlbmFibGVGdWxsc2NyZWVuKClcIlxuICAgID5cbiAgICA8aSBjOHlJY29uPVwiZXhwYW5kXCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDQwMHB4XCI+XG4gICAgPGM4eS1tYXBcbiAgICAgICNtYXBcbiAgICAgIFthc3NldHNdPVwiYXNzZXRzXCJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICA+PC9jOHktbWFwPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { TenantOptionsService } from '@c8y/client';
|
|
3
|
+
import { AlertService, gettext, OptionsService } from '@c8y/ngx-components';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@c8y/ngx-components";
|
|
6
|
+
import * as i2 from "@c8y/client";
|
|
7
|
+
import * as i3 from "@angular/common";
|
|
8
|
+
import * as i4 from "@angular/forms";
|
|
9
|
+
import * as i5 from "ngx-bootstrap/dropdown";
|
|
10
|
+
export class CrlCheckSettingsComponent {
|
|
11
|
+
constructor(optionsService, tenantOptionsService, alertService) {
|
|
12
|
+
this.optionsService = optionsService;
|
|
13
|
+
this.tenantOptionsService = tenantOptionsService;
|
|
14
|
+
this.alertService = alertService;
|
|
15
|
+
this.crlCheck = { online: false, offline: false };
|
|
16
|
+
}
|
|
17
|
+
async ngOnInit() {
|
|
18
|
+
this.crlCheck = {
|
|
19
|
+
offline: (await this.optionsService.getTenantOption('configuration', 'crl.offline.check.enabled', false)),
|
|
20
|
+
online: (await this.optionsService.getTenantOption('configuration', 'crl.online.check.enabled', false))
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async updateTenantOption(tenantOption) {
|
|
24
|
+
try {
|
|
25
|
+
await this.tenantOptionsService.update(tenantOption);
|
|
26
|
+
this.alertService.success(gettext('CRL check configuration saved.'));
|
|
27
|
+
}
|
|
28
|
+
catch (er) {
|
|
29
|
+
this.alertService.addServerFailure(er);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
CrlCheckSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CrlCheckSettingsComponent, deps: [{ token: i1.OptionsService }, { token: i2.TenantOptionsService }, { token: i1.AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
CrlCheckSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CrlCheckSettingsComponent, selector: "c8y-crl-check-settings", ngImport: i0, template: "<c8y-action-bar-item [placement]=\"'right'\">\n <div\n class=\"dropdown\"\n dropdown\n [insideClick]=\"true\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown d-flex a-i-center\"\n title=\"{{ 'CRL check' | translate }}\"\n aria-haspopup=\"true\"\n type=\"button\"\n dropdownToggle\n >\n <i\n class=\"m-r-4\"\n [c8yIcon]=\"'check-document'\"\n ></i>\n <span\n class=\"text-truncate\"\n translate\n >\n CRL check\n </span>\n <i\n class=\"m-l-4 text-primary\"\n [c8yIcon]=\"'caret-down'\"\n ></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right hidden-xs\"\n data-cy=\"register-device--dropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <ul class=\"dropdown-menu dropdown-menu-right visible-xs\">\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <ng-template #dropdown>\n <li>\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n title=\"{{ 'Online`type of checking`' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"crlCheck.online\"\n (ngModelChange)=\"\n updateTenantOption({\n category: 'configuration',\n key: 'crl.online.check.enabled',\n value: $event\n })\n \"\n />\n <span class=\"m-r-4\"></span>\n {{ 'Online`type of checking`' | translate }}\n </label>\n </li>\n <li>\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n title=\"{{ 'Offline`type of checking`' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"crlCheck.offline\"\n (ngModelChange)=\"\n updateTenantOption({\n category: 'configuration',\n key: 'crl.offline.check.enabled',\n value: $event\n })\n \"\n />\n <span class=\"m-r-4\"></span>\n {{ 'Offline`type of checking`' | translate }}\n </label>\n </li>\n </ng-template>\n </div>\n</c8y-action-bar-item>\n", dependencies: [{ kind: "component", type: i1.ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i5.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i5.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CrlCheckSettingsComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'c8y-crl-check-settings', template: "<c8y-action-bar-item [placement]=\"'right'\">\n <div\n class=\"dropdown\"\n dropdown\n [insideClick]=\"true\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown d-flex a-i-center\"\n title=\"{{ 'CRL check' | translate }}\"\n aria-haspopup=\"true\"\n type=\"button\"\n dropdownToggle\n >\n <i\n class=\"m-r-4\"\n [c8yIcon]=\"'check-document'\"\n ></i>\n <span\n class=\"text-truncate\"\n translate\n >\n CRL check\n </span>\n <i\n class=\"m-l-4 text-primary\"\n [c8yIcon]=\"'caret-down'\"\n ></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right hidden-xs\"\n data-cy=\"register-device--dropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <ul class=\"dropdown-menu dropdown-menu-right visible-xs\">\n <ng-container *ngTemplateOutlet=\"dropdown\"></ng-container>\n </ul>\n\n <ng-template #dropdown>\n <li>\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n title=\"{{ 'Online`type of checking`' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"crlCheck.online\"\n (ngModelChange)=\"\n updateTenantOption({\n category: 'configuration',\n key: 'crl.online.check.enabled',\n value: $event\n })\n \"\n />\n <span class=\"m-r-4\"></span>\n {{ 'Online`type of checking`' | translate }}\n </label>\n </li>\n <li>\n <label\n class=\"c8y-checkbox d-flex a-i-center\"\n title=\"{{ 'Offline`type of checking`' | translate }}\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"crlCheck.offline\"\n (ngModelChange)=\"\n updateTenantOption({\n category: 'configuration',\n key: 'crl.offline.check.enabled',\n value: $event\n })\n \"\n />\n <span class=\"m-r-4\"></span>\n {{ 'Offline`type of checking`' | translate }}\n </label>\n </li>\n </ng-template>\n </div>\n</c8y-action-bar-item>\n" }]
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.OptionsService }, { type: i2.TenantOptionsService }, { type: i1.AlertService }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JsLWNoZWNrLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RydXN0ZWQtY2VydGlmaWNhdGVzL2NybC9jcmwtY2hlY2stc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vdHJ1c3RlZC1jZXJ0aWZpY2F0ZXMvY3JsL2NybC1jaGVjay1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBaUIsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFNNUUsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUNVLGNBQThCLEVBQzlCLG9CQUEwQyxFQUMxQyxZQUEwQjtRQUYxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUxwQyxhQUFRLEdBQTBDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFNakYsQ0FBQztJQUVKLEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRztZQUNkLE9BQU8sRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQ2pELGVBQWUsRUFDZiwyQkFBMkIsRUFDM0IsS0FBSyxDQUNOLENBQVk7WUFDYixNQUFNLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUNoRCxlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLEtBQUssQ0FDTixDQUFZO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsWUFBMkI7UUFDbEQsSUFBSTtZQUNGLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDO1NBQ3RFO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7c0hBL0JVLHlCQUF5QjswR0FBekIseUJBQXlCLDhEQ1J0QyxteUVBb0ZBOzJGRDVFYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUZW5hbnRPcHRpb24sIFRlbmFudE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBnZXR0ZXh0LCBPcHRpb25zU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY3JsLWNoZWNrLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NybC1jaGVjay1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ3JsQ2hlY2tTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNybENoZWNrOiB7IG9ubGluZTogYm9vbGVhbjsgb2ZmbGluZTogYm9vbGVhbiB9ID0geyBvbmxpbmU6IGZhbHNlLCBvZmZsaW5lOiBmYWxzZSB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGVuYW50T3B0aW9uc1NlcnZpY2U6IFRlbmFudE9wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY3JsQ2hlY2sgPSB7XG4gICAgICBvZmZsaW5lOiAoYXdhaXQgdGhpcy5vcHRpb25zU2VydmljZS5nZXRUZW5hbnRPcHRpb248Ym9vbGVhbj4oXG4gICAgICAgICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgJ2NybC5vZmZsaW5lLmNoZWNrLmVuYWJsZWQnLFxuICAgICAgICBmYWxzZVxuICAgICAgKSkgYXMgYm9vbGVhbixcbiAgICAgIG9ubGluZTogKGF3YWl0IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0VGVuYW50T3B0aW9uPGJvb2xlYW4+KFxuICAgICAgICAnY29uZmlndXJhdGlvbicsXG4gICAgICAgICdjcmwub25saW5lLmNoZWNrLmVuYWJsZWQnLFxuICAgICAgICBmYWxzZVxuICAgICAgKSkgYXMgYm9vbGVhblxuICAgIH07XG4gIH1cblxuICBhc3luYyB1cGRhdGVUZW5hbnRPcHRpb24odGVuYW50T3B0aW9uOiBJVGVuYW50T3B0aW9uKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMudGVuYW50T3B0aW9uc1NlcnZpY2UudXBkYXRlKHRlbmFudE9wdGlvbik7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGdldHRleHQoJ0NSTCBjaGVjayBjb25maWd1cmF0aW9uIHNhdmVkLicpKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWFjdGlvbi1iYXItaXRlbSBbcGxhY2VtZW50XT1cIidyaWdodCdcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHJvcGRvd25cIlxuICAgIGRyb3Bkb3duXG4gICAgW2luc2lkZUNsaWNrXT1cInRydWVcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYzh5LWRyb3Bkb3duIGQtZmxleCBhLWktY2VudGVyXCJcbiAgICAgIHRpdGxlPVwie3sgJ0NSTCBjaGVjaycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBkcm9wZG93blRvZ2dsZVxuICAgID5cbiAgICAgIDxpXG4gICAgICAgIGNsYXNzPVwibS1yLTRcIlxuICAgICAgICBbYzh5SWNvbl09XCInY2hlY2stZG9jdW1lbnQnXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgQ1JMIGNoZWNrXG4gICAgICA8L3NwYW4+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cIm0tbC00IHRleHQtcHJpbWFyeVwiXG4gICAgICAgIFtjOHlJY29uXT1cIidjYXJldC1kb3duJ1wiXG4gICAgICA+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDx1bFxuICAgICAgY2xhc3M9XCJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHQgaGlkZGVuLXhzXCJcbiAgICAgIGRhdGEtY3k9XCJyZWdpc3Rlci1kZXZpY2UtLWRyb3Bkb3duXCJcbiAgICAgICpkcm9wZG93bk1lbnVcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuXG4gICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0IHZpc2libGUteHNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkcm9wZG93blwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG5cbiAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICAgICAgPGxpPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICBjbGFzcz1cImM4eS1jaGVja2JveCBkLWZsZXggYS1pLWNlbnRlclwiXG4gICAgICAgICAgdGl0bGU9XCJ7eyAnT25saW5lYHR5cGUgb2YgY2hlY2tpbmdgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNybENoZWNrLm9ubGluZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJcbiAgICAgICAgICAgICAgdXBkYXRlVGVuYW50T3B0aW9uKHtcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogJ2NvbmZpZ3VyYXRpb24nLFxuICAgICAgICAgICAgICAgIGtleTogJ2NybC5vbmxpbmUuY2hlY2suZW5hYmxlZCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICRldmVudFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibS1yLTRcIj48L3NwYW4+XG4gICAgICAgICAge3sgJ09ubGluZWB0eXBlIG9mIGNoZWNraW5nYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGk+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgIGNsYXNzPVwiYzh5LWNoZWNrYm94IGQtZmxleCBhLWktY2VudGVyXCJcbiAgICAgICAgICB0aXRsZT1cInt7ICdPZmZsaW5lYHR5cGUgb2YgY2hlY2tpbmdgJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNybENoZWNrLm9mZmxpbmVcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgIHVwZGF0ZVRlbmFudE9wdGlvbih7XG4gICAgICAgICAgICAgICAgY2F0ZWdvcnk6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgICAgICAgICBrZXk6ICdjcmwub2ZmbGluZS5jaGVjay5lbmFibGVkJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJGV2ZW50XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtLXItNFwiPjwvc3Bhbj5cbiAgICAgICAgICB7eyAnT2ZmbGluZWB0eXBlIG9mIGNoZWNraW5nYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2M4eS1hY3Rpb24tYmFyLWl0ZW0+XG4iXX0=
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { isEmpty, pull } from 'lodash-es';
|
|
3
|
+
import { CrlService } from '@c8y/client';
|
|
4
|
+
import { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';
|
|
5
|
+
import { saveAs } from 'file-saver';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@c8y/client";
|
|
8
|
+
import * as i2 from "@c8y/ngx-components";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
import * as i4 from "@angular/forms";
|
|
11
|
+
import * as i5 from "ngx-bootstrap/datepicker";
|
|
12
|
+
import * as i6 from "ngx-bootstrap/popover";
|
|
13
|
+
import * as i7 from "./crl-check-settings.component";
|
|
14
|
+
export class CrlSettingsComponent {
|
|
15
|
+
constructor(crlService, alertService, modalService) {
|
|
16
|
+
this.crlService = crlService;
|
|
17
|
+
this.alertService = alertService;
|
|
18
|
+
this.modalService = modalService;
|
|
19
|
+
this.crls = [this.getEmptyCertificateRevocation()];
|
|
20
|
+
this.droppedFiles = [];
|
|
21
|
+
this.today = new Date();
|
|
22
|
+
this.MANUAL_ENTRY_POPOVER = gettext('In this section, you can override or add individual entries to the Certificate Revocation List. Providing the serial number is mandatory. In case the revocation date is not set, it will be configured to the current date.');
|
|
23
|
+
this.FILE_UPLOAD_POPOVER = gettext('In this section, you can upload a file containing a revocation list for certificates. The file must be in CSV format, and it should include the serial number and revocation date. If the revocation date is empty, it will be set to the current date.');
|
|
24
|
+
}
|
|
25
|
+
async downloadCrl() {
|
|
26
|
+
let arrayBuffer;
|
|
27
|
+
try {
|
|
28
|
+
const res = await this.crlService.downloadCrlFile();
|
|
29
|
+
arrayBuffer = await res.arrayBuffer();
|
|
30
|
+
const fileBinary = new File([arrayBuffer], 'cumulocity.crl', {
|
|
31
|
+
type: 'application/pkix-crl'
|
|
32
|
+
});
|
|
33
|
+
saveAs(fileBinary);
|
|
34
|
+
}
|
|
35
|
+
catch (ex) {
|
|
36
|
+
this.alertService.addServerFailure(ex);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
downloadCrlTemplate() {
|
|
40
|
+
const blob = new Blob([`SERIALNO,DATE\nSERIAL_NO1,${new Date().toISOString()}`], {
|
|
41
|
+
type: 'text/csv;charset=utf-8;'
|
|
42
|
+
});
|
|
43
|
+
const fileName = 'crl-template';
|
|
44
|
+
saveAs(blob, `${fileName}.csv`);
|
|
45
|
+
}
|
|
46
|
+
addCertificateRevocation() {
|
|
47
|
+
this.crls.push(this.getEmptyCertificateRevocation());
|
|
48
|
+
}
|
|
49
|
+
removeCertificateRevocation(certificateRevocation) {
|
|
50
|
+
pull(this.crls, certificateRevocation);
|
|
51
|
+
if (this.crls.length === 0) {
|
|
52
|
+
this.addCertificateRevocation();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async save() {
|
|
56
|
+
try {
|
|
57
|
+
await this.confirm();
|
|
58
|
+
await this.saveCrls();
|
|
59
|
+
await this.uploadCrlFile();
|
|
60
|
+
await this.clearSavedData();
|
|
61
|
+
this.alertService.success(gettext('CRL saved.'));
|
|
62
|
+
}
|
|
63
|
+
catch (er) {
|
|
64
|
+
this.alertService.addServerFailure(er);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
get isListEmpty() {
|
|
68
|
+
return this.crls.length === 1 && isEmpty(this.crls[0].serialNumberInHex);
|
|
69
|
+
}
|
|
70
|
+
get isFileDropped() {
|
|
71
|
+
return !!(this.droppedFiles && this.droppedFiles[0]);
|
|
72
|
+
}
|
|
73
|
+
async confirm() {
|
|
74
|
+
const isOverrideManualEntries = !this.isListEmpty && this.isFileDropped;
|
|
75
|
+
const status = isOverrideManualEntries ? Status.DANGER : Status.WARNING;
|
|
76
|
+
const body = isOverrideManualEntries
|
|
77
|
+
? gettext('You are about to update certificate revocation list. The CRL file content will override manual entries. Do you want to proceed?')
|
|
78
|
+
: gettext('You are about to update certificate revocation list. Do you want to proceed?');
|
|
79
|
+
await this.modalService.confirm(gettext('Update certificate revocation list'), body, status, {
|
|
80
|
+
ok: gettext('Update')
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
clearSavedData() {
|
|
84
|
+
this.droppedFiles = [];
|
|
85
|
+
this.crls = [this.getEmptyCertificateRevocation()];
|
|
86
|
+
}
|
|
87
|
+
async saveCrls() {
|
|
88
|
+
if (!this.isListEmpty) {
|
|
89
|
+
await this.crlService.uploadCrls(this.crls);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async uploadCrlFile() {
|
|
93
|
+
if (this.isFileDropped) {
|
|
94
|
+
await this.crlService.uploadCrlFile(this.droppedFiles[0].file);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
getEmptyCertificateRevocation() {
|
|
98
|
+
return {
|
|
99
|
+
serialNumberInHex: ''
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
CrlSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CrlSettingsComponent, deps: [{ token: i1.CrlService }, { token: i2.AlertService }, { token: i2.ModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
104
|
+
CrlSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CrlSettingsComponent, selector: "c8y-crl-settings", ngImport: i0, template: "<c8y-title>{{ 'Trusted certificates' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"certificate\"\n label=\"{{ 'Trusted certificates' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-crl-check-settings></c8y-crl-check-settings>\n\n<!-- #TODO uncomment when available in documentation -->\n<!-- <c8y-help src=\"/users-guide/device-management/#TODO\"></c8y-help> -->\n\n<form\n class=\"card card--fullpage\"\n #crlManualForm=\"ngForm\"\n novalidate\n>\n <div class=\"card-header separator\">\n <div class=\"card-title\">\n {{ 'CRL offline setup' | translate }}\n </div>\n </div>\n <div class=\"inner-scroll\">\n <div class=\"card-block\">\n <div\n class=\"legend form-block\"\n >\n {{ 'Manual' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ MANUAL_ENTRY_POPOVER | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n\n <div\n class=\"row tight-grid\"\n *ngFor=\"let certificateRevocation of crls; index as index; last as isLast\"\n >\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label\n [for]=\"'serialNumber' + index\"\n translate\n >\n Serial number\n </label>\n <input\n class=\"form-control\"\n required\n [name]=\"'serialNumber' + index\"\n [id]=\"'serialNumber' + index\"\n [(ngModel)]=\"certificateRevocation.serialNumberInHex\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '8ab34fe5476' }\"\n c8yDefaultValidation=\"hexNumber\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-5\">\n <c8y-form-group class=\"datepicker\">\n <label [for]=\"'validTillPicker' + index\">\n {{ 'Valid till' | translate }}\n </label>\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Date to' | translate\"\n placeholder=\"{{ 'Date to' | translate }}\"\n [name]=\"'validTillPicker' + index\"\n [id]=\"'validTillPicker' + index\"\n [(ngModel)]=\"certificateRevocation.revocationDate\"\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n bsDatepicker\n [maxDate]=\"today\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-2\">\n <c8y-form-group>\n <div class=\"p-t-24\">\n <button\n *ngIf=\"crls.length > 1\"\n class=\"btn btn-link hidden-xs hidden-sm\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"removeCertificateRevocation(certificateRevocation)\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n <button\n class=\"btn btn-link hidden-xs hidden-sm\"\n title=\"{{ 'Add' | translate }}\"\n type=\"button\"\n (click)=\"addCertificateRevocation()\"\n *ngIf=\"isLast\"\n >\n <i\n class=\"text-primary\"\n c8yIcon=\"plus-circle\"\n ></i>\n </button>\n\n <button\n *ngIf=\"crls.length > 1\"\n class=\"btn btn-danger btn-block btn-sm visible-xs visible-sm\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"removeCertificateRevocation(certificateRevocation)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n {{ 'Remove' | translate }}\n </button>\n <button\n class=\"btn btn-primary btn-block btn-sm visible-xs visible-sm\"\n title=\"{{ 'Add' | translate }}\"\n type=\"button\"\n (click)=\"addCertificateRevocation()\"\n *ngIf=\"isLast\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add' | translate }}\n </button>\n </div>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"legend form-block center\">\n {{ 'or' | translate }}\n </div>\n <div\n class=\"legend form-block\"\n >\n {{ 'File upload' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ FILE_UPLOAD_POPOVER | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n\n <c8y-drop-area\n class=\"drop-area-sm\"\n [title]=\"'Upload CRL file (.csv format)' | translate\"\n name=\"uploadCrlDropArea\"\n [(ngModel)]=\"droppedFiles\"\n [message]=\"'Upload CRL file (.csv format)' | translate\"\n [loadingMessage]=\"'Uploading\u2026' | translate\"\n [accept]=\"'.csv'\"\n [maxAllowedFiles]=\"1\"\n ></c8y-drop-area>\n <p class=\"help-block has-info text-muted m-t-4\">\n {{ 'CRL file content will override manual entries.' | translate }}\n </p>\n\n <button\n class=\"btn btn-sm btn-default m-t-16\"\n title=\"{{ 'Download template' | translate }}\"\n type=\"button\"\n (click)=\"downloadCrlTemplate()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"template\"\n ></i>\n {{ 'Download template' | translate }}\n </button>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Download CRL file' | translate }}\"\n type=\"button\"\n (click)=\"downloadCrl()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"download\"\n ></i>\n {{ 'Download CRL file' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n (click)=\"save()\"\n [disabled]=\"!(crlManualForm.form.valid || isListEmpty) || (isListEmpty && !isFileDropped)\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "component", type: i2.BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: i2.BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "maxFileSizeInMegaBytes", "accept"], outputs: ["dropped"] }, { kind: "component", type: i2.TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: i2.DefaultValidationDirective, selector: "[c8yDefaultValidation]", inputs: ["c8yDefaultValidation"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i5.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i5.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: i6.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i7.CrlCheckSettingsComponent, selector: "c8y-crl-check-settings" }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] });
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CrlSettingsComponent, decorators: [{
|
|
106
|
+
type: Component,
|
|
107
|
+
args: [{ selector: 'c8y-crl-settings', template: "<c8y-title>{{ 'Trusted certificates' | translate }}</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n icon=\"c8y-management\"\n label=\"{{ 'Management' | translate }}\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item\n icon=\"certificate\"\n label=\"{{ 'Trusted certificates' | translate }}\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-crl-check-settings></c8y-crl-check-settings>\n\n<!-- #TODO uncomment when available in documentation -->\n<!-- <c8y-help src=\"/users-guide/device-management/#TODO\"></c8y-help> -->\n\n<form\n class=\"card card--fullpage\"\n #crlManualForm=\"ngForm\"\n novalidate\n>\n <div class=\"card-header separator\">\n <div class=\"card-title\">\n {{ 'CRL offline setup' | translate }}\n </div>\n </div>\n <div class=\"inner-scroll\">\n <div class=\"card-block\">\n <div\n class=\"legend form-block\"\n >\n {{ 'Manual' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ MANUAL_ENTRY_POPOVER | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n\n <div\n class=\"row tight-grid\"\n *ngFor=\"let certificateRevocation of crls; index as index; last as isLast\"\n >\n <div class=\"col-sm-5\">\n <c8y-form-group>\n <label\n [for]=\"'serialNumber' + index\"\n translate\n >\n Serial number\n </label>\n <input\n class=\"form-control\"\n required\n [name]=\"'serialNumber' + index\"\n [id]=\"'serialNumber' + index\"\n [(ngModel)]=\"certificateRevocation.serialNumberInHex\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: '8ab34fe5476' }\"\n c8yDefaultValidation=\"hexNumber\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-5\">\n <c8y-form-group class=\"datepicker\">\n <label [for]=\"'validTillPicker' + index\">\n {{ 'Valid till' | translate }}\n </label>\n <input\n class=\"form-control\"\n [attr.aria-label]=\"'Date to' | translate\"\n placeholder=\"{{ 'Date to' | translate }}\"\n [name]=\"'validTillPicker' + index\"\n [id]=\"'validTillPicker' + index\"\n [(ngModel)]=\"certificateRevocation.revocationDate\"\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n bsDatepicker\n [maxDate]=\"today\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-2\">\n <c8y-form-group>\n <div class=\"p-t-24\">\n <button\n *ngIf=\"crls.length > 1\"\n class=\"btn btn-link hidden-xs hidden-sm\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"removeCertificateRevocation(certificateRevocation)\"\n >\n <i\n class=\"text-danger\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n <button\n class=\"btn btn-link hidden-xs hidden-sm\"\n title=\"{{ 'Add' | translate }}\"\n type=\"button\"\n (click)=\"addCertificateRevocation()\"\n *ngIf=\"isLast\"\n >\n <i\n class=\"text-primary\"\n c8yIcon=\"plus-circle\"\n ></i>\n </button>\n\n <button\n *ngIf=\"crls.length > 1\"\n class=\"btn btn-danger btn-block btn-sm visible-xs visible-sm\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"removeCertificateRevocation(certificateRevocation)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n {{ 'Remove' | translate }}\n </button>\n <button\n class=\"btn btn-primary btn-block btn-sm visible-xs visible-sm\"\n title=\"{{ 'Add' | translate }}\"\n type=\"button\"\n (click)=\"addCertificateRevocation()\"\n *ngIf=\"isLast\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add' | translate }}\n </button>\n </div>\n </c8y-form-group>\n </div>\n </div>\n <div class=\"legend form-block center\">\n {{ 'or' | translate }}\n </div>\n <div\n class=\"legend form-block\"\n >\n {{ 'File upload' | translate }}\n <button\n class=\"btn-help btn-help--sm\"\n [attr.aria-label]=\"'Help' | translate\"\n popover=\"{{ FILE_UPLOAD_POPOVER | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n container=\"body\"\n type=\"button\"\n ></button>\n </div>\n\n <c8y-drop-area\n class=\"drop-area-sm\"\n [title]=\"'Upload CRL file (.csv format)' | translate\"\n name=\"uploadCrlDropArea\"\n [(ngModel)]=\"droppedFiles\"\n [message]=\"'Upload CRL file (.csv format)' | translate\"\n [loadingMessage]=\"'Uploading\u2026' | translate\"\n [accept]=\"'.csv'\"\n [maxAllowedFiles]=\"1\"\n ></c8y-drop-area>\n <p class=\"help-block has-info text-muted m-t-4\">\n {{ 'CRL file content will override manual entries.' | translate }}\n </p>\n\n <button\n class=\"btn btn-sm btn-default m-t-16\"\n title=\"{{ 'Download template' | translate }}\"\n type=\"button\"\n (click)=\"downloadCrlTemplate()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"template\"\n ></i>\n {{ 'Download template' | translate }}\n </button>\n </div>\n </div>\n <div class=\"card-footer separator\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Download CRL file' | translate }}\"\n type=\"button\"\n (click)=\"downloadCrl()\"\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"download\"\n ></i>\n {{ 'Download CRL file' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n (click)=\"save()\"\n [disabled]=\"!(crlManualForm.form.valid || isListEmpty) || (isListEmpty && !isFileDropped)\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</form>\n" }]
|
|
108
|
+
}], ctorParameters: function () { return [{ type: i1.CrlService }, { type: i2.AlertService }, { type: i2.ModalService }]; } });
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JsLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RydXN0ZWQtY2VydGlmaWNhdGVzL2NybC9jcmwtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vdHJ1c3RlZC1jZXJ0aWZpY2F0ZXMvY3JsL2NybC1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQTBCLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQWUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFNcEMsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixZQUNVLFVBQXNCLEVBQ3RCLFlBQTBCLEVBQzFCLFlBQTBCO1FBRjFCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFmcEMsU0FBSSxHQUE2QixDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUM7UUFDeEUsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLFVBQUssR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXpCLHlCQUFvQixHQUFHLE9BQU8sQ0FDNUIsOE5BQThOLENBQy9OLENBQUM7UUFFRix3QkFBbUIsR0FBRyxPQUFPLENBQzNCLHlQQUF5UCxDQUMxUCxDQUFDO0lBTUMsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxXQUF3QixDQUFDO1FBQzdCLElB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RUFBRTtZQUMzRixFQUFFLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sS0FBSyxDQUFDLFFBQVE7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWE7UUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFTyw2QkFBNkI7UUFDbkMsT0FBTztZQUNMLGlCQUFpQixFQUFFLEVBQUU7U0FDdEIsQ0FBQztJQUNKLENBQUM7O2lIQTNHVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix3RENWakMsb3NOQWdOQTsyRkR0TWEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNFbXB0eSwgcHVsbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBDcmxTZXJ2aWNlLCBJQ2VydGlmaWNhdGVSZXZvY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlLCBEcm9wcGVkRmlsZSwgZ2V0dGV4dCwgTW9kYWxTZXJ2aWNlLCBTdGF0dXMgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktY3JsLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NybC1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ3JsU2V0dGluZ3NDb21wb25lbnQge1xuICBjcmxzOiBJQ2VydGlmaWNhdGVSZXZvY2F0aW9uW10gPSBbdGhpcy5nZXRFbXB0eUNlcnRpZmljYXRlUmV2b2NhdGlvbigpXTtcbiAgZHJvcHBlZEZpbGVzOiBEcm9wcGVkRmlsZVtdID0gW107XG4gIHRvZGF5OiBEYXRlID0gbmV3IERhdGUoKTtcblxuICBNQU5VQUxfRU5UUllfUE9QT1ZFUiA9IGdldHRleHQoXG4gICAgJ0luIHRoaXMgc2VjdGlvbiwgeW91IGNhbiBvdmVycmlkZSBvciBhZGQgaW5kaXZpZHVhbCBlbnRyaWVzIHRvIHRoZSBDZXJ0aWZpY2F0ZSBSZXZvY2F0aW9uIExpc3QuIFByb3ZpZGluZyB0aGUgc2VyaWFsIG51bWJlciBpcyBtYW5kYXRvcnkuIEluIGNhc2UgdGhlIHJldm9jYXRpb24gZGF0ZSBpcyBub3Qgc2V0LCBpdCB3aWxsIGJlIGNvbmZpZ3VyZWQgdG8gdGhlIGN1cnJlbnQgZGF0ZS4nXG4gICk7XG5cbiAgRklMRV9VUExPQURfUE9QT1ZFUiA9IGdldHRleHQoXG4gICAgJ0luIHRoaXMgc2VjdGlvbiwgeW91IGNhbiB1cGxvYWQgYSBmaWxlIGNvbnRhaW5pbmcgYSByZXZvY2F0aW9uIGxpc3QgZm9yIGNlcnRpZmljYXRlcy4gVGhlIGZpbGUgbXVzdCBiZSBpbiBDU1YgZm9ybWF0LCBhbmQgaXQgc2hvdWxkIGluY2x1ZGUgdGhlIHNlcmlhbCBudW1iZXIgYW5kIHJldm9jYXRpb24gZGF0ZS4gSWYgdGhlIHJldm9jYXRpb24gZGF0ZSBpcyBlbXB0eSwgaXQgd2lsbCBiZSBzZXQgdG8gdGhlIGN1cnJlbnQgZGF0ZS4nXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjcmxTZXJ2aWNlOiBDcmxTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgZG93bmxvYWRDcmwoKSB7XG4gICAgbGV0IGFycmF5QnVmZmVyOiBBcnJheUJ1ZmZlcjtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jcmxTZXJ2aWNlLmRvd25sb2FkQ3JsRmlsZSgpO1xuICAgICAgYXJyYXlCdWZmZXIgPSBhd2FpdCByZXMuYXJyYXlCdWZmZXIoKTtcbiAgICAgIGNvbnN0IGZpbGVCaW5hcnkgPSBuZXcgRmlsZShbYXJyYXlCdWZmZXJdLCAnY3VtdWxvY2l0eS5jcmwnLCB7XG4gICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9wa2l4LWNybCdcbiAgICAgIH0pO1xuICAgICAgc2F2ZUFzKGZpbGVCaW5hcnkpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRTZXJ2ZXJGYWlsdXJlKGV4KTtcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZENybFRlbXBsYXRlKCkge1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYFNFUklBTE5PLERBVEVcXG5TRVJJQUxfTk8xLCR7bmV3IERhdGUoKS50b0lTT1N0cmluZygpfWBdLCB7XG4gICAgICB0eXBlOiAndGV4dC9jc3Y7Y2hhcnNldD11dGYtODsnXG4gICAgfSk7XG4gICAgY29uc3QgZmlsZU5hbWUgPSAnY3JsLXRlbXBsYXRlJztcbiAgICBzYXZlQXMoYmxvYiwgYCR7ZmlsZU5hbWV9LmNzdmApO1xuICB9XG5cbiAgYWRkQ2VydGlmaWNhdGVSZXZvY2F0aW9uKCkge1xuICAgIHRoaXMuY3Jscy5wdXNoKHRoaXMuZ2V0RW1wdHlDZXJ0aWZpY2F0ZVJldm9jYXRpb24oKSk7XG4gIH1cblxuICByZW1vdmVDZXJ0aWZpY2F0ZVJldm9jYXRpb24oY2VydGlmaWNhdGVSZXZvY2F0aW9uKSB7XG4gICAgcHVsbCh0aGlzLmNybHMsIGNlcnRpZmljYXRlUmV2b2NhdGlvbik7XG4gICAgaWYgKHRoaXMuY3Jscy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkQ2VydGlmaWNhdGVSZXZvY2F0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2F2ZSgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jb25maXJtKCk7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVDcmxzKCk7XG4gICAgICBhd2FpdCB0aGlzLnVwbG9hZENybEZpbGUoKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xlYXJTYXZlZERhdGEoKTtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQ1JMIHNhdmVkLicpKTtcbiAgICB9IGNhdGNoIChlcikge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShlcik7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzTGlzdEVtcHR5KCkge1xuICAgIHJldHVybiB0aGlzLmNybHMubGVuZ3RoID09PSAxICYmIGlzRW1wdHkodGhpcy5jcmxzWzBdLnNlcmlhbE51bWJlckluSGV4KTtcbiAgfVxuXG4gIGdldCBpc0ZpbGVEcm9wcGVkKCkge1xuICAgIHJldHVybiAhISh0aGlzLmRyb3BwZWRGaWxlcyAmJiB0aGlzLmRyb3BwZWRGaWxlc1swXSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNvbmZpcm0oKSB7XG4gICAgY29uc3QgaXNPdmVycmlkZU1hbnVhbEVudHJpZXMgPSAhdGhpcy5pc0xpc3RFbXB0eSAmJiB0aGlzLmlzRmlsZURyb3BwZWQ7XG4gICAgY29uc3Qgc3RhdHVzID0gaXNPdmVycmlkZU1hbnVhbEVudHJpZXMgPyBTdGF0dXMuREFOR0VSIDogU3RhdHVzLldBUk5JTkc7XG4gICAgY29uc3QgYm9keSA9IGlzT3ZlcnJpZGVNYW51YWxFbnRyaWVzXG4gICAgICA/IGdldHRleHQoXG4gICAgICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gdXBkYXRlIGNlcnRpZmljYXRlIHJldm9jYXRpb24gbGlzdC4gVGhlIENSTCBmaWxlIGNvbnRlbnQgd2lsbCBvdmVycmlkZSBtYW51YWwgZW50cmllcy4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD8nXG4gICAgICAgIClcbiAgICAgIDogZ2V0dGV4dCgnWW91IGFyZSBhYm91dCB0byB1cGRhdGUgY2VydGlmaWNhdGUgcmV2b2NhdGlvbiBsaXN0LiBEbyB5b3Ugd2FudCB0byBwcm9jZWVkPycpO1xuXG4gICAgYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2UuY29uZmlybShnZXR0ZXh0KCdVcGRhdGUgY2VydGlmaWNhdGUgcmV2b2NhdGlvbiBsaXN0JyksIGJvZHksIHN0YXR1cywge1xuICAgICAgb2s6IGdldHRleHQoJ1VwZGF0ZScpXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2F2ZWREYXRhKCkge1xuICAgIHRoaXMuZHJvcHBlZEZpbGVzID0gW107XG4gICAgdGhpcy5jcmxzID0gW3RoaXMuZ2V0RW1wdHlDZXJ0aWZpY2F0ZVJldm9jYXRpb24oKV07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNhdmVDcmxzKCkge1xuICAgIGlmICghdGhpcy5pc0xpc3RFbXB0eSkge1xuICAgICAgYXdhaXQgdGhpcy5jcmxTZXJ2aWNlLnVwbG9hZENybHModGhpcy5jcmxzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwbG9hZENybEZpbGUoKSB7XG4gICAgaWYgKHRoaXMuaXNGaWxlRHJvcHBlZCkge1xuICAgICAgYXdhaXQgdGhpcy5jcmxTZXJ2aWNlLnVwbG9hZENybEZpbGUodGhpcy5kcm9wcGVkRmlsZXNbMF0uZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbXB0eUNlcnRpZmljYXRlUmV2b2NhdGlvbigpOiBJQ2VydGlmaWNhdGVSZXZvY2F0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2VyaWFsTnVtYmVySW5IZXg6ICcnXG4gICAgfTtcbiAgfVxufVxuIiwiPGM4eS10aXRsZT57eyAnVHJ1c3RlZCBjZXJ0aWZpY2F0ZXMnIHwgdHJhbnNsYXRlIH19PC9jOHktdGl0bGU+XG5cbjxjOHktYnJlYWRjcnVtYj5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiYzh5LW1hbmFnZW1lbnRcIlxuICAgIGxhYmVsPVwie3sgJ01hbmFnZW1lbnQnIHwgdHJhbnNsYXRlIH19XCJcbiAgPjwvYzh5LWJyZWFkY3J1bWItaXRlbT5cbiAgPGM4eS1icmVhZGNydW1iLWl0ZW1cbiAgICBpY29uPVwiY2VydGlmaWNhdGVcIlxuICAgIGxhYmVsPVwie3sgJ1RydXN0ZWQgY2VydGlmaWNhdGVzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gID48L2M4eS1icmVhZGNydW1iLWl0ZW0+XG48L2M4eS1icmVhZGNydW1iPlxuXG48Yzh5LWNybC1jaGVjay1zZXR0aW5ncz48L2M4eS1jcmwtY2hlY2stc2V0dGluZ3M+XG5cbjwhLS0gI1RPRE8gdW5jb21tZW50IHdoZW4gYXZhaWxhYmxlIGluIGRvY3VtZW50YXRpb24gIC0tPlxuPCEtLSA8Yzh5LWhlbHAgc3JjPVwiL3VzZXJzLWd1aWRlL2RldmljZS1tYW5hZ2VtZW50LyNUT0RPXCI+PC9jOHktaGVscD4gLS0+XG5cbjxmb3JtXG4gIGNsYXNzPVwiY2FyZCBjYXJkLS1mdWxscGFnZVwiXG4gICNjcmxNYW51YWxGb3JtPVwibmdGb3JtXCJcbiAgbm92YWxpZGF0ZVxuPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgc2VwYXJhdG9yXCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj5cbiAgICAgIHt7ICdDUkwgb2ZmbGluZSBzZXR1cCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImxlZ2VuZCBmb3JtLWJsb2NrXCJcbiAgICAgID5cbiAgICAgICAge3sgJ01hbnVhbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHAgYnRuLWhlbHAtLXNtXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgcG9wb3Zlcj1cInt7IE1BTlVBTF9FTlRSWV9QT1BPVkVSIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgdHJpZ2dlcnM9XCJmb2N1c1wiXG4gICAgICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicm93IHRpZ2h0LWdyaWRcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgY2VydGlmaWNhdGVSZXZvY2F0aW9uIG9mIGNybHM7IGluZGV4IGFzIGluZGV4OyBsYXN0IGFzIGlzTGFzdFwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNVwiPlxuICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICBbZm9yXT1cIidzZXJpYWxOdW1iZXInICsgaW5kZXhcIlxuICAgICAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgU2VyaWFsIG51bWJlclxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIFtuYW1lXT1cIidzZXJpYWxOdW1iZXInICsgaW5kZXhcIlxuICAgICAgICAgICAgICBbaWRdPVwiJ3NlcmlhbE51bWJlcicgKyBpbmRleFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2VydGlmaWNhdGVSZXZvY2F0aW9uLnNlcmlhbE51bWJlckluSGV4XCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidlLmcuIHt7IGV4YW1wbGUgfX0nIHwgdHJhbnNsYXRlOiB7IGV4YW1wbGU6ICc4YWIzNGZlNTQ3NicgfVwiXG4gICAgICAgICAgICAgIGM4eURlZmF1bHRWYWxpZGF0aW9uPVwiaGV4TnVtYmVyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNVwiPlxuICAgICAgICAgIDxjOHktZm9ybS1ncm91cCBjbGFzcz1cImRhdGVwaWNrZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIid2YWxpZFRpbGxQaWNrZXInICsgaW5kZXhcIj5cbiAgICAgICAgICAgICAge3sgJ1ZhbGlkIHRpbGwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRGF0ZSB0bycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdEYXRlIHRvJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cIid2YWxpZFRpbGxQaWNrZXInICsgaW5kZXhcIlxuICAgICAgICAgICAgICBbaWRdPVwiJ3ZhbGlkVGlsbFBpY2tlcicgKyBpbmRleFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2VydGlmaWNhdGVSZXZvY2F0aW9uLnJldm9jYXRpb25EYXRlXCJcbiAgICAgICAgICAgICAgW2JzQ29uZmlnXT1cInsgY3VzdG9tVG9kYXlDbGFzczogJ3RvZGF5JyB9XCJcbiAgICAgICAgICAgICAgYnNEYXRlcGlja2VyXG4gICAgICAgICAgICAgIFttYXhEYXRlXT1cInRvZGF5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9jOHktZm9ybS1ncm91cD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMlwiPlxuICAgICAgICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXQtMjRcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY3Jscy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBoaWRkZW4teHMgaGlkZGVuLXNtXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdSZW1vdmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ2VydGlmaWNhdGVSZXZvY2F0aW9uKGNlcnRpZmljYXRlUmV2b2NhdGlvbilcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1kYW5nZXJcIlxuICAgICAgICAgICAgICAgICAgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBoaWRkZW4teHMgaGlkZGVuLXNtXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7ICdBZGQnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ2VydGlmaWNhdGVSZXZvY2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNMYXN0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBjOHlJY29uPVwicGx1cy1jaXJjbGVcIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImNybHMubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRhbmdlciBidG4tYmxvY2sgYnRuLXNtIHZpc2libGUteHMgdmlzaWJsZS1zbVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNlcnRpZmljYXRlUmV2b2NhdGlvbihjZXJ0aWZpY2F0ZVJldm9jYXRpb24pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpIGM4eUljb249XCJtaW51cy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAge3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2sgYnRuLXNtIHZpc2libGUteHMgdmlzaWJsZS1zbVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnQWRkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZENlcnRpZmljYXRlUmV2b2NhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzTGFzdFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0FkZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2M4eS1mb3JtLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZCBmb3JtLWJsb2NrIGNlbnRlclwiPlxuICAgICAgICB7eyAnb3InIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJsZWdlbmQgZm9ybS1ibG9ja1wiXG4gICAgICA+XG4gICAgICAgIHt7ICdGaWxlIHVwbG9hZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWhlbHAgYnRuLWhlbHAtLXNtXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgcG9wb3Zlcj1cInt7IEZJTEVfVVBMT0FEX1BPUE9WRVIgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICB0cmlnZ2Vycz1cImZvY3VzXCJcbiAgICAgICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxjOHktZHJvcC1hcmVhXG4gICAgICAgIGNsYXNzPVwiZHJvcC1hcmVhLXNtXCJcbiAgICAgICAgW3RpdGxlXT1cIidVcGxvYWQgQ1JMIGZpbGUgKC5jc3YgZm9ybWF0KScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBuYW1lPVwidXBsb2FkQ3JsRHJvcEFyZWFcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImRyb3BwZWRGaWxlc1wiXG4gICAgICAgIFttZXNzYWdlXT1cIidVcGxvYWQgQ1JMIGZpbGUgKC5jc3YgZm9ybWF0KScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbbG9hZGluZ01lc3NhZ2VdPVwiJ1VwbG9hZGluZ+KApicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbYWNjZXB0XT1cIicuY3N2J1wiXG4gICAgICAgIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiXG4gICAgICA+PC9jOHktZHJvcC1hcmVhPlxuICAgICAgPHAgY2xhc3M9XCJoZWxwLWJsb2NrIGhhcy1pbmZvIHRleHQtbXV0ZWQgbS10LTRcIj5cbiAgICAgICAge3sgJ0NSTCBmaWxlIGNvbnRlbnQgd2lsbCBvdmVycmlkZSBtYW51YWwgZW50cmllcy4nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3A+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kZWZhdWx0IG0tdC0xNlwiXG4gICAgICAgIHRpdGxlPVwie3sgJ0Rvd25sb2FkIHRlbXBsYXRlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwiZG93bmxvYWRDcmxUZW1wbGF0ZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGlcbiAgICAgICAgICBjbGFzcz1cIm0tci00XCJcbiAgICAgICAgICBjOHlJY29uPVwidGVtcGxhdGVcIlxuICAgICAgICA+PC9pPlxuICAgICAgICB7eyAnRG93bmxvYWQgdGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBzZXBhcmF0b3JcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICB0aXRsZT1cInt7ICdEb3dubG9hZCBDUkwgZmlsZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwiZG93bmxvYWRDcmwoKVwiXG4gICAgPlxuICAgICAgPGlcbiAgICAgICAgY2xhc3M9XCJtLXItNFwiXG4gICAgICAgIGM4eUljb249XCJkb3dubG9hZFwiXG4gICAgICA+PC9pPlxuICAgICAge3sgJ0Rvd25sb2FkIENSTCBmaWxlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgIHRpdGxlPVwie3sgJ1NhdmUnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgKGNsaWNrKT1cInNhdmUoKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIShjcmxNYW51YWxGb3JtLmZvcm0udmFsaWQgfHwgaXNMaXN0RW1wdHkpIHx8IChpc0xpc3RFbXB0eSAmJiAhaXNGaWxlRHJvcHBlZClcIlxuICAgID5cbiAgICAgIHt7ICdTYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { CommonModule, CoreModule } from '@c8y/ngx-components';
|
|
4
|
+
import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
|
|
5
|
+
import { CrlSettingsComponent } from './crl-settings.component';
|
|
6
|
+
import { CrlCheckSettingsComponent } from './crl-check-settings.component';
|
|
7
|
+
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
8
|
+
import { PopoverModule } from 'ngx-bootstrap/popover';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/router";
|
|
11
|
+
import * as i2 from "ngx-bootstrap/dropdown";
|
|
12
|
+
const trustedCertificatesRoutes = [
|
|
13
|
+
{
|
|
14
|
+
path: 'trusted-certificates/settings',
|
|
15
|
+
component: CrlSettingsComponent,
|
|
16
|
+
pathMatch: 'full'
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
export class CrlSettingsModule {
|
|
20
|
+
}
|
|
21
|
+
CrlSettingsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CrlSettingsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
22
|
+
CrlSettingsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: CrlSettingsModule, declarations: [CrlSettingsComponent, CrlCheckSettingsComponent], imports: [CoreModule,
|
|
23
|
+
CommonModule, i1.RouterModule, i2.BsDropdownModule, BsDatepickerModule,
|
|
24
|
+
PopoverModule] });
|
|
25
|
+
CrlSettingsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CrlSettingsModule, imports: [CoreModule,
|
|
26
|
+
CommonModule,
|
|
27
|
+
RouterModule.forChild(trustedCertificatesRoutes),
|
|
28
|
+
BsDropdownModule.forRoot(),
|
|
29
|
+
BsDatepickerModule,
|
|
30
|
+
PopoverModule] });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CrlSettingsModule, decorators: [{
|
|
32
|
+
type: NgModule,
|
|
33
|
+
args: [{
|
|
34
|
+
declarations: [CrlSettingsComponent, CrlCheckSettingsComponent],
|
|
35
|
+
exports: [],
|
|
36
|
+
imports: [
|
|
37
|
+
CoreModule,
|
|
38
|
+
CommonModule,
|
|
39
|
+
RouterModule.forChild(trustedCertificatesRoutes),
|
|
40
|
+
BsDropdownModule.forRoot(),
|
|
41
|
+
BsDatepickerModule,
|
|
42
|
+
PopoverModule
|
|
43
|
+
]
|
|
44
|
+
}]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JsLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3RydXN0ZWQtY2VydGlmaWNhdGVzL2NybC9jcmwtc2V0dGluZ3MubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFTLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRXRELE1BQU0seUJBQXlCLEdBQVk7SUFDekM7UUFDRSxJQUFJLEVBQUUsK0JBQStCO1FBQ3JDLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsU0FBUyxFQUFFLE1BQU07S0FDbEI7Q0FDRixDQUFDO0FBY0YsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQVhiLG9CQUFvQixFQUFFLHlCQUF5QixhQUc1RCxVQUFVO1FBQ1YsWUFBWSx3Q0FHWixrQkFBa0I7UUFDbEIsYUFBYTsrR0FHSixpQkFBaUIsWUFSMUIsVUFBVTtRQUNWLFlBQVk7UUFDWixZQUFZLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDO1FBQ2hELGdCQUFnQixDQUFDLE9BQU8sRUFBRTtRQUMxQixrQkFBa0I7UUFDbEIsYUFBYTsyRkFHSixpQkFBaUI7a0JBWjdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLEVBQUUseUJBQXlCLENBQUM7b0JBQy9ELE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRTt3QkFDUCxVQUFVO3dCQUNWLFlBQVk7d0JBQ1osWUFBWSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQzt3QkFDaEQsZ0JBQWdCLENBQUMsT0FBTyxFQUFFO3dCQUMxQixrQkFBa0I7d0JBQ2xCLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGUsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIENvcmVNb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJzRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBDcmxTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vY3JsLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmxDaGVja1NldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jcmwtY2hlY2stc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuXG5jb25zdCB0cnVzdGVkQ2VydGlmaWNhdGVzUm91dGVzOiBSb3V0ZVtdID0gW1xuICB7XG4gICAgcGF0aDogJ3RydXN0ZWQtY2VydGlmaWNhdGVzL3NldHRpbmdzJyxcbiAgICBjb21wb25lbnQ6IENybFNldHRpbmdzQ29tcG9uZW50LFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH1cbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NybFNldHRpbmdzQ29tcG9uZW50LCBDcmxDaGVja1NldHRpbmdzQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW10sXG4gIGltcG9ydHM6IFtcbiAgICBDb3JlTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQodHJ1c3RlZENlcnRpZmljYXRlc1JvdXRlcyksXG4gICAgQnNEcm9wZG93bk1vZHVsZS5mb3JSb290KCksXG4gICAgQnNEYXRlcGlja2VyTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcmxTZXR0aW5nc01vZHVsZSB7fVxuIl19
|