@c8y/ngx-components 1023.85.1 → 1023.88.2
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/ai/agent-chat/index.d.ts.map +1 -1
- package/alarm-event-selector/index.d.ts +6 -0
- package/alarm-event-selector/index.d.ts.map +1 -1
- package/context-dashboard/index.d.ts +11 -1
- package/context-dashboard/index.d.ts.map +1 -1
- package/data-preparation/index.d.ts +10 -0
- package/data-preparation/index.d.ts.map +1 -0
- package/datapoint-selector/index.d.ts +2 -1
- package/datapoint-selector/index.d.ts.map +1 -1
- package/echart/index.d.ts +1 -0
- package/echart/index.d.ts.map +1 -1
- package/echart/models/index.d.ts +1 -0
- package/echart/models/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +12 -2
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +90 -21
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-preparation.mjs +63 -0
- package/fesm2022/c8y-ngx-components-data-preparation.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +14 -12
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +102 -44
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +2 -2
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs +2 -2
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-alarms-alarm-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-definitions-event-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs +30 -6
- package/fesm2022/c8y-ngx-components-widgets-definitions-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs +4 -4
- package/fesm2022/c8y-ngx-components-widgets-definitions-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-definitions-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-pie-chart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-radial-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-silo.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-events.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs +10 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-pie-chart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +2 -2
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +32 -10
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/locales/locales.pot +39 -0
- package/package.json +1 -1
- package/widgets/definitions/info-gauge/index.d.ts.map +1 -1
- package/widgets/implementations/pie-chart/index.d.ts.map +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, forwardRef, Input, Component, EventEmitter, Output, Pipe, ContentChild, Optional, NgModule, inject } from '@angular/core';
|
|
2
|
+
import { Injectable, forwardRef, Input, Component, EventEmitter, Output, Pipe, ContentChild, Optional, NgModule, signal, computed, inject } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/forms';
|
|
4
4
|
import { FormControl, Validators, FormsModule, ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS, NgForm, ControlContainer } from '@angular/forms';
|
|
5
5
|
import { take, takeUntil, map, startWith, tap, switchMap, shareReplay, distinctUntilChanged, debounceTime } from 'rxjs/operators';
|
|
6
|
-
import { NgIf, NgFor, NgClass, AsyncPipe
|
|
6
|
+
import { NgIf, NgFor, NgClass, AsyncPipe } from '@angular/common';
|
|
7
7
|
import * as i2 from '@c8y/ngx-components';
|
|
8
|
-
import { FormGroupComponent, RequiredInputPlaceholderDirective, MessagesComponent, MessageDirective, C8yTranslatePipe, IconDirective, ListItemComponent, ListItemDragHandleComponent, ListItemCheckboxComponent, HighlightComponent,
|
|
8
|
+
import { FormGroupComponent, RequiredInputPlaceholderDirective, MessagesComponent, MessageDirective, C8yTranslatePipe, IconDirective, ListItemComponent, ListItemDragHandleComponent, ListItemCheckboxComponent, HighlightComponent, ListItemCollapseComponent, EmptyStateComponent, LoadingComponent, ListGroupComponent, C8yTranslateDirective, ViewContext, CommonModule, CoreModule } from '@c8y/ngx-components';
|
|
9
9
|
import { moveItemInArray, CdkDropList, CdkDrag, CdkDragHandle, DragDropModule } from '@angular/cdk/drag-drop';
|
|
10
10
|
import * as i6 from '@c8y/ngx-components/context-dashboard';
|
|
11
|
-
import { WidgetConfigService } from '@c8y/ngx-components/context-dashboard';
|
|
11
|
+
import { WidgetConfigService, WidgetConfigFeedbackComponent } from '@c8y/ngx-components/context-dashboard';
|
|
12
12
|
import * as i1$2 from 'ngx-bootstrap/modal';
|
|
13
13
|
import { MillerViewComponent, AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';
|
|
14
14
|
import { Subject, BehaviorSubject, combineLatest } from 'rxjs';
|
|
@@ -17,9 +17,10 @@ import { uniqBy } from 'lodash-es';
|
|
|
17
17
|
import { gettext } from '@c8y/ngx-components/gettext';
|
|
18
18
|
import { CollapseDirective, CollapseModule } from 'ngx-bootstrap/collapse';
|
|
19
19
|
import { PopoverDirective, PopoverModule } from 'ngx-bootstrap/popover';
|
|
20
|
+
import * as i2$1 from 'ngx-bootstrap/tooltip';
|
|
21
|
+
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
20
22
|
import * as i4 from '@angular/router';
|
|
21
23
|
import { RouterModule } from '@angular/router';
|
|
22
|
-
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
23
24
|
|
|
24
25
|
class AlarmEventAttributesFormService {
|
|
25
26
|
duplicateTypeValidator(selectedItems) {
|
|
@@ -384,6 +385,7 @@ class AlarmEventSelectorListItemComponent {
|
|
|
384
385
|
.pipe(map(tmp => this.transformFormValue(tmp)), takeUntil(this.destroy$))
|
|
385
386
|
.subscribe(fn);
|
|
386
387
|
}
|
|
388
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
387
389
|
registerOnTouched(fn) {
|
|
388
390
|
this.formGroup.valueChanges.pipe(take(1)).subscribe(fn);
|
|
389
391
|
}
|
|
@@ -402,13 +404,14 @@ class AlarmEventSelectorListItemComponent {
|
|
|
402
404
|
remove() {
|
|
403
405
|
this.removed.emit(this.transformFormValue(this.formGroup.value));
|
|
404
406
|
}
|
|
407
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
405
408
|
transformFormValue(formValue) {
|
|
406
409
|
const obj = Object.assign({}, formValue.details || {}, formValue);
|
|
407
410
|
delete obj.details;
|
|
408
411
|
return obj;
|
|
409
412
|
}
|
|
410
413
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AlarmEventSelectorListItemComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
411
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
414
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: AlarmEventSelectorListItemComponent, isStandalone: true, selector: "c8y-alarm-event-selector-list-item", inputs: { timelineType: "timelineType", datapoints: "datapoints", highlightText: "highlightText", showAddRemoveButton: "showAddRemoveButton", isSelected: "isSelected", optionToRemove: "optionToRemove", showActiveToggle: "showActiveToggle", allowItemEdit: "allowItemEdit", hideSource: "hideSource", displayAsSwitch: "displayAsSwitch", omitProperties: "omitProperties" }, outputs: { added: "added", removed: "removed" }, providers: [
|
|
412
415
|
{
|
|
413
416
|
provide: NG_VALUE_ACCESSOR,
|
|
414
417
|
useExisting: forwardRef(() => AlarmEventSelectorListItemComponent),
|
|
@@ -419,7 +422,7 @@ class AlarmEventSelectorListItemComponent {
|
|
|
419
422
|
useExisting: forwardRef(() => AlarmEventSelectorListItemComponent),
|
|
420
423
|
multi: true
|
|
421
424
|
}
|
|
422
|
-
], ngImport: i0, template: "<c8y-li\n class=\"c8y-list__item__collapse--container-small\"\n [formGroup]=\"formGroup\"\n #li\n>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n
|
|
425
|
+
], ngImport: i0, template: "<c8y-li\n class=\"c8y-list__item__collapse--container-small\"\n [formGroup]=\"formGroup\"\n #li\n>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n @if (showActiveToggle) {\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0\"\n [displayAsSwitch]=\"displayAsSwitch\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n }\n\n <div class=\"d-flex a-i-center p-l-0\">\n <div\n class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-16\"\n [title]=\"colorPickerTitle | translate\"\n >\n <div\n class=\"c8y-colorpicker\"\n [class.c8y-colorpicker--alarm]=\"timelineType === 'ALARM'\"\n [class.c8y-colorpicker--event]=\"timelineType === 'EVENT'\"\n >\n <input\n [style.pointer-events]=\"allowItemEdit && !omitProperties.color ? 'auto' : 'none'\"\n type=\"color\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--medium\"\n [style.background-color]=\"formGroup.value.color\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"timelineType === 'EVENT' ? 'online1' : 'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <button\n class=\"btn-clean text-truncate\"\n [title]=\"formGroup.value.details?.label\"\n (click)=\"\n allowItemEdit\n ? (li.collapsed = !li.collapsed)\n : showActiveToggle\n ? toggleActive()\n : addOrRemoveItem()\n \"\n >\n <span class=\"text-truncate\">\n <c8y-highlight\n [text]=\"\n omitProperties.label\n ? formGroup.value.details?.filters?.type\n : formGroup.value.details?.label\n \"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n @if (formGroup.value.__target && !hideSource) {\n <small class=\"text-truncate text-muted icon-flex\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n }\n </button>\n\n <span class=\"m-l-auto d-flex a-i-center m-r-4\">\n @if ((valid$ | async) === false && li.collapsed) {\n <button\n class=\"btn-dot btn-dot--danger\"\n title=\"{{ 'Invalid entries' | translate }}\"\n [popover]=\"'Some entries are invalid. Check the required input fields.' | translate\"\n container=\"body\"\n type=\"button\"\n [outsideClick]=\"true\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n </button>\n }\n @if (showAddRemoveButton) {\n <span>\n @if (isSelected) {\n <button\n class=\"btn btn-dot text-danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n } @else {\n <button\n class=\"btn btn-dot text-primary\"\n [attr.aria-label]=\"'Select' | translate\"\n [tooltip]=\"'Select' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [disabled]=\"(valid$ | async) === false\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"plus-circle\"\n ></i>\n </button>\n }\n </span>\n }\n @if (optionToRemove) {\n <button\n class=\"showOnHover btn btn-dot btn-dot--danger m-r-4\"\n [attr.aria-label]=\"'Remove from list' | translate\"\n [tooltip]=\"'Remove from list' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n data-cy=\"alarm-event-selector-list-item--remove-btn\"\n [delay]=\"500\"\n (click)=\"remove()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n }\n </span>\n </div>\n\n @if (allowItemEdit) {\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <c8y-alarm-event-attributes-form\n formControlName=\"details\"\n [timelineType]=\"timelineType\"\n [omitProperties]=\"omitProperties\"\n [datapoints]=\"datapoints\"\n [target]=\"formGroup.value.__target\"\n ></c8y-alarm-event-attributes-form>\n </div>\n </c8y-li-collapse>\n }\n</c8y-li>\n", dependencies: [{ kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "ngmodule", type: FormsModule }, { 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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: ListItemCheckboxComponent, selector: "c8y-list-item-checkbox, c8y-li-checkbox", inputs: ["selected", "indeterminate", "disabled", "displayAsSwitch"], outputs: ["onSelect"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "directive", type: PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i2$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: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: AlarmEventAttributesFormComponent, selector: "c8y-alarm-event-attributes-form", inputs: ["timelineType", "omitProperties", "selectedItems", "target", "datapoints"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
423
426
|
}
|
|
424
427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AlarmEventSelectorListItemComponent, decorators: [{
|
|
425
428
|
type: Component,
|
|
@@ -439,21 +442,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
439
442
|
FormsModule,
|
|
440
443
|
ReactiveFormsModule,
|
|
441
444
|
ListItemDragHandleComponent,
|
|
442
|
-
NgIf,
|
|
443
|
-
ListItemIconComponent,
|
|
444
445
|
IconDirective,
|
|
445
446
|
ListItemCheckboxComponent,
|
|
446
|
-
NgClass,
|
|
447
447
|
RequiredInputPlaceholderDirective,
|
|
448
|
-
NgStyle,
|
|
449
448
|
HighlightComponent,
|
|
450
449
|
PopoverDirective,
|
|
451
|
-
|
|
450
|
+
TooltipModule,
|
|
452
451
|
ListItemCollapseComponent,
|
|
453
452
|
AlarmEventAttributesFormComponent,
|
|
454
453
|
C8yTranslatePipe,
|
|
455
454
|
AsyncPipe
|
|
456
|
-
], template: "<c8y-li\n class=\"c8y-list__item__collapse--container-small\"\n [formGroup]=\"formGroup\"\n #li\n>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n <c8y-li-checkbox\n
|
|
455
|
+
], template: "<c8y-li\n class=\"c8y-list__item__collapse--container-small\"\n [formGroup]=\"formGroup\"\n #li\n>\n <c8y-li-drag-handle><ng-content select=\"c8y-li-drag-handle\"></ng-content></c8y-li-drag-handle>\n @if (showActiveToggle) {\n <c8y-li-checkbox\n class=\"a-s-center m-t-4 p-r-0\"\n [displayAsSwitch]=\"displayAsSwitch\"\n formControlName=\"__active\"\n (click)=\"$event.stopPropagation()\"\n ></c8y-li-checkbox>\n }\n\n <div class=\"d-flex a-i-center p-l-0\">\n <div\n class=\"c8y-list__item__colorpicker p-t-0 p-b-0 p-l-16\"\n [title]=\"colorPickerTitle | translate\"\n >\n <div\n class=\"c8y-colorpicker\"\n [class.c8y-colorpicker--alarm]=\"timelineType === 'ALARM'\"\n [class.c8y-colorpicker--event]=\"timelineType === 'EVENT'\"\n >\n <input\n [style.pointer-events]=\"allowItemEdit && !omitProperties.color ? 'auto' : 'none'\"\n type=\"color\"\n formControlName=\"color\"\n (click)=\"$event.stopPropagation()\"\n />\n <span\n class=\"circle-icon-wrapper circle-icon-wrapper--medium\"\n [style.background-color]=\"formGroup.value.color\"\n >\n <i\n class=\"stroked-icon\"\n [c8yIcon]=\"timelineType === 'EVENT' ? 'online1' : 'bell'\"\n ></i>\n </span>\n </div>\n </div>\n <button\n class=\"btn-clean text-truncate\"\n [title]=\"formGroup.value.details?.label\"\n (click)=\"\n allowItemEdit\n ? (li.collapsed = !li.collapsed)\n : showActiveToggle\n ? toggleActive()\n : addOrRemoveItem()\n \"\n >\n <span class=\"text-truncate\">\n <c8y-highlight\n [text]=\"\n omitProperties.label\n ? formGroup.value.details?.filters?.type\n : formGroup.value.details?.label\n \"\n [pattern]=\"highlightText\"\n [shouldTrimPattern]=\"true\"\n ></c8y-highlight>\n </span>\n @if (formGroup.value.__target && !hideSource) {\n <small class=\"text-truncate text-muted icon-flex\">\n <i c8yIcon=\"exchange\"></i>\n <span class=\"text-truncate\">{{ formGroup.value.__target.name }}</span>\n </small>\n }\n </button>\n\n <span class=\"m-l-auto d-flex a-i-center m-r-4\">\n @if ((valid$ | async) === false && li.collapsed) {\n <button\n class=\"btn-dot btn-dot--danger\"\n title=\"{{ 'Invalid entries' | translate }}\"\n [popover]=\"'Some entries are invalid. Check the required input fields.' | translate\"\n container=\"body\"\n type=\"button\"\n [outsideClick]=\"true\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"exclamation-circle\"\n ></i>\n </button>\n }\n @if (showAddRemoveButton) {\n <span>\n @if (isSelected) {\n <button\n class=\"btn btn-dot text-danger\"\n [attr.aria-label]=\"'Remove' | translate\"\n [tooltip]=\"'Remove' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"minus-circle\"\n ></i>\n </button>\n } @else {\n <button\n class=\"btn btn-dot text-primary\"\n [attr.aria-label]=\"'Select' | translate\"\n [tooltip]=\"'Select' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [disabled]=\"(valid$ | async) === false\"\n [delay]=\"500\"\n (click)=\"addOrRemoveItem()\"\n >\n <i\n class=\"icon-20\"\n c8yIcon=\"plus-circle\"\n ></i>\n </button>\n }\n </span>\n }\n @if (optionToRemove) {\n <button\n class=\"showOnHover btn btn-dot btn-dot--danger m-r-4\"\n [attr.aria-label]=\"'Remove from list' | translate\"\n [tooltip]=\"'Remove from list' | translate\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n data-cy=\"alarm-event-selector-list-item--remove-btn\"\n [delay]=\"500\"\n (click)=\"remove()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n }\n </span>\n </div>\n\n @if (allowItemEdit) {\n <c8y-li-collapse>\n <div class=\"data-point-details\">\n <c8y-alarm-event-attributes-form\n formControlName=\"details\"\n [timelineType]=\"timelineType\"\n [omitProperties]=\"omitProperties\"\n [datapoints]=\"datapoints\"\n [target]=\"formGroup.value.__target\"\n ></c8y-alarm-event-attributes-form>\n </div>\n </c8y-li-collapse>\n }\n</c8y-li>\n" }]
|
|
457
456
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { timelineType: [{
|
|
458
457
|
type: Input
|
|
459
458
|
}], datapoints: [{
|
|
@@ -854,7 +853,7 @@ class AlarmEventSelectionListComponent {
|
|
|
854
853
|
useExisting: forwardRef(() => AlarmEventSelectionListComponent),
|
|
855
854
|
multi: true
|
|
856
855
|
}
|
|
857
|
-
], queries: [{ propertyName: "emptyState", first: true, predicate: EmptyStateComponent, descendants: true }], ngImport: i0, template: "@if (!inline) {\n <div class=\"card-header separator-top-bottom sticky-top bg-inherit\">\n <span class=\"card-title h4\">{{ title | translate }}</span>\n </div>\n}\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"formArray.controls?.length < 2\"\n>\n @if (!formArray.controls?.length) {\n <div class=\"p-t-8\">\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n @if (!emptyState) {\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.emptyStateSubtitle | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n }\n\n @for (formGroup of formGroups; track formGroup; let index = $index) {\n <div [formGroup]=\"formGroup\">\n <c8y-alarm-event-selector-list-item\n class=\"d-block\"\n cdkDrag\n [cdkDragDisabled]=\"!canDragAndDrop\"\n formControlName=\"details\"\n [showAddRemoveButton]=\"false\"\n [datapoints]=\"datapoints\"\n [optionToRemove]=\"canRemove\"\n [showActiveToggle]=\"true\"\n [timelineType]=\"timelineType\"\n [allowItemEdit]=\"canEdit\"\n [hideSource]=\"hideSource\"\n [displayAsSwitch]=\"activeToggleAsSwitch\"\n [omitProperties]=\"omitProperties\"\n (removed)=\"onItemRemoved(index)\"\n >\n @if (canDragAndDrop) {\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n }\n </c8y-alarm-event-selector-list-item>\n </div>\n }\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"addButtonLabel | translate\"\n type=\"button\"\n (click)=\"add()\"\n >\n @if (canDragAndDrop) {\n <i c8yIcon=\"plus-circle\"></i>\n }\n {{ addButtonLabel | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AlarmEventSelectorListItemComponent, selector: "c8y-alarm-event-selector-list-item", inputs: ["timelineType", "datapoints", "highlightText", "showAddRemoveButton", "isSelected", "optionToRemove", "showActiveToggle", "allowItemEdit", "hideSource", "displayAsSwitch", "omitProperties"], outputs: ["added", "removed"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
856
|
+
], queries: [{ propertyName: "emptyState", first: true, predicate: EmptyStateComponent, descendants: true }], ngImport: i0, template: "@if (!inline) {\n <div class=\"card-header separator-top-bottom sticky-top bg-inherit\">\n <span class=\"card-title h4\">{{ title | translate }}</span>\n </div>\n}\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n [class.separator-top]=\"formArray.controls?.length\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"formArray.controls?.length < 2\"\n>\n @if (!formArray.controls?.length) {\n <div class=\"p-t-8\">\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n @if (!emptyState) {\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.emptyStateSubtitle | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n }\n\n @for (formGroup of formGroups; track formGroup; let index = $index) {\n <div [formGroup]=\"formGroup\">\n <c8y-alarm-event-selector-list-item\n class=\"d-block\"\n cdkDrag\n [cdkDragDisabled]=\"!canDragAndDrop\"\n formControlName=\"details\"\n [showAddRemoveButton]=\"false\"\n [datapoints]=\"datapoints\"\n [optionToRemove]=\"canRemove\"\n [showActiveToggle]=\"true\"\n [timelineType]=\"timelineType\"\n [allowItemEdit]=\"canEdit\"\n [hideSource]=\"hideSource\"\n [displayAsSwitch]=\"activeToggleAsSwitch\"\n [omitProperties]=\"omitProperties\"\n (removed)=\"onItemRemoved(index)\"\n >\n @if (canDragAndDrop) {\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n }\n </c8y-alarm-event-selector-list-item>\n </div>\n }\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"addButtonLabel | translate\"\n type=\"button\"\n (click)=\"add()\"\n >\n @if (canDragAndDrop) {\n <i c8yIcon=\"plus-circle\"></i>\n }\n {{ addButtonLabel | translate }}\n </button>\n</div>\n", dependencies: [{ kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: AlarmEventSelectorListItemComponent, selector: "c8y-alarm-event-selector-list-item", inputs: ["timelineType", "datapoints", "highlightText", "showAddRemoveButton", "isSelected", "optionToRemove", "showActiveToggle", "allowItemEdit", "hideSource", "displayAsSwitch", "omitProperties"], outputs: ["added", "removed"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
858
857
|
}
|
|
859
858
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AlarmEventSelectionListComponent, decorators: [{
|
|
860
859
|
type: Component,
|
|
@@ -882,7 +881,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
882
881
|
IconDirective,
|
|
883
882
|
NgClass,
|
|
884
883
|
C8yTranslatePipe
|
|
885
|
-
], template: "@if (!inline) {\n <div class=\"card-header separator-top-bottom sticky-top bg-inherit\">\n <span class=\"card-title h4\">{{ title | translate }}</span>\n </div>\n}\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"formArray.controls?.length < 2\"\n>\n @if (!formArray.controls?.length) {\n <div class=\"p-t-8\">\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n @if (!emptyState) {\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.emptyStateSubtitle | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n }\n\n @for (formGroup of formGroups; track formGroup; let index = $index) {\n <div [formGroup]=\"formGroup\">\n <c8y-alarm-event-selector-list-item\n class=\"d-block\"\n cdkDrag\n [cdkDragDisabled]=\"!canDragAndDrop\"\n formControlName=\"details\"\n [showAddRemoveButton]=\"false\"\n [datapoints]=\"datapoints\"\n [optionToRemove]=\"canRemove\"\n [showActiveToggle]=\"true\"\n [timelineType]=\"timelineType\"\n [allowItemEdit]=\"canEdit\"\n [hideSource]=\"hideSource\"\n [displayAsSwitch]=\"activeToggleAsSwitch\"\n [omitProperties]=\"omitProperties\"\n (removed)=\"onItemRemoved(index)\"\n >\n @if (canDragAndDrop) {\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n }\n </c8y-alarm-event-selector-list-item>\n </div>\n }\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"addButtonLabel | translate\"\n type=\"button\"\n (click)=\"add()\"\n >\n @if (canDragAndDrop) {\n <i c8yIcon=\"plus-circle\"></i>\n }\n {{ addButtonLabel | translate }}\n </button>\n</div>\n" }]
|
|
884
|
+
], template: "@if (!inline) {\n <div class=\"card-header separator-top-bottom sticky-top bg-inherit\">\n <span class=\"card-title h4\">{{ title | translate }}</span>\n </div>\n}\n\n<c8y-list-group\n class=\"flex-grow ff-scroll-fix cdk-droplist\"\n [class.separator-top]=\"formArray.controls?.length\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"formArray.controls?.length < 2\"\n>\n @if (!formArray.controls?.length) {\n <div class=\"p-t-8\">\n <ng-content select=\"c8y-ui-empty-state\"></ng-content>\n @if (!emptyState) {\n <c8y-ui-empty-state\n class=\"p-t-8\"\n [icon]=\"timelineTypeTexts.emptyStateIcon\"\n [title]=\"timelineTypeTexts.emptyStateTitle | translate\"\n [subtitle]=\"timelineTypeTexts.emptyStateSubtitle | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n }\n </div>\n }\n\n @for (formGroup of formGroups; track formGroup; let index = $index) {\n <div [formGroup]=\"formGroup\">\n <c8y-alarm-event-selector-list-item\n class=\"d-block\"\n cdkDrag\n [cdkDragDisabled]=\"!canDragAndDrop\"\n formControlName=\"details\"\n [showAddRemoveButton]=\"false\"\n [datapoints]=\"datapoints\"\n [optionToRemove]=\"canRemove\"\n [showActiveToggle]=\"true\"\n [timelineType]=\"timelineType\"\n [allowItemEdit]=\"canEdit\"\n [hideSource]=\"hideSource\"\n [displayAsSwitch]=\"activeToggleAsSwitch\"\n [omitProperties]=\"omitProperties\"\n (removed)=\"onItemRemoved(index)\"\n >\n @if (canDragAndDrop) {\n <c8y-li-drag-handle\n title=\"{{ 'Click and drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n }\n </c8y-alarm-event-selector-list-item>\n </div>\n }\n</c8y-list-group>\n\n<div class=\"card-footer bg-inherit\">\n <button\n class=\"btn btn-default btn-sm\"\n [title]=\"addButtonLabel | translate\"\n type=\"button\"\n (click)=\"add()\"\n >\n @if (canDragAndDrop) {\n <i c8yIcon=\"plus-circle\"></i>\n }\n {{ addButtonLabel | translate }}\n </button>\n</div>\n" }]
|
|
886
885
|
}], ctorParameters: () => [{ type: AlarmEventSelectorModalService }, { type: AlarmEventSelectorService }, { type: i1.FormBuilder }, { type: i4.ActivatedRoute, decorators: [{
|
|
887
886
|
type: Optional
|
|
888
887
|
}] }, { type: i2.ContextRouteService, decorators: [{
|
|
@@ -985,13 +984,18 @@ class WidgetEventSelectorComponent {
|
|
|
985
984
|
* - MIXED: Stores both alarms and events together
|
|
986
985
|
*/
|
|
987
986
|
this.configStoreMode = 'ISOLATED';
|
|
987
|
+
this.eventsSignal = signal([], ...(ngDevMode ? [{ debugName: "eventsSignal" }] : []));
|
|
988
|
+
this.eventsCount = computed(() => this.eventsSignal().length, ...(ngDevMode ? [{ debugName: "eventsCount" }] : []));
|
|
988
989
|
this.widgetConfigService = inject(WidgetConfigService);
|
|
989
990
|
this.timelineType = 'EVENT';
|
|
991
|
+
this.noneSelectedText = gettext('None selected`event`');
|
|
990
992
|
}
|
|
991
993
|
ngOnInit() {
|
|
992
994
|
this.events = this.getEvents();
|
|
995
|
+
this.eventsSignal.set(this.events);
|
|
993
996
|
}
|
|
994
997
|
onEventsChange(events) {
|
|
998
|
+
this.eventsSignal.set(events ?? []);
|
|
995
999
|
this.updateEventsConfig(events ?? []);
|
|
996
1000
|
}
|
|
997
1001
|
getEvents() {
|
|
@@ -1012,7 +1016,7 @@ class WidgetEventSelectorComponent {
|
|
|
1012
1016
|
return alarmOrEvents ?? [];
|
|
1013
1017
|
}
|
|
1014
1018
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetEventSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1015
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1019
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: WidgetEventSelectorComponent, isStandalone: true, selector: "c8y-widget-event-selector", inputs: { controlName: "controlName", configStoreMode: "configStoreMode" }, host: { classAttribute: "bg-level-1" }, ngImport: i0, template: `
|
|
1016
1020
|
<c8y-alarm-event-selection-list
|
|
1017
1021
|
class="bg-inherit"
|
|
1018
1022
|
name="eventsConfigs"
|
|
@@ -1022,7 +1026,19 @@ class WidgetEventSelectorComponent {
|
|
|
1022
1026
|
[inline]="true"
|
|
1023
1027
|
[datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
|
|
1024
1028
|
></c8y-alarm-event-selection-list>
|
|
1025
|
-
|
|
1029
|
+
|
|
1030
|
+
<c8y-widget-config-feedback>
|
|
1031
|
+
<span class="tag tag--info chip text-12">
|
|
1032
|
+
@if (eventsCount() === 0) {
|
|
1033
|
+
{{ noneSelectedText | translate }}
|
|
1034
|
+
} @else if (eventsCount() === 1) {
|
|
1035
|
+
{{ '1 event' | translate }}
|
|
1036
|
+
} @else {
|
|
1037
|
+
{{ '{{ count }} events' | translate: { count: eventsCount() } }}
|
|
1038
|
+
}
|
|
1039
|
+
</span>
|
|
1040
|
+
</c8y-widget-config-feedback>
|
|
1041
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AlarmEventSelectionListComponent, selector: "c8y-alarm-event-selection-list", inputs: ["timelineType", "canRemove", "canEdit", "canDragAndDrop", "title", "addButtonLabel", "hideSource", "inline", "activeToggleAsSwitch", "omitProperties", "datapoints", "config"] }, { kind: "component", type: WidgetConfigFeedbackComponent, selector: "c8y-widget-config-feedback" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
1026
1042
|
}
|
|
1027
1043
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetEventSelectorComponent, decorators: [{
|
|
1028
1044
|
type: Component,
|
|
@@ -1038,10 +1054,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
1038
1054
|
[inline]="true"
|
|
1039
1055
|
[datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
|
|
1040
1056
|
></c8y-alarm-event-selection-list>
|
|
1057
|
+
|
|
1058
|
+
<c8y-widget-config-feedback>
|
|
1059
|
+
<span class="tag tag--info chip text-12">
|
|
1060
|
+
@if (eventsCount() === 0) {
|
|
1061
|
+
{{ noneSelectedText | translate }}
|
|
1062
|
+
} @else if (eventsCount() === 1) {
|
|
1063
|
+
{{ '1 event' | translate }}
|
|
1064
|
+
} @else {
|
|
1065
|
+
{{ '{{ count }} events' | translate: { count: eventsCount() } }}
|
|
1066
|
+
}
|
|
1067
|
+
</span>
|
|
1068
|
+
</c8y-widget-config-feedback>
|
|
1041
1069
|
`,
|
|
1042
1070
|
host: { class: 'bg-level-1' },
|
|
1043
1071
|
standalone: true,
|
|
1044
|
-
imports: [
|
|
1072
|
+
imports: [
|
|
1073
|
+
FormsModule,
|
|
1074
|
+
AlarmEventSelectionListComponent,
|
|
1075
|
+
AsyncPipe,
|
|
1076
|
+
WidgetConfigFeedbackComponent,
|
|
1077
|
+
C8yTranslatePipe
|
|
1078
|
+
],
|
|
1045
1079
|
viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]
|
|
1046
1080
|
}]
|
|
1047
1081
|
}], propDecorators: { controlName: [{
|
|
@@ -1063,13 +1097,18 @@ class WidgetAlarmSelectorComponent {
|
|
|
1063
1097
|
* - MIXED: Stores both alarms and events together
|
|
1064
1098
|
*/
|
|
1065
1099
|
this.configStoreMode = 'ISOLATED';
|
|
1100
|
+
this.alarmsSignal = signal([], ...(ngDevMode ? [{ debugName: "alarmsSignal" }] : []));
|
|
1101
|
+
this.alarmsCount = computed(() => this.alarmsSignal().length, ...(ngDevMode ? [{ debugName: "alarmsCount" }] : []));
|
|
1066
1102
|
this.widgetConfigService = inject(WidgetConfigService);
|
|
1067
1103
|
this.timelineType = 'ALARM';
|
|
1104
|
+
this.noneSelectedText = gettext('None selected`alarm`');
|
|
1068
1105
|
}
|
|
1069
1106
|
ngOnInit() {
|
|
1070
1107
|
this.alarms = this.getAlarms();
|
|
1108
|
+
this.alarmsSignal.set(this.alarms);
|
|
1071
1109
|
}
|
|
1072
1110
|
onAlarmsChange(alarms) {
|
|
1111
|
+
this.alarmsSignal.set(alarms ?? []);
|
|
1073
1112
|
this.updateAlarmsConfig(alarms ?? []);
|
|
1074
1113
|
}
|
|
1075
1114
|
getAlarms() {
|
|
@@ -1090,7 +1129,7 @@ class WidgetAlarmSelectorComponent {
|
|
|
1090
1129
|
return alarmsOrEvents ?? [];
|
|
1091
1130
|
}
|
|
1092
1131
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetAlarmSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1093
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1132
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: WidgetAlarmSelectorComponent, isStandalone: true, selector: "c8y-widget-alarm-selector", inputs: { controlName: "controlName", configStoreMode: "configStoreMode" }, host: { classAttribute: "bg-level-1" }, ngImport: i0, template: `
|
|
1094
1133
|
<c8y-alarm-event-selection-list
|
|
1095
1134
|
class="bg-inherit"
|
|
1096
1135
|
name="alarmsConfigs"
|
|
@@ -1100,7 +1139,19 @@ class WidgetAlarmSelectorComponent {
|
|
|
1100
1139
|
[inline]="true"
|
|
1101
1140
|
[datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
|
|
1102
1141
|
></c8y-alarm-event-selection-list>
|
|
1103
|
-
|
|
1142
|
+
|
|
1143
|
+
<c8y-widget-config-feedback>
|
|
1144
|
+
<span class="tag tag--info chip text-12">
|
|
1145
|
+
@if (alarmsCount() === 0) {
|
|
1146
|
+
{{ noneSelectedText | translate }}
|
|
1147
|
+
} @else if (alarmsCount() === 1) {
|
|
1148
|
+
{{ '1 alarm' | translate }}
|
|
1149
|
+
} @else {
|
|
1150
|
+
{{ '{{ count }} alarms' | translate: { count: alarmsCount() } }}
|
|
1151
|
+
}
|
|
1152
|
+
</span>
|
|
1153
|
+
</c8y-widget-config-feedback>
|
|
1154
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: AlarmEventSelectionListComponent, selector: "c8y-alarm-event-selection-list", inputs: ["timelineType", "canRemove", "canEdit", "canDragAndDrop", "title", "addButtonLabel", "hideSource", "inline", "activeToggleAsSwitch", "omitProperties", "datapoints", "config"] }, { kind: "component", type: WidgetConfigFeedbackComponent, selector: "c8y-widget-config-feedback" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] }); }
|
|
1104
1155
|
}
|
|
1105
1156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetAlarmSelectorComponent, decorators: [{
|
|
1106
1157
|
type: Component,
|
|
@@ -1116,10 +1167,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
1116
1167
|
[inline]="true"
|
|
1117
1168
|
[datapoints]="(widgetConfigService.currentConfig$ | async)?.datapoints"
|
|
1118
1169
|
></c8y-alarm-event-selection-list>
|
|
1170
|
+
|
|
1171
|
+
<c8y-widget-config-feedback>
|
|
1172
|
+
<span class="tag tag--info chip text-12">
|
|
1173
|
+
@if (alarmsCount() === 0) {
|
|
1174
|
+
{{ noneSelectedText | translate }}
|
|
1175
|
+
} @else if (alarmsCount() === 1) {
|
|
1176
|
+
{{ '1 alarm' | translate }}
|
|
1177
|
+
} @else {
|
|
1178
|
+
{{ '{{ count }} alarms' | translate: { count: alarmsCount() } }}
|
|
1179
|
+
}
|
|
1180
|
+
</span>
|
|
1181
|
+
</c8y-widget-config-feedback>
|
|
1119
1182
|
`,
|
|
1120
1183
|
host: { class: 'bg-level-1' },
|
|
1121
1184
|
standalone: true,
|
|
1122
|
-
imports: [
|
|
1185
|
+
imports: [
|
|
1186
|
+
FormsModule,
|
|
1187
|
+
AlarmEventSelectionListComponent,
|
|
1188
|
+
AsyncPipe,
|
|
1189
|
+
WidgetConfigFeedbackComponent,
|
|
1190
|
+
C8yTranslatePipe
|
|
1191
|
+
],
|
|
1123
1192
|
viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]
|
|
1124
1193
|
}]
|
|
1125
1194
|
}], propDecorators: { controlName: [{
|