@c8y/ngx-components 1020.4.3 → 1020.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts +19 -0
  2. package/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.d.ts.map +1 -0
  3. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts +32 -0
  4. package/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.d.ts.map +1 -0
  5. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts +33 -0
  6. package/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.d.ts.map +1 -0
  7. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.d.ts +24 -0
  8. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.d.ts.map +1 -0
  9. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.model.d.ts +3 -0
  10. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.model.d.ts.map +1 -0
  11. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.service.d.ts +20 -0
  12. package/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.service.d.ts.map +1 -0
  13. package/alarm-event-selector/alarm-event-selector.component.d.ts +40 -0
  14. package/alarm-event-selector/alarm-event-selector.component.d.ts.map +1 -0
  15. package/alarm-event-selector/alarm-event-selector.model.d.ts +44 -0
  16. package/alarm-event-selector/alarm-event-selector.model.d.ts.map +1 -0
  17. package/alarm-event-selector/alarm-event-selector.module.d.ts +21 -0
  18. package/alarm-event-selector/alarm-event-selector.module.d.ts.map +1 -0
  19. package/alarm-event-selector/alarm-event-selector.service.d.ts +30 -0
  20. package/alarm-event-selector/alarm-event-selector.service.d.ts.map +1 -0
  21. package/alarm-event-selector/c8y-ngx-components-alarm-event-selector.d.ts.map +1 -0
  22. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts +25 -0
  23. package/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.d.ts.map +1 -0
  24. package/alarm-event-selector/index.d.ts +7 -0
  25. package/alarm-event-selector/index.d.ts.map +1 -0
  26. package/alarm-event-selector/pipes/includes-alarm.pipe.d.ts +9 -0
  27. package/alarm-event-selector/pipes/includes-alarm.pipe.d.ts.map +1 -0
  28. package/core/product-experience/gainsight.service.d.ts.map +1 -1
  29. package/esm2022/alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.mjs +64 -0
  30. package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +121 -0
  31. package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +113 -0
  32. package/esm2022/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.mjs +37 -0
  33. package/esm2022/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.model.mjs +2 -0
  34. package/esm2022/alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.service.mjs +35 -0
  35. package/esm2022/alarm-event-selector/alarm-event-selector.component.mjs +125 -0
  36. package/esm2022/alarm-event-selector/alarm-event-selector.model.mjs +2 -0
  37. package/esm2022/alarm-event-selector/alarm-event-selector.module.mjs +67 -0
  38. package/esm2022/alarm-event-selector/alarm-event-selector.service.mjs +125 -0
  39. package/esm2022/alarm-event-selector/c8y-ngx-components-alarm-event-selector.mjs +5 -0
  40. package/esm2022/alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.mjs +65 -0
  41. package/esm2022/alarm-event-selector/index.mjs +7 -0
  42. package/esm2022/alarm-event-selector/pipes/includes-alarm.pipe.mjs +21 -0
  43. package/esm2022/core/product-experience/gainsight.service.mjs +4 -1
  44. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +711 -0
  45. package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -0
  46. package/fesm2022/c8y-ngx-components.mjs +3 -0
  47. package/fesm2022/c8y-ngx-components.mjs.map +1 -1
  48. package/locales/locales.pot +87 -0
  49. package/package.json +1 -1
@@ -0,0 +1,19 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { AbstractControl, ControlValueAccessor, FormBuilder, FormGroup, ValidationErrors, Validator } from '@angular/forms';
3
+ import { TimelineType } from '../alarm-event-selector.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AlarmEventAttributesFormComponent implements ControlValueAccessor, Validator, OnInit {
6
+ private formBuilder;
7
+ timelineType: TimelineType;
8
+ formGroup: FormGroup;
9
+ constructor(formBuilder: FormBuilder);
10
+ ngOnInit(): void;
11
+ validate(_control: AbstractControl): ValidationErrors;
12
+ writeValue(obj: any): void;
13
+ registerOnChange(fn: any): void;
14
+ registerOnTouched(fn: any): void;
15
+ setDisabledState(isDisabled: boolean): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventAttributesFormComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlarmEventAttributesFormComponent, "c8y-alarm-event-attributes-form", never, { "timelineType": { "alias": "timelineType"; "required": false; }; }, {}, never, never, false, never>;
18
+ }
19
+ //# sourceMappingURL=alarm-event-attributes-form.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-attributes-form.component.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/alarm-event-attributes-form/alarm-event-attributes-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,SAAS,EAGT,gBAAgB,EAChB,SAAS,EAEV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAE7D,qBAgBa,iCAAkC,YAAW,oBAAoB,EAAE,SAAS,EAAE,MAAM;IAInF,OAAO,CAAC,WAAW;IAHtB,YAAY,EAAE,YAAY,CAAC;IACpC,SAAS,EAAE,SAAS,CAAC;gBAED,WAAW,EAAE,WAAW;IAE5C,QAAQ;IAQR,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,gBAAgB;IAIrD,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAI1B,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAI/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;yCA9BhC,iCAAiC;2CAAjC,iCAAiC;CAiC7C"}
@@ -0,0 +1,32 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { AbstractControl, ControlValueAccessor, FormArray, FormBuilder, ValidationErrors, Validator } from '@angular/forms';
3
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
4
+ import { AlarmOrEvent, TimelineType, TimelineTypeTexts } from '../alarm-event-selector.model';
5
+ import { WidgetConfigComponent } from '@c8y/ngx-components/context-dashboard';
6
+ import { AlarmEventSelectorModalService } from '../alarm-event-selector-modal/alarm-event-selector-modal.service';
7
+ import { AlarmEventSelectorService } from '../alarm-event-selector.service';
8
+ import { AlarmEventSelectorModalOptions } from '../alarm-event-selector-modal/alarm-event-selector-modal.model';
9
+ import * as i0 from "@angular/core";
10
+ export declare class AlarmEventSelectionListComponent implements ControlValueAccessor, Validator, OnInit {
11
+ private alarmEventModalService;
12
+ private alarmEventSelectService;
13
+ private formBuilder;
14
+ private widgetComponent;
15
+ timelineType: TimelineType;
16
+ config: Partial<AlarmEventSelectorModalOptions>;
17
+ formArray: FormArray;
18
+ timelineTypeTexts: TimelineTypeTexts;
19
+ constructor(alarmEventModalService: AlarmEventSelectorModalService, alarmEventSelectService: AlarmEventSelectorService, formBuilder: FormBuilder, widgetComponent: WidgetConfigComponent);
20
+ ngOnInit(): void;
21
+ registerOnTouched(fn: any): void;
22
+ validate(_control: AbstractControl): ValidationErrors;
23
+ writeValue(val: AlarmOrEvent[]): void;
24
+ registerOnChange(fn: any): void;
25
+ add(): void;
26
+ onItemRemoved(index: number): void;
27
+ drop(event: CdkDragDrop<AlarmOrEvent[]>): void;
28
+ private transformValue;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventSelectionListComponent, [null, null, null, { optional: true; }]>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlarmEventSelectionListComponent, "c8y-alarm-event-selection-list", never, { "timelineType": { "alias": "timelineType"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
31
+ }
32
+ //# sourceMappingURL=alarm-event-selection-list.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selection-list.component.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAY,MAAM,eAAe,CAAC;AAC/E,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,WAAW,EAGX,gBAAgB,EAChB,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAmB,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kEAAkE,CAAC;AAClH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gEAAgE,CAAC;;AAEhH,qBAgBa,gCAAiC,YAAW,oBAAoB,EAAE,SAAS,EAAE,MAAM;IAQ5F,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,uBAAuB;IAC/B,OAAO,CAAC,WAAW;IACP,OAAO,CAAC,eAAe;IAV5B,YAAY,EAAE,YAAY,CAAW;IACrC,MAAM,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAM;IAE9D,SAAS,EAAE,SAAS,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;gBAG3B,sBAAsB,EAAE,8BAA8B,EACtD,uBAAuB,EAAE,yBAAyB,EAClD,WAAW,EAAE,WAAW,EACZ,eAAe,EAAE,qBAAqB;IAK5D,QAAQ,IAAI,IAAI;IAShB,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,gBAAgB;IAIrD,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI;IAWrC,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAI/B,GAAG;IAuBH,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC;IAMvC,OAAO,CAAC,cAAc;yCAjFX,gCAAgC;2CAAhC,gCAAgC;CAuF5C"}
@@ -0,0 +1,33 @@
1
+ import { EventEmitter, OnDestroy } from '@angular/core';
2
+ import { AbstractControl, ControlValueAccessor, FormBuilder, FormGroup, ValidationErrors, Validator } from '@angular/forms';
3
+ import { AlarmOrEvent, TimelineType } from '../alarm-event-selector.model';
4
+ import { Observable } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export declare class AlarmEventSelectorListItemComponent implements ControlValueAccessor, Validator, OnDestroy {
7
+ private formBuilder;
8
+ timelineType: TimelineType;
9
+ highlightText: string;
10
+ showAddRemoveButton: boolean;
11
+ isSelected: boolean;
12
+ optionToRemove: boolean;
13
+ showActiveToggle: boolean;
14
+ allowItemEdit: boolean;
15
+ added: EventEmitter<AlarmOrEvent>;
16
+ removed: EventEmitter<AlarmOrEvent>;
17
+ formGroup: FormGroup;
18
+ valid$: Observable<boolean>;
19
+ private destroy$;
20
+ constructor(formBuilder: FormBuilder);
21
+ ngOnDestroy(): void;
22
+ validate(_control: AbstractControl): ValidationErrors;
23
+ writeValue(obj: any): void;
24
+ registerOnChange(fn: any): void;
25
+ registerOnTouched(fn: any): void;
26
+ setDisabledState(isDisabled: boolean): void;
27
+ addOrRemoveItem(): void;
28
+ remove(): void;
29
+ private transformFormValue;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventSelectorListItemComponent, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlarmEventSelectorListItemComponent, "c8y-alarm-event-selector-list-item", never, { "timelineType": { "alias": "timelineType"; "required": false; }; "highlightText": { "alias": "highlightText"; "required": false; }; "showAddRemoveButton": { "alias": "showAddRemoveButton"; "required": false; }; "isSelected": { "alias": "isSelected"; "required": false; }; "optionToRemove": { "alias": "optionToRemove"; "required": false; }; "showActiveToggle": { "alias": "showActiveToggle"; "required": false; }; "allowItemEdit": { "alias": "allowItemEdit"; "required": false; }; }, { "added": "added"; "removed": "removed"; }, never, ["c8y-li-drag-handle"], false, never>;
32
+ }
33
+ //# sourceMappingURL=alarm-event-selector-list-item.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector-list-item.component.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAqB,SAAS,EAAU,MAAM,eAAe,CAAC;AAC9F,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,SAAS,EAGT,gBAAgB,EAChB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;;AAE3C,qBAgBa,mCACX,YAAW,oBAAoB,EAAE,SAAS,EAAE,SAAS;IAiBzC,OAAO,CAAC,WAAW;IAftB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,UAAQ;IAC3B,UAAU,UAAS;IACnB,cAAc,UAAS;IACvB,gBAAgB,UAAS;IACzB,aAAa,UAAS;IAErB,KAAK,6BAAoC;IACzC,OAAO,6BAAoC;IAErD,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAuB;gBAEnB,WAAW,EAAE,WAAW;IAa5C,WAAW;IAKX,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,gBAAgB;IAIrD,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAI1B,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAI/B,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAIhC,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAI3C,eAAe;IASf,MAAM;IAIN,OAAO,CAAC,kBAAkB;yCArEf,mCAAmC;2CAAnC,mCAAmC;CA0E/C"}
@@ -0,0 +1,24 @@
1
+ import { IIdentified } from '@c8y/client';
2
+ import { BsModalRef } from 'ngx-bootstrap/modal';
3
+ import { AlarmOrEvent, TimelineType } from '../alarm-event-selector.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AlarmEventSelectorModalComponent {
6
+ private bsModal;
7
+ selectType: TimelineType;
8
+ contextAsset: IIdentified;
9
+ allowChangingContext: boolean;
10
+ allowSearch: boolean;
11
+ selectedItems: AlarmOrEvent[];
12
+ title: string;
13
+ saveButtonLabel: string;
14
+ readonly result: Promise<AlarmOrEvent[]>;
15
+ private save;
16
+ private cancel;
17
+ constructor(bsModal: BsModalRef);
18
+ saveChanges(): void;
19
+ close(): void;
20
+ selectionChange(selection: Array<AlarmOrEvent>): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventSelectorModalComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlarmEventSelectorModalComponent, "c8y-alarm-event-selector-modal", never, {}, {}, never, never, false, never>;
23
+ }
24
+ //# sourceMappingURL=alarm-event-selector-modal.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector-modal.component.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAE3E,qBAIa,gCAAgC;IAgB/B,OAAO,CAAC,OAAO;IAf3B,UAAU,EAAE,YAAY,CAAW;IACnC,YAAY,EAAE,WAAW,CAAC;IAC1B,oBAAoB,UAAQ;IAC5B,WAAW,UAAQ;IACnB,aAAa,iBAA6B;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAGrC;IAEH,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,MAAM,CAAyB;gBAEnB,OAAO,EAAE,UAAU;IAEvC,WAAW,IAAI,IAAI;IAKnB,KAAK;IAKL,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;yCA5BnC,gCAAgC;2CAAhC,gCAAgC;CA+B5C"}
@@ -0,0 +1,3 @@
1
+ import { AlarmEventSelectorModalComponent } from './alarm-event-selector-modal.component';
2
+ export type AlarmEventSelectorModalOptions = Pick<AlarmEventSelectorModalComponent, 'selectType' | 'contextAsset' | 'allowChangingContext' | 'selectedItems' | 'allowSearch' | 'title' | 'saveButtonLabel'>;
3
+ //# sourceMappingURL=alarm-event-selector-modal.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector-modal.model.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAE1F,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,gCAAgC,EAC9B,YAAY,GACZ,cAAc,GACd,sBAAsB,GACtB,eAAe,GACf,aAAa,GACb,OAAO,GACP,iBAAiB,CACpB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { AlarmOrEvent } from '../alarm-event-selector.model';
2
+ import { BsModalService } from 'ngx-bootstrap/modal';
3
+ import { AlarmEventSelectorModalOptions } from './alarm-event-selector-modal.model';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service to open the alarm event selector modal.
7
+ */
8
+ export declare class AlarmEventSelectorModalService {
9
+ private modal;
10
+ constructor(modal: BsModalService);
11
+ /**
12
+ * Opents the alarm or event selector modal.
13
+ * @param initialState Initial state of the modal.
14
+ * @returns Promise that resolves with the selected alarms or events.
15
+ */
16
+ selectItems(initialState?: Partial<AlarmEventSelectorModalOptions>): Promise<AlarmOrEvent[]>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventSelectorModalService, never>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<AlarmEventSelectorModalService>;
19
+ }
20
+ //# sourceMappingURL=alarm-event-selector-modal.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector-modal.service.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/alarm-event-selector-modal/alarm-event-selector-modal.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;;AAEpF;;GAEG;AACH,qBACa,8BAA8B;IAC7B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,cAAc;IACzC;;;;OAIG;IACH,WAAW,CAAC,YAAY,GAAE,OAAO,CAAC,8BAA8B,CAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;yCAPrF,8BAA8B;6CAA9B,8BAA8B;CAiB1C"}
@@ -0,0 +1,40 @@
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { IIdentified } from '@c8y/client';
3
+ import { BehaviorSubject, Observable } from 'rxjs';
4
+ import { AlarmOrEvent, TimelineType, TimelineTypeTexts } from './alarm-event-selector.model';
5
+ import { AlarmEventSelectorService } from './alarm-event-selector.service';
6
+ import { AssetSelectionChangeEvent } from '@c8y/ngx-components/assets-navigator';
7
+ import * as i0 from "@angular/core";
8
+ export declare class AlarmEventSelectorComponent implements OnInit {
9
+ private alarmEventSelectorService;
10
+ timelineType: TimelineType;
11
+ contextAsset: IIdentified;
12
+ allowChangingContext: boolean;
13
+ selectedItems: AlarmOrEvent[];
14
+ allowSearch: boolean;
15
+ selectionChange: EventEmitter<AlarmOrEvent[]>;
16
+ filterString: string;
17
+ maxNumberOfItems: number;
18
+ loadingItems: boolean;
19
+ assetSelection: BehaviorSubject<IIdentified>;
20
+ items$: Observable<AlarmOrEvent[]>;
21
+ filteredItems$: Observable<AlarmOrEvent[]>;
22
+ filterStringChanges$: Observable<string>;
23
+ timelineTypeTexts: TimelineTypeTexts;
24
+ isExpanded: boolean;
25
+ private filterString$;
26
+ constructor(alarmEventSelectorService: AlarmEventSelectorService);
27
+ ngOnInit(): Promise<void>;
28
+ itemAdded(item: AlarmOrEvent): void;
29
+ itemRemoved(alarm: AlarmOrEvent): void;
30
+ assetSelectionChanged(evt: AssetSelectionChangeEvent): void;
31
+ trackByFn(_index: number, item: AlarmOrEvent): string;
32
+ filterStringChanged(newValue?: string): void;
33
+ private setupObservables;
34
+ private selectAsset;
35
+ private emitCurrentSelection;
36
+ private includesFilterString;
37
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventSelectorComponent, never>;
38
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlarmEventSelectorComponent, "c8y-alarm-event-selector", never, { "timelineType": { "alias": "timelineType"; "required": false; }; "contextAsset": { "alias": "contextAsset"; "required": false; }; "allowChangingContext": { "alias": "allowChangingContext"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "allowSearch": { "alias": "allowSearch"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, never, false, never>;
39
+ }
40
+ //# sourceMappingURL=alarm-event-selector.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector.component.d.ts","sourceRoot":"","sources":["../../alarm-event-selector/alarm-event-selector.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAqB,MAAM,EAAU,MAAM,eAAe,CAAC;AAE3F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAiB,UAAU,EAAE,MAAM,MAAM,CAAC;AASlE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;;AAEjF,qBAWa,2BAA4B,YAAW,MAAM;IAmB5C,OAAO,CAAC,yBAAyB;IAlBpC,YAAY,EAAE,YAAY,CAAW;IACrC,YAAY,EAAE,WAAW,CAAC;IAC1B,oBAAoB,UAAQ;IAC5B,aAAa,iBAA6B;IAC1C,WAAW,UAAQ;IAClB,eAAe,+BAAsC;IAC/D,YAAY,SAAM;IAClB,gBAAgB,SAAM;IAEtB,YAAY,UAAS;IACrB,cAAc,+BAA0C;IACxD,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IACnC,cAAc,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3C,oBAAoB,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,UAAU,UAAS;IACnB,OAAO,CAAC,aAAa,CAA2B;gBAE5B,yBAAyB,EAAE,yBAAyB;IAElE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAMnC,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAUtC,qBAAqB,CAAC,GAAG,EAAE,yBAAyB,GAAG,IAAI;IAQ3D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM;IAIrD,mBAAmB,CAAC,QAAQ,SAAK,GAAG,IAAI;YAK1B,gBAAgB;IA8B9B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;yCArGjB,2BAA2B;2CAA3B,2BAA2B;CAkHvC"}
@@ -0,0 +1,44 @@
1
+ import { IIdentified } from '@c8y/client';
2
+ export type TimelineType = 'ALARM' | 'EVENT';
3
+ type AlarmOrEventBase = {
4
+ timelineType: TimelineType;
5
+ color: string;
6
+ __active?: boolean;
7
+ label: string;
8
+ filters: {
9
+ type: string;
10
+ };
11
+ __target: IIdentified;
12
+ };
13
+ export type AlarmDetails = AlarmOrEventBase & {
14
+ timelineType: 'ALARM';
15
+ filters: {
16
+ type: string;
17
+ };
18
+ };
19
+ export type EventDetails = AlarmOrEventBase & {
20
+ timelineType: 'EVENT';
21
+ filters: {
22
+ type: string;
23
+ };
24
+ };
25
+ export type AlarmOrEvent = AlarmDetails | EventDetails;
26
+ export type TimelineTypeTexts = {
27
+ listTitle: string;
28
+ emptyStateIcon: string;
29
+ emptyStateTitle: string;
30
+ emptyStateSubtitle: string;
31
+ addButtonLabel: string;
32
+ addCustomItemButtonLabel: string;
33
+ selectorTitle: string;
34
+ availableItemsTitle: string;
35
+ assetWithNoItemsEmptyStateSubtitle: string;
36
+ largeNumberOfItemsInfo: string;
37
+ selectedItemsTitle: string;
38
+ noSelectedItemsTitle: string;
39
+ recentItemsWarningTitle: string;
40
+ recentItemsWarningText: string;
41
+ addCustomText: string;
42
+ };
43
+ export {};
44
+ //# sourceMappingURL=alarm-event-selector.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector.model.d.ts","sourceRoot":"","sources":["../../alarm-event-selector/alarm-event-selector.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE7C,KAAK,gBAAgB,GAAG;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kCAAkC,EAAE,MAAM,CAAC;IAC3C,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./alarm-event-selection-list/alarm-event-selection-list.component";
3
+ import * as i2 from "./alarm-event-selector-list-item/alarm-event-selector-list-item.component";
4
+ import * as i3 from "./alarm-event-attributes-form/alarm-event-attributes-form.component";
5
+ import * as i4 from "./alarm-event-selector-modal/alarm-event-selector-modal.component";
6
+ import * as i5 from "./alarm-event-selector.component";
7
+ import * as i6 from "./pipes/includes-alarm.pipe";
8
+ import * as i7 from "./custom-alarm-event-form/custom-alarm-event-form.component";
9
+ import * as i8 from "@c8y/ngx-components";
10
+ import * as i9 from "@angular/cdk/drag-drop";
11
+ import * as i10 from "ngx-bootstrap/popover";
12
+ import * as i11 from "ngx-bootstrap/tooltip";
13
+ import * as i12 from "@c8y/ngx-components/assets-navigator";
14
+ import * as i13 from "ngx-bootstrap/collapse";
15
+ import * as i14 from "@angular/router";
16
+ export declare class AlarmEventSelectorModule {
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventSelectorModule, never>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AlarmEventSelectorModule, [typeof i1.AlarmEventSelectionListComponent, typeof i2.AlarmEventSelectorListItemComponent, typeof i3.AlarmEventAttributesFormComponent, typeof i4.AlarmEventSelectorModalComponent, typeof i5.AlarmEventSelectorComponent, typeof i6.IncludesAlarmOrEventPipe, typeof i7.CustomAlarmEventFormComponent], [typeof i8.CommonModule, typeof i8.CoreModule, typeof i9.DragDropModule, typeof i10.PopoverModule, typeof i11.TooltipModule, typeof i12.AssetSelectorModule, typeof i13.CollapseModule, typeof i14.RouterModule], [typeof i1.AlarmEventSelectionListComponent]>;
19
+ static ɵinj: i0.ɵɵInjectorDeclaration<AlarmEventSelectorModule>;
20
+ }
21
+ //# sourceMappingURL=alarm-event-selector.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector.module.d.ts","sourceRoot":"","sources":["../../alarm-event-selector/alarm-event-selector.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAgBA,qBAsBa,wBAAwB;yCAAxB,wBAAwB;0CAAxB,wBAAwB;0CAAxB,wBAAwB;CAAG"}
@@ -0,0 +1,30 @@
1
+ import { AlarmOrEvent, TimelineType, TimelineTypeTexts } from './alarm-event-selector.model';
2
+ import { AlarmService, EventService, IIdentified } from '@c8y/client';
3
+ import { ColorService } from '@c8y/ngx-components';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AlarmEventSelectorService {
6
+ private alarmService;
7
+ private eventsService;
8
+ private color;
9
+ constructor(alarmService: AlarmService, eventsService: EventService, color: ColorService);
10
+ /**
11
+ * This method returns the texts for the timeline type.
12
+ * @param timelineType The timeline type.
13
+ * @returns The texts for the timeline type.
14
+ */
15
+ timelineTypeTexts(timelineType: TimelineType): TimelineTypeTexts;
16
+ /**
17
+ * This method returns the items of the asset based on the timeline type.
18
+ * @param parentReference The parent reference.
19
+ * @param timelineType The timeline type.
20
+ * @returns The alarms or events of the asset.
21
+ */
22
+ getItemsOfAsset(parentReference: IIdentified, timelineType: TimelineType): Promise<AlarmOrEvent[]>;
23
+ getBlankItem(timelineType: TimelineType, asset: IIdentified, blankItemColor: string): AlarmOrEvent | null;
24
+ private getAlarmsOfAsset;
25
+ private getEventsOfAsset;
26
+ private createItem;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlarmEventSelectorService, never>;
28
+ static ɵprov: i0.ɵɵInjectableDeclaration<AlarmEventSelectorService>;
29
+ }
30
+ //# sourceMappingURL=alarm-event-selector.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alarm-event-selector.service.d.ts","sourceRoot":"","sources":["../../alarm-event-selector/alarm-event-selector.service.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EAEZ,YAAY,EACZ,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAkB,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtF,OAAO,EAAE,YAAY,EAAW,MAAM,qBAAqB,CAAC;;AAE5D,qBACa,yBAAyB;IAElC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,KAAK;gBAFL,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,YAAY,EAC3B,KAAK,EAAE,YAAY;IAG7B;;;;OAIG;IACH,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,iBAAiB;IA+ChE;;;;;OAKG;IACG,eAAe,CACnB,eAAe,EAAE,WAAW,EAC5B,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,YAAY,EAAE,CAAC;IAQ1B,YAAY,CACV,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,MAAM,GACrB,YAAY,GAAG,IAAI;YA0BR,gBAAgB;YAWhB,gBAAgB;YAWhB,UAAU;yCAhIb,yBAAyB;6CAAzB,yBAAyB;CA0JrC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"c8y-ngx-components-alarm-event-selector.d.ts","sourceRoot":"","sources":["../../alarm-event-selector/c8y-ngx-components-alarm-event-selector.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,SAAS,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { FormBuilder, FormGroup } from '@angular/forms';
3
+ import { AlarmOrEvent, TimelineType } from '../alarm-event-selector.model';
4
+ import { Observable } from 'rxjs';
5
+ import { IIdentified } from '@c8y/client';
6
+ import * as i0 from "@angular/core";
7
+ export declare class CustomAlarmEventFormComponent implements OnInit, OnDestroy {
8
+ private formBuilder;
9
+ timelineType: TimelineType;
10
+ target: IIdentified;
11
+ added: EventEmitter<AlarmOrEvent>;
12
+ cancel: EventEmitter<void>;
13
+ formGroup: FormGroup;
14
+ valid$: Observable<boolean>;
15
+ private destroy$;
16
+ private defaultColor;
17
+ constructor(formBuilder: FormBuilder);
18
+ ngOnInit(): void;
19
+ ngOnDestroy(): void;
20
+ add(): void;
21
+ private transformFormValue;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomAlarmEventFormComponent, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<CustomAlarmEventFormComponent, "c8y-custom-alarm-event-form", never, { "timelineType": { "alias": "timelineType"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, { "added": "added"; "cancel": "cancel"; }, never, never, false, never>;
24
+ }
25
+ //# sourceMappingURL=custom-alarm-event-form.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-alarm-event-form.component.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/custom-alarm-event-form/custom-alarm-event-form.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,YAAY,EAAS,SAAS,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;;AAE1C,qBAIa,6BAA8B,YAAW,MAAM,EAAE,SAAS;IAWzD,OAAO,CAAC,WAAW;IAVtB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACnB,KAAK,6BAAoC;IACzC,MAAM,qBAA4B;IAE5C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAS;gBAET,WAAW,EAAE,WAAW;IAe5C,QAAQ;IAaR,WAAW;IAKX,GAAG;IAOH,OAAO,CAAC,kBAAkB;yCAnDf,6BAA6B;2CAA7B,6BAA6B;CAwDzC"}
@@ -0,0 +1,7 @@
1
+ export * from './alarm-event-selector.module';
2
+ export * from './alarm-event-selection-list/alarm-event-selection-list.component';
3
+ export * from './alarm-event-selector.model';
4
+ export * from './alarm-event-selector.service';
5
+ export * from './alarm-event-selector-modal/alarm-event-selector-modal.service';
6
+ export * from './alarm-event-attributes-form/alarm-event-attributes-form.component';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../alarm-event-selector/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mEAAmE,CAAC;AAClF,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iEAAiE,CAAC;AAChF,cAAc,qEAAqE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { AlarmDetails, EventDetails } from '../alarm-event-selector.model';
3
+ import * as i0 from "@angular/core";
4
+ export declare class IncludesAlarmOrEventPipe implements PipeTransform {
5
+ transform<T extends AlarmDetails | EventDetails>(itemList: T[], item?: T): boolean;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<IncludesAlarmOrEventPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<IncludesAlarmOrEventPipe, "includesAlarmOrEvent", false>;
8
+ }
9
+ //# sourceMappingURL=includes-alarm.pipe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"includes-alarm.pipe.d.ts","sourceRoot":"","sources":["../../../alarm-event-selector/pipes/includes-alarm.pipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;;AAE3E,qBAGa,wBAAyB,YAAW,aAAa;IAC5D,SAAS,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO;yCADvE,wBAAwB;uCAAxB,wBAAwB;CAYpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gainsight.service.d.ts","sourceRoot":"","sources":["../../../core/product-experience/gainsight.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gainsight.service.d.ts","sourceRoot":"","sources":["../../../core/product-experience/gainsight.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,OAAO,EAA4B,MAAM,MAAM,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;;AAOzD;;;;;;GAMG;AACH,UAAU,YAAY;IACpB,IAAI,EAAE,KAAK,CAAC;IACZ,aAAa,EAAE,cAAc,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAGa,gBAAgB;IA4BzB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,gBAAgB;IA/B1B;;OAEG;IACH,YAAY,uBAA6B;IACzC,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,CAAiB;IAElD;;;OAGG;IACH,QAAQ,CAAC,8BAA8B,sBAAsB;IAC7D;;OAEG;IACH,QAAQ,CAAC,0CAA0C,yBAAyB;IAC5E,QAAQ,CAAC,2BAA2B,iBAAiB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+C;IAC7E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAe;IACtD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAO;IAClD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAa;IAC9C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,0BAA0B,CAA4B;IAC9D,OAAO,CAAC,cAAc,CAAS;gBAGrB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,cAAc,EACvB,mBAAmB,EAAE,mBAAmB,EACxC,sBAAsB,EAAE,sBAAsB,EAC9C,gBAAgB,EAAE,gBAAgB;IAG5C;;;;OAIG;IACG,8CAA8C,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM9F;;;OAGG;IACH,mBAAmB,CAAC,KAAK,EAAE,OAAO;IAa5B,eAAe;IAOrB;;;OAGG;IACH,IAAI,WAAW,QAEd;IAED;;;;OAIG;IACG,OAAO,CAAC,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO;IAmDjE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY;IA0DzD;;;;;;OAMG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW;IAOnD,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAmBnD;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAU3C;;;;;OAKG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAIhF;;;;;;;;;;OAUG;IACG,gCAAgC,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB1D;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAOxB,uBAAuB,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM;IAQ1D;;;;;OAKG;IACH,2CAA2C,CAAC,gBAAgB,EAAE,iBAAiB;IAK/E;;;;OAIG;IACH,gBAAgB,IAAI,OAAO;IAK3B;;;OAGG;IACH,kBAAkB;IAIlB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,oBAAoB;IAK5B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,uBAAuB;IAa/B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;yCA/Yb,gBAAgB;6CAAhB,gBAAgB;CA6Z5B"}
@@ -0,0 +1,64 @@
1
+ import { Component, forwardRef, Input } from '@angular/core';
2
+ import { FormBuilder, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
3
+ import { take } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@c8y/ngx-components";
7
+ export class AlarmEventAttributesFormComponent {
8
+ constructor(formBuilder) {
9
+ this.formBuilder = formBuilder;
10
+ }
11
+ ngOnInit() {
12
+ this.formGroup = this.formBuilder.group({
13
+ label: ['', [Validators.required]],
14
+ filters: this.formBuilder.group({ type: ['', [Validators.required]] }),
15
+ timelineType: ''
16
+ });
17
+ }
18
+ validate(_control) {
19
+ return this.formGroup?.valid ? null : { formInvalid: {} };
20
+ }
21
+ writeValue(obj) {
22
+ this.formGroup.patchValue(obj);
23
+ }
24
+ registerOnChange(fn) {
25
+ this.formGroup.valueChanges.subscribe(fn);
26
+ }
27
+ registerOnTouched(fn) {
28
+ this.formGroup.valueChanges.pipe(take(1)).subscribe(fn);
29
+ }
30
+ setDisabledState(isDisabled) {
31
+ isDisabled ? this.formGroup.disable() : this.formGroup.enable();
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AlarmEventAttributesFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: AlarmEventAttributesFormComponent, selector: "c8y-alarm-event-attributes-form", inputs: { timelineType: "timelineType" }, providers: [
35
+ {
36
+ provide: NG_VALUE_ACCESSOR,
37
+ useExisting: forwardRef(() => AlarmEventAttributesFormComponent),
38
+ multi: true
39
+ },
40
+ {
41
+ provide: NG_VALIDATORS,
42
+ useExisting: forwardRef(() => AlarmEventAttributesFormComponent),
43
+ multi: true
44
+ }
45
+ ], ngImport: i0, template: "<div [formGroup]=\"formGroup\">\n <c8y-form-group>\n <label class=\"m-0\">{{ 'Label' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example:\n timelineType === 'ALARM'\n ? 'Alarm unavailable'\n : 'Location update'\n }\n \"\n />\n </c8y-form-group>\n\n <div formGroupName=\"filters\">\n <c8y-form-group>\n <label class=\"m-0\">{{ 'Type' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"type\"\n formControlName=\"type\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example:\n timelineType === 'ALARM'\n ? 'c8y_UnavailabilityAlarm'\n : 'c8y_LocationUpdate'\n }\n \"\n />\n </c8y-form-group>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2.FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: i2.RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "pipe", type: i2.C8yTranslatePipe, name: "translate" }] }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: AlarmEventAttributesFormComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'c8y-alarm-event-attributes-form', providers: [
50
+ {
51
+ provide: NG_VALUE_ACCESSOR,
52
+ useExisting: forwardRef(() => AlarmEventAttributesFormComponent),
53
+ multi: true
54
+ },
55
+ {
56
+ provide: NG_VALIDATORS,
57
+ useExisting: forwardRef(() => AlarmEventAttributesFormComponent),
58
+ multi: true
59
+ }
60
+ ], template: "<div [formGroup]=\"formGroup\">\n <c8y-form-group>\n <label class=\"m-0\">{{ 'Label' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"label\"\n formControlName=\"label\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example:\n timelineType === 'ALARM'\n ? 'Alarm unavailable'\n : 'Location update'\n }\n \"\n />\n </c8y-form-group>\n\n <div formGroupName=\"filters\">\n <c8y-form-group>\n <label class=\"m-0\">{{ 'Type' | translate }}</label>\n <input\n class=\"form-control flex-grow\"\n name=\"type\"\n formControlName=\"type\"\n [placeholder]=\"\n 'e.g. {{ example }}'\n | translate\n : {\n example:\n timelineType === 'ALARM'\n ? 'c8y_UnavailabilityAlarm'\n : 'c8y_LocationUpdate'\n }\n \"\n />\n </c8y-form-group>\n </div>\n</div>\n" }]
61
+ }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { timelineType: [{
62
+ type: Input
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tZXZlbnQtYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FsYXJtLWV2ZW50LXNlbGVjdG9yL2FsYXJtLWV2ZW50LWF0dHJpYnV0ZXMtZm9ybS9hbGFybS1ldmVudC1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vYWxhcm0tZXZlbnQtc2VsZWN0b3IvYWxhcm0tZXZlbnQtYXR0cmlidXRlcy1mb3JtL2FsYXJtLWV2ZW50LWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUdMLFdBQVcsRUFFWCxhQUFhLEVBQ2IsaUJBQWlCLEVBR2pCLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQW1CdEMsTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdEMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEUsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUF5QjtRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xFLENBQUM7OEdBaENVLGlDQUFpQztrR0FBakMsaUNBQWlDLG9HQWJqQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQ2hFLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDaEUsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzdCSCwwbENBeUNBOzsyRkRWYSxpQ0FBaUM7a0JBaEI3QyxTQUFTOytCQUNFLGlDQUFpQyxhQUVoQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxrQ0FBa0MsQ0FBQzs0QkFDaEUsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtDQUFrQyxDQUFDOzRCQUNoRSxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtnRkFHUSxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUaW1lbGluZVR5cGUgfSBmcm9tICcuLi9hbGFybS1ldmVudC1zZWxlY3Rvci5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hbGFybS1ldmVudC1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWxhcm0tZXZlbnQtYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbGFybUV2ZW50QXR0cmlidXRlc0Zvcm1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBbGFybUV2ZW50QXR0cmlidXRlc0Zvcm1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQWxhcm1FdmVudEF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0IHtcbiAgQElucHV0KCkgdGltZWxpbmVUeXBlOiBUaW1lbGluZVR5cGU7XG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBsYWJlbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgZmlsdGVyczogdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7IHR5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSB9KSxcbiAgICAgIHRpbWVsaW5lVHlwZTogJydcbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlKF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXA/LnZhbGlkID8gbnVsbCA6IHsgZm9ybUludmFsaWQ6IHt9IH07XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShvYmopO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShmbik7XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGZuKTtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlzRGlzYWJsZWQgPyB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCkgOiB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8Yzh5LWZvcm0tZ3JvdXA+XG4gICAgPGxhYmVsIGNsYXNzPVwibS0wXCI+e3sgJ0xhYmVsJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmbGV4LWdyb3dcIlxuICAgICAgbmFtZT1cImxhYmVsXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImxhYmVsXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJcbiAgICAgICAgJ2UuZy4ge3sgZXhhbXBsZSB9fSdcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgZXhhbXBsZTpcbiAgICAgICAgICAgICAgICAgIHRpbWVsaW5lVHlwZSA9PT0gJ0FMQVJNJ1xuICAgICAgICAgICAgICAgICAgICA/ICdBbGFybSB1bmF2YWlsYWJsZSdcbiAgICAgICAgICAgICAgICAgICAgOiAnTG9jYXRpb24gdXBkYXRlJ1xuICAgICAgICAgICAgICB9XG4gICAgICBcIlxuICAgIC8+XG4gIDwvYzh5LWZvcm0tZ3JvdXA+XG5cbiAgPGRpdiBmb3JtR3JvdXBOYW1lPVwiZmlsdGVyc1wiPlxuICAgIDxjOHktZm9ybS1ncm91cD5cbiAgICAgIDxsYWJlbCBjbGFzcz1cIm0tMFwiPnt7ICdUeXBlJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZmxleC1ncm93XCJcbiAgICAgICAgbmFtZT1cInR5cGVcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICdlLmcuIHt7IGV4YW1wbGUgfX0nXG4gICAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIGV4YW1wbGU6XG4gICAgICAgICAgICAgICAgICAgIHRpbWVsaW5lVHlwZSA9PT0gJ0FMQVJNJ1xuICAgICAgICAgICAgICAgICAgICAgID8gJ2M4eV9VbmF2YWlsYWJpbGl0eUFsYXJtJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2M4eV9Mb2NhdGlvblVwZGF0ZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgICAvPlxuICAgIDwvYzh5LWZvcm0tZ3JvdXA+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=