@c8y/ngx-components 1021.22.113 → 1021.22.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/user/user-edit-modal.component.d.ts.map +1 -1
- package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
- package/esm2022/core/user/user-edit-modal.component.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +1 -1
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/locales.pot +5 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-edit-modal.component.d.ts","sourceRoot":"","sources":["../../../core/user/user-edit-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,SAAS,EACT,WAAW,EAEX,KAAK,EAEL,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;;AAExF,qBAIa,sBAAuB,YAAW,MAAM;IAW1C,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,WAAW;IACjB,EAAE,EAAE,eAAe;IAC1B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,sBAAsB;IAtBhC,WAAW,EAAE,KAAK,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,UAAS;IAChB,4BAA4B,UAAS;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,2CAA2C,EAAE,OAAO,CAAC;IACrD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gCAAgC,EAAE,OAAO,CAAC;gBAGjC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,eAAe,EAClB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,sBAAsB,EACvC,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB;IAGlD,QAAQ;IAKd;;;;;;;;OAQG;IACG,kCAAkC;IAiBlC,SAAS;IAIf,qBAAqB,CAAC,SAAS,EAAE,OAAO;IAIxC,gCAAgC,CAAC,SAAS,EAAE,OAAO;IAI7C,cAAc,CAAC,IAAI,KAAA;
|
|
1
|
+
{"version":3,"file":"user-edit-modal.component.d.ts","sourceRoot":"","sources":["../../../core/user/user-edit-modal.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EACL,SAAS,EACT,WAAW,EAEX,KAAK,EAEL,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;;AAExF,qBAIa,sBAAuB,YAAW,MAAM;IAW1C,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,WAAW;IACjB,EAAE,EAAE,eAAe;IAC1B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,sBAAsB;IAtBhC,WAAW,EAAE,KAAK,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,UAAS;IAChB,4BAA4B,UAAS;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,2CAA2C,EAAE,OAAO,CAAC;IACrD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gCAAgC,EAAE,OAAO,CAAC;gBAGjC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,eAAe,EAClB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,sBAAsB,EACvC,eAAe,EAAE,YAAY,EAC7B,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,sBAAsB,EAAE,sBAAsB;IAGlD,QAAQ;IAKd;;;;;;;;OAQG;IACG,kCAAkC;IAiBlC,SAAS;IAIf,qBAAqB,CAAC,SAAS,EAAE,OAAO;IAIxC,gCAAgC,CAAC,SAAS,EAAE,OAAO;IAI7C,cAAc,CAAC,IAAI,KAAA;IAqCnB,0BAA0B;YAmBlB,8BAA8B;IAK5C;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAUvC;;;;;OAKG;YACW,oBAAoB;YAWpB,oBAAoB;IAKlC,OAAO,CAAC,iBAAiB;yCAxKd,sBAAsB;2CAAtB,sBAAsB;CAgLlC"}
|
|
@@ -144,11 +144,11 @@ export class AlarmsTypeFilterComponent {
|
|
|
144
144
|
return activeFilters.map(filter => filter.filters.type).join(',');
|
|
145
145
|
}
|
|
146
146
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, deps: [{ token: i1.AlarmEventSelectorService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.ColorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
147
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong
|
|
147
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong translate>The list below may not be complete.</strong>\n </p>\n <p translate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i5.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i5.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.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: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i3.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i3.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: i8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i9.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
148
148
|
}
|
|
149
149
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, decorators: [{
|
|
150
150
|
type: Component,
|
|
151
|
-
args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong
|
|
151
|
+
args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong translate>The list below may not be complete.</strong>\n </p>\n <p translate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n" }]
|
|
152
152
|
}], ctorParameters: () => [{ type: i1.AlarmEventSelectorService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.ColorService }], propDecorators: { alarms: [{
|
|
153
153
|
type: Input
|
|
154
154
|
}], possibleFilters: [{
|
|
@@ -158,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
158
158
|
}], onFilterChanged: [{
|
|
159
159
|
type: Output
|
|
160
160
|
}] } });
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMtdHlwZS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy10eXBlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBZ0IseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyx5QkFBeUI7SUFzQnBDLFlBQ1UseUJBQW9ELEVBQ3BELGNBQThCLEVBQzlCLE1BQWMsRUFDZCxZQUEwQjtRQUgxQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFyQnBDLG9CQUFlLEdBQW1CLEVBQUUsQ0FBQztRQUdyQyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFHbkMsb0JBQWUsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBQ3RDLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUVqQixtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUM5Qix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUV6QyxhQUFRLEdB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LENBQUMsR0FBRyxnQ0FBZ0MsRUFBRSxHQUFHLGtDQUFrQyxDQUFDLEVBQzVFLGVBQWUsQ0FDaEIsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVPLHVDQUF1QyxDQUM3QyxZQUE0QixFQUM1QixnQkFBZ0IsR0FBRyxFQUFFO1FBRXJCLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLGFBQTZCO1FBQ2xELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBakxVLHlCQUF5QjtrR0FBekIseUJBQXlCLHNPQ3BCdEMsKzZMQTRLQTs7MkZEeEphLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7MktBS2xDLE1BQU07c0JBREwsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQWxhcm0sIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29sb3JTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybURldGFpbHMsIEFsYXJtRXZlbnRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtLWV2ZW50LXNlbGVjdG9yJztcbmltcG9ydCB7IG1hcCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybXMtdHlwZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNUeXBlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGFsYXJtczogSVJlc3VsdExpc3Q8SUFsYXJtPjtcblxuICBASW5wdXQoKVxuICBwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdID0gW107XG5cbiAgQElucHV0KClcbiAgYWN0aXZlRmlsdGVyczogQWxhcm1EZXRhaWxzW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25GaWx0ZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QWxhcm1EZXRhaWxzW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGN1c3RvbUFsYXJtVHlwZXM6IEFsYXJtRGV0YWlsc1tdID0gW107XG4gIGN1c3RvbUFsYXJtVHlwZUlucHV0ID0gJyc7XG5cbiAgcmVhZG9ubHkgcXVlcnlQYXJhbU5hbWUgPSAndHlwZUZpbHRlcic7XG4gIHJlYWRvbmx5IFNUT1JBR0VfQUNDRVNTX0tFWSA9ICdjdXN0b21BbGFybVR5cGVzJztcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50UXVlcnlQYXJhbSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxhcm1FdmVudFNlbGVjdG9yU2VydmljZTogQWxhcm1FdmVudFNlbGVjdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29sb3JTZXJ2aWNlOiBDb2xvclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UXVlcnlQYXJhbWV0ZXJPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNoYW5nZXMuYWxhcm1zICYmIGNoYW5nZXMuYWxhcm1zLmN1cnJlbnRWYWx1ZSAmJiB0aGlzLmFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFBvc3NpYmxlRmlsdGVycygpO1xuICAgICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFF1ZXJ5UGFyYW1ldGVyT2JzZXJ2YWJsZSgpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHBhcmFtcyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxhcm1zOiBBbGFybURldGFpbHNbXSA9IHRoaXMucG9zc2libGVGaWx0ZXJzO1xuICAgICAgICAgIGNvbnN0IHBvc3NpYmxlRmlsdGVycyA9IHRoaXMuc2V0QWN0aXZlQWxhcm1GaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1ldGVyKFxuICAgICAgICAgICAgYWxhcm1zLFxuICAgICAgICAgICAgcGFyYW1zW3RoaXMucXVlcnlQYXJhbU5hbWVdXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKSA9PiB7XG4gICAgICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyQ2hhbmdlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGU6IEFsYXJtRGV0YWlscykge1xuICAgIGFsYXJtVHlwZS5fX2FjdGl2ZSA9ICFhbGFybVR5cGUuX19hY3RpdmU7XG4gIH1cblxuICBkZXNlbGVjdCh0eXBlOiBBbGFybURldGFpbHMpIHtcbiAgICBjb25zdCBhbGFybUZpbHRlciA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbmQoXG4gICAgICBhbGFybSA9PiBhbGFybS5maWx0ZXJzLnR5cGUgPT09IHR5cGUuZmlsdGVycy50eXBlXG4gICAgKTtcbiAgICBhbGFybUZpbHRlci5fX2FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIGRlc2VsZWN0QWxsKCkge1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gdGhpcy5wb3NzaWJsZUZpbHRlcnMubWFwKGFsYXJtID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFsYXJtLFxuICAgICAgICBfX2FjdGl2ZTogZmFsc2VcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXJDaGFuZ2UoKSB7XG4gICAgY29uc3QgYWN0aXZlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcihcbiAgICAgIChhbGFybUZpbHRlcjogQWxhcm1EZXRhaWxzKSA9PiBhbGFybUZpbHRlci5fX2FjdGl2ZVxuICAgICk7XG4gICAgY29uc3QgbmV3UXVlcnlQYXJhbSA9IHRoaXMuZ2V0UXVlcnlQYXJhbXMoYWN0aXZlcyk7XG4gICAgY29uc3QgaGFzQ2hhbmdlZCA9IG5ld1F1ZXJ5UGFyYW0gIT09IHRoaXMuY3VycmVudFF1ZXJ5UGFyYW07XG4gICAgaWYgKGhhc0NoYW5nZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVycyA9IGFjdGl2ZXM7XG4gICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHRoaXMuYWN0aXZlRmlsdGVycyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIHR5cGVGaWx0ZXI6IG5ld1F1ZXJ5UGFyYW0gfHwgbnVsbFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VycmVudFF1ZXJ5UGFyYW0gPSBuZXdRdWVyeVBhcmFtO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy5mb3JFYWNoKHBvc3NpYmxlRmlsdGVyID0+IHtcbiAgICAgIHBvc3NpYmxlRmlsdGVyLl9fYWN0aXZlID0gdGhpcy5hY3RpdmVGaWx0ZXJzLnNvbWUoXG4gICAgICAgIChhY3RpdmVGaWx0ZXI6IEFsYXJtRGV0YWlscykgPT4gYWN0aXZlRmlsdGVyID09PSBwb3NzaWJsZUZpbHRlclxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUN1c3RvbUFsYXJtKGFsYXJtRGV0YWlsczogQWxhcm1EZXRhaWxzKSB7XG4gICAgdGhpcy5wb3NzaWJsZUZpbHRlcnMgPSB0aGlzLnBvc3NpYmxlRmlsdGVycy5maWx0ZXIoZmlsdGVyID0+IGZpbHRlciAhPT0gYWxhcm1EZXRhaWxzKTtcbiAgICB0aGlzLnN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpO1xuICB9XG5cbiAgY29uZmlybVdpdGhFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuYWRkQ3VzdG9tQWxhcm1UeXBlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkQ3VzdG9tQWxhcm1UeXBlKCkge1xuICAgIGlmICghdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy51bnNoaWZ0KHtcbiAgICAgIGxhYmVsOiB0aGlzLmN1c3RvbUFsYXJtVHlwZUlucHV0LFxuICAgICAgY29sb3I6IGF3YWl0IHRoaXMuY29sb3JTZXJ2aWNlLmdlbmVyYXRlQ29sb3IodGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCksXG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHR5cGU6IHRoaXMuY3VzdG9tQWxhcm1UeXBlSW5wdXRcbiAgICAgIH0sXG4gICAgICB0aW1lbGluZVR5cGU6ICdBTEFSTScsXG4gICAgICBfX2FjdGl2ZTogdHJ1ZSxcbiAgICAgIF9fdGFyZ2V0OiBudWxsXG4gICAgfSk7XG4gICAgdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCA9ICcnO1xuICAgIHRoaXMuc3RvcmVDdXN0b21BbGFybVR5cGVzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpIHtcbiAgICBjb25zdCBjdXN0b21UeXBlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcigoZmlsdGVyOiBBbGFybURldGFpbHMpID0+ICFmaWx0ZXIuX190YXJnZXQpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNUT1JBR0VfQUNDRVNTX0tFWSwgSlNPTi5zdHJpbmdpZnkoY3VzdG9tVHlwZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VzdG9tQWxhcm1UeXBlRnJvbVN0b3JhZ2UoKSB7XG4gICAgY29uc3QgdHlwZXMgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0FDQ0VTU19LRVkpO1xuICAgIHJldHVybiB0eXBlcyA/IEpTT04ucGFyc2UodHlwZXMpIDogW107XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFBvc3NpYmxlRmlsdGVycygpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMucXVlcnlQYXJhbU5hbWUpO1xuICAgIGNvbnN0IGFsYXJtVHlwZXNGcm9tQ3VycmVudGx5U2hvd25BbGFybXMgPVxuICAgICAgYXdhaXQgdGhpcy5hbGFybUV2ZW50U2VsZWN0b3JTZXJ2aWNlLmdldFVuaXF1ZUFsYXJtc09ubHkodGhpcy5hbGFybXMuZGF0YSk7XG4gICAgY29uc3QgY3VzdG9tQWxhcm1UeXBlc0Zyb21Mb2NhbFN0b3JhZ2UgPSB0aGlzLmdldEN1c3RvbUFsYXJtVHlwZUZyb21TdG9yYWdlKCk7XG4gICAgY29uc3Qgc2VsZWN0YWJsZUFsYXJtVHlwZXMgPSB0aGlzLnNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICAgIFsuLi5jdXN0b21BbGFybVR5cGVzRnJvbUxvY2FsU3RvcmFnZSwgLi4uYWxhcm1UeXBlc0Zyb21DdXJyZW50bHlTaG93bkFsYXJtc10sXG4gICAgICBxdWVyeVBhcmFtZXRlcnNcbiAgICApO1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gc2VsZWN0YWJsZUFsYXJtVHlwZXM7XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICBhbGFybUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdLFxuICAgIGZpbHRlclR5cGVzUXVlcnkgPSAnJ1xuICApOiBBbGFybURldGFpbHNbXSB7XG4gICAgY29uc3QgdHlwZXMgPSAoZmlsdGVyVHlwZXNRdWVyeSA/PyAnJykuc3BsaXQoJywnKTtcbiAgICByZXR1cm4gYWxhcm1GaWx0ZXJzLm1hcCgoYWxhcm06IEFsYXJtRGV0YWlscykgPT4gKHtcbiAgICAgIC4uLmFsYXJtLFxuICAgICAgX19hY3RpdmU6IHR5cGVzLmluY2x1ZGVzKGFsYXJtLmZpbHRlcnMudHlwZSlcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1zKGFjdGl2ZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aXZlRmlsdGVycy5tYXAoZmlsdGVyID0+IGZpbHRlci5maWx0ZXJzLnR5cGUpLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICB0aXRsZT1cInt7ICdGaWx0ZXIgYnkgQWxhcm0gdHlwZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBkcm9wZG93blxuICAgICNmaWx0ZXJzRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJmaWx0ZXJzRHJvcGRvd24uaXNPcGVuXCJcbiAgICAob25IaWRkZW4pPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBmaXQtd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCBkLWZsZXggYS1pLWNlbnRlciBpbm5lci1zY3JvbGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBhbGxUeXBlc1wiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRhZyB0YWctLWluZm8gY2hpcFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGFjdGl2ZUZpbHRlcnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1jbGVhbiB0ZXh0LTEwXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkZXNlbGVjdChmaWx0ZXIpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZS1pY29uLXdyYXBwZXIgY2lyY2xlLWljb24td3JhcHBlci0tc21hbGxcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogZmlsdGVyLmNvbG9yIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3Ryb2tlZC1pY29uXCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiYmVsbFwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7eyBmaWx0ZXIuZmlsdGVycy50eXBlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhbGxUeXBlcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+XG4gICAgICAgICAgICB7eyAnQWxsIGFsYXJtIHR5cGVzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0biBpbnB1dC1ncm91cC1idG4tLWxhc3QgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWRlZmF1bHQgYnRuXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0NsZWFyIGZpbHRlcnMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVzZWxlY3RBbGwoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjOHlJY29uPVwidGltZXNcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4tZGVmYXVsdCBidG4gYnRuLS1jYXJldFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidBbGFybSB0eXBlcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm0tdHlwZS1maWx0ZXJcIlxuICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImNhcmV0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LWFjdGlvbi1iYXJcIlxuICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IHVuc2V0OyBtaW4td2lkdGg6IDI1MHB4XCJcbiAgICAgICpkcm9wZG93bk1lbnVcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0xNiBiZy1sZXZlbC0yXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtaW5mbyBtLXItNFwiXG4gICAgICAgICAgICAgIFtjOHlJY29uXT1cIidpbmZvLWNpcmNsZSdcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDxzdHJvbmcgdGFuc2xhdGU+VGhlIGxpc3QgYmVsb3cgbWF5IG5vdCBiZSBjb21wbGV0ZS48L3N0cm9uZz5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgdGFuc2xhdGU+XG4gICAgICAgICAgICBSZWNlbnQgYWxhcm1zIGFyZSBkaXNwbGF5ZWQgYmVsb3cuIFBhc3QgYWxhcm1zIG1pZ2h0IG5vdCBiZSBzaG93bi4gT3B0aW9uYWxseSB5b3UgY2FuXG4gICAgICAgICAgICBhZGQgYSBjdXN0b20gYWxhcm0uXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGM4eS1saXN0LWdyb3VwPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgcC10LTE2IHAtYi0xNiBwLXItMzIgcC1sLTMyIHNlcGFyYXRvci1ib3R0b21cIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiJ0N1c3RvbSBhbGFybSB0eXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbUFsYXJtVHlwZUlucHV0XCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImNvbmZpcm1XaXRoRW50ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWRvdCB0ZXh0LXByaW1hcnlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBZGQgY3VzdG9tIGFsYXJtJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHRvb2x0aXA9XCInQWRkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkQ3VzdG9tQWxhcm1UeXBlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwicGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGM4eS1saVxuICAgICAgICAgIGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbGxhcHNlLS1jb250YWluZXItc21hbGwgY2RrLWRyYWdcIlxuICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYWxhcm1UeXBlIG9mIHBvc3NpYmxlRmlsdGVyc1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGUpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxjOHktbGktY2hlY2tib3hcbiAgICAgICAgICAgIGNsYXNzPVwiYS1zLWNlbnRlciBtLXQtNCBwLXItMCBwLWwtMFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiYWxhcm1UeXBlLl9fYWN0aXZlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVBbGFybVR5cGUoYWxhcm1UeXBlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICA+PC9jOHktbGktY2hlY2tib3g+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIHAtbC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LWxpc3RfX2l0ZW1fX2NvbG9ycGlja2VyIHAtdC0wIHAtYi0wIHAtbC0wXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjOHktY29sb3JwaWNrZXIgYzh5LWNvbG9ycGlja2VyLS1hbGFybVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZS1pY29uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IGFsYXJtVHlwZS5jb2xvciB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0cm9rZWQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjOHlJY29uXT1cIidiZWxsJ1wiXG4gICAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10cnVuY2F0ZSB0ZXh0LTEyIGZsZXgtZ3Jvd1wiPlxuICAgICAgICAgICAgICB7eyBhbGFybVR5cGUubGFiZWwgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZG90IGJ0bi1kb3QtLWRhbmdlclwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICB0b29sdGlwPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFsYXJtVHlwZS5fX3RhcmdldCA9PT0gbnVsbFwiXG4gICAgICAgICAgICAgIFtkZWxheV09XCI1MDBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ3VzdG9tQWxhcm0oYWxhcm1UeXBlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgPGM4eS1saSAqbmdJZj1cInBvc3NpYmxlRmlsdGVycy5sZW5ndGggPT09IDBcIj5cbiAgICAgICAgICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgICAgICAgICBjbGFzcz1cInAtdC04XCJcbiAgICAgICAgICAgIGljb249XCJjOHktYWxhcm1cIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidObyBhbGFybSBmb3VuZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3N1YnRpdGxlXT1cIlxuICAgICAgICAgICAgICAnVGhlcmUgaXMgbm8gYWxhcm0gdG8gZmlsdGVyLiBZb3UgY2FuIHN0aWxsIGFkZCBhIGN1c3RvbSBhbGFybS4nIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW2hvcml6b250YWxdPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuICAgICAgICA8L2M4eS1saT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0aWNreS1ib3R0b20gcC0xNlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1ibG9jayBidG4tcHJpbWFyeVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicG9zc2libGVGaWx0ZXJzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlGaWx0ZXJDaGFuZ2UoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBmaWx0ZXJzRHJvcGRvd24uaGlkZSgpXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgID5cbiAgICAgICAgICAgIEFwcGx5XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGlzdC1ncm91cD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2FsYXJtcy9hbGFybXMtdHlwZS1maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vYWxhcm1zL2FsYXJtcy10eXBlLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBZ0IseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyx5QkFBeUI7SUFzQnBDLFlBQ1UseUJBQW9ELEVBQ3BELGNBQThCLEVBQzlCLE1BQWMsRUFDZCxZQUEwQjtRQUgxQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFyQnBDLG9CQUFlLEdBQW1CLEVBQUUsQ0FBQztRQUdyQyxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFHbkMsb0JBQWUsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuRSxxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBQ3RDLHlCQUFvQixHQUFHLEVBQUUsQ0FBQztRQUVqQixtQkFBYyxHQUFHLFlBQVksQ0FBQztRQUM5Qix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUV6QyxhQUFRLEdB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LENBQUMsR0FBRyxnQ0FBZ0MsRUFBRSxHQUFHLGtDQUFrQyxDQUFDLEVBQzVFLGVBQWUsQ0FDaEIsQ0FBQztRQUNGLElBQUksQ0FBQyxlQUFlLEdBQUcsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUVPLHVDQUF1QyxDQUM3QyxZQUE0QixFQUM1QixnQkFBZ0IsR0FBRyxFQUFFO1FBRXJCLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDaEQsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLGFBQTZCO1FBQ2xELE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7OEdBakxVLHlCQUF5QjtrR0FBekIseUJBQXlCLHNPQ3BCdEMsaTdMQTRLQTs7MkZEeEphLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx3QkFBd0I7MktBS2xDLE1BQU07c0JBREwsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQWxhcm0sIElSZXN1bHRMaXN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgQ29sb3JTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybURldGFpbHMsIEFsYXJtRXZlbnRTZWxlY3RvclNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2FsYXJtLWV2ZW50LXNlbGVjdG9yJztcbmltcG9ydCB7IG1hcCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybXMtdHlwZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm1zLXR5cGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBbGFybXNUeXBlRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGFsYXJtczogSVJlc3VsdExpc3Q8SUFsYXJtPjtcblxuICBASW5wdXQoKVxuICBwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdID0gW107XG5cbiAgQElucHV0KClcbiAgYWN0aXZlRmlsdGVyczogQWxhcm1EZXRhaWxzW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgb25GaWx0ZXJDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QWxhcm1EZXRhaWxzW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGN1c3RvbUFsYXJtVHlwZXM6IEFsYXJtRGV0YWlsc1tdID0gW107XG4gIGN1c3RvbUFsYXJtVHlwZUlucHV0ID0gJyc7XG5cbiAgcmVhZG9ubHkgcXVlcnlQYXJhbU5hbWUgPSAndHlwZUZpbHRlcic7XG4gIHJlYWRvbmx5IFNUT1JBR0VfQUNDRVNTX0tFWSA9ICdjdXN0b21BbGFybVR5cGVzJztcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBjdXJyZW50UXVlcnlQYXJhbSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWxhcm1FdmVudFNlbGVjdG9yU2VydmljZTogQWxhcm1FdmVudFNlbGVjdG9yU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgY29sb3JTZXJ2aWNlOiBDb2xvclNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UXVlcnlQYXJhbWV0ZXJPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGNoYW5nZXMuYWxhcm1zICYmIGNoYW5nZXMuYWxhcm1zLmN1cnJlbnRWYWx1ZSAmJiB0aGlzLmFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFBvc3NpYmxlRmlsdGVycygpO1xuICAgICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFF1ZXJ5UGFyYW1ldGVyT2JzZXJ2YWJsZSgpIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHBhcmFtcyA9PiB7XG4gICAgICAgICAgY29uc3QgYWxhcm1zOiBBbGFybURldGFpbHNbXSA9IHRoaXMucG9zc2libGVGaWx0ZXJzO1xuICAgICAgICAgIGNvbnN0IHBvc3NpYmxlRmlsdGVycyA9IHRoaXMuc2V0QWN0aXZlQWxhcm1GaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1ldGVyKFxuICAgICAgICAgICAgYWxhcm1zLFxuICAgICAgICAgICAgcGFyYW1zW3RoaXMucXVlcnlQYXJhbU5hbWVdXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChwb3NzaWJsZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKSA9PiB7XG4gICAgICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gcG9zc2libGVGaWx0ZXJzO1xuICAgICAgICB0aGlzLmFwcGx5RmlsdGVyQ2hhbmdlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGU6IEFsYXJtRGV0YWlscykge1xuICAgIGFsYXJtVHlwZS5fX2FjdGl2ZSA9ICFhbGFybVR5cGUuX19hY3RpdmU7XG4gIH1cblxuICBkZXNlbGVjdCh0eXBlOiBBbGFybURldGFpbHMpIHtcbiAgICBjb25zdCBhbGFybUZpbHRlciA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbmQoXG4gICAgICBhbGFybSA9PiBhbGFybS5maWx0ZXJzLnR5cGUgPT09IHR5cGUuZmlsdGVycy50eXBlXG4gICAgKTtcbiAgICBhbGFybUZpbHRlci5fX2FjdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIGRlc2VsZWN0QWxsKCkge1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gdGhpcy5wb3NzaWJsZUZpbHRlcnMubWFwKGFsYXJtID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFsYXJtLFxuICAgICAgICBfX2FjdGl2ZTogZmFsc2VcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5hcHBseUZpbHRlckNoYW5nZSgpO1xuICB9XG5cbiAgYXBwbHlGaWx0ZXJDaGFuZ2UoKSB7XG4gICAgY29uc3QgYWN0aXZlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcihcbiAgICAgIChhbGFybUZpbHRlcjogQWxhcm1EZXRhaWxzKSA9PiBhbGFybUZpbHRlci5fX2FjdGl2ZVxuICAgICk7XG4gICAgY29uc3QgbmV3UXVlcnlQYXJhbSA9IHRoaXMuZ2V0UXVlcnlQYXJhbXMoYWN0aXZlcyk7XG4gICAgY29uc3QgaGFzQ2hhbmdlZCA9IG5ld1F1ZXJ5UGFyYW0gIT09IHRoaXMuY3VycmVudFF1ZXJ5UGFyYW07XG4gICAgaWYgKGhhc0NoYW5nZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVycyA9IGFjdGl2ZXM7XG4gICAgICB0aGlzLm9uRmlsdGVyQ2hhbmdlZC5lbWl0KHRoaXMuYWN0aXZlRmlsdGVycyk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgIHR5cGVGaWx0ZXI6IG5ld1F1ZXJ5UGFyYW0gfHwgbnVsbFxuICAgICAgICB9LFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY3VycmVudFF1ZXJ5UGFyYW0gPSBuZXdRdWVyeVBhcmFtO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy5mb3JFYWNoKHBvc3NpYmxlRmlsdGVyID0+IHtcbiAgICAgIHBvc3NpYmxlRmlsdGVyLl9fYWN0aXZlID0gdGhpcy5hY3RpdmVGaWx0ZXJzLnNvbWUoXG4gICAgICAgIChhY3RpdmVGaWx0ZXI6IEFsYXJtRGV0YWlscykgPT4gYWN0aXZlRmlsdGVyID09PSBwb3NzaWJsZUZpbHRlclxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUN1c3RvbUFsYXJtKGFsYXJtRGV0YWlsczogQWxhcm1EZXRhaWxzKSB7XG4gICAgdGhpcy5wb3NzaWJsZUZpbHRlcnMgPSB0aGlzLnBvc3NpYmxlRmlsdGVycy5maWx0ZXIoZmlsdGVyID0+IGZpbHRlciAhPT0gYWxhcm1EZXRhaWxzKTtcbiAgICB0aGlzLnN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpO1xuICB9XG5cbiAgY29uZmlybVdpdGhFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMuYWRkQ3VzdG9tQWxhcm1UeXBlKCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgYWRkQ3VzdG9tQWxhcm1UeXBlKCkge1xuICAgIGlmICghdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBvc3NpYmxlRmlsdGVycy51bnNoaWZ0KHtcbiAgICAgIGxhYmVsOiB0aGlzLmN1c3RvbUFsYXJtVHlwZUlucHV0LFxuICAgICAgY29sb3I6IGF3YWl0IHRoaXMuY29sb3JTZXJ2aWNlLmdlbmVyYXRlQ29sb3IodGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCksXG4gICAgICBmaWx0ZXJzOiB7XG4gICAgICAgIHR5cGU6IHRoaXMuY3VzdG9tQWxhcm1UeXBlSW5wdXRcbiAgICAgIH0sXG4gICAgICB0aW1lbGluZVR5cGU6ICdBTEFSTScsXG4gICAgICBfX2FjdGl2ZTogdHJ1ZSxcbiAgICAgIF9fdGFyZ2V0OiBudWxsXG4gICAgfSk7XG4gICAgdGhpcy5jdXN0b21BbGFybVR5cGVJbnB1dCA9ICcnO1xuICAgIHRoaXMuc3RvcmVDdXN0b21BbGFybVR5cGVzKCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlQ3VzdG9tQWxhcm1UeXBlcygpIHtcbiAgICBjb25zdCBjdXN0b21UeXBlcyA9IHRoaXMucG9zc2libGVGaWx0ZXJzLmZpbHRlcigoZmlsdGVyOiBBbGFybURldGFpbHMpID0+ICFmaWx0ZXIuX190YXJnZXQpO1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlNUT1JBR0VfQUNDRVNTX0tFWSwgSlNPTi5zdHJpbmdpZnkoY3VzdG9tVHlwZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VzdG9tQWxhcm1UeXBlRnJvbVN0b3JhZ2UoKSB7XG4gICAgY29uc3QgdHlwZXMgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5TVE9SQUdFX0FDQ0VTU19LRVkpO1xuICAgIHJldHVybiB0eXBlcyA/IEpTT04ucGFyc2UodHlwZXMpIDogW107XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldFBvc3NpYmxlRmlsdGVycygpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtZXRlcnMgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMucXVlcnlQYXJhbU5hbWUpO1xuICAgIGNvbnN0IGFsYXJtVHlwZXNGcm9tQ3VycmVudGx5U2hvd25BbGFybXMgPVxuICAgICAgYXdhaXQgdGhpcy5hbGFybUV2ZW50U2VsZWN0b3JTZXJ2aWNlLmdldFVuaXF1ZUFsYXJtc09ubHkodGhpcy5hbGFybXMuZGF0YSk7XG4gICAgY29uc3QgY3VzdG9tQWxhcm1UeXBlc0Zyb21Mb2NhbFN0b3JhZ2UgPSB0aGlzLmdldEN1c3RvbUFsYXJtVHlwZUZyb21TdG9yYWdlKCk7XG4gICAgY29uc3Qgc2VsZWN0YWJsZUFsYXJtVHlwZXMgPSB0aGlzLnNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICAgIFsuLi5jdXN0b21BbGFybVR5cGVzRnJvbUxvY2FsU3RvcmFnZSwgLi4uYWxhcm1UeXBlc0Zyb21DdXJyZW50bHlTaG93bkFsYXJtc10sXG4gICAgICBxdWVyeVBhcmFtZXRlcnNcbiAgICApO1xuICAgIHRoaXMucG9zc2libGVGaWx0ZXJzID0gc2VsZWN0YWJsZUFsYXJtVHlwZXM7XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGl2ZUFsYXJtRmlsdGVyc0Zyb21RdWVyeVBhcmFtZXRlcihcbiAgICBhbGFybUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdLFxuICAgIGZpbHRlclR5cGVzUXVlcnkgPSAnJ1xuICApOiBBbGFybURldGFpbHNbXSB7XG4gICAgY29uc3QgdHlwZXMgPSAoZmlsdGVyVHlwZXNRdWVyeSA/PyAnJykuc3BsaXQoJywnKTtcbiAgICByZXR1cm4gYWxhcm1GaWx0ZXJzLm1hcCgoYWxhcm06IEFsYXJtRGV0YWlscykgPT4gKHtcbiAgICAgIC4uLmFsYXJtLFxuICAgICAgX19hY3RpdmU6IHR5cGVzLmluY2x1ZGVzKGFsYXJtLmZpbHRlcnMudHlwZSlcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIGdldFF1ZXJ5UGFyYW1zKGFjdGl2ZUZpbHRlcnM6IEFsYXJtRGV0YWlsc1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aXZlRmlsdGVycy5tYXAoZmlsdGVyID0+IGZpbHRlci5maWx0ZXJzLnR5cGUpLmpvaW4oJywnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImRyb3Bkb3duXCJcbiAgICB0aXRsZT1cInt7ICdGaWx0ZXIgYnkgQWxhcm0gdHlwZXMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICBkcm9wZG93blxuICAgICNmaWx0ZXJzRHJvcGRvd249XCJicy1kcm9wZG93blwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJmaWx0ZXJzRHJvcGRvd24uaXNPcGVuXCJcbiAgICAob25IaWRkZW4pPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgIFtpbnNpZGVDbGlja109XCJ0cnVlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBmaXQtd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCBkLWZsZXggYS1pLWNlbnRlciBpbm5lci1zY3JvbGxcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMDsgZWxzZSBhbGxUeXBlc1wiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInRhZyB0YWctLWluZm8gY2hpcFwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGFjdGl2ZUZpbHRlcnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXhzIGJ0bi1jbGVhbiB0ZXh0LTEwXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkZXNlbGVjdChmaWx0ZXIpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cInRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNpcmNsZS1pY29uLXdyYXBwZXIgY2lyY2xlLWljb24td3JhcHBlci0tc21hbGxcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogZmlsdGVyLmNvbG9yIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3Ryb2tlZC1pY29uXCJcbiAgICAgICAgICAgICAgICBjOHlJY29uPVwiYmVsbFwiXG4gICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7eyBmaWx0ZXIuZmlsdGVycy50eXBlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhbGxUeXBlcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbm93cmFwXCI+XG4gICAgICAgICAgICB7eyAnQWxsIGFsYXJtIHR5cGVzJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWJ0biBpbnB1dC1ncm91cC1idG4tLWxhc3QgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYnRuLWRlZmF1bHQgYnRuXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0NsZWFyIGZpbHRlcnMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAqbmdJZj1cImFjdGl2ZUZpbHRlcnMubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVzZWxlY3RBbGwoKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjOHlJY29uPVwidGltZXNcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJidG4tZGVmYXVsdCBidG4gYnRuLS1jYXJldFwiXG4gICAgICAgICAgW3RpdGxlXT1cIidBbGFybSB0eXBlcycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgIGRhdGEtY3k9XCJjOHktYWxhcm0tdHlwZS1maWx0ZXJcIlxuICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImNhcmV0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LWFjdGlvbi1iYXJcIlxuICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IHVuc2V0OyBtaW4td2lkdGg6IDI1MHB4XCJcbiAgICAgICpkcm9wZG93bk1lbnVcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0xNiBiZy1sZXZlbC0yXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtaW5mbyBtLXItNFwiXG4gICAgICAgICAgICAgIFtjOHlJY29uXT1cIidpbmZvLWNpcmNsZSdcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgIDxzdHJvbmcgdHJhbnNsYXRlPlRoZSBsaXN0IGJlbG93IG1heSBub3QgYmUgY29tcGxldGUuPC9zdHJvbmc+XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIHRyYW5zbGF0ZT5cbiAgICAgICAgICAgIFJlY2VudCBhbGFybXMgYXJlIGRpc3BsYXllZCBiZWxvdy4gUGFzdCBhbGFybXMgbWlnaHQgbm90IGJlIHNob3duLiBPcHRpb25hbGx5IHlvdSBjYW5cbiAgICAgICAgICAgIGFkZCBhIGN1c3RvbSBhbGFybS5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8Yzh5LWxpc3QtZ3JvdXA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCBwLXQtMTYgcC1iLTE2IHAtci0zMiBwLWwtMzIgc2VwYXJhdG9yLWJvdHRvbVwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCInQ3VzdG9tIGFsYXJtIHR5cGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tQWxhcm1UeXBlSW5wdXRcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwiY29uZmlybVdpdGhFbnRlcigkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZG90IHRleHQtcHJpbWFyeVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FkZCBjdXN0b20gYWxhcm0nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgdG9vbHRpcD1cIidBZGQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGRDdXN0b21BbGFybVR5cGUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGM4eUljb249XCJwbHVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Yzh5LWxpXG4gICAgICAgICAgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fY29sbGFwc2UtLWNvbnRhaW5lci1zbWFsbCBjZGstZHJhZ1wiXG4gICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBhbGFybVR5cGUgb2YgcG9zc2libGVGaWx0ZXJzXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQWxhcm1UeXBlKGFsYXJtVHlwZSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGM4eS1saS1jaGVja2JveFxuICAgICAgICAgICAgY2xhc3M9XCJhLXMtY2VudGVyIG0tdC00IHAtci0wIHAtbC0wXCJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJhbGFybVR5cGUuX19hY3RpdmVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUFsYXJtVHlwZShhbGFybVR5cGUpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgID48L2M4eS1saS1jaGVja2JveD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXIgcC1sLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjOHktbGlzdF9faXRlbV9fY29sb3JwaWNrZXIgcC10LTAgcC1iLTAgcC1sLTBcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImM4eS1jb2xvcnBpY2tlciBjOHktY29sb3JwaWNrZXItLWFsYXJtXCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2lyY2xlLWljb24td3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogYWxhcm1UeXBlLmNvbG9yIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3Ryb2tlZC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2M4eUljb25dPVwiJ2JlbGwnXCJcbiAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXRydW5jYXRlIHRleHQtMTIgZmxleC1ncm93XCI+XG4gICAgICAgICAgICAgIHt7IGFsYXJtVHlwZS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1kb3QgYnRuLWRvdC0tZGFuZ2VyXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVtb3ZlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHRvb2x0aXA9XCInUmVtb3ZlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWxhcm1UeXBlLl9fdGFyZ2V0ID09PSBudWxsXCJcbiAgICAgICAgICAgICAgW2RlbGF5XT1cIjUwMFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVDdXN0b21BbGFybShhbGFybVR5cGUpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwibWludXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYzh5LWxpPlxuICAgICAgICA8Yzh5LWxpICpuZ0lmPVwicG9zc2libGVGaWx0ZXJzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICAgICAgICAgIGNsYXNzPVwicC10LThcIlxuICAgICAgICAgICAgaWNvbj1cImM4eS1hbGFybVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ05vIGFsYXJtIGZvdW5kJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc3VidGl0bGVdPVwiXG4gICAgICAgICAgICAgICdUaGVyZSBpcyBubyBhbGFybSB0byBmaWx0ZXIuIFlvdSBjYW4gc3RpbGwgYWRkIGEgY3VzdG9tIGFsYXJtLicgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICAgICAgICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG4gICAgICAgIDwvYzh5LWxpPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RpY2t5LWJvdHRvbSBwLTE2XCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWJsb2NrIGJ0bi1wcmltYXJ5XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwb3NzaWJsZUZpbHRlcnMubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhcHBseUZpbHRlckNoYW5nZSgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGZpbHRlcnNEcm9wZG93bi5oaWRlKClcIlxuICAgICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgQXBwbHlcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2M4eS1saXN0LWdyb3VwPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -97,11 +97,11 @@ export class UserEditModalComponent {
|
|
|
97
97
|
this.updateCredentials(user.password);
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
await this.updateProductExperienceOptions();
|
|
101
100
|
if (user.customProperties.userOrigin !== 'OAUTH2') {
|
|
102
101
|
await this.user.updateCurrent(omit(user, 'password'));
|
|
103
102
|
await this.updateUserInAppState();
|
|
104
103
|
}
|
|
104
|
+
await this.updateProductExperienceOptions();
|
|
105
105
|
this.modal.hide();
|
|
106
106
|
this.alert.success(gettext('User saved.'));
|
|
107
107
|
}
|
|
@@ -173,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
|
|
|
173
173
|
type: Component,
|
|
174
174
|
args: [{ selector: 'c8y-user-edit-modal', template: "<c8y-modal\n [title]=\"'Edit user' | translate\"\n [customFooter]=\"true\"\n (onDismiss)=\"onDismiss()\"\n>\n <c8y-user-edit\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n [isUsageTrackingEnabled]=\"currentUsageTrackingState\"\n [isUserEngagementPreferenceEnabled]=\"currentUserEngagementPreferenceInitialState\"\n [showProductExperienceOptions]=\"showProductExperienceOptions\"\n (onUsageTrackingChange)=\"onUsageTrackingChange($event)\"\n (onUserEngagementPreferenceChange)=\"onUserEngagementPreferenceChange($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n ></c8y-user-edit>\n</c8y-modal>\n" }]
|
|
175
175
|
}], ctorParameters: () => [{ type: i1.BsModalRef }, { type: i2.UserService }, { type: i3.AppStateService }, { type: i2.BasicAuth }, { type: i2.FetchClient }, { type: i4.AlertService }, { type: i5.UserPreferencesService }, { type: i6.ModalService }, { type: i7.GainsightService }, { type: i8.CookieBannerService }, { type: i9.LoginService }, { type: i10.PasswordService }, { type: i11.UserEngagementsService }] });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lZGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLWVkaXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS91c2VyL3VzZXItZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUdYLHFCQUFxQixFQUNyQixXQUFXLEVBQ1osTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7Ozs7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LENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUFnQjtRQUN4QyxNQUFNLGNBQWMsR0FBaUI7WUFDbkMsUUFBUTtZQUNSLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1NBQzNCLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OEdBOUtVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJEQzNCbkMsZ3FCQWlCQTs7MkZEVWEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNpY0F1dGgsXG4gIEZldGNoQ2xpZW50LFxuICBJQ3JlZGVudGlhbHMsXG4gIElVc2VyLFxuICBUZW5hbnRMb2dpbk9wdGlvblR5cGUsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IG9taXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBQYXNzd29yZFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoZW50aWNhdGlvbi9wYXNzd29yZC5zZXJ2aWNlJztcbmltcG9ydCB7IENvb2tpZUJhbm5lclNlcnZpY2UgfSBmcm9tICcuLi9ib290c3RyYXAvY29va2llLWJhbm5lci9jb29raWUtYmFubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi4vY29tbW9uL3N0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VzZXItcHJlZmVyZW5jZXMvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEdhaW5zaWdodFNlcnZpY2UgfSBmcm9tICcuLi9wcm9kdWN0LWV4cGVyaWVuY2UvZ2FpbnNpZ2h0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckVuZ2FnZW1lbnRzU2VydmljZSB9IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS91c2VyLWVuZ2FnZW1lbnRzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdXNlci1lZGl0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckVkaXRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGN1cnJlbnRVc2VyOiBJVXNlcjtcbiAgY2hhbmdlZExhbmc6IHN0cmluZztcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBzaG93UHJvZHVjdEV4cGVyaWVuY2VPcHRpb25zID0gZmFsc2U7XG4gIGN1cnJlbnRVc2FnZVRyYWNraW5nU3RhdGU6IGJvb2xlYW47XG4gIGN1cnJlbnRVc2VyRW5nYWdlbWVudFByZWZlcmVuY2VJbml0aWFsU3RhdGU6IGJvb2xlYW47XG4gIHVzYWdlVHJhY2tpbmdTdGF0ZTogYm9vbGVhbjtcbiAgdXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlTmV3U3RhdGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vZGFsOiBCc01vZGFsUmVmLFxuICAgIHB1YmxpYyB1c2VyOiBVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgdWk6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEJhc2ljQXV0aCxcbiAgICBwcml2YXRlIGNsaWVudDogRmV0Y2hDbGllbnQsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYzh5TW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29va2llQmFubmVyU2VydmljZTogQ29va2llQmFubmVyU2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2luU2VydmljZTogTG9naW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFzc3dvcmRTZXJ2aWNlOiBQYXNzd29yZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyRW5nYWdlbWVudHNTZXJ2aWNlOiBVc2VyRW5nYWdlbWVudHNTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZVVzZXJJbkFwcFN0YXRlKCk7XG4gICAgYXdhaXQgdGhpcy5zZXRJbml0aWFsUHJvZHVjdEV4cGVyaWVuY2VPcHRpb25zKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgcHJvZHVjdCBleHBlcmllbmNlIG9wdGlvbnMgZm9yIHRoZSB1c2VyLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uczpcbiAgICogLSBEZXRlcm1pbmVzIGlmIHRoZSB1c2VyIGhhcyB0aGUgcGVybWlzc2lvbiB0byBlZGl0IHByb2R1Y3QgZXhwZXJpZW5jZSBvcHRpb25zLlxuICAgKiAtIElmIHRoZSB1c2VyIGhhcyB0aGUgcGVybWlzc2lvbiBhbmQgZnVuY3Rpb25hbCBjb29raWVzIGFyZSBlbmFibGVkOlxuICAgKiAgIC0gQ2hlY2tzIHdoZXRoZXIgcGVyc29uYWxpemVkIHByb2R1Y3QgZXhwZXJpZW5jZSB0cmFja2luZyBpcyBhY3RpdmUuXG4gICAqICAgLSBDaGVja3Mgd2hldGhlciBpbi1wcm9kdWN0IGluZm9ybWF0aW9uIGFuZCBjb21tdW5pY2F0aW9uIGlzIGFjdGl2ZS5cbiAgICovXG4gIGFzeW5jIHNldEluaXRpYWxQcm9kdWN0RXhwZXJpZW5jZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5zaG93UHJvZHVjdEV4cGVyaWVuY2VPcHRpb25zID1cbiAgICAgIGF3YWl0IHRoaXMuZ2FpbnNpZ2h0U2VydmljZS5jYW5FZGl0UHJvZHVjdEV4cGVyaWVuY2VTZXR0aW5ncygpO1xuXG4gICAgaWYgKHRoaXMuc2hvd1Byb2R1Y3RFeHBlcmllbmNlT3B0aW9ucyAmJiB0aGlzLmNvb2tpZUJhbm5lclNlcnZpY2UuaXNGdW5jdGlvbmFsQ29va2llRW5hYmxlZCgpKSB7XG4gICAgICAvLyBFbmFibGUgcGVyc29uYWxpemVkIHByb2R1Y3QgZXhwZXJpZW5jZSB0cmFja2luZyBvcHRpb25cbiAgICAgIHRoaXMuY3VycmVudFVzYWdlVHJhY2tpbmdTdGF0ZSA9XG4gICAgICAgICEoYXdhaXQgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLmlzR2FpbnNpZ2h0UHJlZmVyZW5jZURpc2FibGVkSW5Vc2VyUHJlZmVyZW5jZXMoXG4gICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLlVTRVJfUFJFRkVSRU5DRVNfR0FJTlNJR0hUX0tFWVxuICAgICAgICApKTtcblxuICAgICAgLy8gRW5hYmxlIGluLXByb2R1Y3QgaW5mb3JtYXRpb24gJiBjb21tdW5pY2F0aW9uIG9wdGlvblxuICAgICAgdGhpcy5jdXJyZW50VXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlSW5pdGlhbFN0YXRlID1cbiAgICAgICAgdGhpcy51c2VyRW5nYWdlbWVudHNTZXJ2aWNlLnVzZXJFbmdhZ2VtZW50c0VuYWJsZWQkLnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uRGlzbWlzcygpIHtcbiAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgfVxuXG4gIG9uVXNhZ2VUcmFja2luZ0NoYW5nZShpc0VuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVzYWdlVHJhY2tpbmdTdGF0ZSA9IGlzRW5hYmxlZDtcbiAgfVxuXG4gIG9uVXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlQ2hhbmdlKGlzRW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMudXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlTmV3U3RhdGUgPSBpc0VuYWJsZWQ7XG4gIH1cblxuICBhc3luYyB1cGRhdGVBbmRDbG9zZSh1c2VyKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXNzd29yZENoYW5nZWQgPSBCb29sZWFuKHVzZXIucGFzc3dvcmQpO1xuICAgICAgY29uc3QgdXNlc0Jhc2ljID0gdGhpcy5sb2dpblNlcnZpY2UubG9naW5Nb2RlLnR5cGUgPT09IFRlbmFudExvZ2luT3B0aW9uVHlwZS5CQVNJQztcbiAgICAgIGNvbnN0IGlzRXh0ZXJuYWxVc2VyID0gdXNlci5jdXN0b21Qcm9wZXJ0aWVzLnVzZXJPcmlnaW4gPT09ICdPQVVUSDInO1xuXG4gICAgICBpZiAoIWlzRXh0ZXJuYWxVc2VyICYmIHBhc3N3b3JkQ2hhbmdlZCkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGFzc3dvcmQgPSBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jdXJyZW50UGFzc3dvcmQoKS50b1Byb21pc2UoKTtcbiAgICAgICAgaWYgKCFjdXJyZW50UGFzc3dvcmQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy51c2VyLmNoYW5nZUN1cnJlbnRVc2VyUGFzc3dvcmQodXNlci5wYXNzd29yZCwgY3VycmVudFBhc3N3b3JkKTtcbiAgICAgICAgaWYgKHVzZXNCYXNpYykge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ3JlZGVudGlhbHModXNlci5wYXNzd29yZCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy51cGRhdGVQcm9kdWN0RXhwZXJpZW5jZU9wdGlvbnMoKTtcblxuICAgICAgaWYgKHVzZXIuY3VzdG9tUHJvcGVydGllcy51c2VyT3JpZ2luICE9PSAnT0FVVEgyJykge1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXIudXBkYXRlQ3VycmVudChvbWl0KHVzZXIsICdwYXNzd29yZCcpKTtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVVc2VySW5BcHBTdGF0ZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5tb2RhbC5oaWRlKCk7XG4gICAgICB0aGlzLmFsZXJ0LnN1Y2Nlc3MoZ2V0dGV4dCgnVXNlciBzYXZlZC4nKSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUpIHtcbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGUpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBnYWluc2lnaHRUcmFja2luZ0FwcFJlbG9hZCgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jOHlNb2RhbFNlcnZpY2UuY29uZmlybShcbiAgICAgICAgZ2V0dGV4dCgnUmVsb2FkIHJlcXVpcmVkJyksXG4gICAgICAgIGdldHRleHQoXG4gICAgICAgICAgJ1RvIGNoYW5nZSB0aGUgdHJhY2tpbmcgb3B0aW9uIGluIHRoZSBlbnRpcmUgYXBwbGljYXRpb24sIHlvdSBuZWVkIHRvIHJlbG9hZCB0aGUgcGFnZS4gSWYgeW91IGhhdmUgYW55IHVuc2F2ZWQgY2hhbmdlcywgeW91IGNhbiByZWxvYWQgbGF0ZXIuIEhvdyB3b3VsZCB5b3UgbGlrZSB0byBwcm9jZWVkPydcbiAgICAgICAgKSxcbiAgICAgICAgU3RhdHVzLldBUk5JTkcsXG4gICAgICAgIHtcbiAgICAgICAgICBvazogZ2V0dGV4dCgnUmVsb2FkIG5vdycpLFxuICAgICAgICAgIGNhbmNlbDogZ2V0dGV4dCgnUmVsb2FkIGxhdGVyJylcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAvLyBkbyBub3RoaW5nXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVQcm9kdWN0RXhwZXJpZW5jZU9wdGlvbnMoKSB7XG4gICAgdGhpcy51cGRhdGVVc2VyRW5nYWdlbWVudHNQcmVmZXJlbmNlKCk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVUcmFja2luZ09wdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHVzZXIgZW5nYWdlbWVudCBwcmVmZXJlbmNlIGlmIGl0IGhhcyBjaGFuZ2VkIGZyb20gdGhlIGluaXRpYWwgc3RhdGUuXG4gICAqIENhbGxzIHRoZSB1c2VyIGVuZ2FnZW1lbnRzIHNlcnZpY2UgdG8gdXBkYXRlIHRoZSBwcmVmZXJlbmNlLlxuICAgKlxuICAgKiBUaGUgdXBkYXRlIG9ubHkgb2NjdXJzIGlmIHRoZSBjdXJyZW50IHByZWZlcmVuY2UgZGlmZmVycyBmcm9tIHRoZSBuZXcgc3RhdGUuXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVVzZXJFbmdhZ2VtZW50c1ByZWZlcmVuY2UoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jdXJyZW50VXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlSW5pdGlhbFN0YXRlICE9PSB0aGlzLnVzZXJFbmdhZ2VtZW50UHJlZmVyZW5jZU5ld1N0YXRlXG4gICAgKSB7XG4gICAgICB0aGlzLnVzZXJFbmdhZ2VtZW50c1NlcnZpY2UudXBkYXRlVXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlKFxuICAgICAgICB0aGlzLnVzZXJFbmdhZ2VtZW50UHJlZmVyZW5jZU5ld1N0YXRlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBc3luY2hyb25vdXNseSB1cGRhdGVzIHRoZSB0cmFja2luZyBvcHRpb24gZm9yIHVzZXIgcHJlZmVyZW5jZXMuXG4gICAqIElmIHRoZSBjdXJyZW50IHVzYWdlIHRyYWNraW5nIHN0YXRlIGRpZmZlcnMgZnJvbSB0aGUgbmV3IHN0YXRlLFxuICAgKiBpdCB1cGRhdGVzIHRoZSBHYWluc2lnaHQgcHJlZmVyZW5jZXMgYW5kIHNldHMgYSBmdW5jdGlvbmFsIGNvb2tpZVxuICAgKiBiZWZvcmUgdHJpZ2dlcmluZyBhIHJlbG9hZCBvZiB0aGUgYXBwbGljYXRpb24uXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVRyYWNraW5nT3B0aW9uKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRVc2FnZVRyYWNraW5nU3RhdGUgIT09IHRoaXMudXNhZ2VUcmFja2luZ1N0YXRlKSB7XG4gICAgICBhd2FpdCB0aGlzLnVzZXJQcmVmZXJlbmNlcy5zZXQoXG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS5VU0VSX1BSRUZFUkVOQ0VTX0dBSU5TSUdIVF9LRVksXG4gICAgICAgIHRoaXMudXNhZ2VUcmFja2luZ1N0YXRlXG4gICAgICApO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnNldEZ1bmN0aW9uYWxDb29raWUodGhpcy51c2FnZVRyYWNraW5nU3RhdGUpO1xuICAgICAgYXdhaXQgdGhpcy5nYWluc2lnaHRUcmFja2luZ0FwcFJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlVXNlckluQXBwU3RhdGUoKSB7XG4gICAgY29uc3QgY3VycmVudFVzZXJSZXN1bHQgPSBhd2FpdCB0aGlzLnVzZXIuY3VycmVudCgpO1xuICAgIHRoaXMudWkuY3VycmVudFVzZXIubmV4dChjdXJyZW50VXNlclJlc3VsdC5kYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ3JlZGVudGlhbHMocGFzc3dvcmQ6IHN0cmluZykge1xuICAgIGNvbnN0IG5ld0NyZWRlbnRpYWxzOiBJQ3JlZGVudGlhbHMgPSB7XG4gICAgICBwYXNzd29yZCxcbiAgICAgIHVzZXI6IHRoaXMudWkuY3VycmVudFVzZXIudmFsdWUuaWQsXG4gICAgICB0ZW5hbnQ6IHRoaXMuY2xpZW50LnRlbmFudFxuICAgIH07XG4gICAgdGhpcy5hdXRoLnVwZGF0ZUNyZWRlbnRpYWxzKG5ld0NyZWRlbnRpYWxzKTtcbiAgfVxufVxuIiwiPGM4eS1tb2RhbFxuICBbdGl0bGVdPVwiJ0VkaXQgdXNlcicgfCB0cmFuc2xhdGVcIlxuICBbY3VzdG9tRm9vdGVyXT1cInRydWVcIlxuICAob25EaXNtaXNzKT1cIm9uRGlzbWlzcygpXCJcbj5cbiAgPGM4eS11c2VyLWVkaXRcbiAgICBbdXNlcl09XCJ1aS5jdXJyZW50VXNlciB8IGFzeW5jXCJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcbiAgICBbaXNVc2FnZVRyYWNraW5nRW5hYmxlZF09XCJjdXJyZW50VXNhZ2VUcmFja2luZ1N0YXRlXCJcbiAgICBbaXNVc2VyRW5nYWdlbWVudFByZWZlcmVuY2VFbmFibGVkXT1cImN1cnJlbnRVc2VyRW5nYWdlbWVudFByZWZlcmVuY2VJbml0aWFsU3RhdGVcIlxuICAgIFtzaG93UHJvZHVjdEV4cGVyaWVuY2VPcHRpb25zXT1cInNob3dQcm9kdWN0RXhwZXJpZW5jZU9wdGlvbnNcIlxuICAgIChvblVzYWdlVHJhY2tpbmdDaGFuZ2UpPVwib25Vc2FnZVRyYWNraW5nQ2hhbmdlKCRldmVudClcIlxuICAgIChvblVzZXJFbmdhZ2VtZW50UHJlZmVyZW5jZUNoYW5nZSk9XCJvblVzZXJFbmdhZ2VtZW50UHJlZmVyZW5jZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAob25Vc2VyKT1cInVwZGF0ZUFuZENsb3NlKCRldmVudClcIlxuICAgIChvbkNhbmNlbCk9XCJvbkRpc21pc3MoKVwiXG4gID48L2M4eS11c2VyLWVkaXQ+XG48L2M4eS1tb2RhbD5cbiJdfQ==
|
|
176
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lZGl0LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvdXNlci91c2VyLWVkaXQtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vY29yZS91c2VyL3VzZXItZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUdYLHFCQUFxQixFQUNyQixXQUFXLEVBQ1osTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7Ozs7Ozs7Ozs7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LENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUFnQjtRQUN4QyxNQUFNLGNBQWMsR0FBaUI7WUFDbkMsUUFBUTtZQUNSLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1NBQzNCLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OEdBL0tVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJEQzNCbkMsZ3FCQWlCQTs7MkZEVWEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNpY0F1dGgsXG4gIEZldGNoQ2xpZW50LFxuICBJQ3JlZGVudGlhbHMsXG4gIElVc2VyLFxuICBUZW5hbnRMb2dpbk9wdGlvblR5cGUsXG4gIFVzZXJTZXJ2aWNlXG59IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IG9taXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XG5pbXBvcnQgeyBQYXNzd29yZFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoZW50aWNhdGlvbi9wYXNzd29yZC5zZXJ2aWNlJztcbmltcG9ydCB7IENvb2tpZUJhbm5lclNlcnZpY2UgfSBmcm9tICcuLi9ib290c3RyYXAvY29va2llLWJhbm5lci9jb29raWUtYmFubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzIH0gZnJvbSAnLi4vY29tbW9uL3N0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBBcHBTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vdWktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VzZXItcHJlZmVyZW5jZXMvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEdhaW5zaWdodFNlcnZpY2UgfSBmcm9tICcuLi9wcm9kdWN0LWV4cGVyaWVuY2UvZ2FpbnNpZ2h0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckVuZ2FnZW1lbnRzU2VydmljZSB9IGZyb20gJy4uL3Byb2R1Y3QtZXhwZXJpZW5jZS91c2VyLWVuZ2FnZW1lbnRzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktdXNlci1lZGl0LW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckVkaXRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGN1cnJlbnRVc2VyOiBJVXNlcjtcbiAgY2hhbmdlZExhbmc6IHN0cmluZztcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBzaG93UHJvZHVjdEV4cGVyaWVuY2VPcHRpb25zID0gZmFsc2U7XG4gIGN1cnJlbnRVc2FnZVRyYWNraW5nU3RhdGU6IGJvb2xlYW47XG4gIGN1cnJlbnRVc2VyRW5nYWdlbWVudFByZWZlcmVuY2VJbml0aWFsU3RhdGU6IGJvb2xlYW47XG4gIHVzYWdlVHJhY2tpbmdTdGF0ZTogYm9vbGVhbjtcbiAgdXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlTmV3U3RhdGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vZGFsOiBCc01vZGFsUmVmLFxuICAgIHB1YmxpYyB1c2VyOiBVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgdWk6IEFwcFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGg6IEJhc2ljQXV0aCxcbiAgICBwcml2YXRlIGNsaWVudDogRmV0Y2hDbGllbnQsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYzh5TW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29va2llQmFubmVyU2VydmljZTogQ29va2llQmFubmVyU2VydmljZSxcbiAgICBwcml2YXRlIGxvZ2luU2VydmljZTogTG9naW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFzc3dvcmRTZXJ2aWNlOiBQYXNzd29yZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1c2VyRW5nYWdlbWVudHNTZXJ2aWNlOiBVc2VyRW5nYWdlbWVudHNTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZVVzZXJJbkFwcFN0YXRlKCk7XG4gICAgYXdhaXQgdGhpcy5zZXRJbml0aWFsUHJvZHVjdEV4cGVyaWVuY2VPcHRpb25zKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgcHJvZHVjdCBleHBlcmllbmNlIG9wdGlvbnMgZm9yIHRoZSB1c2VyLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uczpcbiAgICogLSBEZXRlcm1pbmVzIGlmIHRoZSB1c2VyIGhhcyB0aGUgcGVybWlzc2lvbiB0byBlZGl0IHByb2R1Y3QgZXhwZXJpZW5jZSBvcHRpb25zLlxuICAgKiAtIElmIHRoZSB1c2VyIGhhcyB0aGUgcGVybWlzc2lvbiBhbmQgZnVuY3Rpb25hbCBjb29raWVzIGFyZSBlbmFibGVkOlxuICAgKiAgIC0gQ2hlY2tzIHdoZXRoZXIgcGVyc29uYWxpemVkIHByb2R1Y3QgZXhwZXJpZW5jZSB0cmFja2luZyBpcyBhY3RpdmUuXG4gICAqICAgLSBDaGVja3Mgd2hldGhlciBpbi1wcm9kdWN0IGluZm9ybWF0aW9uIGFuZCBjb21tdW5pY2F0aW9uIGlzIGFjdGl2ZS5cbiAgICovXG4gIGFzeW5jIHNldEluaXRpYWxQcm9kdWN0RXhwZXJpZW5jZU9wdGlvbnMoKSB7XG4gICAgdGhpcy5zaG93UHJvZHVjdEV4cGVyaWVuY2VPcHRpb25zID1cbiAgICAgIGF3YWl0IHRoaXMuZ2FpbnNpZ2h0U2VydmljZS5jYW5FZGl0UHJvZHVjdEV4cGVyaWVuY2VTZXR0aW5ncygpO1xuXG4gICAgaWYgKHRoaXMuc2hvd1Byb2R1Y3RFeHBlcmllbmNlT3B0aW9ucyAmJiB0aGlzLmNvb2tpZUJhbm5lclNlcnZpY2UuaXNGdW5jdGlvbmFsQ29va2llRW5hYmxlZCgpKSB7XG4gICAgICAvLyBFbmFibGUgcGVyc29uYWxpemVkIHByb2R1Y3QgZXhwZXJpZW5jZSB0cmFja2luZyBvcHRpb25cbiAgICAgIHRoaXMuY3VycmVudFVzYWdlVHJhY2tpbmdTdGF0ZSA9XG4gICAgICAgICEoYXdhaXQgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLmlzR2FpbnNpZ2h0UHJlZmVyZW5jZURpc2FibGVkSW5Vc2VyUHJlZmVyZW5jZXMoXG4gICAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLlVTRVJfUFJFRkVSRU5DRVNfR0FJTlNJR0hUX0tFWVxuICAgICAgICApKTtcblxuICAgICAgLy8gRW5hYmxlIGluLXByb2R1Y3QgaW5mb3JtYXRpb24gJiBjb21tdW5pY2F0aW9uIG9wdGlvblxuICAgICAgdGhpcy5jdXJyZW50VXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlSW5pdGlhbFN0YXRlID1cbiAgICAgICAgdGhpcy51c2VyRW5nYWdlbWVudHNTZXJ2aWNlLnVzZXJFbmdhZ2VtZW50c0VuYWJsZWQkLnZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uRGlzbWlzcygpIHtcbiAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgfVxuXG4gIG9uVXNhZ2VUcmFja2luZ0NoYW5nZShpc0VuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVzYWdlVHJhY2tpbmdTdGF0ZSA9IGlzRW5hYmxlZDtcbiAgfVxuXG4gIG9uVXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlQ2hhbmdlKGlzRW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMudXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlTmV3U3RhdGUgPSBpc0VuYWJsZWQ7XG4gIH1cblxuICBhc3luYyB1cGRhdGVBbmRDbG9zZSh1c2VyKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXNzd29yZENoYW5nZWQgPSBCb29sZWFuKHVzZXIucGFzc3dvcmQpO1xuICAgICAgY29uc3QgdXNlc0Jhc2ljID0gdGhpcy5sb2dpblNlcnZpY2UubG9naW5Nb2RlLnR5cGUgPT09IFRlbmFudExvZ2luT3B0aW9uVHlwZS5CQVNJQztcbiAgICAgIGNvbnN0IGlzRXh0ZXJuYWxVc2VyID0gdXNlci5jdXN0b21Qcm9wZXJ0aWVzLnVzZXJPcmlnaW4gPT09ICdPQVVUSDInO1xuXG4gICAgICBpZiAoIWlzRXh0ZXJuYWxVc2VyICYmIHBhc3N3b3JkQ2hhbmdlZCkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGFzc3dvcmQgPSBhd2FpdCB0aGlzLnBhc3N3b3JkU2VydmljZS5jdXJyZW50UGFzc3dvcmQoKS50b1Byb21pc2UoKTtcbiAgICAgICAgaWYgKCFjdXJyZW50UGFzc3dvcmQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy51c2VyLmNoYW5nZUN1cnJlbnRVc2VyUGFzc3dvcmQodXNlci5wYXNzd29yZCwgY3VycmVudFBhc3N3b3JkKTtcbiAgICAgICAgaWYgKHVzZXNCYXNpYykge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ3JlZGVudGlhbHModXNlci5wYXNzd29yZCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHVzZXIuY3VzdG9tUHJvcGVydGllcy51c2VyT3JpZ2luICE9PSAnT0FVVEgyJykge1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXIudXBkYXRlQ3VycmVudChvbWl0KHVzZXIsICdwYXNzd29yZCcpKTtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVVc2VySW5BcHBTdGF0ZSgpO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZVByb2R1Y3RFeHBlcmllbmNlT3B0aW9ucygpO1xuXG4gICAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgICAgIHRoaXMuYWxlcnQuc3VjY2VzcyhnZXR0ZXh0KCdVc2VyIHNhdmVkLicpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSkge1xuICAgICAgICB0aGlzLmFsZXJ0LmFkZFNlcnZlckZhaWx1cmUoZSk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdhaW5zaWdodFRyYWNraW5nQXBwUmVsb2FkKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmM4eU1vZGFsU2VydmljZS5jb25maXJtKFxuICAgICAgICBnZXR0ZXh0KCdSZWxvYWQgcmVxdWlyZWQnKSxcbiAgICAgICAgZ2V0dGV4dChcbiAgICAgICAgICAnVG8gY2hhbmdlIHRoZSB0cmFja2luZyBvcHRpb24gaW4gdGhlIGVudGlyZSBhcHBsaWNhdGlvbiwgeW91IG5lZWQgdG8gcmVsb2FkIHRoZSBwYWdlLiBJZiB5b3UgaGF2ZSBhbnkgdW5zYXZlZCBjaGFuZ2VzLCB5b3UgY2FuIHJlbG9hZCBsYXRlci4gSG93IHdvdWxkIHlvdSBsaWtlIHRvIHByb2NlZWQ/J1xuICAgICAgICApLFxuICAgICAgICBTdGF0dXMuV0FSTklORyxcbiAgICAgICAge1xuICAgICAgICAgIG9rOiBnZXR0ZXh0KCdSZWxvYWQgbm93JyksXG4gICAgICAgICAgY2FuY2VsOiBnZXR0ZXh0KCdSZWxvYWQgbGF0ZXInKVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVByb2R1Y3RFeHBlcmllbmNlT3B0aW9ucygpIHtcbiAgICB0aGlzLnVwZGF0ZVVzZXJFbmdhZ2VtZW50c1ByZWZlcmVuY2UoKTtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVRyYWNraW5nT3B0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgdXNlciBlbmdhZ2VtZW50IHByZWZlcmVuY2UgaWYgaXQgaGFzIGNoYW5nZWQgZnJvbSB0aGUgaW5pdGlhbCBzdGF0ZS5cbiAgICogQ2FsbHMgdGhlIHVzZXIgZW5nYWdlbWVudHMgc2VydmljZSB0byB1cGRhdGUgdGhlIHByZWZlcmVuY2UuXG4gICAqXG4gICAqIFRoZSB1cGRhdGUgb25seSBvY2N1cnMgaWYgdGhlIGN1cnJlbnQgcHJlZmVyZW5jZSBkaWZmZXJzIGZyb20gdGhlIG5ldyBzdGF0ZS5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlVXNlckVuZ2FnZW1lbnRzUHJlZmVyZW5jZSgpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmN1cnJlbnRVc2VyRW5nYWdlbWVudFByZWZlcmVuY2VJbml0aWFsU3RhdGUgIT09IHRoaXMudXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlTmV3U3RhdGVcbiAgICApIHtcbiAgICAgIHRoaXMudXNlckVuZ2FnZW1lbnRzU2VydmljZS51cGRhdGVVc2VyRW5nYWdlbWVudFByZWZlcmVuY2UoXG4gICAgICAgIHRoaXMudXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlTmV3U3RhdGVcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFzeW5jaHJvbm91c2x5IHVwZGF0ZXMgdGhlIHRyYWNraW5nIG9wdGlvbiBmb3IgdXNlciBwcmVmZXJlbmNlcy5cbiAgICogSWYgdGhlIGN1cnJlbnQgdXNhZ2UgdHJhY2tpbmcgc3RhdGUgZGlmZmVycyBmcm9tIHRoZSBuZXcgc3RhdGUsXG4gICAqIGl0IHVwZGF0ZXMgdGhlIEdhaW5zaWdodCBwcmVmZXJlbmNlcyBhbmQgc2V0cyBhIGZ1bmN0aW9uYWwgY29va2llXG4gICAqIGJlZm9yZSB0cmlnZ2VyaW5nIGEgcmVsb2FkIG9mIHRoZSBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlVHJhY2tpbmdPcHRpb24oKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFVzYWdlVHJhY2tpbmdTdGF0ZSAhPT0gdGhpcy51c2FnZVRyYWNraW5nU3RhdGUpIHtcbiAgICAgIGF3YWl0IHRoaXMudXNlclByZWZlcmVuY2VzLnNldChcbiAgICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLlVTRVJfUFJFRkVSRU5DRVNfR0FJTlNJR0hUX0tFWSxcbiAgICAgICAgdGhpcy51c2FnZVRyYWNraW5nU3RhdGVcbiAgICAgICk7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2Uuc2V0RnVuY3Rpb25hbENvb2tpZSh0aGlzLnVzYWdlVHJhY2tpbmdTdGF0ZSk7XG4gICAgICBhd2FpdCB0aGlzLmdhaW5zaWdodFRyYWNraW5nQXBwUmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVVc2VySW5BcHBTdGF0ZSgpIHtcbiAgICBjb25zdCBjdXJyZW50VXNlclJlc3VsdCA9IGF3YWl0IHRoaXMudXNlci5jdXJyZW50KCk7XG4gICAgdGhpcy51aS5jdXJyZW50VXNlci5uZXh0KGN1cnJlbnRVc2VyUmVzdWx0LmRhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDcmVkZW50aWFscyhwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgY29uc3QgbmV3Q3JlZGVudGlhbHM6IElDcmVkZW50aWFscyA9IHtcbiAgICAgIHBhc3N3b3JkLFxuICAgICAgdXNlcjogdGhpcy51aS5jdXJyZW50VXNlci52YWx1ZS5pZCxcbiAgICAgIHRlbmFudDogdGhpcy5jbGllbnQudGVuYW50XG4gICAgfTtcbiAgICB0aGlzLmF1dGgudXBkYXRlQ3JlZGVudGlhbHMobmV3Q3JlZGVudGlhbHMpO1xuICB9XG59XG4iLCI8Yzh5LW1vZGFsXG4gIFt0aXRsZV09XCInRWRpdCB1c2VyJyB8IHRyYW5zbGF0ZVwiXG4gIFtjdXN0b21Gb290ZXJdPVwidHJ1ZVwiXG4gIChvbkRpc21pc3MpPVwib25EaXNtaXNzKClcIlxuPlxuICA8Yzh5LXVzZXItZWRpdFxuICAgIFt1c2VyXT1cInVpLmN1cnJlbnRVc2VyIHwgYXN5bmNcIlxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxuICAgIFtpc1VzYWdlVHJhY2tpbmdFbmFibGVkXT1cImN1cnJlbnRVc2FnZVRyYWNraW5nU3RhdGVcIlxuICAgIFtpc1VzZXJFbmdhZ2VtZW50UHJlZmVyZW5jZUVuYWJsZWRdPVwiY3VycmVudFVzZXJFbmdhZ2VtZW50UHJlZmVyZW5jZUluaXRpYWxTdGF0ZVwiXG4gICAgW3Nob3dQcm9kdWN0RXhwZXJpZW5jZU9wdGlvbnNdPVwic2hvd1Byb2R1Y3RFeHBlcmllbmNlT3B0aW9uc1wiXG4gICAgKG9uVXNhZ2VUcmFja2luZ0NoYW5nZSk9XCJvblVzYWdlVHJhY2tpbmdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKG9uVXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlQ2hhbmdlKT1cIm9uVXNlckVuZ2FnZW1lbnRQcmVmZXJlbmNlQ2hhbmdlKCRldmVudClcIlxuICAgIChvblVzZXIpPVwidXBkYXRlQW5kQ2xvc2UoJGV2ZW50KVwiXG4gICAgKG9uQ2FuY2VsKT1cIm9uRGlzbWlzcygpXCJcbiAgPjwvYzh5LXVzZXItZWRpdD5cbjwvYzh5LW1vZGFsPlxuIl19
|
|
@@ -2015,11 +2015,11 @@ class AlarmsTypeFilterComponent {
|
|
|
2015
2015
|
return activeFilters.map(filter => filter.filters.type).join(',');
|
|
2016
2016
|
}
|
|
2017
2017
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, deps: [{ token: i1$3.AlarmEventSelectorService }, { token: i1$1.ActivatedRoute }, { token: i1$1.Router }, { token: i3.ColorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2018
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong
|
|
2018
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: AlarmsTypeFilterComponent, selector: "c8y-alarms-type-filter", inputs: { alarms: "alarms", possibleFilters: "possibleFilters", activeFilters: "activeFilters" }, outputs: { onFilterChanged: "onFilterChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong translate>The list below may not be complete.</strong>\n </p>\n <p translate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "component", type: i3.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i3.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i3.ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: i5$1.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i1.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
2019
2019
|
}
|
|
2020
2020
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AlarmsTypeFilterComponent, decorators: [{
|
|
2021
2021
|
type: Component,
|
|
2022
|
-
args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong
|
|
2022
|
+
args: [{ selector: 'c8y-alarms-type-filter', template: "<div class=\"d-flex a-i-center\">\n <div\n class=\"dropdown\"\n title=\"{{ 'Filter by Alarm types' | translate }}\"\n dropdown\n #filtersDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"filtersDropdown.isOpen\"\n (onHidden)=\"resetFilters()\"\n [insideClick]=\"true\"\n >\n <div class=\"input-group fit-w\">\n <div class=\"form-control d-flex a-i-center inner-scroll\">\n <ng-container *ngIf=\"activeFilters.length > 0; else allTypes\">\n <span\n class=\"tag tag--info chip\"\n *ngFor=\"let filter of activeFilters\"\n >\n <button\n class=\"btn btn-xs btn-clean text-10\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n (click)=\"$event.stopPropagation(); deselect(filter)\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--small\"\n [ngStyle]=\"{ 'background-color': filter.color }\"\n >\n <i\n class=\"stroked-icon\"\n c8yIcon=\"bell\"\n ></i>\n </span>\n {{ filter.filters.type }}\n </span>\n </ng-container>\n <ng-template #allTypes>\n <span class=\"text-nowrap\">\n {{ 'All alarm types' | translate }}\n </span>\n </ng-template>\n </div>\n <div class=\"input-group-btn input-group-btn--last text-center\">\n <button\n class=\"btn-default btn\"\n [title]=\"'Clear filters' | translate\"\n *ngIf=\"activeFilters.length\"\n (click)=\"deselectAll()\"\n >\n <i c8yIcon=\"times\"></i>\n </button>\n <button\n class=\"btn-default btn btn--caret\"\n [title]=\"'Alarm types' | translate\"\n data-cy=\"c8y-alarm-type-filter\"\n dropdownToggle\n >\n <i class=\"caret\"></i>\n </button>\n </div>\n </div>\n <div\n class=\"dropdown-menu dropdown-menu-action-bar\"\n style=\"max-width: unset; min-width: 250px\"\n *dropdownMenu\n >\n <div class=\"p-16 bg-level-2\">\n <div>\n <p>\n <i\n class=\"text-info m-r-4\"\n [c8yIcon]=\"'info-circle'\"\n ></i>\n <strong translate>The list below may not be complete.</strong>\n </p>\n <p translate>\n Recent alarms are displayed below. Past alarms might not be shown. Optionally you can\n add a custom alarm.\n </p>\n </div>\n </div>\n <c8y-list-group>\n <div class=\"input-group p-t-16 p-b-16 p-r-32 p-l-32 separator-bottom\">\n <input\n class=\"form-control\"\n placeholder=\"'Custom alarm type' | translate\"\n type=\"text\"\n [(ngModel)]=\"customAlarmTypeInput\"\n (keydown)=\"confirmWithEnter($event)\"\n />\n <div class=\"input-group-btn\">\n <button\n class=\"btn-dot text-primary\"\n [attr.aria-label]=\"'Add custom alarm' | translate\"\n tooltip=\"'Add' | translate\"\n placement=\"top\"\n [delay]=\"500\"\n (click)=\"addCustomAlarmType()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n\n <c8y-li\n class=\"c8y-list__item__collapse--container-small cdk-drag\"\n style=\"cursor: pointer\"\n *ngFor=\"let alarmType of possibleFilters\"\n (click)=\"toggleAlarmType(alarmType)\"\n >\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0 p-l-0\"\n [selected]=\"alarmType.__active\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"toggleAlarmType(alarmType); $event.stopPropagation()\"\n ></c8y-li-checkbox>\n <div class=\"d-flex a-i-center p-l-4\">\n <div class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-0\">\n <div class=\"c8y-colorpicker c8y-colorpicker--alarm\">\n <span\n class=\"circle-icon-wrapper\"\n [ngStyle]=\"{ 'background-color': alarmType.color }\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <span class=\"text-truncate text-12 flex-grow\">\n {{ alarmType.label }}\n </span>\n <button\n class=\"btn-dot btn-dot--danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n tooltip=\"'Remove' | translate\"\n placement=\"top\"\n *ngIf=\"alarmType.__target === null\"\n [delay]=\"500\"\n (click)=\"removeCustomAlarm(alarmType); $event.stopPropagation()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </c8y-li>\n <c8y-li *ngIf=\"possibleFilters.length === 0\">\n <c8y-ui-empty-state\n class=\"p-t-8\"\n icon=\"c8y-alarm\"\n [title]=\"'No alarm found' | translate\"\n [subtitle]=\"\n 'There is no alarm to filter. You can still add a custom alarm.' | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-li>\n <div class=\"sticky-bottom p-16\">\n <button\n class=\"btn btn-block btn-primary\"\n [disabled]=\"possibleFilters.length === 0\"\n (click)=\"applyFilterChange(); $event.stopPropagation(); filtersDropdown.hide()\"\n translate\n >\n Apply\n </button>\n </div>\n </c8y-list-group>\n </div>\n </div>\n</div>\n" }]
|
|
2023
2023
|
}], ctorParameters: () => [{ type: i1$3.AlarmEventSelectorService }, { type: i1$1.ActivatedRoute }, { type: i1$1.Router }, { type: i3.ColorService }], propDecorators: { alarms: [{
|
|
2024
2024
|
type: Input
|
|
2025
2025
|
}], possibleFilters: [{
|