@c8y/ngx-components 1021.29.0 → 1021.29.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -131,7 +131,7 @@ export class DatapointSelectionListComponent {
131
131
  useExisting: forwardRef(() => DatapointSelectionListComponent),
132
132
  multi: true
133
133
  }
134
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-header separator sticky-top bg-component\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i5.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i5.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.DatapointSelectorListItemComponent, selector: "c8y-datapoint-selector-list-item", inputs: ["defaultFormOptions", "isSelected", "isCollapsed", "showAddRemoveButton", "editable", "showActiveToggle", "activeToggleDisabled", "showOptions", "datapointLibraryEntries", "actions", "optionToRemove", "hasUnlinkTemplateOption", "colorPickerDisabled", "disableTypeaheadIfSelected", "highlightText"], outputs: ["added", "removed"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }] }); }
134
+ ], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i5.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i5.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i5.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i5.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i8.DatapointSelectorListItemComponent, selector: "c8y-datapoint-selector-list-item", inputs: ["defaultFormOptions", "isSelected", "isCollapsed", "showAddRemoveButton", "editable", "showActiveToggle", "activeToggleDisabled", "showOptions", "datapointLibraryEntries", "actions", "optionToRemove", "hasUnlinkTemplateOption", "colorPickerDisabled", "disableTypeaheadIfSelected", "highlightText"], outputs: ["added", "removed"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }] }); }
135
135
  }
136
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectionListComponent, decorators: [{
137
137
  type: Component,
@@ -146,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
146
146
  useExisting: forwardRef(() => DatapointSelectionListComponent),
147
147
  multi: true
148
148
  }
149
- ], template: "<div class=\"card-header separator sticky-top bg-component\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n" }]
149
+ ], template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n" }]
150
150
  }], ctorParameters: () => [{ type: i1.DatapointSelectorService }, { type: i2.DatapointLibraryService }, { type: i3.FormBuilder }, { type: i4.WidgetConfigComponent, decorators: [{
151
151
  type: Optional
152
152
  }] }], propDecorators: { actions: [{
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
170
170
  }], change: [{
171
171
  type: Output
172
172
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFJbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUXZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBa0J6RSxNQUFNLE9BQU8sK0JBQStCO0lBbUIxQyxZQUNVLGlCQUEyQyxFQUMzQyxnQkFBeUMsRUFDekMsV0FBd0IsRUFDWixlQUFzQztRQUhsRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBeUI7UUFDekMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDWixvQkFBZSxHQUFmLGVBQWUsQ0FBdUI7UUFwQm5ELFlBQU8sR0FBc0IsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4QixXQUFNLEdBQTJDLEVBQUUsQ0FBQztRQUNwRCx1QkFBa0IsR0FBMkMsRUFBRSxDQUFDO1FBRWhFLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFHeEIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBSXRCLG1CQUFjLEdBQW1DLEVBQUUsQ0FBQztRQVExRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDRCQUE0QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzVGLFdBQVcsRUFBRSxDQUNkLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekYsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRLENBQUMsUUFBeUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUMzRCxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDO1FBQzlDLElBQUksT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFpQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFELFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZO2FBQ3hCLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLHVCQUF1QjtRQUN2QixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELEdBQUc7UUFDRCxNQUFNLG9CQUFvQixHQUN4QixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUscUJBQXFCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsS0FBSyxLQUFLLENBQUM7UUFDOUYsSUFBSSxDQUFDLGlCQUFpQjthQUNuQixnQkFBZ0IsQ0FBQztZQUNoQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7WUFDdEIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUM3RCxrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLG9CQUFvQjtZQUNwQixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFlBQVk7U0FDeEMsQ0FBQzthQUNELElBQUksQ0FDSCxNQUFNLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILGtDQUFrQztRQUNwQyxDQUFDLENBQ0YsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWdDO1FBQ25DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzVDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxjQUFxQjtRQUMxQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3pGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxlQUFlLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN0RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDOzhHQXBJVSwrQkFBK0I7a0dBQS9CLCtCQUErQiwwV0FiL0I7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLCtCQUErQixDQUFDO2FBQy9EO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsK0JBQStCLENBQUM7Z0JBQzlELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwrQ0NuREgsNHhGQW9HQTs7MkZEL0NhLCtCQUErQjtrQkFoQjNDLFNBQVM7K0JBQ0UsOEJBQThCLGFBRTdCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdDQUFnQyxDQUFDO3lCQUMvRDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0NBQWdDLENBQUM7NEJBQzlELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkF5QkUsUUFBUTt5Q0FwQkYsT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1BcnJheSxcbiAgRm9ybUJ1aWxkZXIsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvckZuXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQzh5VmFsaWRhdG9ycyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnQ29tcG9uZW50IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9jb250ZXh0LWRhc2hib2FyZCc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRhcG9pbnRMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uL2RhdGFwb2ludC1saWJyYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50QWN0aW9uLFxuICBEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZyxcbiAgS1BJRGV0YWlscyxcbiAgTWFuYWdlZE9iamVjdEtQSVxufSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IERhdGFwb2ludFNlbGVjdG9yTW9kYWxPcHRpb25zIH0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdG9yLW1vZGFsL2RhdGFwb2ludC1zZWxlY3Rvci1tb2RhbC5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhcG9pbnRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGFwb2ludFNlbGVjdGlvbkxpc3RDb21wb25lbnQpXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0YXBvaW50U2VsZWN0aW9uTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRTZWxlY3Rpb25MaXN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KCkgYWN0aW9uczogRGF0YXBvaW50QWN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dEcmFnQW5kRHJvcCA9IHRydWU7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxEYXRhcG9pbnRTZWxlY3Rvck1vZGFsT3B0aW9ucz4gPSB7fTtcbiAgQElucHV0KCkgZGVmYXVsdEZvcm1PcHRpb25zOiBQYXJ0aWFsPERhdGFwb2ludEF0dHJpYnV0ZXNGb3JtQ29uZmlnPiA9IHt9O1xuICBASW5wdXQoKSBtYXhBY3RpdmVDb3VudDogbnVtYmVyO1xuICBASW5wdXQoKSBtaW5BY3RpdmVDb3VudCA9IDE7XG4gIEBJbnB1dCgpIHJlc29sdmVDb250ZXh0ID0gdHJ1ZTtcbiAgQElucHV0KCkgbGlzdFRpdGxlID0gJyc7XG4gIGZvcm1BcnJheTogRm9ybUFycmF5O1xuICBkYXRhcG9pbnRMaWJyYXJ5RW50cmllczogT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxNYW5hZ2VkT2JqZWN0S1BJPj47XG4gIG1heEFjdGl2ZUNvdW50UmVhY2hlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBpc1ZhbGlkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBAT3V0cHV0KCkgY2hhbmdlOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgcHJpdmF0ZSB1c2VkVmFsaWRhdG9yczogeyBba2V5OiBzdHJpbmddOiBWYWxpZGF0b3JGbiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhcG9pbnRTZWxlY3RvcjogRGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YXBvaW50TGlicmFyeTogRGF0YXBvaW50TGlicmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbmZpZ0NvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pO1xuICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMuZm9ybUFycmF5LnN0YXR1c0NoYW5nZXMucGlwZShtYXAoc3RhdHVzID0+IHN0YXR1cyA9PT0gJ1ZBTElEJykpO1xuICAgIHRoaXMuZGF0YXBvaW50TGlicmFyeUVudHJpZXMgPSBmcm9tKHRoaXMuZGF0YXBvaW50TGlicmFyeS5nZXRGaXJzdERhdGFwb2ludExpYnJhcnlQYWdlKCkpLnBpcGUoXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKTtcbiAgICB0aGlzLmNoYW5nZSA9IHRoaXMuZm9ybUFycmF5LnZhbHVlQ2hhbmdlcy5waXBlKG1hcChyZXMgPT4gdGhpcy50cmFuc2Zvcm1WYWx1ZShyZXMpKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2VzLm1heEFjdGl2ZUNvdW50ICYmICFjaGFuZ2VzLm1pbkFjdGl2ZUNvdW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLm1heEFjdGl2ZUNvdW50KSB7XG4gICAgICB0aGlzLnVzZWRWYWxpZGF0b3JzLm1heEFjdGl2ZUNvdW50ID0gQzh5VmFsaWRhdG9ycy5tYXhBY3RpdmVDb3VudCh0aGlzLm1heEFjdGl2ZUNvdW50KTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5taW5BY3RpdmVDb3VudCkge1xuICAgICAgdGhpcy51c2VkVmFsaWRhdG9ycy5taW5BY3RpdmVDb3VudCA9IEM4eVZhbGlkYXRvcnMubWluQWN0aXZlQ291bnQodGhpcy5taW5BY3RpdmVDb3VudCk7XG4gICAgfVxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBPYmplY3QudmFsdWVzKHRoaXMudXNlZFZhbGlkYXRvcnMpO1xuICAgIHRoaXMuZm9ybUFycmF5LnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkudmFsaWQgPyBudWxsIDogeyBmb3JtSW52YWxpZDoge30gfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLndpZGdldENvbXBvbmVudD8uY29udGV4dDtcbiAgICBpZiAoY29udGV4dD8uaWQgJiYgdGhpcy5yZXNvbHZlQ29udGV4dCkge1xuICAgICAgY29uc3QgeyBuYW1lLCBpZCwgYzh5X0lzRGV2aWNlIH0gPSBjb250ZXh0O1xuICAgICAgdGhpcy5jb25maWcuY29udGV4dEFzc2V0ID0geyBuYW1lLCBpZCwgYzh5X0lzRGV2aWNlIH07XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IEtQSURldGFpbHNbXSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUFycmF5LmNsZWFyKCk7XG4gICAgaWYgKG9iaj8ubGVuZ3RoKSB7XG4gICAgICBvYmouZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgICBjb25zdCBmb3JtZ3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHsgZGV0YWlsczogW10gfSk7XG4gICAgICAgIGZvcm1ncm91cC5wYXRjaFZhbHVlKHsgZGV0YWlsczogdmFsIH0pO1xuICAgICAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGZvcm1ncm91cCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jYWxjdWxhdGVNYXhBY3RpdmVDb3VudCgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiB0aGlzLnRyYW5zZm9ybVZhbHVlKHJlcykpLFxuICAgICAgICAvLyBjaGVjayBtYXhBY3RpdmVDb3VudFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlTWF4QWN0aXZlQ291bnQoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgYWRkKCkge1xuICAgIGNvbnN0IGFsbG93Q2hhbmdpbmdDb250ZXh0ID1cbiAgICAgICF0aGlzLndpZGdldENvbXBvbmVudD8uaXNEZXZpY2VUeXBlRGFzaGJvYXJkICYmIHRoaXMuY29uZmlnPy5hbGxvd0NoYW5naW5nQ29udGV4dCAhPT0gZmFsc2U7XG4gICAgdGhpcy5kYXRhcG9pbnRTZWxlY3RvclxuICAgICAgLnNlbGVjdERhdGFQb2ludHMoe1xuICAgICAgICAuLi4odGhpcy5jb25maWcgfHwge30pLFxuICAgICAgICBzZWxlY3RlZERhdGFwb2ludHM6IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5mb3JtQXJyYXkudmFsdWUpLFxuICAgICAgICBkZWZhdWx0QWN0aXZlU3RhdGU6IHRydWUsXG4gICAgICAgIGFsbG93Q2hhbmdpbmdDb250ZXh0LFxuICAgICAgICBhbGxvd1NlYXJjaDogIXRoaXMuY29uZmlnPy5jb250ZXh0QXNzZXRcbiAgICAgIH0pXG4gICAgICAudGhlbihcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUocmVzdWx0KTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8sIG1vZGFsIHdhcyBjbG9zZWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIG9uSXRlbVJlbW92ZWQoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEtQSURldGFpbHNbXT4pIHtcbiAgICBjb25zdCBjdXJyZW50U29ydGluZyA9IHRoaXMuZm9ybUFycmF5LnZhbHVlO1xuICAgIG1vdmVJdGVtSW5BcnJheShjdXJyZW50U29ydGluZywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmZvcm1BcnJheS5zZXRWYWx1ZShjdXJyZW50U29ydGluZyk7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybVZhbHVlKGZvcm1BcnJheVZhbHVlOiBhbnlbXSkge1xuICAgIGlmICghZm9ybUFycmF5VmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1BcnJheVZhbHVlLm1hcCh0bXAgPT4gT2JqZWN0LmFzc2lnbih7fSwgLi4uT2JqZWN0LnZhbHVlcyh0bXApKSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZU1heEFjdGl2ZUNvdW50KCkge1xuICAgIGlmICh0aGlzLm1heEFjdGl2ZUNvdW50KSB7XG4gICAgICBjb25zdCBjdXJyZW50bHlBY3RpdmUgPSB0aGlzLmZvcm1BcnJheS52YWx1ZS5maWx0ZXIodG1wID0+IHRtcC5kZXRhaWxzPy5fX2FjdGl2ZSkubGVuZ3RoO1xuICAgICAgdGhpcy5tYXhBY3RpdmVDb3VudFJlYWNoZWQgPSBjdXJyZW50bHlBY3RpdmUgPj0gdGhpcy5tYXhBY3RpdmVDb3VudDtcbiAgICB9XG4gICAgdGhpcy5tYXhBY3RpdmVDb3VudFJlYWNoZWQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvciBzdGlja3ktdG9wIGJnLWNvbXBvbmVudFwiPlxuICA8c3BhblxuICAgIGNsYXNzPVwiY2FyZC10aXRsZSBoNFwiXG4gICAgKm5nSWY9XCJsaXN0VGl0bGVcIlxuICA+XG4gICAge3sgbGlzdFRpdGxlIHwgdHJhbnNsYXRlIH19XG4gIDwvc3Bhbj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImNhcmQtdGl0bGUgaDRcIlxuICAgICpuZ0lmPVwiIWxpc3RUaXRsZVwiXG4gID5cbiAgICB7eyAnRGF0YSBwb2ludHMnIHwgdHJhbnNsYXRlIH19XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48Yzh5LWxpc3QtZ3JvdXBcbiAgY2xhc3M9XCJmbGV4LWdyb3cgZmYtc2Nyb2xsLWZpeCBjZGstZHJvcGxpc3RcIlxuICBjZGtEcm9wTGlzdFxuICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiXG4gIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cIiFhbGxvd0RyYWdBbmREcm9wIHx8IGZvcm1BcnJheS5jb250cm9scz8ubGVuZ3RoIDwgMlwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmcgbS10LThcIlxuICAgIHJvbGU9XCJhbGVydFwiXG4gICAgbmdOb25CaW5kYWJsZVxuICAgICpuZ0lmPVwiZm9ybUFycmF5LmVycm9ycz8ubWluQWN0aXZlQ291bnRcIlxuICAgIHRyYW5zbGF0ZVxuICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwiZm9ybUFycmF5LmVycm9ycz8ubWluQWN0aXZlQ291bnRcIlxuICA+XG4gICAgQXQgbGVhc3Qge3sgbWluQWN0aXZlIH19IGFjdGl2ZSBkYXRhIHBvaW50cyBtdXN0IGJlIHNlbGVjdGVkLlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG0tdC04XCJcbiAgICByb2xlPVwiYWxlcnRcIlxuICAgIG5nTm9uQmluZGFibGVcbiAgICAqbmdJZj1cImZvcm1BcnJheS5lcnJvcnM/Lm1heEFjdGl2ZUNvdW50XCJcbiAgICB0cmFuc2xhdGVcbiAgICBbdHJhbnNsYXRlUGFyYW1zXT1cImZvcm1BcnJheS5lcnJvcnM/Lm1heEFjdGl2ZUNvdW50XCJcbiAgPlxuICAgIEF0IG1heGltdW0ge3sgbWF4QWN0aXZlIH19IGFjdGl2ZSBkYXRhIHBvaW50cyBhcmUgYWxsb3dlZCB0byBiZSBzZWxlY3RlZC5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiLmFsZXJ0XCI+PC9uZy1jb250ZW50PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInAtdC04XCJcbiAgICAqbmdJZj1cIiFmb3JtQXJyYXkuY29udHJvbHM/Lmxlbmd0aFwiXG4gID5cbiAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICBjbGFzcz1cInAtdC04XCJcbiAgICAgIFtpY29uXT1cIidjOHktZGF0YS1wb2ludHMnXCJcbiAgICAgIFt0aXRsZV09XCInTm8gZGF0YSBwb2ludHMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtzdWJ0aXRsZV09XCInQWRkIHlvdXIgZmlyc3QgZGF0YSBwb2ludC4nIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICAgID48L2M4eS11aS1lbXB0eS1zdGF0ZT5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBbZm9ybUdyb3VwXT1cImRwRm9ybVwiXG4gICAgKm5nRm9yPVwibGV0IGRwRm9ybSBvZiBmb3JtQXJyYXkuY29udHJvbHM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgPlxuICAgIDxjOHktZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbVxuICAgICAgY2xhc3M9XCJkLWJsb2NrXCJcbiAgICAgIFtkZWZhdWx0Rm9ybU9wdGlvbnNdPVwiZGVmYXVsdEZvcm1PcHRpb25zXCJcbiAgICAgIFthY3RpdmVUb2dnbGVEaXNhYmxlZF09XCJtYXhBY3RpdmVDb3VudFJlYWNoZWRcIlxuICAgICAgW3Nob3dBY3RpdmVUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICBbc2hvd0FkZFJlbW92ZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICBbc2hvd09wdGlvbnNdPVwidHJ1ZVwiXG4gICAgICBbZWRpdGFibGVdPVwidHJ1ZVwiXG4gICAgICBbY29sb3JQaWNrZXJEaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICBbYWN0aW9uc109XCJhY3Rpb25zXCJcbiAgICAgIFtvcHRpb25Ub1JlbW92ZV09XCJ0cnVlXCJcbiAgICAgIFtkYXRhcG9pbnRMaWJyYXJ5RW50cmllc109XCJkYXRhcG9pbnRMaWJyYXJ5RW50cmllc1wiXG4gICAgICBbaGFzVW5saW5rVGVtcGxhdGVPcHRpb25dPVwidHJ1ZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXRhaWxzXCJcbiAgICAgIChyZW1vdmVkKT1cIm9uSXRlbVJlbW92ZWQoaW5kZXgpXCJcbiAgICAgIGNka0RyYWdcbiAgICA+XG4gICAgICA8Yzh5LWxpLWRyYWctaGFuZGxlXG4gICAgICAgIHRpdGxlPVwie3sgJ0NsaWNrIGFuZCBkcmFnIHRvIHJlb3JkZXInIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgPlxuICAgICAgICA8aSBjOHlJY29uPVwiZHJhZy1yZW9yZGVyXCI+PC9pPlxuICAgICAgPC9jOHktbGktZHJhZy1oYW5kbGU+XG4gICAgPC9jOHktZGF0YXBvaW50LXNlbGVjdG9yLWxpc3QtaXRlbT5cbiAgPC9kaXY+XG48L2M4eS1saXN0LWdyb3VwPlxuXG48ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYmctaW5oZXJpdFwiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXNtXCJcbiAgICBbdGl0bGVdPVwiJ0FkZCBkYXRhIHBvaW50JyB8IHRyYW5zbGF0ZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgZGF0YS1jeT1cImM4eS1kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QtLWFkZC1kYXRhcG9pbnQtYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiYWRkKClcIlxuICA+XG4gICAgPGkgYzh5SWNvbj1cInBsdXMtY2lyY2xlXCI+PC9pPlxuICAgIHt7ICdBZGQgZGF0YSBwb2ludCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2RhdGFwb2ludC1zZWxlY3Rvci9kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QvZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFJbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUXZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBa0J6RSxNQUFNLE9BQU8sK0JBQStCO0lBbUIxQyxZQUNVLGlCQUEyQyxFQUMzQyxnQkFBeUMsRUFDekMsV0FBd0IsRUFDWixlQUFzQztRQUhsRCxzQkFBaUIsR0FB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QkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1BcnJheSxcbiAgRm9ybUJ1aWxkZXIsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvckZuXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQzh5VmFsaWRhdG9ycyB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgV2lkZ2V0Q29uZmlnQ29tcG9uZW50IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9jb250ZXh0LWRhc2hib2FyZCc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRhcG9pbnRMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uL2RhdGFwb2ludC1saWJyYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgRGF0YXBvaW50QWN0aW9uLFxuICBEYXRhcG9pbnRBdHRyaWJ1dGVzRm9ybUNvbmZpZyxcbiAgS1BJRGV0YWlscyxcbiAgTWFuYWdlZE9iamVjdEtQSVxufSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IERhdGFwb2ludFNlbGVjdG9yTW9kYWxPcHRpb25zIH0gZnJvbSAnLi4vZGF0YXBvaW50LXNlbGVjdG9yLW1vZGFsL2RhdGFwb2ludC1zZWxlY3Rvci1tb2RhbC5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhcG9pbnRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICcuLi9kYXRhcG9pbnQtc2VsZWN0b3Iuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kYXRhcG9pbnQtc2VsZWN0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGFwb2ludFNlbGVjdGlvbkxpc3RDb21wb25lbnQpXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0YXBvaW50U2VsZWN0aW9uTGlzdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRhcG9pbnRTZWxlY3Rpb25MaXN0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KCkgYWN0aW9uczogRGF0YXBvaW50QWN0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYWxsb3dEcmFnQW5kRHJvcCA9IHRydWU7XG4gIEBJbnB1dCgpIGNvbmZpZzogUGFydGlhbDxEYXRhcG9pbnRTZWxlY3Rvck1vZGFsT3B0aW9ucz4gPSB7fTtcbiAgQElucHV0KCkgZGVmYXVsdEZvcm1PcHRpb25zOiBQYXJ0aWFsPERhdGFwb2ludEF0dHJpYnV0ZXNGb3JtQ29uZmlnPiA9IHt9O1xuICBASW5wdXQoKSBtYXhBY3RpdmVDb3VudDogbnVtYmVyO1xuICBASW5wdXQoKSBtaW5BY3RpdmVDb3VudCA9IDE7XG4gIEBJbnB1dCgpIHJlc29sdmVDb250ZXh0ID0gdHJ1ZTtcbiAgQElucHV0KCkgbGlzdFRpdGxlID0gJyc7XG4gIGZvcm1BcnJheTogRm9ybUFycmF5O1xuICBkYXRhcG9pbnRMaWJyYXJ5RW50cmllczogT2JzZXJ2YWJsZTxJUmVzdWx0TGlzdDxNYW5hZ2VkT2JqZWN0S1BJPj47XG4gIG1heEFjdGl2ZUNvdW50UmVhY2hlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBpc1ZhbGlkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBAT3V0cHV0KCkgY2hhbmdlOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgcHJpdmF0ZSB1c2VkVmFsaWRhdG9yczogeyBba2V5OiBzdHJpbmddOiBWYWxpZGF0b3JGbiB9ID0ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhcG9pbnRTZWxlY3RvcjogRGF0YXBvaW50U2VsZWN0b3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YXBvaW50TGlicmFyeTogRGF0YXBvaW50TGlicmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB3aWRnZXRDb21wb25lbnQ6IFdpZGdldENvbmZpZ0NvbXBvbmVudFxuICApIHtcbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pO1xuICAgIHRoaXMuaXNWYWxpZCA9IHRoaXMuZm9ybUFycmF5LnN0YXR1c0NoYW5nZXMucGlwZShtYXAoc3RhdHVzID0+IHN0YXR1cyA9PT0gJ1ZBTElEJykpO1xuICAgIHRoaXMuZGF0YXBvaW50TGlicmFyeUVudHJpZXMgPSBmcm9tKHRoaXMuZGF0YXBvaW50TGlicmFyeS5nZXRGaXJzdERhdGFwb2ludExpYnJhcnlQYWdlKCkpLnBpcGUoXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKTtcbiAgICB0aGlzLmNoYW5nZSA9IHRoaXMuZm9ybUFycmF5LnZhbHVlQ2hhbmdlcy5waXBlKG1hcChyZXMgPT4gdGhpcy50cmFuc2Zvcm1WYWx1ZShyZXMpKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2VzLm1heEFjdGl2ZUNvdW50ICYmICFjaGFuZ2VzLm1pbkFjdGl2ZUNvdW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLm1heEFjdGl2ZUNvdW50KSB7XG4gICAgICB0aGlzLnVzZWRWYWxpZGF0b3JzLm1heEFjdGl2ZUNvdW50ID0gQzh5VmFsaWRhdG9ycy5tYXhBY3RpdmVDb3VudCh0aGlzLm1heEFjdGl2ZUNvdW50KTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5taW5BY3RpdmVDb3VudCkge1xuICAgICAgdGhpcy51c2VkVmFsaWRhdG9ycy5taW5BY3RpdmVDb3VudCA9IEM4eVZhbGlkYXRvcnMubWluQWN0aXZlQ291bnQodGhpcy5taW5BY3RpdmVDb3VudCk7XG4gICAgfVxuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBPYmplY3QudmFsdWVzKHRoaXMudXNlZFZhbGlkYXRvcnMpO1xuICAgIHRoaXMuZm9ybUFycmF5LnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkudmFsaWQgPyBudWxsIDogeyBmb3JtSW52YWxpZDoge30gfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLndpZGdldENvbXBvbmVudD8uY29udGV4dDtcbiAgICBpZiAoY29udGV4dD8uaWQgJiYgdGhpcy5yZXNvbHZlQ29udGV4dCkge1xuICAgICAgY29uc3QgeyBuYW1lLCBpZCwgYzh5X0lzRGV2aWNlIH0gPSBjb250ZXh0O1xuICAgICAgdGhpcy5jb25maWcuY29udGV4dEFzc2V0ID0geyBuYW1lLCBpZCwgYzh5X0lzRGV2aWNlIH07XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IEtQSURldGFpbHNbXSk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUFycmF5LmNsZWFyKCk7XG4gICAgaWYgKG9iaj8ubGVuZ3RoKSB7XG4gICAgICBvYmouZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgICBjb25zdCBmb3JtZ3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHsgZGV0YWlsczogW10gfSk7XG4gICAgICAgIGZvcm1ncm91cC5wYXRjaFZhbHVlKHsgZGV0YWlsczogdmFsIH0pO1xuICAgICAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGZvcm1ncm91cCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5jYWxjdWxhdGVNYXhBY3RpdmVDb3VudCgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiB0aGlzLnRyYW5zZm9ybVZhbHVlKHJlcykpLFxuICAgICAgICAvLyBjaGVjayBtYXhBY3RpdmVDb3VudFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlTWF4QWN0aXZlQ291bnQoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgYWRkKCkge1xuICAgIGNvbnN0IGFsbG93Q2hhbmdpbmdDb250ZXh0ID1cbiAgICAgICF0aGlzLndpZGdldENvbXBvbmVudD8uaXNEZXZpY2VUeXBlRGFzaGJvYXJkICYmIHRoaXMuY29uZmlnPy5hbGxvd0NoYW5naW5nQ29udGV4dCAhPT0gZmFsc2U7XG4gICAgdGhpcy5kYXRhcG9pbnRTZWxlY3RvclxuICAgICAgLnNlbGVjdERhdGFQb2ludHMoe1xuICAgICAgICAuLi4odGhpcy5jb25maWcgfHwge30pLFxuICAgICAgICBzZWxlY3RlZERhdGFwb2ludHM6IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5mb3JtQXJyYXkudmFsdWUpLFxuICAgICAgICBkZWZhdWx0QWN0aXZlU3RhdGU6IHRydWUsXG4gICAgICAgIGFsbG93Q2hhbmdpbmdDb250ZXh0LFxuICAgICAgICBhbGxvd1NlYXJjaDogIXRoaXMuY29uZmlnPy5jb250ZXh0QXNzZXRcbiAgICAgIH0pXG4gICAgICAudGhlbihcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLndyaXRlVmFsdWUocmVzdWx0KTtcbiAgICAgICAgfSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIC8vIG5vdGhpbmcgdG8gZG8sIG1vZGFsIHdhcyBjbG9zZWRcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIG9uSXRlbVJlbW92ZWQoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPEtQSURldGFpbHNbXT4pIHtcbiAgICBjb25zdCBjdXJyZW50U29ydGluZyA9IHRoaXMuZm9ybUFycmF5LnZhbHVlO1xuICAgIG1vdmVJdGVtSW5BcnJheShjdXJyZW50U29ydGluZywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmZvcm1BcnJheS5zZXRWYWx1ZShjdXJyZW50U29ydGluZyk7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zZm9ybVZhbHVlKGZvcm1BcnJheVZhbHVlOiBhbnlbXSkge1xuICAgIGlmICghZm9ybUFycmF5VmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGZvcm1BcnJheVZhbHVlLm1hcCh0bXAgPT4gT2JqZWN0LmFzc2lnbih7fSwgLi4uT2JqZWN0LnZhbHVlcyh0bXApKSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZU1heEFjdGl2ZUNvdW50KCkge1xuICAgIGlmICh0aGlzLm1heEFjdGl2ZUNvdW50KSB7XG4gICAgICBjb25zdCBjdXJyZW50bHlBY3RpdmUgPSB0aGlzLmZvcm1BcnJheS52YWx1ZS5maWx0ZXIodG1wID0+IHRtcC5kZXRhaWxzPy5fX2FjdGl2ZSkubGVuZ3RoO1xuICAgICAgdGhpcy5tYXhBY3RpdmVDb3VudFJlYWNoZWQgPSBjdXJyZW50bHlBY3RpdmUgPj0gdGhpcy5tYXhBY3RpdmVDb3VudDtcbiAgICB9XG4gICAgdGhpcy5tYXhBY3RpdmVDb3VudFJlYWNoZWQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIHNlcGFyYXRvciBzdGlja3ktdG9wIGJnLWluaGVyaXRcIj5cbiAgPHNwYW5cbiAgICBjbGFzcz1cImNhcmQtdGl0bGUgaDRcIlxuICAgICpuZ0lmPVwibGlzdFRpdGxlXCJcbiAgPlxuICAgIHt7IGxpc3RUaXRsZSB8IHRyYW5zbGF0ZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJjYXJkLXRpdGxlIGg0XCJcbiAgICAqbmdJZj1cIiFsaXN0VGl0bGVcIlxuICA+XG4gICAge3sgJ0RhdGEgcG9pbnRzJyB8IHRyYW5zbGF0ZSB9fVxuICA8L3NwYW4+XG48L2Rpdj5cblxuPGM4eS1saXN0LWdyb3VwXG4gIGNsYXNzPVwiZmxleC1ncm93IGZmLXNjcm9sbC1maXggY2RrLWRyb3BsaXN0XCJcbiAgY2RrRHJvcExpc3RcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxuICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhYWxsb3dEcmFnQW5kRHJvcCB8fCBmb3JtQXJyYXkuY29udHJvbHM/Lmxlbmd0aCA8IDJcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIG0tdC04XCJcbiAgICByb2xlPVwiYWxlcnRcIlxuICAgIG5nTm9uQmluZGFibGVcbiAgICAqbmdJZj1cImZvcm1BcnJheS5lcnJvcnM/Lm1pbkFjdGl2ZUNvdW50XCJcbiAgICB0cmFuc2xhdGVcbiAgICBbdHJhbnNsYXRlUGFyYW1zXT1cImZvcm1BcnJheS5lcnJvcnM/Lm1pbkFjdGl2ZUNvdW50XCJcbiAgPlxuICAgIEF0IGxlYXN0IHt7IG1pbkFjdGl2ZSB9fSBhY3RpdmUgZGF0YSBwb2ludHMgbXVzdCBiZSBzZWxlY3RlZC5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZyBtLXQtOFwiXG4gICAgcm9sZT1cImFsZXJ0XCJcbiAgICBuZ05vbkJpbmRhYmxlXG4gICAgKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzPy5tYXhBY3RpdmVDb3VudFwiXG4gICAgdHJhbnNsYXRlXG4gICAgW3RyYW5zbGF0ZVBhcmFtc109XCJmb3JtQXJyYXkuZXJyb3JzPy5tYXhBY3RpdmVDb3VudFwiXG4gID5cbiAgICBBdCBtYXhpbXVtIHt7IG1heEFjdGl2ZSB9fSBhY3RpdmUgZGF0YSBwb2ludHMgYXJlIGFsbG93ZWQgdG8gYmUgc2VsZWN0ZWQuXG4gIDwvZGl2PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5hbGVydFwiPjwvbmctY29udGVudD5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJwLXQtOFwiXG4gICAgKm5nSWY9XCIhZm9ybUFycmF5LmNvbnRyb2xzPy5sZW5ndGhcIlxuICA+XG4gICAgPGM4eS11aS1lbXB0eS1zdGF0ZVxuICAgICAgY2xhc3M9XCJwLXQtOFwiXG4gICAgICBbaWNvbl09XCInYzh5LWRhdGEtcG9pbnRzJ1wiXG4gICAgICBbdGl0bGVdPVwiJ05vIGRhdGEgcG9pbnRzIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc3VidGl0bGVdPVwiJ0FkZCB5b3VyIGZpcnN0IGRhdGEgcG9pbnQuJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgW2Zvcm1Hcm91cF09XCJkcEZvcm1cIlxuICAgICpuZ0Zvcj1cImxldCBkcEZvcm0gb2YgZm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gID5cbiAgICA8Yzh5LWRhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW1cbiAgICAgIGNsYXNzPVwiZC1ibG9ja1wiXG4gICAgICBbZGVmYXVsdEZvcm1PcHRpb25zXT1cImRlZmF1bHRGb3JtT3B0aW9uc1wiXG4gICAgICBbYWN0aXZlVG9nZ2xlRGlzYWJsZWRdPVwibWF4QWN0aXZlQ291bnRSZWFjaGVkXCJcbiAgICAgIFtzaG93QWN0aXZlVG9nZ2xlXT1cInRydWVcIlxuICAgICAgW3Nob3dBZGRSZW1vdmVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgW3Nob3dPcHRpb25zXT1cInRydWVcIlxuICAgICAgW2VkaXRhYmxlXT1cInRydWVcIlxuICAgICAgW2NvbG9yUGlja2VyRGlzYWJsZWRdPVwiZmFsc2VcIlxuICAgICAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXG4gICAgICBbb3B0aW9uVG9SZW1vdmVdPVwidHJ1ZVwiXG4gICAgICBbZGF0YXBvaW50TGlicmFyeUVudHJpZXNdPVwiZGF0YXBvaW50TGlicmFyeUVudHJpZXNcIlxuICAgICAgW2hhc1VubGlua1RlbXBsYXRlT3B0aW9uXT1cInRydWVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGV0YWlsc1wiXG4gICAgICAocmVtb3ZlZCk9XCJvbkl0ZW1SZW1vdmVkKGluZGV4KVwiXG4gICAgICBjZGtEcmFnXG4gICAgPlxuICAgICAgPGM4eS1saS1kcmFnLWhhbmRsZVxuICAgICAgICB0aXRsZT1cInt7ICdDbGljayBhbmQgZHJhZyB0byByZW9yZGVyJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGNka0RyYWdIYW5kbGVcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cImRyYWctcmVvcmRlclwiPjwvaT5cbiAgICAgIDwvYzh5LWxpLWRyYWctaGFuZGxlPlxuICAgIDwvYzh5LWRhdGFwb2ludC1zZWxlY3Rvci1saXN0LWl0ZW0+XG4gIDwvZGl2PlxuPC9jOHktbGlzdC1ncm91cD5cblxuPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJnLWluaGVyaXRcIj5cbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbVwiXG4gICAgW3RpdGxlXT1cIidBZGQgZGF0YSBwb2ludCcgfCB0cmFuc2xhdGVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGRhdGEtY3k9XCJjOHktZGF0YXBvaW50LXNlbGVjdGlvbi1saXN0LS1hZGQtZGF0YXBvaW50LWJ1dHRvblwiXG4gICAgKGNsaWNrKT1cImFkZCgpXCJcbiAgPlxuICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICB7eyAnQWRkIGRhdGEgcG9pbnQnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -73,14 +73,14 @@ export class ActivityLogComponent {
73
73
  this.isLoading = false;
74
74
  }
75
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ActivityLogComponent, deps: [{ token: i1.EcosystemService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ActivityLogComponent, selector: "c8y-activity-log", inputs: { application: "application", hasAdminPermissions: "hasAdminPermissions" }, ngImport: i0, template: "<div class=\"inner-scroll bg-level-1 flex-grow\">\n <div class=\"card-block overflow-visible\">\n <c8y-list-group>\n <c8y-li-timeline *ngFor=\"let archive of archives\" [ngClass]=\"{ active: isActive(archive) }\">\n {{ archive.created | date: 'd MMM YYYY' }}\n {{ archive.created | date: 'shortTime' }}\n <c8y-li>\n <c8y-li-icon\n [icon]=\"checkIfLast(archive) ? 'flag-checkered' : 'file-zip-o'\"\n ></c8y-li-icon>\n <c8y-li-body>\n <div class=\"d-flex a-i-start\">\n <div style=\"min-width: 0; flex: 1\">\n <span class=\"text-truncate-wrap\" title=\" {{ archive.description || archive.name }}\">\n {{ archive.description || archive.name }}\n </span>\n <small *ngIf=\"archive.description\" class=\"text-muted\">{{\n archive.description\n }}</small>\n </div>\n <i\n *ngIf=\"isLoading && toActivate(archive)\"\n [c8yIcon]=\"'circle-o-notch'\"\n class=\"icon-spin\"\n title=\"{{ 'Activating' | translate }}\"\n ></i>\n\n <span *ngIf=\"isActive(archive)\" class=\"label label-primary m-l-auto m-t-4\">{{\n 'Active' | translate\n }}</span>\n </div>\n </c8y-li-body>\n <c8y-li-action\n (click)=\"setActive(archive)\"\n *ngIf=\"hasAdminPermissions && !isLoading && !isActive(archive)\"\n icon=\"check-square-o\"\n >\n {{ 'Set as active`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action (click)=\"downloadArchive(archive)\" icon=\"download\">\n {{ 'Download`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"deleteArchive(archive)\"\n *ngIf=\"\n hasAdminPermissions &&\n archives.length > 1 &&\n !checkIfLast(archive) &&\n !isActive(archive)\n \"\n icon=\"delete\"\n >\n {{ 'Delete`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"reactivateArchive()\"\n *ngIf=\"hasAdminPermissions && canReactivate && isActive(archive)\"\n icon=\"undo\"\n >\n {{ 'Reactivate archive' | translate }}\n </c8y-li-action>\n </c8y-li>\n </c8y-li-timeline>\n </c8y-list-group>\n </div>\n</div>\n<div class=\"card-footer\" *ngIf=\"!isLoading && hasAdminPermissions\">\n <c8y-form-group class=\"m-auto\">\n <c8y-upload-archive [(application)]=\"application\" (refresh)=\"onRefresh()\"></c8y-upload-archive>\n </c8y-form-group>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemTimelineComponent, selector: "c8y-list-item-timeline, c8y-li-timeline" }, { kind: "component", type: i1.UploadArchiveComponent, selector: "c8y-upload-archive", inputs: ["application", "uploadNewVersion", "preUploadCallback"], outputs: ["applicationChange", "refresh"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: ActivityLogComponent, selector: "c8y-activity-log", inputs: { application: "application", hasAdminPermissions: "hasAdminPermissions" }, ngImport: i0, template: "<div class=\"inner-scroll bg-level-1 flex-grow inner-scroll--md overflow-visible-sm overflow-visible-xs\">\n <div class=\"card-block overflow-visible\">\n <c8y-list-group>\n <c8y-li-timeline *ngFor=\"let archive of archives\" [ngClass]=\"{ active: isActive(archive) }\">\n {{ archive.created | date: 'd MMM YYYY' }}\n {{ archive.created | date: 'shortTime' }}\n <c8y-li>\n <c8y-li-icon\n [icon]=\"checkIfLast(archive) ? 'flag-checkered' : 'file-zip-o'\"\n ></c8y-li-icon>\n <c8y-li-body>\n <div class=\"d-flex a-i-start\">\n <div style=\"min-width: 0; flex: 1\">\n <span class=\"text-truncate-wrap\" title=\" {{ archive.description || archive.name }}\">\n {{ archive.description || archive.name }}\n </span>\n <small *ngIf=\"archive.description\" class=\"text-muted\">{{\n archive.description\n }}</small>\n </div>\n <i\n *ngIf=\"isLoading && toActivate(archive)\"\n [c8yIcon]=\"'circle-o-notch'\"\n class=\"icon-spin\"\n title=\"{{ 'Activating' | translate }}\"\n ></i>\n\n <span *ngIf=\"isActive(archive)\" class=\"label label-primary m-l-auto m-t-4\">{{\n 'Active' | translate\n }}</span>\n </div>\n </c8y-li-body>\n <c8y-li-action\n (click)=\"setActive(archive)\"\n *ngIf=\"hasAdminPermissions && !isLoading && !isActive(archive)\"\n icon=\"check-square-o\"\n >\n {{ 'Set as active`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action (click)=\"downloadArchive(archive)\" icon=\"download\">\n {{ 'Download`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"deleteArchive(archive)\"\n *ngIf=\"\n hasAdminPermissions &&\n archives.length > 1 &&\n !checkIfLast(archive) &&\n !isActive(archive)\n \"\n icon=\"delete\"\n >\n {{ 'Delete`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"reactivateArchive()\"\n *ngIf=\"hasAdminPermissions && canReactivate && isActive(archive)\"\n icon=\"undo\"\n >\n {{ 'Reactivate archive' | translate }}\n </c8y-li-action>\n </c8y-li>\n </c8y-li-timeline>\n </c8y-list-group>\n </div>\n</div>\n<div class=\"card-footer\" *ngIf=\"!isLoading && hasAdminPermissions\">\n <c8y-form-group class=\"m-auto\">\n <c8y-upload-archive [(application)]=\"application\" (refresh)=\"onRefresh()\"></c8y-upload-archive>\n </c8y-form-group>\n</div>\n", dependencies: [{ kind: "directive", type: i2.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i2.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i2.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i2.ListItemActionComponent, selector: "c8y-list-item-action, c8y-li-action", inputs: ["label", "icon", "disabled"], outputs: ["click"] }, { kind: "component", type: i2.ListItemTimelineComponent, selector: "c8y-list-item-timeline, c8y-li-timeline" }, { kind: "component", type: i1.UploadArchiveComponent, selector: "c8y-upload-archive", inputs: ["application", "uploadNewVersion", "preUploadCallback"], outputs: ["applicationChange", "refresh"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
77
77
  }
78
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: ActivityLogComponent, decorators: [{
79
79
  type: Component,
80
- args: [{ selector: 'c8y-activity-log', template: "<div class=\"inner-scroll bg-level-1 flex-grow\">\n <div class=\"card-block overflow-visible\">\n <c8y-list-group>\n <c8y-li-timeline *ngFor=\"let archive of archives\" [ngClass]=\"{ active: isActive(archive) }\">\n {{ archive.created | date: 'd MMM YYYY' }}\n {{ archive.created | date: 'shortTime' }}\n <c8y-li>\n <c8y-li-icon\n [icon]=\"checkIfLast(archive) ? 'flag-checkered' : 'file-zip-o'\"\n ></c8y-li-icon>\n <c8y-li-body>\n <div class=\"d-flex a-i-start\">\n <div style=\"min-width: 0; flex: 1\">\n <span class=\"text-truncate-wrap\" title=\" {{ archive.description || archive.name }}\">\n {{ archive.description || archive.name }}\n </span>\n <small *ngIf=\"archive.description\" class=\"text-muted\">{{\n archive.description\n }}</small>\n </div>\n <i\n *ngIf=\"isLoading && toActivate(archive)\"\n [c8yIcon]=\"'circle-o-notch'\"\n class=\"icon-spin\"\n title=\"{{ 'Activating' | translate }}\"\n ></i>\n\n <span *ngIf=\"isActive(archive)\" class=\"label label-primary m-l-auto m-t-4\">{{\n 'Active' | translate\n }}</span>\n </div>\n </c8y-li-body>\n <c8y-li-action\n (click)=\"setActive(archive)\"\n *ngIf=\"hasAdminPermissions && !isLoading && !isActive(archive)\"\n icon=\"check-square-o\"\n >\n {{ 'Set as active`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action (click)=\"downloadArchive(archive)\" icon=\"download\">\n {{ 'Download`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"deleteArchive(archive)\"\n *ngIf=\"\n hasAdminPermissions &&\n archives.length > 1 &&\n !checkIfLast(archive) &&\n !isActive(archive)\n \"\n icon=\"delete\"\n >\n {{ 'Delete`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"reactivateArchive()\"\n *ngIf=\"hasAdminPermissions && canReactivate && isActive(archive)\"\n icon=\"undo\"\n >\n {{ 'Reactivate archive' | translate }}\n </c8y-li-action>\n </c8y-li>\n </c8y-li-timeline>\n </c8y-list-group>\n </div>\n</div>\n<div class=\"card-footer\" *ngIf=\"!isLoading && hasAdminPermissions\">\n <c8y-form-group class=\"m-auto\">\n <c8y-upload-archive [(application)]=\"application\" (refresh)=\"onRefresh()\"></c8y-upload-archive>\n </c8y-form-group>\n</div>\n" }]
80
+ args: [{ selector: 'c8y-activity-log', template: "<div class=\"inner-scroll bg-level-1 flex-grow inner-scroll--md overflow-visible-sm overflow-visible-xs\">\n <div class=\"card-block overflow-visible\">\n <c8y-list-group>\n <c8y-li-timeline *ngFor=\"let archive of archives\" [ngClass]=\"{ active: isActive(archive) }\">\n {{ archive.created | date: 'd MMM YYYY' }}\n {{ archive.created | date: 'shortTime' }}\n <c8y-li>\n <c8y-li-icon\n [icon]=\"checkIfLast(archive) ? 'flag-checkered' : 'file-zip-o'\"\n ></c8y-li-icon>\n <c8y-li-body>\n <div class=\"d-flex a-i-start\">\n <div style=\"min-width: 0; flex: 1\">\n <span class=\"text-truncate-wrap\" title=\" {{ archive.description || archive.name }}\">\n {{ archive.description || archive.name }}\n </span>\n <small *ngIf=\"archive.description\" class=\"text-muted\">{{\n archive.description\n }}</small>\n </div>\n <i\n *ngIf=\"isLoading && toActivate(archive)\"\n [c8yIcon]=\"'circle-o-notch'\"\n class=\"icon-spin\"\n title=\"{{ 'Activating' | translate }}\"\n ></i>\n\n <span *ngIf=\"isActive(archive)\" class=\"label label-primary m-l-auto m-t-4\">{{\n 'Active' | translate\n }}</span>\n </div>\n </c8y-li-body>\n <c8y-li-action\n (click)=\"setActive(archive)\"\n *ngIf=\"hasAdminPermissions && !isLoading && !isActive(archive)\"\n icon=\"check-square-o\"\n >\n {{ 'Set as active`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action (click)=\"downloadArchive(archive)\" icon=\"download\">\n {{ 'Download`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"deleteArchive(archive)\"\n *ngIf=\"\n hasAdminPermissions &&\n archives.length > 1 &&\n !checkIfLast(archive) &&\n !isActive(archive)\n \"\n icon=\"delete\"\n >\n {{ 'Delete`archive`' | translate }}\n </c8y-li-action>\n <c8y-li-action\n (click)=\"reactivateArchive()\"\n *ngIf=\"hasAdminPermissions && canReactivate && isActive(archive)\"\n icon=\"undo\"\n >\n {{ 'Reactivate archive' | translate }}\n </c8y-li-action>\n </c8y-li>\n </c8y-li-timeline>\n </c8y-list-group>\n </div>\n</div>\n<div class=\"card-footer\" *ngIf=\"!isLoading && hasAdminPermissions\">\n <c8y-form-group class=\"m-auto\">\n <c8y-upload-archive [(application)]=\"application\" (refresh)=\"onRefresh()\"></c8y-upload-archive>\n </c8y-form-group>\n</div>\n" }]
81
81
  }], ctorParameters: () => [{ type: i1.EcosystemService }, { type: i2.AlertService }], propDecorators: { application: [{
82
82
  type: Input
83
83
  }], hasAdminPermissions: [{
84
84
  type: Input
85
85
  }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFNeEUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixZQUFvQixnQkFBa0MsRUFBVSxZQUEwQjtRQUF0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFQakYsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLGFBQVEsR0FBeUIsRUFBRSxDQUFDO1FBSXBDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXVFLENBQUM7SUFFOUYsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUEyQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FB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Q3pCLENBQUM7OEdBakZVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDRJQ1ZqQyxxeEZBdUVBOzsyRkQ3RGEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjtnSEFJbkIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbiwgSUFwcGxpY2F0aW9uQmluYXJ5IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWN0aXZpdHktbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlMb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSBoYXNBZG1pblBlcm1pc3Npb25zID0gZmFsc2U7XG4gIGFyY2hpdmVzOiBJQXBwbGljYXRpb25CaW5hcnlbXSA9IFtdO1xuICB0b0FjdGl2YXRlVmVyc2lvbklkOiBzdHJpbmc7XG4gIGxhc3Q6IElBcHBsaWNhdGlvbkJpbmFyeTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBjYW5SZWFjdGl2YXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLCBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlKSB7fVxuXG4gIGdldCB1cGxvYWRQcm9ncmVzcygpOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZWNvc3lzdGVtU2VydmljZS5wcm9ncmVzcztcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2FuUmVhY3RpdmF0ZSA9IHRoaXMuc2hvd1JlYWN0aXZhdGUoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGlzQWN0aXZlKGFyY2hpdmU6IElBcHBsaWNhdGlvbkJpbmFyeSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uLmFjdGl2ZVZlcnNpb25JZCA9PT0gYXJjaGl2ZS5pZDtcbiAgfVxuXG4gIHRvQWN0aXZhdGUoYXJjaGl2ZTogSUFwcGxpY2F0aW9uQmluYXJ5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9BY3RpdmF0ZVZlcnNpb25JZCA9PT0gYXJjaGl2ZS5pZDtcbiAgfVxuXG4gIGNoZWNrSWZMYXN0KGFyY2hpdmU6IElBcHBsaWNhdGlvbkJpbmFyeSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhcmNoaXZlLmlkID09PSB0aGlzLmxhc3QuaWQ7XG4gIH1cblxuICBzaG93UmVhY3RpdmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzQXBwbGljYXRpb24odGhpcy5hcHBsaWNhdGlvbik7XG4gIH1cblxuICBhc3luYyBzZXRBY3RpdmUoYXJjaGl2ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlkID0gYXJjaGl2ZS5pZCB8fCBhcmNoaXZlO1xuICAgIHRoaXMudG9BY3RpdmF0ZVZlcnNpb25JZCA9IGlkO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbiA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLnNldEFwcEFjdGl2ZVZlcnNpb24odGhpcy5hcHBsaWNhdGlvbiwgaWQpXG4gICAgICApLmRhdGE7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQXJjaGl2ZShhcmNoaXZlOiBJQXBwbGljYXRpb25CaW5hcnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZGVsZXRlQXJjaGl2ZShhcmNoaXZlLCB0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkQXJjaGl2ZShhcmNoaXZlOiBJQXBwbGljYXRpb25CaW5hcnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZG93bmxvYWRBcmNoaXZlKHRoaXMuYXBwbGljYXRpb24sIGFyY2hpdmUpO1xuICB9XG5cbiAgYXN5bmMgcmVhY3RpdmF0ZUFyY2hpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLnJlYWN0aXZhdGVBcmNoaXZlKHRoaXMuYXBwbGljYXRpb24pO1xuICB9XG5cbiAgYXN5bmMgb25SZWZyZXNoKCkge1xuICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmFyY2hpdmVzID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmxpc3RBcmNoaXZlcyh0aGlzLmFwcGxpY2F0aW9uLmlkKTtcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbi5tYW5pZmVzdD8ucGFja2FnZSA9PT0gJ2JsdWVwcmludCcpIHtcbiAgICAgIC8vIGZpbHRlciBvdXQgZW50cmllcyB3aXRob3V0IGRlc2NyaXB0aW9uIGJlY2F1c2UgdXNpbmcgdGhlbSBhcyBhY3RpdmUgbWF5IGJyZWFrIGFwcGxpY2F0aW9uJ3NcbiAgICAgIC8vICBtYW5pZmVzdCAoY2hhbmdpbmcgaXNQYWNrYWdlIHByb3BlcnR5IG9mIGRlcGxveWVkIGFwcCB0byAndHJ1ZScpXG4gICAgICB0aGlzLmFyY2hpdmVzID0gdGhpcy5hcmNoaXZlcy5maWx0ZXIoKGFyY2hpdmU6IElBcHBsaWNhdGlvbkJpbmFyeSkgPT4gISFhcmNoaXZlLmRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5hcmNoaXZlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gKG5ldyBEYXRlKGIuY3JlYXRlZCkgYXMgYW55KSAtIChuZXcgRGF0ZShhLmNyZWF0ZWQpIGFzIGFueSk7XG4gICAgfSk7XG4gICAgdGhpcy5sYXN0ID0gdGhpcy5hcmNoaXZlc1t0aGlzLmFyY2hpdmVzLmxlbmd0aCAtIDFdO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGwgYmctbGV2ZWwtMSBmbGV4LWdyb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgb3ZlcmZsb3ctdmlzaWJsZVwiPlxuICAgIDxjOHktbGlzdC1ncm91cD5cbiAgICAgIDxjOHktbGktdGltZWxpbmUgKm5nRm9yPVwibGV0IGFyY2hpdmUgb2YgYXJjaGl2ZXNcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXNBY3RpdmUoYXJjaGl2ZSkgfVwiPlxuICAgICAgICB7eyBhcmNoaXZlLmNyZWF0ZWQgfCBkYXRlOiAnZCBNTU0gWVlZWScgfX1cbiAgICAgICAge3sgYXJjaGl2ZS5jcmVhdGVkIHwgZGF0ZTogJ3Nob3J0VGltZScgfX1cbiAgICAgICAgPGM4eS1saT5cbiAgICAgICAgICA8Yzh5LWxpLWljb25cbiAgICAgICAgICAgIFtpY29uXT1cImNoZWNrSWZMYXN0KGFyY2hpdmUpID8gJ2ZsYWctY2hlY2tlcmVkJyA6ICdmaWxlLXppcC1vJ1wiXG4gICAgICAgICAgPjwvYzh5LWxpLWljb24+XG4gICAgICAgICAgPGM4eS1saS1ib2R5PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktc3RhcnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDogMDsgZmxleDogMVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZS13cmFwXCIgdGl0bGU9XCIge3sgYXJjaGl2ZS5kZXNjcmlwdGlvbiB8fCBhcmNoaXZlLm5hbWUgfX1cIj5cbiAgICAgICAgICAgICAgICAgIHt7IGFyY2hpdmUuZGVzY3JpcHRpb24gfHwgYXJjaGl2ZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImFyY2hpdmUuZGVzY3JpcHRpb25cIiBjbGFzcz1cInRleHQtbXV0ZWRcIj57e1xuICAgICAgICAgICAgICAgICAgYXJjaGl2ZS5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0xvYWRpbmcgJiYgdG9BY3RpdmF0ZShhcmNoaXZlKVwiXG4gICAgICAgICAgICAgICAgW2M4eUljb25dPVwiJ2NpcmNsZS1vLW5vdGNoJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLXNwaW5cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FjdGl2YXRpbmcnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgPjwvaT5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQWN0aXZlKGFyY2hpdmUpXCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1wcmltYXJ5IG0tbC1hdXRvIG0tdC00XCI+e3tcbiAgICAgICAgICAgICAgICAnQWN0aXZlJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYzh5LWxpLWJvZHk+XG4gICAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmUoYXJjaGl2ZSlcIlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNBZG1pblBlcm1pc3Npb25zICYmICFpc0xvYWRpbmcgJiYgIWlzQWN0aXZlKGFyY2hpdmUpXCJcbiAgICAgICAgICAgIGljb249XCJjaGVjay1zcXVhcmUtb1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ1NldCBhcyBhY3RpdmVgYXJjaGl2ZWAnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9jOHktbGktYWN0aW9uPlxuICAgICAgICAgIDxjOHktbGktYWN0aW9uIChjbGljayk9XCJkb3dubG9hZEFyY2hpdmUoYXJjaGl2ZSlcIiBpY29uPVwiZG93bmxvYWRcIj5cbiAgICAgICAgICAgIHt7ICdEb3dubG9hZGBhcmNoaXZlYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2M4eS1saS1hY3Rpb24+XG4gICAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVBcmNoaXZlKGFyY2hpdmUpXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGhhc0FkbWluUGVybWlzc2lvbnMgJiZcbiAgICAgICAgICAgICAgYXJjaGl2ZXMubGVuZ3RoID4gMSAmJlxuICAgICAgICAgICAgICAhY2hlY2tJZkxhc3QoYXJjaGl2ZSkgJiZcbiAgICAgICAgICAgICAgIWlzQWN0aXZlKGFyY2hpdmUpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0RlbGV0ZWBhcmNoaXZlYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2M4eS1saS1hY3Rpb24+XG4gICAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAgIChjbGljayk9XCJyZWFjdGl2YXRlQXJjaGl2ZSgpXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQWRtaW5QZXJtaXNzaW9ucyAmJiBjYW5SZWFjdGl2YXRlICYmIGlzQWN0aXZlKGFyY2hpdmUpXCJcbiAgICAgICAgICAgIGljb249XCJ1bmRvXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnUmVhY3RpdmF0ZSBhcmNoaXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYzh5LWxpLWFjdGlvbj5cbiAgICAgICAgPC9jOHktbGk+XG4gICAgICA8L2M4eS1saS10aW1lbGluZT5cbiAgICA8L2M4eS1saXN0LWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCIgKm5nSWY9XCIhaXNMb2FkaW5nICYmIGhhc0FkbWluUGVybWlzc2lvbnNcIj5cbiAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1hdXRvXCI+XG4gICAgPGM4eS11cGxvYWQtYXJjaGl2ZSBbKGFwcGxpY2F0aW9uKV09XCJhcHBsaWNhdGlvblwiIChyZWZyZXNoKT1cIm9uUmVmcmVzaCgpXCI+PC9jOHktdXBsb2FkLWFyY2hpdmU+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG48L2Rpdj5cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hY3Rpdml0eS1sb2cvYWN0aXZpdHktbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFNeEUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQixZQUFvQixnQkFBa0MsRUFBVSxZQUEwQjtRQUF0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFQakYsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLGFBQVEsR0FBeUIsRUFBRSxDQUFDO1FBSXBDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXVFLENBQUM7SUFFOUYsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUEyQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsS0FB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Q3pCLENBQUM7OEdBakZVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDRJQ1ZqQyw4MEZBdUVBOzsyRkQ3RGEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjtnSEFJbkIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbiwgSUFwcGxpY2F0aW9uQmluYXJ5IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYWN0aXZpdHktbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2aXR5LWxvZy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlMb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSBoYXNBZG1pblBlcm1pc3Npb25zID0gZmFsc2U7XG4gIGFyY2hpdmVzOiBJQXBwbGljYXRpb25CaW5hcnlbXSA9IFtdO1xuICB0b0FjdGl2YXRlVmVyc2lvbklkOiBzdHJpbmc7XG4gIGxhc3Q6IElBcHBsaWNhdGlvbkJpbmFyeTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBjYW5SZWFjdGl2YXRlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLCBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlKSB7fVxuXG4gIGdldCB1cGxvYWRQcm9ncmVzcygpOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuZWNvc3lzdGVtU2VydmljZS5wcm9ncmVzcztcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2FuUmVhY3RpdmF0ZSA9IHRoaXMuc2hvd1JlYWN0aXZhdGUoKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGlzQWN0aXZlKGFyY2hpdmU6IElBcHBsaWNhdGlvbkJpbmFyeSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uLmFjdGl2ZVZlcnNpb25JZCA9PT0gYXJjaGl2ZS5pZDtcbiAgfVxuXG4gIHRvQWN0aXZhdGUoYXJjaGl2ZTogSUFwcGxpY2F0aW9uQmluYXJ5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9BY3RpdmF0ZVZlcnNpb25JZCA9PT0gYXJjaGl2ZS5pZDtcbiAgfVxuXG4gIGNoZWNrSWZMYXN0KGFyY2hpdmU6IElBcHBsaWNhdGlvbkJpbmFyeSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhcmNoaXZlLmlkID09PSB0aGlzLmxhc3QuaWQ7XG4gIH1cblxuICBzaG93UmVhY3RpdmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzQXBwbGljYXRpb24odGhpcy5hcHBsaWNhdGlvbik7XG4gIH1cblxuICBhc3luYyBzZXRBY3RpdmUoYXJjaGl2ZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlkID0gYXJjaGl2ZS5pZCB8fCBhcmNoaXZlO1xuICAgIHRoaXMudG9BY3RpdmF0ZVZlcnNpb25JZCA9IGlkO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbiA9IChcbiAgICAgICAgYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLnNldEFwcEFjdGl2ZVZlcnNpb24odGhpcy5hcHBsaWNhdGlvbiwgaWQpXG4gICAgICApLmRhdGE7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZFNlcnZlckZhaWx1cmUoZXgpO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQXJjaGl2ZShhcmNoaXZlOiBJQXBwbGljYXRpb25CaW5hcnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZGVsZXRlQXJjaGl2ZShhcmNoaXZlLCB0aGlzLmFwcGxpY2F0aW9uKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkQXJjaGl2ZShhcmNoaXZlOiBJQXBwbGljYXRpb25CaW5hcnkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZG93bmxvYWRBcmNoaXZlKHRoaXMuYXBwbGljYXRpb24sIGFyY2hpdmUpO1xuICB9XG5cbiAgYXN5bmMgcmVhY3RpdmF0ZUFyY2hpdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLnJlYWN0aXZhdGVBcmNoaXZlKHRoaXMuYXBwbGljYXRpb24pO1xuICB9XG5cbiAgYXN5bmMgb25SZWZyZXNoKCkge1xuICAgIGF3YWl0IHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWZyZXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmFyY2hpdmVzID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmxpc3RBcmNoaXZlcyh0aGlzLmFwcGxpY2F0aW9uLmlkKTtcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbi5tYW5pZmVzdD8ucGFja2FnZSA9PT0gJ2JsdWVwcmludCcpIHtcbiAgICAgIC8vIGZpbHRlciBvdXQgZW50cmllcyB3aXRob3V0IGRlc2NyaXB0aW9uIGJlY2F1c2UgdXNpbmcgdGhlbSBhcyBhY3RpdmUgbWF5IGJyZWFrIGFwcGxpY2F0aW9uJ3NcbiAgICAgIC8vICBtYW5pZmVzdCAoY2hhbmdpbmcgaXNQYWNrYWdlIHByb3BlcnR5IG9mIGRlcGxveWVkIGFwcCB0byAndHJ1ZScpXG4gICAgICB0aGlzLmFyY2hpdmVzID0gdGhpcy5hcmNoaXZlcy5maWx0ZXIoKGFyY2hpdmU6IElBcHBsaWNhdGlvbkJpbmFyeSkgPT4gISFhcmNoaXZlLmRlc2NyaXB0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5hcmNoaXZlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gKG5ldyBEYXRlKGIuY3JlYXRlZCkgYXMgYW55KSAtIChuZXcgRGF0ZShhLmNyZWF0ZWQpIGFzIGFueSk7XG4gICAgfSk7XG4gICAgdGhpcy5sYXN0ID0gdGhpcy5hcmNoaXZlc1t0aGlzLmFyY2hpdmVzLmxlbmd0aCAtIDFdO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbm5lci1zY3JvbGwgYmctbGV2ZWwtMSBmbGV4LWdyb3cgaW5uZXItc2Nyb2xsLS1tZCBvdmVyZmxvdy12aXNpYmxlLXNtIG92ZXJmbG93LXZpc2libGUteHNcIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgb3ZlcmZsb3ctdmlzaWJsZVwiPlxuICAgIDxjOHktbGlzdC1ncm91cD5cbiAgICAgIDxjOHktbGktdGltZWxpbmUgKm5nRm9yPVwibGV0IGFyY2hpdmUgb2YgYXJjaGl2ZXNcIiBbbmdDbGFzc109XCJ7IGFjdGl2ZTogaXNBY3RpdmUoYXJjaGl2ZSkgfVwiPlxuICAgICAgICB7eyBhcmNoaXZlLmNyZWF0ZWQgfCBkYXRlOiAnZCBNTU0gWVlZWScgfX1cbiAgICAgICAge3sgYXJjaGl2ZS5jcmVhdGVkIHwgZGF0ZTogJ3Nob3J0VGltZScgfX1cbiAgICAgICAgPGM4eS1saT5cbiAgICAgICAgICA8Yzh5LWxpLWljb25cbiAgICAgICAgICAgIFtpY29uXT1cImNoZWNrSWZMYXN0KGFyY2hpdmUpID8gJ2ZsYWctY2hlY2tlcmVkJyA6ICdmaWxlLXppcC1vJ1wiXG4gICAgICAgICAgPjwvYzh5LWxpLWljb24+XG4gICAgICAgICAgPGM4eS1saS1ib2R5PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktc3RhcnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1pbi13aWR0aDogMDsgZmxleDogMVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZS13cmFwXCIgdGl0bGU9XCIge3sgYXJjaGl2ZS5kZXNjcmlwdGlvbiB8fCBhcmNoaXZlLm5hbWUgfX1cIj5cbiAgICAgICAgICAgICAgICAgIHt7IGFyY2hpdmUuZGVzY3JpcHRpb24gfHwgYXJjaGl2ZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImFyY2hpdmUuZGVzY3JpcHRpb25cIiBjbGFzcz1cInRleHQtbXV0ZWRcIj57e1xuICAgICAgICAgICAgICAgICAgYXJjaGl2ZS5kZXNjcmlwdGlvblxuICAgICAgICAgICAgICAgIH19PC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpc0xvYWRpbmcgJiYgdG9BY3RpdmF0ZShhcmNoaXZlKVwiXG4gICAgICAgICAgICAgICAgW2M4eUljb25dPVwiJ2NpcmNsZS1vLW5vdGNoJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLXNwaW5cIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ0FjdGl2YXRpbmcnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgICAgPjwvaT5cblxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQWN0aXZlKGFyY2hpdmUpXCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1wcmltYXJ5IG0tbC1hdXRvIG0tdC00XCI+e3tcbiAgICAgICAgICAgICAgICAnQWN0aXZlJyB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYzh5LWxpLWJvZHk+XG4gICAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAgIChjbGljayk9XCJzZXRBY3RpdmUoYXJjaGl2ZSlcIlxuICAgICAgICAgICAgKm5nSWY9XCJoYXNBZG1pblBlcm1pc3Npb25zICYmICFpc0xvYWRpbmcgJiYgIWlzQWN0aXZlKGFyY2hpdmUpXCJcbiAgICAgICAgICAgIGljb249XCJjaGVjay1zcXVhcmUtb1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ1NldCBhcyBhY3RpdmVgYXJjaGl2ZWAnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9jOHktbGktYWN0aW9uPlxuICAgICAgICAgIDxjOHktbGktYWN0aW9uIChjbGljayk9XCJkb3dubG9hZEFyY2hpdmUoYXJjaGl2ZSlcIiBpY29uPVwiZG93bmxvYWRcIj5cbiAgICAgICAgICAgIHt7ICdEb3dubG9hZGBhcmNoaXZlYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2M4eS1saS1hY3Rpb24+XG4gICAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVBcmNoaXZlKGFyY2hpdmUpXCJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGhhc0FkbWluUGVybWlzc2lvbnMgJiZcbiAgICAgICAgICAgICAgYXJjaGl2ZXMubGVuZ3RoID4gMSAmJlxuICAgICAgICAgICAgICAhY2hlY2tJZkxhc3QoYXJjaGl2ZSkgJiZcbiAgICAgICAgICAgICAgIWlzQWN0aXZlKGFyY2hpdmUpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgaWNvbj1cImRlbGV0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0RlbGV0ZWBhcmNoaXZlYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2M4eS1saS1hY3Rpb24+XG4gICAgICAgICAgPGM4eS1saS1hY3Rpb25cbiAgICAgICAgICAgIChjbGljayk9XCJyZWFjdGl2YXRlQXJjaGl2ZSgpXCJcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQWRtaW5QZXJtaXNzaW9ucyAmJiBjYW5SZWFjdGl2YXRlICYmIGlzQWN0aXZlKGFyY2hpdmUpXCJcbiAgICAgICAgICAgIGljb249XCJ1bmRvXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyAnUmVhY3RpdmF0ZSBhcmNoaXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYzh5LWxpLWFjdGlvbj5cbiAgICAgICAgPC9jOHktbGk+XG4gICAgICA8L2M4eS1saS10aW1lbGluZT5cbiAgICA8L2M4eS1saXN0LWdyb3VwPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCIgKm5nSWY9XCIhaXNMb2FkaW5nICYmIGhhc0FkbWluUGVybWlzc2lvbnNcIj5cbiAgPGM4eS1mb3JtLWdyb3VwIGNsYXNzPVwibS1hdXRvXCI+XG4gICAgPGM4eS11cGxvYWQtYXJjaGl2ZSBbKGFwcGxpY2F0aW9uKV09XCJhcHBsaWNhdGlvblwiIChyZWZyZXNoKT1cIm9uUmVmcmVzaCgpXCI+PC9jOHktdXBsb2FkLWFyY2hpdmU+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG48L2Rpdj5cbiJdfQ==
@@ -1209,7 +1209,7 @@ class DatapointSelectionListComponent {
1209
1209
  useExisting: forwardRef(() => DatapointSelectionListComponent),
1210
1210
  multi: true
1211
1211
  }
1212
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-header separator sticky-top bg-component\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { 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: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: DatapointSelectorListItemComponent, selector: "c8y-datapoint-selector-list-item", inputs: ["defaultFormOptions", "isSelected", "isCollapsed", "showAddRemoveButton", "editable", "showActiveToggle", "activeToggleDisabled", "showOptions", "datapointLibraryEntries", "actions", "optionToRemove", "hasUnlinkTemplateOption", "colorPickerDisabled", "disableTypeaheadIfSelected", "highlightText"], outputs: ["added", "removed"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
1212
+ ], usesOnChanges: true, ngImport: i0, template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: i2.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { 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: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i2.ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: DatapointSelectorListItemComponent, selector: "c8y-datapoint-selector-list-item", inputs: ["defaultFormOptions", "isSelected", "isCollapsed", "showAddRemoveButton", "editable", "showActiveToggle", "activeToggleDisabled", "showOptions", "datapointLibraryEntries", "actions", "optionToRemove", "hasUnlinkTemplateOption", "colorPickerDisabled", "disableTypeaheadIfSelected", "highlightText"], outputs: ["added", "removed"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
1213
1213
  }
1214
1214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: DatapointSelectionListComponent, decorators: [{
1215
1215
  type: Component,
@@ -1224,7 +1224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
1224
1224
  useExisting: forwardRef(() => DatapointSelectionListComponent),
1225
1225
  multi: true
1226
1226
  }
1227
- ], template: "<div class=\"card-header separator sticky-top bg-component\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n" }]
1227
+ ], template: "<div class=\"card-header separator sticky-top bg-inherit\">\n <span\n class=\"card-title h4\"\n *ngIf=\"listTitle\"\n >\n {{ listTitle | translate }}\n </span>\n <span\n class=\"card-title h4\"\n *ngIf=\"!listTitle\"\n >\n {{ 'Data points' | translate }}\n </span>\n</div>\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowDragAndDrop || formArray.controls?.length < 2\"\n>\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.minActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.minActiveCount\"\n >\n At least {{ minActive }} active data points must be selected.\n </div>\n\n <div\n class=\"alert alert-warning m-t-8\"\n role=\"alert\"\n ngNonBindable\n *ngIf=\"formArray.errors?.maxActiveCount\"\n translate\n [translateParams]=\"formArray.errors?.maxActiveCount\"\n >\n At maximum {{ maxActive }} active data points are allowed to be selected.\n </div>\n\n <ng-content select=\".alert\"></ng-content>\n\n <div\n class=\"p-t-8\"\n *ngIf=\"!formArray.controls?.length\"\n >\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"'c8y-data-points'\"\n [title]=\"'No data points to display.' | translate\"\n [subtitle]=\"'Add your first data point.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </div>\n <div\n [formGroup]=\"dpForm\"\n *ngFor=\"let dpForm of formArray.controls; let index = index\"\n >\n <c8y-datapoint-selector-list-item\n class=\"d-block\"\n [defaultFormOptions]=\"defaultFormOptions\"\n [activeToggleDisabled]=\"maxActiveCountReached\"\n [showActiveToggle]=\"true\"\n [showAddRemoveButton]=\"false\"\n [showOptions]=\"true\"\n [editable]=\"true\"\n [colorPickerDisabled]=\"false\"\n [actions]=\"actions\"\n [optionToRemove]=\"true\"\n [datapointLibraryEntries]=\"datapointLibraryEntries\"\n [hasUnlinkTemplateOption]=\"true\"\n formControlName=\"details\"\n (removed)=\"onItemRemoved(index)\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n </c8y-datapoint-selector-list-item>\n </div>\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"'Add data point' | translate\"\n type=\"button\"\n data-cy=\"c8y-datapoint-selection-list--add-datapoint-button\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add data point' | translate }}\n </button>\n</div>\n" }]
1228
1228
  }], ctorParameters: () => [{ type: DatapointSelectorService }, { type: DatapointLibraryService }, { type: i4.FormBuilder }, { type: i4$2.WidgetConfigComponent, decorators: [{
1229
1229
  type: Optional
1230
1230
  }] }], propDecorators: { actions: [{