@c8y/ngx-components 1024.1.8 → 1024.5.1
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/fesm2022/c8y-ngx-components-bookmarks.mjs +33 -23
- package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +2 -2
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +65 -25
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +363 -38
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +27 -9
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart-models.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +796 -123
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +391 -54
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +9 -11
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs +43 -0
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +17 -3
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +179 -41
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +5 -4
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +10 -4
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-time-context.mjs +146 -20
- package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +5 -4
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs +6 -5
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +198 -24
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +109 -36
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/locales/de.po +141 -13
- package/locales/es.po +141 -13
- package/locales/fr.po +141 -13
- package/locales/ja_JP.po +140 -14
- package/locales/ko.po +141 -13
- package/locales/locales.pot +139 -11
- package/locales/nl.po +141 -13
- package/locales/pl.po +141 -13
- package/locales/pt_BR.po +141 -13
- package/locales/zh_CN.po +141 -13
- package/locales/zh_TW.po +141 -13
- package/package.json +1 -1
- package/types/c8y-ngx-components-bookmarks.d.ts +7 -7
- package/types/c8y-ngx-components-bookmarks.d.ts.map +1 -1
- package/types/c8y-ngx-components-datapoint-explorer-view.d.ts +4 -1
- package/types/c8y-ngx-components-datapoint-explorer-view.d.ts.map +1 -1
- package/types/c8y-ngx-components-datapoint-selector.d.ts +93 -5
- package/types/c8y-ngx-components-datapoint-selector.d.ts.map +1 -1
- package/types/c8y-ngx-components-device-profile.d.ts +5 -2
- package/types/c8y-ngx-components-device-profile.d.ts.map +1 -1
- package/types/c8y-ngx-components-echart-models.d.ts +25 -3
- package/types/c8y-ngx-components-echart-models.d.ts.map +1 -1
- package/types/c8y-ngx-components-echart.d.ts +65 -5
- package/types/c8y-ngx-components-echart.d.ts.map +1 -1
- package/types/c8y-ngx-components-global-context.d.ts +187 -7
- package/types/c8y-ngx-components-global-context.d.ts.map +1 -1
- package/types/c8y-ngx-components-protocol-opcua.d.ts.map +1 -1
- package/types/c8y-ngx-components-remote-access-data.d.ts +19 -0
- package/types/c8y-ngx-components-remote-access-data.d.ts.map +1 -1
- package/types/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts +10 -3
- package/types/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.d.ts.map +1 -1
- package/types/c8y-ngx-components-remote-access-terminal-viewer.d.ts +20 -2
- package/types/c8y-ngx-components-remote-access-terminal-viewer.d.ts.map +1 -1
- package/types/c8y-ngx-components-repository-firmware.d.ts.map +1 -1
- package/types/c8y-ngx-components-repository-software.d.ts +2 -0
- package/types/c8y-ngx-components-repository-software.d.ts.map +1 -1
- package/types/c8y-ngx-components-time-context.d.ts +50 -8
- package/types/c8y-ngx-components-time-context.d.ts.map +1 -1
- package/types/c8y-ngx-components-trusted-certificates.d.ts.map +1 -1
- package/types/c8y-ngx-components-widgets-implementations-alarms.d.ts +1 -0
- package/types/c8y-ngx-components-widgets-implementations-alarms.d.ts.map +1 -1
- package/types/c8y-ngx-components-widgets-implementations-asset-table.d.ts.map +1 -1
- package/types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts +25 -0
- package/types/c8y-ngx-components-widgets-implementations-datapoints-graph.d.ts.map +1 -1
- package/types/c8y-ngx-components-widgets-implementations-datapoints-list.d.ts +1 -0
- package/types/c8y-ngx-components-widgets-implementations-datapoints-list.d.ts.map +1 -1
- package/types/c8y-ngx-components-widgets-implementations-scada.d.ts +2 -0
- package/types/c8y-ngx-components-widgets-implementations-scada.d.ts.map +1 -1
- package/types/c8y-ngx-components.d.ts +55 -12
- package/types/c8y-ngx-components.d.ts.map +1 -1
|
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Injectable, input, effect, Directive, Pipe, createEnvironmentInjector, InjectionToken, Optional, Inject, EventEmitter, NgModule, LOCALE_ID, NgModuleRef, createNgModule, isDevMode, inject, DOCUMENT, EnvironmentInjector, Injector, Input, HostListener, Component, HostBinding, Output, forwardRef, DestroyRef, ViewChild, signal, viewChild, ChangeDetectionStrategy, contentChildren, untracked, SecurityContext, TemplateRef, ElementRef, provideAppInitializer, Self, SkipSelf, Attribute, ContentChild, ContentChildren, ViewContainerRef, output, ChangeDetectorRef, ViewChildren, createComponent, runInInjectionContext, importProvidersFrom, SimpleChange, reflectComponentType, ViewEncapsulation, computed, Type } from '@angular/core';
|
|
3
3
|
import * as i1$2 from 'ngx-bootstrap/dropdown';
|
|
4
4
|
import { BsDropdownDirective, BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
5
|
+
import * as i4$2 from '@angular/cdk/a11y';
|
|
5
6
|
import { ConfigurableFocusTrapFactory, CdkTrapFocus, A11yModule } from '@angular/cdk/a11y';
|
|
6
7
|
import { of, Observable, map, startWith, distinctUntilChanged, shareReplay, merge, defer, combineLatest, race, isObservable, from, Subject, BehaviorSubject, ReplaySubject, firstValueFrom, lastValueFrom, NEVER, filter as filter$1, tap as tap$1, mergeMap, fromEvent, pipe, throwError, interval, take as take$1, takeUntil as takeUntil$1, concat, fromEventPattern, withLatestFrom, catchError as catchError$1, empty, timer, forkJoin, debounceTime as debounceTime$1, switchMap as switchMap$1, skip as skip$1 } from 'rxjs';
|
|
7
8
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -19440,6 +19441,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
19440
19441
|
* control only when the user confirms an edit (save), not on every keystroke.
|
|
19441
19442
|
* When `noSaveButton` is `true`, every keystroke propagates instead.
|
|
19442
19443
|
*
|
|
19444
|
+
* The model update (`onChange`) happens before the `(save)` event fires, so
|
|
19445
|
+
* `(save)` handlers can read the committed value directly from the bound form
|
|
19446
|
+
* control or `ngModel`.
|
|
19447
|
+
*
|
|
19443
19448
|
* Supports synchronous and asynchronous validators via the `validators` and
|
|
19444
19449
|
* `asyncValidators` inputs. Validation errors are shown while the user is
|
|
19445
19450
|
* editing; saving is blocked when the typed value is invalid or a validator
|
|
@@ -19597,9 +19602,9 @@ class InputGroupEditableComponent {
|
|
|
19597
19602
|
const value = this.internalControl.value ?? '';
|
|
19598
19603
|
this.committedValue = value;
|
|
19599
19604
|
this.errors = null;
|
|
19600
|
-
this.save.emit(value);
|
|
19601
19605
|
this.onChange?.(value);
|
|
19602
19606
|
this.onTouched?.();
|
|
19607
|
+
this.save.emit(value);
|
|
19603
19608
|
this.internalControl.reset(value, { emitEvent: false });
|
|
19604
19609
|
this.notifyAutoresize();
|
|
19605
19610
|
this.announce(gettext$1('Saved'));
|
|
@@ -19616,7 +19621,8 @@ class InputGroupEditableComponent {
|
|
|
19616
19621
|
this.cancel.emit();
|
|
19617
19622
|
this.announce(gettext$1('Cancelled'));
|
|
19618
19623
|
}
|
|
19619
|
-
onEscape() {
|
|
19624
|
+
onEscape(event) {
|
|
19625
|
+
event.stopPropagation();
|
|
19620
19626
|
this.onCancel();
|
|
19621
19627
|
this.inputEl()?.nativeElement.blur();
|
|
19622
19628
|
}
|
|
@@ -19640,7 +19646,7 @@ class InputGroupEditableComponent {
|
|
|
19640
19646
|
useExisting: forwardRef(() => InputGroupEditableComponent),
|
|
19641
19647
|
multi: true
|
|
19642
19648
|
}
|
|
19643
|
-
], queries: [{ propertyName: "customErrorMessages", predicate: MessageDirective }], viewQueries: [{ propertyName: "autoresizeDir", first: true, predicate: TextareaAutoresizeDirective, descendants: true, isSignal: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape()\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape()\"\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton()) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.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$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19649
|
+
], queries: [{ propertyName: "customErrorMessages", predicate: MessageDirective }], viewQueries: [{ propertyName: "autoresizeDir", first: true, predicate: TextareaAutoresizeDirective, descendants: true, isSignal: true }, { propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n data-1p-ignore\n data-lpignore=\"true\"\n data-bwignore\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton()) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.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$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: TextareaAutoresizeDirective, selector: "[c8y-textarea-autoresize]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19644
19650
|
}
|
|
19645
19651
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: InputGroupEditableComponent, decorators: [{
|
|
19646
19652
|
type: Component,
|
|
@@ -19657,7 +19663,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
19657
19663
|
useExisting: forwardRef(() => InputGroupEditableComponent),
|
|
19658
19664
|
multi: true
|
|
19659
19665
|
}
|
|
19660
|
-
], template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape()\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape()\"\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton()) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n" }]
|
|
19666
|
+
], template: "<c8y-form-group\n [class]=\"formGroupClass()\"\n [status]=\"!!errors ? 'error' : ''\"\n>\n <div\n class=\"input-group input-group-editable\"\n [class.input-group-sm]=\"size() === 'sm'\"\n [class.input-group-lg]=\"size() === 'lg'\"\n [class.input-group-editable--no-actions]=\"noSaveButton()\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n role=\"group\"\n >\n @if (multiline()) {\n <textarea\n class=\"form-control no-resize\"\n [style.max-height]=\"maxHeight() || null\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.control.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n c8y-textarea-autoresize\n ></textarea>\n } @else {\n <input\n class=\"form-control\"\n [attr.aria-label]=\"ariaLabel() | translate\"\n data-cy=\"c8y-input-group-editable--input\"\n #inputEl\n [attr.maxlength]=\"maxLength()\"\n [attr.name]=\"name() || null\"\n [attr.autocomplete]=\"autocomplete()\"\n [placeholder]=\"(placeholder() | translate) || ''\"\n [formControl]=\"internalControl\"\n (keydown.enter)=\"noSaveButton() ? null : onSave()\"\n (keydown.escape)=\"onEscape($event)\"\n data-1p-ignore\n data-lpignore=\"true\"\n data-bwignore\n />\n }\n <!-- Edit mode indicator hook used by _input-groups.scss -->\n <span aria-hidden=\"true\"></span>\n @if (!internalControl.disabled && !noSaveButton()) {\n <div class=\"input-group-btn min-width-0\">\n <button\n class=\"btn btn-clean\"\n [title]=\"'Cancel' | translate\"\n [attr.aria-label]=\"'Cancel' | translate\"\n type=\"button\"\n (click)=\"onCancel()\"\n >\n <i\n c8yIcon=\"times\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button\n class=\"btn btn-clean text-primary\"\n [title]=\"'Save' | translate\"\n [attr.aria-label]=\"'Save' | translate\"\n type=\"button\"\n [disabled]=\"isSaveDisabled\"\n (click)=\"onSave()\"\n >\n <i\n c8yIcon=\"check\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n }\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >{{ liveMessage | translate }}</span\n >\n </div>\n <c8y-messages\n [show]=\"errors\"\n [additionalMessages]=\"customErrorMessages\"\n ></c8y-messages>\n</c8y-form-group>\n" }]
|
|
19661
19667
|
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: true }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], multiline: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiline", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxLength: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxLength", required: false }] }], noSaveButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "noSaveButton", required: false }] }], formGroupClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "formGroupClass", required: false }] }], validators: [{ type: i0.Input, args: [{ isSignal: true, alias: "validators", required: false }] }], asyncValidators: [{ type: i0.Input, args: [{ isSignal: true, alias: "asyncValidators", required: false }] }], autocomplete: [{ type: i0.Input, args: [{ isSignal: true, alias: "autocomplete", required: false }] }], save: [{ type: i0.Output, args: ["save"] }], cancel: [{ type: i0.Output, args: ["cancel"] }], customErrorMessages: [{
|
|
19662
19668
|
type: ContentChildren,
|
|
19663
19669
|
args: [MessageDirective]
|
|
@@ -30907,8 +30913,12 @@ const AGGREGATION_ICONS = {
|
|
|
30907
30913
|
HOURLY: 'clock-o',
|
|
30908
30914
|
DAILY: 'calendar-o'
|
|
30909
30915
|
};
|
|
30916
|
+
const AUTO_AGGREGATION_ICON = 'automation';
|
|
30917
|
+
/** Toggle/display tooltip for auto mode, with the current aggregation-point count. */
|
|
30918
|
+
const AUTO_POINTS_TOOLTIP = gettext$1('Auto — {{ points }} points per chart');
|
|
30919
|
+
const AUTO_POINTS_TOOLTIP_KEPT = gettext$1('Auto — {{ points }} points per chart, kept on zoom');
|
|
30910
30920
|
const AGGREGATION_TEXTS = {
|
|
30911
|
-
disabled: gettext$1('
|
|
30921
|
+
disabled: gettext$1('Unavailable while real-time or auto-refresh is on.'),
|
|
30912
30922
|
undefined: gettext$1('No aggregation'),
|
|
30913
30923
|
MINUTELY: gettext$1('Minutely aggregation'),
|
|
30914
30924
|
HOURLY: gettext$1('Hourly aggregation'),
|
|
@@ -31374,6 +31384,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
31374
31384
|
], standalone: true, imports: [TooltipModule, NgClass, C8yTranslatePipe], template: " <button\n class=\"btn btn-icon c8y-realtime\"\n [attr.aria-label]=\"(value ? disableRealtimeLabel : enableRealtimeLabel) | translate\"\n tooltip=\"{{ (value ? disableRealtimeLabel : enableRealtimeLabel) | translate }}\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n (click)=\"onChange(!value)\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n [disabled]=\"disabled\"\n>\n <span\n class=\"c8y-pulse m-0\"\n [ngClass]=\"{ active: value, inactive: !value }\"\n ></span>\n</button>\n" }]
|
|
31375
31385
|
}] });
|
|
31376
31386
|
|
|
31387
|
+
const AUTO_AGGREGATION_ID = 'AUTO';
|
|
31377
31388
|
class AggregationPickerComponent {
|
|
31378
31389
|
constructor() {
|
|
31379
31390
|
/**
|
|
@@ -31381,9 +31392,33 @@ class AggregationPickerComponent {
|
|
|
31381
31392
|
* By default no aggregation type is disabled.
|
|
31382
31393
|
*/
|
|
31383
31394
|
this.disabledAggregations = {};
|
|
31395
|
+
/** Emits `true` when the user selects "Auto", `false` when switching away from it. */
|
|
31396
|
+
this.autoModeChange = output();
|
|
31397
|
+
this.AUTO_ITEM_ID = AUTO_AGGREGATION_ID;
|
|
31398
|
+
this.AUTO_LABEL = gettext$1('Auto');
|
|
31399
|
+
this.AUTO_ICON = AUTO_AGGREGATION_ICON;
|
|
31384
31400
|
this.AGGREGATIONS = AGGREGATIONS;
|
|
31385
31401
|
this.AGGREGATION_ICONS = AGGREGATION_ICONS;
|
|
31402
|
+
this.AGGREGATION_LABELS = AGGREGATION_LABELS;
|
|
31386
31403
|
this.AGGREGATION_TEXTS = AGGREGATION_TEXTS;
|
|
31404
|
+
/** Number of aggregation points shown in the toggle badge while auto mode is active. */
|
|
31405
|
+
this.autoPoints = input(null, ...(ngDevMode ? [{ debugName: "autoPoints" }] : /* istanbul ignore next */ []));
|
|
31406
|
+
/** Whether the point count is kept on zoom; surfaced in the toggle tooltip in auto mode. */
|
|
31407
|
+
this.autoKeepPointCount = input(null, ...(ngDevMode ? [{ debugName: "autoKeepPointCount" }] : /* istanbul ignore next */ []));
|
|
31408
|
+
/** Toggle tooltip/aria text for auto mode, with the current point count. */
|
|
31409
|
+
this.AUTO_POINTS_TOOLTIP = AUTO_POINTS_TOOLTIP;
|
|
31410
|
+
this.AUTO_POINTS_TOOLTIP_KEPT = AUTO_POINTS_TOOLTIP_KEPT;
|
|
31411
|
+
/**
|
|
31412
|
+
* When true, appends an "Auto" option to the radio group that signals automatic
|
|
31413
|
+
* aggregation selection. Use together with `autoModeActive` and `(autoModeChange)`.
|
|
31414
|
+
* Only meaningful in radio layout.
|
|
31415
|
+
*/
|
|
31416
|
+
this.showAutoMode = input(false, ...(ngDevMode ? [{ debugName: "showAutoMode" }] : /* istanbul ignore next */ []));
|
|
31417
|
+
/**
|
|
31418
|
+
* Controls whether the "Auto" radio option appears checked.
|
|
31419
|
+
* Bind to your form's auto-mode boolean so the picker reflects external state.
|
|
31420
|
+
*/
|
|
31421
|
+
this.autoModeActive = input(false, ...(ngDevMode ? [{ debugName: "autoModeActive" }] : /* istanbul ignore next */ []));
|
|
31387
31422
|
this.touched = false;
|
|
31388
31423
|
this.disabled = false;
|
|
31389
31424
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
@@ -31409,14 +31444,37 @@ class AggregationPickerComponent {
|
|
|
31409
31444
|
setDisabledState(disabled) {
|
|
31410
31445
|
this.disabled = disabled;
|
|
31411
31446
|
}
|
|
31447
|
+
selectAggregation(aggregation) {
|
|
31448
|
+
const isAuto = aggregation === AUTO_AGGREGATION_ID;
|
|
31449
|
+
if (isAuto && this.autoModeActive()) {
|
|
31450
|
+
return;
|
|
31451
|
+
}
|
|
31452
|
+
if (!isAuto && !this.autoModeActive() && aggregation === this.value) {
|
|
31453
|
+
return;
|
|
31454
|
+
}
|
|
31455
|
+
this.markAsTouched();
|
|
31456
|
+
const wasAuto = this.autoModeActive();
|
|
31457
|
+
if (isAuto) {
|
|
31458
|
+
this.value = null;
|
|
31459
|
+
this.onChange(null);
|
|
31460
|
+
this.autoModeChange.emit(true);
|
|
31461
|
+
}
|
|
31462
|
+
else {
|
|
31463
|
+
this.value = aggregation;
|
|
31464
|
+
this.onChange(aggregation);
|
|
31465
|
+
if (wasAuto) {
|
|
31466
|
+
this.autoModeChange.emit(false);
|
|
31467
|
+
}
|
|
31468
|
+
}
|
|
31469
|
+
}
|
|
31412
31470
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: AggregationPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31413
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: AggregationPickerComponent, isStandalone: true, selector: "c8y-aggregation-picker", inputs: { disabledAggregations: "disabledAggregations" }, providers: [
|
|
31471
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: AggregationPickerComponent, isStandalone: true, selector: "c8y-aggregation-picker", inputs: { disabledAggregations: { classPropertyName: "disabledAggregations", publicName: "disabledAggregations", isSignal: false, isRequired: false, transformFunction: null }, autoPoints: { classPropertyName: "autoPoints", publicName: "autoPoints", isSignal: true, isRequired: false, transformFunction: null }, autoKeepPointCount: { classPropertyName: "autoKeepPointCount", publicName: "autoKeepPointCount", isSignal: true, isRequired: false, transformFunction: null }, showAutoMode: { classPropertyName: "showAutoMode", publicName: "showAutoMode", isSignal: true, isRequired: false, transformFunction: null }, autoModeActive: { classPropertyName: "autoModeActive", publicName: "autoModeActive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { autoModeChange: "autoModeChange" }, providers: [
|
|
31414
31472
|
{
|
|
31415
31473
|
provide: NG_VALUE_ACCESSOR,
|
|
31416
31474
|
useExisting: forwardRef(() => AggregationPickerComponent),
|
|
31417
31475
|
multi: true
|
|
31418
31476
|
}
|
|
31419
|
-
], ngImport: i0, template: "<div\n class=\"dropdown\"\n style=\"border: 0; margin-left: -1px\"\n #dropdown=\"bs-dropdown\"\n dropdown\n [insideClick]=\"true\"\n [isDisabled]=\"disabled\"\n>\n <button\n class=\"dropdown-toggle form-control p-t-0 p-b-0 l-h-1 d-flex a-i-center\"\n [attr.aria-label]=\"
|
|
31477
|
+
], ngImport: i0, template: "<div\n class=\"dropdown\"\n style=\"border: 0; margin-left: -1px\"\n #dropdown=\"bs-dropdown\"\n dropdown\n [insideClick]=\"true\"\n [isDisabled]=\"disabled\"\n>\n @let toggleText =\n autoModeActive()\n ? autoPoints() != null\n ? ((autoKeepPointCount() ? AUTO_POINTS_TOOLTIP_KEPT : AUTO_POINTS_TOOLTIP)\n | translate: { points: autoPoints() })\n : (AUTO_LABEL | translate)\n : value\n ? (AGGREGATION_TEXTS[value] | translate)\n : (AGGREGATION_TEXTS.undefined | translate);\n <button\n class=\"dropdown-toggle form-control p-t-0 p-b-0 l-h-1 d-flex a-i-center\"\n [attr.aria-label]=\"toggleText\"\n [tooltip]=\"disabled ? (AGGREGATION_TEXTS.disabled | translate) : toggleText\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n dropdownToggle\n >\n <i\n class=\"m-r-8\"\n [c8yIcon]=\"\n autoModeActive()\n ? AUTO_ICON\n : value\n ? AGGREGATION_ICONS[value]\n : AGGREGATION_ICONS.undefined\n \"\n ></i>\n <div class=\"d-col text-left fit-w\">\n <span class=\"text-muted fit-w text-10 l-h-1\">\n {{ 'Aggregation' | translate }}\n </span>\n <span class=\"text-bold text-12 fit-w l-h-1 d-flex a-i-center gap-4\">\n @if (autoModeActive()) {\n <span class=\"text-truncate\">{{ AUTO_LABEL | translate }}</span>\n @if (autoPoints() != null) {\n <span\n class=\"m-l-auto badge badge-info flex-no-shrink l-h-1 text-10\"\n style=\"min-height: 12px\"\n >\n {{ autoPoints() }}\n </span>\n }\n } @else {\n <span class=\"text-truncate\">\n {{ (value ? AGGREGATION_LABELS[value] : AGGREGATION_LABELS.NONE) | translate }}\n </span>\n }\n </span>\n </div>\n <span class=\"caret m-r-8 m-l-4 flex-no-shrink\"></span>\n </button>\n\n <ul\n class=\"dropdown-menu dropdown-menu-right--xs\"\n *dropdownMenu\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n @for (aggregation of AGGREGATIONS; track aggregation.id) {\n <li\n [ngClass]=\"{\n active: !autoModeActive() && aggregation.id === value,\n disabled: aggregation.id ? disabledAggregations[aggregation.id] : false\n }\"\n >\n <button\n class=\"\"\n (click)=\"selectAggregation(aggregation.id); dropdown.isOpen = false\"\n [disabled]=\"aggregation.id ? disabledAggregations[aggregation.id] : false\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"\n aggregation.id ? AGGREGATION_ICONS[aggregation.id] : AGGREGATION_ICONS.undefined\n \"\n ></i>\n <span>{{ aggregation.title | translate }}</span>\n </button>\n </li>\n }\n\n @if (showAutoMode()) {\n <li [class.active]=\"autoModeActive()\">\n <button\n class=\"\"\n (click)=\"selectAggregation(AUTO_ITEM_ID)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"AUTO_ICON\"\n ></i>\n <span>{{ AUTO_LABEL | translate }}</span>\n </button>\n </li>\n\n <div\n class=\"p-t-8 p-b-8 p-l-16 p-r-16 separator-top\"\n [collapse]=\"!autoModeActive()\"\n [isAnimated]=\"true\"\n >\n <ng-content select=\"[autoAggregationOptions]\"></ng-content>\n </div>\n }\n </ul>\n</div>\n", dependencies: [{ kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i1$2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: CollapseModule }, { kind: "directive", type: i2$3.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1$4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i4$2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
31420
31478
|
}
|
|
31421
31479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: AggregationPickerComponent, decorators: [{
|
|
31422
31480
|
type: Component,
|
|
@@ -31426,10 +31484,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
31426
31484
|
useExisting: forwardRef(() => AggregationPickerComponent),
|
|
31427
31485
|
multi: true
|
|
31428
31486
|
}
|
|
31429
|
-
], standalone: true, imports: [
|
|
31487
|
+
], standalone: true, imports: [
|
|
31488
|
+
BsDropdownModule,
|
|
31489
|
+
CollapseModule,
|
|
31490
|
+
TooltipModule,
|
|
31491
|
+
IconDirective,
|
|
31492
|
+
NgClass,
|
|
31493
|
+
A11yModule,
|
|
31494
|
+
C8yTranslatePipe
|
|
31495
|
+
], template: "<div\n class=\"dropdown\"\n style=\"border: 0; margin-left: -1px\"\n #dropdown=\"bs-dropdown\"\n dropdown\n [insideClick]=\"true\"\n [isDisabled]=\"disabled\"\n>\n @let toggleText =\n autoModeActive()\n ? autoPoints() != null\n ? ((autoKeepPointCount() ? AUTO_POINTS_TOOLTIP_KEPT : AUTO_POINTS_TOOLTIP)\n | translate: { points: autoPoints() })\n : (AUTO_LABEL | translate)\n : value\n ? (AGGREGATION_TEXTS[value] | translate)\n : (AGGREGATION_TEXTS.undefined | translate);\n <button\n class=\"dropdown-toggle form-control p-t-0 p-b-0 l-h-1 d-flex a-i-center\"\n [attr.aria-label]=\"toggleText\"\n [tooltip]=\"disabled ? (AGGREGATION_TEXTS.disabled | translate) : toggleText\"\n placement=\"top\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n dropdownToggle\n >\n <i\n class=\"m-r-8\"\n [c8yIcon]=\"\n autoModeActive()\n ? AUTO_ICON\n : value\n ? AGGREGATION_ICONS[value]\n : AGGREGATION_ICONS.undefined\n \"\n ></i>\n <div class=\"d-col text-left fit-w\">\n <span class=\"text-muted fit-w text-10 l-h-1\">\n {{ 'Aggregation' | translate }}\n </span>\n <span class=\"text-bold text-12 fit-w l-h-1 d-flex a-i-center gap-4\">\n @if (autoModeActive()) {\n <span class=\"text-truncate\">{{ AUTO_LABEL | translate }}</span>\n @if (autoPoints() != null) {\n <span\n class=\"m-l-auto badge badge-info flex-no-shrink l-h-1 text-10\"\n style=\"min-height: 12px\"\n >\n {{ autoPoints() }}\n </span>\n }\n } @else {\n <span class=\"text-truncate\">\n {{ (value ? AGGREGATION_LABELS[value] : AGGREGATION_LABELS.NONE) | translate }}\n </span>\n }\n </span>\n </div>\n <span class=\"caret m-r-8 m-l-4 flex-no-shrink\"></span>\n </button>\n\n <ul\n class=\"dropdown-menu dropdown-menu-right--xs\"\n *dropdownMenu\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n @for (aggregation of AGGREGATIONS; track aggregation.id) {\n <li\n [ngClass]=\"{\n active: !autoModeActive() && aggregation.id === value,\n disabled: aggregation.id ? disabledAggregations[aggregation.id] : false\n }\"\n >\n <button\n class=\"\"\n (click)=\"selectAggregation(aggregation.id); dropdown.isOpen = false\"\n [disabled]=\"aggregation.id ? disabledAggregations[aggregation.id] : false\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"\n aggregation.id ? AGGREGATION_ICONS[aggregation.id] : AGGREGATION_ICONS.undefined\n \"\n ></i>\n <span>{{ aggregation.title | translate }}</span>\n </button>\n </li>\n }\n\n @if (showAutoMode()) {\n <li [class.active]=\"autoModeActive()\">\n <button\n class=\"\"\n (click)=\"selectAggregation(AUTO_ITEM_ID)\"\n >\n <i\n class=\"icon-14\"\n [c8yIcon]=\"AUTO_ICON\"\n ></i>\n <span>{{ AUTO_LABEL | translate }}</span>\n </button>\n </li>\n\n <div\n class=\"p-t-8 p-b-8 p-l-16 p-r-16 separator-top\"\n [collapse]=\"!autoModeActive()\"\n [isAnimated]=\"true\"\n >\n <ng-content select=\"[autoAggregationOptions]\"></ng-content>\n </div>\n }\n </ul>\n</div>\n" }]
|
|
31430
31496
|
}], propDecorators: { disabledAggregations: [{
|
|
31431
31497
|
type: Input
|
|
31432
|
-
}] } });
|
|
31498
|
+
}], autoModeChange: [{ type: i0.Output, args: ["autoModeChange"] }], autoPoints: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoPoints", required: false }] }], autoKeepPointCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoKeepPointCount", required: false }] }], showAutoMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAutoMode", required: false }] }], autoModeActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoModeActive", required: false }] }] } });
|
|
31433
31499
|
|
|
31434
31500
|
class WidgetTimeContextComponent {
|
|
31435
31501
|
/**
|
|
@@ -31847,7 +31913,7 @@ class WidgetTimeContextComponent {
|
|
|
31847
31913
|
}
|
|
31848
31914
|
}
|
|
31849
31915
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: WidgetTimeContextComponent, deps: [{ token: WidgetsDashboardEventService }, { token: DashboardChildComponent }, { token: i1$7.FormBuilder }, { token: WidgetTimeContextQueryService }, { token: WidgetTimeContextHelperService }, { token: i1$3.Router }, { token: ActionBarService }, { token: AggregationService }, { token: i1$3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31850
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: WidgetTimeContextComponent, isStandalone: true, selector: "c8y-widget-time-context", inputs: { canDecouple: "canDecouple", displaySettings: "displaySettings", hidden: "hidden" }, outputs: { dateContextChange: "dateContextChange" }, host: { classAttribute: "d-flex a-i-center gap-4" }, viewQueries: [{ propertyName: "action", first: true, predicate: DashboardChildActionComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: BsDropdownDirective, descendants: true }], ngImport: i0, template: "<c8y-action-bar-item\n *ngIf=\"isCoupled && !hidden\"\n [priority]=\"ACTION_BAR_PRIORITY\"\n [groupId]=\"ACTION_BAR_GROUP_ID\"\n [inGroupPriority]=\"actionBarInGroupPriority\"\n [placement]=\"'left'\"\n>\n <ng-container\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{\n date: [form.value.currentDateContextFromDate, form.value.currentDateContextToDate]\n }\"\n ></ng-container>\n</c8y-action-bar-item>\n\n<ng-container\n *ngIf=\"!isCoupled\"\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{\n date: [form.value.currentDateContextFromDate, form.value.currentDateContextToDate]\n }\"\n></ng-container>\n\n<ng-template\n #dateTimePicker\n let-date=\"date\"\n>\n <form\n class=\"d-flex gap-16 p-l-xs-16 p-r-xs-16 m-t-xs-8 m-b-xs-8\"\n [formGroup]=\"form\"\n >\n <ng-container *ngIf=\"displaySettings.globalTimeContext\">\n <div>\n <div\n class=\"dropdown flex-grow\"\n #dropdown=\"bs-dropdown\"\n dropdown\n [insideClick]=\"true\"\n *ngIf=\"date\"\n >\n <button\n class=\"dropdown-toggle form-control l-h-tight d-flex a-i-center\"\n attr.aria-label=\"{{ date[0] | c8yDate: DATE_FORMAT }} \u2014 {{\n date[1] | c8yDate: DATE_FORMAT\n }}\"\n tooltip=\"{{ date[0] | c8yDate: DATE_FORMAT }} \u2014 {{ date[1] | c8yDate: DATE_FORMAT }}\"\n placement=\"top\"\n container=\"body\"\n data-cy=\"widget-time-context--date-picker-dropdown-button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n dropdownToggle\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"schedule1\"\n ></i>\n <div class=\"d-col text-left fit-w\">\n <span\n class=\"text-12\"\n data-cy=\"widget-time-context--selected-interval\"\n >\n {{ INTERVAL_TITLES[form.controls.currentDateContextInterval.value] | translate }}\n </span>\n <span\n class=\"text-10 text-muted text-truncate\"\n data-cy=\"widget-time-context--selected-time-range\"\n >\n {{ date[0] | c8yDate: DATE_FORMAT }} \u2014 {{ date[1] | c8yDate: DATE_FORMAT }}\n </span>\n </div>\n <span class=\"caret m-r-16 m-l-4\"></span>\n </button>\n\n <ul\n class=\"dropdown-menu dropdown-menu--date-range\"\n *dropdownMenu\n >\n <c8y-interval-picker\n class=\"d-contents\"\n formControlName=\"currentDateContextInterval\"\n ></c8y-interval-picker>\n\n <ng-container *ngIf=\"form.controls.currentDateContextInterval.value === 'custom'\">\n <div class=\"p-l-16 p-r-16\">\n <c8y-form-group\n [ngClass]=\"form.controls.temporaryUserSelectedFromDate.errors ? 'has-error' : ''\"\n >\n <label\n [title]=\"'From`date`' | translate\"\n for=\"temporaryUserSelectedFromDate\"\n translate\n >\n From`date`\n </label>\n <c8y-date-time-picker\n id=\"temporaryUserSelectedFromDate\"\n [maxDate]=\"form.value.temporaryUserSelectedToDate\"\n [placeholder]=\"'From`date`' | translate\"\n [formControl]=\"form.controls.temporaryUserSelectedFromDate\"\n [ngClass]=\"\n form.controls.temporaryUserSelectedFromDate.errors ? 'has-error' : ''\n \"\n ></c8y-date-time-picker>\n <c8y-messages [show]=\"form.controls.temporaryUserSelectedFromDate.errors\">\n <c8y-message\n name=\"dateAfterRangeMax\"\n [text]=\"'This date is after the latest allowed date.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"invalidDateTime\"\n [text]=\"'This date is invalid.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group\n [ngClass]=\"form.controls.temporaryUserSelectedToDate.errors ? 'has-error' : ''\"\n >\n <label\n [title]=\"'To`date`' | translate\"\n for=\"temporaryUserSelectedToDate\"\n translate\n >\n To`date`\n </label>\n <c8y-date-time-picker\n id=\"temporaryUserSelectedToDate\"\n [minDate]=\"form.value.temporaryUserSelectedFromDate\"\n [placeholder]=\"'To`date`' | translate\"\n [formControl]=\"form.controls.temporaryUserSelectedToDate\"\n [ngClass]=\"form.controls.temporaryUserSelectedToDate.errors ? 'has-error' : ''\"\n ></c8y-date-time-picker>\n <c8y-messages [show]=\"form.controls.temporaryUserSelectedToDate.errors\">\n <c8y-message\n name=\"dateBeforeRangeMin\"\n [text]=\"'This date is before the earliest allowed date.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"invalidDateTime\"\n [text]=\"'This date is invalid.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n type=\"button\"\n (click)=\"reset(); dropdown.isOpen = false\"\n [disabled]=\"form.value.realtime || isAutoRefreshEnabled\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n (click)=\"applyDatetimeContext(); dropdown.isOpen = false\"\n [disabled]=\"\n (form.pristine && form.untouched) || form.invalid || form.value.realtime || isAutoRefreshEnabled\n \"\n translate\n >\n Apply\n </button>\n </div>\n </ng-container>\n </ul>\n </div>\n </div>\n </ng-container>\n\n <div class=\"input-group w-auto\">\n <c8y-realtime-control\n class=\"form-control p-0 flex-no-grow w-auto\"\n *ngIf=\"displaySettings.globalRealtimeContext\"\n formControlName=\"realtime\"\n ></c8y-realtime-control>\n\n <c8y-aggregation-picker\n *ngIf=\"displaySettings.globalAggregationContext\"\n formControlName=\"aggregation\"\n [disabledAggregations]=\"disabledAggregations\"\n ></c8y-aggregation-picker>\n </div>\n </form>\n</ng-template>\n\n<c8y-dashboard-child-action>\n <button\n type=\"button\"\n (click)=\"toggleDecoupling()\"\n >\n <i [c8yIcon]=\"isCoupled ? 'schedule1' : 'today'\"></i>\n <span class=\"m-l-4\">\n {{ (isCoupled ? decoupleTimeContextLabel : coupleTimeContextLabel) | translate }}\n </span>\n </button>\n</c8y-dashboard-child-action>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i1$2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1$4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: IntervalPickerComponent, selector: "c8y-interval-picker", inputs: ["INTERVALS"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: DateTimePickerComponent, selector: "c8y-date-time-picker", inputs: ["minDate", "maxDate", "placeholder", "dateInputFormat", "adaptivePosition", "size", "dateType", "config"], outputs: ["onDateSelected"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: RealtimeControlComponent, selector: "c8y-realtime-control" }, { kind: "component", type: AggregationPickerComponent, selector: "c8y-aggregation-picker", inputs: ["disabledAggregations"] }, { kind: "component", type: DashboardChildActionComponent, selector: "c8y-dashboard-child-action" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
|
|
31916
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.17", type: WidgetTimeContextComponent, isStandalone: true, selector: "c8y-widget-time-context", inputs: { canDecouple: "canDecouple", displaySettings: "displaySettings", hidden: "hidden" }, outputs: { dateContextChange: "dateContextChange" }, host: { classAttribute: "d-flex a-i-center gap-4" }, viewQueries: [{ propertyName: "action", first: true, predicate: DashboardChildActionComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: BsDropdownDirective, descendants: true }], ngImport: i0, template: "<c8y-action-bar-item\n *ngIf=\"isCoupled && !hidden\"\n [priority]=\"ACTION_BAR_PRIORITY\"\n [groupId]=\"ACTION_BAR_GROUP_ID\"\n [inGroupPriority]=\"actionBarInGroupPriority\"\n [placement]=\"'left'\"\n>\n <ng-container\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{\n date: [form.value.currentDateContextFromDate, form.value.currentDateContextToDate]\n }\"\n ></ng-container>\n</c8y-action-bar-item>\n\n<ng-container\n *ngIf=\"!isCoupled\"\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{\n date: [form.value.currentDateContextFromDate, form.value.currentDateContextToDate]\n }\"\n></ng-container>\n\n<ng-template\n #dateTimePicker\n let-date=\"date\"\n>\n <form\n class=\"d-flex gap-16 p-l-xs-16 p-r-xs-16 m-t-xs-8 m-b-xs-8\"\n [formGroup]=\"form\"\n >\n <ng-container *ngIf=\"displaySettings.globalTimeContext\">\n <div>\n <div\n class=\"dropdown flex-grow\"\n #dropdown=\"bs-dropdown\"\n dropdown\n [insideClick]=\"true\"\n *ngIf=\"date\"\n >\n <button\n class=\"dropdown-toggle form-control l-h-tight d-flex a-i-center\"\n attr.aria-label=\"{{ date[0] | c8yDate: DATE_FORMAT }} \u2014 {{\n date[1] | c8yDate: DATE_FORMAT\n }}\"\n tooltip=\"{{ date[0] | c8yDate: DATE_FORMAT }} \u2014 {{ date[1] | c8yDate: DATE_FORMAT }}\"\n placement=\"top\"\n container=\"body\"\n data-cy=\"widget-time-context--date-picker-dropdown-button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n dropdownToggle\n >\n <i\n class=\"m-r-4\"\n c8yIcon=\"schedule1\"\n ></i>\n <div class=\"d-col text-left fit-w\">\n <span\n class=\"text-12\"\n data-cy=\"widget-time-context--selected-interval\"\n >\n {{ INTERVAL_TITLES[form.controls.currentDateContextInterval.value] | translate }}\n </span>\n <span\n class=\"text-10 text-muted text-truncate\"\n data-cy=\"widget-time-context--selected-time-range\"\n >\n {{ date[0] | c8yDate: DATE_FORMAT }} \u2014 {{ date[1] | c8yDate: DATE_FORMAT }}\n </span>\n </div>\n <span class=\"caret m-r-16 m-l-4\"></span>\n </button>\n\n <ul\n class=\"dropdown-menu dropdown-menu--date-range\"\n *dropdownMenu\n >\n <c8y-interval-picker\n class=\"d-contents\"\n formControlName=\"currentDateContextInterval\"\n ></c8y-interval-picker>\n\n <ng-container *ngIf=\"form.controls.currentDateContextInterval.value === 'custom'\">\n <div class=\"p-l-16 p-r-16\">\n <c8y-form-group\n [ngClass]=\"form.controls.temporaryUserSelectedFromDate.errors ? 'has-error' : ''\"\n >\n <label\n [title]=\"'From`date`' | translate\"\n for=\"temporaryUserSelectedFromDate\"\n translate\n >\n From`date`\n </label>\n <c8y-date-time-picker\n id=\"temporaryUserSelectedFromDate\"\n [maxDate]=\"form.value.temporaryUserSelectedToDate\"\n [placeholder]=\"'From`date`' | translate\"\n [formControl]=\"form.controls.temporaryUserSelectedFromDate\"\n [ngClass]=\"\n form.controls.temporaryUserSelectedFromDate.errors ? 'has-error' : ''\n \"\n ></c8y-date-time-picker>\n <c8y-messages [show]=\"form.controls.temporaryUserSelectedFromDate.errors\">\n <c8y-message\n name=\"dateAfterRangeMax\"\n [text]=\"'This date is after the latest allowed date.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"invalidDateTime\"\n [text]=\"'This date is invalid.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group\n [ngClass]=\"form.controls.temporaryUserSelectedToDate.errors ? 'has-error' : ''\"\n >\n <label\n [title]=\"'To`date`' | translate\"\n for=\"temporaryUserSelectedToDate\"\n translate\n >\n To`date`\n </label>\n <c8y-date-time-picker\n id=\"temporaryUserSelectedToDate\"\n [minDate]=\"form.value.temporaryUserSelectedFromDate\"\n [placeholder]=\"'To`date`' | translate\"\n [formControl]=\"form.controls.temporaryUserSelectedToDate\"\n [ngClass]=\"form.controls.temporaryUserSelectedToDate.errors ? 'has-error' : ''\"\n ></c8y-date-time-picker>\n <c8y-messages [show]=\"form.controls.temporaryUserSelectedToDate.errors\">\n <c8y-message\n name=\"dateBeforeRangeMin\"\n [text]=\"'This date is before the earliest allowed date.' | translate\"\n ></c8y-message>\n <c8y-message\n name=\"invalidDateTime\"\n [text]=\"'This date is invalid.' | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n title=\"{{ 'Reset' | translate }}\"\n type=\"button\"\n (click)=\"reset(); dropdown.isOpen = false\"\n [disabled]=\"form.value.realtime || isAutoRefreshEnabled\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n (click)=\"applyDatetimeContext(); dropdown.isOpen = false\"\n [disabled]=\"\n (form.pristine && form.untouched) || form.invalid || form.value.realtime || isAutoRefreshEnabled\n \"\n translate\n >\n Apply\n </button>\n </div>\n </ng-container>\n </ul>\n </div>\n </div>\n </ng-container>\n\n <div class=\"input-group w-auto\">\n <c8y-realtime-control\n class=\"form-control p-0 flex-no-grow w-auto\"\n *ngIf=\"displaySettings.globalRealtimeContext\"\n formControlName=\"realtime\"\n ></c8y-realtime-control>\n\n <c8y-aggregation-picker\n *ngIf=\"displaySettings.globalAggregationContext\"\n formControlName=\"aggregation\"\n [disabledAggregations]=\"disabledAggregations\"\n ></c8y-aggregation-picker>\n </div>\n </form>\n</ng-template>\n\n<c8y-dashboard-child-action>\n <button\n type=\"button\"\n (click)=\"toggleDecoupling()\"\n >\n <i [c8yIcon]=\"isCoupled ? 'schedule1' : 'today'\"></i>\n <span class=\"m-l-4\">\n {{ (isCoupled ? decoupleTimeContextLabel : coupleTimeContextLabel) | translate }}\n </span>\n </button>\n</c8y-dashboard-child-action>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId", "inGroupPriority"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule$1 }, { kind: "directive", type: i1$7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: BsDropdownModule }, { kind: "directive", type: i1$2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i1$4.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "component", type: IntervalPickerComponent, selector: "c8y-interval-picker", inputs: ["INTERVALS"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: DateTimePickerComponent, selector: "c8y-date-time-picker", inputs: ["minDate", "maxDate", "placeholder", "dateInputFormat", "adaptivePosition", "size", "dateType", "config"], outputs: ["onDateSelected"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults", "helpMessage", "additionalMessages"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: RealtimeControlComponent, selector: "c8y-realtime-control" }, { kind: "component", type: AggregationPickerComponent, selector: "c8y-aggregation-picker", inputs: ["disabledAggregations", "autoPoints", "autoKeepPointCount", "showAutoMode", "autoModeActive"], outputs: ["autoModeChange"] }, { kind: "component", type: DashboardChildActionComponent, selector: "c8y-dashboard-child-action" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] }); }
|
|
31851
31917
|
}
|
|
31852
31918
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: WidgetTimeContextComponent, decorators: [{
|
|
31853
31919
|
type: Component,
|
|
@@ -38293,6 +38359,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
38293
38359
|
}]
|
|
38294
38360
|
}], ctorParameters: () => [{ type: QueryParamBottomDrawerStateService }, { type: BottomDrawerService }] });
|
|
38295
38361
|
|
|
38362
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
38296
38363
|
const HOOK_QUERY_PARAM_MODAL = new InjectionToken('HOOK_QUERY_PARAM_MODAL');
|
|
38297
38364
|
function hookQueryParamModal(config, options) {
|
|
38298
38365
|
return hookGeneric(config, HOOK_QUERY_PARAM_MODAL, options);
|
|
@@ -38324,12 +38391,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
38324
38391
|
}]
|
|
38325
38392
|
}], ctorParameters: () => [{ type: i0.Injector }, { type: PluginsResolveService }] });
|
|
38326
38393
|
class QueryParamModalFactory {
|
|
38327
|
-
constructor(queryParamModalStateService, bsModalService, router, activatedRoute) {
|
|
38394
|
+
constructor(queryParamModalStateService, bsModalService, router, activatedRoute, destroyRef) {
|
|
38328
38395
|
this.queryParamModalStateService = queryParamModalStateService;
|
|
38329
38396
|
this.bsModalService = bsModalService;
|
|
38330
38397
|
this.router = router;
|
|
38331
38398
|
this.activatedRoute = activatedRoute;
|
|
38332
|
-
this.
|
|
38399
|
+
this.destroyRef = destroyRef;
|
|
38400
|
+
this.pendingModals = new Set();
|
|
38401
|
+
this.openModals = new Map();
|
|
38333
38402
|
}
|
|
38334
38403
|
get() {
|
|
38335
38404
|
return this.queryParamModalStateService.items$.pipe(map$1(items => {
|
|
@@ -38347,21 +38416,35 @@ class QueryParamModalFactory {
|
|
|
38347
38416
|
}
|
|
38348
38417
|
/**
|
|
38349
38418
|
* Handles the display of a modal based on a specific query parameter.
|
|
38419
|
+
* Guards against opening multiple modals for the same query param when the
|
|
38420
|
+
* trigger fires repeatedly during app initialization.
|
|
38350
38421
|
*
|
|
38351
38422
|
* @param config - Configuration object specifying the query parameter, component, and optional modal settings.
|
|
38352
|
-
* @returns An observable that listens for changes in the query parameter.
|
|
38353
38423
|
*/
|
|
38354
38424
|
async handleQueryParamModal(config) {
|
|
38355
|
-
|
|
38356
|
-
|
|
38357
|
-
|
|
38358
|
-
|
|
38359
|
-
|
|
38360
|
-
|
|
38361
|
-
|
|
38362
|
-
|
|
38363
|
-
|
|
38364
|
-
|
|
38425
|
+
if (this.pendingModals.has(config.queryParam) || this.openModals.has(config.queryParam)) {
|
|
38426
|
+
return;
|
|
38427
|
+
}
|
|
38428
|
+
this.pendingModals.add(config.queryParam);
|
|
38429
|
+
try {
|
|
38430
|
+
const component = config.component
|
|
38431
|
+
? config.component
|
|
38432
|
+
: config.loadComponent
|
|
38433
|
+
? await config.loadComponent()
|
|
38434
|
+
: null;
|
|
38435
|
+
if (!component) {
|
|
38436
|
+
return;
|
|
38437
|
+
}
|
|
38438
|
+
const modalRef = this.showModal(component, config.modalConfig);
|
|
38439
|
+
this.openModals.set(config.queryParam, modalRef);
|
|
38440
|
+
modalRef.onHidden.pipe(take(1), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
|
|
38441
|
+
this.openModals.delete(config.queryParam);
|
|
38442
|
+
this.removeQueryParam(config.queryParam);
|
|
38443
|
+
});
|
|
38444
|
+
}
|
|
38445
|
+
finally {
|
|
38446
|
+
this.pendingModals.delete(config.queryParam);
|
|
38447
|
+
}
|
|
38365
38448
|
}
|
|
38366
38449
|
/**
|
|
38367
38450
|
* Removes the specified query parameter from the URL.
|
|
@@ -38387,17 +38470,7 @@ class QueryParamModalFactory {
|
|
|
38387
38470
|
showModal(component, modalConfig) {
|
|
38388
38471
|
return this.bsModalService.show(component, modalConfig);
|
|
38389
38472
|
}
|
|
38390
|
-
|
|
38391
|
-
* Cleans up subscriptions related to modal events.
|
|
38392
|
-
* Ensures no memory leaks by unsubscribing from modal close events.
|
|
38393
|
-
*/
|
|
38394
|
-
cleanup() {
|
|
38395
|
-
if (this.modalCloseSubscription) {
|
|
38396
|
-
this.modalCloseSubscription.unsubscribe();
|
|
38397
|
-
this.modalCloseSubscription = null;
|
|
38398
|
-
}
|
|
38399
|
-
}
|
|
38400
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: QueryParamModalFactory, deps: [{ token: QueryParamModalStateService }, { token: i1$6.BsModalService }, { token: i1$3.Router }, { token: i1$3.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38473
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: QueryParamModalFactory, deps: [{ token: QueryParamModalStateService }, { token: i1$6.BsModalService }, { token: i1$3.Router }, { token: i1$3.ActivatedRoute, optional: true }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
38401
38474
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: QueryParamModalFactory, providedIn: 'root' }); }
|
|
38402
38475
|
}
|
|
38403
38476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: QueryParamModalFactory, decorators: [{
|
|
@@ -38407,7 +38480,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
38407
38480
|
}]
|
|
38408
38481
|
}], ctorParameters: () => [{ type: QueryParamModalStateService }, { type: i1$6.BsModalService }, { type: i1$3.Router }, { type: i1$3.ActivatedRoute, decorators: [{
|
|
38409
38482
|
type: Optional
|
|
38410
|
-
}] }] });
|
|
38483
|
+
}] }, { type: i0.DestroyRef }] });
|
|
38411
38484
|
|
|
38412
38485
|
const QUERY_PARAM_HANDLER_PROVIDERS = [
|
|
38413
38486
|
// This will ensure that the QueryParamHandlerService is initialized
|
|
@@ -41095,5 +41168,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
41095
41168
|
* Generated bundle index. Do not edit.
|
|
41096
41169
|
*/
|
|
41097
41170
|
|
|
41098
|
-
export { ACTIONS_STEPPER, AGGREGATIONS, AGGREGATION_ICONS, AGGREGATION_LABELS, AGGREGATION_LIMITS, AGGREGATION_TEXTS, AGGREGATION_VALUES, AGGREGATION_VALUES_ARR, ARRAY_VALIDATION_PREFIX, ASSET_PATH, AbstractConfigurationStrategy, ActionBarComponent, ActionBarItemComponent, ActionBarModule, ActionBarService, ActionComponent, ActionControlsExtensionService, ActionModule, ActionOutletComponent, ActionService, AggregationPickerComponent, AggregationService, AlarmRealtimeService, AlarmWithChildrenRealtimeService, AlertComponent, AlertDetailsComponent, AlertModule, AlertOutletBase, AlertOutletComponent, AlertService, AlertTextComponent, AppHrefPipe, AppIconComponent, AppStateService, AppSwitcherComponent, AppSwitcherInlineComponent, AppSwitcherService, ApplicationModule, ApplicationPluginStatus, ApplyRangeClassPipe, AssetDefinitionsService, AssetHierarchyService, AssetLinkPipe, AssetPropertyService, AssetTypesRealtimeService, AssetTypesService, AuditLogComponent, AuditLogModule, AuthenticationModule, BASELINE_COLUMNS, BASELINE_ROWS, BackendVersionFactory, BaseColumn, BaseFilteringFormRendererComponent, BooleanFilterMapper, BootstrapComponent, BootstrapModule, BottomDrawerComponent, BottomDrawerRef, BottomDrawerService, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbOutletComponent, BreadcrumbService, BuiltInActionType, BytesPipe, C8Y_PLUGIN_CONTEXT_PATH, C8Y_PLUGIN_NAME, C8yComponentOutlet, C8yJSONSchema, C8yStepper, C8yStepperButtons, C8yStepperIcon, C8yStepperProgress, C8yTranslateDirective, C8yTranslateModule, C8yTranslatePipe, C8yTranslationCache, C8yTranslationLoader, C8yValidators, CUSTOM, CachedLocaleDictionaryService, CellRendererComponent, CellRendererContext, CellRendererDefDirective, ChangeCurrentUserPasswordService, ChangeIconComponent, ClipboardModule, ClipboardService, ColorInputComponent, ColorService, ColumnDirective, CommonModule, ConditionalTabsOutletComponent, ConfigureCustomColumnComponent, ConfirmModalComponent, ContextRouteComponent, ContextRouteGuard, ContextRouteService, CookieBannerComponent, CopyDashboardDisabledReason, CoreModule, CoreSearchModule, CountdownIntervalComponent, CountdownIntervalModule, CurrentPasswordModalComponent, CustomColumn, CustomTranslateService, CustomTranslateStore, DATA_GRID_CONFIGURATION_CONTEXT, DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER, DATA_GRID_CONFIGURATION_STRATEGY, DEFAULT_INTERVAL_STATE, DEFAULT_INTERVAL_VALUE, DEFAULT_INTERVAL_VALUES, DRAWER_ANIMATION_TIME, DashboardChildActionComponent, DashboardChildChange, DashboardChildComponent, DashboardChildTitleComponent, DashboardComponent, DashboardModule, DataGridComponent, DataGridModule, DataGridService, DatapointLibraryValidationErrors, DatapointSyncService, DateContextQueryParamNames, DateFilterMapper, DateFormatService, DatePickerComponent, DatePickerModule, DatePipe, DateTimePickerComponent, DateTimePickerModule, DefaultValidationDirective, DeviceBootstrapRealtimeService, DeviceService, DeviceStatusComponent, DeviceStatusModule, DismissAlertStrategy, DocsModule, DocsService, DrawerModule, DrawerOutletComponent, DrawerService, DropAreaComponent, DropAreaModule, DropdownDirectionDirective, DropdownFocusTrapDirective, DynamicBulkDetailsResolver, DynamicBulkIIdentifiedResolver, DynamicComponentAlert, DynamicComponentAlertAggregator, DynamicComponentAlertsComponent, DynamicComponentComponent, DynamicComponentErrorStrategy, DynamicComponentModule, DynamicComponentService, DynamicDatapointsResolver, DynamicFormsModule, DynamicManagedObjectResolver, DynamicResolverService, ES_MAX_TIME_MILLISECONDS, EmailsValidatorDirective, EmptyComponent, EmptyStateComponent, EmptyStateContextDirective, EventRealtimeService, ExpandableRowDirective, ExtensionPointForPlugins, ExtensionPointWithoutStateForPlugins, ExtractArrayValidationErrorsPipe, FeatureCacheService, FeedbackFormComponent, FilePickerComponent, FilePickerFormControlComponent, FilePickerFormControlModule, FilePickerModule, FilesService, FilterByPipe, FilterInputComponent, FilterMapperFactory, FilterMapperModule, FilterMapperPipe, FilterMapperService, FilterNonArrayValidationErrorsPipe, FilteringActionType, FilteringFormRendererComponent, FilteringFormRendererContext, FilteringFormRendererDefDirective, ForOfDirective, FormGroupComponent, FormsModule, GENERIC_FILE_TYPE, GLOBAL_CONTEXT_AUTO_REFRESH, GainsightService, GenericFileIconPipe, GeoService, GetGroupIconPipe, GlobalConfigService, GridDataSource, GroupFragment, GroupService, GroupedFilterChips, GuideDocsComponent, GuideHrefDirective, HOOK_ACTION, HOOK_ACTION_BAR, HOOK_BREADCRUMB, HOOK_COMPONENTS, HOOK_CURRENT_APPLICATION, HOOK_CURRENT_TENANT, HOOK_CURRENT_USER, HOOK_DOCS, HOOK_DYNAMIC_PROVIDER_CONFIG, HOOK_NAVIGATOR_NODES, HOOK_OPTIONS, HOOK_PATTERN_MESSAGES, HOOK_PLUGIN, HOOK_PREVIEW, HOOK_QUERY_PARAM, HOOK_QUERY_PARAM_BOTTOM_DRAWER, HOOK_QUERY_PARAM_MODAL, HOOK_ROUTE, HOOK_SEARCH, HOOK_STEPPER, HOOK_TABS, HOOK_VERSION, HOOK_WIZARD, HeaderBarComponent, HeaderCellRendererDefDirective, HeaderModule, HeaderService, HelpComponent, HelpModule, HighlightComponent, HookProviderTypes, HumanizeAppNamePipe, HumanizePipe, HumanizeValidationMessagePipe, I18nModule, INTERVAL_OPTIONS, IconDirective, IconPanelComponent, IfAllowedDirective, InjectionType, InputGroupEditableComponent, InputGroupListComponent, InputGroupListContainerDirective, InterAppService, IntersectionObserverService, IntervalBasedReload, InventorySearchService, IpRangeInputListComponent, JsonValidationPrettifierDirective, LANGUAGES, LAST_DAY, LAST_HOUR, LAST_MINUTE, LAST_MONTH, LAST_WEEK, LOCALE_PATH, LegacyGridConfigMapperService, LegendFieldWrapper, ListDisplaySwitchComponent, ListDisplaySwitchModule, ListGroupComponent, ListGroupModule, ListItemActionComponent, ListItemBodyComponent, ListItemCheckboxComponent, ListItemCollapseComponent, ListItemComponent, ListItemDragHandleComponent, ListItemFooterComponent, ListItemIconComponent, ListItemRadioComponent, ListItemTimelineComponent, LoadMoreComponent, LoadingComponent, LoadingMessageComponent, MAX_PAGE_SIZE, MESSAGES_CORE_I18N, MOChunkLoaderService, ManagedObjectRealtimeService, ManagedObjectType, MapFunctionPipe, MarkdownToHtmlPipe, MaxValidationDirective, MeasurementRealtimeService, MessageBannerService, MessageDirective, MessagesComponent, MinValidationDirective, MissingTranslationCustomHandler, MoNamePipe, ModalComponent, ModalModule, ModalSelectionMode, ModalService, NEEDED_ROLE_FOR_SETUP, NEW_DASHBOARD_ROUTER_STATE_PROP, NULL_VALUE_PLACEHOLDER, NUMBER_FORMAT_REGEXP, NameTransformPipe, NavigatorBottomModule, NavigatorIconComponent, NavigatorModule, NavigatorNode, NavigatorNodeComponent, NavigatorNodeRoot, NavigatorOutletComponent, NavigatorService, NavigatorTopModule, NewPasswordComponent, NumberPipe, OperationBulkRealtimeService, OperationRealtimeService, OperationResultComponent, OptionsService, OutletDirective, PREVIEW_FEATURE_PROVIDERS, PRODUCT_EXPERIENCE_EVENT_SOURCE, PX_ACTIONS, PX_EVENT_NAME, PackageType, PasswordCheckListComponent, PasswordConfirm, PasswordConfirmModalComponent, PasswordInputComponent, PasswordService, PasswordStrengthCheckerService, PasswordStrengthComponent, PasswordStrengthService, PasswordValidationDirective, PasswordValidationService, PatternMessagesService, Permissions, PhoneValidationDirective, PlatformDetailsService, PluginLoadedPipe, PluginsExportScopes, PluginsLoaderService, PluginsModule, PluginsResolveService, PluginsService, PopoverConfirmComponent, PreviewFeatureButtonComponent, PreviewFeatureShowNotification, PreviewService, ProductExperienceDirective, ProductExperienceModule, ProgressBarComponent, PropertiesListComponent, PropertiesListModule, PropertyValueTransformService, ProviderConfigurationComponent, ProviderConfigurationModule, ProviderConfigurationNodeFactory, ProviderConfigurationRouteFactory, ProviderConfigurationService, ProviderDefinitionsService, PushStatus, PushStatusLabels, QUERY_PARAM_HANDLER_PROVIDERS, QueryParamBottomDrawerFactory, QueryParamBottomDrawerStateService, QueryParamHandlerService, QueryParamModalFactory, QueryParamModalStateService, QuickLinkComponent, QuickLinkModule, RESOLVING_COMPONENT_WAIT_TIME, RadioFilterMapper, RangeComponent, RangeDirective, RangeDisplayComponent, RangeDisplayModule, RealtimeButtonComponent, RealtimeControlComponent, RealtimeMessage, RealtimeModule, RealtimeService, RealtimeSubjectService, RelativeTimePipe, RequiredInputPlaceholderDirective, ResizableGridComponent, ResolverServerError, RouterModule, RouterService, RouterTabsResolver, SETUP_FINISHED_STEP_ID, SHOW_PREVIEW_FEATURES, SearchComponent, SearchFilters, SearchInputComponent, SearchOutletComponent, SearchResultEmptyComponent, SearchService, SelectComponent, SelectFilterMapper, SelectItemDirective, SelectKeyboardService, SelectLegacyComponent, SelectModalComponent, SelectModalFilterPipe, SelectModalModule, SelectModule, SelectedItemsComponent, SelectedItemsDirective, SendStatus, SendStatusLabels, ServiceRegistry, SetupCompletedComponent, SetupComponent, SetupModule, SetupService, SetupState, SetupStepperFactory, ShortenUserNamePipe, ShouldShowMoPipe, ShowIfFilterPipe, SimpleJsonPathValidatorDirective, SimplifiedAuthService, SkipLinkDirective, SplitViewAlertsComponent, SplitViewComponent, SplitViewDetailsActionsComponent, SplitViewDetailsComponent, SplitViewExtraHeaderComponent, SplitViewFooterComponent, SplitViewHeaderActionsComponent, SplitViewListComponent, SplitViewListItemDirective, SplitViewSelectionService, StateService, Status, StepperModule, StepperOutletComponent, StepperService, Steppers, StringFilterMapper, StringifyObjectPipe, StripHtmlPipe, SupportedApps, TabComponent, TabsModule, TabsOutletComponent, TabsService, TabsetAriaDirective, TenantUiService, TextAreaRowHeightDirective, TextareaAutoresizeDirective, ThemeSwitcherService, TimeIntervalComponent, TimePickerComponent, TimePickerModule, TitleComponent, TitleOutletComponent, TotpChallengeComponent, TotpSetupComponent, TranslateService, TreeNodeCellRendererComponent, TreeNodeColumn, TreeNodeHeaderCellRendererComponent, TypeaheadComponent, TypeaheadFilterMapper, UiSettingsComponent, UiSettingsModule, UniqueInCollectionByPathValidationDirective, UserEditComponent, UserEditModalComponent, UserEngagementsService, UserMenuItemComponent, UserMenuOutletComponent, UserMenuService, UserModule, UserNameInitialsPipe, UserPreferencesConfigurationStrategy, UserPreferencesService, UserPreferencesStorageInventory, UserPreferencesStorageLocal, UserTotpRevokeComponent, UserTotpSetupComponent, VERSION_MODULE_CONFIG, ValidationPattern, VersionListComponent, VersionModule, VersionService, ViewContext, ViewContextServices, VirtualScrollListenerDirective, VirtualScrollWindowDirective, VirtualScrollWindowStrategy, VirtualScrollerWrapperComponent, VisibleControlsPipe, WIDGET_CONFIGURATION_GRID_SIZE, WIDGET_TYPE_VALUES, WILDCARD_SEARCH_FEATURE_KEY, WebSDKVersionFactory, WidgetActionWrapperComponent, WidgetGlobalAutoRefreshService, WidgetTimeContextActionBarPriority, WidgetTimeContextComponent, WidgetTimeContextDateRangeService, WidgetTimeContextMediatorService, WidgetsDashboardComponent, WidgetsDashboardEventService, WizardBodyComponent, WizardComponent, WizardFooterComponent, WizardHeaderComponent, WizardModalService, WizardModule, WizardOutletComponent, WizardService, ZipService, _virtualScrollWindowStrategyFactory, alertOnError, allEntriesAreEqual, asyncValidateArrayElements, colorValidator, deviceAvailabilityIconMap, extraRoutes, fromFactories, fromTrigger, fromTriggerOnce, getActivatedRoute, getAngularLocalesLanguageString, getBasicInputArrayFormFieldConfig, getDictionaryWithTrimmedKeys, getInjectedHooks, gettext, globalAutoRefreshLoading, hookAction, hookActionBar, hookBreadcrumb, hookComponent, hookCurrentApplication, hookCurrentTenant, hookCurrentUser, hookDataGridActionControls, hookDocs, hookDrawer, hookDynamicProviderConfig, hookFilterMapper, hookGeneric, hookNavigator, hookOptions, hookPatternMessages, hookPlugin, hookPreview, hookQueryParam, hookQueryParamBottomDrawer, hookQueryParamModal, hookRoute, hookSearch, hookService, hookStepper, hookTab, hookUserMenu, hookVersion, hookWidget, hookWizard, internalApps, isBinaryFile, isEagerDynamicComponents, isExtensionFactory, isLazyDynamicComponents, isPromise, languagesFactory, loadLocale, localeId, localePathFactory, memoize, minColumnGridTrackSize, operationStatusClasses, operationStatusIcons, provideBootstrapMetadata, provideCommonPipes, provideCommonServices, provideDefaultOptionsAppInitializer, provideI18n, provideLanguageSelectorAppInitializer, providePluginsLoaderServiceAppInitializer, provideTranslationServiceInstance, ratiosByColumnTypes, removeContextIndicators, removeDuplicatesIds, resolveInjectedFactories, retryWithDelay, scaleWidgetDimensions, simpleJsonPathValidator, sortByPriority, stateToFactory, statusAlert, statusClasses, statusIcons, throttle, toObservable, toObservableOfArrays, tooltips, trimTranslationKey, uniqueInCollectionByPathValidator, validateArrayElements, validateInternationalPhoneNumber, viewContextRoutes, wrapperLegendFieldConfig };
|
|
41171
|
+
export { ACTIONS_STEPPER, AGGREGATIONS, AGGREGATION_ICONS, AGGREGATION_LABELS, AGGREGATION_LIMITS, AGGREGATION_TEXTS, AGGREGATION_VALUES, AGGREGATION_VALUES_ARR, ARRAY_VALIDATION_PREFIX, ASSET_PATH, AUTO_AGGREGATION_ICON, AUTO_POINTS_TOOLTIP, AUTO_POINTS_TOOLTIP_KEPT, AbstractConfigurationStrategy, ActionBarComponent, ActionBarItemComponent, ActionBarModule, ActionBarService, ActionComponent, ActionControlsExtensionService, ActionModule, ActionOutletComponent, ActionService, AggregationPickerComponent, AggregationService, AlarmRealtimeService, AlarmWithChildrenRealtimeService, AlertComponent, AlertDetailsComponent, AlertModule, AlertOutletBase, AlertOutletComponent, AlertService, AlertTextComponent, AppHrefPipe, AppIconComponent, AppStateService, AppSwitcherComponent, AppSwitcherInlineComponent, AppSwitcherService, ApplicationModule, ApplicationPluginStatus, ApplyRangeClassPipe, AssetDefinitionsService, AssetHierarchyService, AssetLinkPipe, AssetPropertyService, AssetTypesRealtimeService, AssetTypesService, AuditLogComponent, AuditLogModule, AuthenticationModule, BASELINE_COLUMNS, BASELINE_ROWS, BackendVersionFactory, BaseColumn, BaseFilteringFormRendererComponent, BooleanFilterMapper, BootstrapComponent, BootstrapModule, BottomDrawerComponent, BottomDrawerRef, BottomDrawerService, BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbModule, BreadcrumbOutletComponent, BreadcrumbService, BuiltInActionType, BytesPipe, C8Y_PLUGIN_CONTEXT_PATH, C8Y_PLUGIN_NAME, C8yComponentOutlet, C8yJSONSchema, C8yStepper, C8yStepperButtons, C8yStepperIcon, C8yStepperProgress, C8yTranslateDirective, C8yTranslateModule, C8yTranslatePipe, C8yTranslationCache, C8yTranslationLoader, C8yValidators, CUSTOM, CachedLocaleDictionaryService, CellRendererComponent, CellRendererContext, CellRendererDefDirective, ChangeCurrentUserPasswordService, ChangeIconComponent, ClipboardModule, ClipboardService, ColorInputComponent, ColorService, ColumnDirective, CommonModule, ConditionalTabsOutletComponent, ConfigureCustomColumnComponent, ConfirmModalComponent, ContextRouteComponent, ContextRouteGuard, ContextRouteService, CookieBannerComponent, CopyDashboardDisabledReason, CoreModule, CoreSearchModule, CountdownIntervalComponent, CountdownIntervalModule, CurrentPasswordModalComponent, CustomColumn, CustomTranslateService, CustomTranslateStore, DATA_GRID_CONFIGURATION_CONTEXT, DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER, DATA_GRID_CONFIGURATION_STRATEGY, DEFAULT_INTERVAL_STATE, DEFAULT_INTERVAL_VALUE, DEFAULT_INTERVAL_VALUES, DRAWER_ANIMATION_TIME, DashboardChildActionComponent, DashboardChildChange, DashboardChildComponent, DashboardChildTitleComponent, DashboardComponent, DashboardModule, DataGridComponent, DataGridModule, DataGridService, DatapointLibraryValidationErrors, DatapointSyncService, DateContextQueryParamNames, DateFilterMapper, DateFormatService, DatePickerComponent, DatePickerModule, DatePipe, DateTimePickerComponent, DateTimePickerModule, DefaultValidationDirective, DeviceBootstrapRealtimeService, DeviceService, DeviceStatusComponent, DeviceStatusModule, DismissAlertStrategy, DocsModule, DocsService, DrawerModule, DrawerOutletComponent, DrawerService, DropAreaComponent, DropAreaModule, DropdownDirectionDirective, DropdownFocusTrapDirective, DynamicBulkDetailsResolver, DynamicBulkIIdentifiedResolver, DynamicComponentAlert, DynamicComponentAlertAggregator, DynamicComponentAlertsComponent, DynamicComponentComponent, DynamicComponentErrorStrategy, DynamicComponentModule, DynamicComponentService, DynamicDatapointsResolver, DynamicFormsModule, DynamicManagedObjectResolver, DynamicResolverService, ES_MAX_TIME_MILLISECONDS, EmailsValidatorDirective, EmptyComponent, EmptyStateComponent, EmptyStateContextDirective, EventRealtimeService, ExpandableRowDirective, ExtensionPointForPlugins, ExtensionPointWithoutStateForPlugins, ExtractArrayValidationErrorsPipe, FeatureCacheService, FeedbackFormComponent, FilePickerComponent, FilePickerFormControlComponent, FilePickerFormControlModule, FilePickerModule, FilesService, FilterByPipe, FilterInputComponent, FilterMapperFactory, FilterMapperModule, FilterMapperPipe, FilterMapperService, FilterNonArrayValidationErrorsPipe, FilteringActionType, FilteringFormRendererComponent, FilteringFormRendererContext, FilteringFormRendererDefDirective, ForOfDirective, FormGroupComponent, FormsModule, GENERIC_FILE_TYPE, GLOBAL_CONTEXT_AUTO_REFRESH, GainsightService, GenericFileIconPipe, GeoService, GetGroupIconPipe, GlobalConfigService, GridDataSource, GroupFragment, GroupService, GroupedFilterChips, GuideDocsComponent, GuideHrefDirective, HOOK_ACTION, HOOK_ACTION_BAR, HOOK_BREADCRUMB, HOOK_COMPONENTS, HOOK_CURRENT_APPLICATION, HOOK_CURRENT_TENANT, HOOK_CURRENT_USER, HOOK_DOCS, HOOK_DYNAMIC_PROVIDER_CONFIG, HOOK_NAVIGATOR_NODES, HOOK_OPTIONS, HOOK_PATTERN_MESSAGES, HOOK_PLUGIN, HOOK_PREVIEW, HOOK_QUERY_PARAM, HOOK_QUERY_PARAM_BOTTOM_DRAWER, HOOK_QUERY_PARAM_MODAL, HOOK_ROUTE, HOOK_SEARCH, HOOK_STEPPER, HOOK_TABS, HOOK_VERSION, HOOK_WIZARD, HeaderBarComponent, HeaderCellRendererDefDirective, HeaderModule, HeaderService, HelpComponent, HelpModule, HighlightComponent, HookProviderTypes, HumanizeAppNamePipe, HumanizePipe, HumanizeValidationMessagePipe, I18nModule, INTERVAL_OPTIONS, IconDirective, IconPanelComponent, IfAllowedDirective, InjectionType, InputGroupEditableComponent, InputGroupListComponent, InputGroupListContainerDirective, InterAppService, IntersectionObserverService, IntervalBasedReload, InventorySearchService, IpRangeInputListComponent, JsonValidationPrettifierDirective, LANGUAGES, LAST_DAY, LAST_HOUR, LAST_MINUTE, LAST_MONTH, LAST_WEEK, LOCALE_PATH, LegacyGridConfigMapperService, LegendFieldWrapper, ListDisplaySwitchComponent, ListDisplaySwitchModule, ListGroupComponent, ListGroupModule, ListItemActionComponent, ListItemBodyComponent, ListItemCheckboxComponent, ListItemCollapseComponent, ListItemComponent, ListItemDragHandleComponent, ListItemFooterComponent, ListItemIconComponent, ListItemRadioComponent, ListItemTimelineComponent, LoadMoreComponent, LoadingComponent, LoadingMessageComponent, MAX_PAGE_SIZE, MESSAGES_CORE_I18N, MOChunkLoaderService, ManagedObjectRealtimeService, ManagedObjectType, MapFunctionPipe, MarkdownToHtmlPipe, MaxValidationDirective, MeasurementRealtimeService, MessageBannerService, MessageDirective, MessagesComponent, MinValidationDirective, MissingTranslationCustomHandler, MoNamePipe, ModalComponent, ModalModule, ModalSelectionMode, ModalService, NEEDED_ROLE_FOR_SETUP, NEW_DASHBOARD_ROUTER_STATE_PROP, NULL_VALUE_PLACEHOLDER, NUMBER_FORMAT_REGEXP, NameTransformPipe, NavigatorBottomModule, NavigatorIconComponent, NavigatorModule, NavigatorNode, NavigatorNodeComponent, NavigatorNodeRoot, NavigatorOutletComponent, NavigatorService, NavigatorTopModule, NewPasswordComponent, NumberPipe, OperationBulkRealtimeService, OperationRealtimeService, OperationResultComponent, OptionsService, OutletDirective, PREVIEW_FEATURE_PROVIDERS, PRODUCT_EXPERIENCE_EVENT_SOURCE, PX_ACTIONS, PX_EVENT_NAME, PackageType, PasswordCheckListComponent, PasswordConfirm, PasswordConfirmModalComponent, PasswordInputComponent, PasswordService, PasswordStrengthCheckerService, PasswordStrengthComponent, PasswordStrengthService, PasswordValidationDirective, PasswordValidationService, PatternMessagesService, Permissions, PhoneValidationDirective, PlatformDetailsService, PluginLoadedPipe, PluginsExportScopes, PluginsLoaderService, PluginsModule, PluginsResolveService, PluginsService, PopoverConfirmComponent, PreviewFeatureButtonComponent, PreviewFeatureShowNotification, PreviewService, ProductExperienceDirective, ProductExperienceModule, ProgressBarComponent, PropertiesListComponent, PropertiesListModule, PropertyValueTransformService, ProviderConfigurationComponent, ProviderConfigurationModule, ProviderConfigurationNodeFactory, ProviderConfigurationRouteFactory, ProviderConfigurationService, ProviderDefinitionsService, PushStatus, PushStatusLabels, QUERY_PARAM_HANDLER_PROVIDERS, QueryParamBottomDrawerFactory, QueryParamBottomDrawerStateService, QueryParamHandlerService, QueryParamModalFactory, QueryParamModalStateService, QuickLinkComponent, QuickLinkModule, RESOLVING_COMPONENT_WAIT_TIME, RadioFilterMapper, RangeComponent, RangeDirective, RangeDisplayComponent, RangeDisplayModule, RealtimeButtonComponent, RealtimeControlComponent, RealtimeMessage, RealtimeModule, RealtimeService, RealtimeSubjectService, RelativeTimePipe, RequiredInputPlaceholderDirective, ResizableGridComponent, ResolverServerError, RouterModule, RouterService, RouterTabsResolver, SETUP_FINISHED_STEP_ID, SHOW_PREVIEW_FEATURES, SearchComponent, SearchFilters, SearchInputComponent, SearchOutletComponent, SearchResultEmptyComponent, SearchService, SelectComponent, SelectFilterMapper, SelectItemDirective, SelectKeyboardService, SelectLegacyComponent, SelectModalComponent, SelectModalFilterPipe, SelectModalModule, SelectModule, SelectedItemsComponent, SelectedItemsDirective, SendStatus, SendStatusLabels, ServiceRegistry, SetupCompletedComponent, SetupComponent, SetupModule, SetupService, SetupState, SetupStepperFactory, ShortenUserNamePipe, ShouldShowMoPipe, ShowIfFilterPipe, SimpleJsonPathValidatorDirective, SimplifiedAuthService, SkipLinkDirective, SplitViewAlertsComponent, SplitViewComponent, SplitViewDetailsActionsComponent, SplitViewDetailsComponent, SplitViewExtraHeaderComponent, SplitViewFooterComponent, SplitViewHeaderActionsComponent, SplitViewListComponent, SplitViewListItemDirective, SplitViewSelectionService, StateService, Status, StepperModule, StepperOutletComponent, StepperService, Steppers, StringFilterMapper, StringifyObjectPipe, StripHtmlPipe, SupportedApps, TabComponent, TabsModule, TabsOutletComponent, TabsService, TabsetAriaDirective, TenantUiService, TextAreaRowHeightDirective, TextareaAutoresizeDirective, ThemeSwitcherService, TimeIntervalComponent, TimePickerComponent, TimePickerModule, TitleComponent, TitleOutletComponent, TotpChallengeComponent, TotpSetupComponent, TranslateService, TreeNodeCellRendererComponent, TreeNodeColumn, TreeNodeHeaderCellRendererComponent, TypeaheadComponent, TypeaheadFilterMapper, UiSettingsComponent, UiSettingsModule, UniqueInCollectionByPathValidationDirective, UserEditComponent, UserEditModalComponent, UserEngagementsService, UserMenuItemComponent, UserMenuOutletComponent, UserMenuService, UserModule, UserNameInitialsPipe, UserPreferencesConfigurationStrategy, UserPreferencesService, UserPreferencesStorageInventory, UserPreferencesStorageLocal, UserTotpRevokeComponent, UserTotpSetupComponent, VERSION_MODULE_CONFIG, ValidationPattern, VersionListComponent, VersionModule, VersionService, ViewContext, ViewContextServices, VirtualScrollListenerDirective, VirtualScrollWindowDirective, VirtualScrollWindowStrategy, VirtualScrollerWrapperComponent, VisibleControlsPipe, WIDGET_CONFIGURATION_GRID_SIZE, WIDGET_TYPE_VALUES, WILDCARD_SEARCH_FEATURE_KEY, WebSDKVersionFactory, WidgetActionWrapperComponent, WidgetGlobalAutoRefreshService, WidgetTimeContextActionBarPriority, WidgetTimeContextComponent, WidgetTimeContextDateRangeService, WidgetTimeContextMediatorService, WidgetsDashboardComponent, WidgetsDashboardEventService, WizardBodyComponent, WizardComponent, WizardFooterComponent, WizardHeaderComponent, WizardModalService, WizardModule, WizardOutletComponent, WizardService, ZipService, _virtualScrollWindowStrategyFactory, alertOnError, allEntriesAreEqual, asyncValidateArrayElements, colorValidator, deviceAvailabilityIconMap, extraRoutes, fromFactories, fromTrigger, fromTriggerOnce, getActivatedRoute, getAngularLocalesLanguageString, getBasicInputArrayFormFieldConfig, getDictionaryWithTrimmedKeys, getInjectedHooks, gettext, globalAutoRefreshLoading, hookAction, hookActionBar, hookBreadcrumb, hookComponent, hookCurrentApplication, hookCurrentTenant, hookCurrentUser, hookDataGridActionControls, hookDocs, hookDrawer, hookDynamicProviderConfig, hookFilterMapper, hookGeneric, hookNavigator, hookOptions, hookPatternMessages, hookPlugin, hookPreview, hookQueryParam, hookQueryParamBottomDrawer, hookQueryParamModal, hookRoute, hookSearch, hookService, hookStepper, hookTab, hookUserMenu, hookVersion, hookWidget, hookWizard, internalApps, isBinaryFile, isEagerDynamicComponents, isExtensionFactory, isLazyDynamicComponents, isPromise, languagesFactory, loadLocale, localeId, localePathFactory, memoize, minColumnGridTrackSize, operationStatusClasses, operationStatusIcons, provideBootstrapMetadata, provideCommonPipes, provideCommonServices, provideDefaultOptionsAppInitializer, provideI18n, provideLanguageSelectorAppInitializer, providePluginsLoaderServiceAppInitializer, provideTranslationServiceInstance, ratiosByColumnTypes, removeContextIndicators, removeDuplicatesIds, resolveInjectedFactories, retryWithDelay, scaleWidgetDimensions, simpleJsonPathValidator, sortByPriority, stateToFactory, statusAlert, statusClasses, statusIcons, throttle, toObservable, toObservableOfArrays, tooltips, trimTranslationKey, uniqueInCollectionByPathValidator, validateArrayElements, validateInternationalPhoneNumber, viewContextRoutes, wrapperLegendFieldConfig };
|
|
41099
41172
|
//# sourceMappingURL=c8y-ngx-components.mjs.map
|