@c8y/ngx-components 1017.0.346 → 1017.0.355
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/NOTICES +1 -1
- package/core/range-display/range-display.component.d.ts +19 -1
- package/core/realtime/realtime-subject.service.d.ts +4 -0
- package/core/realtime/realtime.service.d.ts +10 -0
- package/device-protocols/device-protocols.guard.d.ts +12 -0
- package/device-protocols/device-protocols.module.d.ts +8 -0
- package/device-protocols/device-type-detail-edited.service.d.ts +8 -0
- package/device-protocols/device-type-detail.component.d.ts +12 -0
- package/device-protocols/device-type-detail.directive.d.ts +9 -0
- package/device-protocols/index.d.ts +5 -0
- package/esm2020/core/modal/modal-confirm.component.mjs +3 -3
- package/esm2020/core/range-display/range-display.component.mjs +87 -4
- package/esm2020/core/realtime/realtime-subject.service.mjs +47 -4
- package/esm2020/core/realtime/realtime.service.mjs +15 -1
- package/esm2020/device-protocols/c8y-ngx-components-device-protocols.mjs +5 -0
- package/esm2020/device-protocols/device-protocols.guard.mjs +40 -0
- package/esm2020/device-protocols/device-protocols.module.mjs +46 -0
- package/esm2020/device-protocols/device-type-detail-edited.service.mjs +19 -0
- package/esm2020/device-protocols/device-type-detail.component.mjs +45 -0
- package/esm2020/device-protocols/device-type-detail.directive.mjs +19 -0
- package/esm2020/device-protocols/index.mjs +6 -0
- package/esm2020/ecosystem/application-properties/subscription-modal/subscription-modal.component.mjs +4 -1
- package/esm2020/upgrade/ng1/downgraded.services.mjs +6 -4
- package/esm2020/upgrade/ng1/index.mjs +6 -5
- package/esm2020/upgrade/upgrade.module.mjs +10 -10
- package/fesm2015/c8y-ngx-components-device-protocols.mjs +162 -0
- package/fesm2015/c8y-ngx-components-device-protocols.mjs.map +1 -0
- package/fesm2015/c8y-ngx-components-ecosystem.mjs +3 -0
- package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components-upgrade.mjs +91 -88
- package/fesm2015/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2015/c8y-ngx-components.mjs +312 -172
- package/fesm2015/c8y-ngx-components.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-device-protocols.mjs +159 -0
- package/fesm2020/c8y-ngx-components-device-protocols.mjs.map +1 -0
- package/fesm2020/c8y-ngx-components-ecosystem.mjs +3 -0
- package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components-upgrade.mjs +90 -87
- package/fesm2020/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2020/c8y-ngx-components.mjs +310 -172
- package/fesm2020/c8y-ngx-components.mjs.map +1 -1
- package/locales/en.po +11 -12
- package/locales/locales.pot +4 -13
- package/package.json +10 -2
- package/upgrade/ng1/downgraded.services.d.ts +1 -0
|
@@ -5,17 +5,17 @@ import { NavigationEnd, RouterModule as RouterModule$1, PRIMARY_OUTLET, ROUTES,
|
|
|
5
5
|
import { merge, of, defer, combineLatest, race, isObservable, from, Subject, BehaviorSubject, NEVER, fromEvent, pipe, concat, Observable, throwError, timer, EMPTY, fromEventPattern, empty, ReplaySubject, forkJoin } from 'rxjs';
|
|
6
6
|
import { filter, startWith, switchMap, map, distinctUntilChanged, shareReplay, scan, tap, catchError, takeUntil, debounceTime, first as first$1, concatMap, take, delay, retryWhen, combineLatest as combineLatest$1, mergeMap, every as every$1, toArray, merge as merge$1, debounce, share, expand, withLatestFrom, finalize } from 'rxjs/operators';
|
|
7
7
|
import { castArray, flatten, uniq, sortBy, groupBy, camelCase, isUndefined, throttle as throttle$1, keys, get, each, mapValues, mapKeys, isString, isNaN as isNaN$1, isFinite, forEach, every, first, map as map$1, assign, upperFirst, memoize as memoize$1, property, some, find as find$1, entries, omitBy, isDate, flatMap, filter as filter$1, isEqual, snakeCase, matches, reduce, union, isEmpty, orderBy, clone, omit, pick, isEqualWith, escape as escape$1, escapeRegExp, assignWith, set as set$1, findIndex, cloneDeep, uniqBy, transform, identity, flow, isNil, chunk, without, indexOf, parseInt as parseInt$1, isFunction, kebabCase, forOwn } from 'lodash-es';
|
|
8
|
-
import * as i1$
|
|
8
|
+
import * as i1$9 from 'ngx-bootstrap/collapse';
|
|
9
9
|
import { CollapseModule } from 'ngx-bootstrap/collapse';
|
|
10
|
-
import * as i1$
|
|
10
|
+
import * as i1$6 from 'ngx-bootstrap/dropdown';
|
|
11
11
|
import { BsDropdownModule, BsDropdownDirective } from 'ngx-bootstrap/dropdown';
|
|
12
|
-
import * as i2 from '@angular/cdk/scrolling';
|
|
12
|
+
import * as i2$1 from '@angular/cdk/scrolling';
|
|
13
13
|
import { VIRTUAL_SCROLL_STRATEGY, ScrollingModule } from '@angular/cdk/scrolling';
|
|
14
|
-
import * as
|
|
14
|
+
import * as i2 from '@angular/common';
|
|
15
15
|
import { formatDate, registerLocaleData, DatePipe as DatePipe$1, DATE_PIPE_DEFAULT_TIMEZONE, DecimalPipe, CommonModule as CommonModule$1, DOCUMENT } from '@angular/common';
|
|
16
16
|
import * as i1$1 from '@c8y/ngx-components/api';
|
|
17
17
|
import { DataModule, InventoryService as InventoryService$1 } from '@c8y/ngx-components/api';
|
|
18
|
-
import * as i1$
|
|
18
|
+
import * as i1$7 from 'ngx-bootstrap/tooltip';
|
|
19
19
|
import { TooltipModule } from 'ngx-bootstrap/tooltip';
|
|
20
20
|
import { setTheme } from 'ngx-bootstrap/utils';
|
|
21
21
|
import * as i1$4 from '@angular/common/http';
|
|
@@ -32,21 +32,21 @@ import { defineLocale, enGbLocale, zhCnLocale, ruLocale, ptBrLocale, plLocale, n
|
|
|
32
32
|
import { saveAs } from 'file-saver';
|
|
33
33
|
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
34
34
|
import { get as get$1, find, negate, isUndefined as isUndefined$1, set, sortBy as sortBy$1, isEmpty as isEmpty$1, flatten as flatten$1, pick as pick$1 } from 'lodash';
|
|
35
|
-
import * as i1$
|
|
35
|
+
import * as i1$5 from '@angular/platform-browser';
|
|
36
36
|
import * as i4 from '@angular/cdk/a11y';
|
|
37
37
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
38
|
-
import * as i1$
|
|
38
|
+
import * as i1$8 from 'ngx-bootstrap/modal';
|
|
39
39
|
import { ModalModule as ModalModule$1, BsModalRef } from 'ngx-bootstrap/modal';
|
|
40
40
|
import * as i5 from '@angular/forms';
|
|
41
41
|
import { NgModel, FormControlName, Validators, ControlContainer, NgForm, NG_VALIDATORS, FormControl, FormsModule as FormsModule$1, ReactiveFormsModule, NG_VALUE_ACCESSOR, CheckboxControlValueAccessor, FormGroup, FormArray } from '@angular/forms';
|
|
42
42
|
import * as i5$1 from 'angularx-qrcode';
|
|
43
43
|
import { QRCodeModule } from 'angularx-qrcode';
|
|
44
44
|
import { parsePhoneNumberFromString } from 'libphonenumber-js/max';
|
|
45
|
-
import * as i2$
|
|
45
|
+
import * as i2$2 from 'ngx-bootstrap/popover';
|
|
46
46
|
import { PopoverDirective, PopoverModule } from 'ngx-bootstrap/popover';
|
|
47
|
-
import * as i2$
|
|
47
|
+
import * as i2$3 from '@angular/cdk/stepper';
|
|
48
48
|
import { CdkStepper, STEP_STATE, CdkStepperModule, CdkStep, STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
|
|
49
|
-
import * as i1$
|
|
49
|
+
import * as i1$a from '@angular/cdk/bidi';
|
|
50
50
|
import * as i4$1 from '@ngx-formly/core';
|
|
51
51
|
import { FieldArrayType, FieldType, FieldWrapper, FormlyModule, FORMLY_CONFIG, ɵdefineHiddenProp } from '@ngx-formly/core';
|
|
52
52
|
import * as i5$2 from '@ngx-formly/core/select';
|
|
@@ -3750,7 +3750,7 @@ const ICONS = [
|
|
|
3750
3750
|
class EmptyStateComponent {
|
|
3751
3751
|
}
|
|
3752
3752
|
EmptyStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3753
|
-
EmptyStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: { icon: "icon", title: "title", subtitle: "subtitle", horizontal: "horizontal" }, ngImport: i0, template: "<div class=\"c8y-empty-state\" [ngClass]=\"{ 'c8y-empty-state--horizontal': horizontal }\">\n <i [c8yIcon]=\"icon\" class=\"c8y-icon-duocolor\"></i>\n\n <ng-container *ngIf=\"!horizontal\">\n <div>\n <h3 class=\"text-medium\">{{ title | translate }}</h3>\n <p class=\"p-b-16\" *ngIf=\"subtitle\">{{ subtitle | translate }}</p>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"horizontal\">\n <div class=\"d-flex d-col j-c-center\">\n <p class=\"text-medium a-s-start\">{{ title | translate }}</p>\n <p *ngIf=\"subtitle\" class=\"small a-s-start\">{{ subtitle | translate }}</p>\n <div class=\"small a-s-start\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
3753
|
+
EmptyStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: { icon: "icon", title: "title", subtitle: "subtitle", horizontal: "horizontal" }, ngImport: i0, template: "<div class=\"c8y-empty-state\" [ngClass]=\"{ 'c8y-empty-state--horizontal': horizontal }\">\n <i [c8yIcon]=\"icon\" class=\"c8y-icon-duocolor\"></i>\n\n <ng-container *ngIf=\"!horizontal\">\n <div>\n <h3 class=\"text-medium\">{{ title | translate }}</h3>\n <p class=\"p-b-16\" *ngIf=\"subtitle\">{{ subtitle | translate }}</p>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"horizontal\">\n <div class=\"d-flex d-col j-c-center\">\n <p class=\"text-medium a-s-start\">{{ title | translate }}</p>\n <p *ngIf=\"subtitle\" class=\"small a-s-start\">{{ subtitle | translate }}</p>\n <div class=\"small a-s-start\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
3754
3754
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmptyStateComponent, decorators: [{
|
|
3755
3755
|
type: Component,
|
|
3756
3756
|
args: [{ selector: 'c8y-ui-empty-state', template: "<div class=\"c8y-empty-state\" [ngClass]=\"{ 'c8y-empty-state--horizontal': horizontal }\">\n <i [c8yIcon]=\"icon\" class=\"c8y-icon-duocolor\"></i>\n\n <ng-container *ngIf=\"!horizontal\">\n <div>\n <h3 class=\"text-medium\">{{ title | translate }}</h3>\n <p class=\"p-b-16\" *ngIf=\"subtitle\">{{ subtitle | translate }}</p>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"horizontal\">\n <div class=\"d-flex d-col j-c-center\">\n <p class=\"text-medium a-s-start\">{{ title | translate }}</p>\n <p *ngIf=\"subtitle\" class=\"small a-s-start\">{{ subtitle | translate }}</p>\n <div class=\"small a-s-start\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n</div>\n" }]
|
|
@@ -4040,6 +4040,20 @@ class RealtimeService {
|
|
|
4040
4040
|
get active() {
|
|
4041
4041
|
return this.isActive.value;
|
|
4042
4042
|
}
|
|
4043
|
+
/**
|
|
4044
|
+
* An observable emitting a value in case the realtime connection has been interrupted.
|
|
4045
|
+
* Can be used to reload data of e.g. a datapoint graph that wasn't received while realtime was interrupted.
|
|
4046
|
+
*/
|
|
4047
|
+
get reconnect$() {
|
|
4048
|
+
return this.realtimeSubject.reconnect$;
|
|
4049
|
+
}
|
|
4050
|
+
/**
|
|
4051
|
+
* An observable emitting either `connected` or `disconnected` depending on the state of the realtime connection.
|
|
4052
|
+
* Can be used to e.g. inform the user about the interrupted realtime connection.
|
|
4053
|
+
*/
|
|
4054
|
+
get connectionStatus$() {
|
|
4055
|
+
return this.realtimeSubject.connectionStatus$;
|
|
4056
|
+
}
|
|
4043
4057
|
/**
|
|
4044
4058
|
* Get an Observable of all realtime notifications.
|
|
4045
4059
|
*
|
|
@@ -4211,7 +4225,7 @@ class LoadMoreComponent {
|
|
|
4211
4225
|
}
|
|
4212
4226
|
}
|
|
4213
4227
|
LoadMoreComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoadMoreComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4214
|
-
LoadMoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LoadMoreComponent, selector: "c8y-load-more", inputs: { paging: "paging", useIntersection: "useIntersection", hidden: "hidden", container: "container", class: "class", maxIterations: "maxIterations", noMoreDataHint: "noMoreDataHint", loadingTemplate: "loadingTemplate", hideNoMoreDataHint: "hideNoMoreDataHint", loadNextLabel: "loadNextLabel", loadingLabel: "loadingLabel" }, outputs: { onLoad: "onLoad" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<button\n class=\"btn btn-default btn-block text-center\"\n (click)=\"loadMore($event)\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n *ngIf=\"hasMore && !(loadingTemplate && isLoading)\"\n [style.visibility]=\"hidden ? 'hidden' : 'visible'\"\n [style.height]=\"hidden ? '1px' : null\"\n title=\"{{ 'Load more' | translate }}\"\n>\n <ng-container *ngIf=\"!isLoading\">\n <span *ngIf=\"loadNextLabel; else loadPage\" [innerHTML]=\"loadNextLabel | translate\"></span>\n <ng-template #loadPage>\n <span translate ngNonBindable [translateParams]=\"{ pageNo: paging.currentPage + 1 }\">\n Load page {{ pageNo }}</span\n >\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <span *ngIf=\"loadingLabel; else loading\" [innerHTML]=\"loadingLabel | translate\"></span>\n <ng-template #loading>\n <span translate ngNonBindable [translateParams]=\"{ pageNo: paging.currentPage + 1 }\">\n Page {{ pageNo }} is loading\u2026\n </span>\n </ng-template>\n </ng-container>\n</button>\n\n<ng-container *ngIf=\"hasNoMoreData && !hideNoMoreDataHint && !isLoading\">\n <ng-container *ngTemplateOutlet=\"noMoreDataHint || finishHint\"></ng-container>\n</ng-container>\n\n<ng-template #finishHint>\n <div class=\"legend form-block center last-record\" title=\"{{ 'Last record' | translate }}\">\n <i [c8yIcon]=\"'circle'\"></i>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"loadingTemplate && isLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
4228
|
+
LoadMoreComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LoadMoreComponent, selector: "c8y-load-more", inputs: { paging: "paging", useIntersection: "useIntersection", hidden: "hidden", container: "container", class: "class", maxIterations: "maxIterations", noMoreDataHint: "noMoreDataHint", loadingTemplate: "loadingTemplate", hideNoMoreDataHint: "hideNoMoreDataHint", loadNextLabel: "loadNextLabel", loadingLabel: "loadingLabel" }, outputs: { onLoad: "onLoad" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: "<button\n class=\"btn btn-default btn-block text-center\"\n (click)=\"loadMore($event)\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n *ngIf=\"hasMore && !(loadingTemplate && isLoading)\"\n [style.visibility]=\"hidden ? 'hidden' : 'visible'\"\n [style.height]=\"hidden ? '1px' : null\"\n title=\"{{ 'Load more' | translate }}\"\n>\n <ng-container *ngIf=\"!isLoading\">\n <span *ngIf=\"loadNextLabel; else loadPage\" [innerHTML]=\"loadNextLabel | translate\"></span>\n <ng-template #loadPage>\n <span translate ngNonBindable [translateParams]=\"{ pageNo: paging.currentPage + 1 }\">\n Load page {{ pageNo }}</span\n >\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <span *ngIf=\"loadingLabel; else loading\" [innerHTML]=\"loadingLabel | translate\"></span>\n <ng-template #loading>\n <span translate ngNonBindable [translateParams]=\"{ pageNo: paging.currentPage + 1 }\">\n Page {{ pageNo }} is loading\u2026\n </span>\n </ng-template>\n </ng-container>\n</button>\n\n<ng-container *ngIf=\"hasNoMoreData && !hideNoMoreDataHint && !isLoading\">\n <ng-container *ngTemplateOutlet=\"noMoreDataHint || finishHint\"></ng-container>\n</ng-container>\n\n<ng-template #finishHint>\n <div class=\"legend form-block center last-record\" title=\"{{ 'Last record' | translate }}\">\n <i [c8yIcon]=\"'circle'\"></i>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"loadingTemplate && isLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
4215
4229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoadMoreComponent, decorators: [{
|
|
4216
4230
|
type: Component,
|
|
4217
4231
|
args: [{ selector: 'c8y-load-more', template: "<button\n class=\"btn btn-default btn-block text-center\"\n (click)=\"loadMore($event)\"\n [ngClass]=\"{ 'btn-pending': isLoading }\"\n *ngIf=\"hasMore && !(loadingTemplate && isLoading)\"\n [style.visibility]=\"hidden ? 'hidden' : 'visible'\"\n [style.height]=\"hidden ? '1px' : null\"\n title=\"{{ 'Load more' | translate }}\"\n>\n <ng-container *ngIf=\"!isLoading\">\n <span *ngIf=\"loadNextLabel; else loadPage\" [innerHTML]=\"loadNextLabel | translate\"></span>\n <ng-template #loadPage>\n <span translate ngNonBindable [translateParams]=\"{ pageNo: paging.currentPage + 1 }\">\n Load page {{ pageNo }}</span\n >\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLoading\">\n <span *ngIf=\"loadingLabel; else loading\" [innerHTML]=\"loadingLabel | translate\"></span>\n <ng-template #loading>\n <span translate ngNonBindable [translateParams]=\"{ pageNo: paging.currentPage + 1 }\">\n Page {{ pageNo }} is loading\u2026\n </span>\n </ng-template>\n </ng-container>\n</button>\n\n<ng-container *ngIf=\"hasNoMoreData && !hideNoMoreDataHint && !isLoading\">\n <ng-container *ngTemplateOutlet=\"noMoreDataHint || finishHint\"></ng-container>\n</ng-container>\n\n<ng-template #finishHint>\n <div class=\"legend form-block center last-record\" title=\"{{ 'Last record' | translate }}\">\n <i [c8yIcon]=\"'circle'\"></i>\n </div>\n</ng-template>\n\n<ng-container *ngIf=\"loadingTemplate && isLoading\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n</ng-container>\n" }]
|
|
@@ -4484,7 +4498,7 @@ class VirtualScrollerWrapperComponent {
|
|
|
4484
4498
|
}
|
|
4485
4499
|
}
|
|
4486
4500
|
VirtualScrollerWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VirtualScrollerWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4487
|
-
VirtualScrollerWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: VirtualScrollerWrapperComponent, selector: "c8y-virtual-scroller-wrapper", inputs: { items: "items", itemHeight: "itemHeight", containerHeight: "containerHeight", template: "template", filterPipe: "filterPipe", strategy: "strategy", trackByFn: "trackByFn" }, ngImport: i0, template: "<ng-container *ngIf=\"items$ |async as items\" [ngSwitch]=\"strategy\">\n <ng-container *ngSwitchCase=\"'window'\">\n <cdk-virtual-scroll-viewport windowVirtualScrollStrategy [itemSizePx]=\"itemHeight\">\n <div *cdkVirtualFor=\"let item of items; index as i; trackBy: trackByFn\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: item, index: i}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'fixed'\">\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.height]=\"containerHeight + 'px'\">\n <div *cdkVirtualFor=\"let item of items; index as i; trackBy: trackByFn\" >\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: item, index: i}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
4501
|
+
VirtualScrollerWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: VirtualScrollerWrapperComponent, selector: "c8y-virtual-scroller-wrapper", inputs: { items: "items", itemHeight: "itemHeight", containerHeight: "containerHeight", template: "template", filterPipe: "filterPipe", strategy: "strategy", trackByFn: "trackByFn" }, ngImport: i0, template: "<ng-container *ngIf=\"items$ |async as items\" [ngSwitch]=\"strategy\">\n <ng-container *ngSwitchCase=\"'window'\">\n <cdk-virtual-scroll-viewport windowVirtualScrollStrategy [itemSizePx]=\"itemHeight\">\n <div *cdkVirtualFor=\"let item of items; index as i; trackBy: trackByFn\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: item, index: i}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'fixed'\">\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.height]=\"containerHeight + 'px'\">\n <div *cdkVirtualFor=\"let item of items; index as i; trackBy: trackByFn\" >\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: item, index: i}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: VirtualScrollWindowDirective, selector: "cdk-virtual-scroll-viewport[windowVirtualScrollStrategy]", inputs: ["itemSizePx", "minBufferPx", "maxBufferPx", "offsetSizePx"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
4488
4502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VirtualScrollerWrapperComponent, decorators: [{
|
|
4489
4503
|
type: Component,
|
|
4490
4504
|
args: [{ selector: 'c8y-virtual-scroller-wrapper', template: "<ng-container *ngIf=\"items$ |async as items\" [ngSwitch]=\"strategy\">\n <ng-container *ngSwitchCase=\"'window'\">\n <cdk-virtual-scroll-viewport windowVirtualScrollStrategy [itemSizePx]=\"itemHeight\">\n <div *cdkVirtualFor=\"let item of items; index as i; trackBy: trackByFn\">\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: item, index: i}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'fixed'\">\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.height]=\"containerHeight + 'px'\">\n <div *cdkVirtualFor=\"let item of items; index as i; trackBy: trackByFn\" >\n <ng-container *ngTemplateOutlet=\"template; context: {$implicit: item, index: i}\"></ng-container>\n </div>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n</ng-container>\n" }]
|
|
@@ -5775,7 +5789,7 @@ function strToNumber(value) {
|
|
|
5775
5789
|
class OperationResultComponent {
|
|
5776
5790
|
}
|
|
5777
5791
|
OperationResultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: OperationResultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5778
|
-
OperationResultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: OperationResultComponent, selector: "c8y-operation-result", inputs: { text: "text", vertical: "vertical", size: "size", type: "type" }, ngImport: i0, template: "<style>\n .stroke-anim {\n animation: stroke-anim 0.75s ease-in-out 0s 1 forwards;\n }\n .check-anim {\n animation: check-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n .symbol-anim {\n animation: symbol-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n\n @keyframes stroke-anim {\n 0% {\n stroke-dashoffset: 60;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes check-anim {\n 0% {\n stroke-dashoffset: 28;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n @keyframes symbol-anim {\n 0% {\n stroke-dashoffset: 7;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n .delay-05 {\n animation-delay: 0.5s;\n }\n</style>\n<div class=\"d-flex a-i-center p-24 m-24 p-b-0\" [ngClass]=\"{ 'd-col j-c-center': vertical }\">\n <svg *ngIf=\"type === 'success'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <polyline\n stroke=\"var(--input-validation-success, #008800)\"\n stroke-width=\"2\"\n stroke-linejoin=\"round\"\n points=\"7.8678862 11.508 11.9656988 15.984 20.2137797 7.44836856\"\n class=\"check-anim\"\n stroke-dasharray=\"28\"\n stroke-dashoffset=\"28\"\n ></polyline>\n <path\n d=\"M18.3656773,3.02795925 C16.5689809,1.75089408 14.3721808,1 12,1 C5.92486775,1 1,5.92486775 1,12 C1,18.0751322 5.92486775,23 12,23 C18.0751322,23 23,18.0751322 23,12\"\n id=\"Path\"\n class=\"stroke-anim\"\n stroke=\"var(--input-validation-success, #008800)\"\n stroke-width=\"2\"\n stroke-dasharray=\"60\"\n stroke-dashoffset=\"60\"\n ></path>\n </g>\n </svg>\n\n <svg *ngIf=\"type === 'error'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g id=\"Artboard-Copy-3\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <line\n x1=\"12\"\n y1=\"13.5356315\"\n x2=\"12\"\n y2=\"7\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n class=\"symbol-anim\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n ></line>\n <line\n x1=\"12\"\n y1=\"17.7678157\"\n x2=\"12\"\n y2=\"17.2321843\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n class=\"symbol-anim\"\n ></line>\n <circle\n id=\"Oval\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n stroke-width=\"2\"\n cx=\"12\"\n cy=\"12\"\n r=\"11\"\n class=\"stroke-anim\"\n stroke-dasharray=\"70\"\n stroke-dashoffset=\"70\"\n stroke-linejoin=\"round\"\n ></circle>\n </g>\n </svg>\n\n <svg *ngIf=\"type === 'warning'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <line\n x1=\"12\"\n y1=\"13.5356315\"\n x2=\"12\"\n y2=\"7\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n class=\"symbol-anim\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n ></line>\n <line\n x1=\"12\"\n y1=\"17.7678157\"\n x2=\"12\"\n y2=\"17.2321843\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n class=\"symbol-anim\"\n ></line>\n\n <g\n fill-rule=\"nonzero\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n stroke-width=\"2\"\n class=\"stroke-anim\"\n stroke-dashoffset=\"1000\"\n stroke-dasharray=\"90\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M12,1 L23,21 L1,21 L12,1 Z\" id=\"Path\"></path>\n </g>\n </g>\n </svg>\n <p *ngIf=\"text\" class=\"text-center text-medium animated fadeIn delay-05 m-8\">\n {{ text }}\n </p>\n</div>\n", styles: ["\n .stroke-anim {\n animation: stroke-anim 0.75s ease-in-out 0s 1 forwards;\n }\n .check-anim {\n animation: check-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n .symbol-anim {\n animation: symbol-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n\n @keyframes stroke-anim {\n 0% {\n stroke-dashoffset: 60;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes check-anim {\n 0% {\n stroke-dashoffset: 28;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n @keyframes symbol-anim {\n 0% {\n stroke-dashoffset: 7;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n .delay-05 {\n animation-delay: 0.5s;\n }\n"], dependencies: [{ kind: "directive", type:
|
|
5792
|
+
OperationResultComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: OperationResultComponent, selector: "c8y-operation-result", inputs: { text: "text", vertical: "vertical", size: "size", type: "type" }, ngImport: i0, template: "<style>\n .stroke-anim {\n animation: stroke-anim 0.75s ease-in-out 0s 1 forwards;\n }\n .check-anim {\n animation: check-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n .symbol-anim {\n animation: symbol-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n\n @keyframes stroke-anim {\n 0% {\n stroke-dashoffset: 60;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes check-anim {\n 0% {\n stroke-dashoffset: 28;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n @keyframes symbol-anim {\n 0% {\n stroke-dashoffset: 7;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n .delay-05 {\n animation-delay: 0.5s;\n }\n</style>\n<div class=\"d-flex a-i-center p-24 m-24 p-b-0\" [ngClass]=\"{ 'd-col j-c-center': vertical }\">\n <svg *ngIf=\"type === 'success'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <polyline\n stroke=\"var(--input-validation-success, #008800)\"\n stroke-width=\"2\"\n stroke-linejoin=\"round\"\n points=\"7.8678862 11.508 11.9656988 15.984 20.2137797 7.44836856\"\n class=\"check-anim\"\n stroke-dasharray=\"28\"\n stroke-dashoffset=\"28\"\n ></polyline>\n <path\n d=\"M18.3656773,3.02795925 C16.5689809,1.75089408 14.3721808,1 12,1 C5.92486775,1 1,5.92486775 1,12 C1,18.0751322 5.92486775,23 12,23 C18.0751322,23 23,18.0751322 23,12\"\n id=\"Path\"\n class=\"stroke-anim\"\n stroke=\"var(--input-validation-success, #008800)\"\n stroke-width=\"2\"\n stroke-dasharray=\"60\"\n stroke-dashoffset=\"60\"\n ></path>\n </g>\n </svg>\n\n <svg *ngIf=\"type === 'error'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g id=\"Artboard-Copy-3\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <line\n x1=\"12\"\n y1=\"13.5356315\"\n x2=\"12\"\n y2=\"7\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n class=\"symbol-anim\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n ></line>\n <line\n x1=\"12\"\n y1=\"17.7678157\"\n x2=\"12\"\n y2=\"17.2321843\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n class=\"symbol-anim\"\n ></line>\n <circle\n id=\"Oval\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n stroke-width=\"2\"\n cx=\"12\"\n cy=\"12\"\n r=\"11\"\n class=\"stroke-anim\"\n stroke-dasharray=\"70\"\n stroke-dashoffset=\"70\"\n stroke-linejoin=\"round\"\n ></circle>\n </g>\n </svg>\n\n <svg *ngIf=\"type === 'warning'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <line\n x1=\"12\"\n y1=\"13.5356315\"\n x2=\"12\"\n y2=\"7\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n class=\"symbol-anim\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n ></line>\n <line\n x1=\"12\"\n y1=\"17.7678157\"\n x2=\"12\"\n y2=\"17.2321843\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n class=\"symbol-anim\"\n ></line>\n\n <g\n fill-rule=\"nonzero\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n stroke-width=\"2\"\n class=\"stroke-anim\"\n stroke-dashoffset=\"1000\"\n stroke-dasharray=\"90\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M12,1 L23,21 L1,21 L12,1 Z\" id=\"Path\"></path>\n </g>\n </g>\n </svg>\n <p *ngIf=\"text\" class=\"text-center text-medium animated fadeIn delay-05 m-8\">\n {{ text }}\n </p>\n</div>\n", styles: ["\n .stroke-anim {\n animation: stroke-anim 0.75s ease-in-out 0s 1 forwards;\n }\n .check-anim {\n animation: check-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n .symbol-anim {\n animation: symbol-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n\n @keyframes stroke-anim {\n 0% {\n stroke-dashoffset: 60;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes check-anim {\n 0% {\n stroke-dashoffset: 28;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n @keyframes symbol-anim {\n 0% {\n stroke-dashoffset: 7;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n .delay-05 {\n animation-delay: 0.5s;\n }\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
5779
5793
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: OperationResultComponent, decorators: [{
|
|
5780
5794
|
type: Component,
|
|
5781
5795
|
args: [{ selector: 'c8y-operation-result', template: "<style>\n .stroke-anim {\n animation: stroke-anim 0.75s ease-in-out 0s 1 forwards;\n }\n .check-anim {\n animation: check-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n .symbol-anim {\n animation: symbol-anim 0.35s ease-in-out 0.5s 1 forwards;\n }\n\n @keyframes stroke-anim {\n 0% {\n stroke-dashoffset: 60;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n @keyframes check-anim {\n 0% {\n stroke-dashoffset: 28;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n @keyframes symbol-anim {\n 0% {\n stroke-dashoffset: 7;\n }\n 100% {\n stroke-dashoffset: 0;\n }\n }\n\n .delay-05 {\n animation-delay: 0.5s;\n }\n</style>\n<div class=\"d-flex a-i-center p-24 m-24 p-b-0\" [ngClass]=\"{ 'd-col j-c-center': vertical }\">\n <svg *ngIf=\"type === 'success'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <polyline\n stroke=\"var(--input-validation-success, #008800)\"\n stroke-width=\"2\"\n stroke-linejoin=\"round\"\n points=\"7.8678862 11.508 11.9656988 15.984 20.2137797 7.44836856\"\n class=\"check-anim\"\n stroke-dasharray=\"28\"\n stroke-dashoffset=\"28\"\n ></polyline>\n <path\n d=\"M18.3656773,3.02795925 C16.5689809,1.75089408 14.3721808,1 12,1 C5.92486775,1 1,5.92486775 1,12 C1,18.0751322 5.92486775,23 12,23 C18.0751322,23 23,18.0751322 23,12\"\n id=\"Path\"\n class=\"stroke-anim\"\n stroke=\"var(--input-validation-success, #008800)\"\n stroke-width=\"2\"\n stroke-dasharray=\"60\"\n stroke-dashoffset=\"60\"\n ></path>\n </g>\n </svg>\n\n <svg *ngIf=\"type === 'error'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g id=\"Artboard-Copy-3\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <line\n x1=\"12\"\n y1=\"13.5356315\"\n x2=\"12\"\n y2=\"7\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n class=\"symbol-anim\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n ></line>\n <line\n x1=\"12\"\n y1=\"17.7678157\"\n x2=\"12\"\n y2=\"17.2321843\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n class=\"symbol-anim\"\n ></line>\n <circle\n id=\"Oval\"\n stroke=\"var(--input-validation-error, #E0000E)\"\n stroke-width=\"2\"\n cx=\"12\"\n cy=\"12\"\n r=\"11\"\n class=\"stroke-anim\"\n stroke-dasharray=\"70\"\n stroke-dashoffset=\"70\"\n stroke-linejoin=\"round\"\n ></circle>\n </g>\n </svg>\n\n <svg *ngIf=\"type === 'warning'\" viewBox=\"0 0 24 24\" [ngStyle]=\"{ 'max-width.px': size || 64 }\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <line\n x1=\"12\"\n y1=\"13.5356315\"\n x2=\"12\"\n y2=\"7\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n class=\"symbol-anim\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n ></line>\n <line\n x1=\"12\"\n y1=\"17.7678157\"\n x2=\"12\"\n y2=\"17.2321843\"\n id=\"Path-2\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-dasharray=\"7\"\n stroke-dashoffset=\"7\"\n class=\"symbol-anim\"\n ></line>\n\n <g\n fill-rule=\"nonzero\"\n stroke=\"var(--input-validation-warning, #FF801F)\"\n stroke-width=\"2\"\n class=\"stroke-anim\"\n stroke-dashoffset=\"1000\"\n stroke-dasharray=\"90\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M12,1 L23,21 L1,21 L12,1 Z\" id=\"Path\"></path>\n </g>\n </g>\n </svg>\n <p *ngIf=\"text\" class=\"text-center text-medium animated fadeIn delay-05 m-8\">\n {{ text }}\n </p>\n</div>\n" }]
|
|
@@ -5912,7 +5926,7 @@ class ProgressBarComponent {
|
|
|
5912
5926
|
}
|
|
5913
5927
|
}
|
|
5914
5928
|
ProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5915
|
-
ProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ProgressBarComponent, selector: "c8y-progress-bar", inputs: { message: "message", progress: "progress" }, ngImport: i0, template: "<div class=\"bg-inherit\">\n <div class=\"progress progress-striped active\" *ngIf=\"progress !== null\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-label]=\"'Progress' | translate\"\n [attr.aria-valuenow]=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner-snake\" *ngIf=\"progress === null\"></div>\n <p *ngIf=\"message\">\n {{ message | translate }}\n </p>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
5929
|
+
ProgressBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ProgressBarComponent, selector: "c8y-progress-bar", inputs: { message: "message", progress: "progress" }, ngImport: i0, template: "<div class=\"bg-inherit\">\n <div class=\"progress progress-striped active\" *ngIf=\"progress !== null\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-label]=\"'Progress' | translate\"\n [attr.aria-valuenow]=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner-snake\" *ngIf=\"progress === null\"></div>\n <p *ngIf=\"message\">\n {{ message | translate }}\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
5916
5930
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
5917
5931
|
type: Component,
|
|
5918
5932
|
args: [{ selector: 'c8y-progress-bar', template: "<div class=\"bg-inherit\">\n <div class=\"progress progress-striped active\" *ngIf=\"progress !== null\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\n [attr.aria-label]=\"'Progress' | translate\"\n [attr.aria-valuenow]=\"progress\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner-snake\" *ngIf=\"progress === null\"></div>\n <p *ngIf=\"message\">\n {{ message | translate }}\n </p>\n</div>\n" }]
|
|
@@ -6635,14 +6649,14 @@ class MarkdownToHtmlPipe {
|
|
|
6635
6649
|
: of('');
|
|
6636
6650
|
}
|
|
6637
6651
|
}
|
|
6638
|
-
MarkdownToHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MarkdownToHtmlPipe, deps: [{ token: i1$
|
|
6652
|
+
MarkdownToHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MarkdownToHtmlPipe, deps: [{ token: i1$5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
6639
6653
|
MarkdownToHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: MarkdownToHtmlPipe, name: "markdownToHtml" });
|
|
6640
6654
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MarkdownToHtmlPipe, decorators: [{
|
|
6641
6655
|
type: Pipe,
|
|
6642
6656
|
args: [{
|
|
6643
6657
|
name: 'markdownToHtml'
|
|
6644
6658
|
}]
|
|
6645
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
6659
|
+
}], ctorParameters: function () { return [{ type: i1$5.DomSanitizer }]; } });
|
|
6646
6660
|
|
|
6647
6661
|
class StringifyObjectPipe {
|
|
6648
6662
|
constructor(c8yDatePipe) {
|
|
@@ -7397,7 +7411,7 @@ class ActionBarComponent {
|
|
|
7397
7411
|
}
|
|
7398
7412
|
}
|
|
7399
7413
|
ActionBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionBarComponent, deps: [{ token: GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7400
|
-
ActionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ActionBarComponent, selector: "c8y-action-bar", inputs: { navigatorOpen: "navigatorOpen", hasTabs: "hasTabs", isTabsHorizontal: "isTabsHorizontal", items$: "items$" }, host: { listeners: { "mousedown": "mouseDown($event.target)" }, properties: { "class.navigator-open": "this.navigatorOpen", "class.has-tabs": "this.hasTabs", "class.horizontal-tabs": "this.isTabsHorizontal", "class.c8y-ui-action-bar": "this.uiActionBar", "hidden": "this.hidden" }, classAttribute: "c8y-ui-action-bar" }, ngImport: i0, template: "<div class=\"navbar-header\" role=\"presentation\">\n <p class=\"text-label-small p-l-16 p-t-8 p-b-8 visible-xs\">\n <span class=\"text-primary\">{{ 'Action bar' | translate }}</span>\n </p>\n</div>\n\n<div id=\"page-toolbar\" class=\"navbar-collapse\" role=\"complementary\" >\n <ul class=\"nav navbar-nav navbar-left\">\n <ng-container *ngFor=\"let item of left$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right\">\n <ng-container *ngFor=\"let item of right$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n <li *ngIf=\"(more$ | async).length === 1; else moreWithMultipleOptions\" class=\"no-remove more-wrapper\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </li>\n <ng-template #moreWithMultipleOptions>\n <li class=\"no-remove more-wrapper\" *ngIf=\"(more$ | async).length > 1\">\n <div class=\"dropdown\" dropdown>\n <button\n title=\"{{ 'More\u2026' | translate }}\"\n type=\"button\"\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <span class=\"text-truncate\" translate>More\u2026</span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu visible-xs\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"dropdown-menu dropdown-menu-right hidden-xs\" *dropdownMenu>\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </li>\n </ng-template> \n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$
|
|
7414
|
+
ActionBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ActionBarComponent, selector: "c8y-action-bar", inputs: { navigatorOpen: "navigatorOpen", hasTabs: "hasTabs", isTabsHorizontal: "isTabsHorizontal", items$: "items$" }, host: { listeners: { "mousedown": "mouseDown($event.target)" }, properties: { "class.navigator-open": "this.navigatorOpen", "class.has-tabs": "this.hasTabs", "class.horizontal-tabs": "this.isTabsHorizontal", "class.c8y-ui-action-bar": "this.uiActionBar", "hidden": "this.hidden" }, classAttribute: "c8y-ui-action-bar" }, ngImport: i0, template: "<div class=\"navbar-header\" role=\"presentation\">\n <p class=\"text-label-small p-l-16 p-t-8 p-b-8 visible-xs\">\n <span class=\"text-primary\">{{ 'Action bar' | translate }}</span>\n </p>\n</div>\n\n<div id=\"page-toolbar\" class=\"navbar-collapse\" role=\"complementary\" >\n <ul class=\"nav navbar-nav navbar-left\">\n <ng-container *ngFor=\"let item of left$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right\">\n <ng-container *ngFor=\"let item of right$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n <li *ngIf=\"(more$ | async).length === 1; else moreWithMultipleOptions\" class=\"no-remove more-wrapper\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </li>\n <ng-template #moreWithMultipleOptions>\n <li class=\"no-remove more-wrapper\" *ngIf=\"(more$ | async).length > 1\">\n <div class=\"dropdown\" dropdown>\n <button\n title=\"{{ 'More\u2026' | translate }}\"\n type=\"button\"\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <span class=\"text-truncate\" translate>More\u2026</span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu visible-xs\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"dropdown-menu dropdown-menu-right hidden-xs\" *dropdownMenu>\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </li>\n </ng-template> \n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
7401
7415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionBarComponent, decorators: [{
|
|
7402
7416
|
type: Component,
|
|
7403
7417
|
args: [{ selector: 'c8y-action-bar', host: { class: 'c8y-ui-action-bar' }, template: "<div class=\"navbar-header\" role=\"presentation\">\n <p class=\"text-label-small p-l-16 p-t-8 p-b-8 visible-xs\">\n <span class=\"text-primary\">{{ 'Action bar' | translate }}</span>\n </p>\n</div>\n\n<div id=\"page-toolbar\" class=\"navbar-collapse\" role=\"complementary\" >\n <ul class=\"nav navbar-nav navbar-left\">\n <ng-container *ngFor=\"let item of left$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right\">\n <ng-container *ngFor=\"let item of right$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n <li *ngIf=\"(more$ | async).length === 1; else moreWithMultipleOptions\" class=\"no-remove more-wrapper\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </li>\n <ng-template #moreWithMultipleOptions>\n <li class=\"no-remove more-wrapper\" *ngIf=\"(more$ | async).length > 1\">\n <div class=\"dropdown\" dropdown>\n <button\n title=\"{{ 'More\u2026' | translate }}\"\n type=\"button\"\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <span class=\"text-truncate\" translate>More\u2026</span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu visible-xs\">\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"dropdown-menu dropdown-menu-right hidden-xs\" *dropdownMenu>\n <ng-container *ngFor=\"let item of more$ | async\">\n <ng-container *c8yOutlet=\"item.component || item.template; injector: item.injector\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </li>\n </ng-template> \n </ul>\n</div>\n" }]
|
|
@@ -7587,7 +7601,7 @@ class ActionOutletComponent {
|
|
|
7587
7601
|
}
|
|
7588
7602
|
}
|
|
7589
7603
|
ActionOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7590
|
-
ActionOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ActionOutletComponent, selector: "c8y-action-outlet", inputs: { items: "items" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<ng-container *ngIf=\"(components$ | async)?.length > 0\">\n <div class=\"main-header-item\" *ngFor=\"let item of components$ | async\">\n <ng-container *ngComponentOutlet=\"item.component; injector: item.injector\"></ng-container>\n </div>\n</ng-container>\n<ng-container>\n <div class=\"main-header-item\" *ngIf=\"(templatesAndLabels$ | async)?.length > 0\">\n <div class=\"dropdown\" dropdown>\n <button\n type=\"button\"\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n title=\"{{ 'Actions' | translate }}\"\n >\n <i [c8yIcon]=\"'plus-circle'\" class=\"icon-2x\"></i>\n </button>\n\n <ul class=\"dropdown-menu cog-dropdown\" *dropdownMenu>\n <ng-container *ngFor=\"let item of templatesAndLabels$ | async\">\n <ng-container *c8yOutlet=\"item.template; injector: item.injector\"></ng-container>\n <li *ngIf=\"item.label\">\n <button\n title=\"{{ item.label | translate }}\"\n type=\"button\"\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\n (click)=\"invoke(item)\"\n >\n <i *ngIf=\"item.icon\" [c8yIcon]=\"item.icon\"></i>\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type:
|
|
7604
|
+
ActionOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ActionOutletComponent, selector: "c8y-action-outlet", inputs: { items: "items" }, host: { classAttribute: "d-contents" }, ngImport: i0, template: "<ng-container *ngIf=\"(components$ | async)?.length > 0\">\n <div class=\"main-header-item\" *ngFor=\"let item of components$ | async\">\n <ng-container *ngComponentOutlet=\"item.component; injector: item.injector\"></ng-container>\n </div>\n</ng-container>\n<ng-container>\n <div class=\"main-header-item\" *ngIf=\"(templatesAndLabels$ | async)?.length > 0\">\n <div class=\"dropdown\" dropdown>\n <button\n type=\"button\"\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n title=\"{{ 'Actions' | translate }}\"\n >\n <i [c8yIcon]=\"'plus-circle'\" class=\"icon-2x\"></i>\n </button>\n\n <ul class=\"dropdown-menu cog-dropdown\" *dropdownMenu>\n <ng-container *ngFor=\"let item of templatesAndLabels$ | async\">\n <ng-container *c8yOutlet=\"item.template; injector: item.injector\"></ng-container>\n <li *ngIf=\"item.label\">\n <button\n title=\"{{ item.label | translate }}\"\n type=\"button\"\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\n (click)=\"invoke(item)\"\n >\n <i *ngIf=\"item.icon\" [c8yIcon]=\"item.icon\"></i>\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
7591
7605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionOutletComponent, decorators: [{
|
|
7592
7606
|
type: Component,
|
|
7593
7607
|
args: [{ selector: 'c8y-action-outlet', host: { class: 'd-contents' }, template: "<ng-container *ngIf=\"(components$ | async)?.length > 0\">\n <div class=\"main-header-item\" *ngFor=\"let item of components$ | async\">\n <ng-container *ngComponentOutlet=\"item.component; injector: item.injector\"></ng-container>\n </div>\n</ng-container>\n<ng-container>\n <div class=\"main-header-item\" *ngIf=\"(templatesAndLabels$ | async)?.length > 0\">\n <div class=\"dropdown\" dropdown>\n <button\n type=\"button\"\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n title=\"{{ 'Actions' | translate }}\"\n >\n <i [c8yIcon]=\"'plus-circle'\" class=\"icon-2x\"></i>\n </button>\n\n <ul class=\"dropdown-menu cog-dropdown\" *dropdownMenu>\n <ng-container *ngFor=\"let item of templatesAndLabels$ | async\">\n <ng-container *c8yOutlet=\"item.template; injector: item.injector\"></ng-container>\n <li *ngIf=\"item.label\">\n <button\n title=\"{{ item.label | translate }}\"\n type=\"button\"\n [attr.disabled]=\"item.disabled ? 'disabled' : null\"\n (click)=\"invoke(item)\"\n >\n <i *ngIf=\"item.icon\" [c8yIcon]=\"item.icon\"></i>\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</ng-container>\n" }]
|
|
@@ -8069,7 +8083,7 @@ class AlertOutletComponent extends AlertOutletBase {
|
|
|
8069
8083
|
}
|
|
8070
8084
|
}
|
|
8071
8085
|
AlertOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AlertOutletComponent, deps: [{ token: 'position', attribute: true }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8072
|
-
AlertOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AlertOutletComponent, selector: "c8y-alert-outlet", host: { properties: { "class.static": "this.isStatic" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"alert animated fadeInRightBig m-t-16\"\n *ngFor=\"let alert of alerts | async\"\n [ngClass]=\"[getClass(alert), isDetailsShow(alert) ? 'expanded' : '']\"\n>\n <button title=\"{{ 'Close' | translate }}\" type=\"button\" class=\"close\" (click)=\"close(alert)\">\n <span aria-hidden=\"true\">×</span>\n <span class=\"sr-only\">{{ 'Close' | translate }}</span>\n </button>\n\n <div *ngIf=\"!isTemplateRef(alert.text); else template(alert.text)\">\n <strong *ngIf=\"!alert.allowHtml\" [textContent]=\"alert.text | translate\" class=\"message\"></strong>\n <strong *ngIf=\"alert.allowHtml\" [innerHTML]=\"alert.text | translate\" class=\"message\"></strong>\n </div>\n <p *ngIf=\"hasDetails(alert) && !isDetailsShow(alert)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alert)\"\n >\n <i c8yIcon=\"chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alert) && isDetailsShow(alert)\" class=\"text-muted m-t-8\">\n <button title=\"{{ 'Hide details' | translate }}\" class=\"btn btn-clean\" (click)=\"closeDetails()\">\n <i c8yIcon=\"chevron-up\"></i>\n {{ 'Hide details' | translate }}\n </button>\n </p>\n <div *ngIf=\"isDetailsShow(alert)\">\n <div *ngIf=\"!isTemplateRef(detailDisplayedAlert.contents); else template(alert.detailedData)\">\n <pre><code [textContent]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
8086
|
+
AlertOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AlertOutletComponent, selector: "c8y-alert-outlet", host: { properties: { "class.static": "this.isStatic" } }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"alert animated fadeInRightBig m-t-16\"\n *ngFor=\"let alert of alerts | async\"\n [ngClass]=\"[getClass(alert), isDetailsShow(alert) ? 'expanded' : '']\"\n>\n <button title=\"{{ 'Close' | translate }}\" type=\"button\" class=\"close\" (click)=\"close(alert)\">\n <span aria-hidden=\"true\">×</span>\n <span class=\"sr-only\">{{ 'Close' | translate }}</span>\n </button>\n\n <div *ngIf=\"!isTemplateRef(alert.text); else template(alert.text)\">\n <strong *ngIf=\"!alert.allowHtml\" [textContent]=\"alert.text | translate\" class=\"message\"></strong>\n <strong *ngIf=\"alert.allowHtml\" [innerHTML]=\"alert.text | translate\" class=\"message\"></strong>\n </div>\n <p *ngIf=\"hasDetails(alert) && !isDetailsShow(alert)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alert)\"\n >\n <i c8yIcon=\"chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alert) && isDetailsShow(alert)\" class=\"text-muted m-t-8\">\n <button title=\"{{ 'Hide details' | translate }}\" class=\"btn btn-clean\" (click)=\"closeDetails()\">\n <i c8yIcon=\"chevron-up\"></i>\n {{ 'Hide details' | translate }}\n </button>\n </p>\n <div *ngIf=\"isDetailsShow(alert)\">\n <div *ngIf=\"!isTemplateRef(detailDisplayedAlert.contents); else template(alert.detailedData)\">\n <pre><code [textContent]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
8073
8087
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AlertOutletComponent, decorators: [{
|
|
8074
8088
|
type: Component,
|
|
8075
8089
|
args: [{ selector: 'c8y-alert-outlet', template: "<div\n class=\"alert animated fadeInRightBig m-t-16\"\n *ngFor=\"let alert of alerts | async\"\n [ngClass]=\"[getClass(alert), isDetailsShow(alert) ? 'expanded' : '']\"\n>\n <button title=\"{{ 'Close' | translate }}\" type=\"button\" class=\"close\" (click)=\"close(alert)\">\n <span aria-hidden=\"true\">×</span>\n <span class=\"sr-only\">{{ 'Close' | translate }}</span>\n </button>\n\n <div *ngIf=\"!isTemplateRef(alert.text); else template(alert.text)\">\n <strong *ngIf=\"!alert.allowHtml\" [textContent]=\"alert.text | translate\" class=\"message\"></strong>\n <strong *ngIf=\"alert.allowHtml\" [innerHTML]=\"alert.text | translate\" class=\"message\"></strong>\n </div>\n <p *ngIf=\"hasDetails(alert) && !isDetailsShow(alert)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alert)\"\n >\n <i c8yIcon=\"chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alert) && isDetailsShow(alert)\" class=\"text-muted m-t-8\">\n <button title=\"{{ 'Hide details' | translate }}\" class=\"btn btn-clean\" (click)=\"closeDetails()\">\n <i c8yIcon=\"chevron-up\"></i>\n {{ 'Hide details' | translate }}\n </button>\n </p>\n <div *ngIf=\"isDetailsShow(alert)\">\n <div *ngIf=\"!isTemplateRef(detailDisplayedAlert.contents); else template(alert.detailedData)\">\n <pre><code [textContent]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n</div>\n" }]
|
|
@@ -10603,7 +10617,7 @@ class SearchOutletComponent {
|
|
|
10603
10617
|
}
|
|
10604
10618
|
}
|
|
10605
10619
|
SearchOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SearchOutletComponent, deps: [{ token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10606
|
-
SearchOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SearchOutletComponent, selector: "c8y-search-outlet", inputs: { search: "search" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of getByPriority()\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type:
|
|
10620
|
+
SearchOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SearchOutletComponent, selector: "c8y-search-outlet", inputs: { search: "search" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of getByPriority()\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n</ng-container>\n", dependencies: [{ kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
10607
10621
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SearchOutletComponent, decorators: [{
|
|
10608
10622
|
type: Component,
|
|
10609
10623
|
args: [{ selector: 'c8y-search-outlet', template: "<ng-container *ngFor=\"let item of getByPriority()\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n</ng-container>\n" }]
|
|
@@ -10624,7 +10638,7 @@ class BreadcrumbOutletComponent {
|
|
|
10624
10638
|
}
|
|
10625
10639
|
}
|
|
10626
10640
|
BreadcrumbOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10627
|
-
BreadcrumbOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BreadcrumbOutletComponent, selector: "c8y-breadcrumb-outlet", inputs: { breadcrumbs: "breadcrumbs" }, ngImport: i0, template: "<div\n class=\"breadcrumbs-container\"\n [ngClass]=\"{\n multiple: breadcrumbs.length > 1,\n open: showAll\n }\"\n *ngIf=\"breadcrumbs && breadcrumbs.length > 0\"\n>\n <button\n title=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n aria-label=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n *ngIf=\"breadcrumbs.length > 1\"\n class=\"btn-show-all-breadcrumbs pull-left\"\n (click)=\"showAll = !showAll\"\n >\n <i\n *ngIf=\"!showAll\"\n [c8yIcon]=\"'caret-right'\"\n tooltip=\"{{ 'Show all breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n <i\n *ngIf=\"showAll\"\n [c8yIcon]=\"'caret-down'\"\n tooltip=\"{{ 'Expand breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </button>\n\n <ul class=\"breadcrumbs text-muted\" *ngFor=\"let breadcrumb of breadcrumbs; let first = first\">\n <ng-container *ngIf=\"first || showAll\">\n <li class=\"text-muted\" *ngFor=\"let item of breadcrumb.items; let firstItem = first\">\n <span *ngIf=\"!firstItem\">></span>\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: breadcrumb.injector\"\n ></ng-container>\n <ng-container *ngIf=\"item.label && item.path\">\n <a\n [routerLink]=\"normalizePath(item.path)\"\n class=\"word-break\"\n title=\"{{ item.label | translate }}\"\n >\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span>{{ item.label | translate }}</span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.label && !item.path\">\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span title=\"{{ item.label | translate }}\">{{ item.label | translate }}</span>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type:
|
|
10641
|
+
BreadcrumbOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BreadcrumbOutletComponent, selector: "c8y-breadcrumb-outlet", inputs: { breadcrumbs: "breadcrumbs" }, ngImport: i0, template: "<div\n class=\"breadcrumbs-container\"\n [ngClass]=\"{\n multiple: breadcrumbs.length > 1,\n open: showAll\n }\"\n *ngIf=\"breadcrumbs && breadcrumbs.length > 0\"\n>\n <button\n title=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n aria-label=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n *ngIf=\"breadcrumbs.length > 1\"\n class=\"btn-show-all-breadcrumbs pull-left\"\n (click)=\"showAll = !showAll\"\n >\n <i\n *ngIf=\"!showAll\"\n [c8yIcon]=\"'caret-right'\"\n tooltip=\"{{ 'Show all breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n <i\n *ngIf=\"showAll\"\n [c8yIcon]=\"'caret-down'\"\n tooltip=\"{{ 'Expand breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </button>\n\n <ul class=\"breadcrumbs text-muted\" *ngFor=\"let breadcrumb of breadcrumbs; let first = first\">\n <ng-container *ngIf=\"first || showAll\">\n <li class=\"text-muted\" *ngFor=\"let item of breadcrumb.items; let firstItem = first\">\n <span *ngIf=\"!firstItem\">></span>\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: breadcrumb.injector\"\n ></ng-container>\n <ng-container *ngIf=\"item.label && item.path\">\n <a\n [routerLink]=\"normalizePath(item.path)\"\n class=\"word-break\"\n title=\"{{ item.label | translate }}\"\n >\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span>{{ item.label | translate }}</span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.label && !item.path\">\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span title=\"{{ item.label | translate }}\">{{ item.label | translate }}</span>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$7.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: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
10628
10642
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbOutletComponent, decorators: [{
|
|
10629
10643
|
type: Component,
|
|
10630
10644
|
args: [{ selector: 'c8y-breadcrumb-outlet', template: "<div\n class=\"breadcrumbs-container\"\n [ngClass]=\"{\n multiple: breadcrumbs.length > 1,\n open: showAll\n }\"\n *ngIf=\"breadcrumbs && breadcrumbs.length > 0\"\n>\n <button\n title=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n aria-label=\"{{ 'Expand/collapse all breadcrumbs' | translate }}\"\n *ngIf=\"breadcrumbs.length > 1\"\n class=\"btn-show-all-breadcrumbs pull-left\"\n (click)=\"showAll = !showAll\"\n >\n <i\n *ngIf=\"!showAll\"\n [c8yIcon]=\"'caret-right'\"\n tooltip=\"{{ 'Show all breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n <i\n *ngIf=\"showAll\"\n [c8yIcon]=\"'caret-down'\"\n tooltip=\"{{ 'Expand breadcrumbs' | translate }}\"\n container=\"body\"\n placement=\"top\"\n ></i>\n </button>\n\n <ul class=\"breadcrumbs text-muted\" *ngFor=\"let breadcrumb of breadcrumbs; let first = first\">\n <ng-container *ngIf=\"first || showAll\">\n <li class=\"text-muted\" *ngFor=\"let item of breadcrumb.items; let firstItem = first\">\n <span *ngIf=\"!firstItem\">></span>\n <ng-container\n *c8yOutlet=\"item.component || item.template; injector: breadcrumb.injector\"\n ></ng-container>\n <ng-container *ngIf=\"item.label && item.path\">\n <a\n [routerLink]=\"normalizePath(item.path)\"\n class=\"word-break\"\n title=\"{{ item.label | translate }}\"\n >\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span>{{ item.label | translate }}</span>\n </a>\n </ng-container>\n <ng-container *ngIf=\"item.label && !item.path\">\n <i [c8yIcon]=\"item.icon\" *ngIf=\"firstItem\" class=\"m-r-4\"></i>\n <span title=\"{{ item.label | translate }}\">{{ item.label | translate }}</span>\n </ng-container>\n </li>\n </ng-container>\n </ul>\n</div>\n" }]
|
|
@@ -10729,7 +10743,7 @@ class AppIconComponent {
|
|
|
10729
10743
|
}
|
|
10730
10744
|
}
|
|
10731
10745
|
AppIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppIconComponent, deps: [{ token: OptionsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10732
|
-
AppIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AppIconComponent, selector: "c8y-app-icon", inputs: { contextPath: "contextPath", name: "name", app: "app" }, host: { classAttribute: "c8y-app-icon" }, ngImport: i0, template: "<i *ngIf=\"model.showIcon\" [ngClass]=\"model.iconClass\" [ngStyle]=\"model.iconStyle\"></i>\n<span *ngIf=\"!model.showIcon\" class=\"app-noicon\"> {{model.appNameAbbr}}</span>\n", dependencies: [{ kind: "directive", type:
|
|
10746
|
+
AppIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AppIconComponent, selector: "c8y-app-icon", inputs: { contextPath: "contextPath", name: "name", app: "app" }, host: { classAttribute: "c8y-app-icon" }, ngImport: i0, template: "<i *ngIf=\"model.showIcon\" [ngClass]=\"model.iconClass\" [ngStyle]=\"model.iconStyle\"></i>\n<span *ngIf=\"!model.showIcon\" class=\"app-noicon\"> {{model.appNameAbbr}}</span>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
10733
10747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppIconComponent, decorators: [{
|
|
10734
10748
|
type: Component,
|
|
10735
10749
|
args: [{ selector: 'c8y-app-icon', host: { class: 'c8y-app-icon' }, template: "<i *ngIf=\"model.showIcon\" [ngClass]=\"model.iconClass\" [ngStyle]=\"model.iconStyle\"></i>\n<span *ngIf=\"!model.showIcon\" class=\"app-noicon\"> {{model.appNameAbbr}}</span>\n" }]
|
|
@@ -10907,7 +10921,7 @@ class AppSwitcherComponent {
|
|
|
10907
10921
|
}
|
|
10908
10922
|
}
|
|
10909
10923
|
AppSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppSwitcherComponent, deps: [{ token: AppSwitcherService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10910
|
-
AppSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AppSwitcherComponent, selector: "c8y-app-switcher", ngImport: i0, template: "<div\n class=\"app-switcher-dropdown\"\n dropdown\n #appSwitcherDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"appSwitcherDropdown.isOpen\"\n>\n <button\n class=\"main-header-button c8y-dropdown dropdown-toggle\"\n id=\"appSwitcherDropdown\"\n dropdownToggle\n title=\"{{ 'Application switcher' | translate }}\"\n type=\"button\"\n >\n <i c8yIcon=\"th\" class=\"icon-2x\"></i>\n </button>\n <div\n *dropdownMenu\n class=\"app-switcher-dropdown-menu dropdown-menu\"\n aria-labelledby=\"appSwitcherDropdown\"\n role=\"group\"\n >\n <div\n *ngIf=\"!(switcherService.finishedLoading$ | async)\"\n class=\"d-flex a-i-center j-c-center p-4\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <ng-container *ngIf=\"switcherService.oneCloudApps$ | async as oneCloudApps\">\n <div class=\"app-switcher-sagcloud\" *ngIf=\"oneCloudApps.length > 0\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n *ngFor=\"let app of oneCloudApps\"\n [href]=\"app | appHref\"\n c8yProductExperience\n [actionName]=\"'appSwitched'\"\n [actionData]=\"{ applicationName: app && app.name }\"\n >\n <c8y-app-icon\n [app]=\"app\"\n [name]=\"app.name\"\n [contextPath]=\"app.contextPath\"\n ></c8y-app-icon>\n <span class=\"text-truncate-wrap\">{{ app | humanizeAppName | async }}</span>\n </a>\n </div>\n </ng-container>\n <div class=\"app-switcher\" *ngIf=\"switcherService.apps$ | async as apps\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n [ngClass]=\"(app | isActiveApp | async) ? 'active' : ''\"\n *ngFor=\"let app of apps\"\n [href]=\"app | appHref\"\n [rel]=\"app.type === 'EXTERNAL' ? 'noopener noreferrer' : ''\"\n c8yProductExperience\n [actionName]=\"'appSwitched'\"\n [actionData]=\"{ applicationName: app && app.name }\"\n >\n <c8y-app-icon [app]=\"app\" [name]=\"app.name\" [contextPath]=\"app.contextPath\"></c8y-app-icon>\n <span class=\"text-truncate-wrap\">{{ app | humanizeAppName | async }}</span>\n </a>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i1$
|
|
10924
|
+
AppSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: AppSwitcherComponent, selector: "c8y-app-switcher", ngImport: i0, template: "<div\n class=\"app-switcher-dropdown\"\n dropdown\n #appSwitcherDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"appSwitcherDropdown.isOpen\"\n>\n <button\n class=\"main-header-button c8y-dropdown dropdown-toggle\"\n id=\"appSwitcherDropdown\"\n dropdownToggle\n title=\"{{ 'Application switcher' | translate }}\"\n type=\"button\"\n >\n <i c8yIcon=\"th\" class=\"icon-2x\"></i>\n </button>\n <div\n *dropdownMenu\n class=\"app-switcher-dropdown-menu dropdown-menu\"\n aria-labelledby=\"appSwitcherDropdown\"\n role=\"group\"\n >\n <div\n *ngIf=\"!(switcherService.finishedLoading$ | async)\"\n class=\"d-flex a-i-center j-c-center p-4\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <ng-container *ngIf=\"switcherService.oneCloudApps$ | async as oneCloudApps\">\n <div class=\"app-switcher-sagcloud\" *ngIf=\"oneCloudApps.length > 0\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n *ngFor=\"let app of oneCloudApps\"\n [href]=\"app | appHref\"\n c8yProductExperience\n [actionName]=\"'appSwitched'\"\n [actionData]=\"{ applicationName: app && app.name }\"\n >\n <c8y-app-icon\n [app]=\"app\"\n [name]=\"app.name\"\n [contextPath]=\"app.contextPath\"\n ></c8y-app-icon>\n <span class=\"text-truncate-wrap\">{{ app | humanizeAppName | async }}</span>\n </a>\n </div>\n </ng-container>\n <div class=\"app-switcher\" *ngIf=\"switcherService.apps$ | async as apps\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n [ngClass]=\"(app | isActiveApp | async) ? 'active' : ''\"\n *ngFor=\"let app of apps\"\n [href]=\"app | appHref\"\n [rel]=\"app.type === 'EXTERNAL' ? 'noopener noreferrer' : ''\"\n c8yProductExperience\n [actionName]=\"'appSwitched'\"\n [actionData]=\"{ applicationName: app && app.name }\"\n >\n <c8y-app-icon [app]=\"app\" [name]=\"app.name\" [contextPath]=\"app.contextPath\"></c8y-app-icon>\n <span class=\"text-truncate-wrap\">{{ app | humanizeAppName | async }}</span>\n </a>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "component", type: AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: HumanizeAppNamePipe, name: "humanizeAppName" }, { kind: "pipe", type: AppHrefPipe, name: "appHref" }, { kind: "pipe", type: IsActiveAppPipe, name: "isActiveApp" }] });
|
|
10911
10925
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppSwitcherComponent, decorators: [{
|
|
10912
10926
|
type: Component,
|
|
10913
10927
|
args: [{ selector: 'c8y-app-switcher', template: "<div\n class=\"app-switcher-dropdown\"\n dropdown\n #appSwitcherDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"appSwitcherDropdown.isOpen\"\n>\n <button\n class=\"main-header-button c8y-dropdown dropdown-toggle\"\n id=\"appSwitcherDropdown\"\n dropdownToggle\n title=\"{{ 'Application switcher' | translate }}\"\n type=\"button\"\n >\n <i c8yIcon=\"th\" class=\"icon-2x\"></i>\n </button>\n <div\n *dropdownMenu\n class=\"app-switcher-dropdown-menu dropdown-menu\"\n aria-labelledby=\"appSwitcherDropdown\"\n role=\"group\"\n >\n <div\n *ngIf=\"!(switcherService.finishedLoading$ | async)\"\n class=\"d-flex a-i-center j-c-center p-4\"\n >\n <c8y-loading></c8y-loading>\n </div>\n <ng-container *ngIf=\"switcherService.oneCloudApps$ | async as oneCloudApps\">\n <div class=\"app-switcher-sagcloud\" *ngIf=\"oneCloudApps.length > 0\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n *ngFor=\"let app of oneCloudApps\"\n [href]=\"app | appHref\"\n c8yProductExperience\n [actionName]=\"'appSwitched'\"\n [actionData]=\"{ applicationName: app && app.name }\"\n >\n <c8y-app-icon\n [app]=\"app\"\n [name]=\"app.name\"\n [contextPath]=\"app.contextPath\"\n ></c8y-app-icon>\n <span class=\"text-truncate-wrap\">{{ app | humanizeAppName | async }}</span>\n </a>\n </div>\n </ng-container>\n <div class=\"app-switcher\" *ngIf=\"switcherService.apps$ | async as apps\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n [ngClass]=\"(app | isActiveApp | async) ? 'active' : ''\"\n *ngFor=\"let app of apps\"\n [href]=\"app | appHref\"\n [rel]=\"app.type === 'EXTERNAL' ? 'noopener noreferrer' : ''\"\n c8yProductExperience\n [actionName]=\"'appSwitched'\"\n [actionData]=\"{ applicationName: app && app.name }\"\n >\n <c8y-app-icon [app]=\"app\" [name]=\"app.name\" [contextPath]=\"app.contextPath\"></c8y-app-icon>\n <span class=\"text-truncate-wrap\">{{ app | humanizeAppName | async }}</span>\n </a>\n </div>\n </div>\n</div>\n" }]
|
|
@@ -10954,12 +10968,12 @@ class ConfirmModalComponent {
|
|
|
10954
10968
|
this.dismiss();
|
|
10955
10969
|
}
|
|
10956
10970
|
}
|
|
10957
|
-
ConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfirmModalComponent, deps: [{ token: i1$
|
|
10958
|
-
ConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ConfirmModalComponent, selector: "c8y-confirm-modal", inputs: { title: "title", body: "body", confirmOptions: "confirmOptions", status: "status", labels: "labels" }, ngImport: i0, template: "<div class=\"c8y-prompt alert\" [ngClass]=\"[classAlert]\">\n <h3 class=\"m-b-16 d-flex a-i-center\" *ngIf=\"title\">\n <i class=\"dlt-c8y-icon\" [ngClass]=\"[classIcon]\"></i>\n <span *ngIf=\"title\">{{ title | translate }}</span>\n </h3>\n <p class=\"text-break-word m-b-16\">{{ body | translate }}</p>\n <div\n class=\"c8y-checkbox plain m-b-8\"\n *ngFor=\"let co of confirmOptions | showIfFilter | async | keyvalue\"\n >\n <label [title]=\"co.value.text | translate\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"co.value.checked\"\n (change)=\"co.value.checked = !co.value.checked\"\n [disabled]=\"confirmOptions[co.value.disabledByKey]?.checked\"\n />\n <span></span>\n <span class=\"text-muted\">{{ co.value.text | translate }}</span>\n </label>\n </div>\n <ng-content></ng-content>\n <div class=\"alert-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n *ngIf=\"labels.cancel !== null\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"close()\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
10971
|
+
ConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfirmModalComponent, deps: [{ token: i1$8.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
10972
|
+
ConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ConfirmModalComponent, selector: "c8y-confirm-modal", inputs: { title: "title", body: "body", confirmOptions: "confirmOptions", status: "status", labels: "labels" }, ngImport: i0, template: "<div class=\"c8y-prompt alert\" [ngClass]=\"[classAlert]\" data-cy=\"prompt-alert\">\n <h3 class=\"m-b-16 d-flex a-i-center\" *ngIf=\"title\">\n <i class=\"dlt-c8y-icon\" [ngClass]=\"[classIcon]\"></i>\n <span *ngIf=\"title\">{{ title | translate }}</span>\n </h3>\n <p class=\"text-break-word m-b-16\">{{ body | translate }}</p>\n <div\n class=\"c8y-checkbox plain m-b-8\"\n *ngFor=\"let co of confirmOptions | showIfFilter | async | keyvalue\"\n >\n <label [title]=\"co.value.text | translate\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"co.value.checked\"\n (change)=\"co.value.checked = !co.value.checked\"\n [disabled]=\"confirmOptions[co.value.disabledByKey]?.checked\"\n />\n <span></span>\n <span class=\"text-muted\">{{ co.value.text | translate }}</span>\n </label>\n </div>\n <ng-content></ng-content>\n <div class=\"alert-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n *ngIf=\"labels.cancel !== null\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"close()\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: ShowIfFilterPipe, name: "showIfFilter" }] });
|
|
10959
10973
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfirmModalComponent, decorators: [{
|
|
10960
10974
|
type: Component,
|
|
10961
|
-
args: [{ selector: 'c8y-confirm-modal', template: "<div class=\"c8y-prompt alert\" [ngClass]=\"[classAlert]\">\n <h3 class=\"m-b-16 d-flex a-i-center\" *ngIf=\"title\">\n <i class=\"dlt-c8y-icon\" [ngClass]=\"[classIcon]\"></i>\n <span *ngIf=\"title\">{{ title | translate }}</span>\n </h3>\n <p class=\"text-break-word m-b-16\">{{ body | translate }}</p>\n <div\n class=\"c8y-checkbox plain m-b-8\"\n *ngFor=\"let co of confirmOptions | showIfFilter | async | keyvalue\"\n >\n <label [title]=\"co.value.text | translate\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"co.value.checked\"\n (change)=\"co.value.checked = !co.value.checked\"\n [disabled]=\"confirmOptions[co.value.disabledByKey]?.checked\"\n />\n <span></span>\n <span class=\"text-muted\">{{ co.value.text | translate }}</span>\n </label>\n </div>\n <ng-content></ng-content>\n <div class=\"alert-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n *ngIf=\"labels.cancel !== null\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"close()\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
10962
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10975
|
+
args: [{ selector: 'c8y-confirm-modal', template: "<div class=\"c8y-prompt alert\" [ngClass]=\"[classAlert]\" data-cy=\"prompt-alert\">\n <h3 class=\"m-b-16 d-flex a-i-center\" *ngIf=\"title\">\n <i class=\"dlt-c8y-icon\" [ngClass]=\"[classIcon]\"></i>\n <span *ngIf=\"title\">{{ title | translate }}</span>\n </h3>\n <p class=\"text-break-word m-b-16\">{{ body | translate }}</p>\n <div\n class=\"c8y-checkbox plain m-b-8\"\n *ngFor=\"let co of confirmOptions | showIfFilter | async | keyvalue\"\n >\n <label [title]=\"co.value.text | translate\" class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"co.value.checked\"\n (change)=\"co.value.checked = !co.value.checked\"\n [disabled]=\"confirmOptions[co.value.disabledByKey]?.checked\"\n />\n <span></span>\n <span class=\"text-muted\">{{ co.value.text | translate }}</span>\n </label>\n </div>\n <ng-content></ng-content>\n <div class=\"alert-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n *ngIf=\"labels.cancel !== null\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"close()\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
10976
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }]; }, propDecorators: { title: [{
|
|
10963
10977
|
type: Input
|
|
10964
10978
|
}], body: [{
|
|
10965
10979
|
type: Input
|
|
@@ -11058,14 +11072,14 @@ class ModalService {
|
|
|
11058
11072
|
});
|
|
11059
11073
|
}
|
|
11060
11074
|
}
|
|
11061
|
-
ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalService, deps: [{ token: i1$
|
|
11075
|
+
ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalService, deps: [{ token: i1$8.BsModalService }, { token: GainsightService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11062
11076
|
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
11063
11077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalService, decorators: [{
|
|
11064
11078
|
type: Injectable,
|
|
11065
11079
|
args: [{
|
|
11066
11080
|
providedIn: 'root'
|
|
11067
11081
|
}]
|
|
11068
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
11082
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }, { type: GainsightService }]; } });
|
|
11069
11083
|
|
|
11070
11084
|
/**
|
|
11071
11085
|
* Service to manage the login.
|
|
@@ -11619,11 +11633,11 @@ class LoginService {
|
|
|
11619
11633
|
}
|
|
11620
11634
|
}
|
|
11621
11635
|
}
|
|
11622
|
-
LoginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService, deps: [{ token: i0.Injector }, { token: i1$2.FetchClient }, { token: i1$2.BasicAuth }, { token: i1$2.CookieAuth }, { token: AppStateService }, { token: i1$2.UserService }, { token: i1$2.TenantService }, { token: i1$2.Realtime }, { token: AlertService }, { token: i1$1.ApiService }, { token: TenantUiService }, { token: i1$2.TenantLoginOptionsService }, { token: i1$3.TranslateService }, { token:
|
|
11636
|
+
LoginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService, deps: [{ token: i0.Injector }, { token: i1$2.FetchClient }, { token: i1$2.BasicAuth }, { token: i1$2.CookieAuth }, { token: AppStateService }, { token: i1$2.UserService }, { token: i1$2.TenantService }, { token: i1$2.Realtime }, { token: AlertService }, { token: i1$1.ApiService }, { token: TenantUiService }, { token: i1$2.TenantLoginOptionsService }, { token: i1$3.TranslateService }, { token: i2.LocationStrategy, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11623
11637
|
LoginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService });
|
|
11624
11638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService, decorators: [{
|
|
11625
11639
|
type: Injectable
|
|
11626
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$2.FetchClient }, { type: i1$2.BasicAuth }, { type: i1$2.CookieAuth }, { type: AppStateService }, { type: i1$2.UserService }, { type: i1$2.TenantService }, { type: i1$2.Realtime }, { type: AlertService }, { type: i1$1.ApiService }, { type: TenantUiService }, { type: i1$2.TenantLoginOptionsService }, { type: i1$3.TranslateService }, { type:
|
|
11640
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1$2.FetchClient }, { type: i1$2.BasicAuth }, { type: i1$2.CookieAuth }, { type: AppStateService }, { type: i1$2.UserService }, { type: i1$2.TenantService }, { type: i1$2.Realtime }, { type: AlertService }, { type: i1$1.ApiService }, { type: TenantUiService }, { type: i1$2.TenantLoginOptionsService }, { type: i1$3.TranslateService }, { type: i2.LocationStrategy, decorators: [{
|
|
11627
11641
|
type: Optional
|
|
11628
11642
|
}] }]; } });
|
|
11629
11643
|
|
|
@@ -11728,12 +11742,12 @@ class ModalComponent {
|
|
|
11728
11742
|
}
|
|
11729
11743
|
}
|
|
11730
11744
|
}
|
|
11731
|
-
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalComponent, deps: [{ token: i1$
|
|
11732
|
-
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ModalComponent, selector: "c8y-modal", inputs: { disabled: "disabled", close: "close", dismiss: "dismiss", title: "title", body: "body", customFooter: "customFooter", headerClasses: "headerClasses", labels: "labels" }, outputs: { onDismiss: "onDismiss", onClose: "onClose" }, host: { listeners: { "document:keydown.enter": "onEnterKeyDown($event)" } }, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header {{ headerClasses }}\" [ngClass]=\"{ separator: title }\">\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n <div [hidden]=\"!title\" id=\"modal-title\" class=\"modal-title\">\n {{ title | translate }}\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div [ngClass]=\"{ 'modal-body': !customFooter, 'd-contents': customFooter }\">\n <p *ngIf=\"title\" class=\"text-center text-break-word\">\n {{ body }}\n </p>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"modal-footer\" *ngIf=\"!customFooter\">\n <ng-content select=\"[c8y-modal-footer]\"></ng-content>\n <button\n type=\"button\"\n title=\"{{ labels.cancel | translate }}\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"_dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ labels.ok | translate }}\"\n *ngIf=\"labels.ok\"\n class=\"btn btn-primary\"\n (click)=\"_close()\"\n [disabled]=\"disabled\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
11745
|
+
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalComponent, deps: [{ token: i1$8.BsModalRef, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
11746
|
+
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ModalComponent, selector: "c8y-modal", inputs: { disabled: "disabled", close: "close", dismiss: "dismiss", title: "title", body: "body", customFooter: "customFooter", headerClasses: "headerClasses", labels: "labels" }, outputs: { onDismiss: "onDismiss", onClose: "onClose" }, host: { listeners: { "document:keydown.enter": "onEnterKeyDown($event)" } }, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header {{ headerClasses }}\" [ngClass]=\"{ separator: title }\">\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n <div [hidden]=\"!title\" id=\"modal-title\" class=\"modal-title\">\n {{ title | translate }}\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div [ngClass]=\"{ 'modal-body': !customFooter, 'd-contents': customFooter }\">\n <p *ngIf=\"title\" class=\"text-center text-break-word\">\n {{ body }}\n </p>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"modal-footer\" *ngIf=\"!customFooter\">\n <ng-content select=\"[c8y-modal-footer]\"></ng-content>\n <button\n type=\"button\"\n title=\"{{ labels.cancel | translate }}\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"_dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ labels.ok | translate }}\"\n *ngIf=\"labels.ok\"\n class=\"btn btn-primary\"\n (click)=\"_close()\"\n [disabled]=\"disabled\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
11733
11747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalComponent, decorators: [{
|
|
11734
11748
|
type: Component,
|
|
11735
11749
|
args: [{ selector: 'c8y-modal', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header {{ headerClasses }}\" [ngClass]=\"{ separator: title }\">\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n <div [hidden]=\"!title\" id=\"modal-title\" class=\"modal-title\">\n {{ title | translate }}\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div [ngClass]=\"{ 'modal-body': !customFooter, 'd-contents': customFooter }\">\n <p *ngIf=\"title\" class=\"text-center text-break-word\">\n {{ body }}\n </p>\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"modal-footer\" *ngIf=\"!customFooter\">\n <ng-content select=\"[c8y-modal-footer]\"></ng-content>\n <button\n type=\"button\"\n title=\"{{ labels.cancel | translate }}\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"_dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ labels.ok | translate }}\"\n *ngIf=\"labels.ok\"\n class=\"btn btn-primary\"\n (click)=\"_close()\"\n [disabled]=\"disabled\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
11736
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
11750
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef, decorators: [{
|
|
11737
11751
|
type: Optional
|
|
11738
11752
|
}] }]; }, propDecorators: { onDismiss: [{
|
|
11739
11753
|
type: Output
|
|
@@ -11920,7 +11934,7 @@ class MessagesComponent {
|
|
|
11920
11934
|
}
|
|
11921
11935
|
}
|
|
11922
11936
|
MessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MessagesComponent, deps: [{ token: i1$3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11923
|
-
MessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: MessagesComponent, selector: "c8y-messages", inputs: { show: "show", defaults: "defaults" }, queries: [{ propertyName: "customMessages", predicate: MessageDirective }], usesOnChanges: true, ngImport: i0, template: "<small class=\"form-control-feedback-message\">\n <div class=\"d-block\" *ngFor=\"let msg of messages\">\n {{msg | translate}}\n </div>\n <ng-content></ng-content>\n</small>\n", dependencies: [{ kind: "directive", type:
|
|
11937
|
+
MessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: MessagesComponent, selector: "c8y-messages", inputs: { show: "show", defaults: "defaults" }, queries: [{ propertyName: "customMessages", predicate: MessageDirective }], usesOnChanges: true, ngImport: i0, template: "<small class=\"form-control-feedback-message\">\n <div class=\"d-block\" *ngFor=\"let msg of messages\">\n {{msg | translate}}\n </div>\n <ng-content></ng-content>\n</small>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
11924
11938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MessagesComponent, decorators: [{
|
|
11925
11939
|
type: Component,
|
|
11926
11940
|
args: [{ selector: 'c8y-messages', template: "<small class=\"form-control-feedback-message\">\n <div class=\"d-block\" *ngFor=\"let msg of messages\">\n {{msg | translate}}\n </div>\n <ng-content></ng-content>\n</small>\n" }]
|
|
@@ -12028,7 +12042,7 @@ class FormGroupComponent {
|
|
|
12028
12042
|
}
|
|
12029
12043
|
}
|
|
12030
12044
|
FormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12031
|
-
FormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FormGroupComponent, selector: "c8y-form-group", inputs: { hasError: "hasError", hasWarning: "hasWarning", hasSuccess: "hasSuccess", novalidation: "novalidation", status: "status" }, host: { properties: { "class.has-error": "this.error", "class.has-warning": "this.warning", "class.has-success": "this.success" }, classAttribute: "form-group" }, queries: [{ propertyName: "customErrorMessage", first: true, predicate: MessagesComponent, descendants: true }, { propertyName: "model", first: true, predicate: NgModel, descendants: true, static: true }, { propertyName: "formControlName", first: true, predicate: FormControlName, descendants: true, static: true }], ngImport: i0, template: "<ng-content></ng-content>\n<c8y-messages *ngIf=\"!customErrorMessage\" [show]=\"errors\"></c8y-messages>\n", dependencies: [{ kind: "directive", type:
|
|
12045
|
+
FormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FormGroupComponent, selector: "c8y-form-group", inputs: { hasError: "hasError", hasWarning: "hasWarning", hasSuccess: "hasSuccess", novalidation: "novalidation", status: "status" }, host: { properties: { "class.has-error": "this.error", "class.has-warning": "this.warning", "class.has-success": "this.success" }, classAttribute: "form-group" }, queries: [{ propertyName: "customErrorMessage", first: true, predicate: MessagesComponent, descendants: true }, { propertyName: "model", first: true, predicate: NgModel, descendants: true, static: true }, { propertyName: "formControlName", first: true, predicate: FormControlName, descendants: true, static: true }], ngImport: i0, template: "<ng-content></ng-content>\n<c8y-messages *ngIf=\"!customErrorMessage\" [show]=\"errors\"></c8y-messages>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }] });
|
|
12032
12046
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FormGroupComponent, decorators: [{
|
|
12033
12047
|
type: Component,
|
|
12034
12048
|
args: [{ selector: 'c8y-form-group', host: {
|
|
@@ -12194,12 +12208,12 @@ class CurrentPasswordModalComponent {
|
|
|
12194
12208
|
this.modal.hide();
|
|
12195
12209
|
}
|
|
12196
12210
|
}
|
|
12197
|
-
CurrentPasswordModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CurrentPasswordModalComponent, deps: [{ token: i1$
|
|
12211
|
+
CurrentPasswordModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CurrentPasswordModalComponent, deps: [{ token: i1$8.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
12198
12212
|
CurrentPasswordModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CurrentPasswordModalComponent, selector: "c8y-current-password-modal", outputs: { currentPasswordEmitter: "currentPasswordEmitter" }, ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\n <div class=\"d-block p-24\">\n <c8y-form-group [hasWarning]=\"true\">\n <label translate for=\"currentPassword\">Enter your password</label>\n <input\n id=\"currentPassword\"\n [(ngModel)]=\"password\"\n type=\"password\"\n name=\"password\"\n class=\"form-control\"\n required\n />\n <c8y-messages>\n <c8y-message translate>\n The password of the user that you are currently logged in with.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Confirm' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"!confirmForm.form.valid\"\n >\n {{ 'Confirm' | translate }}\n </button>\n </div>\n </form>\n</c8y-modal>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
12199
12213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CurrentPasswordModalComponent, decorators: [{
|
|
12200
12214
|
type: Component,
|
|
12201
12215
|
args: [{ selector: 'c8y-current-password-modal', template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\n <div class=\"d-block p-24\">\n <c8y-form-group [hasWarning]=\"true\">\n <label translate for=\"currentPassword\">Enter your password</label>\n <input\n id=\"currentPassword\"\n [(ngModel)]=\"password\"\n type=\"password\"\n name=\"password\"\n class=\"form-control\"\n required\n />\n <c8y-messages>\n <c8y-message translate>\n The password of the user that you are currently logged in with.\n </c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Confirm' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"!confirmForm.form.valid\"\n >\n {{ 'Confirm' | translate }}\n </button>\n </div>\n </form>\n</c8y-modal>\n" }]
|
|
12202
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12216
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }]; }, propDecorators: { currentPasswordEmitter: [{
|
|
12203
12217
|
type: Output
|
|
12204
12218
|
}] } });
|
|
12205
12219
|
|
|
@@ -12281,11 +12295,11 @@ class PasswordService {
|
|
|
12281
12295
|
return this.DEFAULT_PASSWORD_MIN_LENGTH;
|
|
12282
12296
|
}
|
|
12283
12297
|
}
|
|
12284
|
-
PasswordService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordService, deps: [{ token: i1$
|
|
12298
|
+
PasswordService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordService, deps: [{ token: i1$8.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
12285
12299
|
PasswordService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordService });
|
|
12286
12300
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordService, decorators: [{
|
|
12287
12301
|
type: Injectable
|
|
12288
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12302
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }]; } });
|
|
12289
12303
|
|
|
12290
12304
|
class TotpChallengeComponent {
|
|
12291
12305
|
constructor(loginService, users, alert) {
|
|
@@ -12330,7 +12344,7 @@ class TotpChallengeComponent {
|
|
|
12330
12344
|
}
|
|
12331
12345
|
}
|
|
12332
12346
|
TotpChallengeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpChallengeComponent, deps: [{ token: LoginService }, { token: i1$2.UserService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12333
|
-
TotpChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: { verify: "verify", loading: "loading", hasError: "hasError" }, outputs: { onSuccess: "onSuccess", totpUnconfirmedEmitter: "totpUnconfirmedEmitter" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<form #totpForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <div class=\"d-block p-24 p-b-0\">\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n [ngClass]=\"hasError ? 'p-b-24' : ''\"\n >\n <label translate for=\"totpToken\">Verification code</label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n\n <c8y-messages>\n <c8y-message *ngIf=\"hasError\" translate>\n Invalid verification code. In case of key loss, contact your platform administrator.\n </c8y-message>\n </c8y-messages>\n <p id=\"helpinput\" *ngIf=\"!hasError\" class=\"help-block\" translate>\n In case of key loss, please contact your platform administrator.\n </p>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom p-b-0\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button\n *ngIf=\"loading\"\n title=\"{{ 'Verifying\u2026' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-pending\"\n >\n {{ 'Verifying\u2026' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
12347
|
+
TotpChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: { verify: "verify", loading: "loading", hasError: "hasError" }, outputs: { onSuccess: "onSuccess", totpUnconfirmedEmitter: "totpUnconfirmedEmitter" }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true }], ngImport: i0, template: "<form #totpForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <div class=\"d-block p-24 p-b-0\">\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n [ngClass]=\"hasError ? 'p-b-24' : ''\"\n >\n <label translate for=\"totpToken\">Verification code</label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n\n <c8y-messages>\n <c8y-message *ngIf=\"hasError\" translate>\n Invalid verification code. In case of key loss, contact your platform administrator.\n </c8y-message>\n </c8y-messages>\n <p id=\"helpinput\" *ngIf=\"!hasError\" class=\"help-block\" translate>\n In case of key loss, please contact your platform administrator.\n </p>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom p-b-0\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button\n *ngIf=\"loading\"\n title=\"{{ 'Verifying\u2026' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-pending\"\n >\n {{ 'Verifying\u2026' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
|
|
12334
12348
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpChallengeComponent, decorators: [{
|
|
12335
12349
|
type: Component,
|
|
12336
12350
|
args: [{ selector: 'c8y-totp-challenge', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<form #totpForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <div class=\"d-block p-24 p-b-0\">\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n [ngClass]=\"hasError ? 'p-b-24' : ''\"\n >\n <label translate for=\"totpToken\">Verification code</label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n autocomplete=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n\n <c8y-messages>\n <c8y-message *ngIf=\"hasError\" translate>\n Invalid verification code. In case of key loss, contact your platform administrator.\n </c8y-message>\n </c8y-messages>\n <p id=\"helpinput\" *ngIf=\"!hasError\" class=\"help-block\" translate>\n In case of key loss, please contact your platform administrator.\n </p>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom p-b-0\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button\n *ngIf=\"loading\"\n title=\"{{ 'Verifying\u2026' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-pending\"\n >\n {{ 'Verifying\u2026' | translate }}\n </button>\n </div>\n</form>\n" }]
|
|
@@ -12382,7 +12396,7 @@ class TotpSetupComponent {
|
|
|
12382
12396
|
}
|
|
12383
12397
|
}
|
|
12384
12398
|
TotpSetupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpSetupComponent, deps: [{ token: i1$2.UserService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12385
|
-
TotpSetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpSetupComponent, selector: "c8y-totp-setup", ngImport: i0, template: "<div class=\"text-center\">\n <p class=\"m-24 m-t-16 m-b-0\" translate>\n Scan this QR code with your smartphone using the Google Authenticator app.\n </p>\n\n <div class=\"d-flex j-c-center\">\n <qrcode\n [width]=\"180\"\n *ngIf=\"totpSecret\"\n [qrdata]=\"qrData\"\n [errorCorrectionLevel]=\"'M'\"\n [elementType]=\"'svg'\"\n ></qrcode>\n </div>\n <p class=\"text-center text-muted\">\n {{ secret }}\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
12399
|
+
TotpSetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpSetupComponent, selector: "c8y-totp-setup", ngImport: i0, template: "<div class=\"text-center\">\n <p class=\"m-24 m-t-16 m-b-0\" translate>\n Scan this QR code with your smartphone using the Google Authenticator app.\n </p>\n\n <div class=\"d-flex j-c-center\">\n <qrcode\n [width]=\"180\"\n *ngIf=\"totpSecret\"\n [qrdata]=\"qrData\"\n [errorCorrectionLevel]=\"'M'\"\n [elementType]=\"'svg'\"\n ></qrcode>\n </div>\n <p class=\"text-center text-muted\">\n {{ secret }}\n </p>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5$1.QRCodeComponent, selector: "qrcode", inputs: ["allowEmptyString", "colorDark", "colorLight", "cssClass", "elementType", "errorCorrectionLevel", "imageSrc", "imageHeight", "imageWidth", "margin", "qrdata", "scale", "version", "width", "alt", "ariaLabel", "title"], outputs: ["qrCodeURL"] }] });
|
|
12386
12400
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpSetupComponent, decorators: [{
|
|
12387
12401
|
type: Component,
|
|
12388
12402
|
args: [{ selector: 'c8y-totp-setup', template: "<div class=\"text-center\">\n <p class=\"m-24 m-t-16 m-b-0\" translate>\n Scan this QR code with your smartphone using the Google Authenticator app.\n </p>\n\n <div class=\"d-flex j-c-center\">\n <qrcode\n [width]=\"180\"\n *ngIf=\"totpSecret\"\n [qrdata]=\"qrData\"\n [errorCorrectionLevel]=\"'M'\"\n [elementType]=\"'svg'\"\n ></qrcode>\n </div>\n <p class=\"text-center text-muted\">\n {{ secret }}\n </p>\n</div>\n" }]
|
|
@@ -12410,12 +12424,12 @@ class UserTotpSetupComponent {
|
|
|
12410
12424
|
this.modal.hide();
|
|
12411
12425
|
}
|
|
12412
12426
|
}
|
|
12413
|
-
UserTotpSetupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserTotpSetupComponent, deps: [{ token: i1$2.UserService }, { token: ModalService }, { token: i1$
|
|
12427
|
+
UserTotpSetupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserTotpSetupComponent, deps: [{ token: i1$2.UserService }, { token: ModalService }, { token: i1$8.BsModalRef }, { token: LoginService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12414
12428
|
UserTotpSetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserTotpSetupComponent, selector: "c8y-user-totp-setup", ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Set up two-factor authentication' | translate\">\n <c8y-totp-setup></c8y-totp-setup>\n <c8y-totp-challenge (onSuccess)=\"totpSetupVerified()\" (totpUnconfirmedEmitter)=\"close()\"></c8y-totp-challenge>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: ["verify", "loading", "hasError"], outputs: ["onSuccess", "totpUnconfirmedEmitter"] }, { kind: "component", type: TotpSetupComponent, selector: "c8y-totp-setup" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
12415
12429
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserTotpSetupComponent, decorators: [{
|
|
12416
12430
|
type: Component,
|
|
12417
12431
|
args: [{ selector: 'c8y-user-totp-setup', template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Set up two-factor authentication' | translate\">\n <c8y-totp-setup></c8y-totp-setup>\n <c8y-totp-challenge (onSuccess)=\"totpSetupVerified()\" (totpUnconfirmedEmitter)=\"close()\"></c8y-totp-challenge>\n</c8y-modal>\n" }]
|
|
12418
|
-
}], ctorParameters: function () { return [{ type: i1$2.UserService }, { type: ModalService }, { type: i1$
|
|
12432
|
+
}], ctorParameters: function () { return [{ type: i1$2.UserService }, { type: ModalService }, { type: i1$8.BsModalRef }, { type: LoginService }]; } });
|
|
12419
12433
|
|
|
12420
12434
|
class PhoneValidationDirective {
|
|
12421
12435
|
constructor() {
|
|
@@ -12620,7 +12634,7 @@ class PasswordCheckListComponent {
|
|
|
12620
12634
|
}
|
|
12621
12635
|
}
|
|
12622
12636
|
PasswordCheckListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordCheckListComponent, deps: [{ token: LoginService }, { token: PasswordService }, { token: PasswordService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12623
|
-
PasswordCheckListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PasswordCheckListComponent, selector: "c8y-password-check-list", inputs: { password: "password" }, ngImport: i0, template: "<div>\n <span class=\"small\">{{ 'Please meet 5 out of the 5 conditions below' | translate }}:</span>\n <ul class=\"list-unstyled\">\n <li class=\"small\" *ngFor=\"let requirement of checklist\">\n <i [c8yIcon]=\"requirement.icon\" class=\"text-success\"></i>\n <span\n class=\"small {{ requirement.contextualColor }}\"\n [translate]=\"requirement.label\"\n [translateParams]=\"this.translateParams\"\n ></span>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
12637
|
+
PasswordCheckListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PasswordCheckListComponent, selector: "c8y-password-check-list", inputs: { password: "password" }, ngImport: i0, template: "<div>\n <span class=\"small\">{{ 'Please meet 5 out of the 5 conditions below' | translate }}:</span>\n <ul class=\"list-unstyled\">\n <li class=\"small\" *ngFor=\"let requirement of checklist\">\n <i [c8yIcon]=\"requirement.icon\" class=\"text-success\"></i>\n <span\n class=\"small {{ requirement.contextualColor }}\"\n [translate]=\"requirement.label\"\n [translateParams]=\"this.translateParams\"\n ></span>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
12624
12638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordCheckListComponent, decorators: [{
|
|
12625
12639
|
type: Component,
|
|
12626
12640
|
args: [{ selector: 'c8y-password-check-list', template: "<div>\n <span class=\"small\">{{ 'Please meet 5 out of the 5 conditions below' | translate }}:</span>\n <ul class=\"list-unstyled\">\n <li class=\"small\" *ngFor=\"let requirement of checklist\">\n <i [c8yIcon]=\"requirement.icon\" class=\"text-success\"></i>\n <span\n class=\"small {{ requirement.contextualColor }}\"\n [translate]=\"requirement.label\"\n [translateParams]=\"this.translateParams\"\n ></span>\n </li>\n </ul>\n</div>\n" }]
|
|
@@ -12664,7 +12678,7 @@ class NewPasswordComponent {
|
|
|
12664
12678
|
}
|
|
12665
12679
|
}
|
|
12666
12680
|
NewPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NewPasswordComponent, deps: [{ token: LoginService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12667
|
-
NewPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: NewPasswordComponent, selector: "c8y-new-password", outputs: { password: "password" }, ngImport: i0, template: "<div class=\"form-group\">\n <button type=\"button\" class=\"btn btn-default\" (click)=\"toggleChangePassword()\">\n <ng-container *ngIf=\"!changePassword\">\n {{ 'Change password' | translate }}\n </ng-container>\n <ng-container *ngIf=\"changePassword\">\n {{ 'Cancel password change' | translate }}\n </ng-container>\n </button>\n</div>\n\n<div *ngIf=\"changePassword\" class=\"row content-flex-50\">\n <div class=\"col-7\">\n <c8y-form-group>\n <label for=\"newPassword\" translate>Password</label>\n <input\n id=\"newPassword\"\n name=\"newPassword\"\n type=\"password\"\n #newPassword=\"ngModel\"\n class=\"form-control\"\n [(ngModel)]=\"model.newPassword\"\n (change)=\"newPasswordChanged()\"\n (input)=\"newPasswordConfirm.control.updateValueAndValidity()\"\n required\n c8yDefaultValidation=\"password\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"newConfirmPassword\" translate>Confirm password</label>\n <input\n id=\"newConfirmPassword\"\n name=\"newPasswordConfirm\"\n type=\"password\"\n #newPasswordConfirm=\"ngModel\"\n class=\"form-control\"\n [(ngModel)]=\"model.newPasswordConfirm\"\n required\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-5\">\n <c8y-password-strength\n [password]=\"model.newPassword\"\n (strength)=\"model.strength = $event\"\n ></c8y-password-strength>\n\n <c8y-password-check-list\n class=\"m-t-32\"\n [password]=\"model.newPassword\"\n [hidden]=\"!passwordEnforced\"\n ></c8y-password-check-list>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: DefaultValidationDirective, selector: "[c8yDefaultValidation]", inputs: ["c8yDefaultValidation"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
12681
|
+
NewPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: NewPasswordComponent, selector: "c8y-new-password", outputs: { password: "password" }, ngImport: i0, template: "<div class=\"form-group\">\n <button type=\"button\" class=\"btn btn-default\" (click)=\"toggleChangePassword()\">\n <ng-container *ngIf=\"!changePassword\">\n {{ 'Change password' | translate }}\n </ng-container>\n <ng-container *ngIf=\"changePassword\">\n {{ 'Cancel password change' | translate }}\n </ng-container>\n </button>\n</div>\n\n<div *ngIf=\"changePassword\" class=\"row content-flex-50\">\n <div class=\"col-7\">\n <c8y-form-group>\n <label for=\"newPassword\" translate>Password</label>\n <input\n id=\"newPassword\"\n name=\"newPassword\"\n type=\"password\"\n #newPassword=\"ngModel\"\n class=\"form-control\"\n [(ngModel)]=\"model.newPassword\"\n (change)=\"newPasswordChanged()\"\n (input)=\"newPasswordConfirm.control.updateValueAndValidity()\"\n required\n c8yDefaultValidation=\"password\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"newConfirmPassword\" translate>Confirm password</label>\n <input\n id=\"newConfirmPassword\"\n name=\"newPasswordConfirm\"\n type=\"password\"\n #newPasswordConfirm=\"ngModel\"\n class=\"form-control\"\n [(ngModel)]=\"model.newPasswordConfirm\"\n required\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-5\">\n <c8y-password-strength\n [password]=\"model.newPassword\"\n (strength)=\"model.strength = $event\"\n ></c8y-password-strength>\n\n <c8y-password-check-list\n class=\"m-t-32\"\n [password]=\"model.newPassword\"\n [hidden]=\"!passwordEnforced\"\n ></c8y-password-check-list>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: DefaultValidationDirective, selector: "[c8yDefaultValidation]", inputs: ["c8yDefaultValidation"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: PasswordConfirm, selector: "[passwordConfirm]" }, { kind: "component", type: PasswordStrengthComponent, selector: "c8y-password-strength", inputs: ["password"], outputs: ["strength"] }, { kind: "component", type: PasswordCheckListComponent, selector: "c8y-password-check-list", inputs: ["password"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }] });
|
|
12668
12682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NewPasswordComponent, decorators: [{
|
|
12669
12683
|
type: Component,
|
|
12670
12684
|
args: [{ selector: 'c8y-new-password', viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], template: "<div class=\"form-group\">\n <button type=\"button\" class=\"btn btn-default\" (click)=\"toggleChangePassword()\">\n <ng-container *ngIf=\"!changePassword\">\n {{ 'Change password' | translate }}\n </ng-container>\n <ng-container *ngIf=\"changePassword\">\n {{ 'Cancel password change' | translate }}\n </ng-container>\n </button>\n</div>\n\n<div *ngIf=\"changePassword\" class=\"row content-flex-50\">\n <div class=\"col-7\">\n <c8y-form-group>\n <label for=\"newPassword\" translate>Password</label>\n <input\n id=\"newPassword\"\n name=\"newPassword\"\n type=\"password\"\n #newPassword=\"ngModel\"\n class=\"form-control\"\n [(ngModel)]=\"model.newPassword\"\n (change)=\"newPasswordChanged()\"\n (input)=\"newPasswordConfirm.control.updateValueAndValidity()\"\n required\n c8yDefaultValidation=\"password\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label for=\"newConfirmPassword\" translate>Confirm password</label>\n <input\n id=\"newConfirmPassword\"\n name=\"newPasswordConfirm\"\n type=\"password\"\n #newPasswordConfirm=\"ngModel\"\n class=\"form-control\"\n [(ngModel)]=\"model.newPasswordConfirm\"\n required\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-5\">\n <c8y-password-strength\n [password]=\"model.newPassword\"\n (strength)=\"model.strength = $event\"\n ></c8y-password-strength>\n\n <c8y-password-check-list\n class=\"m-t-32\"\n [password]=\"model.newPassword\"\n [hidden]=\"!passwordEnforced\"\n ></c8y-password-check-list>\n </div>\n</div>\n" }]
|
|
@@ -12767,12 +12781,12 @@ class UserEditComponent {
|
|
|
12767
12781
|
return loginOptions.some(({ tfaStrategy = '' }) => tfaStrategy.toLowerCase() === 'totp');
|
|
12768
12782
|
}
|
|
12769
12783
|
}
|
|
12770
|
-
UserEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditComponent, deps: [{ token: AppStateService }, { token: TranslateService }, { token: i1$
|
|
12771
|
-
UserEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserEditComponent, selector: "c8y-user-edit", inputs: { lang: "lang", loading: "loading", user: "user", showProductUsageSetting: "showProductUsageSetting", isUsageTrackingEnabled: "isUsageTrackingEnabled", isGainsightEngagementsEnabled: "isGainsightEngagementsEnabled" }, outputs: { onUser: "onUser", onLanguage: "onLanguage", onProductExperience: "onProductExperience", onGainsightEngagements: "onGainsightEngagements", onCancel: "onCancel" }, ngImport: i0, template: "<form #userForm=\"ngForm\" (ngSubmit)=\"userForm.form.valid && save()\">\n <div class=\"d-block p-24 p-b-0\">\n <div class=\"alert alert-warning\" role=\"alert\" *ngIf=\"userIsExternal\" translate>\n Some of the user settings are not editable here because they are managed via your\n authorization server.\n </div>\n <c8y-form-group>\n <label translate for=\"userName\">Username (for example, email)</label>\n <input\n id=\"userName\"\n class=\"form-control\"\n [(ngModel)]=\"user.userName\"\n name=\"userName\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [disabled]=\"user.id\"\n c8yDefaultValidation=\"user\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate for=\"displayName\">Login alias</label>\n <input\n id=\"displayName\"\n class=\"form-control\"\n [(ngModel)]=\"user.displayName\"\n name=\"displayName\"\n autocomplete=\"off\"\n maxlength=\"254\"\n placeholder=\"{{ 'e.g. joe.doe`LOCALIZE`' | translate }}\"\n [disabled]=\"userIsExternal\"\n c8yDefaultValidation=\"loginAlias\"\n />\n </c8y-form-group>\n\n <c8y-form-group [hasWarning]=\"!user.email\">\n <label translate for=\"userEmail\">Email</label>\n <input\n id=\"userEmail\"\n class=\"form-control\"\n type=\"email\"\n name=\"email\"\n [maxlength]=\"254\"\n autocomplete=\"off\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [(ngModel)]=\"user.email\"\n email\n [required]=\"true\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label translate for=\"userFirstName\">First name</label>\n <input\n id=\"userFirstName\"\n class=\"form-control\"\n autocomplete=\"off\"\n maxlength=\"50\"\n name=\"firstName\"\n [(ngModel)]=\"user.firstName\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label translate for=\"userLastName\">Last name</label>\n <input\n id=\"userLastName\"\n class=\"form-control\"\n autocomplete=\"off\"\n maxlength=\"50\"\n name=\"lastName\"\n [(ngModel)]=\"user.lastName\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <c8y-form-group>\n <label translate for=\"userTelephone\">Telephone</label>\n <input\n id=\"userTelephone\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"phone\"\n maxlength=\"254\"\n [(ngModel)]=\"user.phone\"\n placeholder=\"{{ 'e.g. +49 9 876 543 210`LOCALIZE`' | translate }}\"\n c8yPhoneValidation\n [required]=\"isPhoneRequired\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate for=\"userLang\">Language</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"userLang\"\n class=\"form-control\"\n #selectLang\n name=\"lang\"\n [(ngModel)]=\"lang\"\n (change)=\"onLanguage.emit(selectLang.value)\"\n >\n <option *ngFor=\"let lang of langs\" [value]=\"lang\">\n {{ translate.getNativeLanguage(lang) }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group class=\"p-t-16 separator-top\" *ngIf=\"showProductUsageSetting\">\n <label translate>Product experience</label>\n <label class=\"c8y-switch\" for=\"productUsageTracking\">\n <input\n id=\"productUsageTracking\"\n name=\"productUsageTracking\"\n type=\"checkbox\"\n (change)=\"onEnablingProductUsageTracking(isUsageTrackingEnabled)\"\n [(ngModel)]=\"isUsageTrackingEnabled\"\n />\n <span></span>\n {{ 'Enable tracking to enhance the product experience' | translate }}\n </label>\n <ng-container *ngIf=\"isUsageTrackingEnabled\">\n <label class=\"c8y-switch m-l-0\" for=\"gainsightEngagements\">\n <input\n id=\"gainsightEngagements\"\n name=\"gainsightEngagements\"\n type=\"checkbox\"\n [(ngModel)]=\"isGainsightEngagementsEnabled\"\n />\n <span></span>\n {{ 'Enable in-product information & communication' | translate }}\n </label>\n </ng-container>\n </c8y-form-group>\n\n <div class=\"form-group p-t-16 separator-top\" *ngIf=\"!userIsExternal\">\n <label class=\"control-label\">{{ 'Login options' | translate }}</label>\n <c8y-new-password (password)=\"onNewPasswordChanged($event)\"></c8y-new-password>\n <button\n title=\"{{ 'Set up two-factor authentication' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"setupTotp()\"\n *ngIf=\"userCanSetupTotp && !userHasActiveTotp && isTfaEnabled\"\n >\n {{ 'Set up two-factor authentication' | translate }}\n </button>\n </div>\n\n <c8y-form-group *ngIf=\"!!(state.state$ | async).newsletter\">\n <label translate>Newsletter</label>\n <label\n title=\"{{ 'Send me information about outages, maintenance or updates.' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n name=\"newsletter\"\n [(ngModel)]=\"user.newsletter\"\n [disabled]=\"userIsExternal\"\n />\n <span></span>\n <span>\n {{ 'Send me information about outages, maintenance or updates.' | translate }}\n </span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"!userForm.form.valid || userForm.form.pristine || loading\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: PhoneValidationDirective, selector: "[c8yPhoneValidation]" }, { kind: "directive", type: DefaultValidationDirective, selector: "[c8yDefaultValidation]", inputs: ["c8yDefaultValidation"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NewPasswordComponent, selector: "c8y-new-password", outputs: ["password"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }] });
|
|
12784
|
+
UserEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditComponent, deps: [{ token: AppStateService }, { token: TranslateService }, { token: i1$8.BsModalService }, { token: AlertService }, { token: i1$2.UserService }, { token: i1$2.TenantLoginOptionsService }, { token: i1$2.TenantService }, { token: UserPreferencesService }, { token: GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12785
|
+
UserEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserEditComponent, selector: "c8y-user-edit", inputs: { lang: "lang", loading: "loading", user: "user", showProductUsageSetting: "showProductUsageSetting", isUsageTrackingEnabled: "isUsageTrackingEnabled", isGainsightEngagementsEnabled: "isGainsightEngagementsEnabled" }, outputs: { onUser: "onUser", onLanguage: "onLanguage", onProductExperience: "onProductExperience", onGainsightEngagements: "onGainsightEngagements", onCancel: "onCancel" }, ngImport: i0, template: "<form #userForm=\"ngForm\" (ngSubmit)=\"userForm.form.valid && save()\">\n <div class=\"d-block p-24 p-b-0\">\n <div class=\"alert alert-warning\" role=\"alert\" *ngIf=\"userIsExternal\" translate>\n Some of the user settings are not editable here because they are managed via your\n authorization server.\n </div>\n <c8y-form-group>\n <label translate for=\"userName\">Username (for example, email)</label>\n <input\n id=\"userName\"\n class=\"form-control\"\n [(ngModel)]=\"user.userName\"\n name=\"userName\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [disabled]=\"user.id\"\n c8yDefaultValidation=\"user\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate for=\"displayName\">Login alias</label>\n <input\n id=\"displayName\"\n class=\"form-control\"\n [(ngModel)]=\"user.displayName\"\n name=\"displayName\"\n autocomplete=\"off\"\n maxlength=\"254\"\n placeholder=\"{{ 'e.g. joe.doe`LOCALIZE`' | translate }}\"\n [disabled]=\"userIsExternal\"\n c8yDefaultValidation=\"loginAlias\"\n />\n </c8y-form-group>\n\n <c8y-form-group [hasWarning]=\"!user.email\">\n <label translate for=\"userEmail\">Email</label>\n <input\n id=\"userEmail\"\n class=\"form-control\"\n type=\"email\"\n name=\"email\"\n [maxlength]=\"254\"\n autocomplete=\"off\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [(ngModel)]=\"user.email\"\n email\n [required]=\"true\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label translate for=\"userFirstName\">First name</label>\n <input\n id=\"userFirstName\"\n class=\"form-control\"\n autocomplete=\"off\"\n maxlength=\"50\"\n name=\"firstName\"\n [(ngModel)]=\"user.firstName\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label translate for=\"userLastName\">Last name</label>\n <input\n id=\"userLastName\"\n class=\"form-control\"\n autocomplete=\"off\"\n maxlength=\"50\"\n name=\"lastName\"\n [(ngModel)]=\"user.lastName\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <c8y-form-group>\n <label translate for=\"userTelephone\">Telephone</label>\n <input\n id=\"userTelephone\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"phone\"\n maxlength=\"254\"\n [(ngModel)]=\"user.phone\"\n placeholder=\"{{ 'e.g. +49 9 876 543 210`LOCALIZE`' | translate }}\"\n c8yPhoneValidation\n [required]=\"isPhoneRequired\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate for=\"userLang\">Language</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"userLang\"\n class=\"form-control\"\n #selectLang\n name=\"lang\"\n [(ngModel)]=\"lang\"\n (change)=\"onLanguage.emit(selectLang.value)\"\n >\n <option *ngFor=\"let lang of langs\" [value]=\"lang\">\n {{ translate.getNativeLanguage(lang) }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group class=\"p-t-16 separator-top\" *ngIf=\"showProductUsageSetting\">\n <label translate>Product experience</label>\n <label class=\"c8y-switch\" for=\"productUsageTracking\">\n <input\n id=\"productUsageTracking\"\n name=\"productUsageTracking\"\n type=\"checkbox\"\n (change)=\"onEnablingProductUsageTracking(isUsageTrackingEnabled)\"\n [(ngModel)]=\"isUsageTrackingEnabled\"\n />\n <span></span>\n {{ 'Enable tracking to enhance the product experience' | translate }}\n </label>\n <ng-container *ngIf=\"isUsageTrackingEnabled\">\n <label class=\"c8y-switch m-l-0\" for=\"gainsightEngagements\">\n <input\n id=\"gainsightEngagements\"\n name=\"gainsightEngagements\"\n type=\"checkbox\"\n [(ngModel)]=\"isGainsightEngagementsEnabled\"\n />\n <span></span>\n {{ 'Enable in-product information & communication' | translate }}\n </label>\n </ng-container>\n </c8y-form-group>\n\n <div class=\"form-group p-t-16 separator-top\" *ngIf=\"!userIsExternal\">\n <label class=\"control-label\">{{ 'Login options' | translate }}</label>\n <c8y-new-password (password)=\"onNewPasswordChanged($event)\"></c8y-new-password>\n <button\n title=\"{{ 'Set up two-factor authentication' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"setupTotp()\"\n *ngIf=\"userCanSetupTotp && !userHasActiveTotp && isTfaEnabled\"\n >\n {{ 'Set up two-factor authentication' | translate }}\n </button>\n </div>\n\n <c8y-form-group *ngIf=\"!!(state.state$ | async).newsletter\">\n <label translate>Newsletter</label>\n <label\n title=\"{{ 'Send me information about outages, maintenance or updates.' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n name=\"newsletter\"\n [(ngModel)]=\"user.newsletter\"\n [disabled]=\"userIsExternal\"\n />\n <span></span>\n <span>\n {{ 'Send me information about outages, maintenance or updates.' | translate }}\n </span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"!userForm.form.valid || userForm.form.pristine || loading\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: PhoneValidationDirective, selector: "[c8yPhoneValidation]" }, { kind: "directive", type: DefaultValidationDirective, selector: "[c8yDefaultValidation]", inputs: ["c8yDefaultValidation"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NewPasswordComponent, selector: "c8y-new-password", outputs: ["password"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
12772
12786
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditComponent, decorators: [{
|
|
12773
12787
|
type: Component,
|
|
12774
12788
|
args: [{ selector: 'c8y-user-edit', template: "<form #userForm=\"ngForm\" (ngSubmit)=\"userForm.form.valid && save()\">\n <div class=\"d-block p-24 p-b-0\">\n <div class=\"alert alert-warning\" role=\"alert\" *ngIf=\"userIsExternal\" translate>\n Some of the user settings are not editable here because they are managed via your\n authorization server.\n </div>\n <c8y-form-group>\n <label translate for=\"userName\">Username (for example, email)</label>\n <input\n id=\"userName\"\n class=\"form-control\"\n [(ngModel)]=\"user.userName\"\n name=\"userName\"\n autocomplete=\"off\"\n required\n maxlength=\"254\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [disabled]=\"user.id\"\n c8yDefaultValidation=\"user\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate for=\"displayName\">Login alias</label>\n <input\n id=\"displayName\"\n class=\"form-control\"\n [(ngModel)]=\"user.displayName\"\n name=\"displayName\"\n autocomplete=\"off\"\n maxlength=\"254\"\n placeholder=\"{{ 'e.g. joe.doe`LOCALIZE`' | translate }}\"\n [disabled]=\"userIsExternal\"\n c8yDefaultValidation=\"loginAlias\"\n />\n </c8y-form-group>\n\n <c8y-form-group [hasWarning]=\"!user.email\">\n <label translate for=\"userEmail\">Email</label>\n <input\n id=\"userEmail\"\n class=\"form-control\"\n type=\"email\"\n name=\"email\"\n [maxlength]=\"254\"\n autocomplete=\"off\"\n placeholder=\"{{ 'e.g. joe.doe@example.com`LOCALIZE`' | translate }}\"\n [(ngModel)]=\"user.email\"\n email\n [required]=\"true\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n\n <div class=\"row\">\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label translate for=\"userFirstName\">First name</label>\n <input\n id=\"userFirstName\"\n class=\"form-control\"\n autocomplete=\"off\"\n maxlength=\"50\"\n name=\"firstName\"\n [(ngModel)]=\"user.firstName\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n </div>\n <div class=\"col-sm-6\">\n <c8y-form-group>\n <label translate for=\"userLastName\">Last name</label>\n <input\n id=\"userLastName\"\n class=\"form-control\"\n autocomplete=\"off\"\n maxlength=\"50\"\n name=\"lastName\"\n [(ngModel)]=\"user.lastName\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n </div>\n </div>\n\n <c8y-form-group>\n <label translate for=\"userTelephone\">Telephone</label>\n <input\n id=\"userTelephone\"\n class=\"form-control\"\n autocomplete=\"off\"\n name=\"phone\"\n maxlength=\"254\"\n [(ngModel)]=\"user.phone\"\n placeholder=\"{{ 'e.g. +49 9 876 543 210`LOCALIZE`' | translate }}\"\n c8yPhoneValidation\n [required]=\"isPhoneRequired\"\n [disabled]=\"userIsExternal\"\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate for=\"userLang\">Language</label>\n <div class=\"c8y-select-wrapper\">\n <select\n id=\"userLang\"\n class=\"form-control\"\n #selectLang\n name=\"lang\"\n [(ngModel)]=\"lang\"\n (change)=\"onLanguage.emit(selectLang.value)\"\n >\n <option *ngFor=\"let lang of langs\" [value]=\"lang\">\n {{ translate.getNativeLanguage(lang) }}\n </option>\n </select>\n <span></span>\n </div>\n </c8y-form-group>\n\n <c8y-form-group class=\"p-t-16 separator-top\" *ngIf=\"showProductUsageSetting\">\n <label translate>Product experience</label>\n <label class=\"c8y-switch\" for=\"productUsageTracking\">\n <input\n id=\"productUsageTracking\"\n name=\"productUsageTracking\"\n type=\"checkbox\"\n (change)=\"onEnablingProductUsageTracking(isUsageTrackingEnabled)\"\n [(ngModel)]=\"isUsageTrackingEnabled\"\n />\n <span></span>\n {{ 'Enable tracking to enhance the product experience' | translate }}\n </label>\n <ng-container *ngIf=\"isUsageTrackingEnabled\">\n <label class=\"c8y-switch m-l-0\" for=\"gainsightEngagements\">\n <input\n id=\"gainsightEngagements\"\n name=\"gainsightEngagements\"\n type=\"checkbox\"\n [(ngModel)]=\"isGainsightEngagementsEnabled\"\n />\n <span></span>\n {{ 'Enable in-product information & communication' | translate }}\n </label>\n </ng-container>\n </c8y-form-group>\n\n <div class=\"form-group p-t-16 separator-top\" *ngIf=\"!userIsExternal\">\n <label class=\"control-label\">{{ 'Login options' | translate }}</label>\n <c8y-new-password (password)=\"onNewPasswordChanged($event)\"></c8y-new-password>\n <button\n title=\"{{ 'Set up two-factor authentication' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"setupTotp()\"\n *ngIf=\"userCanSetupTotp && !userHasActiveTotp && isTfaEnabled\"\n >\n {{ 'Set up two-factor authentication' | translate }}\n </button>\n </div>\n\n <c8y-form-group *ngIf=\"!!(state.state$ | async).newsletter\">\n <label translate>Newsletter</label>\n <label\n title=\"{{ 'Send me information about outages, maintenance or updates.' | translate }}\"\n class=\"c8y-checkbox\"\n >\n <input\n type=\"checkbox\"\n name=\"newsletter\"\n [(ngModel)]=\"user.newsletter\"\n [disabled]=\"userIsExternal\"\n />\n <span></span>\n <span>\n {{ 'Send me information about outages, maintenance or updates.' | translate }}\n </span>\n </label>\n </c8y-form-group>\n </div>\n <div class=\"modal-footer separator-top bg-level-0 sticky-bottom\">\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"cancel()\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"!userForm.form.valid || userForm.form.pristine || loading\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n</form>\n" }]
|
|
12775
|
-
}], ctorParameters: function () { return [{ type: AppStateService }, { type: TranslateService }, { type: i1$
|
|
12789
|
+
}], ctorParameters: function () { return [{ type: AppStateService }, { type: TranslateService }, { type: i1$8.BsModalService }, { type: AlertService }, { type: i1$2.UserService }, { type: i1$2.TenantLoginOptionsService }, { type: i1$2.TenantService }, { type: UserPreferencesService }, { type: GainsightService }]; }, propDecorators: { lang: [{
|
|
12776
12790
|
type: Input
|
|
12777
12791
|
}], loading: [{
|
|
12778
12792
|
type: Input
|
|
@@ -12937,12 +12951,12 @@ class UserEditModalComponent {
|
|
|
12937
12951
|
this.auth.updateCredentials(newCredentials);
|
|
12938
12952
|
}
|
|
12939
12953
|
}
|
|
12940
|
-
UserEditModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditModalComponent, deps: [{ token: i1$
|
|
12941
|
-
UserEditModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserEditModalComponent, selector: "c8y-user-edit-modal", ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Edit user' | translate\" (onDismiss)=\"onDismiss()\">\n <c8y-user-edit\n [lang]=\"lang\"\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n [isUsageTrackingEnabled]=\"currentUsageTrackingState\"\n [isGainsightEngagementsEnabled]=\"currentGainsightEngagementsState\"\n [showProductUsageSetting]=\"showProductUsageSetting\"\n (onLanguage)=\"onLanguage($event)\"\n (onProductExperience)=\"onProductExperience($event)\"\n (onGainsightEngagements)=\"onGainsightEngagements($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n >\n </c8y-user-edit>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: UserEditComponent, selector: "c8y-user-edit", inputs: ["lang", "loading", "user", "showProductUsageSetting", "isUsageTrackingEnabled", "isGainsightEngagementsEnabled"], outputs: ["onUser", "onLanguage", "onProductExperience", "onGainsightEngagements", "onCancel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type:
|
|
12954
|
+
UserEditModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditModalComponent, deps: [{ token: i1$8.BsModalRef }, { token: i1$2.UserService }, { token: AppStateService }, { token: i1$2.BasicAuth }, { token: i1$2.FetchClient }, { token: AlertService }, { token: TranslateService }, { token: UserPreferencesService }, { token: ModalService }, { token: GainsightService }, { token: CookieBannerService }, { token: LoginService }, { token: PasswordService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12955
|
+
UserEditModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserEditModalComponent, selector: "c8y-user-edit-modal", ngImport: i0, template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Edit user' | translate\" (onDismiss)=\"onDismiss()\">\n <c8y-user-edit\n [lang]=\"lang\"\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n [isUsageTrackingEnabled]=\"currentUsageTrackingState\"\n [isGainsightEngagementsEnabled]=\"currentGainsightEngagementsState\"\n [showProductUsageSetting]=\"showProductUsageSetting\"\n (onLanguage)=\"onLanguage($event)\"\n (onProductExperience)=\"onProductExperience($event)\"\n (onGainsightEngagements)=\"onGainsightEngagements($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n >\n </c8y-user-edit>\n</c8y-modal>\n", dependencies: [{ kind: "component", type: ModalComponent, selector: "c8y-modal", inputs: ["disabled", "close", "dismiss", "title", "body", "customFooter", "headerClasses", "labels"], outputs: ["onDismiss", "onClose"] }, { kind: "component", type: UserEditComponent, selector: "c8y-user-edit", inputs: ["lang", "loading", "user", "showProductUsageSetting", "isUsageTrackingEnabled", "isGainsightEngagementsEnabled"], outputs: ["onUser", "onLanguage", "onProductExperience", "onGainsightEngagements", "onCancel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
12942
12956
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditModalComponent, decorators: [{
|
|
12943
12957
|
type: Component,
|
|
12944
12958
|
args: [{ selector: 'c8y-user-edit-modal', template: "<c8y-modal [customFooter]=\"true\" [title]=\"'Edit user' | translate\" (onDismiss)=\"onDismiss()\">\n <c8y-user-edit\n [lang]=\"lang\"\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n [isUsageTrackingEnabled]=\"currentUsageTrackingState\"\n [isGainsightEngagementsEnabled]=\"currentGainsightEngagementsState\"\n [showProductUsageSetting]=\"showProductUsageSetting\"\n (onLanguage)=\"onLanguage($event)\"\n (onProductExperience)=\"onProductExperience($event)\"\n (onGainsightEngagements)=\"onGainsightEngagements($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n >\n </c8y-user-edit>\n</c8y-modal>\n" }]
|
|
12945
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12959
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }, { type: i1$2.UserService }, { type: AppStateService }, { type: i1$2.BasicAuth }, { type: i1$2.FetchClient }, { type: AlertService }, { type: TranslateService }, { type: UserPreferencesService }, { type: ModalService }, { type: GainsightService }, { type: CookieBannerService }, { type: LoginService }, { type: PasswordService }]; } });
|
|
12946
12960
|
|
|
12947
12961
|
class UserMenuItemComponent {
|
|
12948
12962
|
constructor(userService) {
|
|
@@ -12962,7 +12976,7 @@ class UserMenuItemComponent {
|
|
|
12962
12976
|
}
|
|
12963
12977
|
}
|
|
12964
12978
|
UserMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuItemComponent, deps: [{ token: UserMenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12965
|
-
UserMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserMenuItemComponent, selector: "c8y-user-menu-item", inputs: { icon: "icon", label: "label", link: "link", target: "target", priority: "priority", dataCy: "dataCy" }, outputs: { click: "click" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], ngImport: i0, template: "<ng-template #template>\n <li >\n <a class=\"c8y-right-drawer__link\" (click)=\"onClick()\" [attr.data-cy]=\"dataCy\" *ngIf=\"link\" [attr.href]=\"link\" [attr.target]=\"target\">\n {{ label | translate }}\n <ng-content></ng-content>\n </a>\n <button *ngIf=\"!link\" (click)=\"onClick()\" [attr.data-cy]=\"dataCy\" type=\"button\" class=\"c8y-right-drawer__link\">\n {{ label | translate }}\n <ng-content></ng-content>\n </button>\n </li>\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
12979
|
+
UserMenuItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserMenuItemComponent, selector: "c8y-user-menu-item", inputs: { icon: "icon", label: "label", link: "link", target: "target", priority: "priority", dataCy: "dataCy" }, outputs: { click: "click" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], ngImport: i0, template: "<ng-template #template>\n <li >\n <a class=\"c8y-right-drawer__link\" (click)=\"onClick()\" [attr.data-cy]=\"dataCy\" *ngIf=\"link\" [attr.href]=\"link\" [attr.target]=\"target\">\n {{ label | translate }}\n <ng-content></ng-content>\n </a>\n <button *ngIf=\"!link\" (click)=\"onClick()\" [attr.data-cy]=\"dataCy\" type=\"button\" class=\"c8y-right-drawer__link\">\n {{ label | translate }}\n <ng-content></ng-content>\n </button>\n </li>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
12966
12980
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuItemComponent, decorators: [{
|
|
12967
12981
|
type: Component,
|
|
12968
12982
|
args: [{ selector: 'c8y-user-menu-item', template: "<ng-template #template>\n <li >\n <a class=\"c8y-right-drawer__link\" (click)=\"onClick()\" [attr.data-cy]=\"dataCy\" *ngIf=\"link\" [attr.href]=\"link\" [attr.target]=\"target\">\n {{ label | translate }}\n <ng-content></ng-content>\n </a>\n <button *ngIf=\"!link\" (click)=\"onClick()\" [attr.data-cy]=\"dataCy\" type=\"button\" class=\"c8y-right-drawer__link\">\n {{ label | translate }}\n <ng-content></ng-content>\n </button>\n </li>\n</ng-template>\n" }]
|
|
@@ -13113,12 +13127,12 @@ class UserMenuOutletComponent {
|
|
|
13113
13127
|
await this.modalService.confirm(gettext('Revoke user tokens'), modalBody, Status.WARNING, modalLabels);
|
|
13114
13128
|
}
|
|
13115
13129
|
}
|
|
13116
|
-
UserMenuOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuOutletComponent, deps: [{ token: AppStateService }, { token: i1$
|
|
13117
|
-
UserMenuOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserMenuOutletComponent, selector: "c8y-user-menu-outlet", inputs: { items: "items" }, ngImport: i0, template: "<div *ngIf=\"items?.length\" class=\"p-t-8 p-b-8\">\n <ul class=\"list-unstyled m-b-0\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"item.template\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.template\">\n <li>\n <button\n [attr.aria-label]=\"item.label | translate\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n (click)=\"item.click()\"\n [attr.href]=\"item.link\"\n [attr.target]=\"item.target\"\n >\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n\n<!-- the default items -->\n<c8y-user-menu-item\n *ngIf=\"ui.currentUser | async\"\n [icon]=\"'user-menu-male'\"\n [label]=\"'User settings' | translate\"\n [priority]=\"20\"\n [dataCy]=\"'user-menu-user-settings-button'\"\n (click)=\"editUser()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"ui.currentUser | async\"\n [icon]=\"'sign-out'\"\n [label]=\"'Logout' | translate\"\n [dataCy]=\"'user-menu-logout-button'\"\n (click)=\"logout()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"!(ui.currentUser | async)?.supportUserEnabled && ((ui.state$ | async).activateSupportUserAvailable)\"\n [icon]=\"'c8y-c8y-support'\"\n [label]=\"'Activate support' | translate\"\n [dataCy]=\"'user-menu-activate-support-button'\"\n (click)=\"activateSupportAccess()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"(ui.currentUser | async)?.supportUserEnabled && ((ui.state$ | async).activateSupportUserAvailable)\"\n [icon]=\"'c8y-c8y-support'\"\n [label]=\"'Deactivate support' | translate\"\n [dataCy]=\"'user-menu-deactivate-support-button'\"\n (click)=\"deactivateSupportAccess()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"hasAdminPermissions\"\n [icon]=\"'account-disable'\"\n [label]=\"'Revoke tokens' | translate\"\n (click)=\"revokeTokens()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"(ui.state$ | async).supportUrl\"\n [icon]=\"'question-circle'\"\n [link]=\"(ui.state$ | async).supportUrl\"\n [target]=\"'_blank'\"\n [label]=\"'Request support' | translate\"\n [dataCy]=\"'user-menu-request-support-button'\"\n></c8y-user-menu-item>\n", dependencies: [{ kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type:
|
|
13130
|
+
UserMenuOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuOutletComponent, deps: [{ token: AppStateService }, { token: i1$8.BsModalService }, { token: ModalService }, { token: LoginService }, { token: i1$3.TranslateService }, { token: i1$2.TenantService }, { token: AlertService }, { token: i1$2.UserService }, { token: OptionsService }, { token: TenantUiService }, { token: Permissions }], target: i0.ɵɵFactoryTarget.Component });
|
|
13131
|
+
UserMenuOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserMenuOutletComponent, selector: "c8y-user-menu-outlet", inputs: { items: "items" }, ngImport: i0, template: "<div *ngIf=\"items?.length\" class=\"p-t-8 p-b-8\">\n <ul class=\"list-unstyled m-b-0\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"item.template\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.template\">\n <li>\n <button\n [attr.aria-label]=\"item.label | translate\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n (click)=\"item.click()\"\n [attr.href]=\"item.link\"\n [attr.target]=\"item.target\"\n >\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n\n<!-- the default items -->\n<c8y-user-menu-item\n *ngIf=\"ui.currentUser | async\"\n [icon]=\"'user-menu-male'\"\n [label]=\"'User settings' | translate\"\n [priority]=\"20\"\n [dataCy]=\"'user-menu-user-settings-button'\"\n (click)=\"editUser()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"ui.currentUser | async\"\n [icon]=\"'sign-out'\"\n [label]=\"'Logout' | translate\"\n [dataCy]=\"'user-menu-logout-button'\"\n (click)=\"logout()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"!(ui.currentUser | async)?.supportUserEnabled && ((ui.state$ | async).activateSupportUserAvailable)\"\n [icon]=\"'c8y-c8y-support'\"\n [label]=\"'Activate support' | translate\"\n [dataCy]=\"'user-menu-activate-support-button'\"\n (click)=\"activateSupportAccess()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"(ui.currentUser | async)?.supportUserEnabled && ((ui.state$ | async).activateSupportUserAvailable)\"\n [icon]=\"'c8y-c8y-support'\"\n [label]=\"'Deactivate support' | translate\"\n [dataCy]=\"'user-menu-deactivate-support-button'\"\n (click)=\"deactivateSupportAccess()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"hasAdminPermissions\"\n [icon]=\"'account-disable'\"\n [label]=\"'Revoke tokens' | translate\"\n (click)=\"revokeTokens()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"(ui.state$ | async).supportUrl\"\n [icon]=\"'question-circle'\"\n [link]=\"(ui.state$ | async).supportUrl\"\n [target]=\"'_blank'\"\n [label]=\"'Request support' | translate\"\n [dataCy]=\"'user-menu-request-support-button'\"\n></c8y-user-menu-item>\n", dependencies: [{ kind: "directive", type: OutletDirective, selector: "[c8yOutlet]", inputs: ["c8yOutlet", "c8yOutletProperties", "c8yOutletInjector"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: UserMenuItemComponent, selector: "c8y-user-menu-item", inputs: ["icon", "label", "link", "target", "priority", "dataCy"], outputs: ["click"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
13118
13132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuOutletComponent, decorators: [{
|
|
13119
13133
|
type: Component,
|
|
13120
13134
|
args: [{ selector: 'c8y-user-menu-outlet', template: "<div *ngIf=\"items?.length\" class=\"p-t-8 p-b-8\">\n <ul class=\"list-unstyled m-b-0\">\n <ng-container *ngFor=\"let item of items\">\n <ng-container *ngIf=\"item.template\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.template\">\n <li>\n <button\n [attr.aria-label]=\"item.label | translate\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n (click)=\"item.click()\"\n [attr.href]=\"item.link\"\n [attr.target]=\"item.target\"\n >\n {{ item.label | translate }}\n </button>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n\n<!-- the default items -->\n<c8y-user-menu-item\n *ngIf=\"ui.currentUser | async\"\n [icon]=\"'user-menu-male'\"\n [label]=\"'User settings' | translate\"\n [priority]=\"20\"\n [dataCy]=\"'user-menu-user-settings-button'\"\n (click)=\"editUser()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"ui.currentUser | async\"\n [icon]=\"'sign-out'\"\n [label]=\"'Logout' | translate\"\n [dataCy]=\"'user-menu-logout-button'\"\n (click)=\"logout()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"!(ui.currentUser | async)?.supportUserEnabled && ((ui.state$ | async).activateSupportUserAvailable)\"\n [icon]=\"'c8y-c8y-support'\"\n [label]=\"'Activate support' | translate\"\n [dataCy]=\"'user-menu-activate-support-button'\"\n (click)=\"activateSupportAccess()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"(ui.currentUser | async)?.supportUserEnabled && ((ui.state$ | async).activateSupportUserAvailable)\"\n [icon]=\"'c8y-c8y-support'\"\n [label]=\"'Deactivate support' | translate\"\n [dataCy]=\"'user-menu-deactivate-support-button'\"\n (click)=\"deactivateSupportAccess()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"hasAdminPermissions\"\n [icon]=\"'account-disable'\"\n [label]=\"'Revoke tokens' | translate\"\n (click)=\"revokeTokens()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n *ngIf=\"(ui.state$ | async).supportUrl\"\n [icon]=\"'question-circle'\"\n [link]=\"(ui.state$ | async).supportUrl\"\n [target]=\"'_blank'\"\n [label]=\"'Request support' | translate\"\n [dataCy]=\"'user-menu-request-support-button'\"\n></c8y-user-menu-item>\n" }]
|
|
13121
|
-
}], ctorParameters: function () { return [{ type: AppStateService }, { type: i1$
|
|
13135
|
+
}], ctorParameters: function () { return [{ type: AppStateService }, { type: i1$8.BsModalService }, { type: ModalService }, { type: LoginService }, { type: i1$3.TranslateService }, { type: i1$2.TenantService }, { type: AlertService }, { type: i1$2.UserService }, { type: OptionsService }, { type: TenantUiService }, { type: Permissions }]; }, propDecorators: { items: [{
|
|
13122
13136
|
type: Input
|
|
13123
13137
|
}] } });
|
|
13124
13138
|
|
|
@@ -13372,12 +13386,12 @@ class VersionDetailsModalComponent {
|
|
|
13372
13386
|
this.close();
|
|
13373
13387
|
}
|
|
13374
13388
|
}
|
|
13375
|
-
VersionDetailsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionDetailsModalComponent, deps: [{ token: i1$
|
|
13376
|
-
VersionDetailsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: VersionDetailsModalComponent, selector: "c8y-version-details-modal", ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-cumulocity-iot'\"></i>\n <h4 id=\"modal-title\">{{ 'Platform info' | translate }}</h4>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-24 p-r-24\">\n <table class=\"table table-condensed\">\n <colgroup>\n <col width=\"50%\" />\n <col width=\"50%\" />\n </colgroup>\n <thead>\n <tr>\n <th class=\"sticky-top bg-component\" [title]=\"'Application' | translate\" translate>\n Application\n </th>\n <th\n class=\"text-right sticky-top bg-component\"\n [title]=\"'Version' | translate\"\n translate\n >\n Version\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of version.nonHiddenItems$ | async\">\n <td class=\"text-truncate\" [title]=\"item.label | translate\">\n {{ item.label | translate }}\n </td>\n <td class=\"text-truncate text-right\" [title]=\"item.version\">{{ item.version }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n <button\n title=\"{{ 'Download platform details' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"downloadPlatformDetails()\"\n >\n {{ 'Download platform details' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
13389
|
+
VersionDetailsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionDetailsModalComponent, deps: [{ token: i1$8.BsModalRef }, { token: VersionService }, { token: PlatformDetailsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13390
|
+
VersionDetailsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: VersionDetailsModalComponent, selector: "c8y-version-details-modal", ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-cumulocity-iot'\"></i>\n <h4 id=\"modal-title\">{{ 'Platform info' | translate }}</h4>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-24 p-r-24\">\n <table class=\"table table-condensed\">\n <colgroup>\n <col width=\"50%\" />\n <col width=\"50%\" />\n </colgroup>\n <thead>\n <tr>\n <th class=\"sticky-top bg-component\" [title]=\"'Application' | translate\" translate>\n Application\n </th>\n <th\n class=\"text-right sticky-top bg-component\"\n [title]=\"'Version' | translate\"\n translate\n >\n Version\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of version.nonHiddenItems$ | async\">\n <td class=\"text-truncate\" [title]=\"item.label | translate\">\n {{ item.label | translate }}\n </td>\n <td class=\"text-truncate text-right\" [title]=\"item.version\">{{ item.version }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n <button\n title=\"{{ 'Download platform details' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"downloadPlatformDetails()\"\n >\n {{ 'Download platform details' | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
13377
13391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionDetailsModalComponent, decorators: [{
|
|
13378
13392
|
type: Component,
|
|
13379
13393
|
args: [{ selector: 'c8y-version-details-modal', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'c8y-cumulocity-iot'\"></i>\n <h4 id=\"modal-title\">{{ 'Platform info' | translate }}</h4>\n </div>\n\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-24 p-r-24\">\n <table class=\"table table-condensed\">\n <colgroup>\n <col width=\"50%\" />\n <col width=\"50%\" />\n </colgroup>\n <thead>\n <tr>\n <th class=\"sticky-top bg-component\" [title]=\"'Application' | translate\" translate>\n Application\n </th>\n <th\n class=\"text-right sticky-top bg-component\"\n [title]=\"'Version' | translate\"\n translate\n >\n Version\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of version.nonHiddenItems$ | async\">\n <td class=\"text-truncate\" [title]=\"item.label | translate\">\n {{ item.label | translate }}\n </td>\n <td class=\"text-truncate text-right\" [title]=\"item.version\">{{ item.version }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ 'Close' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n <button\n title=\"{{ 'Download platform details' | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"downloadPlatformDetails()\"\n >\n {{ 'Download platform details' | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
13380
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
13394
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }, { type: VersionService }, { type: PlatformDetailsService }]; } });
|
|
13381
13395
|
|
|
13382
13396
|
class VersionListComponent {
|
|
13383
13397
|
constructor(version, appState, clipboardService, modalService) {
|
|
@@ -13395,12 +13409,12 @@ class VersionListComponent {
|
|
|
13395
13409
|
this.clipboardService.writeText(text);
|
|
13396
13410
|
}
|
|
13397
13411
|
}
|
|
13398
|
-
VersionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionListComponent, deps: [{ token: VersionService }, { token: AppStateService }, { token: ClipboardService }, { token: i1$
|
|
13399
|
-
VersionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: VersionListComponent, selector: "c8y-version-list", ngImport: i0, template: "<div class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"c8y-cumulocity-iot\"></i>\n <span class=\"text-bold\">{{ 'Platform info' | translate }}</span>\n </div>\n\n <ul class=\"list-unstyled\">\n <li class=\"c8y-right-drawer__item\" *ngIf=\"currentTenantId$ | async as tenantId\">\n <span class=\"flex-grow text-muted m-0 text-12 text-truncate\" translate>Tenant ID</span>\n <button\n type=\"button\"\n title=\"{{ 'Copy tenant ID to the clipboard' | translate }}\"\n class=\"m-l-auto flex-no-shrink btn-clean p-0 text-info\"\n (click)=\"$event.stopPropagation(); copyIt(tenantId)\"\n >\n {{ tenantId }}\n <i [c8yIcon]=\"'clipboard'\" class=\"text-14 m-0\"></i>\n </button>\n </li>\n <li\n class=\"c8y-right-drawer__item\"\n *ngFor=\"let versionEntry of versionsToDirectlyDisplay$ | async\"\n >\n <span\n class=\"flex-grow text-muted text-12 text-truncate m-r-8\"\n [title]=\"versionEntry.label | translate\"\n >\n {{ versionEntry.label | translate }}\n </span>\n <span class=\"m-l-auto flex-no-shrink\" [title]=\"versionEntry.version | translate\">\n {{ versionEntry.version }}\n </span>\n </li>\n <li class=\"c8y-right-drawer__item\">\n <button class=\"btn btn-default btn-sm\" (click)=\"openDetailedInfo()\" translate>\n Detailed info\n </button>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
13412
|
+
VersionListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionListComponent, deps: [{ token: VersionService }, { token: AppStateService }, { token: ClipboardService }, { token: i1$8.BsModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13413
|
+
VersionListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: VersionListComponent, selector: "c8y-version-list", ngImport: i0, template: "<div class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"c8y-cumulocity-iot\"></i>\n <span class=\"text-bold\">{{ 'Platform info' | translate }}</span>\n </div>\n\n <ul class=\"list-unstyled\">\n <li class=\"c8y-right-drawer__item\" *ngIf=\"currentTenantId$ | async as tenantId\">\n <span class=\"flex-grow text-muted m-0 text-12 text-truncate\" translate>Tenant ID</span>\n <button\n type=\"button\"\n title=\"{{ 'Copy tenant ID to the clipboard' | translate }}\"\n class=\"m-l-auto flex-no-shrink btn-clean p-0 text-info\"\n (click)=\"$event.stopPropagation(); copyIt(tenantId)\"\n >\n {{ tenantId }}\n <i [c8yIcon]=\"'clipboard'\" class=\"text-14 m-0\"></i>\n </button>\n </li>\n <li\n class=\"c8y-right-drawer__item\"\n *ngFor=\"let versionEntry of versionsToDirectlyDisplay$ | async\"\n >\n <span\n class=\"flex-grow text-muted text-12 text-truncate m-r-8\"\n [title]=\"versionEntry.label | translate\"\n >\n {{ versionEntry.label | translate }}\n </span>\n <span class=\"m-l-auto flex-no-shrink\" [title]=\"versionEntry.version | translate\">\n {{ versionEntry.version }}\n </span>\n </li>\n <li class=\"c8y-right-drawer__item\">\n <button class=\"btn btn-default btn-sm\" (click)=\"openDetailedInfo()\" translate>\n Detailed info\n </button>\n </li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
13400
13414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionListComponent, decorators: [{
|
|
13401
13415
|
type: Component,
|
|
13402
13416
|
args: [{ selector: 'c8y-version-list', template: "<div class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"c8y-cumulocity-iot\"></i>\n <span class=\"text-bold\">{{ 'Platform info' | translate }}</span>\n </div>\n\n <ul class=\"list-unstyled\">\n <li class=\"c8y-right-drawer__item\" *ngIf=\"currentTenantId$ | async as tenantId\">\n <span class=\"flex-grow text-muted m-0 text-12 text-truncate\" translate>Tenant ID</span>\n <button\n type=\"button\"\n title=\"{{ 'Copy tenant ID to the clipboard' | translate }}\"\n class=\"m-l-auto flex-no-shrink btn-clean p-0 text-info\"\n (click)=\"$event.stopPropagation(); copyIt(tenantId)\"\n >\n {{ tenantId }}\n <i [c8yIcon]=\"'clipboard'\" class=\"text-14 m-0\"></i>\n </button>\n </li>\n <li\n class=\"c8y-right-drawer__item\"\n *ngFor=\"let versionEntry of versionsToDirectlyDisplay$ | async\"\n >\n <span\n class=\"flex-grow text-muted text-12 text-truncate m-r-8\"\n [title]=\"versionEntry.label | translate\"\n >\n {{ versionEntry.label | translate }}\n </span>\n <span class=\"m-l-auto flex-no-shrink\" [title]=\"versionEntry.version | translate\">\n {{ versionEntry.version }}\n </span>\n </li>\n <li class=\"c8y-right-drawer__item\">\n <button class=\"btn btn-default btn-sm\" (click)=\"openDetailedInfo()\" translate>\n Detailed info\n </button>\n </li>\n </ul>\n</div>\n" }]
|
|
13403
|
-
}], ctorParameters: function () { return [{ type: VersionService }, { type: AppStateService }, { type: ClipboardService }, { type: i1$
|
|
13417
|
+
}], ctorParameters: function () { return [{ type: VersionService }, { type: AppStateService }, { type: ClipboardService }, { type: i1$8.BsModalService }]; } });
|
|
13404
13418
|
|
|
13405
13419
|
class UserRolesListPipe {
|
|
13406
13420
|
constructor(translateService) {
|
|
@@ -13464,7 +13478,7 @@ class RightDrawerComponent {
|
|
|
13464
13478
|
}
|
|
13465
13479
|
}
|
|
13466
13480
|
RightDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RightDrawerComponent, deps: [{ token: AppStateService }, { token: UserMenuService }, { token: OptionsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13467
|
-
RightDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RightDrawerComponent, selector: "c8y-right-drawer", inputs: { _quickLinks: ["quickLinks", "_quickLinks"], _helpAndSupport: ["helpAndSupport", "_helpAndSupport"], app: "app", drawerOpen: "drawerOpen" }, outputs: { closeDrawer: "closeDrawer" }, ngImport: i0, template: "<aside class=\"c8y-right-drawer\" [cdkTrapFocus]=\"drawerOpen\">\n<!-- drawer header -->\n <div class=\"c8y-right-drawer__header separator-bottom\">\n <button type=\"button\" class=\"close\" title=\"{{'Close' | translate}}\" (click)=\"close()\">×</button>\n <div class=\"d-flex a-i-center\">\n <div class=\"user-dot\"> {{appState.currentUser | async | userNameInitials}}</div>\n <div class=\"min-width-0\">\n <p\n *ngIf=\"appState.currentUser | async\"\n class=\"text-truncate text-medium text-16\"\n title=\"{{appState.currentUser | async | shortenUserName}}\"\n >\n {{appState.currentUser | async | shortenUserName}}\n </p>\n <small *ngIf=\"appState.currentUser | async | userRolesList as userRoles\" [title]=\"userRoles\" class=\"text-truncate\">{{ userRoles }}</small>\n </div>\n </div>\n </div>\n\n <!-- user menu -->\n <c8y-user-menu-outlet\n [items]=\"(userMenuService.items$ | async)\"\n class=\"c8y-right-drawer__container\"\n ></c8y-user-menu-outlet>\n\n <!-- Version list -->\n <c8y-version-list *ngIf=\"showPlatformInformation\"></c8y-version-list>\n\n<!-- quicklinks > bookmarks -->\n <div *ngIf=\"(appState$ | async).showRightDrawer && quickLinks.length\"\n class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Quick links' | translate }}</span>\n </div>\n\n <ng-container *ngFor=\"let quickLink of quickLinks\">\n <ng-container *ngIf=\"quickLink.component\">\n <ng-container\n *ngComponentOutlet=\"quickLink.component; injector: quickLink.injector\"\n ></ng-container>\n </ng-container>\n <a\n *ngIf=\"!quickLink.component\"\n title=\"{{ quickLink.label | translate }}\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n [href]=\"quickLink.url || '#'\"\n (click)=\"quickLink.click && $event.preventDefault(); quickLink.click && quickLink.click()\"\n c8yProductExperience\n [actionName]=\"'quickLinkRightDrawer:' + quickLink.label\"\n [actionData]=\"\"\n tabindex=\"{{ drawerOpen ? '0' : '-1' }}\"\n >\n <i *ngIf=\"quickLink.icon\" class=\"{{ quickLink.icon }} c8y-icon-duocolor\"></i>\n <img\n *ngIf=\"quickLink.iconSrc\"\n [src]=\"quickLink.iconSrc\"\n style=\"max-width: 20px\"\n class=\"img-responsive\"\n onerror=\"this.style.display = 'none'\"\n />\n <span>{{ quickLink.label | translate }}</span>\n </a>\n </ng-container>\n\n </div>\n\n <div *ngIf=\"(appState$ | async).showRightDrawer && helpAndSupport.length\"\n class=\"separator-top p-t-8 p-b-8\">\n <button type=\"button\" class=\"c8y-right-drawer__link sticky-top\" (click)=\"documentationOpen = !documentationOpen\"\n [attr.aria-expanded]=\"!documentationCol.isCollapsed\" [attr.aria-controls]=\"'collapseDocs'\">\n <i c8yIcon=\"book-shelf\"></i>\n <span class=\"text-bold\">{{ 'Documentation' | translate }}</span>\n <i c8yIcon=\"angle-down\" class=\"m-l-auto\" [ngClass]=\"{'icon-rotate-180': documentationOpen }\"></i>\n </button>\n <div class=\"collapse\" id=\"collapseDocs\" [collapse]=\"!documentationOpen\" [isAnimated]=\"true\" #documentationCol=\"bs-collapse\">\n <ng-container *ngFor=\"let link of helpAndSupport\">\n <ng-container *ngIf=\"link.component\">\n <ng-container *ngComponentOutlet=\"link.component; injector: link.injector\"></ng-container>\n </ng-container>\n <a\n *ngIf=\"!link.component\"\n title=\"{{ link.label | translate }}\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n [href]=\"link.url\"\n c8yProductExperience\n [actionName]=\"'quickLinkRightDrawer:' + link.label\"\n [actionData]=\"\"\n tabindex=\"{{ drawerOpen ? '0' : '-1' }}\"\n >\n <span title=\"{{ link.label | translate }}\" class=\"text-truncate text-12\">\n {{ link.label | translate }}\n </span>\n </a>\n </ng-container>\n </div>\n </div>\n\n <!-- TODO: move legal notices here -->\n <!-- <div class=\"separator-top p-t-8 m-t-auto\">\n <a href=\"#\" class=\"c8y-right-drawer__link\">\n <small>Legal notices</small>\n </a>\n </div> -->\n</aside>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: UserMenuOutletComponent, selector: "c8y-user-menu-outlet", inputs: ["items"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
13481
|
+
RightDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RightDrawerComponent, selector: "c8y-right-drawer", inputs: { _quickLinks: ["quickLinks", "_quickLinks"], _helpAndSupport: ["helpAndSupport", "_helpAndSupport"], app: "app", drawerOpen: "drawerOpen" }, outputs: { closeDrawer: "closeDrawer" }, ngImport: i0, template: "<aside class=\"c8y-right-drawer\" [cdkTrapFocus]=\"drawerOpen\">\n<!-- drawer header -->\n <div class=\"c8y-right-drawer__header separator-bottom\">\n <button type=\"button\" class=\"close\" title=\"{{'Close' | translate}}\" (click)=\"close()\">×</button>\n <div class=\"d-flex a-i-center\">\n <div class=\"user-dot\"> {{appState.currentUser | async | userNameInitials}}</div>\n <div class=\"min-width-0\">\n <p\n *ngIf=\"appState.currentUser | async\"\n class=\"text-truncate text-medium text-16\"\n title=\"{{appState.currentUser | async | shortenUserName}}\"\n >\n {{appState.currentUser | async | shortenUserName}}\n </p>\n <small *ngIf=\"appState.currentUser | async | userRolesList as userRoles\" [title]=\"userRoles\" class=\"text-truncate\">{{ userRoles }}</small>\n </div>\n </div>\n </div>\n\n <!-- user menu -->\n <c8y-user-menu-outlet\n [items]=\"(userMenuService.items$ | async)\"\n class=\"c8y-right-drawer__container\"\n ></c8y-user-menu-outlet>\n\n <!-- Version list -->\n <c8y-version-list *ngIf=\"showPlatformInformation\"></c8y-version-list>\n\n<!-- quicklinks > bookmarks -->\n <div *ngIf=\"(appState$ | async).showRightDrawer && quickLinks.length\"\n class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Quick links' | translate }}</span>\n </div>\n\n <ng-container *ngFor=\"let quickLink of quickLinks\">\n <ng-container *ngIf=\"quickLink.component\">\n <ng-container\n *ngComponentOutlet=\"quickLink.component; injector: quickLink.injector\"\n ></ng-container>\n </ng-container>\n <a\n *ngIf=\"!quickLink.component\"\n title=\"{{ quickLink.label | translate }}\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n [href]=\"quickLink.url || '#'\"\n (click)=\"quickLink.click && $event.preventDefault(); quickLink.click && quickLink.click()\"\n c8yProductExperience\n [actionName]=\"'quickLinkRightDrawer:' + quickLink.label\"\n [actionData]=\"\"\n tabindex=\"{{ drawerOpen ? '0' : '-1' }}\"\n >\n <i *ngIf=\"quickLink.icon\" class=\"{{ quickLink.icon }} c8y-icon-duocolor\"></i>\n <img\n *ngIf=\"quickLink.iconSrc\"\n [src]=\"quickLink.iconSrc\"\n style=\"max-width: 20px\"\n class=\"img-responsive\"\n onerror=\"this.style.display = 'none'\"\n />\n <span>{{ quickLink.label | translate }}</span>\n </a>\n </ng-container>\n\n </div>\n\n <div *ngIf=\"(appState$ | async).showRightDrawer && helpAndSupport.length\"\n class=\"separator-top p-t-8 p-b-8\">\n <button type=\"button\" class=\"c8y-right-drawer__link sticky-top\" (click)=\"documentationOpen = !documentationOpen\"\n [attr.aria-expanded]=\"!documentationCol.isCollapsed\" [attr.aria-controls]=\"'collapseDocs'\">\n <i c8yIcon=\"book-shelf\"></i>\n <span class=\"text-bold\">{{ 'Documentation' | translate }}</span>\n <i c8yIcon=\"angle-down\" class=\"m-l-auto\" [ngClass]=\"{'icon-rotate-180': documentationOpen }\"></i>\n </button>\n <div class=\"collapse\" id=\"collapseDocs\" [collapse]=\"!documentationOpen\" [isAnimated]=\"true\" #documentationCol=\"bs-collapse\">\n <ng-container *ngFor=\"let link of helpAndSupport\">\n <ng-container *ngIf=\"link.component\">\n <ng-container *ngComponentOutlet=\"link.component; injector: link.injector\"></ng-container>\n </ng-container>\n <a\n *ngIf=\"!link.component\"\n title=\"{{ link.label | translate }}\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n [href]=\"link.url\"\n c8yProductExperience\n [actionName]=\"'quickLinkRightDrawer:' + link.label\"\n [actionData]=\"\"\n tabindex=\"{{ drawerOpen ? '0' : '-1' }}\"\n >\n <span title=\"{{ link.label | translate }}\" class=\"text-truncate text-12\">\n {{ link.label | translate }}\n </span>\n </a>\n </ng-container>\n </div>\n </div>\n\n <!-- TODO: move legal notices here -->\n <!-- <div class=\"separator-top p-t-8 m-t-auto\">\n <a href=\"#\" class=\"c8y-right-drawer__link\">\n <small>Legal notices</small>\n </a>\n </div> -->\n</aside>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: UserMenuOutletComponent, selector: "c8y-user-menu-outlet", inputs: ["items"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: VersionListComponent, selector: "c8y-version-list" }, { kind: "directive", type: i1$9.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: ShortenUserNamePipe, name: "shortenUserName" }, { kind: "pipe", type: UserNameInitialsPipe, name: "userNameInitials" }, { kind: "pipe", type: UserRolesListPipe, name: "userRolesList" }] });
|
|
13468
13482
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RightDrawerComponent, decorators: [{
|
|
13469
13483
|
type: Component,
|
|
13470
13484
|
args: [{ selector: 'c8y-right-drawer', template: "<aside class=\"c8y-right-drawer\" [cdkTrapFocus]=\"drawerOpen\">\n<!-- drawer header -->\n <div class=\"c8y-right-drawer__header separator-bottom\">\n <button type=\"button\" class=\"close\" title=\"{{'Close' | translate}}\" (click)=\"close()\">×</button>\n <div class=\"d-flex a-i-center\">\n <div class=\"user-dot\"> {{appState.currentUser | async | userNameInitials}}</div>\n <div class=\"min-width-0\">\n <p\n *ngIf=\"appState.currentUser | async\"\n class=\"text-truncate text-medium text-16\"\n title=\"{{appState.currentUser | async | shortenUserName}}\"\n >\n {{appState.currentUser | async | shortenUserName}}\n </p>\n <small *ngIf=\"appState.currentUser | async | userRolesList as userRoles\" [title]=\"userRoles\" class=\"text-truncate\">{{ userRoles }}</small>\n </div>\n </div>\n </div>\n\n <!-- user menu -->\n <c8y-user-menu-outlet\n [items]=\"(userMenuService.items$ | async)\"\n class=\"c8y-right-drawer__container\"\n ></c8y-user-menu-outlet>\n\n <!-- Version list -->\n <c8y-version-list *ngIf=\"showPlatformInformation\"></c8y-version-list>\n\n<!-- quicklinks > bookmarks -->\n <div *ngIf=\"(appState$ | async).showRightDrawer && quickLinks.length\"\n class=\"separator-top p-t-8 p-b-8\">\n <div class=\"c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Quick links' | translate }}</span>\n </div>\n\n <ng-container *ngFor=\"let quickLink of quickLinks\">\n <ng-container *ngIf=\"quickLink.component\">\n <ng-container\n *ngComponentOutlet=\"quickLink.component; injector: quickLink.injector\"\n ></ng-container>\n </ng-container>\n <a\n *ngIf=\"!quickLink.component\"\n title=\"{{ quickLink.label | translate }}\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n [href]=\"quickLink.url || '#'\"\n (click)=\"quickLink.click && $event.preventDefault(); quickLink.click && quickLink.click()\"\n c8yProductExperience\n [actionName]=\"'quickLinkRightDrawer:' + quickLink.label\"\n [actionData]=\"\"\n tabindex=\"{{ drawerOpen ? '0' : '-1' }}\"\n >\n <i *ngIf=\"quickLink.icon\" class=\"{{ quickLink.icon }} c8y-icon-duocolor\"></i>\n <img\n *ngIf=\"quickLink.iconSrc\"\n [src]=\"quickLink.iconSrc\"\n style=\"max-width: 20px\"\n class=\"img-responsive\"\n onerror=\"this.style.display = 'none'\"\n />\n <span>{{ quickLink.label | translate }}</span>\n </a>\n </ng-container>\n\n </div>\n\n <div *ngIf=\"(appState$ | async).showRightDrawer && helpAndSupport.length\"\n class=\"separator-top p-t-8 p-b-8\">\n <button type=\"button\" class=\"c8y-right-drawer__link sticky-top\" (click)=\"documentationOpen = !documentationOpen\"\n [attr.aria-expanded]=\"!documentationCol.isCollapsed\" [attr.aria-controls]=\"'collapseDocs'\">\n <i c8yIcon=\"book-shelf\"></i>\n <span class=\"text-bold\">{{ 'Documentation' | translate }}</span>\n <i c8yIcon=\"angle-down\" class=\"m-l-auto\" [ngClass]=\"{'icon-rotate-180': documentationOpen }\"></i>\n </button>\n <div class=\"collapse\" id=\"collapseDocs\" [collapse]=\"!documentationOpen\" [isAnimated]=\"true\" #documentationCol=\"bs-collapse\">\n <ng-container *ngFor=\"let link of helpAndSupport\">\n <ng-container *ngIf=\"link.component\">\n <ng-container *ngComponentOutlet=\"link.component; injector: link.injector\"></ng-container>\n </ng-container>\n <a\n *ngIf=\"!link.component\"\n title=\"{{ link.label | translate }}\"\n type=\"button\"\n class=\"c8y-right-drawer__link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n [href]=\"link.url\"\n c8yProductExperience\n [actionName]=\"'quickLinkRightDrawer:' + link.label\"\n [actionData]=\"\"\n tabindex=\"{{ drawerOpen ? '0' : '-1' }}\"\n >\n <span title=\"{{ link.label | translate }}\" class=\"text-truncate text-12\">\n {{ link.label | translate }}\n </span>\n </a>\n </ng-container>\n </div>\n </div>\n\n <!-- TODO: move legal notices here -->\n <!-- <div class=\"separator-top p-t-8 m-t-auto\">\n <a href=\"#\" class=\"c8y-right-drawer__link\">\n <small>Legal notices</small>\n </a>\n </div> -->\n</aside>\n" }]
|
|
@@ -13512,7 +13526,7 @@ class HeaderBarComponent {
|
|
|
13512
13526
|
}
|
|
13513
13527
|
}
|
|
13514
13528
|
HeaderBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HeaderBarComponent, deps: [{ token: HeaderService }, { token: ActionService }, { token: BreadcrumbService }, { token: SearchService }, { token: AppStateService }, { token: UserMenuService }, { token: DocsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13515
|
-
HeaderBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: HeaderBarComponent, selector: "c8y-header-bar", inputs: { simple: "simple" }, ngImport: i0, template: "<div\n class=\"app-main-header\"\n role=\"banner\"\n [ngClass]=\"{\n open: (headerService.navigatorOpen$ | async) && !simple,\n drawerOpen: drawerOpen\n }\"\n>\n <div class=\"header-bar\">\n <button\n *ngIf=\"(canToggle$ | async) && !simple\"\n type=\"button\"\n class=\"navigator-toggle main-header-button\"\n title=\"{{ 'Toggle navigation bar' | translate }}\"\n (click)=\"headerService.toggleNavigator()\"\n [attr.aria-expanded]=\"(headerService.navigatorOpen$ | async)\"\n [attr.aria-controls]=\"'navigator'\"\n >\n <i [c8yIcon]=\"'outdent'\" *ngIf=\"!(headerService.navigatorOpen$ | async)\"></i>\n <i [c8yIcon]=\"'dedent-right'\" *ngIf=\"headerService.navigatorOpen$ | async\"></i>\n </button>\n <div class=\"app-view\">\n <c8y-app-icon\n [name]=\"(appState$ | async).app.name\"\n [contextPath]=\"(appState$ | async).app.contextPath\"\n ></c8y-app-icon>\n\n <span class=\"page-header\">\n <c8y-title-outlet></c8y-title-outlet>\n <c8y-breadcrumb-outlet\n *ngIf=\"!simple\"\n [breadcrumbs]=\"breadcrumbService.items$ | async\"\n class=\"app-breadcrumbs\"\n ></c8y-breadcrumb-outlet>\n </span>\n </div>\n <c8y-search-outlet\n *ngIf=\"!simple\"\n title=\"{{ 'Search' | translate }}\"\n [search]=\"searchService.items$ | async\"\n class=\"main-header-item\"\n ></c8y-search-outlet>\n <c8y-action-outlet\n *ngIf=\"!simple\"\n [items]=\"actionService.items$ | async\"\n ></c8y-action-outlet>\n <c8y-app-switcher\n *ngIf=\"appState.currentUser.value\"\n title=\"{{ 'Application switcher' | translate }}\"\n class=\"main-header-item\"\n ></c8y-app-switcher>\n\n <button\n class=\"main-header-button drawer-toggle\"\n type=\"button\"\n tooltip=\"{{ appState.currentUser | async | shortenUserName }}\"\n [delay]=\"500\"\n position=\"left\"\n (click)=\"toggleDrawer()\"\n [attr.aria-expanded]=\"drawerOpen\"\n [attr.aria-controls]=\"'right-drawer'\"\n [attr.data-cy]=\"'right-drawer-toggle-button'\"\n >\n <span\n *ngIf=\"appState.currentUser | async\"\n class=\"user-dot\"\n title=\"{{appState.currentUser | async | shortenUserName}}\"\n >\n {{appState.currentUser | async | userNameInitials}}\n </span>\n <span class=\"close-dot\">×</span>\n </button>\n </div>\n <div class=\"head-toggler\">\n <button title=\"{{ 'Toggle' | translate }}\" type=\"button\" (click)=\"headerService.toggle()\">\n <i [c8yIcon]=\"'angle-right'\"></i>\n </button>\n </div>\n <c8y-right-drawer\n [app]=\"(appState$ | async).app\"\n [quickLinks]=\"docs.items$ | async\"\n [helpAndSupport]=\"docs.items$ | async\"\n [attr.aria-hidden]=\"!drawerOpen\"\n [drawerOpen]=\"drawerOpen\"\n (closeDrawer)=\"closeDrawer()\"\n id=\"right-drawer\"\n ></c8y-right-drawer>\n <div class=\"loading-bar\" [ngClass]=\"{ active: (appState$ | async).isLoading }\"></div>\n</div>\n", dependencies: [{ kind: "component", type: SearchOutletComponent, selector: "c8y-search-outlet", inputs: ["search"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
13529
|
+
HeaderBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: HeaderBarComponent, selector: "c8y-header-bar", inputs: { simple: "simple" }, ngImport: i0, template: "<div\n class=\"app-main-header\"\n role=\"banner\"\n [ngClass]=\"{\n open: (headerService.navigatorOpen$ | async) && !simple,\n drawerOpen: drawerOpen\n }\"\n>\n <div class=\"header-bar\">\n <button\n *ngIf=\"(canToggle$ | async) && !simple\"\n type=\"button\"\n class=\"navigator-toggle main-header-button\"\n title=\"{{ 'Toggle navigation bar' | translate }}\"\n (click)=\"headerService.toggleNavigator()\"\n [attr.aria-expanded]=\"(headerService.navigatorOpen$ | async)\"\n [attr.aria-controls]=\"'navigator'\"\n >\n <i [c8yIcon]=\"'outdent'\" *ngIf=\"!(headerService.navigatorOpen$ | async)\"></i>\n <i [c8yIcon]=\"'dedent-right'\" *ngIf=\"headerService.navigatorOpen$ | async\"></i>\n </button>\n <div class=\"app-view\">\n <c8y-app-icon\n [name]=\"(appState$ | async).app.name\"\n [contextPath]=\"(appState$ | async).app.contextPath\"\n ></c8y-app-icon>\n\n <span class=\"page-header\">\n <c8y-title-outlet></c8y-title-outlet>\n <c8y-breadcrumb-outlet\n *ngIf=\"!simple\"\n [breadcrumbs]=\"breadcrumbService.items$ | async\"\n class=\"app-breadcrumbs\"\n ></c8y-breadcrumb-outlet>\n </span>\n </div>\n <c8y-search-outlet\n *ngIf=\"!simple\"\n title=\"{{ 'Search' | translate }}\"\n [search]=\"searchService.items$ | async\"\n class=\"main-header-item\"\n ></c8y-search-outlet>\n <c8y-action-outlet\n *ngIf=\"!simple\"\n [items]=\"actionService.items$ | async\"\n ></c8y-action-outlet>\n <c8y-app-switcher\n *ngIf=\"appState.currentUser.value\"\n title=\"{{ 'Application switcher' | translate }}\"\n class=\"main-header-item\"\n ></c8y-app-switcher>\n\n <button\n class=\"main-header-button drawer-toggle\"\n type=\"button\"\n tooltip=\"{{ appState.currentUser | async | shortenUserName }}\"\n [delay]=\"500\"\n position=\"left\"\n (click)=\"toggleDrawer()\"\n [attr.aria-expanded]=\"drawerOpen\"\n [attr.aria-controls]=\"'right-drawer'\"\n [attr.data-cy]=\"'right-drawer-toggle-button'\"\n >\n <span\n *ngIf=\"appState.currentUser | async\"\n class=\"user-dot\"\n title=\"{{appState.currentUser | async | shortenUserName}}\"\n >\n {{appState.currentUser | async | userNameInitials}}\n </span>\n <span class=\"close-dot\">×</span>\n </button>\n </div>\n <div class=\"head-toggler\">\n <button title=\"{{ 'Toggle' | translate }}\" type=\"button\" (click)=\"headerService.toggle()\">\n <i [c8yIcon]=\"'angle-right'\"></i>\n </button>\n </div>\n <c8y-right-drawer\n [app]=\"(appState$ | async).app\"\n [quickLinks]=\"docs.items$ | async\"\n [helpAndSupport]=\"docs.items$ | async\"\n [attr.aria-hidden]=\"!drawerOpen\"\n [drawerOpen]=\"drawerOpen\"\n (closeDrawer)=\"closeDrawer()\"\n id=\"right-drawer\"\n ></c8y-right-drawer>\n <div class=\"loading-bar\" [ngClass]=\"{ active: (appState$ | async).isLoading }\"></div>\n</div>\n", dependencies: [{ kind: "component", type: SearchOutletComponent, selector: "c8y-search-outlet", inputs: ["search"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ActionOutletComponent, selector: "c8y-action-outlet", inputs: ["items"] }, { kind: "component", type: BreadcrumbOutletComponent, selector: "c8y-breadcrumb-outlet", inputs: ["breadcrumbs"] }, { kind: "directive", type: i1$7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: TitleOutletComponent, selector: "c8y-title-outlet" }, { kind: "component", type: AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "component", type: AppSwitcherComponent, selector: "c8y-app-switcher" }, { kind: "component", type: RightDrawerComponent, selector: "c8y-right-drawer", inputs: ["quickLinks", "helpAndSupport", "app", "drawerOpen"], outputs: ["closeDrawer"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: ShortenUserNamePipe, name: "shortenUserName" }, { kind: "pipe", type: UserNameInitialsPipe, name: "userNameInitials" }] });
|
|
13516
13530
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HeaderBarComponent, decorators: [{
|
|
13517
13531
|
type: Component,
|
|
13518
13532
|
args: [{ selector: 'c8y-header-bar', template: "<div\n class=\"app-main-header\"\n role=\"banner\"\n [ngClass]=\"{\n open: (headerService.navigatorOpen$ | async) && !simple,\n drawerOpen: drawerOpen\n }\"\n>\n <div class=\"header-bar\">\n <button\n *ngIf=\"(canToggle$ | async) && !simple\"\n type=\"button\"\n class=\"navigator-toggle main-header-button\"\n title=\"{{ 'Toggle navigation bar' | translate }}\"\n (click)=\"headerService.toggleNavigator()\"\n [attr.aria-expanded]=\"(headerService.navigatorOpen$ | async)\"\n [attr.aria-controls]=\"'navigator'\"\n >\n <i [c8yIcon]=\"'outdent'\" *ngIf=\"!(headerService.navigatorOpen$ | async)\"></i>\n <i [c8yIcon]=\"'dedent-right'\" *ngIf=\"headerService.navigatorOpen$ | async\"></i>\n </button>\n <div class=\"app-view\">\n <c8y-app-icon\n [name]=\"(appState$ | async).app.name\"\n [contextPath]=\"(appState$ | async).app.contextPath\"\n ></c8y-app-icon>\n\n <span class=\"page-header\">\n <c8y-title-outlet></c8y-title-outlet>\n <c8y-breadcrumb-outlet\n *ngIf=\"!simple\"\n [breadcrumbs]=\"breadcrumbService.items$ | async\"\n class=\"app-breadcrumbs\"\n ></c8y-breadcrumb-outlet>\n </span>\n </div>\n <c8y-search-outlet\n *ngIf=\"!simple\"\n title=\"{{ 'Search' | translate }}\"\n [search]=\"searchService.items$ | async\"\n class=\"main-header-item\"\n ></c8y-search-outlet>\n <c8y-action-outlet\n *ngIf=\"!simple\"\n [items]=\"actionService.items$ | async\"\n ></c8y-action-outlet>\n <c8y-app-switcher\n *ngIf=\"appState.currentUser.value\"\n title=\"{{ 'Application switcher' | translate }}\"\n class=\"main-header-item\"\n ></c8y-app-switcher>\n\n <button\n class=\"main-header-button drawer-toggle\"\n type=\"button\"\n tooltip=\"{{ appState.currentUser | async | shortenUserName }}\"\n [delay]=\"500\"\n position=\"left\"\n (click)=\"toggleDrawer()\"\n [attr.aria-expanded]=\"drawerOpen\"\n [attr.aria-controls]=\"'right-drawer'\"\n [attr.data-cy]=\"'right-drawer-toggle-button'\"\n >\n <span\n *ngIf=\"appState.currentUser | async\"\n class=\"user-dot\"\n title=\"{{appState.currentUser | async | shortenUserName}}\"\n >\n {{appState.currentUser | async | userNameInitials}}\n </span>\n <span class=\"close-dot\">×</span>\n </button>\n </div>\n <div class=\"head-toggler\">\n <button title=\"{{ 'Toggle' | translate }}\" type=\"button\" (click)=\"headerService.toggle()\">\n <i [c8yIcon]=\"'angle-right'\"></i>\n </button>\n </div>\n <c8y-right-drawer\n [app]=\"(appState$ | async).app\"\n [quickLinks]=\"docs.items$ | async\"\n [helpAndSupport]=\"docs.items$ | async\"\n [attr.aria-hidden]=\"!drawerOpen\"\n [drawerOpen]=\"drawerOpen\"\n (closeDrawer)=\"closeDrawer()\"\n id=\"right-drawer\"\n ></c8y-right-drawer>\n <div class=\"loading-bar\" [ngClass]=\"{ active: (appState$ | async).isLoading }\"></div>\n</div>\n" }]
|
|
@@ -13708,7 +13722,7 @@ class SmsChallengeComponent {
|
|
|
13708
13722
|
}
|
|
13709
13723
|
}
|
|
13710
13724
|
SmsChallengeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SmsChallengeComponent, deps: [{ token: LoginService }, { token: i1$2.UserService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13711
|
-
SmsChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SmsChallengeComponent, selector: "c8y-sms-challenge", inputs: { credentials: "credentials" }, outputs: { onCancel: "onCancel" }, ngImport: i0, template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group>\n <label translate>Verification code</label>\n <input\n [(ngModel)]=\"model.smsToken\"\n #sms_token=\"ngModel\"\n type=\"text\"\n name=\"sms_token\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n <p *ngIf=\"!twoFactorForm.form.valid || isLoading\" class=\"help-block\" translate>\n Insert the code received via SMS.\n </p>\n </c8y-form-group>\n\n <button\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!twoFactorForm.form.valid || isLoading\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"btn btn-link btn-sm\"\n (click)=\"resendTFASms()\"\n >\n {{ 'Send new code' | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ 'Log in' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Log in' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
13725
|
+
SmsChallengeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SmsChallengeComponent, selector: "c8y-sms-challenge", inputs: { credentials: "credentials" }, outputs: { onCancel: "onCancel" }, ngImport: i0, template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group>\n <label translate>Verification code</label>\n <input\n [(ngModel)]=\"model.smsToken\"\n #sms_token=\"ngModel\"\n type=\"text\"\n name=\"sms_token\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n <p *ngIf=\"!twoFactorForm.form.valid || isLoading\" class=\"help-block\" translate>\n Insert the code received via SMS.\n </p>\n </c8y-form-group>\n\n <button\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!twoFactorForm.form.valid || isLoading\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"btn btn-link btn-sm\"\n (click)=\"resendTFASms()\"\n >\n {{ 'Send new code' | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ 'Log in' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Log in' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
13712
13726
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SmsChallengeComponent, decorators: [{
|
|
13713
13727
|
type: Component,
|
|
13714
13728
|
args: [{ selector: 'c8y-sms-challenge', template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group>\n <label translate>Verification code</label>\n <input\n [(ngModel)]=\"model.smsToken\"\n #sms_token=\"ngModel\"\n type=\"text\"\n name=\"sms_token\"\n autofocus\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 624327\"\n required\n />\n <p *ngIf=\"!twoFactorForm.form.valid || isLoading\" class=\"help-block\" translate>\n Insert the code received via SMS.\n </p>\n </c8y-form-group>\n\n <button\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!twoFactorForm.form.valid || isLoading\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"btn btn-link btn-sm\"\n (click)=\"resendTFASms()\"\n >\n {{ 'Send new code' | translate }}\n </button>\n <button\n type=\"button\"\n title=\"{{ 'Log in' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Log in' | translate }}\n </button>\n </div>\n</form>\n" }]
|
|
@@ -13761,7 +13775,7 @@ class ProvidePhoneNumberComponent {
|
|
|
13761
13775
|
}
|
|
13762
13776
|
}
|
|
13763
13777
|
ProvidePhoneNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProvidePhoneNumberComponent, deps: [{ token: LoginService }, { token: AlertService }, { token: i1$2.UserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13764
|
-
ProvidePhoneNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ProvidePhoneNumberComponent, selector: "c8y-provide-phone-number", inputs: { credentials: "credentials" }, outputs: { onCancel: "onCancel", onChangeView: "onChangeView" }, ngImport: i0, template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"save()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group [ngClass]=\"requestInProgress || twoFactorForm.invalid ? 'p-b-8' : ''\">\n <label translate>Provide your phone number</label>\n\n <input\n class=\"form-control\"\n [(ngModel)]=\"phoneNumber\"\n #contactPhone=\"ngModel\"\n type=\"text\"\n name=\"phone\"\n autocomplete=\"off\"\n placeholder=\"{{ 'e.g. +49 9 876 543 210`LOCALIZE`' | translate }}\"\n c8yPhoneValidation\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Save and continue' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n [disabled]=\"requestInProgress || twoFactorForm.invalid\"\n >\n {{ 'Save and continue' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"small pointer m-l-auto\"\n href=\"#\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Login' | translate }}\n </a>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: PhoneValidationDirective, selector: "[c8yPhoneValidation]" }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
13778
|
+
ProvidePhoneNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ProvidePhoneNumberComponent, selector: "c8y-provide-phone-number", inputs: { credentials: "credentials" }, outputs: { onCancel: "onCancel", onChangeView: "onChangeView" }, ngImport: i0, template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"save()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group [ngClass]=\"requestInProgress || twoFactorForm.invalid ? 'p-b-8' : ''\">\n <label translate>Provide your phone number</label>\n\n <input\n class=\"form-control\"\n [(ngModel)]=\"phoneNumber\"\n #contactPhone=\"ngModel\"\n type=\"text\"\n name=\"phone\"\n autocomplete=\"off\"\n placeholder=\"{{ 'e.g. +49 9 876 543 210`LOCALIZE`' | translate }}\"\n c8yPhoneValidation\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Save and continue' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n [disabled]=\"requestInProgress || twoFactorForm.invalid\"\n >\n {{ 'Save and continue' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"small pointer m-l-auto\"\n href=\"#\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Login' | translate }}\n </a>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: PhoneValidationDirective, selector: "[c8yPhoneValidation]" }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
13765
13779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProvidePhoneNumberComponent, decorators: [{
|
|
13766
13780
|
type: Component,
|
|
13767
13781
|
args: [{ selector: 'c8y-provide-phone-number', template: "<form #twoFactorForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"save()\" novalidate>\n <div class=\"legend form-block center\" translate>Two-factor authentication</div>\n\n <c8y-form-group [ngClass]=\"requestInProgress || twoFactorForm.invalid ? 'p-b-8' : ''\">\n <label translate>Provide your phone number</label>\n\n <input\n class=\"form-control\"\n [(ngModel)]=\"phoneNumber\"\n #contactPhone=\"ngModel\"\n type=\"text\"\n name=\"phone\"\n autocomplete=\"off\"\n placeholder=\"{{ 'e.g. +49 9 876 543 210`LOCALIZE`' | translate }}\"\n c8yPhoneValidation\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Save and continue' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n [disabled]=\"requestInProgress || twoFactorForm.invalid\"\n >\n {{ 'Save and continue' | translate }}\n </button>\n\n <div class=\"d-flex m-t-8\">\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"small pointer m-l-auto\"\n href=\"#\"\n (click)=\"onCancel.emit()\"\n >\n {{ 'Login' | translate }}\n </a>\n </div>\n</form>\n" }]
|
|
@@ -13803,7 +13817,7 @@ class RecoverPasswordComponent {
|
|
|
13803
13817
|
}
|
|
13804
13818
|
}
|
|
13805
13819
|
RecoverPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RecoverPasswordComponent, deps: [{ token: i1$2.UserService }, { token: LoginService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13806
|
-
RecoverPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RecoverPasswordComponent, selector: "c8y-recover-password", outputs: { onChangeView: "onChangeView" }, ngImport: i0, template: "<form #resetForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"resetPassword()\" novalidate>\n <div class=\"legend form-block center\" translate>Forgot password?</div>\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Reset password' | translate }}\"\n [disabled]=\"!resetForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Reset password' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.Credentials })\"\n >\n {{ 'Login' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
13820
|
+
RecoverPasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RecoverPasswordComponent, selector: "c8y-recover-password", outputs: { onChangeView: "onChangeView" }, ngImport: i0, template: "<form #resetForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"resetPassword()\" novalidate>\n <div class=\"legend form-block center\" translate>Forgot password?</div>\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Reset password' | translate }}\"\n [disabled]=\"!resetForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Reset password' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.Credentials })\"\n >\n {{ 'Login' | translate }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
13807
13821
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RecoverPasswordComponent, decorators: [{
|
|
13808
13822
|
type: Component,
|
|
13809
13823
|
args: [{ selector: 'c8y-recover-password', template: "<form #resetForm=\"ngForm\" class=\"loginForm\" (ngSubmit)=\"resetPassword()\" novalidate>\n <div class=\"legend form-block center\" translate>Forgot password?</div>\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Reset password' | translate }}\"\n [disabled]=\"!resetForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Reset password' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <button\n type=\"button\"\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.Credentials })\"\n >\n {{ 'Login' | translate }}\n </button>\n </div>\n</form>\n" }]
|
|
@@ -13916,7 +13930,7 @@ class PopoverConfirmComponent {
|
|
|
13916
13930
|
}
|
|
13917
13931
|
}
|
|
13918
13932
|
PopoverConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
13919
|
-
PopoverConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PopoverConfirmComponent, selector: "c8y-popover-confirm", inputs: { buttons: "buttons", message: "message", title: "title", isOpen: "isOpen", containerClass: "containerClass", placement: "placement", outsideClick: "outsideClick" }, viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverDirective, descendants: true }], ngImport: i0, template: "<span\n [popover]=\"popover\"\n container=\"body\"\n [isOpen]=\"isOpen\"\n [popoverTitle]=\"title | translate\"\n [placement]=\"placement\"\n [containerClass]=\"containerClass\"\n [outsideClick]=\"outsideClick\"\n (onHidden)=\"handleOutsideClick()\"\n></span>\n<ng-template #popover>\n <p class=\"m-b-8\">\n {{ message | translate }}\n </p>\n <div class=\"popover-footer\">\n <ng-container *ngFor=\"let button of buttons\">\n <button\n title=\"{{ button.label | translate }}\"\n [attr.data-cy]=\"'popover-confirm--' + (button.label | translate)\"\n class=\"btn btn-sm m-r-16\"\n [ngClass]=\"buttonStatus(button.status)\"\n (click)=\"click(button.action)\"\n >\n {{ button.label | translate }}\n </button>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
13933
|
+
PopoverConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PopoverConfirmComponent, selector: "c8y-popover-confirm", inputs: { buttons: "buttons", message: "message", title: "title", isOpen: "isOpen", containerClass: "containerClass", placement: "placement", outsideClick: "outsideClick" }, viewQueries: [{ propertyName: "popover", first: true, predicate: PopoverDirective, descendants: true }], ngImport: i0, template: "<span\n [popover]=\"popover\"\n container=\"body\"\n [isOpen]=\"isOpen\"\n [popoverTitle]=\"title | translate\"\n [placement]=\"placement\"\n [containerClass]=\"containerClass\"\n [outsideClick]=\"outsideClick\"\n (onHidden)=\"handleOutsideClick()\"\n></span>\n<ng-template #popover>\n <p class=\"m-b-8\">\n {{ message | translate }}\n </p>\n <div class=\"popover-footer\">\n <ng-container *ngFor=\"let button of buttons\">\n <button\n title=\"{{ button.label | translate }}\"\n [attr.data-cy]=\"'popover-confirm--' + (button.label | translate)\"\n class=\"btn btn-sm m-r-16\"\n [ngClass]=\"buttonStatus(button.status)\"\n (click)=\"click(button.action)\"\n >\n {{ button.label | translate }}\n </button>\n </ng-container>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
13920
13934
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverConfirmComponent, decorators: [{
|
|
13921
13935
|
type: Component,
|
|
13922
13936
|
args: [{ selector: 'c8y-popover-confirm', template: "<span\n [popover]=\"popover\"\n container=\"body\"\n [isOpen]=\"isOpen\"\n [popoverTitle]=\"title | translate\"\n [placement]=\"placement\"\n [containerClass]=\"containerClass\"\n [outsideClick]=\"outsideClick\"\n (onHidden)=\"handleOutsideClick()\"\n></span>\n<ng-template #popover>\n <p class=\"m-b-8\">\n {{ message | translate }}\n </p>\n <div class=\"popover-footer\">\n <ng-container *ngFor=\"let button of buttons\">\n <button\n title=\"{{ button.label | translate }}\"\n [attr.data-cy]=\"'popover-confirm--' + (button.label | translate)\"\n class=\"btn btn-sm m-r-16\"\n [ngClass]=\"buttonStatus(button.status)\"\n (click)=\"click(button.action)\"\n >\n {{ button.label | translate }}\n </button>\n </ng-container>\n </div>\n</ng-template>\n" }]
|
|
@@ -13948,7 +13962,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
13948
13962
|
class ModalModule {
|
|
13949
13963
|
}
|
|
13950
13964
|
ModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13951
|
-
ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, declarations: [ConfirmModalComponent, ModalComponent, PopoverConfirmComponent], imports: [i1$
|
|
13965
|
+
ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, declarations: [ConfirmModalComponent, ModalComponent, PopoverConfirmComponent], imports: [i1$8.ModalModule, CommonModule, i2$2.PopoverModule], exports: [ConfirmModalComponent, ModalComponent, PopoverConfirmComponent] });
|
|
13952
13966
|
ModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, providers: [ModalService], imports: [ModalModule$1.forRoot(), CommonModule, PopoverModule.forRoot()] });
|
|
13953
13967
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, decorators: [{
|
|
13954
13968
|
type: NgModule,
|
|
@@ -14072,7 +14086,7 @@ class InputGroupListComponent {
|
|
|
14072
14086
|
}
|
|
14073
14087
|
}
|
|
14074
14088
|
InputGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: InputGroupListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14075
|
-
InputGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: InputGroupListComponent, selector: "c8y-input-group-list", inputs: { plus: "plus", minus: "minus", index: "index" }, outputs: { onRemove: "onRemove", onAdd: "onAdd" }, ngImport: i0, template: "<ng-container>\n <div class=\"input-group\">\n <ng-content></ng-content>\n <div class=\"input-group-btn\">\n <button\n *ngIf=\"minus\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger text-primary\"\n (click)=\"remove()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n *ngIf=\"plus\"\n title=\"{{ 'Add' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot text-primary\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
14089
|
+
InputGroupListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: InputGroupListComponent, selector: "c8y-input-group-list", inputs: { plus: "plus", minus: "minus", index: "index" }, outputs: { onRemove: "onRemove", onAdd: "onAdd" }, ngImport: i0, template: "<ng-container>\n <div class=\"input-group\">\n <ng-content></ng-content>\n <div class=\"input-group-btn\">\n <button\n *ngIf=\"minus\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger text-primary\"\n (click)=\"remove()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n *ngIf=\"plus\"\n title=\"{{ 'Add' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot text-primary\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
14076
14090
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: InputGroupListComponent, decorators: [{
|
|
14077
14091
|
type: Component,
|
|
14078
14092
|
args: [{ selector: 'c8y-input-group-list', template: "<ng-container>\n <div class=\"input-group\">\n <ng-content></ng-content>\n <div class=\"input-group-btn\">\n <button\n *ngIf=\"minus\"\n title=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger text-primary\"\n (click)=\"remove()\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n *ngIf=\"plus\"\n title=\"{{ 'Add' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot text-primary\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n</ng-container>\n" }]
|
|
@@ -14178,7 +14192,7 @@ class IpRangeInputListComponent {
|
|
|
14178
14192
|
}
|
|
14179
14193
|
}
|
|
14180
14194
|
IpRangeInputListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: IpRangeInputListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14181
|
-
IpRangeInputListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: IpRangeInputListComponent, selector: "c8y-ip-range-input-list", inputs: { data: "data" }, ngImport: i0, template: "<c8y-form-group class=\"m-t-8 m-b-8\">\n <ul c8yInputGroupListContainer class=\"list-unstyled\">\n <li class=\"m-b-8\" *ngFor=\"let item of data; let i = index\">\n <c8y-input-group-list [index]=\"i\" (onAdd)=\"add()\" (onRemove)=\"remove($event)\">\n <input\n type=\"text\"\n name=\"ipAddress\"\n class=\"form-control m-r-4\"\n placeholder=\"{{ 'IP range start, e.g.' | translate }} 192.168.0.1\"\n style=\"flex-grow: 2\"\n [(ngModel)]=\"item.ip\"\n [required]=\"true\"\n #ipAddress\n />\n <input\n type=\"number\"\n name=\"cidr\"\n [min]=\"0\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 20\"\n [(ngModel)]=\"item.cidr\"\n [required]=\"true\"\n #cidr\n />\n </c8y-input-group-list>\n </li>\n </ul>\n</c8y-form-group>\n", dependencies: [{ kind: "directive", type:
|
|
14195
|
+
IpRangeInputListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: IpRangeInputListComponent, selector: "c8y-ip-range-input-list", inputs: { data: "data" }, ngImport: i0, template: "<c8y-form-group class=\"m-t-8 m-b-8\">\n <ul c8yInputGroupListContainer class=\"list-unstyled\">\n <li class=\"m-b-8\" *ngFor=\"let item of data; let i = index\">\n <c8y-input-group-list [index]=\"i\" (onAdd)=\"add()\" (onRemove)=\"remove($event)\">\n <input\n type=\"text\"\n name=\"ipAddress\"\n class=\"form-control m-r-4\"\n placeholder=\"{{ 'IP range start, e.g.' | translate }} 192.168.0.1\"\n style=\"flex-grow: 2\"\n [(ngModel)]=\"item.ip\"\n [required]=\"true\"\n #ipAddress\n />\n <input\n type=\"number\"\n name=\"cidr\"\n [min]=\"0\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 20\"\n [(ngModel)]=\"item.cidr\"\n [required]=\"true\"\n #cidr\n />\n </c8y-input-group-list>\n </li>\n </ul>\n</c8y-form-group>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.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: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MinValidationDirective, selector: "[min]", inputs: ["min"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "component", type: InputGroupListComponent, selector: "c8y-input-group-list", inputs: ["plus", "minus", "index"], outputs: ["onRemove", "onAdd"] }, { kind: "directive", type: InputGroupListContainerDirective, selector: "[c8yInputGroupListContainer]" }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
14182
14196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: IpRangeInputListComponent, decorators: [{
|
|
14183
14197
|
type: Component,
|
|
14184
14198
|
args: [{ selector: 'c8y-ip-range-input-list', template: "<c8y-form-group class=\"m-t-8 m-b-8\">\n <ul c8yInputGroupListContainer class=\"list-unstyled\">\n <li class=\"m-b-8\" *ngFor=\"let item of data; let i = index\">\n <c8y-input-group-list [index]=\"i\" (onAdd)=\"add()\" (onRemove)=\"remove($event)\">\n <input\n type=\"text\"\n name=\"ipAddress\"\n class=\"form-control m-r-4\"\n placeholder=\"{{ 'IP range start, e.g.' | translate }} 192.168.0.1\"\n style=\"flex-grow: 2\"\n [(ngModel)]=\"item.ip\"\n [required]=\"true\"\n #ipAddress\n />\n <input\n type=\"number\"\n name=\"cidr\"\n [min]=\"0\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g.' | translate }} 20\"\n [(ngModel)]=\"item.cidr\"\n [required]=\"true\"\n #cidr\n />\n </c8y-input-group-list>\n </li>\n </ul>\n</c8y-form-group>\n" }]
|
|
@@ -14306,7 +14320,7 @@ class RangeComponent {
|
|
|
14306
14320
|
}
|
|
14307
14321
|
}
|
|
14308
14322
|
RangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14309
|
-
RangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeComponent, selector: "c8y-range", queries: [{ propertyName: "range", first: true, predicate: RangeDirective, descendants: true, static: true }, { propertyName: "rangeValue", first: true, predicate: ["c8yRangeValue"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"range-wrap\" style=\"--track-width: {{left}}\">\n <div class=\"range-value\" [style.left]=\"left\">\n <span *ngIf=\"!rangeValue\">{{ value }}</span>\n <ng-container *ngTemplateOutlet=\"rangeValue\"></ng-container>\n </div>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
14323
|
+
RangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeComponent, selector: "c8y-range", queries: [{ propertyName: "range", first: true, predicate: RangeDirective, descendants: true, static: true }, { propertyName: "rangeValue", first: true, predicate: ["c8yRangeValue"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"range-wrap\" style=\"--track-width: {{left}}\">\n <div class=\"range-value\" [style.left]=\"left\">\n <span *ngIf=\"!rangeValue\">{{ value }}</span>\n <ng-container *ngTemplateOutlet=\"rangeValue\"></ng-container>\n </div>\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
|
|
14310
14324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeComponent, decorators: [{
|
|
14311
14325
|
type: Component,
|
|
14312
14326
|
args: [{ selector: 'c8y-range', template: "<div class=\"range-wrap\" style=\"--track-width: {{left}}\">\n <div class=\"range-value\" [style.left]=\"left\">\n <span *ngIf=\"!rangeValue\">{{ value }}</span>\n <ng-container *ngTemplateOutlet=\"rangeValue\"></ng-container>\n </div>\n <ng-content></ng-content>\n</div>\n" }]
|
|
@@ -14706,7 +14720,7 @@ class ChangePasswordComponent {
|
|
|
14706
14720
|
}
|
|
14707
14721
|
}
|
|
14708
14722
|
ChangePasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ChangePasswordComponent, deps: [{ token: LoginService }, { token: i1$2.UserService }, { token: PasswordService }, { token: OptionsService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14709
|
-
ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ChangePasswordComponent, selector: "c8y-change-password", inputs: { credentials: "credentials" }, outputs: { onChangeView: "onChangeView" }, ngImport: i0, template: "<form class=\"loginForm\" (ngSubmit)=\"changePassword()\" #changePasswordForm=\"ngForm\" novalidate>\n <div class=\"legend form-block center\" translate>Change password</div>\n\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n [readonly]=\"emailReadOnly\"\n />\n </c8y-form-group>\n\n <div class=\"row content-flex-50\">\n <div class=\"col-7\">\n <c8y-form-group>\n <label translate>New password</label>\n <input\n [(ngModel)]=\"model.newPassword\"\n #newPassword=\"ngModel\"\n type=\"password\"\n name=\"newPassword\"\n class=\"form-control\"\n placeholder=\"{{ 'New password' | translate }}\"\n [pattern]=\"passwordPattern\"\n autocomplete=\"new-password\"\n [passwordStrengthEnforced]=\"passwordStrengthEnforced\"\n required\n />\n <c8y-messages>\n <c8y-message\n name=\"pattern\"\n [text]=\"loginService.ERROR_MESSAGES.pattern_newPassword\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Confirm password</label>\n <input\n [(ngModel)]=\"model.newPasswordConfirm\"\n #newPasswordConfirm=\"ngModel\"\n type=\"password\"\n name=\"newPasswordConfirm\"\n class=\"form-control\"\n placeholder=\"{{ 'Confirm password' | translate }}\"\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n required\n />\n <c8y-messages>\n <c8y-message\n name=\"passwordConfirm\"\n [text]=\"loginService.ERROR_MESSAGES.passwordConfirm\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-5\">\n <c8y-password-strength\n [password]=\"model.newPassword\"\n [hidden]=\"!model.newPassword\"\n ></c8y-password-strength>\n <c8y-password-check-list\n class=\"m-t-32\"\n [password]=\"model.newPassword\"\n [hidden]=\"!model.newPassword || !passwordStrengthEnforced\"\n ></c8y-password-check-list>\n </div>\n </div>\n\n <button\n title=\"{{ 'Set password' | translate }}\"\n [disabled]=\"!changePasswordForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Set password' | translate }}\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
14723
|
+
ChangePasswordComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ChangePasswordComponent, selector: "c8y-change-password", inputs: { credentials: "credentials" }, outputs: { onChangeView: "onChangeView" }, ngImport: i0, template: "<form class=\"loginForm\" (ngSubmit)=\"changePassword()\" #changePasswordForm=\"ngForm\" novalidate>\n <div class=\"legend form-block center\" translate>Change password</div>\n\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n [readonly]=\"emailReadOnly\"\n />\n </c8y-form-group>\n\n <div class=\"row content-flex-50\">\n <div class=\"col-7\">\n <c8y-form-group>\n <label translate>New password</label>\n <input\n [(ngModel)]=\"model.newPassword\"\n #newPassword=\"ngModel\"\n type=\"password\"\n name=\"newPassword\"\n class=\"form-control\"\n placeholder=\"{{ 'New password' | translate }}\"\n [pattern]=\"passwordPattern\"\n autocomplete=\"new-password\"\n [passwordStrengthEnforced]=\"passwordStrengthEnforced\"\n required\n />\n <c8y-messages>\n <c8y-message\n name=\"pattern\"\n [text]=\"loginService.ERROR_MESSAGES.pattern_newPassword\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Confirm password</label>\n <input\n [(ngModel)]=\"model.newPasswordConfirm\"\n #newPasswordConfirm=\"ngModel\"\n type=\"password\"\n name=\"newPasswordConfirm\"\n class=\"form-control\"\n placeholder=\"{{ 'Confirm password' | translate }}\"\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n required\n />\n <c8y-messages>\n <c8y-message\n name=\"passwordConfirm\"\n [text]=\"loginService.ERROR_MESSAGES.passwordConfirm\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-5\">\n <c8y-password-strength\n [password]=\"model.newPassword\"\n [hidden]=\"!model.newPassword\"\n ></c8y-password-strength>\n <c8y-password-check-list\n class=\"m-t-32\"\n [password]=\"model.newPassword\"\n [hidden]=\"!model.newPassword || !passwordStrengthEnforced\"\n ></c8y-password-check-list>\n </div>\n </div>\n\n <button\n title=\"{{ 'Set password' | translate }}\"\n [disabled]=\"!changePasswordForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Set password' | translate }}\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PasswordStrengthComponent, selector: "c8y-password-strength", inputs: ["password"], outputs: ["strength"] }, { kind: "component", type: PasswordCheckListComponent, selector: "c8y-password-check-list", inputs: ["password"] }, { kind: "directive", type: PasswordConfirm, selector: "[passwordConfirm]" }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: PasswordStrengthValidatorDirective, selector: "[passwordStrengthEnforced]", inputs: ["passwordStrengthEnforced"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
14710
14724
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
14711
14725
|
type: Component,
|
|
14712
14726
|
args: [{ selector: 'c8y-change-password', template: "<form class=\"loginForm\" (ngSubmit)=\"changePassword()\" #changePasswordForm=\"ngForm\" novalidate>\n <div class=\"legend form-block center\" translate>Change password</div>\n\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n [readonly]=\"emailReadOnly\"\n />\n </c8y-form-group>\n\n <div class=\"row content-flex-50\">\n <div class=\"col-7\">\n <c8y-form-group>\n <label translate>New password</label>\n <input\n [(ngModel)]=\"model.newPassword\"\n #newPassword=\"ngModel\"\n type=\"password\"\n name=\"newPassword\"\n class=\"form-control\"\n placeholder=\"{{ 'New password' | translate }}\"\n [pattern]=\"passwordPattern\"\n autocomplete=\"new-password\"\n [passwordStrengthEnforced]=\"passwordStrengthEnforced\"\n required\n />\n <c8y-messages>\n <c8y-message\n name=\"pattern\"\n [text]=\"loginService.ERROR_MESSAGES.pattern_newPassword\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Confirm password</label>\n <input\n [(ngModel)]=\"model.newPasswordConfirm\"\n #newPasswordConfirm=\"ngModel\"\n type=\"password\"\n name=\"newPasswordConfirm\"\n class=\"form-control\"\n placeholder=\"{{ 'Confirm password' | translate }}\"\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n required\n />\n <c8y-messages>\n <c8y-message\n name=\"passwordConfirm\"\n [text]=\"loginService.ERROR_MESSAGES.passwordConfirm\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n </div>\n <div class=\"col-5\">\n <c8y-password-strength\n [password]=\"model.newPassword\"\n [hidden]=\"!model.newPassword\"\n ></c8y-password-strength>\n <c8y-password-check-list\n class=\"m-t-32\"\n [password]=\"model.newPassword\"\n [hidden]=\"!model.newPassword || !passwordStrengthEnforced\"\n ></c8y-password-check-list>\n </div>\n </div>\n\n <button\n title=\"{{ 'Set password' | translate }}\"\n [disabled]=\"!changePasswordForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Set password' | translate }}\n </button>\n</form>\n" }]
|
|
@@ -14813,7 +14827,7 @@ class CredentialsComponent {
|
|
|
14813
14827
|
}
|
|
14814
14828
|
}
|
|
14815
14829
|
CredentialsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CredentialsComponent, deps: [{ token: LoginService }, { token: AlertService }, { token: AppStateService }, { token: CredentialsFromQueryParamsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14816
|
-
CredentialsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CredentialsComponent, selector: "c8y-credentials", inputs: { loginViewParams: "loginViewParams" }, outputs: { onChangeView: "onChangeView" }, ngImport: i0, template: "<div id=\"oauth\" *ngIf=\"oauthOptions.initRequest && oauthOptions.visibleOnLoginPage\">\n <button\n class=\"btn btn-block btn-lg form-group\"\n (click)=\"redirectToOauth()\"\n title=\"{{ oauthOptions.buttonName | translate }}\"\n type=\"button\"\n >\n <i class=\"pull-left\" [c8yIcon]=\"'sign-in'\"></i>\n {{ oauthOptions.buttonName | translate }}\n </button>\n</div>\n\n<form class=\"loginForm\" #loginForm=\"ngForm\" *ngIf=\"showLoginForm\" (ngSubmit)=\"login()\" novalidate>\n <span\n class=\"legend form-block center\"\n *ngIf=\"!(oauthOptions.initRequest && oauthOptions.visibleOnLoginPage); else orLegend\"\n translate\n >\n Login\n </span>\n <ng-template #orLegend>\n <div class=\"legend form-block center\" translate>or</div>\n </ng-template>\n\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"showTenant\">\n <label for=\"tenant\" translate>Tenant ID</label>\n <input\n class=\"form-control\"\n id=\"tenant\"\n #tenant=\"ngModel\"\n [(ngModel)]=\"model.tenant\"\n [readonly]=\"loginViewParams.disableTenant\"\n type=\"text\"\n name=\"tenant\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n placeholder=\"{{ 'e.g.' | translate }} t12345\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"user\" translate>Username</label>\n <input\n class=\"form-control\"\n id=\"user\"\n #user=\"ngModel\"\n [(ngModel)]=\"model.user\"\n type=\"text\"\n name=\"user\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n placeholder=\"{{ 'e.g. joe or joe.doe@example.com`LOCALIZE`' | translate }}\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"password\" translate>Password</label>\n <input\n class=\"form-control\"\n id=\"password\"\n #password=\"ngModel\"\n [(ngModel)]=\"model.password\"\n type=\"password\"\n name=\"password\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <div class=\"form-group\" *ngIf=\"showBasicAuth\">\n <label class=\"c8y-checkbox\" title=\"{{ 'Remember me' | translate }}\">\n <input [(ngModel)]=\"loginService.rememberMe\" type=\"checkbox\" name=\"remember\" />\n <span></span>\n <span>{{ 'Remember me' | translate }}</span>\n </label>\n </div>\n <button\n class=\"btn btn-primary btn-lg btn-block form-group\"\n [disabled]=\"!loginForm.form.valid || isLoading\"\n title=\"{{ 'Log in' | translate }}\"\n type=\"submit\"\n >\n {{ 'Log in' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <button\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.RecoverPassword })\"\n type=\"button\"\n title=\"{{ 'Forgot password?' | translate }}\"\n >\n {{ 'Forgot password?' | translate }}\n </button>\n </div>\n <div class=\"text-center m-t-8\" *ngIf=\"!!(ui.state$ | async).loginExtraLink\">\n <a\n class=\"small\"\n [href]=\"(ui.state$ | async).loginExtraLink.url\"\n title=\"{{ (ui.state$ | async).loginExtraLink.label }}\"\n >\n {{ (ui.state$ | async).loginExtraLink.label }}\n </a>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
14830
|
+
CredentialsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CredentialsComponent, selector: "c8y-credentials", inputs: { loginViewParams: "loginViewParams" }, outputs: { onChangeView: "onChangeView" }, ngImport: i0, template: "<div id=\"oauth\" *ngIf=\"oauthOptions.initRequest && oauthOptions.visibleOnLoginPage\">\n <button\n class=\"btn btn-block btn-lg form-group\"\n (click)=\"redirectToOauth()\"\n title=\"{{ oauthOptions.buttonName | translate }}\"\n type=\"button\"\n >\n <i class=\"pull-left\" [c8yIcon]=\"'sign-in'\"></i>\n {{ oauthOptions.buttonName | translate }}\n </button>\n</div>\n\n<form class=\"loginForm\" #loginForm=\"ngForm\" *ngIf=\"showLoginForm\" (ngSubmit)=\"login()\" novalidate>\n <span\n class=\"legend form-block center\"\n *ngIf=\"!(oauthOptions.initRequest && oauthOptions.visibleOnLoginPage); else orLegend\"\n translate\n >\n Login\n </span>\n <ng-template #orLegend>\n <div class=\"legend form-block center\" translate>or</div>\n </ng-template>\n\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"showTenant\">\n <label for=\"tenant\" translate>Tenant ID</label>\n <input\n class=\"form-control\"\n id=\"tenant\"\n #tenant=\"ngModel\"\n [(ngModel)]=\"model.tenant\"\n [readonly]=\"loginViewParams.disableTenant\"\n type=\"text\"\n name=\"tenant\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n placeholder=\"{{ 'e.g.' | translate }} t12345\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"user\" translate>Username</label>\n <input\n class=\"form-control\"\n id=\"user\"\n #user=\"ngModel\"\n [(ngModel)]=\"model.user\"\n type=\"text\"\n name=\"user\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n placeholder=\"{{ 'e.g. joe or joe.doe@example.com`LOCALIZE`' | translate }}\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"password\" translate>Password</label>\n <input\n class=\"form-control\"\n id=\"password\"\n #password=\"ngModel\"\n [(ngModel)]=\"model.password\"\n type=\"password\"\n name=\"password\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <div class=\"form-group\" *ngIf=\"showBasicAuth\">\n <label class=\"c8y-checkbox\" title=\"{{ 'Remember me' | translate }}\">\n <input [(ngModel)]=\"loginService.rememberMe\" type=\"checkbox\" name=\"remember\" />\n <span></span>\n <span>{{ 'Remember me' | translate }}</span>\n </label>\n </div>\n <button\n class=\"btn btn-primary btn-lg btn-block form-group\"\n [disabled]=\"!loginForm.form.valid || isLoading\"\n title=\"{{ 'Log in' | translate }}\"\n type=\"submit\"\n >\n {{ 'Log in' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <button\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.RecoverPassword })\"\n type=\"button\"\n title=\"{{ 'Forgot password?' | translate }}\"\n >\n {{ 'Forgot password?' | translate }}\n </button>\n </div>\n <div class=\"text-center m-t-8\" *ngIf=\"!!(ui.state$ | async).loginExtraLink\">\n <a\n class=\"small\"\n [href]=\"(ui.state$ | async).loginExtraLink.url\"\n title=\"{{ (ui.state$ | async).loginExtraLink.label }}\"\n >\n {{ (ui.state$ | async).loginExtraLink.label }}\n </a>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
14817
14831
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CredentialsComponent, decorators: [{
|
|
14818
14832
|
type: Component,
|
|
14819
14833
|
args: [{ selector: 'c8y-credentials', template: "<div id=\"oauth\" *ngIf=\"oauthOptions.initRequest && oauthOptions.visibleOnLoginPage\">\n <button\n class=\"btn btn-block btn-lg form-group\"\n (click)=\"redirectToOauth()\"\n title=\"{{ oauthOptions.buttonName | translate }}\"\n type=\"button\"\n >\n <i class=\"pull-left\" [c8yIcon]=\"'sign-in'\"></i>\n {{ oauthOptions.buttonName | translate }}\n </button>\n</div>\n\n<form class=\"loginForm\" #loginForm=\"ngForm\" *ngIf=\"showLoginForm\" (ngSubmit)=\"login()\" novalidate>\n <span\n class=\"legend form-block center\"\n *ngIf=\"!(oauthOptions.initRequest && oauthOptions.visibleOnLoginPage); else orLegend\"\n translate\n >\n Login\n </span>\n <ng-template #orLegend>\n <div class=\"legend form-block center\" translate>or</div>\n </ng-template>\n\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"showTenant\">\n <label for=\"tenant\" translate>Tenant ID</label>\n <input\n class=\"form-control\"\n id=\"tenant\"\n #tenant=\"ngModel\"\n [(ngModel)]=\"model.tenant\"\n [readonly]=\"loginViewParams.disableTenant\"\n type=\"text\"\n name=\"tenant\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n placeholder=\"{{ 'e.g.' | translate }} t12345\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"user\" translate>Username</label>\n <input\n class=\"form-control\"\n id=\"user\"\n #user=\"ngModel\"\n [(ngModel)]=\"model.user\"\n type=\"text\"\n name=\"user\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n placeholder=\"{{ 'e.g. joe or joe.doe@example.com`LOCALIZE`' | translate }}\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"password\" translate>Password</label>\n <input\n class=\"form-control\"\n id=\"password\"\n #password=\"ngModel\"\n [(ngModel)]=\"model.password\"\n type=\"password\"\n name=\"password\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <div class=\"form-group\" *ngIf=\"showBasicAuth\">\n <label class=\"c8y-checkbox\" title=\"{{ 'Remember me' | translate }}\">\n <input [(ngModel)]=\"loginService.rememberMe\" type=\"checkbox\" name=\"remember\" />\n <span></span>\n <span>{{ 'Remember me' | translate }}</span>\n </label>\n </div>\n <button\n class=\"btn btn-primary btn-lg btn-block form-group\"\n [disabled]=\"!loginForm.form.valid || isLoading\"\n title=\"{{ 'Log in' | translate }}\"\n type=\"submit\"\n >\n {{ 'Log in' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <button\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.RecoverPassword })\"\n type=\"button\"\n title=\"{{ 'Forgot password?' | translate }}\"\n >\n {{ 'Forgot password?' | translate }}\n </button>\n </div>\n <div class=\"text-center m-t-8\" *ngIf=\"!!(ui.state$ | async).loginExtraLink\">\n <a\n class=\"small\"\n [href]=\"(ui.state$ | async).loginExtraLink.url\"\n title=\"{{ (ui.state$ | async).loginExtraLink.label }}\"\n >\n {{ (ui.state$ | async).loginExtraLink.label }}\n </a>\n </div>\n</form>\n" }]
|
|
@@ -14874,7 +14888,7 @@ class TotpAuthComponent {
|
|
|
14874
14888
|
}
|
|
14875
14889
|
}
|
|
14876
14890
|
TotpAuthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpAuthComponent, deps: [{ token: LoginService }, { token: i1$2.UserService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
14877
|
-
TotpAuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpAuthComponent, selector: "c8y-totp-auth", inputs: { credentials: "credentials", view: "view" }, outputs: { onCancel: "onCancel" }, ngImport: i0, template: "<div\n class=\"legend form-block center\"\n translate\n>\n Two-factor authentication\n</div>\n\n<c8y-totp-setup *ngIf=\"isSetup\">\n</c8y-totp-setup>\n<c8y-totp-challenge\n [loading]=\"loading\"\n [hasError]=\"hasError\"\n [verify]=\"view === LOGIN_VIEWS.TotpSetup\"\n (onSuccess)=\"onTotpSuccess($event)\"\n (totpUnconfirmedEmitter)=\"onCancel.emit()\"\n></c8y-totp-challenge>\n\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
14891
|
+
TotpAuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TotpAuthComponent, selector: "c8y-totp-auth", inputs: { credentials: "credentials", view: "view" }, outputs: { onCancel: "onCancel" }, ngImport: i0, template: "<div\n class=\"legend form-block center\"\n translate\n>\n Two-factor authentication\n</div>\n\n<c8y-totp-setup *ngIf=\"isSetup\">\n</c8y-totp-setup>\n<c8y-totp-challenge\n [loading]=\"loading\"\n [hasError]=\"hasError\"\n [verify]=\"view === LOGIN_VIEWS.TotpSetup\"\n (onSuccess)=\"onTotpSuccess($event)\"\n (totpUnconfirmedEmitter)=\"onCancel.emit()\"\n></c8y-totp-challenge>\n\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TotpChallengeComponent, selector: "c8y-totp-challenge", inputs: ["verify", "loading", "hasError"], outputs: ["onSuccess", "totpUnconfirmedEmitter"] }, { kind: "component", type: TotpSetupComponent, selector: "c8y-totp-setup" }] });
|
|
14878
14892
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpAuthComponent, decorators: [{
|
|
14879
14893
|
type: Component,
|
|
14880
14894
|
args: [{ selector: 'c8y-totp-auth', template: "<div\n class=\"legend form-block center\"\n translate\n>\n Two-factor authentication\n</div>\n\n<c8y-totp-setup *ngIf=\"isSetup\">\n</c8y-totp-setup>\n<c8y-totp-challenge\n [loading]=\"loading\"\n [hasError]=\"hasError\"\n [verify]=\"view === LOGIN_VIEWS.TotpSetup\"\n (onSuccess)=\"onTotpSuccess($event)\"\n (totpUnconfirmedEmitter)=\"onCancel.emit()\"\n></c8y-totp-challenge>\n\n" }]
|
|
@@ -15045,7 +15059,7 @@ class LoginComponent {
|
|
|
15045
15059
|
}
|
|
15046
15060
|
}
|
|
15047
15061
|
LoginComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginComponent, deps: [{ token: LoginService }, { token: OptionsService }, { token: AlertService }, { token: CredentialsFromQueryParamsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15048
|
-
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LoginComponent, selector: "c8y-login", inputs: { name: "name" }, host: { listeners: { "keyup": "onkeyup($event)" } }, ngImport: i0, template: "<div\n class=\"loading card fadeInUp animated shadow5\"\n *ngIf=\"currentView !== LOGIN_VIEWS.None\"\n [ngSwitch]=\"currentView\"\n>\n <main class=\"card-block p-b-0\">\n <span class=\"mainlogo\"></span>\n\n <c8y-credentials\n *ngSwitchCase=\"LOGIN_VIEWS.Credentials\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [loginViewParams]=\"loginViewParams\"\n ></c8y-credentials>\n <c8y-recover-password\n *ngSwitchCase=\"LOGIN_VIEWS.RecoverPassword\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n ></c8y-recover-password>\n <c8y-change-password\n *ngSwitchCase=\"LOGIN_VIEWS.ChangePassword\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [credentials]=\"credentials\"\n ></c8y-change-password>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpChallenge\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n ></c8y-totp-auth>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpSetup\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n ></c8y-totp-auth>\n <c8y-sms-challenge\n *ngSwitchCase=\"LOGIN_VIEWS.SmsChallenge\"\n (onCancel)=\"reset()\"\n [credentials]=\"credentials\"\n ></c8y-sms-challenge>\n\n <c8y-provide-phone-number\n *ngSwitchCase=\"LOGIN_VIEWS.ProvidePhoneNumber\"\n (onCancel)=\"reset()\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [credentials]=\"credentials\"\n ></c8y-provide-phone-number>\n <c8y-tenant-id-setup\n *ngSwitchCase=\"LOGIN_VIEWS.TenantIdSetup\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n ></c8y-tenant-id-setup>\n\n <c8y-alert-outlet position=\"static\"></c8y-alert-outlet>\n </main>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
15062
|
+
LoginComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: LoginComponent, selector: "c8y-login", inputs: { name: "name" }, host: { listeners: { "keyup": "onkeyup($event)" } }, ngImport: i0, template: "<div\n class=\"loading card fadeInUp animated shadow5\"\n *ngIf=\"currentView !== LOGIN_VIEWS.None\"\n [ngSwitch]=\"currentView\"\n>\n <main class=\"card-block p-b-0\">\n <span class=\"mainlogo\"></span>\n\n <c8y-credentials\n *ngSwitchCase=\"LOGIN_VIEWS.Credentials\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [loginViewParams]=\"loginViewParams\"\n ></c8y-credentials>\n <c8y-recover-password\n *ngSwitchCase=\"LOGIN_VIEWS.RecoverPassword\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n ></c8y-recover-password>\n <c8y-change-password\n *ngSwitchCase=\"LOGIN_VIEWS.ChangePassword\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [credentials]=\"credentials\"\n ></c8y-change-password>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpChallenge\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n ></c8y-totp-auth>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpSetup\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n ></c8y-totp-auth>\n <c8y-sms-challenge\n *ngSwitchCase=\"LOGIN_VIEWS.SmsChallenge\"\n (onCancel)=\"reset()\"\n [credentials]=\"credentials\"\n ></c8y-sms-challenge>\n\n <c8y-provide-phone-number\n *ngSwitchCase=\"LOGIN_VIEWS.ProvidePhoneNumber\"\n (onCancel)=\"reset()\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [credentials]=\"credentials\"\n ></c8y-provide-phone-number>\n <c8y-tenant-id-setup\n *ngSwitchCase=\"LOGIN_VIEWS.TenantIdSetup\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n ></c8y-tenant-id-setup>\n\n <c8y-alert-outlet position=\"static\"></c8y-alert-outlet>\n </main>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: SmsChallengeComponent, selector: "c8y-sms-challenge", inputs: ["credentials"], outputs: ["onCancel"] }, { kind: "component", type: ProvidePhoneNumberComponent, selector: "c8y-provide-phone-number", inputs: ["credentials"], outputs: ["onCancel", "onChangeView"] }, { kind: "component", type: AlertOutletComponent, selector: "c8y-alert-outlet" }, { kind: "component", type: RecoverPasswordComponent, selector: "c8y-recover-password", outputs: ["onChangeView"] }, { kind: "component", type: ChangePasswordComponent, selector: "c8y-change-password", inputs: ["credentials"], outputs: ["onChangeView"] }, { kind: "component", type: CredentialsComponent, selector: "c8y-credentials", inputs: ["loginViewParams"], outputs: ["onChangeView"] }, { kind: "component", type: TotpAuthComponent, selector: "c8y-totp-auth", inputs: ["credentials", "view"], outputs: ["onCancel"] }, { kind: "component", type: TenantIdSetupComponent, selector: "c8y-tenant-id-setup", outputs: ["onChangeView"] }] });
|
|
15049
15063
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginComponent, decorators: [{
|
|
15050
15064
|
type: Component,
|
|
15051
15065
|
args: [{ selector: 'c8y-login', template: "<div\n class=\"loading card fadeInUp animated shadow5\"\n *ngIf=\"currentView !== LOGIN_VIEWS.None\"\n [ngSwitch]=\"currentView\"\n>\n <main class=\"card-block p-b-0\">\n <span class=\"mainlogo\"></span>\n\n <c8y-credentials\n *ngSwitchCase=\"LOGIN_VIEWS.Credentials\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [loginViewParams]=\"loginViewParams\"\n ></c8y-credentials>\n <c8y-recover-password\n *ngSwitchCase=\"LOGIN_VIEWS.RecoverPassword\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n ></c8y-recover-password>\n <c8y-change-password\n *ngSwitchCase=\"LOGIN_VIEWS.ChangePassword\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [credentials]=\"credentials\"\n ></c8y-change-password>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpChallenge\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n ></c8y-totp-auth>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpSetup\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n ></c8y-totp-auth>\n <c8y-sms-challenge\n *ngSwitchCase=\"LOGIN_VIEWS.SmsChallenge\"\n (onCancel)=\"reset()\"\n [credentials]=\"credentials\"\n ></c8y-sms-challenge>\n\n <c8y-provide-phone-number\n *ngSwitchCase=\"LOGIN_VIEWS.ProvidePhoneNumber\"\n (onCancel)=\"reset()\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n [credentials]=\"credentials\"\n ></c8y-provide-phone-number>\n <c8y-tenant-id-setup\n *ngSwitchCase=\"LOGIN_VIEWS.TenantIdSetup\"\n (onChangeView)=\"handleLoginTemplate($event)\"\n ></c8y-tenant-id-setup>\n\n <c8y-alert-outlet position=\"static\"></c8y-alert-outlet>\n </main>\n</div>\n" }]
|
|
@@ -15147,7 +15161,7 @@ class TabsOutletComponent {
|
|
|
15147
15161
|
}
|
|
15148
15162
|
}
|
|
15149
15163
|
TabsOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TabsOutletComponent, deps: [{ token: i1.Router }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: HeaderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15150
|
-
TabsOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: { tabs: "tabs", orientation: "orientation", navigatorOpen: "navigatorOpen" }, host: { properties: { "class.navigator-open": "this.isNavigatorOpen", "class.page-tabs": "this.hasTabs", "class.page-tabs-horizontal": "this.isHorizontal", "class.page-tabs-vertical": "this.isVertical" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "leftBtn", first: true, predicate: ["left"], descendants: true, read: ElementRef }, { propertyName: "rightBtn", first: true, predicate: ["right"], descendants: true, read: ElementRef }, { propertyName: "tabsContainer", first: true, predicate: ["tabsContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div #container class=\"tabContainer hidden-xs\">\n <button\n type=\"button\"\n class=\"tabs-slider tabs-slider-left\"\n #left\n *ngIf=\"showLeft || showRight\"\n [disabled]=\"!showLeft\"\n (click)=\"scroll('left')\"\n title=\"{{ 'Scroll to the left' | translate }}\"\n >\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button\n type=\"button\"\n class=\"tabs-slider tabs-slider-right\"\n #right\n *ngIf=\"showRight || showLeft\"\n [disabled]=\"!showRight\"\n (click)=\"scroll('right')\"\n title=\"{{ 'Scroll to the right' | translate }}\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <div\n role=\"navigation\"\n [attr.aria-label]=\"'Secondary navigation' | translate\"\n class=\"nav nav-tabs nav-tabsc8y\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <div role=\"listitem\" [ngClass]=\"{ active: rla?.isActive }\" *ngIf=\"!tab.component\">\n <a\n [routerLink]=\"tab.path\"\n routerLinkActive\n #rla=\"routerLinkActive\"\n title=\"{{ tab?.label | translate }}\"\n >\n <i [c8yIcon]=\"tab?.icon\" *ngIf=\"!tab.template && tab?.icon\"></i>\n <span *ngIf=\"!tab.template && !tab.component\">\n {{ tab?.label | translate }}\n </span>\n </a>\n <ng-container *ngTemplateOutlet=\"tab.template; injector: tab.injector\"></ng-container>\n </div>\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<div class=\"visible-xs mobile-tabs\">\n <ul class=\"list-unstyled d-flex m-b-0\">\n <li class=\"c8y-select-wrapper flex-grow\">\n <select (change)=\"navigateTo($event.target)\" #select>\n <ng-container *ngFor=\"let tab of tabs\">\n <option *ngIf=\"!tab.component\" [value]=\"tab.path\" [selected]=\"isActive(tab)\">\n {{ tab?.label | translate }}\n </option>\n </ng-container>\n </select>\n </li>\n <ng-container *ngFor=\"let tab of tabs\">\n <ng-container *ngIf=\"tab.component\">\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
15164
|
+
TabsOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: { tabs: "tabs", orientation: "orientation", navigatorOpen: "navigatorOpen" }, host: { properties: { "class.navigator-open": "this.isNavigatorOpen", "class.page-tabs": "this.hasTabs", "class.page-tabs-horizontal": "this.isHorizontal", "class.page-tabs-vertical": "this.isVertical" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }, { propertyName: "leftBtn", first: true, predicate: ["left"], descendants: true, read: ElementRef }, { propertyName: "rightBtn", first: true, predicate: ["right"], descendants: true, read: ElementRef }, { propertyName: "tabsContainer", first: true, predicate: ["tabsContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div #container class=\"tabContainer hidden-xs\">\n <button\n type=\"button\"\n class=\"tabs-slider tabs-slider-left\"\n #left\n *ngIf=\"showLeft || showRight\"\n [disabled]=\"!showLeft\"\n (click)=\"scroll('left')\"\n title=\"{{ 'Scroll to the left' | translate }}\"\n >\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button\n type=\"button\"\n class=\"tabs-slider tabs-slider-right\"\n #right\n *ngIf=\"showRight || showLeft\"\n [disabled]=\"!showRight\"\n (click)=\"scroll('right')\"\n title=\"{{ 'Scroll to the right' | translate }}\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <div\n role=\"navigation\"\n [attr.aria-label]=\"'Secondary navigation' | translate\"\n class=\"nav nav-tabs nav-tabsc8y\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <div role=\"listitem\" [ngClass]=\"{ active: rla?.isActive }\" *ngIf=\"!tab.component\">\n <a\n [routerLink]=\"tab.path\"\n routerLinkActive\n #rla=\"routerLinkActive\"\n title=\"{{ tab?.label | translate }}\"\n >\n <i [c8yIcon]=\"tab?.icon\" *ngIf=\"!tab.template && tab?.icon\"></i>\n <span *ngIf=\"!tab.template && !tab.component\">\n {{ tab?.label | translate }}\n </span>\n </a>\n <ng-container *ngTemplateOutlet=\"tab.template; injector: tab.injector\"></ng-container>\n </div>\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<div class=\"visible-xs mobile-tabs\">\n <ul class=\"list-unstyled d-flex m-b-0\">\n <li class=\"c8y-select-wrapper flex-grow\">\n <select (change)=\"navigateTo($event.target)\" #select>\n <ng-container *ngFor=\"let tab of tabs\">\n <option *ngIf=\"!tab.component\" [value]=\"tab.path\" [selected]=\"isActive(tab)\">\n {{ tab?.label | translate }}\n </option>\n </ng-container>\n </select>\n </li>\n <ng-container *ngFor=\"let tab of tabs\">\n <ng-container *ngIf=\"tab.component\">\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
15151
15165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TabsOutletComponent, decorators: [{
|
|
15152
15166
|
type: Component,
|
|
15153
15167
|
args: [{ selector: 'c8y-tabs-outlet,c8y-ui-tabs', template: "<div #container class=\"tabContainer hidden-xs\">\n <button\n type=\"button\"\n class=\"tabs-slider tabs-slider-left\"\n #left\n *ngIf=\"showLeft || showRight\"\n [disabled]=\"!showLeft\"\n (click)=\"scroll('left')\"\n title=\"{{ 'Scroll to the left' | translate }}\"\n >\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button\n type=\"button\"\n class=\"tabs-slider tabs-slider-right\"\n #right\n *ngIf=\"showRight || showLeft\"\n [disabled]=\"!showRight\"\n (click)=\"scroll('right')\"\n title=\"{{ 'Scroll to the right' | translate }}\"\n >\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <div\n role=\"navigation\"\n [attr.aria-label]=\"'Secondary navigation' | translate\"\n class=\"nav nav-tabs nav-tabsc8y\"\n #tabsContainer\n >\n <ng-container *ngFor=\"let tab of tabs\">\n <div role=\"listitem\" [ngClass]=\"{ active: rla?.isActive }\" *ngIf=\"!tab.component\">\n <a\n [routerLink]=\"tab.path\"\n routerLinkActive\n #rla=\"routerLinkActive\"\n title=\"{{ tab?.label | translate }}\"\n >\n <i [c8yIcon]=\"tab?.icon\" *ngIf=\"!tab.template && tab?.icon\"></i>\n <span *ngIf=\"!tab.template && !tab.component\">\n {{ tab?.label | translate }}\n </span>\n </a>\n <ng-container *ngTemplateOutlet=\"tab.template; injector: tab.injector\"></ng-container>\n </div>\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<div class=\"visible-xs mobile-tabs\">\n <ul class=\"list-unstyled d-flex m-b-0\">\n <li class=\"c8y-select-wrapper flex-grow\">\n <select (change)=\"navigateTo($event.target)\" #select>\n <ng-container *ngFor=\"let tab of tabs\">\n <option *ngIf=\"!tab.component\" [value]=\"tab.path\" [selected]=\"isActive(tab)\">\n {{ tab?.label | translate }}\n </option>\n </ng-container>\n </select>\n </li>\n <ng-container *ngFor=\"let tab of tabs\">\n <ng-container *ngIf=\"tab.component\">\n <ng-container *ngComponentOutlet=\"tab.component; injector: tab.injector\"></ng-container>\n </ng-container>\n </ng-container>\n </ul>\n</div>\n" }]
|
|
@@ -15347,7 +15361,7 @@ class NavigatorNodeComponent {
|
|
|
15347
15361
|
}
|
|
15348
15362
|
}
|
|
15349
15363
|
NavigatorNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorNodeComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: NavigatorService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15350
|
-
NavigatorNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: NavigatorNodeComponent, selector: "c8y-navigator-node", inputs: { node: "node", isRoot: "isRoot" }, outputs: { nodeClick: "nodeClick" }, viewQueries: [{ propertyName: "iconSlot", first: true, predicate: ["icon"], descendants: true, read: ViewContainerRef }, { propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }, { propertyName: "confirm", first: true, predicate: PopoverConfirmComponent, descendants: true }, { propertyName: "childrenNodes", predicate: NavigatorNodeComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"node.component\">\n <ng-container *ngComponentOutlet=\"node.component; injector: node.injector\"></ng-container>\n</ng-container>\n\n<div\n *ngIf=\"!node.component\"\n class=\"slot\"\n [hidden]=\"node.hidden\"\n (dragstart)=\"node.dragStart($event)\"\n (dragend)=\"node.dragEnd($event)\"\n (drop)=\"node.drop($event)\"\n [draggable]=\"node.draggable\"\n [ngClass]=\"{ dragged: node.dragged, disabled: node.loading }\"\n>\n <ng-container>\n <button\n class=\"btn-clean link\"\n draggable=\"false\"\n (dragover)=\"node.canDrop && $event.preventDefault()\"\n (dragenter)=\"node.canDrop && node.dragEnter($event)\"\n (dragleave)=\"node.canDrop && node.dragLeave($event)\"\n title=\"{{ node.label | translate }}\"\n [attr.data-cy]=\"node.label\"\n [attr.id]=\"isRoot ? node.id : undefined\"\n [routerLink]=\"node.canNavigate ? node.path : undefined\"\n [routerLinkActive]=\"node.canNavigate ? 'active' : ''\"\n [routerLinkActiveOptions]=\"{ exact: node.routerLinkExact }\"\n (click)=\"click(node.canNavigate ? 'link' : 'expander', $event)\"\n [ngClass]=\"{\n 'root-link': isRoot,\n open: node.open && node.hasChildren,\n parent: node.hasChildren,\n 'dragged-hover': node.draggedHover && !node.dragged\n }\"\n >\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </button>\n </ng-container>\n\n <div\n class=\"children panel-expand expand\"\n *ngIf=\"node.children.length\"\n [collapse]=\"!node.open\"\n [isAnimated]=\"true\"\n >\n <c8y-navigator-node\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n (nodeClick)=\"nodeClick.emit($event)\"\n ></c8y-navigator-node>\n </div>\n</div>\n\n<ng-template #inner>\n <!-- loader -->\n <i\n class=\"icon-spin loadingIndicator\"\n [c8yIcon]=\"'circle-o-notch'\"\n *ngIf=\"node.loading && !isRoot\"\n ></i>\n\n <!-- icon -->\n <div>\n <ng-container #icon></ng-container>\n </div>\n\n <!--title -->\n <span>{{ node.label | translate }}</span>\n\n <i\n class=\"expander\"\n [c8yIcon]=\"'chevron-down'\"\n *ngIf=\"node.hasChildren\"\n (click)=\"click('expander', $event)\"\n title=\"{{ expandTitle }}\"\n ></i>\n\n <c8y-popover-confirm\n [outsideClick]=\"true\"\n containerClass=\"navigator-popover\"\n ></c8y-popover-confirm>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i1$
|
|
15364
|
+
NavigatorNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: NavigatorNodeComponent, selector: "c8y-navigator-node", inputs: { node: "node", isRoot: "isRoot" }, outputs: { nodeClick: "nodeClick" }, viewQueries: [{ propertyName: "iconSlot", first: true, predicate: ["icon"], descendants: true, read: ViewContainerRef }, { propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }, { propertyName: "confirm", first: true, predicate: PopoverConfirmComponent, descendants: true }, { propertyName: "childrenNodes", predicate: NavigatorNodeComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"node.component\">\n <ng-container *ngComponentOutlet=\"node.component; injector: node.injector\"></ng-container>\n</ng-container>\n\n<div\n *ngIf=\"!node.component\"\n class=\"slot\"\n [hidden]=\"node.hidden\"\n (dragstart)=\"node.dragStart($event)\"\n (dragend)=\"node.dragEnd($event)\"\n (drop)=\"node.drop($event)\"\n [draggable]=\"node.draggable\"\n [ngClass]=\"{ dragged: node.dragged, disabled: node.loading }\"\n>\n <ng-container>\n <button\n class=\"btn-clean link\"\n draggable=\"false\"\n (dragover)=\"node.canDrop && $event.preventDefault()\"\n (dragenter)=\"node.canDrop && node.dragEnter($event)\"\n (dragleave)=\"node.canDrop && node.dragLeave($event)\"\n title=\"{{ node.label | translate }}\"\n [attr.data-cy]=\"node.label\"\n [attr.id]=\"isRoot ? node.id : undefined\"\n [routerLink]=\"node.canNavigate ? node.path : undefined\"\n [routerLinkActive]=\"node.canNavigate ? 'active' : ''\"\n [routerLinkActiveOptions]=\"{ exact: node.routerLinkExact }\"\n (click)=\"click(node.canNavigate ? 'link' : 'expander', $event)\"\n [ngClass]=\"{\n 'root-link': isRoot,\n open: node.open && node.hasChildren,\n parent: node.hasChildren,\n 'dragged-hover': node.draggedHover && !node.dragged\n }\"\n >\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </button>\n </ng-container>\n\n <div\n class=\"children panel-expand expand\"\n *ngIf=\"node.children.length\"\n [collapse]=\"!node.open\"\n [isAnimated]=\"true\"\n >\n <c8y-navigator-node\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n (nodeClick)=\"nodeClick.emit($event)\"\n ></c8y-navigator-node>\n </div>\n</div>\n\n<ng-template #inner>\n <!-- loader -->\n <i\n class=\"icon-spin loadingIndicator\"\n [c8yIcon]=\"'circle-o-notch'\"\n *ngIf=\"node.loading && !isRoot\"\n ></i>\n\n <!-- icon -->\n <div>\n <ng-container #icon></ng-container>\n </div>\n\n <!--title -->\n <span>{{ node.label | translate }}</span>\n\n <i\n class=\"expander\"\n [c8yIcon]=\"'chevron-down'\"\n *ngIf=\"node.hasChildren\"\n (click)=\"click('expander', $event)\"\n title=\"{{ expandTitle }}\"\n ></i>\n\n <c8y-popover-confirm\n [outsideClick]=\"true\"\n containerClass=\"navigator-popover\"\n ></c8y-popover-confirm>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: i1$9.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PopoverConfirmComponent, selector: "c8y-popover-confirm", inputs: ["buttons", "message", "title", "isOpen", "containerClass", "placement", "outsideClick"] }, { kind: "component", type: NavigatorNodeComponent, selector: "c8y-navigator-node", inputs: ["node", "isRoot"], outputs: ["nodeClick"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
15351
15365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorNodeComponent, decorators: [{
|
|
15352
15366
|
type: Component,
|
|
15353
15367
|
args: [{ selector: 'c8y-navigator-node', template: "<ng-container *ngIf=\"node.component\">\n <ng-container *ngComponentOutlet=\"node.component; injector: node.injector\"></ng-container>\n</ng-container>\n\n<div\n *ngIf=\"!node.component\"\n class=\"slot\"\n [hidden]=\"node.hidden\"\n (dragstart)=\"node.dragStart($event)\"\n (dragend)=\"node.dragEnd($event)\"\n (drop)=\"node.drop($event)\"\n [draggable]=\"node.draggable\"\n [ngClass]=\"{ dragged: node.dragged, disabled: node.loading }\"\n>\n <ng-container>\n <button\n class=\"btn-clean link\"\n draggable=\"false\"\n (dragover)=\"node.canDrop && $event.preventDefault()\"\n (dragenter)=\"node.canDrop && node.dragEnter($event)\"\n (dragleave)=\"node.canDrop && node.dragLeave($event)\"\n title=\"{{ node.label | translate }}\"\n [attr.data-cy]=\"node.label\"\n [attr.id]=\"isRoot ? node.id : undefined\"\n [routerLink]=\"node.canNavigate ? node.path : undefined\"\n [routerLinkActive]=\"node.canNavigate ? 'active' : ''\"\n [routerLinkActiveOptions]=\"{ exact: node.routerLinkExact }\"\n (click)=\"click(node.canNavigate ? 'link' : 'expander', $event)\"\n [ngClass]=\"{\n 'root-link': isRoot,\n open: node.open && node.hasChildren,\n parent: node.hasChildren,\n 'dragged-hover': node.draggedHover && !node.dragged\n }\"\n >\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </button>\n </ng-container>\n\n <div\n class=\"children panel-expand expand\"\n *ngIf=\"node.children.length\"\n [collapse]=\"!node.open\"\n [isAnimated]=\"true\"\n >\n <c8y-navigator-node\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n (nodeClick)=\"nodeClick.emit($event)\"\n ></c8y-navigator-node>\n </div>\n</div>\n\n<ng-template #inner>\n <!-- loader -->\n <i\n class=\"icon-spin loadingIndicator\"\n [c8yIcon]=\"'circle-o-notch'\"\n *ngIf=\"node.loading && !isRoot\"\n ></i>\n\n <!-- icon -->\n <div>\n <ng-container #icon></ng-container>\n </div>\n\n <!--title -->\n <span>{{ node.label | translate }}</span>\n\n <i\n class=\"expander\"\n [c8yIcon]=\"'chevron-down'\"\n *ngIf=\"node.hasChildren\"\n (click)=\"click('expander', $event)\"\n title=\"{{ expandTitle }}\"\n ></i>\n\n <c8y-popover-confirm\n [outsideClick]=\"true\"\n containerClass=\"navigator-popover\"\n ></c8y-popover-confirm>\n</ng-template>\n" }]
|
|
@@ -15418,7 +15432,7 @@ class NavigatorOutletComponent {
|
|
|
15418
15432
|
}
|
|
15419
15433
|
}
|
|
15420
15434
|
NavigatorOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorOutletComponent, deps: [{ token: HeaderService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
15421
|
-
NavigatorOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: NavigatorOutletComponent, selector: "c8y-navigator-outlet, c8y-ui-navigator", inputs: { nodes: "nodes", open: "open" }, usesOnChanges: true, ngImport: i0, template: "<nav\n [attr.aria-label]=\"'Navigator' | translate\"\n class=\"navigator\"\n id=\"navigator\"\n *ngIf=\"isShown$ | async\"\n [ngClass]=\"{ open: open }\"\n>\n <ng-content select=\".navigator-slot-top\"></ng-content>\n <div class=\"navigatorContent\">\n <button class=\"sr-only\" tabindex=\"0\" [c8ySkipLink]=\"'main-content'\" translate>Skip to content</button>\n <c8y-navigator-node\n (nodeClick)=\"collapseNavigator($event)\"\n [node]=\"node\"\n *ngFor=\"let node of nodes; trackBy: trackByPathOrLabel\"\n [isRoot]=\"true\"\n ></c8y-navigator-node>\n </div>\n <ng-content select=\".navigator-slot-bottom\"></ng-content>\n</nav>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
15435
|
+
NavigatorOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: NavigatorOutletComponent, selector: "c8y-navigator-outlet, c8y-ui-navigator", inputs: { nodes: "nodes", open: "open" }, usesOnChanges: true, ngImport: i0, template: "<nav\n [attr.aria-label]=\"'Navigator' | translate\"\n class=\"navigator\"\n id=\"navigator\"\n *ngIf=\"isShown$ | async\"\n [ngClass]=\"{ open: open }\"\n>\n <ng-content select=\".navigator-slot-top\"></ng-content>\n <div class=\"navigatorContent\">\n <button class=\"sr-only\" tabindex=\"0\" [c8ySkipLink]=\"'main-content'\" translate>Skip to content</button>\n <c8y-navigator-node\n (nodeClick)=\"collapseNavigator($event)\"\n [node]=\"node\"\n *ngFor=\"let node of nodes; trackBy: trackByPathOrLabel\"\n [isRoot]=\"true\"\n ></c8y-navigator-node>\n </div>\n <ng-content select=\".navigator-slot-bottom\"></ng-content>\n</nav>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: SkipLinkDirective, selector: "[c8ySkipLink]", inputs: ["c8ySkipLink"] }, { kind: "component", type: NavigatorNodeComponent, selector: "c8y-navigator-node", inputs: ["node", "isRoot"], outputs: ["nodeClick"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
15422
15436
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorOutletComponent, decorators: [{
|
|
15423
15437
|
type: Component,
|
|
15424
15438
|
args: [{ selector: 'c8y-navigator-outlet, c8y-ui-navigator', template: "<nav\n [attr.aria-label]=\"'Navigator' | translate\"\n class=\"navigator\"\n id=\"navigator\"\n *ngIf=\"isShown$ | async\"\n [ngClass]=\"{ open: open }\"\n>\n <ng-content select=\".navigator-slot-top\"></ng-content>\n <div class=\"navigatorContent\">\n <button class=\"sr-only\" tabindex=\"0\" [c8ySkipLink]=\"'main-content'\" translate>Skip to content</button>\n <c8y-navigator-node\n (nodeClick)=\"collapseNavigator($event)\"\n [node]=\"node\"\n *ngFor=\"let node of nodes; trackBy: trackByPathOrLabel\"\n [isRoot]=\"true\"\n ></c8y-navigator-node>\n </div>\n <ng-content select=\".navigator-slot-bottom\"></ng-content>\n</nav>\n" }]
|
|
@@ -15486,7 +15500,7 @@ class C8yStepperProgress {
|
|
|
15486
15500
|
}
|
|
15487
15501
|
}
|
|
15488
15502
|
C8yStepperProgress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15489
|
-
C8yStepperProgress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: C8yStepperProgress, selector: "c8y-stepper-progress", inputs: { iconOverrides: "iconOverrides", index: "index", selected: "selected", state: "state", disabled: "disabled" }, outputs: { onStepClicked: "onStepClicked" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"c8y-step\"\n [ngClass]=\"{\n active: selected,\n 'step-done': state === 'done' || state === '_done',\n 'step-error': state === 'error',\n 'step-warning': state === 'warning'\n }\"\n [disabled]=\"disabled\"\n [ngSwitch]=\"!!(iconOverrides && iconOverrides[state])\"\n (click)=\"stepSelected()\"\n>\n <ng-container *ngSwitchCase=\"true\" [ngTemplateOutlet]=\"iconOverrides[state]\"></ng-container>\n <ng-container *ngSwitchDefault [ngSwitch]=\"state\">\n <span *ngSwitchCase=\"'edit'\">\n <span [c8yIcon]=\"'edit'\"></span>\n </span>\n <span *ngSwitchCase=\"'done'\">\n <span class=\"m-t-4\" [c8yIcon]=\"'check'\"></span>\n </span>\n <span *ngSwitchDefault>{{ index + 1 }}</span>\n </ng-container>\n</button>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
15503
|
+
C8yStepperProgress.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: C8yStepperProgress, selector: "c8y-stepper-progress", inputs: { iconOverrides: "iconOverrides", index: "index", selected: "selected", state: "state", disabled: "disabled" }, outputs: { onStepClicked: "onStepClicked" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"c8y-step\"\n [ngClass]=\"{\n active: selected,\n 'step-done': state === 'done' || state === '_done',\n 'step-error': state === 'error',\n 'step-warning': state === 'warning'\n }\"\n [disabled]=\"disabled\"\n [ngSwitch]=\"!!(iconOverrides && iconOverrides[state])\"\n (click)=\"stepSelected()\"\n>\n <ng-container *ngSwitchCase=\"true\" [ngTemplateOutlet]=\"iconOverrides[state]\"></ng-container>\n <ng-container *ngSwitchDefault [ngSwitch]=\"state\">\n <span *ngSwitchCase=\"'edit'\">\n <span [c8yIcon]=\"'edit'\"></span>\n </span>\n <span *ngSwitchCase=\"'done'\">\n <span class=\"m-t-4\" [c8yIcon]=\"'check'\"></span>\n </span>\n <span *ngSwitchDefault>{{ index + 1 }}</span>\n </ng-container>\n</button>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
15490
15504
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperProgress, decorators: [{
|
|
15491
15505
|
type: Component,
|
|
15492
15506
|
args: [{ selector: 'c8y-stepper-progress', template: "<button\n type=\"button\"\n class=\"c8y-step\"\n [ngClass]=\"{\n active: selected,\n 'step-done': state === 'done' || state === '_done',\n 'step-error': state === 'error',\n 'step-warning': state === 'warning'\n }\"\n [disabled]=\"disabled\"\n [ngSwitch]=\"!!(iconOverrides && iconOverrides[state])\"\n (click)=\"stepSelected()\"\n>\n <ng-container *ngSwitchCase=\"true\" [ngTemplateOutlet]=\"iconOverrides[state]\"></ng-container>\n <ng-container *ngSwitchDefault [ngSwitch]=\"state\">\n <span *ngSwitchCase=\"'edit'\">\n <span [c8yIcon]=\"'edit'\"></span>\n </span>\n <span *ngSwitchCase=\"'done'\">\n <span class=\"m-t-4\" [c8yIcon]=\"'check'\"></span>\n </span>\n <span *ngSwitchDefault>{{ index + 1 }}</span>\n </ng-container>\n</button>\n" }]
|
|
@@ -15671,18 +15685,18 @@ class C8yStepper extends CdkStepper {
|
|
|
15671
15685
|
}
|
|
15672
15686
|
}
|
|
15673
15687
|
}
|
|
15674
|
-
C8yStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepper, deps: [{ token: i1$
|
|
15688
|
+
C8yStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepper, deps: [{ token: i1$a.Directionality }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
15675
15689
|
C8yStepper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: C8yStepper, selector: "c8y-stepper", inputs: { disableDefaultIcons: "disableDefaultIcons", disableProgressButtons: "disableProgressButtons", customClasses: "customClasses", hideStepProgress: "hideStepProgress", useStepLabelsAsTitlesOnly: "useStepLabelsAsTitlesOnly" }, outputs: { onStepChange: "onStepChange" }, providers: [
|
|
15676
15690
|
{ provide: CdkStepper, useExisting: C8yStepper },
|
|
15677
15691
|
{ provide: PRODUCT_EXPERIENCE_EVENT_SOURCE, useExisting: forwardRef(() => C8yStepper) }
|
|
15678
|
-
], queries: [{ propertyName: "_icons", predicate: C8yStepperIcon, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul *ngIf=\"!hideStepProgress\" class=\"c8y-stepper\" [ngClass]=\"customClasses\">\n <li *ngFor=\"let step of steps; let i = index\">\n <c8y-stepper-progress\n [iconOverrides]=\"_iconOverrides\"\n [state]=\"getIndicatorType(i, step.state)\"\n [index]=\"i\"\n [selected]=\"selectedIndex === i\"\n [disabled]=\"disableProgressButtons\"\n (onStepClicked)=\"setIndex($event)\"\n title=\"{{ step.label | translate }}\"\n [ngClass]=\"{'active': selectedIndex === i}\"\n >\n </c8y-stepper-progress>\n <div *ngIf=\"!useStepLabelsAsTitlesOnly\" class=\"c8y-step__label\" title=\"{{ step.label | translate }}\">\n {{ step.label | translate }}\n </div>\n </li>\n</ul>\n<ng-container [ngTemplateOutlet]=\"selected.content\"></ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
15692
|
+
], queries: [{ propertyName: "_icons", predicate: C8yStepperIcon, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ul *ngIf=\"!hideStepProgress\" class=\"c8y-stepper\" [ngClass]=\"customClasses\">\n <li *ngFor=\"let step of steps; let i = index\">\n <c8y-stepper-progress\n [iconOverrides]=\"_iconOverrides\"\n [state]=\"getIndicatorType(i, step.state)\"\n [index]=\"i\"\n [selected]=\"selectedIndex === i\"\n [disabled]=\"disableProgressButtons\"\n (onStepClicked)=\"setIndex($event)\"\n title=\"{{ step.label | translate }}\"\n [ngClass]=\"{'active': selectedIndex === i}\"\n >\n </c8y-stepper-progress>\n <div *ngIf=\"!useStepLabelsAsTitlesOnly\" class=\"c8y-step__label\" title=\"{{ step.label | translate }}\">\n {{ step.label | translate }}\n </div>\n </li>\n</ul>\n<ng-container [ngTemplateOutlet]=\"selected.content\"></ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: C8yStepperProgress, selector: "c8y-stepper-progress", inputs: ["iconOverrides", "index", "selected", "state", "disabled"], outputs: ["onStepClicked"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
15679
15693
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepper, decorators: [{
|
|
15680
15694
|
type: Component,
|
|
15681
15695
|
args: [{ selector: 'c8y-stepper', providers: [
|
|
15682
15696
|
{ provide: CdkStepper, useExisting: C8yStepper },
|
|
15683
15697
|
{ provide: PRODUCT_EXPERIENCE_EVENT_SOURCE, useExisting: forwardRef(() => C8yStepper) }
|
|
15684
15698
|
], template: "<ul *ngIf=\"!hideStepProgress\" class=\"c8y-stepper\" [ngClass]=\"customClasses\">\n <li *ngFor=\"let step of steps; let i = index\">\n <c8y-stepper-progress\n [iconOverrides]=\"_iconOverrides\"\n [state]=\"getIndicatorType(i, step.state)\"\n [index]=\"i\"\n [selected]=\"selectedIndex === i\"\n [disabled]=\"disableProgressButtons\"\n (onStepClicked)=\"setIndex($event)\"\n title=\"{{ step.label | translate }}\"\n [ngClass]=\"{'active': selectedIndex === i}\"\n >\n </c8y-stepper-progress>\n <div *ngIf=\"!useStepLabelsAsTitlesOnly\" class=\"c8y-step__label\" title=\"{{ step.label | translate }}\">\n {{ step.label | translate }}\n </div>\n </li>\n</ul>\n<ng-container [ngTemplateOutlet]=\"selected.content\"></ng-container>\n" }]
|
|
15685
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
15699
|
+
}], ctorParameters: function () { return [{ type: i1$a.Directionality }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { disableDefaultIcons: [{
|
|
15686
15700
|
type: Input
|
|
15687
15701
|
}], disableProgressButtons: [{
|
|
15688
15702
|
type: Input
|
|
@@ -15904,14 +15918,14 @@ class C8yStepperButtons {
|
|
|
15904
15918
|
this.gainsightService.triggerEvent(eventName, eventData);
|
|
15905
15919
|
}
|
|
15906
15920
|
}
|
|
15907
|
-
C8yStepperButtons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperButtons, deps: [{ token: C8yStepper, host: true }, { token: i2$
|
|
15908
|
-
C8yStepperButtons.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: { labels: "labels", pending: "pending", disabled: "disabled", showButtons: "showButtons" }, outputs: { onCancel: "onCancel", onNext: "onNext", onBack: "onBack", onCustom: "onCustom" }, ngImport: i0, template: "<div class=\"text-center\">\n <button\n title=\"{{ labels?.cancel | translate }}\"\n *ngIf=\"showBtns.cancel\"\n (click)=\"cancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n <span *ngIf=\"labels?.cancel; else cancelLabel\" title=\"{{ labels?.cancel | translate }}\">\n {{ labels?.cancel | translate }}\n </span>\n <ng-template #cancelLabel>\n <span title=\"{{ 'Cancel' | translate }}\">{{ 'Cancel' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.back | translate }}\"\n *ngIf=\"showBtns.back\"\n type=\"button\"\n (click)=\"back()\"\n class=\"btn btn-default\"\n [disabled]=\"pending\"\n title=\"{{ labels?.back || 'Back' | translate }}\"\n data-cy=\"back\"\n >\n <span *ngIf=\"labels?.back; else backLabel\" title=\"{{ labels?.back | translate }}\">\n {{ labels?.back | translate }}\n </span>\n <ng-template #backLabel>\n <span title=\"{{ 'Back' | translate }}\">{{ 'Back' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.custom | translate }}\"\n *ngIf=\"showBtns.custom\"\n (click)=\"custom()\"\n type=\"button\"\n class=\"btn\"\n [ngClass]=\"{\n 'btn-default': showBtns.next,\n 'btn-primary': !showBtns.next,\n 'btn-pending': pending\n }\"\n [disabled]=\"disabled\"\n title=\"{{ labels?.custom || 'Complete' | translate }}\"\n data-cy=\"custom\"\n >\n <span *ngIf=\"labels?.custom; else customLabel\" title=\"{{ labels?.custom | translate }}\">\n {{ labels?.custom | translate }}\n </span>\n <ng-template #customLabel>\n <span title=\"{{ 'Complete' | translate }}\">{{ 'Complete' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.next | translate }}\"\n (click)=\"next()\"\n *ngIf=\"showBtns.next\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pending }\"\n [disabled]=\"disabled\"\n title=\"{{ labels?.next || 'Next' | translate }}\"\n data-cy=\"next\"\n >\n <span *ngIf=\"labels?.next; else nextLabel\" title=\"{{ labels?.next | translate }}\">\n {{ labels?.next | translate }}\n </span>\n <ng-template #nextLabel>\n <span title=\"{{ 'Next' | translate }}\">{{ 'Next' | translate }}</span>\n </ng-template>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
15921
|
+
C8yStepperButtons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperButtons, deps: [{ token: C8yStepper, host: true }, { token: i2$3.CdkStep, host: true }, { token: GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15922
|
+
C8yStepperButtons.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: { labels: "labels", pending: "pending", disabled: "disabled", showButtons: "showButtons" }, outputs: { onCancel: "onCancel", onNext: "onNext", onBack: "onBack", onCustom: "onCustom" }, ngImport: i0, template: "<div class=\"text-center\">\n <button\n title=\"{{ labels?.cancel | translate }}\"\n *ngIf=\"showBtns.cancel\"\n (click)=\"cancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n <span *ngIf=\"labels?.cancel; else cancelLabel\" title=\"{{ labels?.cancel | translate }}\">\n {{ labels?.cancel | translate }}\n </span>\n <ng-template #cancelLabel>\n <span title=\"{{ 'Cancel' | translate }}\">{{ 'Cancel' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.back | translate }}\"\n *ngIf=\"showBtns.back\"\n type=\"button\"\n (click)=\"back()\"\n class=\"btn btn-default\"\n [disabled]=\"pending\"\n title=\"{{ labels?.back || 'Back' | translate }}\"\n data-cy=\"back\"\n >\n <span *ngIf=\"labels?.back; else backLabel\" title=\"{{ labels?.back | translate }}\">\n {{ labels?.back | translate }}\n </span>\n <ng-template #backLabel>\n <span title=\"{{ 'Back' | translate }}\">{{ 'Back' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.custom | translate }}\"\n *ngIf=\"showBtns.custom\"\n (click)=\"custom()\"\n type=\"button\"\n class=\"btn\"\n [ngClass]=\"{\n 'btn-default': showBtns.next,\n 'btn-primary': !showBtns.next,\n 'btn-pending': pending\n }\"\n [disabled]=\"disabled\"\n title=\"{{ labels?.custom || 'Complete' | translate }}\"\n data-cy=\"custom\"\n >\n <span *ngIf=\"labels?.custom; else customLabel\" title=\"{{ labels?.custom | translate }}\">\n {{ labels?.custom | translate }}\n </span>\n <ng-template #customLabel>\n <span title=\"{{ 'Complete' | translate }}\">{{ 'Complete' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.next | translate }}\"\n (click)=\"next()\"\n *ngIf=\"showBtns.next\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pending }\"\n [disabled]=\"disabled\"\n title=\"{{ labels?.next || 'Next' | translate }}\"\n data-cy=\"next\"\n >\n <span *ngIf=\"labels?.next; else nextLabel\" title=\"{{ labels?.next | translate }}\">\n {{ labels?.next | translate }}\n </span>\n <ng-template #nextLabel>\n <span title=\"{{ 'Next' | translate }}\">{{ 'Next' | translate }}</span>\n </ng-template>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
15909
15923
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperButtons, decorators: [{
|
|
15910
15924
|
type: Component,
|
|
15911
15925
|
args: [{ selector: 'c8y-stepper-buttons', template: "<div class=\"text-center\">\n <button\n title=\"{{ labels?.cancel | translate }}\"\n *ngIf=\"showBtns.cancel\"\n (click)=\"cancel()\"\n type=\"button\"\n class=\"btn btn-default\"\n >\n <span *ngIf=\"labels?.cancel; else cancelLabel\" title=\"{{ labels?.cancel | translate }}\">\n {{ labels?.cancel | translate }}\n </span>\n <ng-template #cancelLabel>\n <span title=\"{{ 'Cancel' | translate }}\">{{ 'Cancel' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.back | translate }}\"\n *ngIf=\"showBtns.back\"\n type=\"button\"\n (click)=\"back()\"\n class=\"btn btn-default\"\n [disabled]=\"pending\"\n title=\"{{ labels?.back || 'Back' | translate }}\"\n data-cy=\"back\"\n >\n <span *ngIf=\"labels?.back; else backLabel\" title=\"{{ labels?.back | translate }}\">\n {{ labels?.back | translate }}\n </span>\n <ng-template #backLabel>\n <span title=\"{{ 'Back' | translate }}\">{{ 'Back' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.custom | translate }}\"\n *ngIf=\"showBtns.custom\"\n (click)=\"custom()\"\n type=\"button\"\n class=\"btn\"\n [ngClass]=\"{\n 'btn-default': showBtns.next,\n 'btn-primary': !showBtns.next,\n 'btn-pending': pending\n }\"\n [disabled]=\"disabled\"\n title=\"{{ labels?.custom || 'Complete' | translate }}\"\n data-cy=\"custom\"\n >\n <span *ngIf=\"labels?.custom; else customLabel\" title=\"{{ labels?.custom | translate }}\">\n {{ labels?.custom | translate }}\n </span>\n <ng-template #customLabel>\n <span title=\"{{ 'Complete' | translate }}\">{{ 'Complete' | translate }}</span>\n </ng-template>\n </button>\n <button\n title=\"{{ labels?.next | translate }}\"\n (click)=\"next()\"\n *ngIf=\"showBtns.next\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pending }\"\n [disabled]=\"disabled\"\n title=\"{{ labels?.next || 'Next' | translate }}\"\n data-cy=\"next\"\n >\n <span *ngIf=\"labels?.next; else nextLabel\" title=\"{{ labels?.next | translate }}\">\n {{ labels?.next | translate }}\n </span>\n <ng-template #nextLabel>\n <span title=\"{{ 'Next' | translate }}\">{{ 'Next' | translate }}</span>\n </ng-template>\n </button>\n</div>\n" }]
|
|
15912
15926
|
}], ctorParameters: function () { return [{ type: C8yStepper, decorators: [{
|
|
15913
15927
|
type: Host
|
|
15914
|
-
}] }, { type: i2$
|
|
15928
|
+
}] }, { type: i2$3.CdkStep, decorators: [{
|
|
15915
15929
|
type: Host
|
|
15916
15930
|
}] }, { type: GainsightService }]; }, propDecorators: { labels: [{
|
|
15917
15931
|
type: Input
|
|
@@ -15937,7 +15951,7 @@ class StepperOutletComponent {
|
|
|
15937
15951
|
}
|
|
15938
15952
|
}
|
|
15939
15953
|
StepperOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: StepperOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15940
|
-
StepperOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: StepperOutletComponent, selector: "c8y-stepper-outlet", inputs: { steps: "steps", showDefaultButtons: "showDefaultButtons" }, ngImport: i0, template: "<c8y-stepper \n [customClasses]=\"['p-t-32', 'p-b-32', 'm-l-48', 'm-r-48']\" \n class=\"d-flex d-col fit-h\"\n [disableDefaultIcons]=\"{ edit: true, done: false }\"\n>\n <cdk-step\n *ngFor=\"let step of steps\"\n [label]=\"step.label\"\n [state]=\"step.state\"\n [completed]=\"step.completed\"\n [optional]=\"!step.required\"\n >\n <ng-container *ngComponentOutlet=\"step.component; injector: step.injector\"></ng-container>\n <c8y-stepper-buttons *ngIf=\"showDefaultButtons\"></c8y-stepper-buttons>\n <ng-template c8yStepperIcon=\"error\">\n <span c8yIcon=\"error\"></span>\n </ng-template>\n <ng-template c8yStepperIcon=\"warning\">\n <span c8yIcon=\"warning\"></span>\n </ng-template>\n <ng-template c8yStepperIcon=\"done\">\n <span c8yIcon=\"check\"></span>\n </ng-template>\n </cdk-step>\n</c8y-stepper>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
15954
|
+
StepperOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: StepperOutletComponent, selector: "c8y-stepper-outlet", inputs: { steps: "steps", showDefaultButtons: "showDefaultButtons" }, ngImport: i0, template: "<c8y-stepper \n [customClasses]=\"['p-t-32', 'p-b-32', 'm-l-48', 'm-r-48']\" \n class=\"d-flex d-col fit-h\"\n [disableDefaultIcons]=\"{ edit: true, done: false }\"\n>\n <cdk-step\n *ngFor=\"let step of steps\"\n [label]=\"step.label\"\n [state]=\"step.state\"\n [completed]=\"step.completed\"\n [optional]=\"!step.required\"\n >\n <ng-container *ngComponentOutlet=\"step.component; injector: step.injector\"></ng-container>\n <c8y-stepper-buttons *ngIf=\"showDefaultButtons\"></c8y-stepper-buttons>\n <ng-template c8yStepperIcon=\"error\">\n <span c8yIcon=\"error\"></span>\n </ng-template>\n <ng-template c8yStepperIcon=\"warning\">\n <span c8yIcon=\"warning\"></span>\n </ng-template>\n <ng-template c8yStepperIcon=\"done\">\n <span c8yIcon=\"check\"></span>\n </ng-template>\n </cdk-step>\n</c8y-stepper>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.CdkStep, selector: "cdk-step", inputs: ["stepControl", "label", "errorMessage", "aria-label", "aria-labelledby", "state", "editable", "optional", "completed", "hasError"], outputs: ["interacted"], exportAs: ["cdkStep"] }, { kind: "component", type: C8yStepper, selector: "c8y-stepper", inputs: ["disableDefaultIcons", "disableProgressButtons", "customClasses", "hideStepProgress", "useStepLabelsAsTitlesOnly"], outputs: ["onStepChange"] }, { kind: "directive", type: C8yStepperIcon, selector: "ng-template[c8yStepperIcon]", inputs: ["c8yStepperIcon"] }, { kind: "component", type: C8yStepperButtons, selector: "c8y-stepper-buttons", inputs: ["labels", "pending", "disabled", "showButtons"], outputs: ["onCancel", "onNext", "onBack", "onCustom"] }] });
|
|
15941
15955
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: StepperOutletComponent, decorators: [{
|
|
15942
15956
|
type: Component,
|
|
15943
15957
|
args: [{ selector: 'c8y-stepper-outlet', template: "<c8y-stepper \n [customClasses]=\"['p-t-32', 'p-b-32', 'm-l-48', 'm-r-48']\" \n class=\"d-flex d-col fit-h\"\n [disableDefaultIcons]=\"{ edit: true, done: false }\"\n>\n <cdk-step\n *ngFor=\"let step of steps\"\n [label]=\"step.label\"\n [state]=\"step.state\"\n [completed]=\"step.completed\"\n [optional]=\"!step.required\"\n >\n <ng-container *ngComponentOutlet=\"step.component; injector: step.injector\"></ng-container>\n <c8y-stepper-buttons *ngIf=\"showDefaultButtons\"></c8y-stepper-buttons>\n <ng-template c8yStepperIcon=\"error\">\n <span c8yIcon=\"error\"></span>\n </ng-template>\n <ng-template c8yStepperIcon=\"warning\">\n <span c8yIcon=\"warning\"></span>\n </ng-template>\n <ng-template c8yStepperIcon=\"done\">\n <span c8yIcon=\"check\"></span>\n </ng-template>\n </cdk-step>\n</c8y-stepper>\n" }]
|
|
@@ -16071,7 +16085,7 @@ class PropertiesListComponent {
|
|
|
16071
16085
|
}
|
|
16072
16086
|
}
|
|
16073
16087
|
PropertiesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PropertiesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16074
|
-
PropertiesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: { properties: "properties", title: "title", icon: "icon", data: "data", groups: "groups", noParse: "noParse", emptyLabel: "emptyLabel" }, ngImport: i0, template: "<p class=\"m-b-8\" *ngIf=\"title\">\n <i *ngIf=\"icon\" [c8yIcon]=\"icon\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ title | translate }}</span>\n</p>\n<ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex\"\n *ngFor=\"let prop of properties; let i = index; trackBy: identity\"\n [ngClass]=\"{'separator-top-bottom': i === 0,\n 'separator-bottom': i > 0}\"\n >\n <div\n [ngClass]=\"{\n 'm-l-16': hasGroup(prop),\n legend: prop.type === 'group',\n 'form-block': prop.type === 'group',\n 'm-b-0': prop.type === 'group',\n 'm-t-4': prop.type === 'group'\n }\"\n class=\"small text-medium text-nowrap m-r-4\"\n >\n {{ prop.label | translate }}\n </div>\n <span [ngSwitch]=\"prop.type\" class=\"m-l-auto\">\n <span *ngSwitchCase=\"'string'\" class=\"m-l-auto\">{{ prop.value }}</span>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"prop.action($event, prop.value)\"\n class=\"m-l-auto pointer text-truncate m-l-4\"\n >{{ prop.value }}</a>\n <span *ngSwitchCase=\"'array'\">\n <span\n class=\"label label-info m-l-4\"\n *ngFor=\"let propTag of prop.value\"\n (click)=\"prop.action && prop.action($event, propTag)\"\n [ngClass]=\"{\n pointer: prop.action\n }\"\n >{{ propTag }}</span>\n </span>\n </span>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
16088
|
+
PropertiesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: { properties: "properties", title: "title", icon: "icon", data: "data", groups: "groups", noParse: "noParse", emptyLabel: "emptyLabel" }, ngImport: i0, template: "<p class=\"m-b-8\" *ngIf=\"title\">\n <i *ngIf=\"icon\" [c8yIcon]=\"icon\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ title | translate }}</span>\n</p>\n<ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex\"\n *ngFor=\"let prop of properties; let i = index; trackBy: identity\"\n [ngClass]=\"{'separator-top-bottom': i === 0,\n 'separator-bottom': i > 0}\"\n >\n <div\n [ngClass]=\"{\n 'm-l-16': hasGroup(prop),\n legend: prop.type === 'group',\n 'form-block': prop.type === 'group',\n 'm-b-0': prop.type === 'group',\n 'm-t-4': prop.type === 'group'\n }\"\n class=\"small text-medium text-nowrap m-r-4\"\n >\n {{ prop.label | translate }}\n </div>\n <span [ngSwitch]=\"prop.type\" class=\"m-l-auto\">\n <span *ngSwitchCase=\"'string'\" class=\"m-l-auto\">{{ prop.value }}</span>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"prop.action($event, prop.value)\"\n class=\"m-l-auto pointer text-truncate m-l-4\"\n >{{ prop.value }}</a>\n <span *ngSwitchCase=\"'array'\">\n <span\n class=\"label label-info m-l-4\"\n *ngFor=\"let propTag of prop.value\"\n (click)=\"prop.action && prop.action($event, propTag)\"\n [ngClass]=\"{\n pointer: prop.action\n }\"\n >{{ propTag }}</span>\n </span>\n </span>\n </li>\n</ul>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
16075
16089
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PropertiesListComponent, decorators: [{
|
|
16076
16090
|
type: Component,
|
|
16077
16091
|
args: [{ selector: 'c8y-properties-list', template: "<p class=\"m-b-8\" *ngIf=\"title\">\n <i *ngIf=\"icon\" [c8yIcon]=\"icon\" class=\"text-info m-r-8\"></i>\n <span class=\"text-label-small\">{{ title | translate }}</span>\n</p>\n<ul class=\"list-unstyled small\">\n <li\n class=\"p-t-4 p-b-4 d-flex\"\n *ngFor=\"let prop of properties; let i = index; trackBy: identity\"\n [ngClass]=\"{'separator-top-bottom': i === 0,\n 'separator-bottom': i > 0}\"\n >\n <div\n [ngClass]=\"{\n 'm-l-16': hasGroup(prop),\n legend: prop.type === 'group',\n 'form-block': prop.type === 'group',\n 'm-b-0': prop.type === 'group',\n 'm-t-4': prop.type === 'group'\n }\"\n class=\"small text-medium text-nowrap m-r-4\"\n >\n {{ prop.label | translate }}\n </div>\n <span [ngSwitch]=\"prop.type\" class=\"m-l-auto\">\n <span *ngSwitchCase=\"'string'\" class=\"m-l-auto\">{{ prop.value }}</span>\n <a\n *ngSwitchCase=\"'link'\"\n (click)=\"prop.action($event, prop.value)\"\n class=\"m-l-auto pointer text-truncate m-l-4\"\n >{{ prop.value }}</a>\n <span *ngSwitchCase=\"'array'\">\n <span\n class=\"label label-info m-l-4\"\n *ngFor=\"let propTag of prop.value\"\n (click)=\"prop.action && prop.action($event, propTag)\"\n [ngClass]=\"{\n pointer: prop.action\n }\"\n >{{ propTag }}</span>\n </span>\n </span>\n </li>\n</ul>\n" }]
|
|
@@ -16292,7 +16306,7 @@ class SetupComponent {
|
|
|
16292
16306
|
}
|
|
16293
16307
|
}
|
|
16294
16308
|
SetupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupComponent, deps: [{ token: OptionsService }, { token: StepperService }, { token: AppStateService }, { token: AlertService }, { token: Permissions }, { token: SetupService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16295
|
-
SetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SetupComponent, selector: "c8y-setup", ngImport: i0, template: "<c8y-title>\n {{ options.name | humanizeAppName | async }}\n</c8y-title>\n\n<div\n class=\"card content-fullpage fadeInRightBig animated\"\n *ngIf=\"currentSetupState !== setupState.START\"\n>\n <c8y-stepper-outlet\n [showDefaultButtons]=\"false\"\n [steps]=\"steps\"\n class=\"d-contents\"\n ></c8y-stepper-outlet>\n</div>\n\n<div\n class=\"card content-fullpage d-flex d-col fadeInUpBig animated\"\n *ngIf=\"currentSetupState === setupState.START\"\n>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24\">\n <svg class=\"p-t-32\" viewBox=\"0 0 360 190\" style=\"max-width: 450px; margin: auto\">\n <g\n id=\"ecosystem-welcome-illustration\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g id=\"medium-img\">\n <g id=\"M---Nothing-found---illustration\" transform=\"translate(27.000000, 0.000000)\">\n <path\n d=\"M41.9882163,184.153177 C24.3512964,165.028818 14.796713,138.637202 18.0717117,113.128248 C21.3467105,87.6192947 38.0071399,63.7138452 61.8485298,52.9453596 C71.0829585,49.0513414 80.8096047,46.3893689 90.76767,45.0308169 C98.489456,43.8098001 118.605159,43.8098001 134.379236,43.8098001 C145.406066,43.8098001 181.235754,38.969866 207.015103,16.5355211 C213.745375,10.6511027 239.269332,-7.69357146 271.478495,5.11974949 C293.036399,13.6962892 308.780431,29.0693321 312.911736,38.3078689 C331.314825,79.4105311 320.017582,129.634042 291.233648,164.558065 C285.720232,171.251591 279.470694,177.592051 271.70384,181.608167 C268.726702,182.834918 265.624451,183.747258 262.449715,184.32971 L41.9882163,184.153177 Z\"\n id=\"Path\"\n fill=\"#CDE6F9\"\n fill-rule=\"nonzero\"\n ></path>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"28.1633729\"\n cy=\"162.880435\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"65.7145367\"\n cy=\"65.6884059\"\n rx=\"4.02333899\"\n ry=\"3.35144928\"\n ></ellipse>\n <g\n id=\"Group\"\n opacity=\"0.8\"\n transform=\"translate(8.046677, 16.757247)\"\n fill=\"#7BCAEF\"\n fill-rule=\"nonzero\"\n >\n <path\n d=\"M12.8344513,8.04347826 L2.50788129,8.04347826 C1.90488763,8.22105727 1.25665804,7.99364432 0.892621563,7.47681021 C0.528585083,6.95997611 0.528585083,6.26707703 0.892621563,5.75024293 C1.25665804,5.23340882 1.90488763,5.00599587 2.50788129,5.18357488 L12.8344513,5.18357488 C13.437445,5.00599587 14.0856746,5.23340882 14.4497111,5.75024293 C14.8137476,6.26707703 14.8137476,6.95997611 14.4497111,7.47681021 C14.0856746,7.99364432 13.437445,8.22105727 12.8344513,8.04347826 Z\"\n id=\"Path\"\n ></path>\n <path\n d=\"M7.64166184,13.2866345 C6.82691795,13.2866345 6.16643754,12.6197478 6.16643754,11.7971014 L6.16643754,1.37037037 C6.35002101,0.734836286 6.92699763,0.297906603 7.58265287,0.297906603 C8.2383081,0.297906603 8.81528471,0.734836286 8.99888356,1.37037037 L8.99888356,11.7971014 C9.00133839,12.5753731 8.40999101,13.2243764 7.64166184,13.2866345 Z\"\n id=\"Path\"\n ></path>\n </g>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"2.68222598\"\n cy=\"90.4891305\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"257.493695\"\n cy=\"157.518116\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#14629F\"\n fill-rule=\"nonzero\"\n cx=\"299.738754\"\n cy=\"155.507247\"\n rx=\"2.01166949\"\n ry=\"2.01086957\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#96CAF3\"\n fill-rule=\"nonzero\"\n cx=\"260.175921\"\n cy=\"59.6557971\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n cx=\"329.913796\"\n cy=\"111.938406\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n stroke=\"#96CAF3\"\n cx=\"95.2190226\"\n cy=\"144.782609\"\n rx=\"4.02333899\"\n ry=\"3.35144928\"\n ></ellipse>\n <g\n id=\"Group\"\n opacity=\"0.6\"\n transform=\"translate(273.587050, 121.322464)\"\n fill=\"#14629F\"\n fill-rule=\"nonzero\"\n >\n <path\n d=\"M12.1263437,8.01368761 L1.79977363,8.01368761 C1.17034461,7.82832349 0.737612147,7.24575058 0.737612147,6.5837359 C0.737612147,5.92172124 1.17034461,5.33914833 1.79977363,5.15378421 L12.1263437,5.15378421 C12.7293374,4.97620521 13.3775669,5.20361817 13.7416034,5.72045226 C14.1056399,6.23728637 14.1056399,6.93018545 13.7416034,7.44701956 C13.3775669,7.96385365 12.7293374,8.19126661 12.1263437,8.01368761 L12.1263437,8.01368761 Z\"\n id=\"Path\"\n ></path>\n <path\n d=\"M6.94830642,13.2419485 C6.13356254,13.2419485 5.47308212,12.5750618 5.47308212,11.7524155 L5.47308212,1.32568438 C5.6566656,0.690150295 6.23364221,0.253220612 6.88929744,0.253220612 C7.54495269,0.253220612 8.1219293,0.690150295 8.30552815,1.32568438 L8.30552815,11.7524155 C8.30798297,12.5306871 7.71663558,13.1796904 6.94830642,13.2419485 Z\"\n id=\"Path\"\n ></path>\n </g>\n <rect\n id=\"Rectangle\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n x=\"107.28904\"\n y=\"128.025362\"\n width=\"109.971265\"\n height=\"48.2608695\"\n ></rect>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"205.744516 91.8297102 121.555988 91.8297102 107.28904 129.365942 217.260306 129.365942\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"93.8779095 114.917472 103.478057 98.5326086 118.017943 121.471417 107.035845 128.025362\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"209.213627 123.316736 216.813268 129.365942 232.012548 114.683402 221.373051 98.5326086\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#96CAF3\"\n fill-rule=\"nonzero\"\n points=\"214.884986 105.235507 111.648803 105.235507 107.28904 129.365942 217.260306 129.365942\"\n ></polygon>\n <path\n d=\"M91.6761446,30.3423163 C92.3222173,30.3423163 92.8459628,30.8537275 92.8459628,31.4845853 C92.8459628,32.1154431 92.3222173,32.6268545 91.6761446,32.6268545 C91.0300718,32.6268545 90.5063264,32.1154431 90.5063264,31.4845853 C90.5289441,30.8631053 91.0396757,30.3644014 91.6761446,30.3423163 Z M91.8662401,24.6309708 C92.4940745,24.6065819 93.1037929,24.8394323 93.5480901,25.2732662 C93.9923872,25.7071004 94.2308535,26.30246 94.2058764,26.9155089 L94.2058764,27.5152002 L89.5266036,27.5152002 L89.5266036,26.9155089 C89.4960305,26.2895723 89.7404154,25.6806341 90.1983788,25.2416359 C90.6563421,24.8026375 91.2843716,24.5752894 91.924731,24.6166924 L91.8662401,24.6309708 Z M91.8662401,23.4744232 C90.9292048,23.466734 90.0282593,23.8268063 89.3656519,24.4738094 C88.7030445,25.1208125 88.3342881,26.0005407 88.3421627,26.9155089 L88.3421627,27.5152002 L87.1723446,27.5152002 L87.1723446,35.5253623 L96.5601355,35.5253623 L96.5601355,27.5009219 L95.3903173,27.5009219 L95.3903173,26.9012306 C95.3981063,25.9961621 95.037351,25.1251451 94.3874206,24.4798095 C93.7374901,23.8344738 92.8516283,23.4676871 91.924731,23.460145 L91.8662401,23.4744232 Z\"\n id=\"Shape\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n ></path>\n <path\n d=\"M254.811469,24.8007247 L248.113249,12.7355072 L241.400339,24.8007247 L254.811469,24.8007247 Z M248.7155,22.7874058 L247.466929,22.7874058 L247.466929,21.6411367 L248.671434,21.6411367 L248.7155,22.7874058 Z M248.7155,20.5095632 L247.466929,20.5095632 L247.466929,17.5704117 L248.671434,17.5704117 L248.7155,20.5095632 Z\"\n id=\"Shape\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n ></path>\n <line\n x1=\"201.166949\"\n y1=\"40.8876812\"\n x2=\"187.755818\"\n y2=\"60.9963769\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n <line\n x1=\"165.969438\"\n y1=\"31.5036231\"\n x2=\"165.285471\"\n y2=\"55.6340579\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n <line\n x1=\"130.08796\"\n y1=\"44.9094203\"\n x2=\"146.181316\"\n y2=\"63.6775362\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n </g>\n <polygon\n id=\"Fill-56\"\n fill=\"#A5D1FE\"\n fill-rule=\"nonzero\"\n points=\"0 185 335 185 335 175 0 175\"\n ></polygon>\n </g>\n </g>\n </svg>\n <h1\n class=\"p-t-16 p-b-16 text-center text-medium\"\n ngNonBindable\n translate\n [translateParams]=\"{ appName: options.name | humanizeAppName | async }\"\n >\n Welcome to {{ appName }}\n </h1>\n <p class=\"lead text-normal\" translate *ngIf=\"hasRole\">\n This application (or any plugin that you added recently) has pre-requirements that needs\n to be configured first. This wizard will guide you through the steps that are necessary\n to get your customized application up and running.\n </p>\n <div class=\"flex-grow\" *ngIf=\"properties.length > 0\">\n <c8y-properties-list\n icon=\"info\"\n [properties]=\"properties\"\n [data]=\"options\"\n [title]=\"'Application properties' | translate\"\n ></c8y-properties-list>\n </div>\n <div class=\"alert alert-danger m-32\" *ngIf=\"!hasRole\">\n <strong translate>No permission</strong>\n <div translate>\n You don't have sufficient rights to setup this application. Contact an application\n administrator to setup the required steps.\n </div>\n </div>\n <div class=\"alert alert-danger m-32\" *ngIf=\"!isOwner\">\n <strong translate>Not the owner</strong>\n <div translate>\n The current application is not owned by this tenant. Clone the application before\n running the setup.\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn\"\n (click)=\"skip()\"\n translate\n *ngIf=\"canSkip\"\n [title]=\"\n 'You can skip the setup now. It will be shown again as soon as you restart the application.'\n | translate\n \"\n >\n Skip\n </button>\n\n <button\n class=\"btn btn-primary\"\n (click)=\"start()\"\n translate\n [disabled]=\"!hasRole || !isOwner\"\n [title]=\"'Start the setup wizard.' | translate\"\n >\n Start\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: StepperOutletComponent, selector: "c8y-stepper-outlet", inputs: ["steps", "showDefaultButtons"] }, { kind: "component", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: ["properties", "title", "icon", "data", "groups", "noParse", "emptyLabel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }, { kind: "pipe", type: HumanizeAppNamePipe, name: "humanizeAppName" }] });
|
|
16309
|
+
SetupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SetupComponent, selector: "c8y-setup", ngImport: i0, template: "<c8y-title>\n {{ options.name | humanizeAppName | async }}\n</c8y-title>\n\n<div\n class=\"card content-fullpage fadeInRightBig animated\"\n *ngIf=\"currentSetupState !== setupState.START\"\n>\n <c8y-stepper-outlet\n [showDefaultButtons]=\"false\"\n [steps]=\"steps\"\n class=\"d-contents\"\n ></c8y-stepper-outlet>\n</div>\n\n<div\n class=\"card content-fullpage d-flex d-col fadeInUpBig animated\"\n *ngIf=\"currentSetupState === setupState.START\"\n>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24\">\n <svg class=\"p-t-32\" viewBox=\"0 0 360 190\" style=\"max-width: 450px; margin: auto\">\n <g\n id=\"ecosystem-welcome-illustration\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g id=\"medium-img\">\n <g id=\"M---Nothing-found---illustration\" transform=\"translate(27.000000, 0.000000)\">\n <path\n d=\"M41.9882163,184.153177 C24.3512964,165.028818 14.796713,138.637202 18.0717117,113.128248 C21.3467105,87.6192947 38.0071399,63.7138452 61.8485298,52.9453596 C71.0829585,49.0513414 80.8096047,46.3893689 90.76767,45.0308169 C98.489456,43.8098001 118.605159,43.8098001 134.379236,43.8098001 C145.406066,43.8098001 181.235754,38.969866 207.015103,16.5355211 C213.745375,10.6511027 239.269332,-7.69357146 271.478495,5.11974949 C293.036399,13.6962892 308.780431,29.0693321 312.911736,38.3078689 C331.314825,79.4105311 320.017582,129.634042 291.233648,164.558065 C285.720232,171.251591 279.470694,177.592051 271.70384,181.608167 C268.726702,182.834918 265.624451,183.747258 262.449715,184.32971 L41.9882163,184.153177 Z\"\n id=\"Path\"\n fill=\"#CDE6F9\"\n fill-rule=\"nonzero\"\n ></path>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"28.1633729\"\n cy=\"162.880435\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"65.7145367\"\n cy=\"65.6884059\"\n rx=\"4.02333899\"\n ry=\"3.35144928\"\n ></ellipse>\n <g\n id=\"Group\"\n opacity=\"0.8\"\n transform=\"translate(8.046677, 16.757247)\"\n fill=\"#7BCAEF\"\n fill-rule=\"nonzero\"\n >\n <path\n d=\"M12.8344513,8.04347826 L2.50788129,8.04347826 C1.90488763,8.22105727 1.25665804,7.99364432 0.892621563,7.47681021 C0.528585083,6.95997611 0.528585083,6.26707703 0.892621563,5.75024293 C1.25665804,5.23340882 1.90488763,5.00599587 2.50788129,5.18357488 L12.8344513,5.18357488 C13.437445,5.00599587 14.0856746,5.23340882 14.4497111,5.75024293 C14.8137476,6.26707703 14.8137476,6.95997611 14.4497111,7.47681021 C14.0856746,7.99364432 13.437445,8.22105727 12.8344513,8.04347826 Z\"\n id=\"Path\"\n ></path>\n <path\n d=\"M7.64166184,13.2866345 C6.82691795,13.2866345 6.16643754,12.6197478 6.16643754,11.7971014 L6.16643754,1.37037037 C6.35002101,0.734836286 6.92699763,0.297906603 7.58265287,0.297906603 C8.2383081,0.297906603 8.81528471,0.734836286 8.99888356,1.37037037 L8.99888356,11.7971014 C9.00133839,12.5753731 8.40999101,13.2243764 7.64166184,13.2866345 Z\"\n id=\"Path\"\n ></path>\n </g>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"2.68222598\"\n cy=\"90.4891305\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"257.493695\"\n cy=\"157.518116\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#14629F\"\n fill-rule=\"nonzero\"\n cx=\"299.738754\"\n cy=\"155.507247\"\n rx=\"2.01166949\"\n ry=\"2.01086957\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#96CAF3\"\n fill-rule=\"nonzero\"\n cx=\"260.175921\"\n cy=\"59.6557971\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n cx=\"329.913796\"\n cy=\"111.938406\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n stroke=\"#96CAF3\"\n cx=\"95.2190226\"\n cy=\"144.782609\"\n rx=\"4.02333899\"\n ry=\"3.35144928\"\n ></ellipse>\n <g\n id=\"Group\"\n opacity=\"0.6\"\n transform=\"translate(273.587050, 121.322464)\"\n fill=\"#14629F\"\n fill-rule=\"nonzero\"\n >\n <path\n d=\"M12.1263437,8.01368761 L1.79977363,8.01368761 C1.17034461,7.82832349 0.737612147,7.24575058 0.737612147,6.5837359 C0.737612147,5.92172124 1.17034461,5.33914833 1.79977363,5.15378421 L12.1263437,5.15378421 C12.7293374,4.97620521 13.3775669,5.20361817 13.7416034,5.72045226 C14.1056399,6.23728637 14.1056399,6.93018545 13.7416034,7.44701956 C13.3775669,7.96385365 12.7293374,8.19126661 12.1263437,8.01368761 L12.1263437,8.01368761 Z\"\n id=\"Path\"\n ></path>\n <path\n d=\"M6.94830642,13.2419485 C6.13356254,13.2419485 5.47308212,12.5750618 5.47308212,11.7524155 L5.47308212,1.32568438 C5.6566656,0.690150295 6.23364221,0.253220612 6.88929744,0.253220612 C7.54495269,0.253220612 8.1219293,0.690150295 8.30552815,1.32568438 L8.30552815,11.7524155 C8.30798297,12.5306871 7.71663558,13.1796904 6.94830642,13.2419485 Z\"\n id=\"Path\"\n ></path>\n </g>\n <rect\n id=\"Rectangle\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n x=\"107.28904\"\n y=\"128.025362\"\n width=\"109.971265\"\n height=\"48.2608695\"\n ></rect>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"205.744516 91.8297102 121.555988 91.8297102 107.28904 129.365942 217.260306 129.365942\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"93.8779095 114.917472 103.478057 98.5326086 118.017943 121.471417 107.035845 128.025362\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"209.213627 123.316736 216.813268 129.365942 232.012548 114.683402 221.373051 98.5326086\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#96CAF3\"\n fill-rule=\"nonzero\"\n points=\"214.884986 105.235507 111.648803 105.235507 107.28904 129.365942 217.260306 129.365942\"\n ></polygon>\n <path\n d=\"M91.6761446,30.3423163 C92.3222173,30.3423163 92.8459628,30.8537275 92.8459628,31.4845853 C92.8459628,32.1154431 92.3222173,32.6268545 91.6761446,32.6268545 C91.0300718,32.6268545 90.5063264,32.1154431 90.5063264,31.4845853 C90.5289441,30.8631053 91.0396757,30.3644014 91.6761446,30.3423163 Z M91.8662401,24.6309708 C92.4940745,24.6065819 93.1037929,24.8394323 93.5480901,25.2732662 C93.9923872,25.7071004 94.2308535,26.30246 94.2058764,26.9155089 L94.2058764,27.5152002 L89.5266036,27.5152002 L89.5266036,26.9155089 C89.4960305,26.2895723 89.7404154,25.6806341 90.1983788,25.2416359 C90.6563421,24.8026375 91.2843716,24.5752894 91.924731,24.6166924 L91.8662401,24.6309708 Z M91.8662401,23.4744232 C90.9292048,23.466734 90.0282593,23.8268063 89.3656519,24.4738094 C88.7030445,25.1208125 88.3342881,26.0005407 88.3421627,26.9155089 L88.3421627,27.5152002 L87.1723446,27.5152002 L87.1723446,35.5253623 L96.5601355,35.5253623 L96.5601355,27.5009219 L95.3903173,27.5009219 L95.3903173,26.9012306 C95.3981063,25.9961621 95.037351,25.1251451 94.3874206,24.4798095 C93.7374901,23.8344738 92.8516283,23.4676871 91.924731,23.460145 L91.8662401,23.4744232 Z\"\n id=\"Shape\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n ></path>\n <path\n d=\"M254.811469,24.8007247 L248.113249,12.7355072 L241.400339,24.8007247 L254.811469,24.8007247 Z M248.7155,22.7874058 L247.466929,22.7874058 L247.466929,21.6411367 L248.671434,21.6411367 L248.7155,22.7874058 Z M248.7155,20.5095632 L247.466929,20.5095632 L247.466929,17.5704117 L248.671434,17.5704117 L248.7155,20.5095632 Z\"\n id=\"Shape\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n ></path>\n <line\n x1=\"201.166949\"\n y1=\"40.8876812\"\n x2=\"187.755818\"\n y2=\"60.9963769\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n <line\n x1=\"165.969438\"\n y1=\"31.5036231\"\n x2=\"165.285471\"\n y2=\"55.6340579\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n <line\n x1=\"130.08796\"\n y1=\"44.9094203\"\n x2=\"146.181316\"\n y2=\"63.6775362\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n </g>\n <polygon\n id=\"Fill-56\"\n fill=\"#A5D1FE\"\n fill-rule=\"nonzero\"\n points=\"0 185 335 185 335 175 0 175\"\n ></polygon>\n </g>\n </g>\n </svg>\n <h1\n class=\"p-t-16 p-b-16 text-center text-medium\"\n ngNonBindable\n translate\n [translateParams]=\"{ appName: options.name | humanizeAppName | async }\"\n >\n Welcome to {{ appName }}\n </h1>\n <p class=\"lead text-normal\" translate *ngIf=\"hasRole\">\n This application (or any plugin that you added recently) has pre-requirements that needs\n to be configured first. This wizard will guide you through the steps that are necessary\n to get your customized application up and running.\n </p>\n <div class=\"flex-grow\" *ngIf=\"properties.length > 0\">\n <c8y-properties-list\n icon=\"info\"\n [properties]=\"properties\"\n [data]=\"options\"\n [title]=\"'Application properties' | translate\"\n ></c8y-properties-list>\n </div>\n <div class=\"alert alert-danger m-32\" *ngIf=\"!hasRole\">\n <strong translate>No permission</strong>\n <div translate>\n You don't have sufficient rights to setup this application. Contact an application\n administrator to setup the required steps.\n </div>\n </div>\n <div class=\"alert alert-danger m-32\" *ngIf=\"!isOwner\">\n <strong translate>Not the owner</strong>\n <div translate>\n The current application is not owned by this tenant. Clone the application before\n running the setup.\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn\"\n (click)=\"skip()\"\n translate\n *ngIf=\"canSkip\"\n [title]=\"\n 'You can skip the setup now. It will be shown again as soon as you restart the application.'\n | translate\n \"\n >\n Skip\n </button>\n\n <button\n class=\"btn btn-primary\"\n (click)=\"start()\"\n translate\n [disabled]=\"!hasRole || !isOwner\"\n [title]=\"'Start the setup wizard.' | translate\"\n >\n Start\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: StepperOutletComponent, selector: "c8y-stepper-outlet", inputs: ["steps", "showDefaultButtons"] }, { kind: "component", type: PropertiesListComponent, selector: "c8y-properties-list", inputs: ["properties", "title", "icon", "data", "groups", "noParse", "emptyLabel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: HumanizeAppNamePipe, name: "humanizeAppName" }] });
|
|
16296
16310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupComponent, decorators: [{
|
|
16297
16311
|
type: Component,
|
|
16298
16312
|
args: [{ selector: 'c8y-setup', template: "<c8y-title>\n {{ options.name | humanizeAppName | async }}\n</c8y-title>\n\n<div\n class=\"card content-fullpage fadeInRightBig animated\"\n *ngIf=\"currentSetupState !== setupState.START\"\n>\n <c8y-stepper-outlet\n [showDefaultButtons]=\"false\"\n [steps]=\"steps\"\n class=\"d-contents\"\n ></c8y-stepper-outlet>\n</div>\n\n<div\n class=\"card content-fullpage d-flex d-col fadeInUpBig animated\"\n *ngIf=\"currentSetupState === setupState.START\"\n>\n <div class=\"inner-scroll flex-grow\">\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24\">\n <svg class=\"p-t-32\" viewBox=\"0 0 360 190\" style=\"max-width: 450px; margin: auto\">\n <g\n id=\"ecosystem-welcome-illustration\"\n stroke=\"none\"\n stroke-width=\"1\"\n fill=\"none\"\n fill-rule=\"evenodd\"\n >\n <g id=\"medium-img\">\n <g id=\"M---Nothing-found---illustration\" transform=\"translate(27.000000, 0.000000)\">\n <path\n d=\"M41.9882163,184.153177 C24.3512964,165.028818 14.796713,138.637202 18.0717117,113.128248 C21.3467105,87.6192947 38.0071399,63.7138452 61.8485298,52.9453596 C71.0829585,49.0513414 80.8096047,46.3893689 90.76767,45.0308169 C98.489456,43.8098001 118.605159,43.8098001 134.379236,43.8098001 C145.406066,43.8098001 181.235754,38.969866 207.015103,16.5355211 C213.745375,10.6511027 239.269332,-7.69357146 271.478495,5.11974949 C293.036399,13.6962892 308.780431,29.0693321 312.911736,38.3078689 C331.314825,79.4105311 320.017582,129.634042 291.233648,164.558065 C285.720232,171.251591 279.470694,177.592051 271.70384,181.608167 C268.726702,182.834918 265.624451,183.747258 262.449715,184.32971 L41.9882163,184.153177 Z\"\n id=\"Path\"\n fill=\"#CDE6F9\"\n fill-rule=\"nonzero\"\n ></path>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"28.1633729\"\n cy=\"162.880435\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"65.7145367\"\n cy=\"65.6884059\"\n rx=\"4.02333899\"\n ry=\"3.35144928\"\n ></ellipse>\n <g\n id=\"Group\"\n opacity=\"0.8\"\n transform=\"translate(8.046677, 16.757247)\"\n fill=\"#7BCAEF\"\n fill-rule=\"nonzero\"\n >\n <path\n d=\"M12.8344513,8.04347826 L2.50788129,8.04347826 C1.90488763,8.22105727 1.25665804,7.99364432 0.892621563,7.47681021 C0.528585083,6.95997611 0.528585083,6.26707703 0.892621563,5.75024293 C1.25665804,5.23340882 1.90488763,5.00599587 2.50788129,5.18357488 L12.8344513,5.18357488 C13.437445,5.00599587 14.0856746,5.23340882 14.4497111,5.75024293 C14.8137476,6.26707703 14.8137476,6.95997611 14.4497111,7.47681021 C14.0856746,7.99364432 13.437445,8.22105727 12.8344513,8.04347826 Z\"\n id=\"Path\"\n ></path>\n <path\n d=\"M7.64166184,13.2866345 C6.82691795,13.2866345 6.16643754,12.6197478 6.16643754,11.7971014 L6.16643754,1.37037037 C6.35002101,0.734836286 6.92699763,0.297906603 7.58265287,0.297906603 C8.2383081,0.297906603 8.81528471,0.734836286 8.99888356,1.37037037 L8.99888356,11.7971014 C9.00133839,12.5753731 8.40999101,13.2243764 7.64166184,13.2866345 Z\"\n id=\"Path\"\n ></path>\n </g>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"2.68222598\"\n cy=\"90.4891305\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n cx=\"257.493695\"\n cy=\"157.518116\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#14629F\"\n fill-rule=\"nonzero\"\n cx=\"299.738754\"\n cy=\"155.507247\"\n rx=\"2.01166949\"\n ry=\"2.01086957\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n fill=\"#96CAF3\"\n fill-rule=\"nonzero\"\n cx=\"260.175921\"\n cy=\"59.6557971\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n cx=\"329.913796\"\n cy=\"111.938406\"\n rx=\"2.68222598\"\n ry=\"2.68115941\"\n ></ellipse>\n <ellipse\n id=\"Oval\"\n stroke=\"#96CAF3\"\n cx=\"95.2190226\"\n cy=\"144.782609\"\n rx=\"4.02333899\"\n ry=\"3.35144928\"\n ></ellipse>\n <g\n id=\"Group\"\n opacity=\"0.6\"\n transform=\"translate(273.587050, 121.322464)\"\n fill=\"#14629F\"\n fill-rule=\"nonzero\"\n >\n <path\n d=\"M12.1263437,8.01368761 L1.79977363,8.01368761 C1.17034461,7.82832349 0.737612147,7.24575058 0.737612147,6.5837359 C0.737612147,5.92172124 1.17034461,5.33914833 1.79977363,5.15378421 L12.1263437,5.15378421 C12.7293374,4.97620521 13.3775669,5.20361817 13.7416034,5.72045226 C14.1056399,6.23728637 14.1056399,6.93018545 13.7416034,7.44701956 C13.3775669,7.96385365 12.7293374,8.19126661 12.1263437,8.01368761 L12.1263437,8.01368761 Z\"\n id=\"Path\"\n ></path>\n <path\n d=\"M6.94830642,13.2419485 C6.13356254,13.2419485 5.47308212,12.5750618 5.47308212,11.7524155 L5.47308212,1.32568438 C5.6566656,0.690150295 6.23364221,0.253220612 6.88929744,0.253220612 C7.54495269,0.253220612 8.1219293,0.690150295 8.30552815,1.32568438 L8.30552815,11.7524155 C8.30798297,12.5306871 7.71663558,13.1796904 6.94830642,13.2419485 Z\"\n id=\"Path\"\n ></path>\n </g>\n <rect\n id=\"Rectangle\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n x=\"107.28904\"\n y=\"128.025362\"\n width=\"109.971265\"\n height=\"48.2608695\"\n ></rect>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"205.744516 91.8297102 121.555988 91.8297102 107.28904 129.365942 217.260306 129.365942\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"93.8779095 114.917472 103.478057 98.5326086 118.017943 121.471417 107.035845 128.025362\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n points=\"209.213627 123.316736 216.813268 129.365942 232.012548 114.683402 221.373051 98.5326086\"\n ></polygon>\n <polygon\n id=\"Path\"\n fill=\"#96CAF3\"\n fill-rule=\"nonzero\"\n points=\"214.884986 105.235507 111.648803 105.235507 107.28904 129.365942 217.260306 129.365942\"\n ></polygon>\n <path\n d=\"M91.6761446,30.3423163 C92.3222173,30.3423163 92.8459628,30.8537275 92.8459628,31.4845853 C92.8459628,32.1154431 92.3222173,32.6268545 91.6761446,32.6268545 C91.0300718,32.6268545 90.5063264,32.1154431 90.5063264,31.4845853 C90.5289441,30.8631053 91.0396757,30.3644014 91.6761446,30.3423163 Z M91.8662401,24.6309708 C92.4940745,24.6065819 93.1037929,24.8394323 93.5480901,25.2732662 C93.9923872,25.7071004 94.2308535,26.30246 94.2058764,26.9155089 L94.2058764,27.5152002 L89.5266036,27.5152002 L89.5266036,26.9155089 C89.4960305,26.2895723 89.7404154,25.6806341 90.1983788,25.2416359 C90.6563421,24.8026375 91.2843716,24.5752894 91.924731,24.6166924 L91.8662401,24.6309708 Z M91.8662401,23.4744232 C90.9292048,23.466734 90.0282593,23.8268063 89.3656519,24.4738094 C88.7030445,25.1208125 88.3342881,26.0005407 88.3421627,26.9155089 L88.3421627,27.5152002 L87.1723446,27.5152002 L87.1723446,35.5253623 L96.5601355,35.5253623 L96.5601355,27.5009219 L95.3903173,27.5009219 L95.3903173,26.9012306 C95.3981063,25.9961621 95.037351,25.1251451 94.3874206,24.4798095 C93.7374901,23.8344738 92.8516283,23.4676871 91.924731,23.460145 L91.8662401,23.4744232 Z\"\n id=\"Shape\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n ></path>\n <path\n d=\"M254.811469,24.8007247 L248.113249,12.7355072 L241.400339,24.8007247 L254.811469,24.8007247 Z M248.7155,22.7874058 L247.466929,22.7874058 L247.466929,21.6411367 L248.671434,21.6411367 L248.7155,22.7874058 Z M248.7155,20.5095632 L247.466929,20.5095632 L247.466929,17.5704117 L248.671434,17.5704117 L248.7155,20.5095632 Z\"\n id=\"Shape\"\n fill=\"#5FAEEC\"\n fill-rule=\"nonzero\"\n ></path>\n <line\n x1=\"201.166949\"\n y1=\"40.8876812\"\n x2=\"187.755818\"\n y2=\"60.9963769\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n <line\n x1=\"165.969438\"\n y1=\"31.5036231\"\n x2=\"165.285471\"\n y2=\"55.6340579\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n <line\n x1=\"130.08796\"\n y1=\"44.9094203\"\n x2=\"146.181316\"\n y2=\"63.6775362\"\n id=\"Path\"\n stroke=\"#5FAEEC\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n ></line>\n </g>\n <polygon\n id=\"Fill-56\"\n fill=\"#A5D1FE\"\n fill-rule=\"nonzero\"\n points=\"0 185 335 185 335 175 0 175\"\n ></polygon>\n </g>\n </g>\n </svg>\n <h1\n class=\"p-t-16 p-b-16 text-center text-medium\"\n ngNonBindable\n translate\n [translateParams]=\"{ appName: options.name | humanizeAppName | async }\"\n >\n Welcome to {{ appName }}\n </h1>\n <p class=\"lead text-normal\" translate *ngIf=\"hasRole\">\n This application (or any plugin that you added recently) has pre-requirements that needs\n to be configured first. This wizard will guide you through the steps that are necessary\n to get your customized application up and running.\n </p>\n <div class=\"flex-grow\" *ngIf=\"properties.length > 0\">\n <c8y-properties-list\n icon=\"info\"\n [properties]=\"properties\"\n [data]=\"options\"\n [title]=\"'Application properties' | translate\"\n ></c8y-properties-list>\n </div>\n <div class=\"alert alert-danger m-32\" *ngIf=\"!hasRole\">\n <strong translate>No permission</strong>\n <div translate>\n You don't have sufficient rights to setup this application. Contact an application\n administrator to setup the required steps.\n </div>\n </div>\n <div class=\"alert alert-danger m-32\" *ngIf=\"!isOwner\">\n <strong translate>Not the owner</strong>\n <div translate>\n The current application is not owned by this tenant. Clone the application before\n running the setup.\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-footer separator d-flex j-c-center\">\n <button\n class=\"btn\"\n (click)=\"skip()\"\n translate\n *ngIf=\"canSkip\"\n [title]=\"\n 'You can skip the setup now. It will be shown again as soon as you restart the application.'\n | translate\n \"\n >\n Skip\n </button>\n\n <button\n class=\"btn btn-primary\"\n (click)=\"start()\"\n translate\n [disabled]=\"!hasRole || !isOwner\"\n [title]=\"'Start the setup wizard.' | translate\"\n >\n Start\n </button>\n </div>\n</div>\n" }]
|
|
@@ -16332,7 +16346,7 @@ class CookieBannerPreferencesModalComponent {
|
|
|
16332
16346
|
}
|
|
16333
16347
|
}
|
|
16334
16348
|
CookieBannerPreferencesModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerPreferencesModalComponent, deps: [{ token: CookieBannerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16335
|
-
CookieBannerPreferencesModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CookieBannerPreferencesModalComponent, selector: "c8y-cookie-banner-preferences-modal", viewQueries: [{ propertyName: "modalRef", first: true, predicate: ["modalRef"], descendants: true }], ngImport: i0, template: "<c8y-confirm-modal [title]=\"title\" [status]=\"status\" [labels]=\"labels\" #modalRef>\n\n <div *ngFor=\"let item of configCookiePreferencesList\" class=\"row p-t-8 p-b-8 separator-top\">\n <div class=\"col-xs-2\">\n <div class=\"text-center\">\n <label class=\"c8y-switch\">\n <input\n name=\"{{ item.name }}\"\n type=\"checkbox\"\n [(ngModel)]=\"item.value\"\n [disabled]=\"item.isReadonly\"\n />\n <span></span>\n </label>\n </div>\n </div>\n <div class=\"col-xs-10\">\n <h4 class=\"text-medium\">\n {{ item.name | translate | humanize }}\n </h4>\n <p>\n {{ getCookieDescription(item.name) | translate }}\n </p>\n </div>\n </div>\n</c8y-confirm-modal>\n", dependencies: [{ kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type:
|
|
16349
|
+
CookieBannerPreferencesModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CookieBannerPreferencesModalComponent, selector: "c8y-cookie-banner-preferences-modal", viewQueries: [{ propertyName: "modalRef", first: true, predicate: ["modalRef"], descendants: true }], ngImport: i0, template: "<c8y-confirm-modal [title]=\"title\" [status]=\"status\" [labels]=\"labels\" #modalRef>\n\n <div *ngFor=\"let item of configCookiePreferencesList\" class=\"row p-t-8 p-b-8 separator-top\">\n <div class=\"col-xs-2\">\n <div class=\"text-center\">\n <label class=\"c8y-switch\">\n <input\n name=\"{{ item.name }}\"\n type=\"checkbox\"\n [(ngModel)]=\"item.value\"\n [disabled]=\"item.isReadonly\"\n />\n <span></span>\n </label>\n </div>\n </div>\n <div class=\"col-xs-10\">\n <h4 class=\"text-medium\">\n {{ item.name | translate | humanize }}\n </h4>\n <p>\n {{ getCookieDescription(item.name) | translate }}\n </p>\n </div>\n </div>\n</c8y-confirm-modal>\n", dependencies: [{ kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ConfirmModalComponent, selector: "c8y-confirm-modal", inputs: ["title", "body", "confirmOptions", "status", "labels"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }] });
|
|
16336
16350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerPreferencesModalComponent, decorators: [{
|
|
16337
16351
|
type: Component,
|
|
16338
16352
|
args: [{ selector: 'c8y-cookie-banner-preferences-modal', template: "<c8y-confirm-modal [title]=\"title\" [status]=\"status\" [labels]=\"labels\" #modalRef>\n\n <div *ngFor=\"let item of configCookiePreferencesList\" class=\"row p-t-8 p-b-8 separator-top\">\n <div class=\"col-xs-2\">\n <div class=\"text-center\">\n <label class=\"c8y-switch\">\n <input\n name=\"{{ item.name }}\"\n type=\"checkbox\"\n [(ngModel)]=\"item.value\"\n [disabled]=\"item.isReadonly\"\n />\n <span></span>\n </label>\n </div>\n </div>\n <div class=\"col-xs-10\">\n <h4 class=\"text-medium\">\n {{ item.name | translate | humanize }}\n </h4>\n <p>\n {{ getCookieDescription(item.name) | translate }}\n </p>\n </div>\n </div>\n</c8y-confirm-modal>\n" }]
|
|
@@ -16391,12 +16405,12 @@ class CookieBannerComponent {
|
|
|
16391
16405
|
this.cookieBannerService.isCookieBannerShowed$.next(shouldShow);
|
|
16392
16406
|
}
|
|
16393
16407
|
}
|
|
16394
|
-
CookieBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerComponent, deps: [{ token: i1$
|
|
16395
|
-
CookieBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CookieBannerComponent, selector: "c8y-cookie-banner", ngImport: i0, template: "<div class=\"c8y-cookie-banner\">\n <div class=\"container\">\n <div class=\"row p-t-16 p-b-16\" *ngIf=\"showBanner\">\n <div class=\"col-md-2\" *ngIf=\"settings.cookieBannerTitle\">\n <h3>{{ settings.cookieBannerTitle | translate }}</h3>\n <div class=\"p-b-16 visible-sm visible-xs\"></div>\n </div>\n <div class=\"col-md-7\">\n <div class=\"cookie-banner-content text-pre-line\">\n {{ settings.cookieBannerText | translate }}\n <a\n href=\"{{ settings.policyUrl }}\"\n target=\"_blank\"\n *ngIf=\"settings.policyUrl\"\n class=\"text-primary\"\n >\n {{ 'See also our Privacy Notice.' | translate }}\n </a>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"row\">\n <div class=\"col-sm-6 col-md-12\">\n <div class=\"p-b-16 visible-sm visible-xs\"></div>\n <button\n class=\"btn btn-primary btn-block\"\n (click)=\"acceptCookies()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Agree and proceed' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\" *ngIf=\"!!cookiePreferences\">\n <div class=\"p-b-16\"></div>\n <button\n class=\"btn btn-primary btn-block\"\n (click)=\"rejectCookies()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Reject all`cookies`' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\" *ngIf=\"!!cookiePreferences\">\n <div class=\"p-b-16\"></div>\n <button\n class=\"btn btn-default btn-block\"\n (click)=\"onConfigurePreferences()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Configure preferences' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
16408
|
+
CookieBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerComponent, deps: [{ token: i1$8.BsModalService }, { token: CookieBannerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16409
|
+
CookieBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CookieBannerComponent, selector: "c8y-cookie-banner", ngImport: i0, template: "<div class=\"c8y-cookie-banner\">\n <div class=\"container\">\n <div class=\"row p-t-16 p-b-16\" *ngIf=\"showBanner\">\n <div class=\"col-md-2\" *ngIf=\"settings.cookieBannerTitle\">\n <h3>{{ settings.cookieBannerTitle | translate }}</h3>\n <div class=\"p-b-16 visible-sm visible-xs\"></div>\n </div>\n <div class=\"col-md-7\">\n <div class=\"cookie-banner-content text-pre-line\">\n {{ settings.cookieBannerText | translate }}\n <a\n href=\"{{ settings.policyUrl }}\"\n target=\"_blank\"\n *ngIf=\"settings.policyUrl\"\n class=\"text-primary\"\n >\n {{ 'See also our Privacy Notice.' | translate }}\n </a>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"row\">\n <div class=\"col-sm-6 col-md-12\">\n <div class=\"p-b-16 visible-sm visible-xs\"></div>\n <button\n class=\"btn btn-primary btn-block\"\n (click)=\"acceptCookies()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Agree and proceed' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\" *ngIf=\"!!cookiePreferences\">\n <div class=\"p-b-16\"></div>\n <button\n class=\"btn btn-primary btn-block\"\n (click)=\"rejectCookies()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Reject all`cookies`' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\" *ngIf=\"!!cookiePreferences\">\n <div class=\"p-b-16\"></div>\n <button\n class=\"btn btn-default btn-block\"\n (click)=\"onConfigurePreferences()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Configure preferences' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
16396
16410
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerComponent, decorators: [{
|
|
16397
16411
|
type: Component,
|
|
16398
16412
|
args: [{ selector: 'c8y-cookie-banner', template: "<div class=\"c8y-cookie-banner\">\n <div class=\"container\">\n <div class=\"row p-t-16 p-b-16\" *ngIf=\"showBanner\">\n <div class=\"col-md-2\" *ngIf=\"settings.cookieBannerTitle\">\n <h3>{{ settings.cookieBannerTitle | translate }}</h3>\n <div class=\"p-b-16 visible-sm visible-xs\"></div>\n </div>\n <div class=\"col-md-7\">\n <div class=\"cookie-banner-content text-pre-line\">\n {{ settings.cookieBannerText | translate }}\n <a\n href=\"{{ settings.policyUrl }}\"\n target=\"_blank\"\n *ngIf=\"settings.policyUrl\"\n class=\"text-primary\"\n >\n {{ 'See also our Privacy Notice.' | translate }}\n </a>\n </div>\n </div>\n <div class=\"col-md-3\">\n <div class=\"row\">\n <div class=\"col-sm-6 col-md-12\">\n <div class=\"p-b-16 visible-sm visible-xs\"></div>\n <button\n class=\"btn btn-primary btn-block\"\n (click)=\"acceptCookies()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Agree and proceed' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\" *ngIf=\"!!cookiePreferences\">\n <div class=\"p-b-16\"></div>\n <button\n class=\"btn btn-primary btn-block\"\n (click)=\"rejectCookies()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Reject all`cookies`' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\" *ngIf=\"!!cookiePreferences\">\n <div class=\"p-b-16\"></div>\n <button\n class=\"btn btn-default btn-block\"\n (click)=\"onConfigurePreferences()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Configure preferences' | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
16399
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
16413
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }, { type: CookieBannerService }]; } });
|
|
16400
16414
|
|
|
16401
16415
|
class BootstrapComponent {
|
|
16402
16416
|
constructor(tabs, ui, navigator, actionBar, headerService, options, pluginsResolve, setupService) {
|
|
@@ -16484,7 +16498,7 @@ class BootstrapComponent {
|
|
|
16484
16498
|
}
|
|
16485
16499
|
}
|
|
16486
16500
|
BootstrapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BootstrapComponent, deps: [{ token: TabsService }, { token: AppStateService }, { token: NavigatorService }, { token: ActionBarService }, { token: HeaderService }, { token: OptionsService }, { token: PluginsResolveService }, { token: SetupService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16487
|
-
BootstrapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BootstrapComponent, selector: "c8y-bootstrap", ngImport: i0, template: "<c8y-login *ngIf=\"!noLogin && !(ui.currentUser | async)\"></c8y-login>\n\n<div\n *ngIf=\"noLogin || ((ui.currentUser | async) && !(setupService.isSetupNeeded$ | async))\"\n [class.head-open]=\"headerService.headerOpen\"\n>\n <c8y-header-bar #header></c8y-header-bar>\n <c8y-navigator-outlet\n [nodes]=\"navigator.items$ | async\"\n [open]=\"headerService.navigatorOpen$ | async\"\n role=\"region\"\n title=\"{{ 'Navigator menu' | translate }}\"\n >\n <header class=\"title navigator-slot-top\">\n <div class=\"tenant-brand\"></div>\n <c8y-app-icon\n [name]=\"(ui.state$ | async).app.name\"\n [contextPath]=\"(ui.state$ | async).app.contextPath\"\n ></c8y-app-icon>\n <span>{{ (ui.state$ | async).app | humanizeAppName | async }}</span>\n </header>\n <div class=\"powered-by navigator-slot-bottom\" *ngIf=\"showPoweredBy\">\n <p translate>powered by Cumulocity</p>\n </div>\n </c8y-navigator-outlet>\n\n <div class=\"alerts\">\n <c8y-alert-outlet></c8y-alert-outlet>\n </div>\n <c8y-tabs-outlet\n #tabsComponent\n [tabs]=\"tabs.items$ | async\"\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [orientation]=\"tabs.orientation$ | async\"\n role=\"navigation\"\n ></c8y-tabs-outlet>\n <c8y-action-bar\n #actionBarComponent\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [hasTabs]=\"tabsComponent.hasTabs\"\n [isTabsHorizontal]=\"tabsComponent?.isHorizontal\"\n [items$]=\"actionBar.items$\"\n role=\"group\"\n ></c8y-action-bar>\n\n <div\n class=\"mcontainer\"\n [ngClass]=\"{\n open: headerService.navigatorOpen$ | async,\n 'no-apps-margin': noAppsMargin$ | async,\n 'horizontal-tabs': tabsComponent.isHorizontal,\n 'vertical-tabs': !tabsComponent.isHorizontal,\n 'has-tabs': tabsComponent.hasTabs,\n 'has-action-bar': !actionBarComponent?.hidden\n }\"\n >\n <main id=\"main-content\" class=\"container-fluid\" tabindex=\"-1\">\n <router-outlet></router-outlet>\n <ng-content select=\"#c8y-legacy-view\"></ng-content>\n <!-- legacy ng-view, will not be migrated atm -->\n </main>\n </div>\n</div>\n\n<div *ngIf=\"(ui.currentUser | async) && (setupService.isSetupNeeded$ | async)\">\n <c8y-header-bar [simple]=\"true\"></c8y-header-bar>\n <div class=\"mcontainer\" role=\"main\">\n <div class=\"container-fluid\">\n <c8y-setup></c8y-setup>\n </div>\n </div>\n</div>\n\n<c8y-cookie-banner></c8y-cookie-banner>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
16501
|
+
BootstrapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: BootstrapComponent, selector: "c8y-bootstrap", ngImport: i0, template: "<c8y-login *ngIf=\"!noLogin && !(ui.currentUser | async)\"></c8y-login>\n\n<div\n *ngIf=\"noLogin || ((ui.currentUser | async) && !(setupService.isSetupNeeded$ | async))\"\n [class.head-open]=\"headerService.headerOpen\"\n>\n <c8y-header-bar #header></c8y-header-bar>\n <c8y-navigator-outlet\n [nodes]=\"navigator.items$ | async\"\n [open]=\"headerService.navigatorOpen$ | async\"\n role=\"region\"\n title=\"{{ 'Navigator menu' | translate }}\"\n >\n <header class=\"title navigator-slot-top\">\n <div class=\"tenant-brand\"></div>\n <c8y-app-icon\n [name]=\"(ui.state$ | async).app.name\"\n [contextPath]=\"(ui.state$ | async).app.contextPath\"\n ></c8y-app-icon>\n <span>{{ (ui.state$ | async).app | humanizeAppName | async }}</span>\n </header>\n <div class=\"powered-by navigator-slot-bottom\" *ngIf=\"showPoweredBy\">\n <p translate>powered by Cumulocity</p>\n </div>\n </c8y-navigator-outlet>\n\n <div class=\"alerts\">\n <c8y-alert-outlet></c8y-alert-outlet>\n </div>\n <c8y-tabs-outlet\n #tabsComponent\n [tabs]=\"tabs.items$ | async\"\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [orientation]=\"tabs.orientation$ | async\"\n role=\"navigation\"\n ></c8y-tabs-outlet>\n <c8y-action-bar\n #actionBarComponent\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [hasTabs]=\"tabsComponent.hasTabs\"\n [isTabsHorizontal]=\"tabsComponent?.isHorizontal\"\n [items$]=\"actionBar.items$\"\n role=\"group\"\n ></c8y-action-bar>\n\n <div\n class=\"mcontainer\"\n [ngClass]=\"{\n open: headerService.navigatorOpen$ | async,\n 'no-apps-margin': noAppsMargin$ | async,\n 'horizontal-tabs': tabsComponent.isHorizontal,\n 'vertical-tabs': !tabsComponent.isHorizontal,\n 'has-tabs': tabsComponent.hasTabs,\n 'has-action-bar': !actionBarComponent?.hidden\n }\"\n >\n <main id=\"main-content\" class=\"container-fluid\" tabindex=\"-1\">\n <router-outlet></router-outlet>\n <ng-content select=\"#c8y-legacy-view\"></ng-content>\n <!-- legacy ng-view, will not be migrated atm -->\n </main>\n </div>\n</div>\n\n<div *ngIf=\"(ui.currentUser | async) && (setupService.isSetupNeeded$ | async)\">\n <c8y-header-bar [simple]=\"true\"></c8y-header-bar>\n <div class=\"mcontainer\" role=\"main\">\n <div class=\"container-fluid\">\n <c8y-setup></c8y-setup>\n </div>\n </div>\n</div>\n\n<c8y-cookie-banner></c8y-cookie-banner>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: HeaderBarComponent, selector: "c8y-header-bar", inputs: ["simple"] }, { kind: "component", type: AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "component", type: LoginComponent, selector: "c8y-login", inputs: ["name"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: TabsOutletComponent, selector: "c8y-tabs-outlet,c8y-ui-tabs", inputs: ["tabs", "orientation", "navigatorOpen"] }, { kind: "component", type: ActionBarComponent, selector: "c8y-action-bar", inputs: ["navigatorOpen", "hasTabs", "isTabsHorizontal", "items$"] }, { kind: "component", type: AlertOutletComponent, selector: "c8y-alert-outlet" }, { kind: "component", type: NavigatorOutletComponent, selector: "c8y-navigator-outlet, c8y-ui-navigator", inputs: ["nodes", "open"] }, { kind: "component", type: SetupComponent, selector: "c8y-setup" }, { kind: "component", type: CookieBannerComponent, selector: "c8y-cookie-banner" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: HumanizeAppNamePipe, name: "humanizeAppName" }] });
|
|
16488
16502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BootstrapComponent, decorators: [{
|
|
16489
16503
|
type: Component,
|
|
16490
16504
|
args: [{ selector: 'c8y-bootstrap', template: "<c8y-login *ngIf=\"!noLogin && !(ui.currentUser | async)\"></c8y-login>\n\n<div\n *ngIf=\"noLogin || ((ui.currentUser | async) && !(setupService.isSetupNeeded$ | async))\"\n [class.head-open]=\"headerService.headerOpen\"\n>\n <c8y-header-bar #header></c8y-header-bar>\n <c8y-navigator-outlet\n [nodes]=\"navigator.items$ | async\"\n [open]=\"headerService.navigatorOpen$ | async\"\n role=\"region\"\n title=\"{{ 'Navigator menu' | translate }}\"\n >\n <header class=\"title navigator-slot-top\">\n <div class=\"tenant-brand\"></div>\n <c8y-app-icon\n [name]=\"(ui.state$ | async).app.name\"\n [contextPath]=\"(ui.state$ | async).app.contextPath\"\n ></c8y-app-icon>\n <span>{{ (ui.state$ | async).app | humanizeAppName | async }}</span>\n </header>\n <div class=\"powered-by navigator-slot-bottom\" *ngIf=\"showPoweredBy\">\n <p translate>powered by Cumulocity</p>\n </div>\n </c8y-navigator-outlet>\n\n <div class=\"alerts\">\n <c8y-alert-outlet></c8y-alert-outlet>\n </div>\n <c8y-tabs-outlet\n #tabsComponent\n [tabs]=\"tabs.items$ | async\"\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [orientation]=\"tabs.orientation$ | async\"\n role=\"navigation\"\n ></c8y-tabs-outlet>\n <c8y-action-bar\n #actionBarComponent\n [navigatorOpen]=\"headerService.navigatorOpen$ | async\"\n [hasTabs]=\"tabsComponent.hasTabs\"\n [isTabsHorizontal]=\"tabsComponent?.isHorizontal\"\n [items$]=\"actionBar.items$\"\n role=\"group\"\n ></c8y-action-bar>\n\n <div\n class=\"mcontainer\"\n [ngClass]=\"{\n open: headerService.navigatorOpen$ | async,\n 'no-apps-margin': noAppsMargin$ | async,\n 'horizontal-tabs': tabsComponent.isHorizontal,\n 'vertical-tabs': !tabsComponent.isHorizontal,\n 'has-tabs': tabsComponent.hasTabs,\n 'has-action-bar': !actionBarComponent?.hidden\n }\"\n >\n <main id=\"main-content\" class=\"container-fluid\" tabindex=\"-1\">\n <router-outlet></router-outlet>\n <ng-content select=\"#c8y-legacy-view\"></ng-content>\n <!-- legacy ng-view, will not be migrated atm -->\n </main>\n </div>\n</div>\n\n<div *ngIf=\"(ui.currentUser | async) && (setupService.isSetupNeeded$ | async)\">\n <c8y-header-bar [simple]=\"true\"></c8y-header-bar>\n <div class=\"mcontainer\" role=\"main\">\n <div class=\"container-fluid\">\n <c8y-setup></c8y-setup>\n </div>\n </div>\n</div>\n\n<c8y-cookie-banner></c8y-cookie-banner>\n" }]
|
|
@@ -16547,7 +16561,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
16547
16561
|
class BreadcrumbModule {
|
|
16548
16562
|
}
|
|
16549
16563
|
BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16550
|
-
BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbOutletComponent], imports: [i1.RouterModule, CommonModule, i1$
|
|
16564
|
+
BreadcrumbModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, declarations: [BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbOutletComponent], imports: [i1.RouterModule, CommonModule, i1$7.TooltipModule], exports: [BreadcrumbComponent, BreadcrumbItemComponent, BreadcrumbOutletComponent] });
|
|
16551
16565
|
BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, imports: [RouterModule$1.forChild([]), CommonModule, TooltipModule.forRoot()] });
|
|
16552
16566
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, decorators: [{
|
|
16553
16567
|
type: NgModule,
|
|
@@ -16566,7 +16580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
16566
16580
|
class NavigatorModule {
|
|
16567
16581
|
}
|
|
16568
16582
|
NavigatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16569
|
-
NavigatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, declarations: [NavigatorOutletComponent, NavigatorNodeComponent, NavigatorIconComponent], imports: [RouterModule$1, i1$
|
|
16583
|
+
NavigatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, declarations: [NavigatorOutletComponent, NavigatorNodeComponent, NavigatorIconComponent], imports: [RouterModule$1, i1$9.CollapseModule, CommonModule, ModalModule], exports: [NavigatorOutletComponent, NavigatorNodeComponent] });
|
|
16570
16584
|
NavigatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, imports: [RouterModule$1, CollapseModule.forRoot(), CommonModule, ModalModule] });
|
|
16571
16585
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, decorators: [{
|
|
16572
16586
|
type: NgModule,
|
|
@@ -16778,7 +16792,7 @@ ListItemActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
16778
16792
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
16779
16793
|
useExisting: forwardRef(() => ListItemActionComponent)
|
|
16780
16794
|
}
|
|
16781
|
-
], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], ngImport: i0, template: "<ng-template #template>\n <li>\n <button title=\"{{ label | translate }}\" (click)=\"click.emit($event)\">\n <i [c8yIcon]=\"icon\" *ngIf=\"icon\"></i> \n <span *ngIf=\"label\">{{ label | translate }}</span>\n <ng-content></ng-content>\n </button>\n </li>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
16795
|
+
], viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], ngImport: i0, template: "<ng-template #template>\n <li>\n <button title=\"{{ label | translate }}\" (click)=\"click.emit($event)\">\n <i [c8yIcon]=\"icon\" *ngIf=\"icon\"></i> \n <span *ngIf=\"label\">{{ label | translate }}</span>\n <ng-content></ng-content>\n </button>\n </li>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
16782
16796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemActionComponent, decorators: [{
|
|
16783
16797
|
type: Component,
|
|
16784
16798
|
args: [{ selector: 'c8y-list-item-action, c8y-li-action', providers: [
|
|
@@ -16849,7 +16863,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
16849
16863
|
class ListItemFooterComponent {
|
|
16850
16864
|
}
|
|
16851
16865
|
ListItemFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16852
|
-
ListItemFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemFooterComponent, selector: "c8y-list-item-footer, c8y-li-footer", inputs: { footer: "footer" }, ngImport: i0, template: "<span *ngIf=\"footer\">{{footer}}</span>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type:
|
|
16866
|
+
ListItemFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemFooterComponent, selector: "c8y-list-item-footer, c8y-li-footer", inputs: { footer: "footer" }, ngImport: i0, template: "<span *ngIf=\"footer\">{{footer}}</span>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
16853
16867
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemFooterComponent, decorators: [{
|
|
16854
16868
|
type: Component,
|
|
16855
16869
|
args: [{ selector: 'c8y-list-item-footer, c8y-li-footer', template: "<span *ngIf=\"footer\">{{footer}}</span>\n<ng-content></ng-content>\n" }]
|
|
@@ -17011,7 +17025,7 @@ class ListItemComponent {
|
|
|
17011
17025
|
}
|
|
17012
17026
|
}
|
|
17013
17027
|
ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17014
|
-
ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: { active: "active", emptyActions: "emptyActions", collapsed: "collapsed", selectable: "selectable" }, outputs: { collapsedChange: "collapsedChange" }, host: { properties: { "class.active": "this.active", "class.c8y-list__item--empty-actions": "this.emptyActions" }, classAttribute: "c8y-list__item" }, queries: [{ propertyName: "itemFooter", first: true, predicate: ListItemFooterComponent, descendants: true }, { propertyName: "itemCollapse", first: true, predicate: ListItemCollapseComponent, descendants: true }, { propertyName: "itemActions", predicate: ListItemActionComponent }], ngImport: i0, template: "<div [ngClass]=\"{ 'expanded': !collapsed, interact: (itemCollapse && itemCollapse.collapseWay === 'row')}\">\n <div class=\"c8y-list__item__block\">\n <ng-content select=\"c8y-list-item-drag-handle, c8y-li-drag-handle\"></ng-content>\n <ng-content select=\"c8y-list-item-radio, c8y-li-radio\"></ng-content>\n <ng-content select=\"c8y-list-item-checkbox, c8y-li-checkbox\"></ng-content>\n\n <ng-content select=\"c8y-list-item-icon, c8y-li-icon\"></ng-content>\n\n <div class=\"c8y-list__item__body text-truncate-wrap\" (click)=\"(itemCollapse && itemCollapse.collapseWay === 'row') && toggleCollapsed()\">\n <ng-content select=\"c8y-list-item-body, c8y-li-body\"></ng-content>\n <ng-content></ng-content>\n <div class=\"c8y-list__item__footer\" *ngIf=\"showFooter\">\n <ng-content select=\"c8y-list-item-footer, c8y-li-footer\"></ng-content>\n </div>\n </div>\n\n <div class=\"c8y-list__item__actions\" *ngIf=\"(showCollapse && (itemCollapse && itemCollapse.collapseWay === 'button')) || showActions\">\n <button\n class=\"collapse-btn\"\n title=\"{{ 'Expand' | translate }}\"\n type=\"button\"\n (click)=\"toggleCollapsed($event)\"\n [attr.aria-expanded]=\"!collapsed\"\n *ngIf=\"showCollapse && itemCollapse.collapseWay === 'button'\"\n >\n <i [c8yIcon]=\"'chevron-down'\"></i>\n </button>\n <div\n class=\"dropdown\"\n dropdown\n [dropup]=\"dropdownUp\"\n *ngIf=\"showActions\"\n (onShown)=\"showDropdownUp()\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n title=\"{{ 'Actions' | translate }}\"\n type=\"button\"\n >\n <i [c8yIcon]=\"'ellipsis-v'\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <ng-content select=\"c8y-list-item-action, c8y-li-action\"></ng-content>\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n\n <ng-content select=\"c8y-list-item-action, c8y-li-action\" *ngIf=\"showActions\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"showCollapse\" [collapse]=\"collapsed\" [isAnimated]=\"true\">\n <div class=\"c8y-list__item__collapse--container\">\n <ng-content select=\"c8y-list-item-collapse, c8y-li-collapse\"></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
17028
|
+
ListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: { active: "active", emptyActions: "emptyActions", collapsed: "collapsed", selectable: "selectable" }, outputs: { collapsedChange: "collapsedChange" }, host: { properties: { "class.active": "this.active", "class.c8y-list__item--empty-actions": "this.emptyActions" }, classAttribute: "c8y-list__item" }, queries: [{ propertyName: "itemFooter", first: true, predicate: ListItemFooterComponent, descendants: true }, { propertyName: "itemCollapse", first: true, predicate: ListItemCollapseComponent, descendants: true }, { propertyName: "itemActions", predicate: ListItemActionComponent }], ngImport: i0, template: "<div [ngClass]=\"{ 'expanded': !collapsed, interact: (itemCollapse && itemCollapse.collapseWay === 'row')}\">\n <div class=\"c8y-list__item__block\">\n <ng-content select=\"c8y-list-item-drag-handle, c8y-li-drag-handle\"></ng-content>\n <ng-content select=\"c8y-list-item-radio, c8y-li-radio\"></ng-content>\n <ng-content select=\"c8y-list-item-checkbox, c8y-li-checkbox\"></ng-content>\n\n <ng-content select=\"c8y-list-item-icon, c8y-li-icon\"></ng-content>\n\n <div class=\"c8y-list__item__body text-truncate-wrap\" (click)=\"(itemCollapse && itemCollapse.collapseWay === 'row') && toggleCollapsed()\">\n <ng-content select=\"c8y-list-item-body, c8y-li-body\"></ng-content>\n <ng-content></ng-content>\n <div class=\"c8y-list__item__footer\" *ngIf=\"showFooter\">\n <ng-content select=\"c8y-list-item-footer, c8y-li-footer\"></ng-content>\n </div>\n </div>\n\n <div class=\"c8y-list__item__actions\" *ngIf=\"(showCollapse && (itemCollapse && itemCollapse.collapseWay === 'button')) || showActions\">\n <button\n class=\"collapse-btn\"\n title=\"{{ 'Expand' | translate }}\"\n type=\"button\"\n (click)=\"toggleCollapsed($event)\"\n [attr.aria-expanded]=\"!collapsed\"\n *ngIf=\"showCollapse && itemCollapse.collapseWay === 'button'\"\n >\n <i [c8yIcon]=\"'chevron-down'\"></i>\n </button>\n <div\n class=\"dropdown\"\n dropdown\n [dropup]=\"dropdownUp\"\n *ngIf=\"showActions\"\n (onShown)=\"showDropdownUp()\"\n >\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n title=\"{{ 'Actions' | translate }}\"\n type=\"button\"\n >\n <i [c8yIcon]=\"'ellipsis-v'\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <ng-content select=\"c8y-list-item-action, c8y-li-action\"></ng-content>\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n\n <ng-content select=\"c8y-list-item-action, c8y-li-action\" *ngIf=\"showActions\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"showCollapse\" [collapse]=\"collapsed\" [isAnimated]=\"true\">\n <div class=\"c8y-list__item__collapse--container\">\n <ng-content select=\"c8y-list-item-collapse, c8y-li-collapse\"></ng-content>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$9.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
17015
17029
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
17016
17030
|
type: Component,
|
|
17017
17031
|
args: [{ selector: 'c8y-list-item, c8y-li', host: {
|
|
@@ -17293,7 +17307,7 @@ TypeaheadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
17293
17307
|
useExisting: forwardRef(() => TypeaheadComponent),
|
|
17294
17308
|
multi: true
|
|
17295
17309
|
}
|
|
17296
|
-
], queries: [{ propertyName: "list", predicate: ListItemComponent }], viewQueries: [{ propertyName: "searchControl", first: true, predicate: ["searchControl"], descendants: true }, { propertyName: "searchControlModel", first: true, predicate: ["searchControlModel"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\n class=\"c8y-search-dropdown dropdown fit-w\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div role=\"button\" class=\"input-group input-group-dropdown\">\n <input\n #searchControl\n #searchControlModel=\"ngModel\"\n type=\"text\"\n class=\"form-control text-truncate\"\n [ngClass]=\"{\n 'p-r-80':\n !hideNew &&\n (selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false),\n 'p-r-40': hideNew || getDisplayProperty()?.length === 0\n }\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [maxlength]=\"maxlength\"\n [disabled]=\"disabled\"\n />\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10\"\n *ngIf=\"\n !hideNew &&\n (selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false)\n \"\n >\n {{ 'New' | translate }}\n </span>\n\n <span class=\"input-group-btn\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Search' | translate }}\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit({ icon, $event });\"\n dropdownToggle\n data-cy=\"typeahead-button\"\n >\n <i [c8yIcon]=\"icon\" class=\"text-primary\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group\n class=\"dropdown-menu dropdown-menu--modal\"\n role=\"menu\"\n *dropdownMenu\n [style.width]=\"container === 'body' ? searchControl.clientWidth + 'px' : undefined\"\n >\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n", dependencies: [{ kind: "directive", type: i1$
|
|
17310
|
+
], queries: [{ propertyName: "list", predicate: ListItemComponent }], viewQueries: [{ propertyName: "searchControl", first: true, predicate: ["searchControl"], descendants: true }, { propertyName: "searchControlModel", first: true, predicate: ["searchControlModel"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\n class=\"c8y-search-dropdown dropdown fit-w\"\n dropdown\n [container]=\"container\"\n placement=\"bottom left\"\n #dropdown=\"bs-dropdown\"\n [autoClose]=\"true\"\n (onShown)=\"onShown()\"\n [isDisabled]=\"disabled\"\n>\n <div role=\"button\" class=\"input-group input-group-dropdown\">\n <input\n #searchControl\n #searchControlModel=\"ngModel\"\n type=\"text\"\n class=\"form-control text-truncate\"\n [ngClass]=\"{\n 'p-r-80':\n !hideNew &&\n (selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false),\n 'p-r-40': hideNew || getDisplayProperty()?.length === 0\n }\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [maxlength]=\"maxlength\"\n [disabled]=\"disabled\"\n />\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10\"\n *ngIf=\"\n !hideNew &&\n (selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false)\n \"\n >\n {{ 'New' | translate }}\n </span>\n\n <span class=\"input-group-btn\">\n <button\n class=\"btn btn-dot\"\n title=\"{{ 'Search' | translate }}\"\n type=\"button\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit({ icon, $event });\"\n dropdownToggle\n data-cy=\"typeahead-button\"\n >\n <i [c8yIcon]=\"icon\" class=\"text-primary\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group\n class=\"dropdown-menu dropdown-menu--modal\"\n role=\"menu\"\n *dropdownMenu\n [style.width]=\"container === 'body' ? searchControl.clientWidth + 'px' : undefined\"\n >\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n", dependencies: [{ kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
17297
17311
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TypeaheadComponent, decorators: [{
|
|
17298
17312
|
type: Component,
|
|
17299
17313
|
args: [{ selector: 'c8y-typeahead', providers: [
|
|
@@ -17430,7 +17444,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
17430
17444
|
class ListItemIconComponent {
|
|
17431
17445
|
}
|
|
17432
17446
|
ListItemIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17433
|
-
ListItemIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: { icon: "icon", status: "status" }, host: { classAttribute: "c8y-list__item__icon" }, ngImport: i0, template: "<i [c8yIcon]=\"icon\" [ngClass]=\"status\" *ngIf=\"icon\"></i>\n<ng-content></ng-content>", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
17447
|
+
ListItemIconComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: { icon: "icon", status: "status" }, host: { classAttribute: "c8y-list__item__icon" }, ngImport: i0, template: "<i [c8yIcon]=\"icon\" [ngClass]=\"status\" *ngIf=\"icon\"></i>\n<ng-content></ng-content>", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
17434
17448
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemIconComponent, decorators: [{
|
|
17435
17449
|
type: Component,
|
|
17436
17450
|
args: [{ selector: 'c8y-list-item-icon, c8y-li-icon', host: {
|
|
@@ -17604,7 +17618,7 @@ class DeviceStatusComponent {
|
|
|
17604
17618
|
}
|
|
17605
17619
|
}
|
|
17606
17620
|
DeviceStatusComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DeviceStatusComponent, deps: [{ token: i1$3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17607
|
-
DeviceStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DeviceStatusComponent, selector: "device-status", inputs: { node: ["mo", "node"] }, usesOnChanges: true, ngImport: i0, template: "<!-- ATTENTION: keep text format in `tooltip` attribute -->\n<div class=\"d-contents\">\n <button\n class=\"btn-clean statusContainer\"\n [attr.aria-label]=\"'Status' | translate\"\n *ngIf=\"!!status().sendStatus || !!status().pushStatus\"\n tooltip=\"{{ status().sendStatus.tooltip | translate }}\n {{ status().pushStatus.tooltip | translate }}\"\n container=\"body\"\n placement=\"right\"\n [delay]=\"500\"\n >\n <div\n *ngIf=\"!!status().sendStatus\"\n class=\"sendStatus\"\n [c8yIcon]=\"status().sendStatus.icon\"\n [ngClass]=\"status().sendStatus.class\"\n ></div>\n <div\n *ngIf=\"!!status().pushStatus\"\n class=\"pushStatus\"\n [c8yIcon]=\"status().pushStatus.icon\"\n [ngClass]=\"status().pushStatus.class\"\n ></div>\n </button>\n <button\n class=\"btn-clean statusContainer\"\n [attr.aria-label]=\"'Status' | translate\"\n *ngIf=\"!!status().maintenanceStatus\"\n tooltip=\"{{ status().maintenanceStatus.tooltip | translate }}\"\n container=\"body\"\n placement=\"right\"\n [delay]=\"500\"\n >\n <div\n class=\"maintenanceStatus\"\n [c8yIcon]=\"status().maintenanceStatus.icon\"\n [ngClass]=\"status().maintenanceStatus.class\"\n ></div>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
17621
|
+
DeviceStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DeviceStatusComponent, selector: "device-status", inputs: { node: ["mo", "node"] }, usesOnChanges: true, ngImport: i0, template: "<!-- ATTENTION: keep text format in `tooltip` attribute -->\n<div class=\"d-contents\">\n <button\n class=\"btn-clean statusContainer\"\n [attr.aria-label]=\"'Status' | translate\"\n *ngIf=\"!!status().sendStatus || !!status().pushStatus\"\n tooltip=\"{{ status().sendStatus.tooltip | translate }}\n {{ status().pushStatus.tooltip | translate }}\"\n container=\"body\"\n placement=\"right\"\n [delay]=\"500\"\n >\n <div\n *ngIf=\"!!status().sendStatus\"\n class=\"sendStatus\"\n [c8yIcon]=\"status().sendStatus.icon\"\n [ngClass]=\"status().sendStatus.class\"\n ></div>\n <div\n *ngIf=\"!!status().pushStatus\"\n class=\"pushStatus\"\n [c8yIcon]=\"status().pushStatus.icon\"\n [ngClass]=\"status().pushStatus.class\"\n ></div>\n </button>\n <button\n class=\"btn-clean statusContainer\"\n [attr.aria-label]=\"'Status' | translate\"\n *ngIf=\"!!status().maintenanceStatus\"\n tooltip=\"{{ status().maintenanceStatus.tooltip | translate }}\"\n container=\"body\"\n placement=\"right\"\n [delay]=\"500\"\n >\n <div\n class=\"maintenanceStatus\"\n [c8yIcon]=\"status().maintenanceStatus.icon\"\n [ngClass]=\"status().maintenanceStatus.class\"\n ></div>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$7.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: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
17608
17622
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DeviceStatusComponent, decorators: [{
|
|
17609
17623
|
type: Component,
|
|
17610
17624
|
args: [{ selector: 'device-status', template: "<!-- ATTENTION: keep text format in `tooltip` attribute -->\n<div class=\"d-contents\">\n <button\n class=\"btn-clean statusContainer\"\n [attr.aria-label]=\"'Status' | translate\"\n *ngIf=\"!!status().sendStatus || !!status().pushStatus\"\n tooltip=\"{{ status().sendStatus.tooltip | translate }}\n {{ status().pushStatus.tooltip | translate }}\"\n container=\"body\"\n placement=\"right\"\n [delay]=\"500\"\n >\n <div\n *ngIf=\"!!status().sendStatus\"\n class=\"sendStatus\"\n [c8yIcon]=\"status().sendStatus.icon\"\n [ngClass]=\"status().sendStatus.class\"\n ></div>\n <div\n *ngIf=\"!!status().pushStatus\"\n class=\"pushStatus\"\n [c8yIcon]=\"status().pushStatus.icon\"\n [ngClass]=\"status().pushStatus.class\"\n ></div>\n </button>\n <button\n class=\"btn-clean statusContainer\"\n [attr.aria-label]=\"'Status' | translate\"\n *ngIf=\"!!status().maintenanceStatus\"\n tooltip=\"{{ status().maintenanceStatus.tooltip | translate }}\"\n container=\"body\"\n placement=\"right\"\n [delay]=\"500\"\n >\n <div\n class=\"maintenanceStatus\"\n [c8yIcon]=\"status().maintenanceStatus.icon\"\n [ngClass]=\"status().maintenanceStatus.class\"\n ></div>\n </button>\n</div>\n" }]
|
|
@@ -17787,7 +17801,7 @@ class SearchInputComponent {
|
|
|
17787
17801
|
}
|
|
17788
17802
|
}
|
|
17789
17803
|
SearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SearchInputComponent, deps: [{ token: i1.Router }, { token: i1$2.InventoryService }, { token: InventorySearchService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17790
|
-
SearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SearchInputComponent, selector: "c8y-search-input", inputs: { mode: "mode", enableCustomTemplatePlaceholder: "enableCustomTemplatePlaceholder", externalTerm: "externalTerm", customDataQuery: "customDataQuery", container: "container", groupsOnly: "groupsOnly" }, outputs: { filter: "filter", search: "search", reset: "reset", onClick: "onClick" }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" } }, viewQueries: [{ propertyName: "typeahead", first: true, predicate: TypeaheadComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: ["searchDropdown"], descendants: true }], ngImport: i0, template: "<div\n class=\"dropdown\"\n dropdown\n #searchDropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n (isOpenChange)=\"onOpenChange($event)\"\n *ngIf=\"mode === 'search'\"\n [cdkTrapFocus]=\"searchDropdown.isOpen\"\n>\n <button\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n [title]=\"'Search' | translate\"\n type=\"button\"\n dropdownToggle\n data-cy=\"search-input--search-btn\"\n >\n <i\n class=\"icon-2x\"\n c8yIcon=\"search\"\n ></i>\n </button>\n\n <div\n class=\"search-header-menu dropdown-menu dropdown-menu-right\"\n id=\"searchDropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n</div>\n\n<div \n class=\"search-header-inline\" \n *ngIf=\"mode === 'select'\"\n>\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n</div>\n<ng-template #form>\n <form \n [ngClass]=\"{ 'c8y-search-form': mode === 'search' }\" \n novalidate \n #searchForm=\"ngForm\"\n >\n <c8y-typeahead\n [(ngModel)]=\"selected\"\n placeholder=\"{{ 'Search for groups or assets\u2026' | translate }}\"\n (keydown)=\"keyDown($event)\"\n (onIconClick)=\"onReset($event)\"\n [icon]=\"term ? 'times' : 'search'\"\n [allowFreeEntries]=\"false\"\n [container]=\"container\"\n name=\"selected\"\n title=\"Search\"\n >\n <div\n class=\"c8y-list__item p-l-24 p-r-24 p-b-8 separator-bottom sticky-top p-t-4\"\n *ngIf=\"enableCustomTemplatePlaceholder && mode === 'search'\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- filter buttons -->\n <c8y-li *ngIf=\"term.length !== 0\" class=\"p-l-16 p-r-16\">\n <div class=\"d-flex\" *ngIf=\"mode === 'search'\">\n <p class=\"m-r-4 text-muted\">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class=\"btn-group btn-group-sm\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Starts with' | translate }}\"\n data-cy=\"search-input--search-starts-with\"\n (click)=\"onFilter(term + '*')\"\n >\n {{ 'Starts with' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Contains' | translate }}\"\n data-cy=\"search-input--search-contains\"\n (click)=\"onFilter('*' + term + '*')\"\n >\n {{ 'Contains' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Ends with' | translate }}\"\n data-cy=\"search-input--search-ends-with\"\n (click)=\"onFilter('*' + term)\"\n >\n {{ 'Ends with' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n <!-- Recent search -->\n <c8y-li\n class=\"p-l-24 p-r-24\"\n *ngIf=\"term.length === 0 && recentSearchResults.length > 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recent search views</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *ngFor=\"let result of term.length === 0 ? recentSearchResults : []\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Recently registered devices -->\n <c8y-li\n *ngIf=\"term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0 && !groupsOnly\"\n class=\"p-l-24 p-r-24\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let result of (term.length === 0 && !groupsOnly) ? recentlyRegisteredResults$ : { data: [] };\n loadMore: 'none';\n \"\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\" \n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Search results -->\n <c8y-li *ngIf=\"term.length !== 0\" class=\"p-l-24 p-r-24\" [selectable]=\"false\">\n <div class=\"legend form-block\">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let result of results$;\n loadMore: 'auto';\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: 'Find more\u2026'\n \"\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n (click)=\"open($event, result, result.name)\"\n [title]=\"result.name\"\n data-cy=\"search-input--search-results\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- No search results found entry -->\n <ng-template #notFoundTemplate>\n <c8y-li *ngIf=\"noMatch\" class=\"p-16 c8y-empty-state\" data-cy=\"search-input--empty-state\" [selectable]=\"false\">\n <c8y-li-icon [icon]=\"'search'\"></c8y-li-icon>\n <p><strong translate>No match found.</strong></p>\n <small translate *ngIf=\"mode === 'search'\">\n Try to filter or open the asset grid to show all devices and groups.\n </small>\n <small translate *ngIf=\"mode === 'select'\">Try to rephrase your search word.</small>\n </c8y-li>\n </ng-template>\n\n <!-- loading bar first entries -->\n <c8y-li *ngIf=\"isLoading\" class=\"p-t-32 p-b-0\" style=\"position: relative\">\n <div class=\"spinner\" style=\"right: 0\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </c8y-li>\n\n <!-- loading bar for loading more entries (inventory roles) -->\n <ng-template #loading>\n <c8y-li class=\"text-center p-t-32 p-b-0\" style=\"position: relative\">\n <div class=\"spinner\" style=\"right: 0\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </c8y-li>\n </ng-template>\n\n <!-- more filter possibilities -->\n <c8y-li\n class=\"m-t-24 bg-level-2 p-t-16 p-b-16 p-l-24 p-r-24 sticky-bottom\"\n [selectable]=\"false\"\n *ngIf=\"mode === 'search'\"\n >\n <div class=\"d-flex a-i-center\">\n <i c8yIcon=\"info-circle\" class=\"text-info m-r-4\"></i>\n <p translate class=\"m-r-8\">Need more filter possibilities?</p>\n <button\n class=\"m-l-16 btn btn-default btn-sm\"\n title=\"{{ 'Go to the asset data table' | translate }}\"\n data-cy=\"search-input--asset-table-btn\"\n type=\"button\"\n (mousedown)=\"onOpenAssetTable()\"\n >\n {{ 'Go to the asset data table' | translate }}\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$7.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$7.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$7.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: DeviceStatusComponent, selector: "device-status", inputs: ["mo"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }, { kind: "pipe", type: ShouldShowMoPipe, name: "shouldShowMo" }, { kind: "pipe", type: GetGroupIconPipe, name: "getGroupIcon" }] });
|
|
17804
|
+
SearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SearchInputComponent, selector: "c8y-search-input", inputs: { mode: "mode", enableCustomTemplatePlaceholder: "enableCustomTemplatePlaceholder", externalTerm: "externalTerm", customDataQuery: "customDataQuery", container: "container", groupsOnly: "groupsOnly" }, outputs: { filter: "filter", search: "search", reset: "reset", onClick: "onClick" }, host: { listeners: { "document:keydown": "onKeydownHandler($event)" } }, viewQueries: [{ propertyName: "typeahead", first: true, predicate: TypeaheadComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: ["searchDropdown"], descendants: true }], ngImport: i0, template: "<div\n class=\"dropdown\"\n dropdown\n #searchDropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n (isOpenChange)=\"onOpenChange($event)\"\n *ngIf=\"mode === 'search'\"\n [cdkTrapFocus]=\"searchDropdown.isOpen\"\n>\n <button\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n [title]=\"'Search' | translate\"\n type=\"button\"\n dropdownToggle\n data-cy=\"search-input--search-btn\"\n >\n <i\n class=\"icon-2x\"\n c8yIcon=\"search\"\n ></i>\n </button>\n\n <div\n class=\"search-header-menu dropdown-menu dropdown-menu-right\"\n id=\"searchDropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n</div>\n\n<div \n class=\"search-header-inline\" \n *ngIf=\"mode === 'select'\"\n>\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n</div>\n<ng-template #form>\n <form \n [ngClass]=\"{ 'c8y-search-form': mode === 'search' }\" \n novalidate \n #searchForm=\"ngForm\"\n >\n <c8y-typeahead\n [(ngModel)]=\"selected\"\n placeholder=\"{{ 'Search for groups or assets\u2026' | translate }}\"\n (keydown)=\"keyDown($event)\"\n (onIconClick)=\"onReset($event)\"\n [icon]=\"term ? 'times' : 'search'\"\n [allowFreeEntries]=\"false\"\n [container]=\"container\"\n name=\"selected\"\n title=\"Search\"\n >\n <div\n class=\"c8y-list__item p-l-24 p-r-24 p-b-8 separator-bottom sticky-top p-t-4\"\n *ngIf=\"enableCustomTemplatePlaceholder && mode === 'search'\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- filter buttons -->\n <c8y-li *ngIf=\"term.length !== 0\" class=\"p-l-16 p-r-16\">\n <div class=\"d-flex\" *ngIf=\"mode === 'search'\">\n <p class=\"m-r-4 text-muted\">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class=\"btn-group btn-group-sm\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Starts with' | translate }}\"\n data-cy=\"search-input--search-starts-with\"\n (click)=\"onFilter(term + '*')\"\n >\n {{ 'Starts with' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Contains' | translate }}\"\n data-cy=\"search-input--search-contains\"\n (click)=\"onFilter('*' + term + '*')\"\n >\n {{ 'Contains' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Ends with' | translate }}\"\n data-cy=\"search-input--search-ends-with\"\n (click)=\"onFilter('*' + term)\"\n >\n {{ 'Ends with' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n <!-- Recent search -->\n <c8y-li\n class=\"p-l-24 p-r-24\"\n *ngIf=\"term.length === 0 && recentSearchResults.length > 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recent search views</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *ngFor=\"let result of term.length === 0 ? recentSearchResults : []\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Recently registered devices -->\n <c8y-li\n *ngIf=\"term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0 && !groupsOnly\"\n class=\"p-l-24 p-r-24\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let result of (term.length === 0 && !groupsOnly) ? recentlyRegisteredResults$ : { data: [] };\n loadMore: 'none';\n \"\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\" \n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Search results -->\n <c8y-li *ngIf=\"term.length !== 0\" class=\"p-l-24 p-r-24\" [selectable]=\"false\">\n <div class=\"legend form-block\">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let result of results$;\n loadMore: 'auto';\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: 'Find more\u2026'\n \"\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n (click)=\"open($event, result, result.name)\"\n [title]=\"result.name\"\n data-cy=\"search-input--search-results\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- No search results found entry -->\n <ng-template #notFoundTemplate>\n <c8y-li *ngIf=\"noMatch\" class=\"p-16 c8y-empty-state\" data-cy=\"search-input--empty-state\" [selectable]=\"false\">\n <c8y-li-icon [icon]=\"'search'\"></c8y-li-icon>\n <p><strong translate>No match found.</strong></p>\n <small translate *ngIf=\"mode === 'search'\">\n Try to filter or open the asset grid to show all devices and groups.\n </small>\n <small translate *ngIf=\"mode === 'select'\">Try to rephrase your search word.</small>\n </c8y-li>\n </ng-template>\n\n <!-- loading bar first entries -->\n <c8y-li *ngIf=\"isLoading\" class=\"p-t-32 p-b-0\" style=\"position: relative\">\n <div class=\"spinner\" style=\"right: 0\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </c8y-li>\n\n <!-- loading bar for loading more entries (inventory roles) -->\n <ng-template #loading>\n <c8y-li class=\"text-center p-t-32 p-b-0\" style=\"position: relative\">\n <div class=\"spinner\" style=\"right: 0\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </c8y-li>\n </ng-template>\n\n <!-- more filter possibilities -->\n <c8y-li\n class=\"m-t-24 bg-level-2 p-t-16 p-b-16 p-l-24 p-r-24 sticky-bottom\"\n [selectable]=\"false\"\n *ngIf=\"mode === 'search'\"\n >\n <div class=\"d-flex a-i-center\">\n <i c8yIcon=\"info-circle\" class=\"text-info m-r-4\"></i>\n <p translate class=\"m-r-8\">Need more filter possibilities?</p>\n <button\n class=\"m-l-16 btn btn-default btn-sm\"\n title=\"{{ 'Go to the asset data table' | translate }}\"\n data-cy=\"search-input--asset-table-btn\"\n type=\"button\"\n (mousedown)=\"onOpenAssetTable()\"\n >\n {{ 'Go to the asset data table' | translate }}\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: DeviceStatusComponent, selector: "device-status", inputs: ["mo"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: ShouldShowMoPipe, name: "shouldShowMo" }, { kind: "pipe", type: GetGroupIconPipe, name: "getGroupIcon" }] });
|
|
17791
17805
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
17792
17806
|
type: Component,
|
|
17793
17807
|
args: [{ selector: 'c8y-search-input', template: "<div\n class=\"dropdown\"\n dropdown\n #searchDropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n (isOpenChange)=\"onOpenChange($event)\"\n *ngIf=\"mode === 'search'\"\n [cdkTrapFocus]=\"searchDropdown.isOpen\"\n>\n <button\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n [title]=\"'Search' | translate\"\n type=\"button\"\n dropdownToggle\n data-cy=\"search-input--search-btn\"\n >\n <i\n class=\"icon-2x\"\n c8yIcon=\"search\"\n ></i>\n </button>\n\n <div\n class=\"search-header-menu dropdown-menu dropdown-menu-right\"\n id=\"searchDropdown\"\n *dropdownMenu\n >\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n </div>\n</div>\n\n<div \n class=\"search-header-inline\" \n *ngIf=\"mode === 'select'\"\n>\n <ng-container *ngTemplateOutlet=\"form\"></ng-container>\n</div>\n<ng-template #form>\n <form \n [ngClass]=\"{ 'c8y-search-form': mode === 'search' }\" \n novalidate \n #searchForm=\"ngForm\"\n >\n <c8y-typeahead\n [(ngModel)]=\"selected\"\n placeholder=\"{{ 'Search for groups or assets\u2026' | translate }}\"\n (keydown)=\"keyDown($event)\"\n (onIconClick)=\"onReset($event)\"\n [icon]=\"term ? 'times' : 'search'\"\n [allowFreeEntries]=\"false\"\n [container]=\"container\"\n name=\"selected\"\n title=\"Search\"\n >\n <div\n class=\"c8y-list__item p-l-24 p-r-24 p-b-8 separator-bottom sticky-top p-t-4\"\n *ngIf=\"enableCustomTemplatePlaceholder && mode === 'search'\"\n >\n <ng-content></ng-content>\n </div>\n\n <!-- filter buttons -->\n <c8y-li *ngIf=\"term.length !== 0\" class=\"p-l-16 p-r-16\">\n <div class=\"d-flex\" *ngIf=\"mode === 'search'\">\n <p class=\"m-r-4 text-muted\">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class=\"btn-group btn-group-sm\">\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Starts with' | translate }}\"\n data-cy=\"search-input--search-starts-with\"\n (click)=\"onFilter(term + '*')\"\n >\n {{ 'Starts with' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Contains' | translate }}\"\n data-cy=\"search-input--search-contains\"\n (click)=\"onFilter('*' + term + '*')\"\n >\n {{ 'Contains' | translate }}\n </button>\n <button\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Ends with' | translate }}\"\n data-cy=\"search-input--search-ends-with\"\n (click)=\"onFilter('*' + term)\"\n >\n {{ 'Ends with' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n <!-- Recent search -->\n <c8y-li\n class=\"p-l-24 p-r-24\"\n *ngIf=\"term.length === 0 && recentSearchResults.length > 0\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recent search views</span>\n </div>\n </c8y-li>\n <c8y-li\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n *ngFor=\"let result of term.length === 0 ? recentSearchResults : []\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Recently registered devices -->\n <c8y-li\n *ngIf=\"term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0 && !groupsOnly\"\n class=\"p-l-24 p-r-24\"\n [selectable]=\"false\"\n >\n <div class=\"legend form-block\">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let result of (term.length === 0 && !groupsOnly) ? recentlyRegisteredResults$ : { data: [] };\n loadMore: 'none';\n \"\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n (click)=\"open($event, result, result.name)\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\" \n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- Search results -->\n <c8y-li *ngIf=\"term.length !== 0\" class=\"p-l-24 p-r-24\" [selectable]=\"false\">\n <div class=\"legend form-block\">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor=\"\n let result of results$;\n loadMore: 'auto';\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: 'Find more\u2026'\n \"\n class=\"c8y-list__item--link m-l-16 m-r-16\"\n (click)=\"open($event, result, result.name)\"\n [title]=\"result.name\"\n data-cy=\"search-input--search-results\"\n >\n <c8y-li-icon>\n <ng-container *ngIf=\"result | shouldShowMo: deviceType.DEVICE; else group\">\n <device-status [mo]=\"result\"></device-status>\n </ng-container>\n <ng-template #group>\n <i \n class=\"c8y-icon-duocolor\"\n [c8yIcon]=\"result | getGroupIcon | async\"\n >\n </i>\n </ng-template>\n </c8y-li-icon>\n {{ result.name || '--' }}\n </c8y-li>\n\n <!-- No search results found entry -->\n <ng-template #notFoundTemplate>\n <c8y-li *ngIf=\"noMatch\" class=\"p-16 c8y-empty-state\" data-cy=\"search-input--empty-state\" [selectable]=\"false\">\n <c8y-li-icon [icon]=\"'search'\"></c8y-li-icon>\n <p><strong translate>No match found.</strong></p>\n <small translate *ngIf=\"mode === 'search'\">\n Try to filter or open the asset grid to show all devices and groups.\n </small>\n <small translate *ngIf=\"mode === 'select'\">Try to rephrase your search word.</small>\n </c8y-li>\n </ng-template>\n\n <!-- loading bar first entries -->\n <c8y-li *ngIf=\"isLoading\" class=\"p-t-32 p-b-0\" style=\"position: relative\">\n <div class=\"spinner\" style=\"right: 0\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </c8y-li>\n\n <!-- loading bar for loading more entries (inventory roles) -->\n <ng-template #loading>\n <c8y-li class=\"text-center p-t-32 p-b-0\" style=\"position: relative\">\n <div class=\"spinner\" style=\"right: 0\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </c8y-li>\n </ng-template>\n\n <!-- more filter possibilities -->\n <c8y-li\n class=\"m-t-24 bg-level-2 p-t-16 p-b-16 p-l-24 p-r-24 sticky-bottom\"\n [selectable]=\"false\"\n *ngIf=\"mode === 'search'\"\n >\n <div class=\"d-flex a-i-center\">\n <i c8yIcon=\"info-circle\" class=\"text-info m-r-4\"></i>\n <p translate class=\"m-r-8\">Need more filter possibilities?</p>\n <button\n class=\"m-l-16 btn btn-default btn-sm\"\n title=\"{{ 'Go to the asset data table' | translate }}\"\n data-cy=\"search-input--asset-table-btn\"\n type=\"button\"\n (mousedown)=\"onOpenAssetTable()\"\n >\n {{ 'Go to the asset data table' | translate }}\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n</ng-template>\n" }]
|
|
@@ -17972,7 +17986,7 @@ class SelectComponent$1 {
|
|
|
17972
17986
|
}
|
|
17973
17987
|
}
|
|
17974
17988
|
SelectComponent$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectComponent$1, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17975
|
-
SelectComponent$1.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectComponent$1, selector: "c8y-select", inputs: { placeholder: "placeholder", selectedLabel: "selectedLabel", applyLabel: "applyLabel", items: "items", selected: "selected", updateItems: "updateItems", disableApplyOnNoSelection: "disableApplyOnNoSelection" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "preventClick($event)" } }, queries: [{ propertyName: "liChildren", predicate: ListItemComponent }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: BsDropdownDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"c8y-child-assets-selector dropdown fit-w\"\n (isOpenChange)=\"isOpenChange($event)\"\n dropdown\n #dropdown\n c8yDropdownDirection\n px-event=\"Select type\"\n>\n <button\n type=\"button\"\n class=\"btn dropdown-toggle c8y-dropdown\"\n title=\"{{ labelText || placeholder | translate }}\"\n aria-haspopup=\"true\"\n dropdownToggle\n >\n <span class=\"text-truncate\" *ngIf=\"labelText\">\n <ng-container *ngIf=\"showAllLabel\">{{ 'All' | translate }}</ng-container>\n <ng-container *ngIf=\"!showAllLabel\">{{ labelText | translate }}</ng-container>\n </span>\n <span class=\"text-truncate text-muted\" *ngIf=\"!labelText\">\n {{ placeholder | translate }}\n </span>\n </button>\n\n <ul class=\"dropdown-menu multiselect-container\" *dropdownMenu>\n <ng-content select=\"c8y-li\"></ng-content>\n <ng-container *ngIf=\"liChildren.length === 0\">\n <li *ngIf=\"items.length > sizeToShowFilter\" class=\"multiselect-item\">\n <div class=\"input-group input-group-search\">\n <input\n type=\"search\"\n class=\"form-control\"\n placeholder=\"{{ 'Filter' | translate }}\u2026\"\n (keyup)=\"updateFiltered($event.target.value)\"\n [(ngModel)]=\"searchFilter\"\n />\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\" *ngIf=\"!textFilter\"></i>\n <i c8yIcon=\"times\" class=\"text-muted\" *ngIf=\"textFilter\" (click)=\"textFilter = ''\"></i>\n </span>\n </div>\n </li>\n\n <li class=\"multiselect-item\">\n <label\n [title]=\"getSelectAllToggleStatus().label | translate\"\n class=\"c8y-checkbox input-sm\"\n ng-click=\"vm.toggleSelectAll(); $event.preventDefault()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"getSelectAllToggleStatus().checked\"\n (change)=\"selectAll($event.target.checked)\"\n [indeterminate]=\"getSelectAllToggleStatus().indeterminate\"\n class=\"m-t-0\"\n />\n <span></span>\n <span class=\"label-text\">\n {{ getSelectAllToggleStatus().label | translate }}\n </span>\n </label>\n </li>\n\n <li>\n <ul class=\"list-unstyled\">\n <li class=\"multiselect-item\" *ngFor=\"let item of filteredItems\">\n <label title=\"{{ item.name | translate }}\" class=\"c8y-checkbox input-sm text-truncate\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n (change)=\"onChangeItem($event.target.checked, item)\"\n class=\"m-t-0\"\n />\n <span></span>\n <span class=\"label-text\">\n {{ item.name | translate }}\n </span>\n </label>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li class=\"sticky-bottom bg-level-0\">\n <button\n title=\"{{ applyLabel | translate }}\"\n class=\"btn btn-primary btn-block\"\n [disabled]=\"disableApplyOnNoSelection && isNoItemSelected()\"\n (click)=\"applyChanges()\"\n >\n {{ applyLabel | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$
|
|
17989
|
+
SelectComponent$1.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectComponent$1, selector: "c8y-select", inputs: { placeholder: "placeholder", selectedLabel: "selectedLabel", applyLabel: "applyLabel", items: "items", selected: "selected", updateItems: "updateItems", disableApplyOnNoSelection: "disableApplyOnNoSelection" }, outputs: { onChange: "onChange" }, host: { listeners: { "click": "preventClick($event)" } }, queries: [{ propertyName: "liChildren", predicate: ListItemComponent }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: BsDropdownDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"c8y-child-assets-selector dropdown fit-w\"\n (isOpenChange)=\"isOpenChange($event)\"\n dropdown\n #dropdown\n c8yDropdownDirection\n px-event=\"Select type\"\n>\n <button\n type=\"button\"\n class=\"btn dropdown-toggle c8y-dropdown\"\n title=\"{{ labelText || placeholder | translate }}\"\n aria-haspopup=\"true\"\n dropdownToggle\n >\n <span class=\"text-truncate\" *ngIf=\"labelText\">\n <ng-container *ngIf=\"showAllLabel\">{{ 'All' | translate }}</ng-container>\n <ng-container *ngIf=\"!showAllLabel\">{{ labelText | translate }}</ng-container>\n </span>\n <span class=\"text-truncate text-muted\" *ngIf=\"!labelText\">\n {{ placeholder | translate }}\n </span>\n </button>\n\n <ul class=\"dropdown-menu multiselect-container\" *dropdownMenu>\n <ng-content select=\"c8y-li\"></ng-content>\n <ng-container *ngIf=\"liChildren.length === 0\">\n <li *ngIf=\"items.length > sizeToShowFilter\" class=\"multiselect-item\">\n <div class=\"input-group input-group-search\">\n <input\n type=\"search\"\n class=\"form-control\"\n placeholder=\"{{ 'Filter' | translate }}\u2026\"\n (keyup)=\"updateFiltered($event.target.value)\"\n [(ngModel)]=\"searchFilter\"\n />\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\" *ngIf=\"!textFilter\"></i>\n <i c8yIcon=\"times\" class=\"text-muted\" *ngIf=\"textFilter\" (click)=\"textFilter = ''\"></i>\n </span>\n </div>\n </li>\n\n <li class=\"multiselect-item\">\n <label\n [title]=\"getSelectAllToggleStatus().label | translate\"\n class=\"c8y-checkbox input-sm\"\n ng-click=\"vm.toggleSelectAll(); $event.preventDefault()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"getSelectAllToggleStatus().checked\"\n (change)=\"selectAll($event.target.checked)\"\n [indeterminate]=\"getSelectAllToggleStatus().indeterminate\"\n class=\"m-t-0\"\n />\n <span></span>\n <span class=\"label-text\">\n {{ getSelectAllToggleStatus().label | translate }}\n </span>\n </label>\n </li>\n\n <li>\n <ul class=\"list-unstyled\">\n <li class=\"multiselect-item\" *ngFor=\"let item of filteredItems\">\n <label title=\"{{ item.name | translate }}\" class=\"c8y-checkbox input-sm text-truncate\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n (change)=\"onChangeItem($event.target.checked, item)\"\n class=\"m-t-0\"\n />\n <span></span>\n <span class=\"label-text\">\n {{ item.name | translate }}\n </span>\n </label>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li class=\"sticky-bottom bg-level-0\">\n <button\n title=\"{{ applyLabel | translate }}\"\n class=\"btn btn-primary btn-block\"\n [disabled]=\"disableApplyOnNoSelection && isNoItemSelected()\"\n (click)=\"applyChanges()\"\n >\n {{ applyLabel | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: DropdownDirectionDirective, selector: "[dropdown][c8yBsDropdownDirection],[dropdown][c8yDropdownDirection]" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
17976
17990
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectComponent$1, decorators: [{
|
|
17977
17991
|
type: Component,
|
|
17978
17992
|
args: [{ selector: 'c8y-select', template: "<div\n class=\"c8y-child-assets-selector dropdown fit-w\"\n (isOpenChange)=\"isOpenChange($event)\"\n dropdown\n #dropdown\n c8yDropdownDirection\n px-event=\"Select type\"\n>\n <button\n type=\"button\"\n class=\"btn dropdown-toggle c8y-dropdown\"\n title=\"{{ labelText || placeholder | translate }}\"\n aria-haspopup=\"true\"\n dropdownToggle\n >\n <span class=\"text-truncate\" *ngIf=\"labelText\">\n <ng-container *ngIf=\"showAllLabel\">{{ 'All' | translate }}</ng-container>\n <ng-container *ngIf=\"!showAllLabel\">{{ labelText | translate }}</ng-container>\n </span>\n <span class=\"text-truncate text-muted\" *ngIf=\"!labelText\">\n {{ placeholder | translate }}\n </span>\n </button>\n\n <ul class=\"dropdown-menu multiselect-container\" *dropdownMenu>\n <ng-content select=\"c8y-li\"></ng-content>\n <ng-container *ngIf=\"liChildren.length === 0\">\n <li *ngIf=\"items.length > sizeToShowFilter\" class=\"multiselect-item\">\n <div class=\"input-group input-group-search\">\n <input\n type=\"search\"\n class=\"form-control\"\n placeholder=\"{{ 'Filter' | translate }}\u2026\"\n (keyup)=\"updateFiltered($event.target.value)\"\n [(ngModel)]=\"searchFilter\"\n />\n <span class=\"input-group-addon\">\n <i c8yIcon=\"search\" *ngIf=\"!textFilter\"></i>\n <i c8yIcon=\"times\" class=\"text-muted\" *ngIf=\"textFilter\" (click)=\"textFilter = ''\"></i>\n </span>\n </div>\n </li>\n\n <li class=\"multiselect-item\">\n <label\n [title]=\"getSelectAllToggleStatus().label | translate\"\n class=\"c8y-checkbox input-sm\"\n ng-click=\"vm.toggleSelectAll(); $event.preventDefault()\"\n >\n <input\n type=\"checkbox\"\n [checked]=\"getSelectAllToggleStatus().checked\"\n (change)=\"selectAll($event.target.checked)\"\n [indeterminate]=\"getSelectAllToggleStatus().indeterminate\"\n class=\"m-t-0\"\n />\n <span></span>\n <span class=\"label-text\">\n {{ getSelectAllToggleStatus().label | translate }}\n </span>\n </label>\n </li>\n\n <li>\n <ul class=\"list-unstyled\">\n <li class=\"multiselect-item\" *ngFor=\"let item of filteredItems\">\n <label title=\"{{ item.name | translate }}\" class=\"c8y-checkbox input-sm text-truncate\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n (change)=\"onChangeItem($event.target.checked, item)\"\n class=\"m-t-0\"\n />\n <span></span>\n <span class=\"label-text\">\n {{ item.name | translate }}\n </span>\n </label>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li class=\"sticky-bottom bg-level-0\">\n <button\n title=\"{{ applyLabel | translate }}\"\n class=\"btn btn-primary btn-block\"\n [disabled]=\"disableApplyOnNoSelection && isNoItemSelected()\"\n (click)=\"applyChanges()\"\n >\n {{ applyLabel | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n</div>\n" }]
|
|
@@ -18011,7 +18025,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
18011
18025
|
class ListItemBodyComponent {
|
|
18012
18026
|
}
|
|
18013
18027
|
ListItemBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18014
|
-
ListItemBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: { body: "body" }, ngImport: i0, template: "<span *ngIf=\"body\">{{body}}</span>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type:
|
|
18028
|
+
ListItemBodyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: { body: "body" }, ngImport: i0, template: "<span *ngIf=\"body\">{{body}}</span>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
18015
18029
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemBodyComponent, decorators: [{
|
|
18016
18030
|
type: Component,
|
|
18017
18031
|
args: [{ selector: 'c8y-list-item-body, c8y-li-body', template: "<span *ngIf=\"body\">{{body}}</span>\n<ng-content></ng-content>\n" }]
|
|
@@ -18082,7 +18096,7 @@ ListItemCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
18082
18096
|
multi: true,
|
|
18083
18097
|
useExisting: forwardRef(() => ListItemCheckboxComponent)
|
|
18084
18098
|
}
|
|
18085
|
-
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label [ngClass]=\"displayAsSwitch ? 'c8y-switch c8y-switch--inline' : 'c8y-checkbox'\">\n <input\n id=\"event\"\n type=\"checkbox\"\n class=\"form-control\"\n [disabled]=\"disabled\"\n [checked]=\"selected\"\n (change)=\"select($event.target.checked); (false)\"\n />\n <span></span>\n <span for=\"event\" class=\"sr-only\" translate>event</span>\n</label>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
18099
|
+
], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label [ngClass]=\"displayAsSwitch ? 'c8y-switch c8y-switch--inline' : 'c8y-checkbox'\">\n <input\n id=\"event\"\n type=\"checkbox\"\n class=\"form-control\"\n [disabled]=\"disabled\"\n [checked]=\"selected\"\n (change)=\"select($event.target.checked); (false)\"\n />\n <span></span>\n <span for=\"event\" class=\"sr-only\" translate>event</span>\n</label>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
18086
18100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemCheckboxComponent, decorators: [{
|
|
18087
18101
|
type: Component,
|
|
18088
18102
|
args: [{ selector: 'c8y-list-item-checkbox, c8y-li-checkbox', host: {
|
|
@@ -18253,7 +18267,7 @@ ListGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
|
|
|
18253
18267
|
ListItemCheckboxComponent,
|
|
18254
18268
|
ListItemRadioComponent,
|
|
18255
18269
|
ListItemTimelineComponent,
|
|
18256
|
-
ListItemDragHandleComponent], imports: [CommonModule, i1$
|
|
18270
|
+
ListItemDragHandleComponent], imports: [CommonModule, i1$9.CollapseModule, BsDropdownModule], exports: [ListGroupComponent,
|
|
18257
18271
|
ListItemComponent,
|
|
18258
18272
|
ListItemIconComponent,
|
|
18259
18273
|
ListItemBodyComponent,
|
|
@@ -18305,7 +18319,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
18305
18319
|
class SelectModule {
|
|
18306
18320
|
}
|
|
18307
18321
|
SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18308
|
-
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, declarations: [SelectComponent$1, TypeaheadComponent], imports: [i1$
|
|
18322
|
+
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, declarations: [SelectComponent$1, TypeaheadComponent], imports: [i1$6.BsDropdownModule, CommonModule, ListGroupModule, FormsModule], exports: [SelectComponent$1, TypeaheadComponent] });
|
|
18309
18323
|
SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, imports: [BsDropdownModule.forRoot(), CommonModule, ListGroupModule, FormsModule] });
|
|
18310
18324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, decorators: [{
|
|
18311
18325
|
type: NgModule,
|
|
@@ -18415,7 +18429,7 @@ class UserTotpRevokeComponent {
|
|
|
18415
18429
|
}
|
|
18416
18430
|
}
|
|
18417
18431
|
UserTotpRevokeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserTotpRevokeComponent, deps: [{ token: i1$2.UserService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18418
|
-
UserTotpRevokeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserTotpRevokeComponent, selector: "c8y-user-totp-revoke", inputs: { user: "user" }, outputs: { revokeEmitter: "revoke" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"btn btn-default\"\n [popover]=\"confirm\"\n [popoverTitle]=\"'Revoke TOTP secret' | translate\"\n #popover=\"bs-popover\"\n placement=\"bottom\"\n \n\n>\n <i c8yIcon=\"key\"></i> {{ 'Revoke TOTP secret' | translate }}\n</button>\n\n<ng-template #confirm>\n <p class=\"m-b-16\" translate>\n This action will revoke the user's stored TOTP secret which will require a new setup.\n </p>\n <button\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"popover.hide()\"\n translate\n >\n Cancel\n </button>\n <button\n title=\"{{ 'Revoke' | translate }}\"\n type=\"button\"\n class=\"btn btn-danger\"\n (click)=\"revoke(); popover.hide()\"\n translate\n >\n Revoke\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2$
|
|
18432
|
+
UserTotpRevokeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: UserTotpRevokeComponent, selector: "c8y-user-totp-revoke", inputs: { user: "user" }, outputs: { revokeEmitter: "revoke" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"btn btn-default\"\n [popover]=\"confirm\"\n [popoverTitle]=\"'Revoke TOTP secret' | translate\"\n #popover=\"bs-popover\"\n placement=\"bottom\"\n \n\n>\n <i c8yIcon=\"key\"></i> {{ 'Revoke TOTP secret' | translate }}\n</button>\n\n<ng-template #confirm>\n <p class=\"m-b-16\" translate>\n This action will revoke the user's stored TOTP secret which will require a new setup.\n </p>\n <button\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"popover.hide()\"\n translate\n >\n Cancel\n </button>\n <button\n title=\"{{ 'Revoke' | translate }}\"\n type=\"button\"\n class=\"btn btn-danger\"\n (click)=\"revoke(); popover.hide()\"\n translate\n >\n Revoke\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
18419
18433
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserTotpRevokeComponent, decorators: [{
|
|
18420
18434
|
type: Component,
|
|
18421
18435
|
args: [{ selector: 'c8y-user-totp-revoke', template: "<button\n type=\"button\"\n class=\"btn btn-default\"\n [popover]=\"confirm\"\n [popoverTitle]=\"'Revoke TOTP secret' | translate\"\n #popover=\"bs-popover\"\n placement=\"bottom\"\n \n\n>\n <i c8yIcon=\"key\"></i> {{ 'Revoke TOTP secret' | translate }}\n</button>\n\n<ng-template #confirm>\n <p class=\"m-b-16\" translate>\n This action will revoke the user's stored TOTP secret which will require a new setup.\n </p>\n <button\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n (click)=\"popover.hide()\"\n translate\n >\n Cancel\n </button>\n <button\n title=\"{{ 'Revoke' | translate }}\"\n type=\"button\"\n class=\"btn btn-danger\"\n (click)=\"revoke(); popover.hide()\"\n translate\n >\n Revoke\n </button>\n</ng-template>\n" }]
|
|
@@ -18448,7 +18462,7 @@ UserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14
|
|
|
18448
18462
|
BsDropdownModule,
|
|
18449
18463
|
AuthenticationModule,
|
|
18450
18464
|
AlertModule,
|
|
18451
|
-
RouterModule$1, i1$
|
|
18465
|
+
RouterModule$1, i1$7.TooltipModule, PopoverModule,
|
|
18452
18466
|
ClipboardModule], exports: [UserMenuOutletComponent,
|
|
18453
18467
|
UserMenuItemComponent,
|
|
18454
18468
|
UserEditComponent,
|
|
@@ -19013,7 +19027,7 @@ HeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
|
19013
19027
|
ActionModule,
|
|
19014
19028
|
BreadcrumbModule,
|
|
19015
19029
|
NavigatorModule,
|
|
19016
|
-
VersionModule, i1$
|
|
19030
|
+
VersionModule, i1$7.TooltipModule, i1$9.CollapseModule, ProductExperienceModule], exports: [HeaderBarComponent,
|
|
19017
19031
|
TitleComponent,
|
|
19018
19032
|
TitleOutletComponent,
|
|
19019
19033
|
AppIconComponent,
|
|
@@ -19244,12 +19258,12 @@ class SetupCompletedComponent {
|
|
|
19244
19258
|
this.step.state = this.status;
|
|
19245
19259
|
}
|
|
19246
19260
|
}
|
|
19247
|
-
SetupCompletedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupCompletedComponent, deps: [{ token: C8yStepper }, { token: i2$
|
|
19248
|
-
SetupCompletedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SetupCompletedComponent, selector: "c8y-setup-completed", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\">Summary</h3>\n <p translate class=\"lead text-normal p-t-8 p-b-8\">\n Verify the setup result. If any step is not finished but required, you need to ensure that\n you have finished the step.\n </p>\n </div>\n </div>\n</div>\n<div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w p-t-16\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <div class=\"text-center\" [ngSwitch]=\"status\">\n <c8y-operation-result\n *ngSwitchCase=\"'done'\"\n text=\"{{ 'Setup completed' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"success\"\n ></c8y-operation-result>\n <c8y-operation-result\n *ngSwitchCase=\"'warning'\"\n text=\"{{ 'Setup completed with warnings' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"warning\"\n ></c8y-operation-result>\n <c8y-operation-result\n *ngSwitchCase=\"'error'\"\n text=\"{{ 'Setup not completed' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"error\"\n ></c8y-operation-result>\n </div>\n <ul class=\"list-unstyled m-t-16 separator-top\">\n <li\n class=\"p-t-4 p-b-4 d-flex a-i-center separator-bottom text-nowrap l-h-1\"\n *ngFor=\"let step of setup.steps.slice(0, setup.steps.length - 1)\"\n (click)=\"gotoStep(step.index)\"\n style=\"cursor: pointer\"\n >\n <span *ngIf=\"step.label\">\n <span\n class=\"dot small m-r-4 l-h-1\"\n [ngClass]=\"{\n 'dot-success': step.completed,\n 'dot-error': !step.completed && step.required,\n 'dot-warning': !step.completed && !step.required\n }\"\n >\n {{ step.index + 1 }}\n </span>\n {{ step.label || (STEP_LABEL | translate) + ' ' }}\n </span>\n <span *ngIf=\"!step.label\">\n <span translate>Step</span>\n {{ ' ' + (step.index + 1) }}\n </span>\n <span class=\"m-l-auto icon-20 l-h-1\">\n <i\n *ngIf=\"step.completed\"\n [c8yIcon]=\"'success'\"\n class=\"text-success\"\n [title]=\"'Completed' | translate\"\n ></i>\n <i\n *ngIf=\"!step.completed && step.required\"\n [c8yIcon]=\"'error'\"\n class=\"text-danger\"\n [title]=\"\n 'Not completed and required. Go to the step and fulfill the setup.' | translate\n \"\n ></i>\n <i\n *ngIf=\"!step.completed && !step.required\"\n [c8yIcon]=\"'warning'\"\n class=\"text-warning\"\n [title]=\"'This step was not completed but it is also not required.' | translate\"\n ></i>\n </span>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</div>\n<div class=\"card-footer separator d-flex j-c-center\">\n <button\n translate\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"back()\"\n *ngIf=\"stepper.selectedIndex !== 0\"\n [disabled]=\"\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n \"\n >\n Back\n </button>\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"start()\"\n [disabled]=\"\n status === 'error' ||\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n \"\n [ngClass]=\"{\n 'btn-pending':\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n }\"\n >\n <span *ngIf=\"setup.currentSetupState === setup.setupState.WIZARD\" translate>\n Save and reload\n </span>\n <span *ngIf=\"setup.currentSetupState === setup.setupState.FINALIZING\" translate>\n Getting things ready\u2026\n </span>\n <span *ngIf=\"setup.currentSetupState === setup.setupState.RELOADING\" translate>\n Done. Reloading the application.\n </span>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
19261
|
+
SetupCompletedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupCompletedComponent, deps: [{ token: C8yStepper }, { token: i2$3.CdkStep }, { token: SetupComponent }], target: i0.ɵɵFactoryTarget.Component });
|
|
19262
|
+
SetupCompletedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SetupCompletedComponent, selector: "c8y-setup-completed", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\">Summary</h3>\n <p translate class=\"lead text-normal p-t-8 p-b-8\">\n Verify the setup result. If any step is not finished but required, you need to ensure that\n you have finished the step.\n </p>\n </div>\n </div>\n</div>\n<div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w p-t-16\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <div class=\"text-center\" [ngSwitch]=\"status\">\n <c8y-operation-result\n *ngSwitchCase=\"'done'\"\n text=\"{{ 'Setup completed' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"success\"\n ></c8y-operation-result>\n <c8y-operation-result\n *ngSwitchCase=\"'warning'\"\n text=\"{{ 'Setup completed with warnings' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"warning\"\n ></c8y-operation-result>\n <c8y-operation-result\n *ngSwitchCase=\"'error'\"\n text=\"{{ 'Setup not completed' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"error\"\n ></c8y-operation-result>\n </div>\n <ul class=\"list-unstyled m-t-16 separator-top\">\n <li\n class=\"p-t-4 p-b-4 d-flex a-i-center separator-bottom text-nowrap l-h-1\"\n *ngFor=\"let step of setup.steps.slice(0, setup.steps.length - 1)\"\n (click)=\"gotoStep(step.index)\"\n style=\"cursor: pointer\"\n >\n <span *ngIf=\"step.label\">\n <span\n class=\"dot small m-r-4 l-h-1\"\n [ngClass]=\"{\n 'dot-success': step.completed,\n 'dot-error': !step.completed && step.required,\n 'dot-warning': !step.completed && !step.required\n }\"\n >\n {{ step.index + 1 }}\n </span>\n {{ step.label || (STEP_LABEL | translate) + ' ' }}\n </span>\n <span *ngIf=\"!step.label\">\n <span translate>Step</span>\n {{ ' ' + (step.index + 1) }}\n </span>\n <span class=\"m-l-auto icon-20 l-h-1\">\n <i\n *ngIf=\"step.completed\"\n [c8yIcon]=\"'success'\"\n class=\"text-success\"\n [title]=\"'Completed' | translate\"\n ></i>\n <i\n *ngIf=\"!step.completed && step.required\"\n [c8yIcon]=\"'error'\"\n class=\"text-danger\"\n [title]=\"\n 'Not completed and required. Go to the step and fulfill the setup.' | translate\n \"\n ></i>\n <i\n *ngIf=\"!step.completed && !step.required\"\n [c8yIcon]=\"'warning'\"\n class=\"text-warning\"\n [title]=\"'This step was not completed but it is also not required.' | translate\"\n ></i>\n </span>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</div>\n<div class=\"card-footer separator d-flex j-c-center\">\n <button\n translate\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"back()\"\n *ngIf=\"stepper.selectedIndex !== 0\"\n [disabled]=\"\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n \"\n >\n Back\n </button>\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"start()\"\n [disabled]=\"\n status === 'error' ||\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n \"\n [ngClass]=\"{\n 'btn-pending':\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n }\"\n >\n <span *ngIf=\"setup.currentSetupState === setup.setupState.WIZARD\" translate>\n Save and reload\n </span>\n <span *ngIf=\"setup.currentSetupState === setup.setupState.FINALIZING\" translate>\n Getting things ready\u2026\n </span>\n <span *ngIf=\"setup.currentSetupState === setup.setupState.RELOADING\" translate>\n Done. Reloading the application.\n </span>\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: OperationResultComponent, selector: "c8y-operation-result", inputs: ["text", "vertical", "size", "type"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
19249
19263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupCompletedComponent, decorators: [{
|
|
19250
19264
|
type: Component,
|
|
19251
19265
|
args: [{ selector: 'c8y-setup-completed', host: { class: 'd-contents' }, template: "<div class=\"container-fluid flex-no-shrink fit-w\">\n <div class=\"row separator-bottom\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3 p-t-24 p-l-16 p-r-16\">\n <h3 translate class=\"text-medium l-h-base\">Summary</h3>\n <p translate class=\"lead text-normal p-t-8 p-b-8\">\n Verify the setup result. If any step is not finished but required, you need to ensure that\n you have finished the step.\n </p>\n </div>\n </div>\n</div>\n<div class=\"inner-scroll flex-grow\">\n <div class=\"container-fluid fit-w p-t-16\">\n <div class=\"row\">\n <div class=\"col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3\">\n <div class=\"text-center\" [ngSwitch]=\"status\">\n <c8y-operation-result\n *ngSwitchCase=\"'done'\"\n text=\"{{ 'Setup completed' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"success\"\n ></c8y-operation-result>\n <c8y-operation-result\n *ngSwitchCase=\"'warning'\"\n text=\"{{ 'Setup completed with warnings' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"warning\"\n ></c8y-operation-result>\n <c8y-operation-result\n *ngSwitchCase=\"'error'\"\n text=\"{{ 'Setup not completed' | translate }}\"\n [size]=\"120\"\n [vertical]=\"true\"\n type=\"error\"\n ></c8y-operation-result>\n </div>\n <ul class=\"list-unstyled m-t-16 separator-top\">\n <li\n class=\"p-t-4 p-b-4 d-flex a-i-center separator-bottom text-nowrap l-h-1\"\n *ngFor=\"let step of setup.steps.slice(0, setup.steps.length - 1)\"\n (click)=\"gotoStep(step.index)\"\n style=\"cursor: pointer\"\n >\n <span *ngIf=\"step.label\">\n <span\n class=\"dot small m-r-4 l-h-1\"\n [ngClass]=\"{\n 'dot-success': step.completed,\n 'dot-error': !step.completed && step.required,\n 'dot-warning': !step.completed && !step.required\n }\"\n >\n {{ step.index + 1 }}\n </span>\n {{ step.label || (STEP_LABEL | translate) + ' ' }}\n </span>\n <span *ngIf=\"!step.label\">\n <span translate>Step</span>\n {{ ' ' + (step.index + 1) }}\n </span>\n <span class=\"m-l-auto icon-20 l-h-1\">\n <i\n *ngIf=\"step.completed\"\n [c8yIcon]=\"'success'\"\n class=\"text-success\"\n [title]=\"'Completed' | translate\"\n ></i>\n <i\n *ngIf=\"!step.completed && step.required\"\n [c8yIcon]=\"'error'\"\n class=\"text-danger\"\n [title]=\"\n 'Not completed and required. Go to the step and fulfill the setup.' | translate\n \"\n ></i>\n <i\n *ngIf=\"!step.completed && !step.required\"\n [c8yIcon]=\"'warning'\"\n class=\"text-warning\"\n [title]=\"'This step was not completed but it is also not required.' | translate\"\n ></i>\n </span>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</div>\n<div class=\"card-footer separator d-flex j-c-center\">\n <button\n translate\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"back()\"\n *ngIf=\"stepper.selectedIndex !== 0\"\n [disabled]=\"\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n \"\n >\n Back\n </button>\n <button\n class=\"btn btn-primary\"\n type=\"button\"\n (click)=\"start()\"\n [disabled]=\"\n status === 'error' ||\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n \"\n [ngClass]=\"{\n 'btn-pending':\n setup.currentSetupState === setup.setupState.FINALIZING ||\n setup.currentSetupState === setup.setupState.RELOADING\n }\"\n >\n <span *ngIf=\"setup.currentSetupState === setup.setupState.WIZARD\" translate>\n Save and reload\n </span>\n <span *ngIf=\"setup.currentSetupState === setup.setupState.FINALIZING\" translate>\n Getting things ready\u2026\n </span>\n <span *ngIf=\"setup.currentSetupState === setup.setupState.RELOADING\" translate>\n Done. Reloading the application.\n </span>\n </button>\n</div>\n" }]
|
|
19252
|
-
}], ctorParameters: function () { return [{ type: C8yStepper }, { type: i2$
|
|
19266
|
+
}], ctorParameters: function () { return [{ type: C8yStepper }, { type: i2$3.CdkStep }, { type: SetupComponent }]; } });
|
|
19253
19267
|
|
|
19254
19268
|
/**
|
|
19255
19269
|
* A factory providing the 'Summary' step to the setup stepper.
|
|
@@ -19777,7 +19791,7 @@ class DropAreaComponent {
|
|
|
19777
19791
|
}
|
|
19778
19792
|
}
|
|
19779
19793
|
DropAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DropAreaComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FilesService }, { token: i1$3.TranslateService }, { token: BytesPipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
19780
|
-
DropAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DropAreaComponent, selector: "c8y-drop-area", inputs: { formControl: "formControl", title: "title", message: "message", icon: "icon", loadingMessage: "loadingMessage", forceHideList: "forceHideList", alwaysShow: "alwaysShow", clickToOpen: "clickToOpen", loading: "loading", progress: "progress", maxAllowedFiles: "maxAllowedFiles", files: "files", accept: "accept" }, outputs: { dropped: "dropped" }, host: { listeners: { "keyup": "onkeyup($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DropAreaComponent, multi: true }], viewQueries: [{ propertyName: "area", first: true, predicate: ["area"], descendants: true, static: true }, { propertyName: "zone", first: true, predicate: ["zone"], descendants: true }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], ngImport: i0, template: "<div\n class=\"drop-zone\"\n *ngIf=\"!shouldShowFilesList()\"\n [ngClass]=\"{ 'has-errors': errors }\"\n [style.pointerEvents]=\"loading ? 'none' : 'auto'\"\n #zone\n (dragleave)=\"stopDragging()\"\n (drop)=\"onDrop($event)\"\n (dragover)=\"onOver()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\"\n (click)=\"showPicker($event)\"\n tabindex=\"0\"\n>\n <div class=\"file-placeholder\" [ngClass]=\"{ 'drag-over': isOver }\">\n <div *ngIf=\"loading\" class=\"d-flex p-4 flex-center\">\n <div\n class=\"progress progress-striped active m-0\"\n *ngIf=\"progress !== -1\"\n style=\"min-width: 50%\"\n >\n <div\n [attr.aria-label]=\"progress + '%'\"\n class=\"progress-bar\"\n role=\"progressbar\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner-snake\" *ngIf=\"progress === -1\"></div>\n <p class=\"m-t-auto m-b-auto m-r-8\">\n {{ loadingMessage | translate }}\n </p>\n </div>\n\n <div *ngIf=\"!loading\" class=\"hint-placeholder pointer\">\n <i class=\"dlt-c8y-icon-{{ icon }}\"></i>\n <p *ngIf=\"!errors\">\n <b>{{ message | translate }}</b>\n <br />\n <span *ngIf=\"alwaysShow && clickToOpen\" translate></span>\n </p>\n <div *ngIf=\"errors\" class=\"has-errors\">\n <p class=\"form-control-feedback-message\">\n {{ errorMessage | translate }}\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<div\n class=\"drop-zone\"\n *ngIf=\"shouldShowFilesList()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\"\n tabindex=\"0\"\n>\n <div *ngIf=\"loading\" class=\"p-absolute p-4 fit-w fit-h d-flex d-col j-c-center a-i-center\">\n <p class=\"m-b-8\">\n <strong>\n {{ loadingMessage | translate }}\n </strong>\n </p>\n <div\n class=\"progress progress-striped active m-0\"\n *ngIf=\"progress !== -1\"\n style=\"min-width: 80%\"\n >\n <div\n [attr.aria-label]=\"progress + '%'\"\n class=\"progress-bar\"\n role=\"progressbar\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner p-relative m-0\" *ngIf=\"progress === -1\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </div>\n <div *ngIf=\"!loading\" class=\"file-placeholder p-4\">\n <div class=\"d-flex p-4\">\n <i c8yIcon=\"file-o\" class=\"m-r-8\"></i>\n <span title=\"{{ filesNameString }}\" class=\"text-truncate\">\n {{ filesNameString }}\n </span>\n <button\n title=\"{{ 'Remove' | translate }}\"\n aria-label=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto\"\n >\n <i c8yIcon=\"minus-circle\" (click)=\"onDelete()\"></i>\n </button>\n </div>\n </div>\n</div>\n<label for=\"file\" class=\"sr-only\">{{ 'Select file' | translate }}</label>\n<input\n #picker\n *ngIf=\"clickToOpen\"\n (change)=\"onPick($event)\"\n (click)=\"picker.focus()\"\n (blur)=\"onTouched()\"\n [accept]=\"acceptedExts\"\n [multiple]=\"maxAllowedFiles > 1\"\n type=\"file\"\n class=\"hidden\"\n id=\"file\"\n/>\n<div #area [hidden]=\"isOver || loading\" (dragover)=\"toggle()\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
19794
|
+
DropAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DropAreaComponent, selector: "c8y-drop-area", inputs: { formControl: "formControl", title: "title", message: "message", icon: "icon", loadingMessage: "loadingMessage", forceHideList: "forceHideList", alwaysShow: "alwaysShow", clickToOpen: "clickToOpen", loading: "loading", progress: "progress", maxAllowedFiles: "maxAllowedFiles", files: "files", accept: "accept" }, outputs: { dropped: "dropped" }, host: { listeners: { "keyup": "onkeyup($event)" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DropAreaComponent, multi: true }], viewQueries: [{ propertyName: "area", first: true, predicate: ["area"], descendants: true, static: true }, { propertyName: "zone", first: true, predicate: ["zone"], descendants: true }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], ngImport: i0, template: "<div\n class=\"drop-zone\"\n *ngIf=\"!shouldShowFilesList()\"\n [ngClass]=\"{ 'has-errors': errors }\"\n [style.pointerEvents]=\"loading ? 'none' : 'auto'\"\n #zone\n (dragleave)=\"stopDragging()\"\n (drop)=\"onDrop($event)\"\n (dragover)=\"onOver()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\"\n (click)=\"showPicker($event)\"\n tabindex=\"0\"\n>\n <div class=\"file-placeholder\" [ngClass]=\"{ 'drag-over': isOver }\">\n <div *ngIf=\"loading\" class=\"d-flex p-4 flex-center\">\n <div\n class=\"progress progress-striped active m-0\"\n *ngIf=\"progress !== -1\"\n style=\"min-width: 50%\"\n >\n <div\n [attr.aria-label]=\"progress + '%'\"\n class=\"progress-bar\"\n role=\"progressbar\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner-snake\" *ngIf=\"progress === -1\"></div>\n <p class=\"m-t-auto m-b-auto m-r-8\">\n {{ loadingMessage | translate }}\n </p>\n </div>\n\n <div *ngIf=\"!loading\" class=\"hint-placeholder pointer\">\n <i class=\"dlt-c8y-icon-{{ icon }}\"></i>\n <p *ngIf=\"!errors\">\n <b>{{ message | translate }}</b>\n <br />\n <span *ngIf=\"alwaysShow && clickToOpen\" translate></span>\n </p>\n <div *ngIf=\"errors\" class=\"has-errors\">\n <p class=\"form-control-feedback-message\">\n {{ errorMessage | translate }}\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<div\n class=\"drop-zone\"\n *ngIf=\"shouldShowFilesList()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\"\n tabindex=\"0\"\n>\n <div *ngIf=\"loading\" class=\"p-absolute p-4 fit-w fit-h d-flex d-col j-c-center a-i-center\">\n <p class=\"m-b-8\">\n <strong>\n {{ loadingMessage | translate }}\n </strong>\n </p>\n <div\n class=\"progress progress-striped active m-0\"\n *ngIf=\"progress !== -1\"\n style=\"min-width: 80%\"\n >\n <div\n [attr.aria-label]=\"progress + '%'\"\n class=\"progress-bar\"\n role=\"progressbar\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner p-relative m-0\" *ngIf=\"progress === -1\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </div>\n <div *ngIf=\"!loading\" class=\"file-placeholder p-4\">\n <div class=\"d-flex p-4\">\n <i c8yIcon=\"file-o\" class=\"m-r-8\"></i>\n <span title=\"{{ filesNameString }}\" class=\"text-truncate\">\n {{ filesNameString }}\n </span>\n <button\n title=\"{{ 'Remove' | translate }}\"\n aria-label=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto\"\n >\n <i c8yIcon=\"minus-circle\" (click)=\"onDelete()\"></i>\n </button>\n </div>\n </div>\n</div>\n<label for=\"file\" class=\"sr-only\">{{ 'Select file' | translate }}</label>\n<input\n #picker\n *ngIf=\"clickToOpen\"\n (change)=\"onPick($event)\"\n (click)=\"picker.focus()\"\n (blur)=\"onTouched()\"\n [accept]=\"acceptedExts\"\n [multiple]=\"maxAllowedFiles > 1\"\n type=\"file\"\n class=\"hidden\"\n id=\"file\"\n/>\n<div #area [hidden]=\"isOver || loading\" (dragover)=\"toggle()\">\n <ng-content></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
19781
19795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DropAreaComponent, decorators: [{
|
|
19782
19796
|
type: Component,
|
|
19783
19797
|
args: [{ selector: 'c8y-drop-area', providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: DropAreaComponent, multi: true }], template: "<div\n class=\"drop-zone\"\n *ngIf=\"!shouldShowFilesList()\"\n [ngClass]=\"{ 'has-errors': errors }\"\n [style.pointerEvents]=\"loading ? 'none' : 'auto'\"\n #zone\n (dragleave)=\"stopDragging()\"\n (drop)=\"onDrop($event)\"\n (dragover)=\"onOver()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\"\n (click)=\"showPicker($event)\"\n tabindex=\"0\"\n>\n <div class=\"file-placeholder\" [ngClass]=\"{ 'drag-over': isOver }\">\n <div *ngIf=\"loading\" class=\"d-flex p-4 flex-center\">\n <div\n class=\"progress progress-striped active m-0\"\n *ngIf=\"progress !== -1\"\n style=\"min-width: 50%\"\n >\n <div\n [attr.aria-label]=\"progress + '%'\"\n class=\"progress-bar\"\n role=\"progressbar\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner-snake\" *ngIf=\"progress === -1\"></div>\n <p class=\"m-t-auto m-b-auto m-r-8\">\n {{ loadingMessage | translate }}\n </p>\n </div>\n\n <div *ngIf=\"!loading\" class=\"hint-placeholder pointer\">\n <i class=\"dlt-c8y-icon-{{ icon }}\"></i>\n <p *ngIf=\"!errors\">\n <b>{{ message | translate }}</b>\n <br />\n <span *ngIf=\"alwaysShow && clickToOpen\" translate></span>\n </p>\n <div *ngIf=\"errors\" class=\"has-errors\">\n <p class=\"form-control-feedback-message\">\n {{ errorMessage | translate }}\n </p>\n </div>\n </div>\n </div>\n</div>\n\n<div\n class=\"drop-zone\"\n *ngIf=\"shouldShowFilesList()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\"\n tabindex=\"0\"\n>\n <div *ngIf=\"loading\" class=\"p-absolute p-4 fit-w fit-h d-flex d-col j-c-center a-i-center\">\n <p class=\"m-b-8\">\n <strong>\n {{ loadingMessage | translate }}\n </strong>\n </p>\n <div\n class=\"progress progress-striped active m-0\"\n *ngIf=\"progress !== -1\"\n style=\"min-width: 80%\"\n >\n <div\n [attr.aria-label]=\"progress + '%'\"\n class=\"progress-bar\"\n role=\"progressbar\"\n aria-valuenow=\"0\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [style.width]=\"progress + '%'\"\n ></div>\n </div>\n <div class=\"spinner p-relative m-0\" *ngIf=\"progress === -1\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n </div>\n <div *ngIf=\"!loading\" class=\"file-placeholder p-4\">\n <div class=\"d-flex p-4\">\n <i c8yIcon=\"file-o\" class=\"m-r-8\"></i>\n <span title=\"{{ filesNameString }}\" class=\"text-truncate\">\n {{ filesNameString }}\n </span>\n <button\n title=\"{{ 'Remove' | translate }}\"\n aria-label=\"{{ 'Remove' | translate }}\"\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger showOnHover m-l-auto\"\n >\n <i c8yIcon=\"minus-circle\" (click)=\"onDelete()\"></i>\n </button>\n </div>\n </div>\n</div>\n<label for=\"file\" class=\"sr-only\">{{ 'Select file' | translate }}</label>\n<input\n #picker\n *ngIf=\"clickToOpen\"\n (change)=\"onPick($event)\"\n (click)=\"picker.focus()\"\n (blur)=\"onTouched()\"\n [accept]=\"acceptedExts\"\n [multiple]=\"maxAllowedFiles > 1\"\n type=\"file\"\n class=\"hidden\"\n id=\"file\"\n/>\n<div #area [hidden]=\"isOver || loading\" (dragover)=\"toggle()\">\n <ng-content></ng-content>\n</div>\n" }]
|
|
@@ -19920,7 +19934,7 @@ class FilePickerComponent {
|
|
|
19920
19934
|
}
|
|
19921
19935
|
}
|
|
19922
19936
|
FilePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FilePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19923
|
-
FilePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FilePickerComponent, selector: "c8y-file-picker", inputs: { maxAllowedFiles: "maxAllowedFiles", uploadChoice: "uploadChoice", fileUrl: "fileUrl", fileBinary: "fileBinary", config: "config", fileUrlPopover: "fileUrlPopover" }, outputs: { onFilesPicked: "onFilesPicked" }, viewQueries: [{ propertyName: "dropArea", first: true, predicate: DropAreaComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"form-group\">\n <label title=\"{{ 'Upload a binary' | translate }}\" class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadBinary\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearInputFromUrl()\"\n />\n <span></span>\n <span>{{ 'Upload a binary' | translate }}</span>\n </label>\n <label title=\"{{ 'Provide a file path' | translate }}\" class=\"c8y-radio radio-inline m-l-8\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadUrl\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearSelectedFiles()\"\n />\n <span></span>\n <span>\n {{ 'Provide a file path' | translate }}\n </span>\n <button\n *ngIf=\"isPopoverUsed()\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{ fileUrlPopover | translate }}\"\n triggers=\"focus\"\n container=\"body\"\n placement=\"top\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadBinary'\">\n <c8y-form-group class=\"m-0\">\n <c8y-drop-area\n class=\"drop-area-sm\"\n (dropped)=\"onFileDropped($event)\"\n [title]=\"'Drop file or click to browse' | translate\"\n [attr.aria-label]=\"'Drop file or click to browse' | translate\"\n [maxAllowedFiles]=\"maxAllowedFiles\"\n [files]=\"droppedFiles\"\n ></c8y-drop-area>\n </c8y-form-group>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadUrl'\">\n <c8y-form-group class=\"m-0\">\n <div class=\"m-b-4 p-b-8\">\n <div class=\"input-group\">\n <span class=\"input-group-addon\">\n <i c8yIcon=\"globe\"></i>\n </span>\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"fileUrl\"\n [(ngModel)]=\"fileUrl\"\n (ngModelChange)=\"onFileUrlChange($event)\"\n placeholder=\"{{ 'e.g.' | translate }} http://example.com/binary.zip\"\n maxlength=\"{{ config.maxlength }}\"\n required\n />\n </div>\n </div>\n </c8y-form-group>\n</div>\n", dependencies: [{ kind: "directive", type: i5.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: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type:
|
|
19937
|
+
FilePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FilePickerComponent, selector: "c8y-file-picker", inputs: { maxAllowedFiles: "maxAllowedFiles", uploadChoice: "uploadChoice", fileUrl: "fileUrl", fileBinary: "fileBinary", config: "config", fileUrlPopover: "fileUrlPopover" }, outputs: { onFilesPicked: "onFilesPicked" }, viewQueries: [{ propertyName: "dropArea", first: true, predicate: DropAreaComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"form-group\">\n <label title=\"{{ 'Upload a binary' | translate }}\" class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadBinary\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearInputFromUrl()\"\n />\n <span></span>\n <span>{{ 'Upload a binary' | translate }}</span>\n </label>\n <label title=\"{{ 'Provide a file path' | translate }}\" class=\"c8y-radio radio-inline m-l-8\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadUrl\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearSelectedFiles()\"\n />\n <span></span>\n <span>\n {{ 'Provide a file path' | translate }}\n </span>\n <button\n *ngIf=\"isPopoverUsed()\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{ fileUrlPopover | translate }}\"\n triggers=\"focus\"\n container=\"body\"\n placement=\"top\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadBinary'\">\n <c8y-form-group class=\"m-0\">\n <c8y-drop-area\n class=\"drop-area-sm\"\n (dropped)=\"onFileDropped($event)\"\n [title]=\"'Drop file or click to browse' | translate\"\n [attr.aria-label]=\"'Drop file or click to browse' | translate\"\n [maxAllowedFiles]=\"maxAllowedFiles\"\n [files]=\"droppedFiles\"\n ></c8y-drop-area>\n </c8y-form-group>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadUrl'\">\n <c8y-form-group class=\"m-0\">\n <div class=\"m-b-4 p-b-8\">\n <div class=\"input-group\">\n <span class=\"input-group-addon\">\n <i c8yIcon=\"globe\"></i>\n </span>\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"fileUrl\"\n [(ngModel)]=\"fileUrl\"\n (ngModelChange)=\"onFileUrlChange($event)\"\n placeholder=\"{{ 'e.g.' | translate }} http://example.com/binary.zip\"\n maxlength=\"{{ config.maxlength }}\"\n required\n />\n </div>\n </div>\n </c8y-form-group>\n</div>\n", dependencies: [{ kind: "directive", type: i5.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: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "accept"], outputs: ["dropped"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
19924
19938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FilePickerComponent, decorators: [{
|
|
19925
19939
|
type: Component,
|
|
19926
19940
|
args: [{ selector: 'c8y-file-picker', template: "<div class=\"form-group\">\n <label title=\"{{ 'Upload a binary' | translate }}\" class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadBinary\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearInputFromUrl()\"\n />\n <span></span>\n <span>{{ 'Upload a binary' | translate }}</span>\n </label>\n <label title=\"{{ 'Provide a file path' | translate }}\" class=\"c8y-radio radio-inline m-l-8\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadUrl\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearSelectedFiles()\"\n />\n <span></span>\n <span>\n {{ 'Provide a file path' | translate }}\n </span>\n <button\n *ngIf=\"isPopoverUsed()\"\n class=\"btn-help\"\n [attr.aria-label]=\"'Help' | translate\"\n type=\"button\"\n popover=\"{{ fileUrlPopover | translate }}\"\n triggers=\"focus\"\n container=\"body\"\n placement=\"top\"\n >\n <i [c8yIcon]=\"'question-circle-o'\"></i>\n </button>\n </label>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadBinary'\">\n <c8y-form-group class=\"m-0\">\n <c8y-drop-area\n class=\"drop-area-sm\"\n (dropped)=\"onFileDropped($event)\"\n [title]=\"'Drop file or click to browse' | translate\"\n [attr.aria-label]=\"'Drop file or click to browse' | translate\"\n [maxAllowedFiles]=\"maxAllowedFiles\"\n [files]=\"droppedFiles\"\n ></c8y-drop-area>\n </c8y-form-group>\n</div>\n\n<div [hidden]=\"uploadChoice !== 'uploadUrl'\">\n <c8y-form-group class=\"m-0\">\n <div class=\"m-b-4 p-b-8\">\n <div class=\"input-group\">\n <span class=\"input-group-addon\">\n <i c8yIcon=\"globe\"></i>\n </span>\n <input\n type=\"text\"\n class=\"form-control\"\n name=\"fileUrl\"\n [(ngModel)]=\"fileUrl\"\n (ngModelChange)=\"onFileUrlChange($event)\"\n placeholder=\"{{ 'e.g.' | translate }} http://example.com/binary.zip\"\n maxlength=\"{{ config.maxlength }}\"\n required\n />\n </div>\n </div>\n </c8y-form-group>\n</div>\n" }]
|
|
@@ -20004,7 +20018,7 @@ class DatePickerComponent {
|
|
|
20004
20018
|
}
|
|
20005
20019
|
}
|
|
20006
20020
|
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20007
|
-
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DatePickerComponent, selector: "c8y-date-picker", outputs: { onDateSelected: "onDateSelected" }, ngImport: i0, template: "<div\n dropdown\n class=\"c8y-child-assets-selector dropdown\"\n #datefilter=\"bs-dropdown\"\n placement=\"bottom left\"\n [insideClick]=\"true\"\n>\n <button\n id=\"date-range\"\n dropdownToggle\n title=\"{{ 'Date filter' | translate }}\"\n type=\"button\"\n class=\"btn dropdown-toggle d-flex a-i-center c8y-dropdown\"\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"calendar-o\" class=\"m-r-4 text-primary\"></i>\n <span class=\"text-truncate\">\n <span *ngIf=\"dateFrom\">\n <span class=\"text-label-small\">{{ 'From`date`' | translate }}</span>\n {{ dateFrom | date }}\n </span>\n <span *ngIf=\"dateTo\">\n <span class=\"text-label-small\">{{ 'To`date`' | translate }}</span>\n {{ dateTo | date }}\n </span>\n <span *ngIf=\"!dateFrom && !dateTo\">\n {{ 'Filter by date' | translate }}\n </span>\n </span>\n </button>\n <div\n id=\"dropdown-date-range\"\n *dropdownMenu\n class=\"dropdown-menu\"\n role=\"menu\"\n aria-labelledby=\"date-range\"\n >\n <form [formGroup]=\"fgDatePicker\" class=\"dropdown-form\">\n <span for=\"dateFrom\" class=\"text-medium m-b-4\" translate>Date from</span>\n <c8y-form-group class=\"datepicker d-block m-b-16\" style=\"max-height: 32px\">\n <input\n id=\"dateFrom\"\n formControlName=\"dateFrom\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date from' | translate }}\"\n bsDatepicker\n [maxDate]=\"dateTo\"\n (bsValueChange)=\"dateFrom = $event\"\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <span for=\"dateTo\" class=\"text-medium m-b-4\" translate>Date to</span>\n <c8y-form-group class=\"datepicker m-l-0 d-block\" style=\"max-height: 32px\">\n <input\n name=\"dateTo\"\n id=\"dateTo\"\n formControlName=\"dateTo\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date to' | translate }}\"\n bsDatepicker\n [minDate]=\"dateFrom\"\n (bsValueChange)=\"dateTo = $event\"\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <div class=\"p-t-24\">\n <button\n title=\"{{ 'Clear selection' | translate }}\"\n type=\"button\"\n class=\"btn btn-default btn-sm\"\n (click)=\"clearFilter(); datefilter.isOpen = !datefilter.isOpen\"\n >\n {{ 'Clear`selection`' | translate }}\n </button>\n <button\n [disabled]=\"!fgDatePicker.get('dateFrom').value && !fgDatePicker.get('dateTo').value\"\n title=\"{{ 'Apply selection' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-sm\"\n (click)=\"filter(); datefilter.isOpen = !datefilter.isOpen\"\n >\n {{ 'Apply`selection`' | translate }}\n </button>\n </div>\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type:
|
|
20021
|
+
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DatePickerComponent, selector: "c8y-date-picker", outputs: { onDateSelected: "onDateSelected" }, ngImport: i0, template: "<div\n dropdown\n class=\"c8y-child-assets-selector dropdown\"\n #datefilter=\"bs-dropdown\"\n placement=\"bottom left\"\n [insideClick]=\"true\"\n>\n <button\n id=\"date-range\"\n dropdownToggle\n title=\"{{ 'Date filter' | translate }}\"\n type=\"button\"\n class=\"btn dropdown-toggle d-flex a-i-center c8y-dropdown\"\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"calendar-o\" class=\"m-r-4 text-primary\"></i>\n <span class=\"text-truncate\">\n <span *ngIf=\"dateFrom\">\n <span class=\"text-label-small\">{{ 'From`date`' | translate }}</span>\n {{ dateFrom | date }}\n </span>\n <span *ngIf=\"dateTo\">\n <span class=\"text-label-small\">{{ 'To`date`' | translate }}</span>\n {{ dateTo | date }}\n </span>\n <span *ngIf=\"!dateFrom && !dateTo\">\n {{ 'Filter by date' | translate }}\n </span>\n </span>\n </button>\n <div\n id=\"dropdown-date-range\"\n *dropdownMenu\n class=\"dropdown-menu\"\n role=\"menu\"\n aria-labelledby=\"date-range\"\n >\n <form [formGroup]=\"fgDatePicker\" class=\"dropdown-form\">\n <span for=\"dateFrom\" class=\"text-medium m-b-4\" translate>Date from</span>\n <c8y-form-group class=\"datepicker d-block m-b-16\" style=\"max-height: 32px\">\n <input\n id=\"dateFrom\"\n formControlName=\"dateFrom\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date from' | translate }}\"\n bsDatepicker\n [maxDate]=\"dateTo\"\n (bsValueChange)=\"dateFrom = $event\"\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <span for=\"dateTo\" class=\"text-medium m-b-4\" translate>Date to</span>\n <c8y-form-group class=\"datepicker m-l-0 d-block\" style=\"max-height: 32px\">\n <input\n name=\"dateTo\"\n id=\"dateTo\"\n formControlName=\"dateTo\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date to' | translate }}\"\n bsDatepicker\n [minDate]=\"dateFrom\"\n (bsValueChange)=\"dateTo = $event\"\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <div class=\"p-t-24\">\n <button\n title=\"{{ 'Clear selection' | translate }}\"\n type=\"button\"\n class=\"btn btn-default btn-sm\"\n (click)=\"clearFilter(); datefilter.isOpen = !datefilter.isOpen\"\n >\n {{ 'Clear`selection`' | translate }}\n </button>\n <button\n [disabled]=\"!fgDatePicker.get('dateFrom').value && !fgDatePicker.get('dateTo').value\"\n title=\"{{ 'Apply selection' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-sm\"\n (click)=\"filter(); datefilter.isOpen = !datefilter.isOpen\"\n >\n {{ 'Apply`selection`' | translate }}\n </button>\n </div>\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i6.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i6.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
20008
20022
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
20009
20023
|
type: Component,
|
|
20010
20024
|
args: [{ selector: 'c8y-date-picker', template: "<div\n dropdown\n class=\"c8y-child-assets-selector dropdown\"\n #datefilter=\"bs-dropdown\"\n placement=\"bottom left\"\n [insideClick]=\"true\"\n>\n <button\n id=\"date-range\"\n dropdownToggle\n title=\"{{ 'Date filter' | translate }}\"\n type=\"button\"\n class=\"btn dropdown-toggle d-flex a-i-center c8y-dropdown\"\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"calendar-o\" class=\"m-r-4 text-primary\"></i>\n <span class=\"text-truncate\">\n <span *ngIf=\"dateFrom\">\n <span class=\"text-label-small\">{{ 'From`date`' | translate }}</span>\n {{ dateFrom | date }}\n </span>\n <span *ngIf=\"dateTo\">\n <span class=\"text-label-small\">{{ 'To`date`' | translate }}</span>\n {{ dateTo | date }}\n </span>\n <span *ngIf=\"!dateFrom && !dateTo\">\n {{ 'Filter by date' | translate }}\n </span>\n </span>\n </button>\n <div\n id=\"dropdown-date-range\"\n *dropdownMenu\n class=\"dropdown-menu\"\n role=\"menu\"\n aria-labelledby=\"date-range\"\n >\n <form [formGroup]=\"fgDatePicker\" class=\"dropdown-form\">\n <span for=\"dateFrom\" class=\"text-medium m-b-4\" translate>Date from</span>\n <c8y-form-group class=\"datepicker d-block m-b-16\" style=\"max-height: 32px\">\n <input\n id=\"dateFrom\"\n formControlName=\"dateFrom\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date from' | translate }}\"\n bsDatepicker\n [maxDate]=\"dateTo\"\n (bsValueChange)=\"dateFrom = $event\"\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <span for=\"dateTo\" class=\"text-medium m-b-4\" translate>Date to</span>\n <c8y-form-group class=\"datepicker m-l-0 d-block\" style=\"max-height: 32px\">\n <input\n name=\"dateTo\"\n id=\"dateTo\"\n formControlName=\"dateTo\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date to' | translate }}\"\n bsDatepicker\n [minDate]=\"dateFrom\"\n (bsValueChange)=\"dateTo = $event\"\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <div class=\"p-t-24\">\n <button\n title=\"{{ 'Clear selection' | translate }}\"\n type=\"button\"\n class=\"btn btn-default btn-sm\"\n (click)=\"clearFilter(); datefilter.isOpen = !datefilter.isOpen\"\n >\n {{ 'Clear`selection`' | translate }}\n </button>\n <button\n [disabled]=\"!fgDatePicker.get('dateFrom').value && !fgDatePicker.get('dateTo').value\"\n title=\"{{ 'Apply selection' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-sm\"\n (click)=\"filter(); datefilter.isOpen = !datefilter.isOpen\"\n >\n {{ 'Apply`selection`' | translate }}\n </button>\n </div>\n </form>\n </div>\n</div>\n" }]
|
|
@@ -20217,7 +20231,7 @@ DatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version
|
|
|
20217
20231
|
DatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: DatePickerModule, declarations: [DatePickerComponent], imports: [FormsModule,
|
|
20218
20232
|
CommonModule$1,
|
|
20219
20233
|
FormsModule$1,
|
|
20220
|
-
ReactiveFormsModule, i1$
|
|
20234
|
+
ReactiveFormsModule, i1$6.BsDropdownModule, i6.BsDatepickerModule, CommonModule], exports: [DatePickerComponent] });
|
|
20221
20235
|
DatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePickerModule, imports: [FormsModule,
|
|
20222
20236
|
CommonModule$1,
|
|
20223
20237
|
FormsModule$1,
|
|
@@ -20500,7 +20514,7 @@ class GuideDocsComponent {
|
|
|
20500
20514
|
}
|
|
20501
20515
|
}
|
|
20502
20516
|
GuideDocsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GuideDocsComponent, deps: [{ token: DocsService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: C8yTranslateDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
20503
|
-
GuideDocsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: GuideDocsComponent, selector: "[c8y-guide-docs]", queries: [{ propertyName: "translateDirective", first: true, predicate: C8yTranslateDirective, descendants: true, static: true }, { propertyName: "links", predicate: GuideHrefDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!!baseUrl\">\n <ng-content></ng-content>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
20517
|
+
GuideDocsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: GuideDocsComponent, selector: "[c8y-guide-docs]", queries: [{ propertyName: "translateDirective", first: true, predicate: C8yTranslateDirective, descendants: true, static: true }, { propertyName: "links", predicate: GuideHrefDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!!baseUrl\">\n <ng-content></ng-content>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
20504
20518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GuideDocsComponent, decorators: [{
|
|
20505
20519
|
type: Component,
|
|
20506
20520
|
args: [{ selector: '[c8y-guide-docs]', template: "<ng-container *ngIf=\"!!baseUrl\">\n <ng-content></ng-content>\n</ng-container>\n" }]
|
|
@@ -20566,7 +20580,7 @@ ArrayTypeComponent.CONFIG = {
|
|
|
20566
20580
|
types: [{ name: 'array', component: ArrayTypeComponent }]
|
|
20567
20581
|
};
|
|
20568
20582
|
ArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20569
|
-
ArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ArrayTypeComponent, selector: "c8y-array-type", usesInheritance: true, ngImport: i0, template: "<div role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <div id=\"{{ id + '-fieldset' }}\" class=\"legend form-block\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </div>\n\n <div\n class=\"form-control-feedback-message has-error\"\n role=\"alert\"\n *ngIf=\"showError && formControl.errors\"\n >\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n\n <div *ngFor=\"let ifield of field.fieldGroup; let i = index\" class=\"input-group-array\">\n <formly-field [field]=\"(ifield | c8yArrayTypeInjectTemplate:customTemplate)\"> </formly-field>\n <ng-container *ngIf=\"ifield.type === 'formly-group' || ifield.type === 'array'\" [ngTemplateOutlet]=\"customTemplate\"></ng-container>\n <ng-template #customTemplate>\n <div class=\"input-group-btn delete-row\">\n <button\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger flex-item-right\"\n tooltip=\"{{ 'Delete' | translate }}\"\n [attr.aria-label]=\"'Delete' | translate\"\n [delay]=\"500\"\n [disabled]=\"to.disabled || field.fieldGroup.length === 1\"\n (click)=\"remove(i)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </ng-template>\n </div>\n\n <div class=\"p-t-8\">\n <button\n title=\"{{\n (field.templateOptions?.addText | translate) || 'Add \\{\\{ label \\}\\}'\n | translate: field?.fieldArray?.templateOptions\n }}\"\n type=\"button\"\n class=\"btn btn-sm btn-default\"\n [disabled]=\"to.disabled\"\n (click)=\"add()\"\n [attr.data-cy]=\"field.templateOptions?.addTextDataCy || 'add-array-item'\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i>\n <span\n *ngIf=\"!field.templateOptions?.addText\"\n ngNonBindable\n translate\n [translateParams]=\"field?.fieldArray?.templateOptions\"\n >\n Add {{ label }}\n </span>\n <span *ngIf=\"field.templateOptions?.addText\">\n {{ field.templateOptions?.addText | translate }}\n </span>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
20583
|
+
ArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ArrayTypeComponent, selector: "c8y-array-type", usesInheritance: true, ngImport: i0, template: "<div role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <div id=\"{{ id + '-fieldset' }}\" class=\"legend form-block\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </div>\n\n <div\n class=\"form-control-feedback-message has-error\"\n role=\"alert\"\n *ngIf=\"showError && formControl.errors\"\n >\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n\n <div *ngFor=\"let ifield of field.fieldGroup; let i = index\" class=\"input-group-array\">\n <formly-field [field]=\"(ifield | c8yArrayTypeInjectTemplate:customTemplate)\"> </formly-field>\n <ng-container *ngIf=\"ifield.type === 'formly-group' || ifield.type === 'array'\" [ngTemplateOutlet]=\"customTemplate\"></ng-container>\n <ng-template #customTemplate>\n <div class=\"input-group-btn delete-row\">\n <button\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger flex-item-right\"\n tooltip=\"{{ 'Delete' | translate }}\"\n [attr.aria-label]=\"'Delete' | translate\"\n [delay]=\"500\"\n [disabled]=\"to.disabled || field.fieldGroup.length === 1\"\n (click)=\"remove(i)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </ng-template>\n </div>\n\n <div class=\"p-t-8\">\n <button\n title=\"{{\n (field.templateOptions?.addText | translate) || 'Add \\{\\{ label \\}\\}'\n | translate: field?.fieldArray?.templateOptions\n }}\"\n type=\"button\"\n class=\"btn btn-sm btn-default\"\n [disabled]=\"to.disabled\"\n (click)=\"add()\"\n [attr.data-cy]=\"field.templateOptions?.addTextDataCy || 'add-array-item'\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i>\n <span\n *ngIf=\"!field.templateOptions?.addText\"\n ngNonBindable\n translate\n [translateParams]=\"field?.fieldArray?.templateOptions\"\n >\n Add {{ label }}\n </span>\n <span *ngIf=\"field.templateOptions?.addText\">\n {{ field.templateOptions?.addText | translate }}\n </span>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i1$7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i4$1.FormlyField, selector: "formly-field", inputs: ["model", "form", "options", "field"], outputs: ["modelChange"] }, { kind: "component", type: i4$1.ɵc, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }, { kind: "pipe", type: C8yArrayTypeInjectTemplatePipe, name: "c8yArrayTypeInjectTemplate" }] });
|
|
20570
20584
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ArrayTypeComponent, decorators: [{
|
|
20571
20585
|
type: Component,
|
|
20572
20586
|
args: [{ selector: 'c8y-array-type', template: "<div role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <div id=\"{{ id + '-fieldset' }}\" class=\"legend form-block\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </div>\n\n <div\n class=\"form-control-feedback-message has-error\"\n role=\"alert\"\n *ngIf=\"showError && formControl.errors\"\n >\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n\n <div *ngFor=\"let ifield of field.fieldGroup; let i = index\" class=\"input-group-array\">\n <formly-field [field]=\"(ifield | c8yArrayTypeInjectTemplate:customTemplate)\"> </formly-field>\n <ng-container *ngIf=\"ifield.type === 'formly-group' || ifield.type === 'array'\" [ngTemplateOutlet]=\"customTemplate\"></ng-container>\n <ng-template #customTemplate>\n <div class=\"input-group-btn delete-row\">\n <button\n type=\"button\"\n class=\"btn btn-dot btn-dot--danger flex-item-right\"\n tooltip=\"{{ 'Delete' | translate }}\"\n [attr.aria-label]=\"'Delete' | translate\"\n [delay]=\"500\"\n [disabled]=\"to.disabled || field.fieldGroup.length === 1\"\n (click)=\"remove(i)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </div>\n </ng-template>\n </div>\n\n <div class=\"p-t-8\">\n <button\n title=\"{{\n (field.templateOptions?.addText | translate) || 'Add \\{\\{ label \\}\\}'\n | translate: field?.fieldArray?.templateOptions\n }}\"\n type=\"button\"\n class=\"btn btn-sm btn-default\"\n [disabled]=\"to.disabled\"\n (click)=\"add()\"\n [attr.data-cy]=\"field.templateOptions?.addTextDataCy || 'add-array-item'\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i>\n <span\n *ngIf=\"!field.templateOptions?.addText\"\n ngNonBindable\n translate\n [translateParams]=\"field?.fieldArray?.templateOptions\"\n >\n Add {{ label }}\n </span>\n <span *ngIf=\"field.templateOptions?.addText\">\n {{ field.templateOptions?.addText | translate }}\n </span>\n </button>\n </div>\n</div>\n" }]
|
|
@@ -20606,7 +20620,7 @@ FieldCheckbox.CONFIG = {
|
|
|
20606
20620
|
]
|
|
20607
20621
|
};
|
|
20608
20622
|
FieldCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20609
|
-
FieldCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldCheckbox, selector: "c8y-field-checkbox", usesInheritance: true, ngImport: i0, template: "<label\n [class.c8y-checkbox]=\"!to.switchMode\"\n [class.c8y-switch]=\"to.switchMode\"\n [class.has-error]=\"showError\"\n>\n <input\n type=\"checkbox\"\n [class.is-invalid]=\"showError\"\n [class.form-check-input]=\"to.formCheck.indexOf('custom') === -1\"\n [class.position-static]=\"to.formCheck === 'nolabel'\"\n [class.custom-control-input]=\"to.formCheck.indexOf('custom') === 0\"\n [indeterminate]=\"to.indeterminate && formControl.value == null\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n />\n <span></span>\n <span class=\"text-truncate\" title=\"{{ to.label | humanize }}\">{{ to.label | humanize }}</span>\n <span *ngIf=\"to.required && to.hideRequiredMarker !== true\">\n <em class=\"m-l-4\" translate>(required)</em>\n </span>\n <button\n *ngIf=\"!!to.description\"\n class=\"btn-help btn-help--sm m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n</label>\n", dependencies: [{ kind: "directive", type:
|
|
20623
|
+
FieldCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldCheckbox, selector: "c8y-field-checkbox", usesInheritance: true, ngImport: i0, template: "<label\n [class.c8y-checkbox]=\"!to.switchMode\"\n [class.c8y-switch]=\"to.switchMode\"\n [class.has-error]=\"showError\"\n>\n <input\n type=\"checkbox\"\n [class.is-invalid]=\"showError\"\n [class.form-check-input]=\"to.formCheck.indexOf('custom') === -1\"\n [class.position-static]=\"to.formCheck === 'nolabel'\"\n [class.custom-control-input]=\"to.formCheck.indexOf('custom') === 0\"\n [indeterminate]=\"to.indeterminate && formControl.value == null\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n />\n <span></span>\n <span class=\"text-truncate\" title=\"{{ to.label | humanize }}\">{{ to.label | humanize }}</span>\n <span *ngIf=\"to.required && to.hideRequiredMarker !== true\">\n <em class=\"m-l-4\" translate>(required)</em>\n </span>\n <button\n *ngIf=\"!!to.description\"\n class=\"btn-help btn-help--sm m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n</label>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$1.FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20610
20624
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldCheckbox, decorators: [{
|
|
20611
20625
|
type: Component,
|
|
20612
20626
|
args: [{ selector: 'c8y-field-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n [class.c8y-checkbox]=\"!to.switchMode\"\n [class.c8y-switch]=\"to.switchMode\"\n [class.has-error]=\"showError\"\n>\n <input\n type=\"checkbox\"\n [class.is-invalid]=\"showError\"\n [class.form-check-input]=\"to.formCheck.indexOf('custom') === -1\"\n [class.position-static]=\"to.formCheck === 'nolabel'\"\n [class.custom-control-input]=\"to.formCheck.indexOf('custom') === 0\"\n [indeterminate]=\"to.indeterminate && formControl.value == null\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n />\n <span></span>\n <span class=\"text-truncate\" title=\"{{ to.label | humanize }}\">{{ to.label | humanize }}</span>\n <span *ngIf=\"to.required && to.hideRequiredMarker !== true\">\n <em class=\"m-l-4\" translate>(required)</em>\n </span>\n <button\n *ngIf=\"!!to.description\"\n class=\"btn-help btn-help--sm m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n</label>\n" }]
|
|
@@ -20623,7 +20637,7 @@ FieldDate.CONFIG = {
|
|
|
20623
20637
|
]
|
|
20624
20638
|
};
|
|
20625
20639
|
FieldDate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldDate, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20626
|
-
FieldDate.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldDate, selector: "c8y-field-date", usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <label id=\"{{ id + '-fieldset' }}\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <div class=\"form-group datepicker\">\n <input\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n class=\"form-control\"\n placeholder=\"Date\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: 'YYYY-MM-DD' }\"\n [placeholder]=\"'Select a date\u2026' | translate\"\n placement=\"top\"\n bsDatepicker\n [required]=\"to.required\"\n />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
20640
|
+
FieldDate.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldDate, selector: "c8y-field-date", usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <label id=\"{{ id + '-fieldset' }}\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <div class=\"form-group datepicker\">\n <input\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n class=\"form-control\"\n placeholder=\"Date\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: 'YYYY-MM-DD' }\"\n [placeholder]=\"'Select a date\u2026' | translate\"\n placement=\"top\"\n bsDatepicker\n [required]=\"to.required\"\n />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4$1.FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "directive", type: i6.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i6.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20627
20641
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldDate, decorators: [{
|
|
20628
20642
|
type: Component,
|
|
20629
20643
|
args: [{ selector: 'c8y-field-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <label id=\"{{ id + '-fieldset' }}\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <div class=\"form-group datepicker\">\n <input\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n class=\"form-control\"\n placeholder=\"Date\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: 'YYYY-MM-DD' }\"\n [placeholder]=\"'Select a date\u2026' | translate\"\n placement=\"top\"\n bsDatepicker\n [required]=\"to.required\"\n />\n </div>\n</div>\n" }]
|
|
@@ -20664,7 +20678,7 @@ FieldFile.CONFIG = {
|
|
|
20664
20678
|
]
|
|
20665
20679
|
};
|
|
20666
20680
|
FieldFile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldFile, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20667
|
-
FieldFile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldFile, selector: "c8y-field-file", viewQueries: [{ propertyName: "dropArea", first: true, predicate: ["dropArea"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <label id=\"{{ id + '-fieldset' }}\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n\n <c8y-drop-area #dropArea class=\"drop-area-sm\" [formControl]=\"formControl\"> </c8y-drop-area>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
20681
|
+
FieldFile.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldFile, selector: "c8y-field-file", viewQueries: [{ propertyName: "dropArea", first: true, predicate: ["dropArea"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <label id=\"{{ id + '-fieldset' }}\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n\n <c8y-drop-area #dropArea class=\"drop-area-sm\" [formControl]=\"formControl\"> </c8y-drop-area>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DropAreaComponent, selector: "c8y-drop-area", inputs: ["formControl", "title", "message", "icon", "loadingMessage", "forceHideList", "alwaysShow", "clickToOpen", "loading", "progress", "maxAllowedFiles", "files", "accept"], outputs: ["dropped"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20668
20682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldFile, decorators: [{
|
|
20669
20683
|
type: Component,
|
|
20670
20684
|
args: [{ selector: 'c8y-field-file', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\" role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <label id=\"{{ id + '-fieldset' }}\" *ngIf=\"to.label || to.description\">\n {{ to.label | humanize }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-help btn-help--sm text-14 m-l-4\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description\"\n placement=\"right\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n\n <c8y-drop-area #dropArea class=\"drop-area-sm\" [formControl]=\"formControl\"> </c8y-drop-area>\n</div>\n" }]
|
|
@@ -20689,7 +20703,7 @@ WrapperFormField.CONFIG = {
|
|
|
20689
20703
|
wrappers: [{ name: 'c8y-form-field', component: WrapperFormField }]
|
|
20690
20704
|
};
|
|
20691
20705
|
WrapperFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WrapperFormField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20692
|
-
WrapperFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WrapperFormField, selector: "c8y-wrapper-form-field", usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" [class.has-error]=\"showError\">\n <label *ngIf=\"to.label && to.hideLabel !== true\" [attr.for]=\"id\" class=\"text-pre-wrap\">\n {{ to.label | humanize }}\n <i\n *ngIf=\"to.tooltip\"\n class=\"text-info\"\n c8yIcon=\"info-circle\"\n title=\"{{ to.tooltip | translate }}\"\n ></i>\n <button\n *ngIf=\"to.description && showDescriptionAsPopup\"\n class=\"btn-help btn-help--sm m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description | translate\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <div class=\"d-flex\">\n <div class=\"flex-grow\">\n <ng-template #fieldComponent></ng-template>\n </div>\n <ng-container *ngIf=\"to.customTemplateRef\">\n <ng-container *ngTemplateOutlet=\"to.customTemplateRef\"></ng-container>\n </ng-container>\n </div>\n\n <div *ngIf=\"showError\" class=\"c8y-messages\">\n <formly-validation-message\n class=\"form-control-feedback-message\"\n [field]=\"field\"\n ></formly-validation-message>\n </div>\n\n <div\n class=\"help-block has-info text-muted\"\n *ngIf=\"!showError && to.description && !showDescriptionAsPopup\"\n >\n {{ to.description | translate }}\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
20706
|
+
WrapperFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WrapperFormField, selector: "c8y-wrapper-form-field", usesInheritance: true, ngImport: i0, template: "<div class=\"form-group\" [class.has-error]=\"showError\">\n <label *ngIf=\"to.label && to.hideLabel !== true\" [attr.for]=\"id\" class=\"text-pre-wrap\">\n {{ to.label | humanize }}\n <i\n *ngIf=\"to.tooltip\"\n class=\"text-info\"\n c8yIcon=\"info-circle\"\n title=\"{{ to.tooltip | translate }}\"\n ></i>\n <button\n *ngIf=\"to.description && showDescriptionAsPopup\"\n class=\"btn-help btn-help--sm m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description | translate\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <div class=\"d-flex\">\n <div class=\"flex-grow\">\n <ng-template #fieldComponent></ng-template>\n </div>\n <ng-container *ngIf=\"to.customTemplateRef\">\n <ng-container *ngTemplateOutlet=\"to.customTemplateRef\"></ng-container>\n </ng-container>\n </div>\n\n <div *ngIf=\"showError\" class=\"c8y-messages\">\n <formly-validation-message\n class=\"form-control-feedback-message\"\n [field]=\"field\"\n ></formly-validation-message>\n </div>\n\n <div\n class=\"help-block has-info text-muted\"\n *ngIf=\"!showError && to.description && !showDescriptionAsPopup\"\n >\n {{ to.description | translate }}\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i4$1.ɵc, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20693
20707
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WrapperFormField, decorators: [{
|
|
20694
20708
|
type: Component,
|
|
20695
20709
|
args: [{ selector: 'c8y-wrapper-form-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group\" [class.has-error]=\"showError\">\n <label *ngIf=\"to.label && to.hideLabel !== true\" [attr.for]=\"id\" class=\"text-pre-wrap\">\n {{ to.label | humanize }}\n <i\n *ngIf=\"to.tooltip\"\n class=\"text-info\"\n c8yIcon=\"info-circle\"\n title=\"{{ to.tooltip | translate }}\"\n ></i>\n <button\n *ngIf=\"to.description && showDescriptionAsPopup\"\n class=\"btn-help btn-help--sm m-l-4 m-t-auto m-b-auto\"\n [attr.aria-label]=\"'Help' | translate\"\n [popover]=\"to.description | translate\"\n triggers=\"focus\"\n type=\"button\"\n ></button>\n </label>\n <div class=\"d-flex\">\n <div class=\"flex-grow\">\n <ng-template #fieldComponent></ng-template>\n </div>\n <ng-container *ngIf=\"to.customTemplateRef\">\n <ng-container *ngTemplateOutlet=\"to.customTemplateRef\"></ng-container>\n </ng-container>\n </div>\n\n <div *ngIf=\"showError\" class=\"c8y-messages\">\n <formly-validation-message\n class=\"form-control-feedback-message\"\n [field]=\"field\"\n ></formly-validation-message>\n </div>\n\n <div\n class=\"help-block has-info text-muted\"\n *ngIf=\"!showError && to.description && !showDescriptionAsPopup\"\n >\n {{ to.description | translate }}\n </div>\n</div>\n" }]
|
|
@@ -20730,7 +20744,7 @@ FieldInput.CONFIG = {
|
|
|
20730
20744
|
]
|
|
20731
20745
|
};
|
|
20732
20746
|
FieldInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20733
|
-
FieldInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldInput, selector: "c8y-field-input", usesInheritance: true, ngImport: i0, template: "<input\n *ngIf=\"type !== 'number'; else numberTmp\"\n [type]=\"type\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n [attr.autocomplete]=\"to.autocomplete ? to.autocomplete : null\"\n [class.is-invalid]=\"showError\"\n/>\n<ng-template #numberTmp>\n <input\n type=\"number\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n [attr.autocomplete]=\"to.autocomplete ? to.autocomplete : null\"\n [class.is-invalid]=\"showError\"\n />\n</ng-template>\n", dependencies: [{ kind: "directive", type:
|
|
20747
|
+
FieldInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldInput, selector: "c8y-field-input", usesInheritance: true, ngImport: i0, template: "<input\n *ngIf=\"type !== 'number'; else numberTmp\"\n [type]=\"type\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n [attr.autocomplete]=\"to.autocomplete ? to.autocomplete : null\"\n [class.is-invalid]=\"showError\"\n/>\n<ng-template #numberTmp>\n <input\n type=\"number\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n [attr.autocomplete]=\"to.autocomplete ? to.autocomplete : null\"\n [class.is-invalid]=\"showError\"\n />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.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: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: i4$1.FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20734
20748
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldInput, decorators: [{
|
|
20735
20749
|
type: Component,
|
|
20736
20750
|
args: [{ selector: 'c8y-field-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<input\n *ngIf=\"type !== 'number'; else numberTmp\"\n [type]=\"type\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n [attr.autocomplete]=\"to.autocomplete ? to.autocomplete : null\"\n [class.is-invalid]=\"showError\"\n/>\n<ng-template #numberTmp>\n <input\n type=\"number\"\n [formControl]=\"formControl\"\n class=\"form-control\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n [attr.autocomplete]=\"to.autocomplete ? to.autocomplete : null\"\n [class.is-invalid]=\"showError\"\n />\n</ng-template>\n" }]
|
|
@@ -20742,7 +20756,7 @@ ObjectTypeComponent.CONFIG = {
|
|
|
20742
20756
|
types: [{ name: 'object', component: ObjectTypeComponent }]
|
|
20743
20757
|
};
|
|
20744
20758
|
ObjectTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ObjectTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20745
|
-
ObjectTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ObjectTypeComponent, selector: "c8y-object-type", usesInheritance: true, ngImport: i0, template: "<div role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <p *ngIf=\"to.label\" class=\"text-medium\" id=\"{{ id + '-fieldset' }}\">\n {{ to.label | humanize }}\n </p>\n <p *ngIf=\"to.description\" class=\"m-b-8 small\">\n {{ to.description }}\n </p>\n <div\n class=\"form-control-feedback-message has-error\"\n role=\"alert\"\n *ngIf=\"showError && formControl.errors\"\n >\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n <formly-field *ngFor=\"let f of field.fieldGroup\" [field]=\"f\"></formly-field>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
20759
|
+
ObjectTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ObjectTypeComponent, selector: "c8y-object-type", usesInheritance: true, ngImport: i0, template: "<div role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <p *ngIf=\"to.label\" class=\"text-medium\" id=\"{{ id + '-fieldset' }}\">\n {{ to.label | humanize }}\n </p>\n <p *ngIf=\"to.description\" class=\"m-b-8 small\">\n {{ to.description }}\n </p>\n <div\n class=\"form-control-feedback-message has-error\"\n role=\"alert\"\n *ngIf=\"showError && formControl.errors\"\n >\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n <formly-field *ngFor=\"let f of field.fieldGroup\" [field]=\"f\"></formly-field>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.FormlyField, selector: "formly-field", inputs: ["model", "form", "options", "field"], outputs: ["modelChange"] }, { kind: "component", type: i4$1.ɵc, selector: "formly-validation-message", inputs: ["field"] }, { kind: "pipe", type: HumanizePipe, name: "humanize" }] });
|
|
20746
20760
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ObjectTypeComponent, decorators: [{
|
|
20747
20761
|
type: Component,
|
|
20748
20762
|
args: [{ selector: 'c8y-object-type', template: "<div role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <p *ngIf=\"to.label\" class=\"text-medium\" id=\"{{ id + '-fieldset' }}\">\n {{ to.label | humanize }}\n </p>\n <p *ngIf=\"to.description\" class=\"m-b-8 small\">\n {{ to.description }}\n </p>\n <div\n class=\"form-control-feedback-message has-error\"\n role=\"alert\"\n *ngIf=\"showError && formControl.errors\"\n >\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n <formly-field *ngFor=\"let f of field.fieldGroup\" [field]=\"f\"></formly-field>\n</div>\n" }]
|
|
@@ -20769,7 +20783,7 @@ FieldRadio.CONFIG = {
|
|
|
20769
20783
|
]
|
|
20770
20784
|
};
|
|
20771
20785
|
FieldRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20772
|
-
FieldRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldRadio, selector: "c8y-field-radio", usesInheritance: true, ngImport: i0, template: "<label\n *ngFor=\"let option of to.options | formlySelectOptions: field | async; let i = index\"\n [title]=\"option.label\"\n class=\"c8y-radio\"\n>\n <input\n type=\"radio\"\n [id]=\"id + '_' + i\"\n [name]=\"field.name || id\"\n [attr.value]=\"option.value\"\n [value]=\"option.value\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [attr.disabled]=\"option.disabled || formControl.disabled ? true : null\"\n />\n <span></span>\n <span>{{ option.label | humanize }}</span>\n</label>\n", dependencies: [{ kind: "directive", type:
|
|
20786
|
+
FieldRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FieldRadio, selector: "c8y-field-radio", usesInheritance: true, ngImport: i0, template: "<label\n *ngFor=\"let option of to.options | formlySelectOptions: field | async; let i = index\"\n [title]=\"option.label\"\n class=\"c8y-radio\"\n>\n <input\n type=\"radio\"\n [id]=\"id + '_' + i\"\n [name]=\"field.name || id\"\n [attr.value]=\"option.value\"\n [value]=\"option.value\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [attr.disabled]=\"option.disabled || formControl.disabled ? true : null\"\n />\n <span></span>\n <span>{{ option.label | humanize }}</span>\n</label>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.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: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$1.FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: HumanizePipe, name: "humanize" }, { kind: "pipe", type: i5$2.ɵa, name: "formlySelectOptions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20773
20787
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldRadio, decorators: [{
|
|
20774
20788
|
type: Component,
|
|
20775
20789
|
args: [{ selector: 'c8y-field-radio', changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n *ngFor=\"let option of to.options | formlySelectOptions: field | async; let i = index\"\n [title]=\"option.label\"\n class=\"c8y-radio\"\n>\n <input\n type=\"radio\"\n [id]=\"id + '_' + i\"\n [name]=\"field.name || id\"\n [attr.value]=\"option.value\"\n [value]=\"option.value\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [attr.disabled]=\"option.disabled || formControl.disabled ? true : null\"\n />\n <span></span>\n <span>{{ option.label | humanize }}</span>\n</label>\n" }]
|
|
@@ -21229,7 +21243,7 @@ TypeaheadTypeComponent.CONFIG = {
|
|
|
21229
21243
|
types: [{ name: 'typeahead', component: TypeaheadTypeComponent }]
|
|
21230
21244
|
};
|
|
21231
21245
|
TypeaheadTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TypeaheadTypeComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21232
|
-
TypeaheadTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TypeaheadTypeComponent, selector: "c8y-typeahead-type", usesInheritance: true, ngImport: i0, template: "<c8y-typeahead\n [required]=\"to?.required || false\"\n [placeholder]=\"placeholder$ | async\"\n [displayProperty]=\"to?.displayProperty\"\n [selected]=\"selected\"\n [allowFreeEntries]=\"to?.allowFreeEntries || false\"\n [container]=\"to?.container || ''\"\n [disabled]=\"to?.disabled\"\n (onSearch)=\"setPipe($event)\"\n [formControl]=\"formControl\"\n [class.is-invalid]=\"showError\"\n [formlyAttributes]=\"field\">\n\n <c8y-li *c8yFor=\"let opt of to?.c8yForOptions; loadMore: to?.loadMore || 'auto'; pipe: filterPipe; notFound: notFoundTemplate; loadingTemplate: loading;\"\n (click)=\"selectOption(opt); setPipe('')\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\">\n <c8y-highlight [text]=\"opt[labelProp]\" [pattern]=\"pattern\"></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0 && !match\">\n <p><strong translate>No match found.</strong></p>\n </c8y-li>\n </ng-template>\n <ng-template #loading>\n <c8y-li class=\"text-center p-t-8 p-relative\">\n <c8y-loading></c8y-loading>\n </c8y-li>\n </ng-template>\n</c8y-typeahead>\n", dependencies: [{ kind: "directive", type:
|
|
21246
|
+
TypeaheadTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: TypeaheadTypeComponent, selector: "c8y-typeahead-type", usesInheritance: true, ngImport: i0, template: "<c8y-typeahead\n [required]=\"to?.required || false\"\n [placeholder]=\"placeholder$ | async\"\n [displayProperty]=\"to?.displayProperty\"\n [selected]=\"selected\"\n [allowFreeEntries]=\"to?.allowFreeEntries || false\"\n [container]=\"to?.container || ''\"\n [disabled]=\"to?.disabled\"\n (onSearch)=\"setPipe($event)\"\n [formControl]=\"formControl\"\n [class.is-invalid]=\"showError\"\n [formlyAttributes]=\"field\">\n\n <c8y-li *c8yFor=\"let opt of to?.c8yForOptions; loadMore: to?.loadMore || 'auto'; pipe: filterPipe; notFound: notFoundTemplate; loadingTemplate: loading;\"\n (click)=\"selectOption(opt); setPipe('')\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\">\n <c8y-highlight [text]=\"opt[labelProp]\" [pattern]=\"pattern\"></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0 && !match\">\n <p><strong translate>No match found.</strong></p>\n </c8y-li>\n </ng-template>\n <ng-template #loading>\n <c8y-li class=\"text-center p-t-8 p-relative\">\n <c8y-loading></c8y-loading>\n </c8y-li>\n </ng-template>\n</c8y-typeahead>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: ForOfDirective, selector: "[c8yFor]", inputs: ["c8yForOf", "c8yForLoadMore", "c8yForPipe", "c8yForNotFound", "c8yForMaxIterations", "c8yForLoadingTemplate", "c8yForLoadNextLabel", "c8yForRealtime", "c8yForRealtimeOptions", "c8yForComparator", "c8yForEnableVirtualScroll", "c8yForVirtualScrollElementSize", "c8yForVirtualScrollStrategy", "c8yForVirtualScrollContainerHeight"], outputs: ["c8yForCount"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$1.FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21233
21247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TypeaheadTypeComponent, decorators: [{
|
|
21234
21248
|
type: Component,
|
|
21235
21249
|
args: [{ selector: 'c8y-typeahead-type', changeDetection: ChangeDetectionStrategy.OnPush, template: "<c8y-typeahead\n [required]=\"to?.required || false\"\n [placeholder]=\"placeholder$ | async\"\n [displayProperty]=\"to?.displayProperty\"\n [selected]=\"selected\"\n [allowFreeEntries]=\"to?.allowFreeEntries || false\"\n [container]=\"to?.container || ''\"\n [disabled]=\"to?.disabled\"\n (onSearch)=\"setPipe($event)\"\n [formControl]=\"formControl\"\n [class.is-invalid]=\"showError\"\n [formlyAttributes]=\"field\">\n\n <c8y-li *c8yFor=\"let opt of to?.c8yForOptions; loadMore: to?.loadMore || 'auto'; pipe: filterPipe; notFound: notFoundTemplate; loadingTemplate: loading;\"\n (click)=\"selectOption(opt); setPipe('')\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\">\n <c8y-highlight [text]=\"opt[labelProp]\" [pattern]=\"pattern\"></c8y-highlight>\n </c8y-li>\n <ng-template #notFoundTemplate>\n <c8y-li class=\"bg-level-2 p-8\" *ngIf=\"pattern.length > 0 && !match\">\n <p><strong translate>No match found.</strong></p>\n </c8y-li>\n </ng-template>\n <ng-template #loading>\n <c8y-li class=\"text-center p-t-8 p-relative\">\n <c8y-loading></c8y-loading>\n </c8y-li>\n </ng-template>\n</c8y-typeahead>\n" }]
|
|
@@ -21262,7 +21276,7 @@ SelectComponent.CONFIG = {
|
|
|
21262
21276
|
]
|
|
21263
21277
|
};
|
|
21264
21278
|
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectComponent, deps: [{ token: i1$3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21265
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectComponent, selector: "c8y-select-type", usesInheritance: true, ngImport: i0, template: "<div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [formControl]=\"formControl\"\n [class.is-invalid]=\"showError\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n >\n <option [ngValue]=\"undefined\" selected disabled>{{ placeholder$ | async | translate }}</option>\n <ng-container *ngFor=\"let opt of to.options\">\n <option [ngValue]=\"opt[valueProp]\" [disabled]=\"opt.disabled || false\">\n {{ opt[labelProp] | translate }}\n </option>\n </ng-container>\n </select>\n</div>\n ", dependencies: [{ kind: "directive", type:
|
|
21279
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectComponent, selector: "c8y-select-type", usesInheritance: true, ngImport: i0, template: "<div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [formControl]=\"formControl\"\n [class.is-invalid]=\"showError\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n >\n <option [ngValue]=\"undefined\" selected disabled>{{ placeholder$ | async | translate }}</option>\n <ng-container *ngFor=\"let opt of to.options\">\n <option [ngValue]=\"opt[valueProp]\" [disabled]=\"opt.disabled || false\">\n {{ opt[labelProp] | translate }}\n </option>\n </ng-container>\n </select>\n</div>\n ", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4$1.FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21266
21280
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectComponent, decorators: [{
|
|
21267
21281
|
type: Component,
|
|
21268
21282
|
args: [{ selector: 'c8y-select-type', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [formControl]=\"formControl\"\n [class.is-invalid]=\"showError\"\n [formlyAttributes]=\"field\"\n [required]=\"to.required\"\n >\n <option [ngValue]=\"undefined\" selected disabled>{{ placeholder$ | async | translate }}</option>\n <ng-container *ngFor=\"let opt of to.options\">\n <option [ngValue]=\"opt[valueProp]\" [disabled]=\"opt.disabled || false\">\n {{ opt[labelProp] | translate }}\n </option>\n </ng-container>\n </select>\n</div>\n " }]
|
|
@@ -21309,7 +21323,7 @@ DynamicFormsUIThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0
|
|
|
21309
21323
|
TypeaheadTypeComponent,
|
|
21310
21324
|
SelectComponent, C8yArrayTypeInjectTemplatePipe], imports: [CommonModule$1,
|
|
21311
21325
|
CommonModule,
|
|
21312
|
-
PopoverModule, i1$
|
|
21326
|
+
PopoverModule, i1$7.TooltipModule, ReactiveFormsModule,
|
|
21313
21327
|
C8yTranslateModule,
|
|
21314
21328
|
DropAreaModule,
|
|
21315
21329
|
FormsModule,
|
|
@@ -21840,7 +21854,7 @@ class DynamicComponentAlertsComponent extends AlertOutletBase {
|
|
|
21840
21854
|
}
|
|
21841
21855
|
}
|
|
21842
21856
|
DynamicComponentAlertsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DynamicComponentAlertsComponent, deps: [{ token: AlertService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
21843
|
-
DynamicComponentAlertsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DynamicComponentAlertsComponent, selector: "c8y-dynamic-component-alerts", inputs: { alerts: "alerts" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngFor=\"let alertGroup of alerts.alertGroups\">\n <div\n *ngIf=\"alertGroup?.value?.alerts?.length\"\n class=\"alert\"\n role=\"alert\"\n [ngClass]=\"'alert-' + alertGroup.type\"\n >\n <button\n class=\"close\"\n type=\"button\"\n *ngIf=\"\n alertGroup.value.alertDismissal.dismissStrategy === dismissAlertStrategy.TEMPORARY ||\n alertGroup.value.alertDismissal.dismissStrategy ===\n dismissAlertStrategy.TEMPORARY_OR_PERMANENT\n \"\n (click)=\"alerts.dismissAlertGroup(alertGroup.type, dismissPermanently.checked)\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <div *ngFor=\"let alertItem of alertGroup.value.alerts; let i = index\" class=\"m-t-8\">\n <ng-container *ngIf=\"!isTemplateRef(alertItem.text); else template(alertItem.text)\">\n <p\n *ngIf=\"!alertItem.allowHtml\"\n [textContent]=\"alertItem.text | translate\"\n class=\"message\"\n ></p>\n <p *ngIf=\"alertItem.allowHtml\" [innerHTML]=\"alertItem.text | translate\" class=\"message\"></p>\n </ng-container>\n\n <p *ngIf=\"hasDetails(alertItem) && !isDetailsShow(alertItem)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alertItem)\"\n >\n <i c8yIcon=\"chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alertItem) && isDetailsShow(alertItem)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Hide details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"closeDetails()\"\n >\n <i c8yIcon=\"chevron-up\"></i>\n {{ 'Hide details' | translate }}\n </button>\n </p>\n <div *ngIf=\"isDetailsShow(alertItem)\">\n <div\n *ngIf=\"\n !isTemplateRef(detailDisplayedAlert.contents);\n else template(alertItem.detailedData)\n \"\n >\n <pre><code [textContent]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n <hr *ngIf=\"i !== alertGroup.value.alerts.length - 1\" />\n </div>\n\n <label\n title=\"{{ 'Don\\'t show again' | translate }}\"\n class=\"c8y-checkbox m-t-16\"\n [class.hidden]=\"\n alertGroup.value.alertDismissal.dismissStrategy !==\n dismissAlertStrategy.TEMPORARY_OR_PERMANENT\n \"\n >\n <input type=\"checkbox\" #dismissPermanently />\n <span></span>\n <span>{{ \"Don't show again\" | translate }}</span>\n </label>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
21857
|
+
DynamicComponentAlertsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DynamicComponentAlertsComponent, selector: "c8y-dynamic-component-alerts", inputs: { alerts: "alerts" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngFor=\"let alertGroup of alerts.alertGroups\">\n <div\n *ngIf=\"alertGroup?.value?.alerts?.length\"\n class=\"alert\"\n role=\"alert\"\n [ngClass]=\"'alert-' + alertGroup.type\"\n >\n <button\n class=\"close\"\n type=\"button\"\n *ngIf=\"\n alertGroup.value.alertDismissal.dismissStrategy === dismissAlertStrategy.TEMPORARY ||\n alertGroup.value.alertDismissal.dismissStrategy ===\n dismissAlertStrategy.TEMPORARY_OR_PERMANENT\n \"\n (click)=\"alerts.dismissAlertGroup(alertGroup.type, dismissPermanently.checked)\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <div *ngFor=\"let alertItem of alertGroup.value.alerts; let i = index\" class=\"m-t-8\">\n <ng-container *ngIf=\"!isTemplateRef(alertItem.text); else template(alertItem.text)\">\n <p\n *ngIf=\"!alertItem.allowHtml\"\n [textContent]=\"alertItem.text | translate\"\n class=\"message\"\n ></p>\n <p *ngIf=\"alertItem.allowHtml\" [innerHTML]=\"alertItem.text | translate\" class=\"message\"></p>\n </ng-container>\n\n <p *ngIf=\"hasDetails(alertItem) && !isDetailsShow(alertItem)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alertItem)\"\n >\n <i c8yIcon=\"chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alertItem) && isDetailsShow(alertItem)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Hide details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"closeDetails()\"\n >\n <i c8yIcon=\"chevron-up\"></i>\n {{ 'Hide details' | translate }}\n </button>\n </p>\n <div *ngIf=\"isDetailsShow(alertItem)\">\n <div\n *ngIf=\"\n !isTemplateRef(detailDisplayedAlert.contents);\n else template(alertItem.detailedData)\n \"\n >\n <pre><code [textContent]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n <hr *ngIf=\"i !== alertGroup.value.alerts.length - 1\" />\n </div>\n\n <label\n title=\"{{ 'Don\\'t show again' | translate }}\"\n class=\"c8y-checkbox m-t-16\"\n [class.hidden]=\"\n alertGroup.value.alertDismissal.dismissStrategy !==\n dismissAlertStrategy.TEMPORARY_OR_PERMANENT\n \"\n >\n <input type=\"checkbox\" #dismissPermanently />\n <span></span>\n <span>{{ \"Don't show again\" | translate }}</span>\n </label>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21844
21858
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DynamicComponentAlertsComponent, decorators: [{
|
|
21845
21859
|
type: Component,
|
|
21846
21860
|
args: [{ selector: 'c8y-dynamic-component-alerts', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let alertGroup of alerts.alertGroups\">\n <div\n *ngIf=\"alertGroup?.value?.alerts?.length\"\n class=\"alert\"\n role=\"alert\"\n [ngClass]=\"'alert-' + alertGroup.type\"\n >\n <button\n class=\"close\"\n type=\"button\"\n *ngIf=\"\n alertGroup.value.alertDismissal.dismissStrategy === dismissAlertStrategy.TEMPORARY ||\n alertGroup.value.alertDismissal.dismissStrategy ===\n dismissAlertStrategy.TEMPORARY_OR_PERMANENT\n \"\n (click)=\"alerts.dismissAlertGroup(alertGroup.type, dismissPermanently.checked)\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <div *ngFor=\"let alertItem of alertGroup.value.alerts; let i = index\" class=\"m-t-8\">\n <ng-container *ngIf=\"!isTemplateRef(alertItem.text); else template(alertItem.text)\">\n <p\n *ngIf=\"!alertItem.allowHtml\"\n [textContent]=\"alertItem.text | translate\"\n class=\"message\"\n ></p>\n <p *ngIf=\"alertItem.allowHtml\" [innerHTML]=\"alertItem.text | translate\" class=\"message\"></p>\n </ng-container>\n\n <p *ngIf=\"hasDetails(alertItem) && !isDetailsShow(alertItem)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alertItem)\"\n >\n <i c8yIcon=\"chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alertItem) && isDetailsShow(alertItem)\" class=\"text-muted m-t-8\">\n <button\n title=\"{{ 'Hide details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"closeDetails()\"\n >\n <i c8yIcon=\"chevron-up\"></i>\n {{ 'Hide details' | translate }}\n </button>\n </p>\n <div *ngIf=\"isDetailsShow(alertItem)\">\n <div\n *ngIf=\"\n !isTemplateRef(detailDisplayedAlert.contents);\n else template(alertItem.detailedData)\n \"\n >\n <pre><code [textContent]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n <hr *ngIf=\"i !== alertGroup.value.alerts.length - 1\" />\n </div>\n\n <label\n title=\"{{ 'Don\\'t show again' | translate }}\"\n class=\"c8y-checkbox m-t-16\"\n [class.hidden]=\"\n alertGroup.value.alertDismissal.dismissStrategy !==\n dismissAlertStrategy.TEMPORARY_OR_PERMANENT\n \"\n >\n <input type=\"checkbox\" #dismissPermanently />\n <span></span>\n <span>{{ \"Don't show again\" | translate }}</span>\n </label>\n </div>\n</ng-container>\n" }]
|
|
@@ -22002,7 +22016,7 @@ class DynamicComponentComponent {
|
|
|
22002
22016
|
}
|
|
22003
22017
|
}
|
|
22004
22018
|
DynamicComponentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DynamicComponentComponent, deps: [{ token: DynamicComponentService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
22005
|
-
DynamicComponentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DynamicComponentComponent, selector: "c8y-dynamic-component", inputs: { componentId: "componentId", config: "config", mode: "mode", notFoundError: "notFoundError", executeResolvers: "executeResolvers" }, outputs: { updateWidgetClasses: "updateWidgetClasses" }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #host></ng-template>\n\n<div class=\"alert alert-warning m-8\" role=\"alert\" *ngIf=\"error && notFoundError\">\n <strong class=\"message\">\n {{\n 'This widget cannot be rendered because the current application does not support the following component:'\n | translate\n }}\n {{ componentId }}.\n </strong>\n <p class=\"text-muted m-t-8\">\n <button class=\"btn btn-clean\" (click)=\"expandErrorDetails = !expandErrorDetails\">\n <i c8yIcon=\"chevron-down\"></i>\n <span *ngIf=\"!expandErrorDetails\" translate>Show details</span>\n <span *ngIf=\"expandErrorDetails\" translate>Hide details</span>\n </button>\n </p>\n <div [collapse]=\"!expandErrorDetails\" [isAnimated]=\"true\">\n <pre>\n {{ error }}\n </pre>\n </div>\n</div>\n\n<div\n class=\"overlay-center-vertically d-flex d-col a-i-stretch j-c-start p-16 p-r-24 p-l-24\"\n *ngIf=\"\n errorStrategy === dynamicComponentErrorStrategy.OVERLAY_ERROR &&\n componentInstance?.alerts?.anyAlertExists$ | async\n \"\n>\n <c8y-dynamic-component-alerts [alerts]=\"componentInstance.alerts\"></c8y-dynamic-component-alerts>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
22019
|
+
DynamicComponentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DynamicComponentComponent, selector: "c8y-dynamic-component", inputs: { componentId: "componentId", config: "config", mode: "mode", notFoundError: "notFoundError", executeResolvers: "executeResolvers" }, outputs: { updateWidgetClasses: "updateWidgetClasses" }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #host></ng-template>\n\n<div class=\"alert alert-warning m-8\" role=\"alert\" *ngIf=\"error && notFoundError\">\n <strong class=\"message\">\n {{\n 'This widget cannot be rendered because the current application does not support the following component:'\n | translate\n }}\n {{ componentId }}.\n </strong>\n <p class=\"text-muted m-t-8\">\n <button class=\"btn btn-clean\" (click)=\"expandErrorDetails = !expandErrorDetails\">\n <i c8yIcon=\"chevron-down\"></i>\n <span *ngIf=\"!expandErrorDetails\" translate>Show details</span>\n <span *ngIf=\"expandErrorDetails\" translate>Hide details</span>\n </button>\n </p>\n <div [collapse]=\"!expandErrorDetails\" [isAnimated]=\"true\">\n <pre>\n {{ error }}\n </pre>\n </div>\n</div>\n\n<div\n class=\"overlay-center-vertically d-flex d-col a-i-stretch j-c-start p-16 p-r-24 p-l-24\"\n *ngIf=\"\n errorStrategy === dynamicComponentErrorStrategy.OVERLAY_ERROR &&\n componentInstance?.alerts?.anyAlertExists$ | async\n \"\n>\n <c8y-dynamic-component-alerts [alerts]=\"componentInstance.alerts\"></c8y-dynamic-component-alerts>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$9.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "component", type: DynamicComponentAlertsComponent, selector: "c8y-dynamic-component-alerts", inputs: ["alerts"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
22006
22020
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DynamicComponentComponent, decorators: [{
|
|
22007
22021
|
type: Component,
|
|
22008
22022
|
args: [{ selector: 'c8y-dynamic-component', template: "<ng-template #host></ng-template>\n\n<div class=\"alert alert-warning m-8\" role=\"alert\" *ngIf=\"error && notFoundError\">\n <strong class=\"message\">\n {{\n 'This widget cannot be rendered because the current application does not support the following component:'\n | translate\n }}\n {{ componentId }}.\n </strong>\n <p class=\"text-muted m-t-8\">\n <button class=\"btn btn-clean\" (click)=\"expandErrorDetails = !expandErrorDetails\">\n <i c8yIcon=\"chevron-down\"></i>\n <span *ngIf=\"!expandErrorDetails\" translate>Show details</span>\n <span *ngIf=\"expandErrorDetails\" translate>Hide details</span>\n </button>\n </p>\n <div [collapse]=\"!expandErrorDetails\" [isAnimated]=\"true\">\n <pre>\n {{ error }}\n </pre>\n </div>\n</div>\n\n<div\n class=\"overlay-center-vertically d-flex d-col a-i-stretch j-c-start p-16 p-r-24 p-l-24\"\n *ngIf=\"\n errorStrategy === dynamicComponentErrorStrategy.OVERLAY_ERROR &&\n componentInstance?.alerts?.anyAlertExists$ | async\n \"\n>\n <c8y-dynamic-component-alerts [alerts]=\"componentInstance.alerts\"></c8y-dynamic-component-alerts>\n</div>\n" }]
|
|
@@ -22663,14 +22677,14 @@ class DashboardComponent {
|
|
|
22663
22677
|
return this.dashboardRect.height / this.rows;
|
|
22664
22678
|
}
|
|
22665
22679
|
}
|
|
22666
|
-
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardComponent, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
22680
|
+
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardComponent, deps: [{ token: i0.ElementRef }, { token: i1$5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
22667
22681
|
DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DashboardComponent, selector: "c8y-dashboard", inputs: { columns: "columns", gap: "gap", rows: "rows" }, outputs: { dashboardChange: "dashboardChange" }, host: { listeners: { "window:resize": "onResize()" }, properties: { "attr.style": "this.inlineStyle" }, classAttribute: "c8y-grid-dashboard dashboard-grid" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
22668
22682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
22669
22683
|
type: Component,
|
|
22670
22684
|
args: [{ selector: 'c8y-dashboard', host: {
|
|
22671
22685
|
class: 'c8y-grid-dashboard dashboard-grid'
|
|
22672
22686
|
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
22673
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$
|
|
22687
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$5.DomSanitizer }]; }, propDecorators: { columns: [{
|
|
22674
22688
|
type: Input
|
|
22675
22689
|
}], gap: [{
|
|
22676
22690
|
type: Input
|
|
@@ -22904,14 +22918,14 @@ class DashboardChildComponent {
|
|
|
22904
22918
|
return false;
|
|
22905
22919
|
}
|
|
22906
22920
|
}
|
|
22907
|
-
DashboardChildComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardChildComponent, deps: [{ token: DashboardComponent }, { token: i1$
|
|
22908
|
-
DashboardChildComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", isFrozen: "isFrozen", useIntersection: "useIntersection", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd" }, host: { properties: { "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div *ngIf=\"isResize\" class=\"card-placeholder\"></div>\n <div\n [ngClass]=\"klasses\"\n cdkDrag\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"isFrozen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{ 'drag-handle': !isFrozen, draggableCursor: !isFrozen }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div class=\"header-actions\" *ngIf=\"!isFrozen && actions.length > 0\">\n <div class=\"optionsBtn dropdown\" dropdown placement=\"bottom right\">\n <button\n title=\"{{ 'Settings' | translate }}\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right:-1px;\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"!isFrozen && !isDragging\"\n class=\"resize-handle hidden-xs\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon hidden-xs\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type:
|
|
22921
|
+
DashboardChildComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardChildComponent, deps: [{ token: DashboardComponent }, { token: i1$5.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
22922
|
+
DashboardChildComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: { x: "x", y: "y", width: "width", height: "height", data: "data", margin: "margin", isFrozen: "isFrozen", useIntersection: "useIntersection", class: "class" }, outputs: { changeStart: "changeStart", changeEnd: "changeEnd" }, host: { properties: { "attr.style": "this.inlineStyle" }, classAttribute: "dashboard-grid-child" }, queries: [{ propertyName: "templateActions", predicate: DashboardChildActionComponent }], usesOnChanges: true, ngImport: i0, template: "<div cdkDropList>\n <div *ngIf=\"isResize\" class=\"card-placeholder\"></div>\n <div\n [ngClass]=\"klasses\"\n cdkDrag\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"isFrozen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{ 'drag-handle': !isFrozen, draggableCursor: !isFrozen }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div class=\"header-actions\" *ngIf=\"!isFrozen && actions.length > 0\">\n <div class=\"optionsBtn dropdown\" dropdown placement=\"bottom right\">\n <button\n title=\"{{ 'Settings' | translate }}\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right:-1px;\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"!isFrozen && !isDragging\"\n class=\"resize-handle hidden-xs\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon hidden-xs\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5$3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5$3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5$3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i5$3.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
22909
22923
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardChildComponent, decorators: [{
|
|
22910
22924
|
type: Component,
|
|
22911
22925
|
args: [{ selector: 'c8y-dashboard-child', host: {
|
|
22912
22926
|
class: 'dashboard-grid-child'
|
|
22913
22927
|
}, template: "<div cdkDropList>\n <div *ngIf=\"isResize\" class=\"card-placeholder\"></div>\n <div\n [ngClass]=\"klasses\"\n cdkDrag\n [ngStyle]=\"{ width: _pxWidth, height: _pxHeight }\"\n (cdkDragStarted)=\"dragStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n [cdkDragDisabled]=\"isFrozen\"\n >\n <div\n class=\"card-header-actions card-header-grid\"\n [ngClass]=\"{ 'drag-handle': !isFrozen, draggableCursor: !isFrozen }\"\n cdkDragHandle\n >\n <ng-content select=\"c8y-dashboard-child-title\"></ng-content>\n <div class=\"header-actions\" *ngIf=\"!isFrozen && actions.length > 0\">\n <div class=\"optionsBtn dropdown\" dropdown placement=\"bottom right\">\n <button\n title=\"{{ 'Settings' | translate }}\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </button>\n <ul\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"right:-1px;\"\n *dropdownMenu\n >\n <ng-container *ngFor=\"let action of actions\">\n <ng-container *ngTemplateOutlet=\"action.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </div>\n </div>\n <div class=\"card-inner-scroll\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"!isFrozen && !isDragging\"\n class=\"resize-handle hidden-xs\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon hidden-xs\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n" }]
|
|
22914
|
-
}], ctorParameters: function () { return [{ type: DashboardComponent }, { type: i1$
|
|
22928
|
+
}], ctorParameters: function () { return [{ type: DashboardComponent }, { type: i1$5.DomSanitizer }, { type: i0.ElementRef }]; }, propDecorators: { templateActions: [{
|
|
22915
22929
|
type: ContentChildren,
|
|
22916
22930
|
args: [DashboardChildActionComponent]
|
|
22917
22931
|
}], x: [{
|
|
@@ -23234,7 +23248,7 @@ class WidgetTimeContextComponent {
|
|
|
23234
23248
|
}
|
|
23235
23249
|
}
|
|
23236
23250
|
WidgetTimeContextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetTimeContextComponent, deps: [{ token: WidgetsDashboardEventService }, { token: DashboardChildComponent }, { token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
23237
|
-
WidgetTimeContextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetTimeContextComponent, selector: "c8y-widget-time-context", inputs: { canDecouple: "canDecouple" }, outputs: { dateContextChange: "dateContextChange" }, host: { classAttribute: "d-flex a-i-center gap-4" }, viewQueries: [{ propertyName: "action", first: true, predicate: DashboardChildActionComponent, descendants: true }], ngImport: i0, template: "<c8y-action-bar-item\n *ngIf=\"isCoupled\"\n [groupId]=\"'timecontext'\"\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <ng-container\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{ date: globalDate }\"\n ></ng-container>\n</c8y-action-bar-item>\n\n<ng-container\n *ngIf=\"!isCoupled\"\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{ date: localDate }\"\n></ng-container>\n\n<ng-template #dateTimePicker let-date=\"date\">\n <label>{{ 'Time range' | translate }}</label>\n <div\n class=\"dropdown m-r-4\"\n dropdown\n #dropdown=\"bs-dropdown\"\n container=\"body\"\n [insideClick]=\"true\"\n >\n <button\n class=\"dropdown-toggle form-control l-h-1 d-flex a-i-center\"\n dropdownToggle\n title=\"{{ date[0] | c8yDate: 'short' }} \u2014 {{ date[1] | c8yDate: 'short' }}\"\n aria-haspopup=\"true\"\n >\n <span>{{ date[0] | c8yDate: 'shortDate' }} \u2014 {{ date[1] | c8yDate: 'shortDate' }}</span>\n <span class=\"caret m-r-8 m-l-4\"></span>\n </button>\n\n <div *dropdownMenu class=\"dropdown-menu dropdown-menu--date-range\">\n <div class=\"p-16\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n (click)=\"reset(); dropdown.isOpen = false\"\n title=\"{{ 'Reset' | translate }}\"\n type=\"button\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"applyDatetimeContext(); dropdown.isOpen = false\"\n [disabled]=\"(form.pristine && form.untouched) || form.invalid\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [attr.aria-label]=\"'Range' | translate\"\n [ngModel]=\"currentPredefinedTimeSpan\"\n (ngModelChange)=\"predefinedDateFromSelected($event)\"\n >\n <option value=\"undefined\" disabled=\"true\">{{ 'Custom range`time`' | translate }}</option>\n <option *ngFor=\"let dateFrom of predefinedTimeSpanList\" [ngValue]=\"dateFrom\">\n {{ dateFrom.title }}\n </option>\n </select>\n <span></span>\n </div>\n</ng-template>\n\n<c8y-dashboard-child-action>\n <button (click)=\"toggleDecoupling();\" type=\"button\">\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: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
23251
|
+
WidgetTimeContextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetTimeContextComponent, selector: "c8y-widget-time-context", inputs: { canDecouple: "canDecouple" }, outputs: { dateContextChange: "dateContextChange" }, host: { classAttribute: "d-flex a-i-center gap-4" }, viewQueries: [{ propertyName: "action", first: true, predicate: DashboardChildActionComponent, descendants: true }], ngImport: i0, template: "<c8y-action-bar-item\n *ngIf=\"isCoupled\"\n [groupId]=\"'timecontext'\"\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <ng-container\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{ date: globalDate }\"\n ></ng-container>\n</c8y-action-bar-item>\n\n<ng-container\n *ngIf=\"!isCoupled\"\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{ date: localDate }\"\n></ng-container>\n\n<ng-template #dateTimePicker let-date=\"date\">\n <label>{{ 'Time range' | translate }}</label>\n <div\n class=\"dropdown m-r-4\"\n dropdown\n #dropdown=\"bs-dropdown\"\n container=\"body\"\n [insideClick]=\"true\"\n >\n <button\n class=\"dropdown-toggle form-control l-h-1 d-flex a-i-center\"\n dropdownToggle\n title=\"{{ date[0] | c8yDate: 'short' }} \u2014 {{ date[1] | c8yDate: 'short' }}\"\n aria-haspopup=\"true\"\n >\n <span>{{ date[0] | c8yDate: 'shortDate' }} \u2014 {{ date[1] | c8yDate: 'shortDate' }}</span>\n <span class=\"caret m-r-8 m-l-4\"></span>\n </button>\n\n <div *dropdownMenu class=\"dropdown-menu dropdown-menu--date-range\">\n <div class=\"p-16\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n (click)=\"reset(); dropdown.isOpen = false\"\n title=\"{{ 'Reset' | translate }}\"\n type=\"button\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"applyDatetimeContext(); dropdown.isOpen = false\"\n [disabled]=\"(form.pristine && form.untouched) || form.invalid\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [attr.aria-label]=\"'Range' | translate\"\n [ngModel]=\"currentPredefinedTimeSpan\"\n (ngModelChange)=\"predefinedDateFromSelected($event)\"\n >\n <option value=\"undefined\" disabled=\"true\">{{ 'Custom range`time`' | translate }}</option>\n <option *ngFor=\"let dateFrom of predefinedTimeSpanList\" [ngValue]=\"dateFrom\">\n {{ dateFrom.title }}\n </option>\n </select>\n <span></span>\n </div>\n</ng-template>\n\n<c8y-dashboard-child-action>\n <button (click)=\"toggleDecoupling();\" type=\"button\">\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: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "component", type: DashboardChildActionComponent, selector: "c8y-dashboard-child-action" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] });
|
|
23238
23252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetTimeContextComponent, decorators: [{
|
|
23239
23253
|
type: Component,
|
|
23240
23254
|
args: [{ selector: 'c8y-widget-time-context', host: { class: 'd-flex a-i-center gap-4' }, template: "<c8y-action-bar-item\n *ngIf=\"isCoupled\"\n [groupId]=\"'timecontext'\"\n [placement]=\"'left'\"\n itemClass=\"navbar-form\"\n>\n <ng-container\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{ date: globalDate }\"\n ></ng-container>\n</c8y-action-bar-item>\n\n<ng-container\n *ngIf=\"!isCoupled\"\n [ngTemplateOutlet]=\"dateTimePicker\"\n [ngTemplateOutletContext]=\"{ date: localDate }\"\n></ng-container>\n\n<ng-template #dateTimePicker let-date=\"date\">\n <label>{{ 'Time range' | translate }}</label>\n <div\n class=\"dropdown m-r-4\"\n dropdown\n #dropdown=\"bs-dropdown\"\n container=\"body\"\n [insideClick]=\"true\"\n >\n <button\n class=\"dropdown-toggle form-control l-h-1 d-flex a-i-center\"\n dropdownToggle\n title=\"{{ date[0] | c8yDate: 'short' }} \u2014 {{ date[1] | c8yDate: 'short' }}\"\n aria-haspopup=\"true\"\n >\n <span>{{ date[0] | c8yDate: 'shortDate' }} \u2014 {{ date[1] | c8yDate: 'shortDate' }}</span>\n <span class=\"caret m-r-8 m-l-4\"></span>\n </button>\n\n <div *dropdownMenu class=\"dropdown-menu dropdown-menu--date-range\">\n <div class=\"p-16\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n </div>\n <div class=\"p-16 d-flex gap-8 separator-top\">\n <button\n class=\"btn btn-default btn-sm flex-grow\"\n (click)=\"reset(); dropdown.isOpen = false\"\n title=\"{{ 'Reset' | translate }}\"\n type=\"button\"\n translate\n >\n Reset\n </button>\n\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"applyDatetimeContext(); dropdown.isOpen = false\"\n [disabled]=\"(form.pristine && form.untouched) || form.invalid\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"button\"\n translate\n >\n Apply\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [attr.aria-label]=\"'Range' | translate\"\n [ngModel]=\"currentPredefinedTimeSpan\"\n (ngModelChange)=\"predefinedDateFromSelected($event)\"\n >\n <option value=\"undefined\" disabled=\"true\">{{ 'Custom range`time`' | translate }}</option>\n <option *ngFor=\"let dateFrom of predefinedTimeSpanList\" [ngValue]=\"dateFrom\">\n {{ dateFrom.title }}\n </option>\n </select>\n <span></span>\n </div>\n</ng-template>\n\n<c8y-dashboard-child-action>\n <button (click)=\"toggleDecoupling();\" type=\"button\">\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" }]
|
|
@@ -23361,7 +23375,7 @@ class WidgetsDashboardComponent {
|
|
|
23361
23375
|
}
|
|
23362
23376
|
}
|
|
23363
23377
|
WidgetsDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetsDashboardComponent, deps: [{ token: DynamicComponentService }, { token: i1$3.TranslateService }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
23364
|
-
WidgetsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: { widgets: "widgets", context: "context", contextDashboard: "contextDashboard", _settings: ["settings", "_settings"], breadcrumb: "breadcrumb" }, outputs: { onAddWidget: "onAddWidget", onEditWidget: "onEditWidget", onDeleteWidget: "onDeleteWidget", onChangeDashboard: "onChangeDashboard", onEditDashboard: "onEditDashboard", onCopyDashboard: "onCopyDashboard", onDeleteDashboard: "onDeleteDashboard", onFreeze: "onFreeze", onChangeStart: "onChangeStart", onChangeEnd: "onChangeEnd" }, host: { styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, providers: [WidgetsDashboardEventService], ngImport: i0, template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!!breadcrumb\">\n <c8y-breadcrumb-item\n [icon]=\"breadcrumb.icon\"\n [label]=\"breadcrumb.label\"\n [path]=\"breadcrumb.path\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button\n title=\"{{ 'Full screen' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i>\n {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-2000\"\n *ngIf=\"settings.canCopy\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n settings.isCopyDisabled ? copyDashboardWarningMessage : ('Copy dashboard' | translate)\n }}\"\n type=\"button\"\n data-cy=\"widgets-dashboard--copy-dashboard\"\n (click)=\"onCopyDashboard.emit()\"\n [disabled]=\"settings.isCopyDisabled\"\n >\n <i c8yIcon=\"clone\"></i>\n <span class=\"m-l-4\" translate>Copy dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button\n title=\"{{ 'Delete dashboard' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<ng-template #loadingIndicator>\n <c8y-loading class=\"col-xs-12 text-center\" *ngIf=\"isLoadingWidgets$ | async\"></c8y-loading>\n</ng-template>\n\n<ng-container *ngIf=\"!(isLoadingWidgets$ | async); else loadingIndicator\">\n <ng-container *ngIf=\"resolvedWidgets$ | async as widgetsToDisplay\">\n <!-- empty state -->\n <c8y-ui-empty-state\n *ngIf=\"widgetsToDisplay?.length === 0\"\n [icon]=\"'c8y-device'\"\n [title]=\"'No widgets to display.' | translate\"\n >\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary m-t-16\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n </div>\n </c8y-ui-empty-state>\n\n <c8y-dashboard\n [columns]=\"settings.columns\"\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n >\n <c8y-dashboard-child\n *ngFor=\"let widget of widgetsToDisplay\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span *ngIf=\"settings.translateWidgetTitle\">\n {{ widget.title | translate }}\n </span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button\n title=\"{{ 'Edit widget' | translate }}\"\n type=\"button\"\n (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"pencil\"></i>\n <span class=\"m-l-4\" translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n title=\"{{ 'Remove widget' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n\n <c8y-widget-time-context\n *ngIf=\"\n widget.config?.displaySettings?.globalTimeContext &&\n widget.config?.widgetInstanceGlobalTimeContext\n \"\n (dateContextChange)=\"updateWidgetConfig({ date: $event }, widget)\"\n [canDecouple]=\"widget.config.canDecoupleGlobalTimeContext\"\n ></c8y-widget-time-context>\n\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n (updateWidgetClasses)=\"updateWidgetClasses(widget, $event)\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n </c8y-dashboard>\n </ng-container>\n</ng-container>\n\n", dependencies: [{ kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading" }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: DynamicComponentComponent, selector: "c8y-dynamic-component", inputs: ["componentId", "config", "mode", "notFoundError", "executeResolvers"], outputs: ["updateWidgetClasses"] }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: ["x", "y", "width", "height", "data", "margin", "isFrozen", "useIntersection", "class"], outputs: ["changeStart", "changeEnd"] }, { kind: "component", type: DashboardComponent, selector: "c8y-dashboard", inputs: ["columns", "gap", "rows"], outputs: ["dashboardChange"] }, { kind: "component", type: DashboardChildTitleComponent, selector: "c8y-dashboard-child-title" }, { kind: "component", type: DashboardChildActionComponent, selector: "c8y-dashboard-child-action" }, { kind: "component", type: WidgetTimeContextComponent, selector: "c8y-widget-time-context", inputs: ["canDecouple"], outputs: ["dateContextChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }] });
|
|
23378
|
+
WidgetsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WidgetsDashboardComponent, selector: "c8y-widgets-dashboard", inputs: { widgets: "widgets", context: "context", contextDashboard: "contextDashboard", _settings: ["settings", "_settings"], breadcrumb: "breadcrumb" }, outputs: { onAddWidget: "onAddWidget", onEditWidget: "onEditWidget", onDeleteWidget: "onDeleteWidget", onChangeDashboard: "onChangeDashboard", onEditDashboard: "onEditDashboard", onCopyDashboard: "onCopyDashboard", onDeleteDashboard: "onDeleteDashboard", onFreeze: "onFreeze", onChangeStart: "onChangeStart", onChangeEnd: "onChangeEnd" }, host: { styleAttribute: "\n display: block;\n ", classAttribute: "dashboard c8y-grid-dashboard" }, providers: [WidgetsDashboardEventService], ngImport: i0, template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-breadcrumb *ngIf=\"!!breadcrumb\">\n <c8y-breadcrumb-item\n [icon]=\"breadcrumb.icon\"\n [label]=\"breadcrumb.label\"\n [path]=\"breadcrumb.path\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button\n title=\"{{ 'Full screen' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"toggleFullscreen()\"\n >\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i>\n {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n type=\"button\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-2000\"\n *ngIf=\"settings.canCopy\"\n>\n <button\n class=\"btn btn-link\"\n title=\"{{\n settings.isCopyDisabled ? copyDashboardWarningMessage : ('Copy dashboard' | translate)\n }}\"\n type=\"button\"\n data-cy=\"widgets-dashboard--copy-dashboard\"\n (click)=\"onCopyDashboard.emit()\"\n [disabled]=\"settings.isCopyDisabled\"\n >\n <i c8yIcon=\"clone\"></i>\n <span class=\"m-l-4\" translate>Copy dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button\n title=\"{{ 'Delete dashboard' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<ng-template #loadingIndicator>\n <c8y-loading class=\"col-xs-12 text-center\" *ngIf=\"isLoadingWidgets$ | async\"></c8y-loading>\n</ng-template>\n\n<ng-container *ngIf=\"!(isLoadingWidgets$ | async); else loadingIndicator\">\n <ng-container *ngIf=\"resolvedWidgets$ | async as widgetsToDisplay\">\n <!-- empty state -->\n <c8y-ui-empty-state\n *ngIf=\"widgetsToDisplay?.length === 0\"\n [icon]=\"'c8y-device'\"\n [title]=\"'No widgets to display.' | translate\"\n >\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n title=\"{{ 'Add widget' | translate }}\"\n type=\"button\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary m-t-16\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate ngNonBindable>\n Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>\n .\n </small>\n </p>\n </div>\n </c8y-ui-empty-state>\n\n <c8y-dashboard\n [columns]=\"settings.columns\"\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n >\n <c8y-dashboard-child\n *ngFor=\"let widget of widgetsToDisplay\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span *ngIf=\"settings.translateWidgetTitle\">\n {{ widget.title | translate }}\n </span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button\n title=\"{{ 'Edit widget' | translate }}\"\n type=\"button\"\n (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"pencil\"></i>\n <span class=\"m-l-4\" translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n title=\"{{ 'Remove widget' | translate }}\"\n type=\"button\"\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"delete\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n\n <c8y-widget-time-context\n *ngIf=\"\n widget.config?.displaySettings?.globalTimeContext &&\n widget.config?.widgetInstanceGlobalTimeContext\n \"\n (dateContextChange)=\"updateWidgetConfig({ date: $event }, widget)\"\n [canDecouple]=\"widget.config.canDecoupleGlobalTimeContext\"\n ></c8y-widget-time-context>\n\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n (updateWidgetClasses)=\"updateWidgetClasses(widget, $event)\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n </c8y-dashboard>\n </ng-container>\n</ng-container>\n\n", dependencies: [{ kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading" }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "component", type: DynamicComponentComponent, selector: "c8y-dynamic-component", inputs: ["componentId", "config", "mode", "notFoundError", "executeResolvers"], outputs: ["updateWidgetClasses"] }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "directive", type: GuideHrefDirective, selector: "[c8y-guide-href]", inputs: ["c8y-guide-href"] }, { kind: "component", type: GuideDocsComponent, selector: "[c8y-guide-docs]" }, { kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "component", type: DashboardChildComponent, selector: "c8y-dashboard-child", inputs: ["x", "y", "width", "height", "data", "margin", "isFrozen", "useIntersection", "class"], outputs: ["changeStart", "changeEnd"] }, { kind: "component", type: DashboardComponent, selector: "c8y-dashboard", inputs: ["columns", "gap", "rows"], outputs: ["dashboardChange"] }, { kind: "component", type: DashboardChildTitleComponent, selector: "c8y-dashboard-child-title" }, { kind: "component", type: DashboardChildActionComponent, selector: "c8y-dashboard-child-action" }, { kind: "component", type: WidgetTimeContextComponent, selector: "c8y-widget-time-context", inputs: ["canDecouple"], outputs: ["dateContextChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
23365
23379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetsDashboardComponent, decorators: [{
|
|
23366
23380
|
type: Component,
|
|
23367
23381
|
args: [{ selector: 'c8y-widgets-dashboard', host: {
|
|
@@ -23414,7 +23428,7 @@ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
|
|
|
23414
23428
|
WidgetTimeContextComponent], imports: [CommonModule,
|
|
23415
23429
|
ActionBarModule,
|
|
23416
23430
|
DynamicComponentModule,
|
|
23417
|
-
DragDropModule, i1$
|
|
23431
|
+
DragDropModule, i1$6.BsDropdownModule, HeaderModule,
|
|
23418
23432
|
DocsModule,
|
|
23419
23433
|
BreadcrumbModule,
|
|
23420
23434
|
FormsModule$1,
|
|
@@ -23647,7 +23661,7 @@ class CellRendererComponent {
|
|
|
23647
23661
|
}
|
|
23648
23662
|
}
|
|
23649
23663
|
CellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CellRendererComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
23650
|
-
CellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CellRendererComponent, selector: "c8y-cell-renderer", inputs: { _spec: ["spec", "_spec"] }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n ></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <span title=\"{{ spec.context.value | stringifyObject }}\">\n {{ spec.context.value | stringifyObject }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
23664
|
+
CellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: CellRendererComponent, selector: "c8y-cell-renderer", inputs: { _spec: ["spec", "_spec"] }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n ></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <span title=\"{{ spec.context.value | stringifyObject }}\">\n {{ spec.context.value | stringifyObject }}\n </span>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: StringifyObjectPipe, name: "stringifyObject" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
23651
23665
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CellRendererComponent, decorators: [{
|
|
23652
23666
|
type: Component,
|
|
23653
23667
|
args: [{ selector: 'c8y-cell-renderer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n ></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <span title=\"{{ spec.context.value | stringifyObject }}\">\n {{ spec.context.value | stringifyObject }}\n </span>\n</ng-container>\n" }]
|
|
@@ -23704,7 +23718,7 @@ class FilteringFormRendererComponent {
|
|
|
23704
23718
|
}
|
|
23705
23719
|
}
|
|
23706
23720
|
FilteringFormRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FilteringFormRendererComponent, deps: [{ token: i0.Injector }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
23707
|
-
FilteringFormRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FilteringFormRendererComponent, selector: "c8y-filtering-form-renderer", inputs: { _spec: ["spec", "_spec"] }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n ></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <div class=\"form-group p-t-8\">\n <label>{{ 'Filter text' | translate }}</label>\n <input\n class=\"form-control\"\n [(ngModel)]=\"defaultRendererFilterText\"\n (keyup.enter)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n />\n </div>\n\n <div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n title=\"{{ 'Reset' | translate }}\"\n class=\"btn btn-default btn-sm flex-grow m-r-8\"\n (click)=\"defaultRendererFilterText = ''; spec.context.resetFilter()\"\n >\n {{ 'Reset' | translate }}\n </button>\n <button\n title=\"{{ 'Apply' | translate }}\"\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type:
|
|
23721
|
+
FilteringFormRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FilteringFormRendererComponent, selector: "c8y-filtering-form-renderer", inputs: { _spec: ["spec", "_spec"] }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n ></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <div class=\"form-group p-t-8\">\n <label>{{ 'Filter text' | translate }}</label>\n <input\n class=\"form-control\"\n [(ngModel)]=\"defaultRendererFilterText\"\n (keyup.enter)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n />\n </div>\n\n <div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n title=\"{{ 'Reset' | translate }}\"\n class=\"btn btn-default btn-sm flex-grow m-r-8\"\n (click)=\"defaultRendererFilterText = ''; spec.context.resetFilter()\"\n >\n {{ 'Reset' | translate }}\n </button>\n <button\n title=\"{{ 'Apply' | translate }}\"\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
23708
23722
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FilteringFormRendererComponent, decorators: [{
|
|
23709
23723
|
type: Component,
|
|
23710
23724
|
args: [{ selector: 'c8y-filtering-form-renderer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n ></ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n ></ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <div class=\"form-group p-t-8\">\n <label>{{ 'Filter text' | translate }}</label>\n <input\n class=\"form-control\"\n [(ngModel)]=\"defaultRendererFilterText\"\n (keyup.enter)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n />\n </div>\n\n <div class=\"data-grid__dropdown__footer d-flex separator-top\">\n <button\n title=\"{{ 'Reset' | translate }}\"\n class=\"btn btn-default btn-sm flex-grow m-r-8\"\n (click)=\"defaultRendererFilterText = ''; spec.context.resetFilter()\"\n >\n {{ 'Reset' | translate }}\n </button>\n <button\n title=\"{{ 'Apply' | translate }}\"\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n >\n {{ 'Apply' | translate }}\n </button>\n </div>\n</ng-container>\n" }]
|
|
@@ -23750,12 +23764,12 @@ class ConfigureCustomColumnComponent {
|
|
|
23750
23764
|
}
|
|
23751
23765
|
}
|
|
23752
23766
|
}
|
|
23753
|
-
ConfigureCustomColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfigureCustomColumnComponent, deps: [{ token: i5.FormBuilder }, { token: i1$
|
|
23767
|
+
ConfigureCustomColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfigureCustomColumnComponent, deps: [{ token: i5.FormBuilder }, { token: i1$8.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
23754
23768
|
ConfigureCustomColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ConfigureCustomColumnComponent, selector: "c8y-configure-custom-column", outputs: { onAddCustomColumn: "onAddCustomColumn" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["columnConfigForm"], descendants: true }], ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\" translate>Configure custom column</h3>\n </div>\n\n <form class=\"d-contents\" #columnConfigForm=\"ngForm\" [formGroup]=\"formGroup\">\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label for=\"header\" translate>Header</label>\n <input\n id=\"header\"\n data-cy=\"configure-custom-column--header\"\n formControlName=\"header\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. Agent name' | translate\"\n [required]=\"true\"\n uniqueByPath\n [collection]=\"columns\"\n path=\"header\"\n [comparator]=\"comparator\"\n />\n <c8y-messages>\n <c8y-message\n name=\"uniqueByPath\"\n [text]=\"uniqueHeaderMsg\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"fragmentPath\" translate>Fragment path</label>\n <input\n id=\"fragmentPath\"\n data-cy=\"configure-custom-column--fragmentPath\"\n formControlName=\"path\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_Agent.name' }\"\n />\n </c8y-form-group>\n <label class=\"c8y-switch\" [title]=\"'Add another column after saving this one' | translate\">\n <input type=\"checkbox\" formControlName=\"addAnother\" class=\"form-control\" />\n <span></span>\n <span translate>Add another column after saving this one</span>\n </label>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button title=\"{{ 'Cancel' | translate }}\" class=\"btn btn-default\" (click)=\"modalRef.hide()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n [disabled]=\"columnConfigForm.form.pristine || !columnConfigForm.form.valid\"\n (click)=\"addColumn()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "directive", type: RequiredInputPlaceholderDirective, selector: "input[required], input[formControlName]" }, { kind: "directive", type: UniqueInCollectionByPathValidationDirective, selector: "[uniqueByPath]", inputs: ["collection", "path", "comparator"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
23755
23769
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfigureCustomColumnComponent, decorators: [{
|
|
23756
23770
|
type: Component,
|
|
23757
23771
|
args: [{ selector: 'c8y-configure-custom-column', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header separator-bottom\">\n <h3 id=\"modal-title\" translate>Configure custom column</h3>\n </div>\n\n <form class=\"d-contents\" #columnConfigForm=\"ngForm\" [formGroup]=\"formGroup\">\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"modal-body\">\n <c8y-form-group>\n <label for=\"header\" translate>Header</label>\n <input\n id=\"header\"\n data-cy=\"configure-custom-column--header\"\n formControlName=\"header\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. Agent name' | translate\"\n [required]=\"true\"\n uniqueByPath\n [collection]=\"columns\"\n path=\"header\"\n [comparator]=\"comparator\"\n />\n <c8y-messages>\n <c8y-message\n name=\"uniqueByPath\"\n [text]=\"uniqueHeaderMsg\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <c8y-form-group>\n <label for=\"fragmentPath\" translate>Fragment path</label>\n <input\n id=\"fragmentPath\"\n data-cy=\"configure-custom-column--fragmentPath\"\n formControlName=\"path\"\n class=\"form-control\"\n autocomplete=\"off\"\n [placeholder]=\"'e.g. {{ example }}' | translate: { example: 'c8y_Agent.name' }\"\n />\n </c8y-form-group>\n <label class=\"c8y-switch\" [title]=\"'Add another column after saving this one' | translate\">\n <input type=\"checkbox\" formControlName=\"addAnother\" class=\"form-control\" />\n <span></span>\n <span translate>Add another column after saving this one</span>\n </label>\n </div>\n </div>\n\n <div class=\"modal-footer\">\n <button title=\"{{ 'Cancel' | translate }}\" class=\"btn btn-default\" (click)=\"modalRef.hide()\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n title=\"{{ 'Save' | translate }}\"\n class=\"btn btn-primary\"\n [disabled]=\"columnConfigForm.form.pristine || !columnConfigForm.form.valid\"\n (click)=\"addColumn()\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </form>\n</div>\n" }]
|
|
23758
|
-
}], ctorParameters: function () { return [{ type: i5.FormBuilder }, { type: i1$
|
|
23772
|
+
}], ctorParameters: function () { return [{ type: i5.FormBuilder }, { type: i1$8.BsModalRef }]; }, propDecorators: { form: [{
|
|
23759
23773
|
type: ViewChild,
|
|
23760
23774
|
args: ['columnConfigForm', { static: false }]
|
|
23761
23775
|
}], onAddCustomColumn: [{
|
|
@@ -25055,13 +25069,13 @@ class DataGridComponent {
|
|
|
25055
25069
|
: this.configurationStrategy.getContext()?.configFilter?.[configPart]) ?? true);
|
|
25056
25070
|
}
|
|
25057
25071
|
}
|
|
25058
|
-
DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DataGridComponent, deps: [{ token: DATA_GRID_CONFIGURATION_STRATEGY, optional: true }, { token: DataGridService }, { token: i1$
|
|
25072
|
+
DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DataGridComponent, deps: [{ token: DATA_GRID_CONFIGURATION_STRATEGY, optional: true }, { token: DataGridService }, { token: i1$5.DomSanitizer }, { token: i0.ComponentFactoryResolver }, { token: GainsightService }, { token: i1$8.BsModalService }, { token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25059
25073
|
DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DataGridComponent, selector: "c8y-data-grid", inputs: { title: "title", loadMoreItemsLabel: "loadMoreItemsLabel", loadingItemsLabel: "loadingItemsLabel", showSearch: "showSearch", refresh: "refresh", _columns: ["columns", "_columns"], _rows: ["rows", "_rows"], _pagination: ["pagination", "_pagination"], _infiniteScroll: ["infiniteScroll", "_infiniteScroll"], _serverSideDataCallback: ["serverSideDataCallback", "_serverSideDataCallback"], _selectable: ["selectable", "_selectable"], _selectionPrimaryKey: ["selectionPrimaryKey", "_selectionPrimaryKey"], _displayOptions: ["displayOptions", "_displayOptions"], _actionControls: ["actionControls", "_actionControls"], _bulkActionControls: ["bulkActionControls", "_bulkActionControls"], _headerActionControls: ["headerActionControls", "_headerActionControls"], searchText: "searchText", configureColumnsEnabled: "configureColumnsEnabled", showCounterWarning: "showCounterWarning" }, outputs: { rowMouseOver: "rowMouseOver", rowMouseLeave: "rowMouseLeave", rowClick: "rowClick", onConfigChange: "onConfigChange", onBeforeFilter: "onBeforeFilter", onBeforeSearch: "onBeforeSearch", onFilter: "onFilter", itemsSelect: "itemsSelect", onReload: "onReload", onAddCustomColumn: "onAddCustomColumn", onRemoveCustomColumn: "onRemoveCustomColumn", onColumnFilterReset: "onColumnFilterReset", onSort: "onSort", onPageSizeChange: "onPageSizeChange", onColumnReordered: "onColumnReordered", onColumnVisibilityChange: "onColumnVisibilityChange" }, host: { classAttribute: "d-contents" }, providers: [
|
|
25060
25074
|
{
|
|
25061
25075
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
25062
25076
|
useExisting: forwardRef(() => DataGridComponent)
|
|
25063
25077
|
}
|
|
25064
|
-
], queries: [{ propertyName: "columnRenderers", predicate: ColumnDirective }], viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scroll"], descendants: true, static: true }, { propertyName: "infiniteScrollContainer", first: true, predicate: ["infiniteScrollContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "thRefs", predicate: CdkHeaderCell, descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div\n #scroll\n class=\"table-data-grid-scroll\"\n [ngClass]=\"{ 'table-data-grid__overlay': (dataSource.loading$ | async) && !loadMoreComponent }\"\n>\n <div\n class=\"table-data-grid__loading--wrapper\"\n *ngIf=\"(dataSource.loading$ | async) && !loadMoreComponent\"\n >\n <div class=\"table-data-grid__loading--loader\">\n <c8y-progress-bar [message]=\"loadingItemsLabel\"></c8y-progress-bar>\n </div>\n </div>\n\n <div *ngIf=\"displayOptions.gridHeader\" class=\"table-data-grid-header separator large-padding\">\n <div class=\"h4\" [ngClass]=\"{ 'm-r-16': !!title }\">{{ title | translate }}</div>\n\n <ng-container *ngIf=\"displayOptions.filter\">\n <span *ngIf=\"!filteringApplied\">\n <span class=\"label label-default m-r-4\" translate>No filters</span>\n <small\n *ngIf=\"!!filteringLabelsParams.allItemsCount\"\n class=\"m-r-4\"\n ngNonBindable\n translate\n [translateParams]=\"filteringLabelsParams\"\n >\n {{ filteredItemsCount }} of {{ allItemsCount }} items\n </small>\n </span>\n <span *ngIf=\"filteringApplied\">\n <ng-container *ngIf=\"!!filteringLabelsParams.allItemsCount\">\n <span class=\"badge badge-info m-r-4\">\n {{ (dataSource.stats$ | async).filteredSize }}\n </span>\n <small ngNonBindable translate [translateParams]=\"filteringLabelsParams\">\n of {{ allItemsCount }} items\n </small>\n </ng-container>\n <button\n title=\"{{ 'Clear filters' | translate }}\"\n class=\"btn btn-sm btn-default m-l-8 m-r-4\"\n (click)=\"clearFilters()\"\n >\n {{ 'Clear filters' | translate }}\n </button>\n </span>\n\n <span class=\"hidden-xs hidden-sm\" *ngIf=\"displayOptions.filter\">\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n popover=\"{{ 'Click the column headers to apply filters.' | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n [attr.aria-label]=\"'Click the column headers to apply filters.' | translate\"\n data-cy=\"data-grid--help-filters\"\n >\n <i c8yIcon=\"question-circle-o\"></i>\n </button>\n </span>\n\n <span class=\"hidden-xs hidden-sm\" *ngIf=\"showCounterWarning\">\n <button\n class=\"btn-clean text-primary\"\n popover=\"{{\n 'The counter for the total number of items might be inaccurate.' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n aria-label=\"{{\n 'The counter for the total number of items might be inaccurate.' | translate\n }}\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n </span>\n </ng-container>\n\n <div class=\"m-l-auto\">\n <div class=\"btnbar d-flex a-i-center\">\n <ng-container *ngFor=\"let headerActionControl of headerActionControls\">\n <ng-container *ngIf=\"headerActionControl | isControlVisible\">\n <ng-container *ngIf=\"!headerActionControl.template; else customTemplate\">\n <button\n title=\"{{ headerActionControl.text | translate }}\"\n class=\"btnbar-btn btn-link\"\n (click)=\"headerActionControl.callback()\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CUSTOM_ACTION,\n customActionName: headerActionControl.text,\n type: headerActionControl.type\n }\"\n >\n <i [c8yIcon]=\"headerActionControl.icon\" class=\"m-r-4\"></i>\n <span>{{ headerActionControl.text | translate }}</span>\n </button>\n </ng-container>\n <ng-template #customTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n headerActionControl.template;\n context: { headerActionControl: headerActionControl }\n \"\n ></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <div\n *ngIf=\"configureColumnsEnabled\"\n class=\"dropdown\"\n dropdown\n #ddConfigureColumns=\"bs-dropdown\"\n [cdkTrapFocus]=\"ddConfigureColumns.isOpen\"\n [insideClick]=\"true\"\n placement=\"bottom left\"\n >\n <button\n title=\"{{ 'Configure columns' | translate }}\"\n data-cy=\"data-grid--custom-column-btn\"\n class=\"btnbar-btn\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"columns\" class=\"m-r-4\"></i>\n <span>{{ 'Configure columns' | translate }}</span>\n </button>\n\n <ul\n class=\"dropdown-menu data-grid__dropdown\"\n *dropdownMenu\n (click)=\"$event.stopPropagation()\"\n >\n <li class=\"bg-level-0\">\n <div\n class=\"list-group m-0\"\n cdkDropList\n (cdkDropListDropped)=\"onColumnDrop($event)\"\n >\n <div\n *ngFor=\"let column of columns\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n >\n <ng-container *ngIf=\"!column.positionFixed\">\n <div class=\"list-group-item draggable-after p-0 a-i-center\">\n <label\n title=\"{{ (column.header | translate) || column.name }}\"\n [attr.data-cy]=\"'data-grid--custom-column-header-' + column.header\"\n class=\"c8y-checkbox p-l-16\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"column.visible\"\n (change)=\"\n updateGridColumnsSize(); emitConfigChange('changeColumnVisibility')\n \"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CHANGE_VISIBILITY,\n column: column.name,\n visible: !column.visible\n }\"\n />\n <span></span>\n <span>{{ (column.header | translate) || column.name }}</span>\n </label>\n <button\n *ngIf=\"column.custom\"\n class=\"btn btn-dot showOnHover max-width-fit a-i-center\"\n tooltip=\"{{ 'Remove`column,verb`' | translate }}\"\n [attr.aria-label]=\"'Remove`column,verb`' | translate\"\n placement=\"left\"\n container=\"body\"\n (click)=\"removeCustomColumn(poConfirm, column, ddConfigureColumns)\"\n >\n <c8y-popover-confirm\n [placement]=\"'left'\"\n [title]=\"'Confirm removal' | translate\"\n triggers=\"focus\"\n #poConfirm\n ></c8y-popover-confirm>\n <i c8yIcon=\"minus-circle\" data-cy=\"data-grid--custom-column-remove-btn\"></i>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </li>\n <li *ngIf=\"isConfigContextKnown\" class=\"p-8 sticky-bottom separator-top\">\n <button\n title=\"{{ 'Add custom column' | translate }}\"\n class=\"btn btn-default btn-block\"\n data-cy=\"data-grid--add-custom-column\"\n (click)=\"openCustomColumnModal(); ddConfigureColumns.hide()\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i>\n <span>{{ 'Add custom column' | translate }}</span>\n </button>\n </li>\n </ul>\n </div>\n\n <button\n title=\"{{ 'Reload' | translate }}\"\n data-cy=\"data-grid--reload-btn\"\n class=\"btnbar-btn btn-link\"\n [disabled]=\"dataSource.loading$ | async\"\n (click)=\"clickReload()\"\n >\n <i c8yIcon=\"refresh\" class=\"m-r-4\"></i>\n <span>{{ 'Reload' | translate }}</span>\n </button>\n\n <div\n *ngIf=\"!serverSideDataCallback || showSearch\"\n class=\"input-group input-group-search m-l-sm-16\"\n >\n <input\n type=\"search\"\n class=\"form-control\"\n placeholder=\"{{ 'Search\u2026' | translate }}\"\n [ngModel]=\"searchText\"\n (input)=\"searchText$.emit($event.target.value)\"\n />\n <div class=\"input-group-addon\">\n <i c8yIcon=\"search\" *ngIf=\"searchText.length === 0\"></i>\n <i\n c8yIcon=\"times\"\n class=\"pointer\"\n *ngIf=\"searchText.length > 0\"\n (click)=\"searchText = ''; searchText$.emit('')\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.CLEAR_SEARCH }\"\n ></i>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"table-data-grid-header-bulk-actions animated slideInDown fast\"\n *ngIf=\"selectedItemIds.length !== 0\"\n >\n <h4>\n <span ngNonBindable translate [translateParams]=\"{ count: selectedItemIds.length }\">\n {{ count }} selected item(s).\n </span>\n <br class=\"visible-xs\" />\n <small *ngIf=\"!serverSideDataCallback && selectedItemIds.length >= pagination.pageSize\">\n <a\n (click)=\"setAllItemsSelected(true)\"\n class=\"interact\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.SELECT_ALL_ITEMS }\"\n >\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ count: (dataSource.stats$ | async).filteredSize }\"\n >\n Select all {{ count }} items\n </span>\n </a>\n </small>\n </h4>\n <div class=\"m-l-auto\">\n <div class=\"btnbar d-flex\">\n <ng-container *ngFor=\"let bulkActionControl of bulkActionControls\">\n <ng-container\n *ngIf=\"bulkActionControl | isControlVisible: selectedItemIds\"\n [ngSwitch]=\"bulkActionControl.type\"\n >\n <button\n title=\"{{ 'Export' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Export\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.BULK_EXPORT }\"\n >\n <i c8yIcon=\"sign-out\"></i>\n <span>{{ 'Export' | translate }}</span>\n </button>\n\n <button\n title=\"{{ 'Delete' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.BULK_DELETE }\"\n >\n <i c8yIcon=\"delete\"></i>\n <span>{{ 'Delete' | translate }}</span>\n </button>\n\n <button\n title=\"{{ bulkActionControl.text | translate }}\"\n *ngSwitchDefault\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.BULK_CUSTOM_ACTION,\n customActionName: bulkActionControl.text\n }\"\n >\n <i c8yIcon=\"{{ bulkActionControl.icon }}\"></i>\n <span>{{ bulkActionControl.text | translate }}</span>\n </button>\n </ng-container>\n </ng-container>\n\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btnbar-btn\"\n (click)=\"cancel()\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.BULK_CANCEL\n }\"\n >\n <i c8yIcon=\"times\"></i>\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <table\n class=\"table table-hover table-filtered-sorted table-data-grid large-padding\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackByName\"\n [class.table-striped]=\"displayOptions.striped\"\n [class.table-bordered]=\"displayOptions.bordered\"\n [class.table-data-grid-with-checkboxes]=\"selectable\"\n [class.table-data-grid-with-actions]=\"actionControls.length > 0\"\n [style.grid-template-columns]=\"styles.gridTemplateColumns\"\n (mousemove)=\"resizeHandleContainerMouseMove$.emit($event)\"\n (mouseup)=\"resizeHandleContainerMouseUp$.emit($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let i = index; trackBy: trackByName\"\n [cdkColumnDef]=\"column.name\"\n >\n <ng-container [ngSwitch]=\"column.name\">\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <th cdk-header-cell *cdkHeaderCellDef data-type=\"icon\">\n <div>\n <label class=\"c8y-checkbox\">\n <input\n [attr.aria-label]=\"'Selected' | translate\"\n type=\"checkbox\"\n [checked]=\"currentPageSelectionState.allSelected\"\n [indeterminate]=\"\n !(\n currentPageSelectionState.allSelected ||\n currentPageSelectionState.allDeselected\n )\n \"\n (change)=\"setAllItemsInCurrentPageSelected($event.target.checked)\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.SELECT_ALL_ITEMS }\"\n />\n <span></span>\n </label>\n </div>\n </th>\n\n <td cdk-cell *cdkCellDef=\"let row\" data-type=\"icon\">\n <label class=\"c8y-checkbox\">\n <input\n [attr.aria-label]=\"'Selected' | translate\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(row)\"\n (change)=\"setItemsSelected([row], $event.target.checked)\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.SELECT_ITEM,\n id: row.id\n }\"\n />\n <span></span>\n </label>\n </td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'actions'\">\n <th cdk-header-cell *cdkHeaderCellDef data-type=\"icon\">\n <p class=\"text-medium sr-only\">{{ 'Actions' | translate }}</p>\n </th>\n\n <td cdk-cell *cdkCellDef=\"let row\" data-type=\"icon\">\n <ng-container *ngIf=\"actionControls.length <= 2\">\n <ng-container *ngFor=\"let actionControl of actionControls\">\n <ng-container\n *ngIf=\"actionControl | isControlVisible: row\"\n [ngSwitch]=\"actionControl.type\"\n >\n <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n class=\"btn btn-dot\"\n tooltip=\"{{ 'Edit' | translate }}\"\n [attr.aria-label]=\"'Edit' | translate\"\n [delay]=\"500\"\n container=\"body\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.EDIT_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"pencil\"></i>\n </button>\n\n <button\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btn btn-dot btn-dot--danger showOnHover\"\n tooltip=\"{{ 'Delete' | translate }}\"\n data-cy=\"c8y-data-grid--remove-button-in-row\"\n [attr.aria-label]=\"'Delete' | translate\"\n [delay]=\"500\"\n container=\"body\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.DELETE_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"delete\"></i>\n </button>\n\n <button\n type=\"button\"\n *ngSwitchDefault\n class=\"btn btn-dot\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CUSTOM_ACTION_ITEM,\n customActionName: actionControl.text,\n id: row.id\n }\"\n tooltip=\"{{ (actionControl.icon ? actionControl.text : '') | translate }}\"\n [attr.aria-label]=\"(actionControl.icon ? actionControl.text : '') | translate\"\n container=\"body\"\n [delay]=\"500\"\n >\n <i *ngIf=\"actionControl.icon\" c8yIcon=\"{{ actionControl.icon }}\"></i>\n <span *ngIf=\"!actionControl.icon\">{{ actionControl.text | translate }}</span>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div [ngClass]=\"{ 'm-l-auto overflow-visible': actionControls.length > 2 }\">\n <div\n *ngIf=\"actionControls.length > 2\"\n class=\"dropdown\"\n dropdown\n container=\"body\"\n placement=\"bottom right\"\n >\n <button\n title=\"{{ 'Actions' | translate }}\"\n type=\"button\"\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <li *ngFor=\"let actionControl of actionControls\">\n <ng-container\n *ngIf=\"actionControl | isControlVisible: row\"\n [ngSwitch]=\"actionControl.type\"\n >\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Edit\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.EDIT_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n <button\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.DELETE_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Delete' | translate }}\n </button>\n <button\n title=\"{{ 'Export' | translate }}\"\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Export\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.EXPORT_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Export' | translate }}\n </button>\n <button\n title=\"{{ actionControl.text | translate }}\"\n type=\"button\"\n *ngSwitchDefault\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CUSTOM_ACTION_ITEM,\n customActionName: actionControl.text,\n id: row.id\n }\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n {{ actionControl.text | translate }}\n </button>\n </ng-container>\n </li>\n </ul>\n </div>\n </div>\n </td>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <th\n cdk-header-cell\n *cdkHeaderCellDef\n [ngClass]=\"column.headerCSSClassName\"\n [attr.data-type]=\"column.dataType\"\n [class.sorted]=\"column.sortOrder\"\n [class.filtered]=\"column | map: isColumnFilteringApplied\"\n [class.hidden]=\"!column.visible\"\n >\n <div *ngIf=\"!column.filterable\" [title]=\"(column.header | translate) || column.name\">\n <ng-container\n *ngIf=\"\n [\n {\n columnName: column.name,\n value: (column.header | translate) || column.name\n }\n ] | map: getHeaderCellRendererSpec:this as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n </div>\n\n <!-- isDropDownPlacedRight to be removed when columns are transformed to observables. -->\n <div\n *ngIf=\"column.filterable\"\n class=\"dropdown\"\n dropdown\n #gridHeaderDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"gridHeaderDropdown.isOpen\"\n placement=\"bottom {{ isDropDownPlacedRight(column) ? 'right' : 'left' }}\"\n [insideClick]=\"true\"\n >\n <button\n type=\"button\"\n class=\"btn-header\"\n dropdownToggle\n [title]=\"(column.header | translate) || column.name\"\n [attr.data-cy]=\"'data-grid--header-btn--' + column.header\"\n aria-haspopup=\"true\"\n >\n <ng-container\n *ngIf=\"\n [\n {\n columnName: column.name,\n value: (column.header | translate) || column.name\n }\n ] | map: getHeaderCellRendererSpec:this as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n <i c8yIcon=\"filter\" title=\"{{ 'Filter' | translate }}\"></i>\n </button>\n\n <!-- isDropDownPlacedRight to be removed when columns are transformed to observables. -->\n <ul\n *dropdownMenu\n class=\"dropdown-menu\"\n [ngClass]=\"{ 'dropdown-menu-right-grid': isDropDownPlacedRight(column) }\"\n (click)=\"$event.stopPropagation()\"\n >\n <li class=\"data-grid__dropdown\">\n <ng-container\n *ngIf=\"\n [\n {\n column: column,\n dropdown: gridHeaderDropdown\n }\n ] | map: getFilteringFormRendererSpec:this as filteringFormRendererSpec\n \"\n >\n <c8y-filtering-form-renderer\n [spec]=\"filteringFormRendererSpec\"\n ></c8y-filtering-form-renderer>\n </ng-container>\n </li>\n </ul>\n </div>\n\n <button\n *ngIf=\"column.sortable\"\n class=\"btn-sort\"\n [title]=\"sortColumnTitle | translate: { name: column.header | translate }\"\n type=\"button\"\n (click)=\"changeSortOrder(column.name)\"\n data-cy=\"change-sort-order\"\n >\n <ng-container [ngSwitch]=\"column.sortOrder\">\n <i *ngSwitchCase=\"'asc'\" c8yIcon=\"long-arrow-up\"></i>\n <i *ngSwitchCase=\"'desc'\" c8yIcon=\"long-arrow-down\"></i>\n <i *ngSwitchDefault c8yIcon=\"exchange\"></i>\n </ng-container>\n </button>\n\n <span\n *ngIf=\"column.resizable\"\n class=\"resize-handle\"\n (mousedown)=\"\n resizeHandleMouseDown$.emit({ event: $event, targetColumnName: column.name })\n \"\n ></span>\n </th>\n\n <td\n cdk-cell\n *cdkCellDef=\"let row\"\n [ngClass]=\"column.cellCSSClassName\"\n [attr.data-cell-title]=\"column.header | translate\"\n [attr.data-cy]=\"'data-grid--' + column.header\"\n [attr.data-type]=\"column.dataType\"\n [class.hidden]=\"!column.visible\"\n >\n <ng-container\n *ngIf=\"\n [\n {\n value: resolveCellValue(row, column.path),\n row: row,\n columnName: column.name\n }\n ] | map: getCellRendererSpec:this as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container cdkColumnDef=\"infiniteScrollFooter\">\n <td cdk-footer-cell *cdkFooterCellDef [style.grid-column]=\"styles.gridInfiniteScrollColumn\">\n <template #infiniteScrollContainer></template>\n </td>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"columnNames\"></tr>\n\n <tr\n data-cy=\"c8y-data-grid--row-in-data-grid\"\n cdk-row\n *cdkRowDef=\"let row; columns: columnNames\"\n (mouseover)=\"rowMouseOver.emit(row)\"\n (mouseleave)=\"rowMouseLeave.emit(row)\"\n (click)=\"rowClick.emit(row)\"\n ></tr>\n\n <ng-container>\n <tr\n [ngClass]=\"{ hidden: !infiniteScroll }\"\n cdk-footer-row\n *cdkFooterRowDef=\"['infiniteScrollFooter']\"\n ></tr>\n </ng-container>\n </table>\n\n <div\n class=\"d-flex m-0 p-t-40 p-b-40\"\n *ngIf=\"!(dataSource.loading$ | async) && (dataSource.stats$ | async).filteredSize === 0\"\n >\n <div class=\"col-lg-3 col-sm-4 m-l-auto m-r-auto\">\n <ng-content select=\"c8y-ui-empty-state, .c8y-empty-state\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"pagination && !infiniteScroll\" class=\"table-data-grid-footer separator large-padding\">\n <div class=\"col-sm-4 no-gutter\">\n <div\n *ngIf=\"(dataSource.stats$ | async).currentPageSize > 0\"\n class=\"counter p-t-8 p-b-8\"\n data-cy=\"data-grid--counter\"\n >\n <span class=\"text-muted\" ngNonBindable translate [translateParams]=\"paginationLabelParams\">\n {{ pageFirstItemIdx }} - {{ pageLastItemIdx }} of {{ itemsTotal }}\n </span>\n </div>\n </div>\n\n <div class=\"col-sm-4 no-gutter text-center\">\n <div\n *ngIf=\"(dataSource.stats$ | async).filteredSize > minPossiblePageSize\"\n class=\"form-group form-inline p-t-8 p-b-8\"\n >\n <label class=\"m-r-4\" for=\"filteredSize\">{{ 'Items per page' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"filteredSize\"\n data-cy=\"data-grid--pagesize-options\"\n [ngModel]=\"pagination.pageSize\"\n (ngModelChange)=\"\n updatePagination({ itemsPerPage: $event, page: pagination.currentPage })\n \"\n >\n <option *ngFor=\"let pageSize of possiblePageSizes\" [ngValue]=\"pageSize\">\n {{ pageSize }}\n </option>\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"col-sm-4 no-gutter text-right\">\n <pagination\n *ngIf=\"(dataSource.stats$ | async).filteredSize > 0\"\n [class.hidden]=\"hidePagination$ | async\"\n [ngModel]=\"pagination.currentPage\"\n (pageChanged)=\"updatePagination($event)\"\n [totalItems]=\"(dataSource.stats$ | async).filteredSize\"\n [itemsPerPage]=\"pagination.pageSize\"\n (numPages)=\"totalPagesCount$.next($event)\"\n [maxSize]=\"5\"\n [boundaryLinks]=\"false\"\n previousText=\"Previous\"\n nextText=\"Next\"\n class=\"p-t-8 p-b-8\"\n ></pagination>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i7.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i7.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i7.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i7.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i7.CdkFooterCellDef, selector: "[cdkFooterCellDef]" }, { kind: "directive", type: i7.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["sticky", "cdkColumnDef", "stickyEnd"] }, { kind: "directive", type: i7.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i7.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i7.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "directive", type: i7.CdkFooterCell, selector: "cdk-footer-cell, td[cdk-footer-cell]" }, { kind: "component", type: i7.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i7.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: i7.CdkFooterRow, selector: "cdk-footer-row, tr[cdk-footer-row]" }, { kind: "directive", type: i7.CdkFooterRowDef, selector: "[cdkFooterRowDef]", inputs: ["cdkFooterRowDef", "cdkFooterRowDefSticky"] }, { kind: "directive", type: i5$3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5$3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ProgressBarComponent, selector: "c8y-progress-bar", inputs: ["message", "progress"] }, { kind: "component", type: PopoverConfirmComponent, selector: "c8y-popover-confirm", inputs: ["buttons", "message", "title", "isOpen", "containerClass", "placement", "outsideClick"] }, { kind: "directive", type: i1$7.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$7.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$7.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i2$1.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i1$8.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i17.PaginationComponent, selector: "pagination", inputs: ["align", "maxSize", "boundaryLinks", "directionLinks", "firstText", "previousText", "nextText", "lastText", "rotate", "pageBtnClass", "disabled", "customPageTemplate", "customNextTemplate", "customPreviousTemplate", "customFirstTemplate", "customLastTemplate", "itemsPerPage", "totalItems"], outputs: ["numPages", "pageChanged"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: CellRendererComponent, selector: "c8y-cell-renderer", inputs: ["spec"] }, { kind: "component", type: FilteringFormRendererComponent, selector: "c8y-filtering-form-renderer", inputs: ["spec"] }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: MapFunctionPipe, name: "map" }, { kind: "pipe", type: IsControlVisiblePipe, name: "isControlVisible" }] });
|
|
25078
|
+
], queries: [{ propertyName: "columnRenderers", predicate: ColumnDirective }], viewQueries: [{ propertyName: "scrollContainer", first: true, predicate: ["scroll"], descendants: true, static: true }, { propertyName: "infiniteScrollContainer", first: true, predicate: ["infiniteScrollContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "thRefs", predicate: CdkHeaderCell, descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<div\n #scroll\n class=\"table-data-grid-scroll\"\n [ngClass]=\"{ 'table-data-grid__overlay': (dataSource.loading$ | async) && !loadMoreComponent }\"\n>\n <div\n class=\"table-data-grid__loading--wrapper\"\n *ngIf=\"(dataSource.loading$ | async) && !loadMoreComponent\"\n >\n <div class=\"table-data-grid__loading--loader\">\n <c8y-progress-bar [message]=\"loadingItemsLabel\"></c8y-progress-bar>\n </div>\n </div>\n\n <div *ngIf=\"displayOptions.gridHeader\" class=\"table-data-grid-header separator large-padding\">\n <div class=\"h4\" [ngClass]=\"{ 'm-r-16': !!title }\">{{ title | translate }}</div>\n\n <ng-container *ngIf=\"displayOptions.filter\">\n <span *ngIf=\"!filteringApplied\">\n <span class=\"label label-default m-r-4\" translate>No filters</span>\n <small\n *ngIf=\"!!filteringLabelsParams.allItemsCount\"\n class=\"m-r-4\"\n ngNonBindable\n translate\n [translateParams]=\"filteringLabelsParams\"\n >\n {{ filteredItemsCount }} of {{ allItemsCount }} items\n </small>\n </span>\n <span *ngIf=\"filteringApplied\">\n <ng-container *ngIf=\"!!filteringLabelsParams.allItemsCount\">\n <span class=\"badge badge-info m-r-4\">\n {{ (dataSource.stats$ | async).filteredSize }}\n </span>\n <small ngNonBindable translate [translateParams]=\"filteringLabelsParams\">\n of {{ allItemsCount }} items\n </small>\n </ng-container>\n <button\n title=\"{{ 'Clear filters' | translate }}\"\n class=\"btn btn-sm btn-default m-l-8 m-r-4\"\n (click)=\"clearFilters()\"\n >\n {{ 'Clear filters' | translate }}\n </button>\n </span>\n\n <span class=\"hidden-xs hidden-sm\" *ngIf=\"displayOptions.filter\">\n <button\n class=\"btn-help btn-help--sm\"\n type=\"button\"\n popover=\"{{ 'Click the column headers to apply filters.' | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n [attr.aria-label]=\"'Click the column headers to apply filters.' | translate\"\n data-cy=\"data-grid--help-filters\"\n >\n <i c8yIcon=\"question-circle-o\"></i>\n </button>\n </span>\n\n <span class=\"hidden-xs hidden-sm\" *ngIf=\"showCounterWarning\">\n <button\n class=\"btn-clean text-primary\"\n popover=\"{{\n 'The counter for the total number of items might be inaccurate.' | translate\n }}\"\n placement=\"right\"\n triggers=\"focus\"\n aria-label=\"{{\n 'The counter for the total number of items might be inaccurate.' | translate\n }}\"\n >\n <i c8yIcon=\"warning\"></i>\n </button>\n </span>\n </ng-container>\n\n <div class=\"m-l-auto\">\n <div class=\"btnbar d-flex a-i-center\">\n <ng-container *ngFor=\"let headerActionControl of headerActionControls\">\n <ng-container *ngIf=\"headerActionControl | isControlVisible\">\n <ng-container *ngIf=\"!headerActionControl.template; else customTemplate\">\n <button\n title=\"{{ headerActionControl.text | translate }}\"\n class=\"btnbar-btn btn-link\"\n (click)=\"headerActionControl.callback()\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CUSTOM_ACTION,\n customActionName: headerActionControl.text,\n type: headerActionControl.type\n }\"\n >\n <i [c8yIcon]=\"headerActionControl.icon\" class=\"m-r-4\"></i>\n <span>{{ headerActionControl.text | translate }}</span>\n </button>\n </ng-container>\n <ng-template #customTemplate>\n <ng-container\n *ngTemplateOutlet=\"\n headerActionControl.template;\n context: { headerActionControl: headerActionControl }\n \"\n ></ng-container>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <div\n *ngIf=\"configureColumnsEnabled\"\n class=\"dropdown\"\n dropdown\n #ddConfigureColumns=\"bs-dropdown\"\n [cdkTrapFocus]=\"ddConfigureColumns.isOpen\"\n [insideClick]=\"true\"\n placement=\"bottom left\"\n >\n <button\n title=\"{{ 'Configure columns' | translate }}\"\n data-cy=\"data-grid--custom-column-btn\"\n class=\"btnbar-btn\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"columns\" class=\"m-r-4\"></i>\n <span>{{ 'Configure columns' | translate }}</span>\n </button>\n\n <ul\n class=\"dropdown-menu data-grid__dropdown\"\n *dropdownMenu\n (click)=\"$event.stopPropagation()\"\n >\n <li class=\"bg-level-0\">\n <div\n class=\"list-group m-0\"\n cdkDropList\n (cdkDropListDropped)=\"onColumnDrop($event)\"\n >\n <div\n *ngFor=\"let column of columns\"\n cdkDrag\n cdkDragLockAxis=\"y\"\n >\n <ng-container *ngIf=\"!column.positionFixed\">\n <div class=\"list-group-item draggable-after p-0 a-i-center\">\n <label\n title=\"{{ (column.header | translate) || column.name }}\"\n [attr.data-cy]=\"'data-grid--custom-column-header-' + column.header\"\n class=\"c8y-checkbox p-l-16\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"column.visible\"\n (change)=\"\n updateGridColumnsSize(); emitConfigChange('changeColumnVisibility')\n \"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CHANGE_VISIBILITY,\n column: column.name,\n visible: !column.visible\n }\"\n />\n <span></span>\n <span>{{ (column.header | translate) || column.name }}</span>\n </label>\n <button\n *ngIf=\"column.custom\"\n class=\"btn btn-dot showOnHover max-width-fit a-i-center\"\n tooltip=\"{{ 'Remove`column,verb`' | translate }}\"\n [attr.aria-label]=\"'Remove`column,verb`' | translate\"\n placement=\"left\"\n container=\"body\"\n (click)=\"removeCustomColumn(poConfirm, column, ddConfigureColumns)\"\n >\n <c8y-popover-confirm\n [placement]=\"'left'\"\n [title]=\"'Confirm removal' | translate\"\n triggers=\"focus\"\n #poConfirm\n ></c8y-popover-confirm>\n <i c8yIcon=\"minus-circle\" data-cy=\"data-grid--custom-column-remove-btn\"></i>\n </button>\n </div>\n </ng-container>\n </div>\n </div>\n </li>\n <li *ngIf=\"isConfigContextKnown\" class=\"p-8 sticky-bottom separator-top\">\n <button\n title=\"{{ 'Add custom column' | translate }}\"\n class=\"btn btn-default btn-block\"\n data-cy=\"data-grid--add-custom-column\"\n (click)=\"openCustomColumnModal(); ddConfigureColumns.hide()\"\n >\n <i c8yIcon=\"plus-circle\" class=\"m-r-4\"></i>\n <span>{{ 'Add custom column' | translate }}</span>\n </button>\n </li>\n </ul>\n </div>\n\n <button\n title=\"{{ 'Reload' | translate }}\"\n data-cy=\"data-grid--reload-btn\"\n class=\"btnbar-btn btn-link\"\n [disabled]=\"dataSource.loading$ | async\"\n (click)=\"clickReload()\"\n >\n <i c8yIcon=\"refresh\" class=\"m-r-4\"></i>\n <span>{{ 'Reload' | translate }}</span>\n </button>\n\n <div\n *ngIf=\"!serverSideDataCallback || showSearch\"\n class=\"input-group input-group-search m-l-sm-16\"\n >\n <input\n type=\"search\"\n class=\"form-control\"\n placeholder=\"{{ 'Search\u2026' | translate }}\"\n [ngModel]=\"searchText\"\n (input)=\"searchText$.emit($event.target.value)\"\n />\n <div class=\"input-group-addon\">\n <i c8yIcon=\"search\" *ngIf=\"searchText.length === 0\"></i>\n <i\n c8yIcon=\"times\"\n class=\"pointer\"\n *ngIf=\"searchText.length > 0\"\n (click)=\"searchText = ''; searchText$.emit('')\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.CLEAR_SEARCH }\"\n ></i>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"table-data-grid-header-bulk-actions animated slideInDown fast\"\n *ngIf=\"selectedItemIds.length !== 0\"\n >\n <h4>\n <span ngNonBindable translate [translateParams]=\"{ count: selectedItemIds.length }\">\n {{ count }} selected item(s).\n </span>\n <br class=\"visible-xs\" />\n <small *ngIf=\"!serverSideDataCallback && selectedItemIds.length >= pagination.pageSize\">\n <a\n (click)=\"setAllItemsSelected(true)\"\n class=\"interact\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.SELECT_ALL_ITEMS }\"\n >\n <span\n ngNonBindable\n translate\n [translateParams]=\"{ count: (dataSource.stats$ | async).filteredSize }\"\n >\n Select all {{ count }} items\n </span>\n </a>\n </small>\n </h4>\n <div class=\"m-l-auto\">\n <div class=\"btnbar d-flex\">\n <ng-container *ngFor=\"let bulkActionControl of bulkActionControls\">\n <ng-container\n *ngIf=\"bulkActionControl | isControlVisible: selectedItemIds\"\n [ngSwitch]=\"bulkActionControl.type\"\n >\n <button\n title=\"{{ 'Export' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Export\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.BULK_EXPORT }\"\n >\n <i c8yIcon=\"sign-out\"></i>\n <span>{{ 'Export' | translate }}</span>\n </button>\n\n <button\n title=\"{{ 'Delete' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.BULK_DELETE }\"\n >\n <i c8yIcon=\"delete\"></i>\n <span>{{ 'Delete' | translate }}</span>\n </button>\n\n <button\n title=\"{{ bulkActionControl.text | translate }}\"\n *ngSwitchDefault\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.BULK_CUSTOM_ACTION,\n customActionName: bulkActionControl.text\n }\"\n >\n <i c8yIcon=\"{{ bulkActionControl.icon }}\"></i>\n <span>{{ bulkActionControl.text | translate }}</span>\n </button>\n </ng-container>\n </ng-container>\n\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btnbar-btn\"\n (click)=\"cancel()\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.BULK_CANCEL\n }\"\n >\n <i c8yIcon=\"times\"></i>\n <span>{{ 'Cancel' | translate }}</span>\n </button>\n </div>\n </div>\n </div>\n </div>\n\n <table\n class=\"table table-hover table-filtered-sorted table-data-grid large-padding\"\n cdk-table\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackByName\"\n [class.table-striped]=\"displayOptions.striped\"\n [class.table-bordered]=\"displayOptions.bordered\"\n [class.table-data-grid-with-checkboxes]=\"selectable\"\n [class.table-data-grid-with-actions]=\"actionControls.length > 0\"\n [style.grid-template-columns]=\"styles.gridTemplateColumns\"\n (mousemove)=\"resizeHandleContainerMouseMove$.emit($event)\"\n (mouseup)=\"resizeHandleContainerMouseUp$.emit($event)\"\n >\n <ng-container\n *ngFor=\"let column of columns; let i = index; trackBy: trackByName\"\n [cdkColumnDef]=\"column.name\"\n >\n <ng-container [ngSwitch]=\"column.name\">\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <th cdk-header-cell *cdkHeaderCellDef data-type=\"icon\">\n <div>\n <label class=\"c8y-checkbox\">\n <input\n [attr.aria-label]=\"'Selected' | translate\"\n type=\"checkbox\"\n [checked]=\"currentPageSelectionState.allSelected\"\n [indeterminate]=\"\n !(\n currentPageSelectionState.allSelected ||\n currentPageSelectionState.allDeselected\n )\n \"\n (change)=\"setAllItemsInCurrentPageSelected($event.target.checked)\"\n c8yProductExperience\n inherit\n [actionData]=\"{ action: PX_ACTIONS.SELECT_ALL_ITEMS }\"\n />\n <span></span>\n </label>\n </div>\n </th>\n\n <td cdk-cell *cdkCellDef=\"let row\" data-type=\"icon\">\n <label class=\"c8y-checkbox\">\n <input\n [attr.aria-label]=\"'Selected' | translate\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(row)\"\n (change)=\"setItemsSelected([row], $event.target.checked)\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.SELECT_ITEM,\n id: row.id\n }\"\n />\n <span></span>\n </label>\n </td>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'actions'\">\n <th cdk-header-cell *cdkHeaderCellDef data-type=\"icon\">\n <p class=\"text-medium sr-only\">{{ 'Actions' | translate }}</p>\n </th>\n\n <td cdk-cell *cdkCellDef=\"let row\" data-type=\"icon\">\n <ng-container *ngIf=\"actionControls.length <= 2\">\n <ng-container *ngFor=\"let actionControl of actionControls\">\n <ng-container\n *ngIf=\"actionControl | isControlVisible: row\"\n [ngSwitch]=\"actionControl.type\"\n >\n <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n class=\"btn btn-dot\"\n tooltip=\"{{ 'Edit' | translate }}\"\n [attr.aria-label]=\"'Edit' | translate\"\n [delay]=\"500\"\n container=\"body\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.EDIT_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"pencil\"></i>\n </button>\n\n <button\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btn btn-dot btn-dot--danger showOnHover\"\n tooltip=\"{{ 'Delete' | translate }}\"\n data-cy=\"c8y-data-grid--remove-button-in-row\"\n [attr.aria-label]=\"'Delete' | translate\"\n [delay]=\"500\"\n container=\"body\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.DELETE_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"delete\"></i>\n </button>\n\n <button\n type=\"button\"\n *ngSwitchDefault\n class=\"btn btn-dot\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CUSTOM_ACTION_ITEM,\n customActionName: actionControl.text,\n id: row.id\n }\"\n tooltip=\"{{ (actionControl.icon ? actionControl.text : '') | translate }}\"\n [attr.aria-label]=\"(actionControl.icon ? actionControl.text : '') | translate\"\n container=\"body\"\n [delay]=\"500\"\n >\n <i *ngIf=\"actionControl.icon\" c8yIcon=\"{{ actionControl.icon }}\"></i>\n <span *ngIf=\"!actionControl.icon\">{{ actionControl.text | translate }}</span>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div [ngClass]=\"{ 'm-l-auto overflow-visible': actionControls.length > 2 }\">\n <div\n *ngIf=\"actionControls.length > 2\"\n class=\"dropdown\"\n dropdown\n container=\"body\"\n placement=\"bottom right\"\n >\n <button\n title=\"{{ 'Actions' | translate }}\"\n type=\"button\"\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <li *ngFor=\"let actionControl of actionControls\">\n <ng-container\n *ngIf=\"actionControl | isControlVisible: row\"\n [ngSwitch]=\"actionControl.type\"\n >\n <button\n title=\"{{ 'Edit' | translate }}\"\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Edit\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.EDIT_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n <button\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.DELETE_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"delete\"></i>\n {{ 'Delete' | translate }}\n </button>\n <button\n title=\"{{ 'Export' | translate }}\"\n type=\"button\"\n *ngSwitchCase=\"builtInActionType.Export\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.EXPORT_ITEM,\n id: row.id\n }\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Export' | translate }}\n </button>\n <button\n title=\"{{ actionControl.text | translate }}\"\n type=\"button\"\n *ngSwitchDefault\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n c8yProductExperience\n inherit\n [actionData]=\"{\n action: PX_ACTIONS.CUSTOM_ACTION_ITEM,\n customActionName: actionControl.text,\n id: row.id\n }\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n {{ actionControl.text | translate }}\n </button>\n </ng-container>\n </li>\n </ul>\n </div>\n </div>\n </td>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <th\n cdk-header-cell\n *cdkHeaderCellDef\n [ngClass]=\"column.headerCSSClassName\"\n [attr.data-type]=\"column.dataType\"\n [class.sorted]=\"column.sortOrder\"\n [class.filtered]=\"column | map: isColumnFilteringApplied\"\n [class.hidden]=\"!column.visible\"\n >\n <div *ngIf=\"!column.filterable\" [title]=\"(column.header | translate) || column.name\">\n <ng-container\n *ngIf=\"\n [\n {\n columnName: column.name,\n value: (column.header | translate) || column.name\n }\n ] | map: getHeaderCellRendererSpec:this as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n </div>\n\n <!-- isDropDownPlacedRight to be removed when columns are transformed to observables. -->\n <div\n *ngIf=\"column.filterable\"\n class=\"dropdown\"\n dropdown\n #gridHeaderDropdown=\"bs-dropdown\"\n [cdkTrapFocus]=\"gridHeaderDropdown.isOpen\"\n placement=\"bottom {{ isDropDownPlacedRight(column) ? 'right' : 'left' }}\"\n [insideClick]=\"true\"\n >\n <button\n type=\"button\"\n class=\"btn-header\"\n dropdownToggle\n [title]=\"(column.header | translate) || column.name\"\n [attr.data-cy]=\"'data-grid--header-btn--' + column.header\"\n aria-haspopup=\"true\"\n >\n <ng-container\n *ngIf=\"\n [\n {\n columnName: column.name,\n value: (column.header | translate) || column.name\n }\n ] | map: getHeaderCellRendererSpec:this as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n <i c8yIcon=\"filter\" title=\"{{ 'Filter' | translate }}\"></i>\n </button>\n\n <!-- isDropDownPlacedRight to be removed when columns are transformed to observables. -->\n <ul\n *dropdownMenu\n class=\"dropdown-menu\"\n [ngClass]=\"{ 'dropdown-menu-right-grid': isDropDownPlacedRight(column) }\"\n (click)=\"$event.stopPropagation()\"\n >\n <li class=\"data-grid__dropdown\">\n <ng-container\n *ngIf=\"\n [\n {\n column: column,\n dropdown: gridHeaderDropdown\n }\n ] | map: getFilteringFormRendererSpec:this as filteringFormRendererSpec\n \"\n >\n <c8y-filtering-form-renderer\n [spec]=\"filteringFormRendererSpec\"\n ></c8y-filtering-form-renderer>\n </ng-container>\n </li>\n </ul>\n </div>\n\n <button\n *ngIf=\"column.sortable\"\n class=\"btn-sort\"\n [title]=\"sortColumnTitle | translate: { name: column.header | translate }\"\n type=\"button\"\n (click)=\"changeSortOrder(column.name)\"\n data-cy=\"change-sort-order\"\n >\n <ng-container [ngSwitch]=\"column.sortOrder\">\n <i *ngSwitchCase=\"'asc'\" c8yIcon=\"long-arrow-up\"></i>\n <i *ngSwitchCase=\"'desc'\" c8yIcon=\"long-arrow-down\"></i>\n <i *ngSwitchDefault c8yIcon=\"exchange\"></i>\n </ng-container>\n </button>\n\n <span\n *ngIf=\"column.resizable\"\n class=\"resize-handle\"\n (mousedown)=\"\n resizeHandleMouseDown$.emit({ event: $event, targetColumnName: column.name })\n \"\n ></span>\n </th>\n\n <td\n cdk-cell\n *cdkCellDef=\"let row\"\n [ngClass]=\"column.cellCSSClassName\"\n [attr.data-cell-title]=\"column.header | translate\"\n [attr.data-cy]=\"'data-grid--' + column.header\"\n [attr.data-type]=\"column.dataType\"\n [class.hidden]=\"!column.visible\"\n >\n <ng-container\n *ngIf=\"\n [\n {\n value: resolveCellValue(row, column.path),\n row: row,\n columnName: column.name\n }\n ] | map: getCellRendererSpec:this as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container cdkColumnDef=\"infiniteScrollFooter\">\n <td cdk-footer-cell *cdkFooterCellDef [style.grid-column]=\"styles.gridInfiniteScrollColumn\">\n <template #infiniteScrollContainer></template>\n </td>\n </ng-container>\n\n <tr cdk-header-row *cdkHeaderRowDef=\"columnNames\"></tr>\n\n <tr\n data-cy=\"c8y-data-grid--row-in-data-grid\"\n cdk-row\n *cdkRowDef=\"let row; columns: columnNames\"\n (mouseover)=\"rowMouseOver.emit(row)\"\n (mouseleave)=\"rowMouseLeave.emit(row)\"\n (click)=\"rowClick.emit(row)\"\n ></tr>\n\n <ng-container>\n <tr\n [ngClass]=\"{ hidden: !infiniteScroll }\"\n cdk-footer-row\n *cdkFooterRowDef=\"['infiniteScrollFooter']\"\n ></tr>\n </ng-container>\n </table>\n\n <div\n class=\"d-flex m-0 p-t-40 p-b-40\"\n *ngIf=\"!(dataSource.loading$ | async) && (dataSource.stats$ | async).filteredSize === 0\"\n >\n <div class=\"col-lg-3 col-sm-4 m-l-auto m-r-auto\">\n <ng-content select=\"c8y-ui-empty-state, .c8y-empty-state\"></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"pagination && !infiniteScroll\" class=\"table-data-grid-footer separator large-padding\">\n <div class=\"col-sm-4 no-gutter\">\n <div\n *ngIf=\"(dataSource.stats$ | async).currentPageSize > 0\"\n class=\"counter p-t-8 p-b-8\"\n data-cy=\"data-grid--counter\"\n >\n <span class=\"text-muted\" ngNonBindable translate [translateParams]=\"paginationLabelParams\">\n {{ pageFirstItemIdx }} - {{ pageLastItemIdx }} of {{ itemsTotal }}\n </span>\n </div>\n </div>\n\n <div class=\"col-sm-4 no-gutter text-center\">\n <div\n *ngIf=\"(dataSource.stats$ | async).filteredSize > minPossiblePageSize\"\n class=\"form-group form-inline p-t-8 p-b-8\"\n >\n <label class=\"m-r-4\" for=\"filteredSize\">{{ 'Items per page' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n id=\"filteredSize\"\n data-cy=\"data-grid--pagesize-options\"\n [ngModel]=\"pagination.pageSize\"\n (ngModelChange)=\"\n updatePagination({ itemsPerPage: $event, page: pagination.currentPage })\n \"\n >\n <option *ngFor=\"let pageSize of possiblePageSizes\" [ngValue]=\"pageSize\">\n {{ pageSize }}\n </option>\n </select>\n </div>\n </div>\n </div>\n\n <div class=\"col-sm-4 no-gutter text-right\">\n <pagination\n *ngIf=\"(dataSource.stats$ | async).filteredSize > 0\"\n [class.hidden]=\"hidePagination$ | async\"\n [ngModel]=\"pagination.currentPage\"\n (pageChanged)=\"updatePagination($event)\"\n [totalItems]=\"(dataSource.stats$ | async).filteredSize\"\n [itemsPerPage]=\"pagination.pageSize\"\n (numPages)=\"totalPagesCount$.next($event)\"\n [maxSize]=\"5\"\n [boundaryLinks]=\"false\"\n previousText=\"Previous\"\n nextText=\"Next\"\n class=\"p-t-8 p-b-8\"\n ></pagination>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i7.CdkTable, selector: "cdk-table, table[cdk-table]", inputs: ["trackBy", "dataSource", "multiTemplateDataRows", "fixedLayout"], outputs: ["contentChanged"], exportAs: ["cdkTable"] }, { kind: "directive", type: i7.CdkRowDef, selector: "[cdkRowDef]", inputs: ["cdkRowDefColumns", "cdkRowDefWhen"] }, { kind: "directive", type: i7.CdkCellDef, selector: "[cdkCellDef]" }, { kind: "directive", type: i7.CdkHeaderCellDef, selector: "[cdkHeaderCellDef]" }, { kind: "directive", type: i7.CdkFooterCellDef, selector: "[cdkFooterCellDef]" }, { kind: "directive", type: i7.CdkColumnDef, selector: "[cdkColumnDef]", inputs: ["sticky", "cdkColumnDef", "stickyEnd"] }, { kind: "directive", type: i7.CdkCell, selector: "cdk-cell, td[cdk-cell]" }, { kind: "component", type: i7.CdkRow, selector: "cdk-row, tr[cdk-row]" }, { kind: "directive", type: i7.CdkHeaderCell, selector: "cdk-header-cell, th[cdk-header-cell]" }, { kind: "directive", type: i7.CdkFooterCell, selector: "cdk-footer-cell, td[cdk-footer-cell]" }, { kind: "component", type: i7.CdkHeaderRow, selector: "cdk-header-row, tr[cdk-header-row]" }, { kind: "directive", type: i7.CdkHeaderRowDef, selector: "[cdkHeaderRowDef]", inputs: ["cdkHeaderRowDef", "cdkHeaderRowDefSticky"] }, { kind: "component", type: i7.CdkFooterRow, selector: "cdk-footer-row, tr[cdk-footer-row]" }, { kind: "directive", type: i7.CdkFooterRowDef, selector: "[cdkFooterRowDef]", inputs: ["cdkFooterRowDef", "cdkFooterRowDefSticky"] }, { kind: "directive", type: i5$3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5$3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.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: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: ProgressBarComponent, selector: "c8y-progress-bar", inputs: ["message", "progress"] }, { kind: "component", type: PopoverConfirmComponent, selector: "c8y-popover-confirm", inputs: ["buttons", "message", "title", "isOpen", "containerClass", "placement", "outsideClick"] }, { kind: "directive", type: i1$6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i1$6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i1$6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i2$2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i1$7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i17.PaginationComponent, selector: "pagination", inputs: ["align", "maxSize", "boundaryLinks", "directionLinks", "firstText", "previousText", "nextText", "lastText", "rotate", "pageBtnClass", "disabled", "customPageTemplate", "customNextTemplate", "customPreviousTemplate", "customFirstTemplate", "customLastTemplate", "itemsPerPage", "totalItems"], outputs: ["numPages", "pageChanged"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: CellRendererComponent, selector: "c8y-cell-renderer", inputs: ["spec"] }, { kind: "component", type: FilteringFormRendererComponent, selector: "c8y-filtering-form-renderer", inputs: ["spec"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: MapFunctionPipe, name: "map" }, { kind: "pipe", type: IsControlVisiblePipe, name: "isControlVisible" }] });
|
|
25065
25079
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DataGridComponent, decorators: [{
|
|
25066
25080
|
type: Component,
|
|
25067
25081
|
args: [{ selector: 'c8y-data-grid', host: { class: 'd-contents' }, providers: [
|
|
@@ -25075,7 +25089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
25075
25089
|
}, {
|
|
25076
25090
|
type: Inject,
|
|
25077
25091
|
args: [DATA_GRID_CONFIGURATION_STRATEGY]
|
|
25078
|
-
}] }, { type: DataGridService }, { type: i1$
|
|
25092
|
+
}] }, { type: DataGridService }, { type: i1$5.DomSanitizer }, { type: i0.ComponentFactoryResolver }, { type: GainsightService }, { type: i1$8.BsModalService }, { type: AlertService }]; }, propDecorators: { title: [{
|
|
25079
25093
|
type: Input
|
|
25080
25094
|
}], loadMoreItemsLabel: [{
|
|
25081
25095
|
type: Input
|
|
@@ -25190,7 +25204,7 @@ DataGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
25190
25204
|
DynamicFormsModule,
|
|
25191
25205
|
CommonModule,
|
|
25192
25206
|
FormsModule,
|
|
25193
|
-
ModalModule, i1$
|
|
25207
|
+
ModalModule, i1$6.BsDropdownModule, i2$2.PopoverModule, i1$7.TooltipModule, i17.PaginationModule, ProductExperienceModule,
|
|
25194
25208
|
A11yModule], exports: [BaseFilteringFormRendererComponent,
|
|
25195
25209
|
CellRendererDefDirective,
|
|
25196
25210
|
HeaderCellRendererDefDirective,
|
|
@@ -25448,7 +25462,7 @@ class HelpComponent {
|
|
|
25448
25462
|
}
|
|
25449
25463
|
}
|
|
25450
25464
|
HelpComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpComponent, deps: [{ token: DocsService }, { token: HelpService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25451
|
-
HelpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: HelpComponent, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'About this page' | translate\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n tooltip=\"{{ 'About this page' | translate }}\"\n [delay]=\"750\"\n placement=\"left\"\n container=\"body\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n >\n </button>\n</c8y-action-bar-item>\n\n<div\n id=\"collapseHelp\"\n class=\"c8y-help-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n class=\"c8y-icon-duocolor icon-48\"\n ></i>\n <div\n class=\"p-l-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n [attr.aria-label]=\"'Close' | translate\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n id=\"helpContent\"\n class=\"help-content\"\n [innerHTML]=\"sectionContent\"\n ></div>\n </div>\n\n <div\n class=\"p-l-16 p-t-16 flex-grow\"\n *ngIf=\"hasError\"\n >\n <h4\n class=\"text-bold m-b-16\"\n translate\n >Sorry, that didn't work</h4>\n <div class=\"help-content\">\n <p translate>The content couldn't be loaded.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n >\n <button\n class=\"btn btn-default\"\n (click)=\"toggle()\"\n [title]=\"'Close help' | translate\"\n type=\"button\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >\n Close\n </button>\n <a\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span\n translate\n *ngIf=\"!hasError\"\n >\n Open the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span\n translate\n *ngIf=\"hasError\"\n >\n Check the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
25465
|
+
HelpComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: HelpComponent, selector: "c8y-help", inputs: { src: "src", isCollapsed: "isCollapsed", priority: "priority", icon: "icon" }, ngImport: i0, template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'About this page' | translate\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n tooltip=\"{{ 'About this page' | translate }}\"\n [delay]=\"750\"\n placement=\"left\"\n container=\"body\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n >\n </button>\n</c8y-action-bar-item>\n\n<div\n id=\"collapseHelp\"\n class=\"c8y-help-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n class=\"c8y-icon-duocolor icon-48\"\n ></i>\n <div\n class=\"p-l-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n [attr.aria-label]=\"'Close' | translate\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n id=\"helpContent\"\n class=\"help-content\"\n [innerHTML]=\"sectionContent\"\n ></div>\n </div>\n\n <div\n class=\"p-l-16 p-t-16 flex-grow\"\n *ngIf=\"hasError\"\n >\n <h4\n class=\"text-bold m-b-16\"\n translate\n >Sorry, that didn't work</h4>\n <div class=\"help-content\">\n <p translate>The content couldn't be loaded.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n >\n <button\n class=\"btn btn-default\"\n (click)=\"toggle()\"\n [title]=\"'Close help' | translate\"\n type=\"button\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >\n Close\n </button>\n <a\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span\n translate\n *ngIf=\"!hasError\"\n >\n Open the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span\n translate\n *ngIf=\"hasError\"\n >\n Check the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingComponent, selector: "c8y-loading" }, { kind: "directive", type: i1$9.CollapseDirective, selector: "[collapse]", inputs: ["display", "isAnimated", "collapse"], outputs: ["collapsed", "collapses", "expanded", "expands"], exportAs: ["bs-collapse"] }, { kind: "directive", type: i1$7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: ActionBarItemComponent, selector: "c8y-action-bar-item", inputs: ["placement", "priority", "itemClass", "injector", "groupId"] }, { kind: "directive", type: ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
25452
25466
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpComponent, decorators: [{
|
|
25453
25467
|
type: Component,
|
|
25454
25468
|
args: [{ selector: 'c8y-help', template: "<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right m-l-8\"\n [priority]=\"priority\"\n *ngIf=\"!!(helpService.contextHelp | async)\"\n>\n <button\n class=\"btn-help\"\n type=\"button\"\n [attr.aria-label]=\"'About this page' | translate\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n tooltip=\"{{ 'About this page' | translate }}\"\n [delay]=\"750\"\n placement=\"left\"\n container=\"body\"\n (click)=\"toggle()\"\n c8yProductExperience\n [actionName]=\"isCollapsed ? 'helpOpened' : 'helpClosed'\"\n [actionData]=\"{ src: src }\"\n >\n </button>\n</c8y-action-bar-item>\n\n<div\n id=\"collapseHelp\"\n class=\"c8y-help-drawer\"\n [collapse]=\"isCollapsed\"\n [isAnimated]=\"true\"\n (collapsed)=\"onCollapsed()\"\n>\n <div\n [ngClass]=\"{ 'c8y-help-drawer-block': isInit }\"\n #docOutlet\n >\n <div *ngIf=\"isLoading\">\n <c8y-loading></c8y-loading>\n </div>\n\n <div *ngIf=\"!isLoading\">\n <div class=\"d-flex\">\n <i\n [c8yIcon]=\"!hasError ? icon : 'unlink'\"\n [ngClass]=\"{ 'text-warning': hasError, 'text-muted': !hasError }\"\n class=\"c8y-icon-duocolor icon-48\"\n ></i>\n <div\n class=\"p-l-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <div\n class=\"alert alert-info m-b-16\"\n *ngIf=\"\n !helpService.isSupportedLanguage() &&\n !showLangWarning &&\n !helpService.isWarningAlertViewed\n \"\n >\n <button\n class=\"close\"\n type=\"button\"\n (click)=\"\n showLangWarning = !showLangWarning;\n helpService.isWarningAlertViewed = !helpService.isWarningAlertViewed\n \"\n [attr.aria-label]=\"'Close' | translate\"\n >\n <span aria-hidden=\"true\">\u00D7</span>\n <span class=\"sr-only\">Close</span>\n </button>\n <p>\n {{ 'Help content is only available in English.' | translate }}\n </p>\n </div>\n <h4 class=\"text-bold text-primary p-t-16 m-b-16\">\n {{ title }}\n </h4>\n <div\n id=\"helpContent\"\n class=\"help-content\"\n [innerHTML]=\"sectionContent\"\n ></div>\n </div>\n\n <div\n class=\"p-l-16 p-t-16 flex-grow\"\n *ngIf=\"hasError\"\n >\n <h4\n class=\"text-bold m-b-16\"\n translate\n >Sorry, that didn't work</h4>\n <div class=\"help-content\">\n <p translate>The content couldn't be loaded.</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n class=\"c8y-help-drawer-footer animated fadeIn\"\n style=\"animation-delay: 0.35s\"\n *ngIf=\"!isLoading && !hasError\"\n >\n <button\n class=\"btn btn-default\"\n (click)=\"toggle()\"\n [title]=\"'Close help' | translate\"\n type=\"button\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >\n Close\n </button>\n <a\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span\n translate\n *ngIf=\"!hasError\"\n >\n Open the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span\n translate\n *ngIf=\"hasError\"\n >\n Check the\n <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>" }]
|
|
@@ -25471,7 +25485,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
25471
25485
|
class HelpModule {
|
|
25472
25486
|
}
|
|
25473
25487
|
HelpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25474
|
-
HelpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: HelpModule, declarations: [HelpComponent], imports: [CommonModule, i1$
|
|
25488
|
+
HelpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: HelpModule, declarations: [HelpComponent], imports: [CommonModule, i1$9.CollapseModule, i1$7.TooltipModule, ActionBarModule,
|
|
25475
25489
|
ProductExperienceModule], exports: [HelpComponent] });
|
|
25476
25490
|
HelpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpModule, providers: [HelpService], imports: [CommonModule,
|
|
25477
25491
|
CollapseModule.forRoot(),
|
|
@@ -25510,7 +25524,7 @@ class RealtimeButtonComponent {
|
|
|
25510
25524
|
}
|
|
25511
25525
|
}
|
|
25512
25526
|
RealtimeButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RealtimeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25513
|
-
RealtimeButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: { service: "service", label: "label", title: "title" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"btn btn-link c8y-realtime\"\n title=\"{{ title | translate }}\"\n (click)=\"toggle()\"\n>\n <span class=\"c8y-pulse\" [ngClass]=\"{ active: active, inactive: !active }\"></span>\n <span>{{ label | translate }}</span>\n</button>\n", dependencies: [{ kind: "directive", type:
|
|
25527
|
+
RealtimeButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RealtimeButtonComponent, selector: "c8y-realtime-btn", inputs: { service: "service", label: "label", title: "title" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"btn btn-link c8y-realtime\"\n title=\"{{ title | translate }}\"\n (click)=\"toggle()\"\n>\n <span class=\"c8y-pulse\" [ngClass]=\"{ active: active, inactive: !active }\"></span>\n <span>{{ label | translate }}</span>\n</button>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
25514
25528
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RealtimeButtonComponent, decorators: [{
|
|
25515
25529
|
type: Component,
|
|
25516
25530
|
args: [{ selector: 'c8y-realtime-btn', template: "<button\n type=\"button\"\n class=\"btn btn-link c8y-realtime\"\n title=\"{{ title | translate }}\"\n (click)=\"toggle()\"\n>\n <span class=\"c8y-pulse\" [ngClass]=\"{ active: active, inactive: !active }\"></span>\n <span>{{ label | translate }}</span>\n</button>\n" }]
|
|
@@ -25656,12 +25670,12 @@ class SelectModalComponent {
|
|
|
25656
25670
|
.map(selectedOption => selectedOption.obj);
|
|
25657
25671
|
}
|
|
25658
25672
|
}
|
|
25659
|
-
SelectModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalComponent, deps: [{ token: i1$
|
|
25660
|
-
SelectModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectModalComponent, selector: "c8y-select-modal", inputs: { icon: "icon", title: "title", subTitle: "subTitle", items: "items", mode: "mode", disableSelected: "disableSelected", showFilter: "showFilter", additionalFilterTemplate: "additionalFilterTemplate", areMoreEntries: "areMoreEntries", labels: "labels", noItemsMessage: "noItemsMessage" }, outputs: { result: "result", search: "search", onChoiceUpdated: "onChoiceUpdated" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"icon\"></i>\n <h1 id=\"modal-title\" class=\"h3\">\n {{ title | translate }}\n </h1>\n </div>\n <div class=\"p-16 text-center separator-bottom min-height-fit\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <div class=\"row\">\n <div\n *ngIf=\"showFilter\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div\n *ngIf=\"additionalFilterTemplate\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <ng-container *ngTemplateOutlet=\"additionalFilterTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-16 p-r-16\">\n <div class=\"panel m-t-8 m-b-8\" *ngIf=\"!items || items.length === 0\">\n <div class=\"c8y-empty-state text-left\">\n <h1 c8yIcon=\"{{ icon }} \" class=\"c8y-icon-duocolor\"></h1>\n <p>{{ (noItemsMessage | translate) ?? 'No items to display.' | translate }}</p>\n </div>\n </div>\n </div>\n <c8y-list-group>\n <c8y-li *ngFor=\"let item of listItems | selectModalFilterPipe: filterTerm\">\n <c8y-li-icon>\n <i c8yIcon=\"{{ icon }}\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-30\">\n <div class=\"col-9\">\n <div *ngFor=\"let bodyPart of item.body\" [ngClass]=\"bodyPart.class\">\n <c8y-highlight\n [title]=\"bodyPart.value\"\n [pattern]=\"filterTerm\"\n [text]=\"bodyPart.value\"\n ></c8y-highlight>\n </div>\n </div>\n\n <div class=\"col-3 text-right\" *ngIf=\"item.additionalInformation\">\n <div [ngClass]=\"item.additionalInformation.class\">\n {{ item.additionalInformation.value }}\n </div>\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *ngFor=\"let option of item.options\">\n <c8y-li-radio\n [name]=\"mode === 'single' ? 'single' : item.groupId\"\n (onSelect)=\"updateChoice({ item: item, id: option.obj.id })\"\n [disabled]=\"option.disabled\"\n [selected]=\"option.selected\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-20\">\n <div\n *ngFor=\"let optionPart of option.body; let i = index\"\n [ngClass]=\"optionPart.class\"\n >\n <c8y-highlight [pattern]=\"filterTerm\" [text]=\"optionPart.value\"></c8y-highlight>\n </div>\n <ng-container\n *ngIf=\"option.template\"\n [ngTemplateOutlet]=\"option.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item, option: option }\"\n ></ng-container>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n <div *ngIf=\"areMoreEntries\">\n <div class=\"alert alert-info m-t-16 m-r-8 m-l-8\" translate>\n Some entries might not be shown. Try narrowing search criteria.\n </div>\n </div>\n </c8y-list-group>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"select()\"\n [disabled]=\"!selected\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type:
|
|
25673
|
+
SelectModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalComponent, deps: [{ token: i1$8.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
25674
|
+
SelectModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: SelectModalComponent, selector: "c8y-select-modal", inputs: { icon: "icon", title: "title", subTitle: "subTitle", items: "items", mode: "mode", disableSelected: "disableSelected", showFilter: "showFilter", additionalFilterTemplate: "additionalFilterTemplate", areMoreEntries: "areMoreEntries", labels: "labels", noItemsMessage: "noItemsMessage" }, outputs: { result: "result", search: "search", onChoiceUpdated: "onChoiceUpdated" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"icon\"></i>\n <h1 id=\"modal-title\" class=\"h3\">\n {{ title | translate }}\n </h1>\n </div>\n <div class=\"p-16 text-center separator-bottom min-height-fit\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <div class=\"row\">\n <div\n *ngIf=\"showFilter\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div\n *ngIf=\"additionalFilterTemplate\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <ng-container *ngTemplateOutlet=\"additionalFilterTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-16 p-r-16\">\n <div class=\"panel m-t-8 m-b-8\" *ngIf=\"!items || items.length === 0\">\n <div class=\"c8y-empty-state text-left\">\n <h1 c8yIcon=\"{{ icon }} \" class=\"c8y-icon-duocolor\"></h1>\n <p>{{ (noItemsMessage | translate) ?? 'No items to display.' | translate }}</p>\n </div>\n </div>\n </div>\n <c8y-list-group>\n <c8y-li *ngFor=\"let item of listItems | selectModalFilterPipe: filterTerm\">\n <c8y-li-icon>\n <i c8yIcon=\"{{ icon }}\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-30\">\n <div class=\"col-9\">\n <div *ngFor=\"let bodyPart of item.body\" [ngClass]=\"bodyPart.class\">\n <c8y-highlight\n [title]=\"bodyPart.value\"\n [pattern]=\"filterTerm\"\n [text]=\"bodyPart.value\"\n ></c8y-highlight>\n </div>\n </div>\n\n <div class=\"col-3 text-right\" *ngIf=\"item.additionalInformation\">\n <div [ngClass]=\"item.additionalInformation.class\">\n {{ item.additionalInformation.value }}\n </div>\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *ngFor=\"let option of item.options\">\n <c8y-li-radio\n [name]=\"mode === 'single' ? 'single' : item.groupId\"\n (onSelect)=\"updateChoice({ item: item, id: option.obj.id })\"\n [disabled]=\"option.disabled\"\n [selected]=\"option.selected\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-20\">\n <div\n *ngFor=\"let optionPart of option.body; let i = index\"\n [ngClass]=\"optionPart.class\"\n >\n <c8y-highlight [pattern]=\"filterTerm\" [text]=\"optionPart.value\"></c8y-highlight>\n </div>\n <ng-container\n *ngIf=\"option.template\"\n [ngTemplateOutlet]=\"option.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item, option: option }\"\n ></ng-container>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n <div *ngIf=\"areMoreEntries\">\n <div class=\"alert alert-info m-t-16 m-r-8 m-l-8\" translate>\n Some entries might not be shown. Try narrowing search criteria.\n </div>\n </div>\n </c8y-list-group>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"select()\"\n [disabled]=\"!selected\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: ListItemCollapseComponent, selector: "c8y-list-item-collapse, c8y-li-collapse", inputs: ["collapseWay"] }, { kind: "component", type: ListItemRadioComponent, selector: "c8y-list-item-radio, c8y-li-radio", inputs: ["selected", "name", "disabled", "value"], outputs: ["onSelect"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: FilterInputComponent, selector: "c8y-filter", inputs: ["icon"], outputs: ["onSearch"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: SelectModalFilterPipe, name: "selectModalFilterPipe" }] });
|
|
25661
25675
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalComponent, decorators: [{
|
|
25662
25676
|
type: Component,
|
|
25663
25677
|
args: [{ selector: 'c8y-select-modal', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"icon\"></i>\n <h1 id=\"modal-title\" class=\"h3\">\n {{ title | translate }}\n </h1>\n </div>\n <div class=\"p-16 text-center separator-bottom min-height-fit\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <div class=\"row\">\n <div\n *ngIf=\"showFilter\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <c8y-filter [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div\n *ngIf=\"additionalFilterTemplate\"\n [ngClass]=\"{\n 'col-xs-6': showFilter && additionalFilterTemplate,\n 'col-xs-12': !showFilter || !additionalFilterTemplate\n }\"\n >\n <ng-container *ngTemplateOutlet=\"additionalFilterTemplate\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"modal-inner-scroll\" id=\"modal-body\">\n <div class=\"p-l-16 p-r-16\">\n <div class=\"panel m-t-8 m-b-8\" *ngIf=\"!items || items.length === 0\">\n <div class=\"c8y-empty-state text-left\">\n <h1 c8yIcon=\"{{ icon }} \" class=\"c8y-icon-duocolor\"></h1>\n <p>{{ (noItemsMessage | translate) ?? 'No items to display.' | translate }}</p>\n </div>\n </div>\n </div>\n <c8y-list-group>\n <c8y-li *ngFor=\"let item of listItems | selectModalFilterPipe: filterTerm\">\n <c8y-li-icon>\n <i c8yIcon=\"{{ icon }}\"></i>\n </c8y-li-icon>\n\n <c8y-li-body class=\"content-flex-30\">\n <div class=\"col-9\">\n <div *ngFor=\"let bodyPart of item.body\" [ngClass]=\"bodyPart.class\">\n <c8y-highlight\n [title]=\"bodyPart.value\"\n [pattern]=\"filterTerm\"\n [text]=\"bodyPart.value\"\n ></c8y-highlight>\n </div>\n </div>\n\n <div class=\"col-3 text-right\" *ngIf=\"item.additionalInformation\">\n <div [ngClass]=\"item.additionalInformation.class\">\n {{ item.additionalInformation.value }}\n </div>\n </div>\n </c8y-li-body>\n\n <c8y-li-collapse>\n <c8y-list-group>\n <c8y-li *ngFor=\"let option of item.options\">\n <c8y-li-radio\n [name]=\"mode === 'single' ? 'single' : item.groupId\"\n (onSelect)=\"updateChoice({ item: item, id: option.obj.id })\"\n [disabled]=\"option.disabled\"\n [selected]=\"option.selected\"\n ></c8y-li-radio>\n <c8y-li-body class=\"content-flex-20\">\n <div\n *ngFor=\"let optionPart of option.body; let i = index\"\n [ngClass]=\"optionPart.class\"\n >\n <c8y-highlight [pattern]=\"filterTerm\" [text]=\"optionPart.value\"></c8y-highlight>\n </div>\n <ng-container\n *ngIf=\"option.template\"\n [ngTemplateOutlet]=\"option.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item, option: option }\"\n ></ng-container>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n </c8y-li-collapse>\n </c8y-li>\n <div *ngIf=\"areMoreEntries\">\n <div class=\"alert alert-info m-t-16 m-r-8 m-l-8\" translate>\n Some entries might not be shown. Try narrowing search criteria.\n </div>\n </div>\n </c8y-list-group>\n </div>\n\n <div class=\"modal-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n type=\"button\"\n *ngIf=\"labels.cancel\"\n class=\"btn btn-default\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button\n title=\"{{ labels.ok | translate }}\"\n type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"select()\"\n [disabled]=\"!selected\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n" }]
|
|
25664
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
25678
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }]; }, propDecorators: { icon: [{
|
|
25665
25679
|
type: Input
|
|
25666
25680
|
}], title: [{
|
|
25667
25681
|
type: Input
|
|
@@ -25694,7 +25708,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
25694
25708
|
class SelectModalModule {
|
|
25695
25709
|
}
|
|
25696
25710
|
SelectModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25697
|
-
SelectModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, declarations: [SelectModalComponent, SelectModalFilterPipe], imports: [i1$
|
|
25711
|
+
SelectModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, declarations: [SelectModalComponent, SelectModalFilterPipe], imports: [i1$6.BsDropdownModule, CommonModule, ListGroupModule, SearchModule, FormsModule], exports: [SelectModalComponent, SelectModalFilterPipe] });
|
|
25698
25712
|
SelectModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, imports: [BsDropdownModule.forRoot(), CommonModule, ListGroupModule, SearchModule, FormsModule] });
|
|
25699
25713
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, decorators: [{
|
|
25700
25714
|
type: NgModule,
|
|
@@ -25710,6 +25724,13 @@ class RangeDisplayComponent {
|
|
|
25710
25724
|
this.sanitizer = sanitizer;
|
|
25711
25725
|
this.config = {};
|
|
25712
25726
|
this.display = 'full';
|
|
25727
|
+
this.currentRangeWidthChanged = new Subject();
|
|
25728
|
+
// width of current range is changing within 150ms, see style declaration for .range-display__range__current
|
|
25729
|
+
this.CURRENT_RANGE_WIDTH_TRANSITION_TIME = 150;
|
|
25730
|
+
this.DEFAULT_TOOLTIP_SHIFT = '50%';
|
|
25731
|
+
this.MIN_TOOLTIP_SHIFT = 10;
|
|
25732
|
+
this.tooltipShift = this.DEFAULT_TOOLTIP_SHIFT;
|
|
25733
|
+
this.destroyed$ = new Subject();
|
|
25713
25734
|
}
|
|
25714
25735
|
get inlineStyle() {
|
|
25715
25736
|
this.config = this.config || {};
|
|
@@ -25725,6 +25746,8 @@ class RangeDisplayComponent {
|
|
|
25725
25746
|
return this.sanitizer.bypassSecurityTrustStyle(`
|
|
25726
25747
|
--range-min: ${this.config.min};
|
|
25727
25748
|
--range-max: ${this.config.max};
|
|
25749
|
+
--range-display-tooltip-translate: translate(${this.tooltipShift}, -56px);
|
|
25750
|
+
--range-display-tooltip-bg: var(${this.getTooltipBackground()});
|
|
25728
25751
|
--full-range: ${this.config.max - this.config.min};
|
|
25729
25752
|
--measurement-target: ${((this.config.target - this.config.min) * 100) / (this.config.max - this.config.min)}%;
|
|
25730
25753
|
--measurement-current: ${((this.config.current - this.config.min) * 100) / (this.config.max - this.config.min)}%;
|
|
@@ -25738,6 +25761,20 @@ class RangeDisplayComponent {
|
|
|
25738
25761
|
100}%;
|
|
25739
25762
|
`);
|
|
25740
25763
|
}
|
|
25764
|
+
ngOnChanges() {
|
|
25765
|
+
// It's necessary to handle tooltip shifting both in OnChanges and AfterViewInit. In case of Linear gauge widget, view is
|
|
25766
|
+
// rendered first (so as elements needed for calculating shifting) and config orientation is set later on.
|
|
25767
|
+
// In other cases it's possible that orientation is defined on initialization of class and view elements are rendered later.
|
|
25768
|
+
this.setupTooltipShiftingIfPossible();
|
|
25769
|
+
}
|
|
25770
|
+
ngAfterViewInit() {
|
|
25771
|
+
this.setupTooltipShiftingIfPossible();
|
|
25772
|
+
}
|
|
25773
|
+
ngOnDestroy() {
|
|
25774
|
+
this.currentRangeWidthObserver?.disconnect();
|
|
25775
|
+
this.destroyed$.next();
|
|
25776
|
+
this.destroyed$.complete();
|
|
25777
|
+
}
|
|
25741
25778
|
checkTarget() {
|
|
25742
25779
|
return (this.config.target !== undefined &&
|
|
25743
25780
|
this.config.target !== null &&
|
|
@@ -25765,19 +25802,77 @@ class RangeDisplayComponent {
|
|
|
25765
25802
|
isRangeDisplayed(rangeMin, rangeMax) {
|
|
25766
25803
|
return rangeMin === 0 || rangeMax === 0 || (rangeMin && rangeMax);
|
|
25767
25804
|
}
|
|
25805
|
+
setupTooltipShifting() {
|
|
25806
|
+
this.currentRangeWidthObserver = new ResizeObserver(([val]) => {
|
|
25807
|
+
if (getComputedStyle(val.target, null).display === 'block') {
|
|
25808
|
+
this.currentRangeWidthChanged.next(val.target);
|
|
25809
|
+
}
|
|
25810
|
+
});
|
|
25811
|
+
this.currentRangeWidthObserver.observe(this.currentRangeElement.nativeElement);
|
|
25812
|
+
this.currentRangeWidthChanged
|
|
25813
|
+
.pipe(debounceTime(this.CURRENT_RANGE_WIDTH_TRANSITION_TIME), map((rangeElement) => parseInt(getComputedStyle(rangeElement, null).width)), distinctUntilChanged(), takeUntil(this.destroyed$))
|
|
25814
|
+
.subscribe(rangeElementWidth => {
|
|
25815
|
+
this.setTooltipShiftValue(rangeElementWidth);
|
|
25816
|
+
});
|
|
25817
|
+
}
|
|
25818
|
+
setTooltipShiftValue(rangeElementWidth) {
|
|
25819
|
+
const tooltipWidth = parseInt(getComputedStyle(this.currentRangeElement.nativeElement, ':after').width);
|
|
25820
|
+
const currentRangeWidth = rangeElementWidth;
|
|
25821
|
+
const rangeDisplayWidth = parseInt(getComputedStyle(this.rangeDisplay.nativeElement, null).getPropertyValue('width'));
|
|
25822
|
+
const rangeDisplayPaddingLeft = parseInt(getComputedStyle(this.rangeDisplay.nativeElement, null).getPropertyValue('padding-left'));
|
|
25823
|
+
const tooltipOverflowsLeftEdge = tooltipWidth / 2 > rangeDisplayPaddingLeft + currentRangeWidth;
|
|
25824
|
+
const tooltipOverflowsRightEdge = tooltipWidth / 2 > rangeDisplayWidth - rangeDisplayPaddingLeft - currentRangeWidth;
|
|
25825
|
+
if (tooltipOverflowsLeftEdge) {
|
|
25826
|
+
this.tooltipShift = `${tooltipWidth - this.MIN_TOOLTIP_SHIFT}px`;
|
|
25827
|
+
}
|
|
25828
|
+
else if (tooltipOverflowsRightEdge) {
|
|
25829
|
+
this.tooltipShift = `${this.MIN_TOOLTIP_SHIFT}px`;
|
|
25830
|
+
}
|
|
25831
|
+
else {
|
|
25832
|
+
this.tooltipShift = this.DEFAULT_TOOLTIP_SHIFT;
|
|
25833
|
+
}
|
|
25834
|
+
}
|
|
25835
|
+
setupTooltipShiftingIfPossible() {
|
|
25836
|
+
if (this.config?.orientation === 'horizontal' &&
|
|
25837
|
+
!this.currentRangeWidthObserver &&
|
|
25838
|
+
this.rangeDisplay &&
|
|
25839
|
+
this.currentRangeElement) {
|
|
25840
|
+
this.setupTooltipShifting();
|
|
25841
|
+
}
|
|
25842
|
+
}
|
|
25843
|
+
getTooltipBackground() {
|
|
25844
|
+
const current = this.config.current;
|
|
25845
|
+
switch (true) {
|
|
25846
|
+
case this.isValueInRange(current, this.config.redRangeMin, this.config.redRangeMax):
|
|
25847
|
+
return '--c8y-palette-status-danger';
|
|
25848
|
+
case this.isValueInRange(current, this.config.yellowRangeMin, this.config.yellowRangeMax):
|
|
25849
|
+
return '--c8y-palette-status-warning';
|
|
25850
|
+
default:
|
|
25851
|
+
return '--c8y-palette-gray-30';
|
|
25852
|
+
}
|
|
25853
|
+
}
|
|
25854
|
+
isValueInRange(value, min, max) {
|
|
25855
|
+
return min != null && max != null && value >= min && value <= max;
|
|
25856
|
+
}
|
|
25768
25857
|
}
|
|
25769
|
-
RangeDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, deps: [{ token: i1$
|
|
25770
|
-
RangeDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeDisplayComponent, selector: "c8y-range-display", inputs: { config: "config", display: "display" }, host: { properties: { "attr.style": "this.inlineStyle" } }, ngImport: i0, template: "<div
|
|
25858
|
+
RangeDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, deps: [{ token: i1$5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
25859
|
+
RangeDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeDisplayComponent, selector: "c8y-range-display", inputs: { config: "config", display: "display" }, host: { properties: { "attr.style": "this.inlineStyle" } }, viewQueries: [{ propertyName: "rangeDisplay", first: true, predicate: ["rangeDisplay"], descendants: true }, { propertyName: "currentRangeElement", first: true, predicate: ["currentRangeElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} 
{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max || 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: DatePipe, name: "c8yDate" }] });
|
|
25771
25860
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, decorators: [{
|
|
25772
25861
|
type: Component,
|
|
25773
|
-
args: [{ selector: 'c8y-range-display', template: "<div
|
|
25774
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
25862
|
+
args: [{ selector: 'c8y-range-display', template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} 
{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max || 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n" }]
|
|
25863
|
+
}], ctorParameters: function () { return [{ type: i1$5.DomSanitizer }]; }, propDecorators: { config: [{
|
|
25775
25864
|
type: Input
|
|
25776
25865
|
}], display: [{
|
|
25777
25866
|
type: Input
|
|
25778
25867
|
}], inlineStyle: [{
|
|
25779
25868
|
type: HostBinding,
|
|
25780
25869
|
args: ['attr.style']
|
|
25870
|
+
}], rangeDisplay: [{
|
|
25871
|
+
type: ViewChild,
|
|
25872
|
+
args: ['rangeDisplay', { static: false }]
|
|
25873
|
+
}], currentRangeElement: [{
|
|
25874
|
+
type: ViewChild,
|
|
25875
|
+
args: ['currentRangeElement', { static: false }]
|
|
25781
25876
|
}] } });
|
|
25782
25877
|
|
|
25783
25878
|
/**
|
|
@@ -25866,12 +25961,12 @@ class ListDisplaySwitchComponent {
|
|
|
25866
25961
|
return this.listKey || this.location.path();
|
|
25867
25962
|
}
|
|
25868
25963
|
}
|
|
25869
|
-
ListDisplaySwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListDisplaySwitchComponent, deps: [{ token:
|
|
25870
|
-
ListDisplaySwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListDisplaySwitchComponent, selector: "c8y-list-display-switch", inputs: { listKey: "listKey", listLength: "listLength", filterPipe: "filterPipe" }, outputs: { onListClassChange: "onListClassChange" }, ngImport: i0, template: "<div class=\"form-group\">\n <label class=\"m-r-8\" id=\"listLabel\">\n {{ 'Display as' | translate }}\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n aria-labelledby=\"listLabel\"\n name=\"listLabel\"\n class=\"form-control\"\n [ngModel]=\"selectedOption\"\n (ngModelChange)=\"onOptionSelect($event)\"\n [attr.aria-label]=\"'Display mode' | translate\"\n >\n <option *ngFor=\"let option of DISPLAY_OPTIONS\" [ngValue]=\"option\">\n {{ option.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
25964
|
+
ListDisplaySwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListDisplaySwitchComponent, deps: [{ token: i2.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
25965
|
+
ListDisplaySwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ListDisplaySwitchComponent, selector: "c8y-list-display-switch", inputs: { listKey: "listKey", listLength: "listLength", filterPipe: "filterPipe" }, outputs: { onListClassChange: "onListClassChange" }, ngImport: i0, template: "<div class=\"form-group\">\n <label class=\"m-r-8\" id=\"listLabel\">\n {{ 'Display as' | translate }}\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n aria-labelledby=\"listLabel\"\n name=\"listLabel\"\n class=\"form-control\"\n [ngModel]=\"selectedOption\"\n (ngModelChange)=\"onOptionSelect($event)\"\n [attr.aria-label]=\"'Display mode' | translate\"\n >\n <option *ngFor=\"let option of DISPLAY_OPTIONS\" [ngValue]=\"option\">\n {{ option.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
25871
25966
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListDisplaySwitchComponent, decorators: [{
|
|
25872
25967
|
type: Component,
|
|
25873
25968
|
args: [{ selector: 'c8y-list-display-switch', template: "<div class=\"form-group\">\n <label class=\"m-r-8\" id=\"listLabel\">\n {{ 'Display as' | translate }}\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n aria-labelledby=\"listLabel\"\n name=\"listLabel\"\n class=\"form-control\"\n [ngModel]=\"selectedOption\"\n (ngModelChange)=\"onOptionSelect($event)\"\n [attr.aria-label]=\"'Display mode' | translate\"\n >\n <option *ngFor=\"let option of DISPLAY_OPTIONS\" [ngValue]=\"option\">\n {{ option.label | translate }}\n </option>\n </select>\n <span></span>\n </div>\n</div>\n" }]
|
|
25874
|
-
}], ctorParameters: function () { return [{ type:
|
|
25969
|
+
}], ctorParameters: function () { return [{ type: i2.Location }]; }, propDecorators: { listKey: [{
|
|
25875
25970
|
type: Input
|
|
25876
25971
|
}], listLength: [{
|
|
25877
25972
|
type: Input,
|
|
@@ -25998,7 +26093,7 @@ class WizardOutletComponent {
|
|
|
25998
26093
|
}
|
|
25999
26094
|
}
|
|
26000
26095
|
WizardOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardOutletComponent, deps: [{ token: i1.Router }, { token: WizardService }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
26001
|
-
WizardOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WizardOutletComponent, selector: "c8y-wizard-outlet", inputs: { initialState: "initialState", id: "id" }, outputs: { onSelect: "onSelect", onPath: "onPath" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ng-container>\n <div class=\"modal-inner-scroll animated fadeIn\" *ngIf=\"showList\" id=\"modal-body\">\n <p class=\"p-16 text-center text-medium separator-bottom\">\n <span translate>Select method</span>\n </p>\n <div class=\"list-group list-group-links\" *ngIf=\"entries.length > 0; else emptyState\">\n <button\n *ngFor=\"let entry of entries\"\n type=\"button\"\n class=\"list-group-item d-flex a-i-center p-t-8 p-b-8\"\n (click)=\"handleEntry(entry)\"\n >\n <div class=\"list-item-icon\">\n <i [c8yIcon]=\"entry.c8yIcon || 'cogs'\"></i>\n </div>\n <div title=\"{{ entry.name | translate }}\" class=\"list-item-body text-truncate\">\n {{ entry.name | translate }}\n </div>\n </button>\n </div>\n\n <ng-template #emptyState>\n <div class=\"c8y-empty-state\">\n <p>{{ 'No options available.' | translate }}</p>\n </div>\n </ng-template>\n </div>\n</ng-container>\n<template #container [hidden]=\"showList\"></template>\n", dependencies: [{ kind: "directive", type:
|
|
26096
|
+
WizardOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WizardOutletComponent, selector: "c8y-wizard-outlet", inputs: { initialState: "initialState", id: "id" }, outputs: { onSelect: "onSelect", onPath: "onPath" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<ng-container>\n <div class=\"modal-inner-scroll animated fadeIn\" *ngIf=\"showList\" id=\"modal-body\">\n <p class=\"p-16 text-center text-medium separator-bottom\">\n <span translate>Select method</span>\n </p>\n <div class=\"list-group list-group-links\" *ngIf=\"entries.length > 0; else emptyState\">\n <button\n *ngFor=\"let entry of entries\"\n type=\"button\"\n class=\"list-group-item d-flex a-i-center p-t-8 p-b-8\"\n (click)=\"handleEntry(entry)\"\n >\n <div class=\"list-item-icon\">\n <i [c8yIcon]=\"entry.c8yIcon || 'cogs'\"></i>\n </div>\n <div title=\"{{ entry.name | translate }}\" class=\"list-item-body text-truncate\">\n {{ entry.name | translate }}\n </div>\n </button>\n </div>\n\n <ng-template #emptyState>\n <div class=\"c8y-empty-state\">\n <p>{{ 'No options available.' | translate }}</p>\n </div>\n </ng-template>\n </div>\n</ng-container>\n<template #container [hidden]=\"showList\"></template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
26002
26097
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardOutletComponent, decorators: [{
|
|
26003
26098
|
type: Component,
|
|
26004
26099
|
args: [{ selector: 'c8y-wizard-outlet', template: "<ng-container>\n <div class=\"modal-inner-scroll animated fadeIn\" *ngIf=\"showList\" id=\"modal-body\">\n <p class=\"p-16 text-center text-medium separator-bottom\">\n <span translate>Select method</span>\n </p>\n <div class=\"list-group list-group-links\" *ngIf=\"entries.length > 0; else emptyState\">\n <button\n *ngFor=\"let entry of entries\"\n type=\"button\"\n class=\"list-group-item d-flex a-i-center p-t-8 p-b-8\"\n (click)=\"handleEntry(entry)\"\n >\n <div class=\"list-item-icon\">\n <i [c8yIcon]=\"entry.c8yIcon || 'cogs'\"></i>\n </div>\n <div title=\"{{ entry.name | translate }}\" class=\"list-item-body text-truncate\">\n {{ entry.name | translate }}\n </div>\n </button>\n </div>\n\n <ng-template #emptyState>\n <div class=\"c8y-empty-state\">\n <p>{{ 'No options available.' | translate }}</p>\n </div>\n </ng-template>\n </div>\n</ng-container>\n<template #container [hidden]=\"showList\"></template>\n" }]
|
|
@@ -26121,12 +26216,12 @@ class WizardComponent {
|
|
|
26121
26216
|
});
|
|
26122
26217
|
}
|
|
26123
26218
|
}
|
|
26124
|
-
WizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardComponent, deps: [{ token: WizardService }, { token: i1$
|
|
26125
|
-
WizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WizardComponent, selector: "c8y-wizard", inputs: { id: "id", wizardConfig: "wizardConfig" }, outputs: { onClose: "onClose", onReset: "onReset", onSelect: "onSelect" }, viewQueries: [{ propertyName: "header", first: true, predicate: ["headerRef"], descendants: true, static: true }, { propertyName: "body", first: true, predicate: ["bodyRef"], descendants: true, static: true }, { propertyName: "footer", first: true, predicate: ["footerRef"], descendants: true, static: true }, { propertyName: "outlet", first: true, predicate: WizardOutletComponent, descendants: true }], ngImport: i0, template: "<div class=\"viewport-modal animated fadeIn\">\n <ng-template *ngTemplateOutlet=\"(headerTemplate$ | async)?.template\"></ng-template>\n\n <ng-template #headerRef>\n <div class=\"modal-header dialog-header animated fadeIn\">\n <i [c8yIcon]=\"wizardConfig.headerIcon\"></i>\n <h4 id=\"modal-title\">{{ wizardConfig.headerText | translate }}</h4>\n </div>\n </ng-template>\n\n <ng-template *ngTemplateOutlet=\"(bodyTemplate$ | async)?.template\"></ng-template>\n\n <ng-template #bodyRef>\n <div class=\"p-16 p-t-8 text-center\" *ngIf=\"wizardConfig.bodyHeaderText\">\n <div class=\"c8y-wizard-nav\">\n <i [c8yIcon]=\"wizardConfig.bodyHeaderIcon\"></i>\n <span>{{ wizardConfig.bodyHeaderText | translate }}</span>\n </div>\n </div>\n </ng-template>\n <c8y-wizard-outlet\n [initialState]=\"componentInitialState\"\n [id]=\"id\"\n (onSelect)=\"onSelect.emit($event)\"\n (onPath)=\"onPath()\"\n ></c8y-wizard-outlet>\n\n <ng-template *ngTemplateOutlet=\"(footerTemplate$ | async)?.template\"></ng-template>\n <ng-template #footerRef>\n <div class=\"modal-footer animated fadeIn\">\n <button\n (click)=\"close()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n >\n <span translate>Cancel</span>\n </button>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type:
|
|
26219
|
+
WizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardComponent, deps: [{ token: WizardService }, { token: i1$8.BsModalRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
26220
|
+
WizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: WizardComponent, selector: "c8y-wizard", inputs: { id: "id", wizardConfig: "wizardConfig" }, outputs: { onClose: "onClose", onReset: "onReset", onSelect: "onSelect" }, viewQueries: [{ propertyName: "header", first: true, predicate: ["headerRef"], descendants: true, static: true }, { propertyName: "body", first: true, predicate: ["bodyRef"], descendants: true, static: true }, { propertyName: "footer", first: true, predicate: ["footerRef"], descendants: true, static: true }, { propertyName: "outlet", first: true, predicate: WizardOutletComponent, descendants: true }], ngImport: i0, template: "<div class=\"viewport-modal animated fadeIn\">\n <ng-template *ngTemplateOutlet=\"(headerTemplate$ | async)?.template\"></ng-template>\n\n <ng-template #headerRef>\n <div class=\"modal-header dialog-header animated fadeIn\">\n <i [c8yIcon]=\"wizardConfig.headerIcon\"></i>\n <h4 id=\"modal-title\">{{ wizardConfig.headerText | translate }}</h4>\n </div>\n </ng-template>\n\n <ng-template *ngTemplateOutlet=\"(bodyTemplate$ | async)?.template\"></ng-template>\n\n <ng-template #bodyRef>\n <div class=\"p-16 p-t-8 text-center\" *ngIf=\"wizardConfig.bodyHeaderText\">\n <div class=\"c8y-wizard-nav\">\n <i [c8yIcon]=\"wizardConfig.bodyHeaderIcon\"></i>\n <span>{{ wizardConfig.bodyHeaderText | translate }}</span>\n </div>\n </div>\n </ng-template>\n <c8y-wizard-outlet\n [initialState]=\"componentInitialState\"\n [id]=\"id\"\n (onSelect)=\"onSelect.emit($event)\"\n (onPath)=\"onPath()\"\n ></c8y-wizard-outlet>\n\n <ng-template *ngTemplateOutlet=\"(footerTemplate$ | async)?.template\"></ng-template>\n <ng-template #footerRef>\n <div class=\"modal-footer animated fadeIn\">\n <button\n (click)=\"close()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n >\n <span translate>Cancel</span>\n </button>\n </div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "component", type: WizardOutletComponent, selector: "c8y-wizard-outlet", inputs: ["initialState", "id"], outputs: ["onSelect", "onPath"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
|
|
26126
26221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardComponent, decorators: [{
|
|
26127
26222
|
type: Component,
|
|
26128
26223
|
args: [{ selector: 'c8y-wizard', template: "<div class=\"viewport-modal animated fadeIn\">\n <ng-template *ngTemplateOutlet=\"(headerTemplate$ | async)?.template\"></ng-template>\n\n <ng-template #headerRef>\n <div class=\"modal-header dialog-header animated fadeIn\">\n <i [c8yIcon]=\"wizardConfig.headerIcon\"></i>\n <h4 id=\"modal-title\">{{ wizardConfig.headerText | translate }}</h4>\n </div>\n </ng-template>\n\n <ng-template *ngTemplateOutlet=\"(bodyTemplate$ | async)?.template\"></ng-template>\n\n <ng-template #bodyRef>\n <div class=\"p-16 p-t-8 text-center\" *ngIf=\"wizardConfig.bodyHeaderText\">\n <div class=\"c8y-wizard-nav\">\n <i [c8yIcon]=\"wizardConfig.bodyHeaderIcon\"></i>\n <span>{{ wizardConfig.bodyHeaderText | translate }}</span>\n </div>\n </div>\n </ng-template>\n <c8y-wizard-outlet\n [initialState]=\"componentInitialState\"\n [id]=\"id\"\n (onSelect)=\"onSelect.emit($event)\"\n (onPath)=\"onPath()\"\n ></c8y-wizard-outlet>\n\n <ng-template *ngTemplateOutlet=\"(footerTemplate$ | async)?.template\"></ng-template>\n <ng-template #footerRef>\n <div class=\"modal-footer animated fadeIn\">\n <button\n (click)=\"close()\"\n type=\"button\"\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n >\n <span translate>Cancel</span>\n </button>\n </div>\n </ng-template>\n</div>\n" }]
|
|
26129
|
-
}], ctorParameters: function () { return [{ type: WizardService }, { type: i1$
|
|
26224
|
+
}], ctorParameters: function () { return [{ type: WizardService }, { type: i1$8.BsModalRef }]; }, propDecorators: { header: [{
|
|
26130
26225
|
type: ViewChild,
|
|
26131
26226
|
args: ['headerRef', { static: true }]
|
|
26132
26227
|
}], body: [{
|
|
@@ -26287,14 +26382,14 @@ class WizardModalService {
|
|
|
26287
26382
|
return this.bsModalService.show(WizardComponent, options);
|
|
26288
26383
|
}
|
|
26289
26384
|
}
|
|
26290
|
-
WizardModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardModalService, deps: [{ token: i1$
|
|
26385
|
+
WizardModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardModalService, deps: [{ token: i1$8.BsModalService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26291
26386
|
WizardModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardModalService, providedIn: 'root' });
|
|
26292
26387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardModalService, decorators: [{
|
|
26293
26388
|
type: Injectable,
|
|
26294
26389
|
args: [{
|
|
26295
26390
|
providedIn: 'root'
|
|
26296
26391
|
}]
|
|
26297
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
26392
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }]; } });
|
|
26298
26393
|
|
|
26299
26394
|
class WizardModule {
|
|
26300
26395
|
}
|
|
@@ -26744,7 +26839,7 @@ class ProviderConfigurationComponent {
|
|
|
26744
26839
|
}
|
|
26745
26840
|
}
|
|
26746
26841
|
ProviderConfigurationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProviderConfigurationComponent, deps: [{ token: Permissions }, { token: i1.ActivatedRoute }, { token: ModalService }, { token: AlertService }, { token: ProviderDefinitionsService }, { token: ProviderConfigurationService }, { token: C8yJSONSchema }], target: i0.ɵɵFactoryTarget.Component });
|
|
26747
|
-
ProviderConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ProviderConfigurationComponent, selector: "c8y-sms-gateway", providers: [ProviderConfigurationService, ProviderDefinitionsService], ngImport: i0, template: "<c8y-title>\n {{ (layout$ | async)?.pageTitle | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Settings' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle !='Connectivity'\"\n [label]=\"'SMS provider' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle =='Connectivity'\"\n [label]=\"'Connectivity' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle =='Connectivity'\"\n [icon]=\"'cog'\"\n [label]=\"'SIM provider settings' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"row\">\n <div class=\"col-md-8 col-xs-12\">\n <form class=\"card card--fullpage\" (ngSubmit)=\"saveProviderConfiguration()\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">\n {{ (layout$ | async)?.cardTitle | translate }}\n </div>\n </div>\n <div class=\"inner-scroll\">\n <div class=\"card-block\">\n <p *ngIf=\"!!(layout$ | async)?.description\" class=\"m-b-8\">\n {{ (layout$ | async)?.description | translate }}\n </p>\n <c8y-form-group>\n <label for=\"providerName\">{{ (layout$ | async)?.providerName | translate }}</label>\n <c8y-typeahead\n [disabled]=\"!permissions.hasAllRoles((layout$ | async)?.saveRoles || [])\"\n [ngModel]=\"selectedProvider$ | async\"\n [displayProperty]=\"'displayName'\"\n name=\"providerName\"\n placeholder=\"{{ (layout$ | async)?.providerNamePlaceholder | translate }}\"\n (onSearch)=\"providerInput$.next($event)\"\n [allowFreeEntries]=\"false\"\n [required]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *ngFor=\"let provider of providers$ | async\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"changeProvider$.next(provider); providerInput$.next('')\"\n [active]=\"(selectedProvider$ | async) === provider\"\n >\n <c8y-highlight\n [text]=\"provider.displayName || '--'\"\n [pattern]=\"providerInput$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"(layout$ | async)?.providerNameNoMatchesHint | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <formly-form\n *ngIf=\"selectedProvider$ | async\"\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n </div>\n <div class=\"card-footer separator\" *c8yIfAllowed=\"allRoles$ | async; allowAny\">\n <button\n *c8yIfAllowed=\"(layout$ | async)?.deleteRoles\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"deleteProviderConfiguration()\"\n [disabled]=\"\n !(configuration$ | async)?.provider && !(configuration$ | async)?.providerName\n \"\n title=\"{{ (layout$ | async)?.deleteBtnLabel | translate }}\"\n >\n {{ (layout$ | async)?.deleteBtnLabel | translate }}\n </button>\n <button\n *c8yIfAllowed=\"(layout$ | async)?.saveRoles\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"form.invalid || form.pristine\"\n title=\"{{ (layout$ | async)?.saveBtnLabel | translate }}\"\n >\n {{ (layout$ | async)?.saveBtnLabel | translate }}\n </button>\n </div>\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type:
|
|
26842
|
+
ProviderConfigurationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ProviderConfigurationComponent, selector: "c8y-sms-gateway", providers: [ProviderConfigurationService, ProviderDefinitionsService], ngImport: i0, template: "<c8y-title>\n {{ (layout$ | async)?.pageTitle | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Settings' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle !='Connectivity'\"\n [label]=\"'SMS provider' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle =='Connectivity'\"\n [label]=\"'Connectivity' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle =='Connectivity'\"\n [icon]=\"'cog'\"\n [label]=\"'SIM provider settings' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"row\">\n <div class=\"col-md-8 col-xs-12\">\n <form class=\"card card--fullpage\" (ngSubmit)=\"saveProviderConfiguration()\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">\n {{ (layout$ | async)?.cardTitle | translate }}\n </div>\n </div>\n <div class=\"inner-scroll\">\n <div class=\"card-block\">\n <p *ngIf=\"!!(layout$ | async)?.description\" class=\"m-b-8\">\n {{ (layout$ | async)?.description | translate }}\n </p>\n <c8y-form-group>\n <label for=\"providerName\">{{ (layout$ | async)?.providerName | translate }}</label>\n <c8y-typeahead\n [disabled]=\"!permissions.hasAllRoles((layout$ | async)?.saveRoles || [])\"\n [ngModel]=\"selectedProvider$ | async\"\n [displayProperty]=\"'displayName'\"\n name=\"providerName\"\n placeholder=\"{{ (layout$ | async)?.providerNamePlaceholder | translate }}\"\n (onSearch)=\"providerInput$.next($event)\"\n [allowFreeEntries]=\"false\"\n [required]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *ngFor=\"let provider of providers$ | async\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"changeProvider$.next(provider); providerInput$.next('')\"\n [active]=\"(selectedProvider$ | async) === provider\"\n >\n <c8y-highlight\n [text]=\"provider.displayName || '--'\"\n [pattern]=\"providerInput$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"(layout$ | async)?.providerNameNoMatchesHint | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <formly-form\n *ngIf=\"selectedProvider$ | async\"\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n </div>\n <div class=\"card-footer separator\" *c8yIfAllowed=\"allRoles$ | async; allowAny\">\n <button\n *c8yIfAllowed=\"(layout$ | async)?.deleteRoles\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"deleteProviderConfiguration()\"\n [disabled]=\"\n !(configuration$ | async)?.provider && !(configuration$ | async)?.providerName\n \"\n title=\"{{ (layout$ | async)?.deleteBtnLabel | translate }}\"\n >\n {{ (layout$ | async)?.deleteBtnLabel | translate }}\n </button>\n <button\n *c8yIfAllowed=\"(layout$ | async)?.saveRoles\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"form.invalid || form.pristine\"\n title=\"{{ (layout$ | async)?.saveBtnLabel | translate }}\"\n >\n {{ (layout$ | async)?.saveBtnLabel | translate }}\n </button>\n </div>\n </form>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: BreadcrumbComponent, selector: "c8y-breadcrumb" }, { kind: "component", type: BreadcrumbItemComponent, selector: "c8y-breadcrumb-item", inputs: ["icon", "translate", "label", "path", "injector"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "component", type: TitleComponent, selector: "c8y-title", inputs: ["pageTitleUpdate"] }, { kind: "component", type: HighlightComponent, selector: "c8y-highlight", inputs: ["pattern", "text", "elementClass", "shouldTrimPattern"] }, { kind: "component", type: TypeaheadComponent, selector: "c8y-typeahead", inputs: ["required", "maxlength", "disabled", "allowFreeEntries", "placeholder", "displayProperty", "icon", "name", "autoClose", "hideNew", "container", "selected"], outputs: ["onSearch", "onIconClick"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: FormGroupComponent, selector: "c8y-form-group", inputs: ["hasError", "hasWarning", "hasSuccess", "novalidation", "status"] }, { kind: "directive", type: MessageDirective, selector: "c8y-message", inputs: ["name", "text"] }, { kind: "component", type: MessagesComponent, selector: "c8y-messages", inputs: ["show", "defaults"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "emptyActions", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i4$1.FormlyForm, selector: "formly-form", inputs: ["model", "fields", "options", "form"], outputs: ["modelChange"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
26748
26843
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProviderConfigurationComponent, decorators: [{
|
|
26749
26844
|
type: Component,
|
|
26750
26845
|
args: [{ selector: 'c8y-sms-gateway', providers: [ProviderConfigurationService, ProviderDefinitionsService], template: "<c8y-title>\n {{ (layout$ | async)?.pageTitle | translate }}\n</c8y-title>\n\n<c8y-breadcrumb>\n <c8y-breadcrumb-item\n [label]=\"'Settings' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle !='Connectivity'\"\n [label]=\"'SMS provider' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle =='Connectivity'\"\n [label]=\"'Connectivity' | translate\"\n [icon]=\"'cog'\"\n ></c8y-breadcrumb-item>\n <c8y-breadcrumb-item *ngIf=\"(layout$ | async)?.pageTitle =='Connectivity'\"\n [icon]=\"'cog'\"\n [label]=\"'SIM provider settings' | translate\"\n ></c8y-breadcrumb-item>\n</c8y-breadcrumb>\n\n<div class=\"row\">\n <div class=\"col-md-8 col-xs-12\">\n <form class=\"card card--fullpage\" (ngSubmit)=\"saveProviderConfiguration()\">\n <div class=\"card-header separator\">\n <div class=\"card-title\">\n {{ (layout$ | async)?.cardTitle | translate }}\n </div>\n </div>\n <div class=\"inner-scroll\">\n <div class=\"card-block\">\n <p *ngIf=\"!!(layout$ | async)?.description\" class=\"m-b-8\">\n {{ (layout$ | async)?.description | translate }}\n </p>\n <c8y-form-group>\n <label for=\"providerName\">{{ (layout$ | async)?.providerName | translate }}</label>\n <c8y-typeahead\n [disabled]=\"!permissions.hasAllRoles((layout$ | async)?.saveRoles || [])\"\n [ngModel]=\"selectedProvider$ | async\"\n [displayProperty]=\"'displayName'\"\n name=\"providerName\"\n placeholder=\"{{ (layout$ | async)?.providerNamePlaceholder | translate }}\"\n (onSearch)=\"providerInput$.next($event)\"\n [allowFreeEntries]=\"false\"\n [required]=\"true\"\n [container]=\"'body'\"\n >\n <c8y-li\n *ngFor=\"let provider of providers$ | async\"\n class=\"p-l-8 p-r-8 c8y-list__item--link\"\n (click)=\"changeProvider$.next(provider); providerInput$.next('')\"\n [active]=\"(selectedProvider$ | async) === provider\"\n >\n <c8y-highlight\n [text]=\"provider.displayName || '--'\"\n [pattern]=\"providerInput$ | async\"\n ></c8y-highlight>\n </c8y-li>\n </c8y-typeahead>\n <c8y-messages>\n <c8y-message\n name=\"notExisting\"\n [text]=\"(layout$ | async)?.providerNameNoMatchesHint | translate\"\n ></c8y-message>\n </c8y-messages>\n </c8y-form-group>\n <formly-form\n *ngIf=\"selectedProvider$ | async\"\n [form]=\"form\"\n [fields]=\"fields\"\n [model]=\"model\"\n [options]=\"options\"\n ></formly-form>\n </div>\n </div>\n <div class=\"card-footer separator\" *c8yIfAllowed=\"allRoles$ | async; allowAny\">\n <button\n *c8yIfAllowed=\"(layout$ | async)?.deleteRoles\"\n class=\"btn btn-default\"\n type=\"button\"\n (click)=\"deleteProviderConfiguration()\"\n [disabled]=\"\n !(configuration$ | async)?.provider && !(configuration$ | async)?.providerName\n \"\n title=\"{{ (layout$ | async)?.deleteBtnLabel | translate }}\"\n >\n {{ (layout$ | async)?.deleteBtnLabel | translate }}\n </button>\n <button\n *c8yIfAllowed=\"(layout$ | async)?.saveRoles\"\n class=\"btn btn-primary\"\n type=\"submit\"\n [disabled]=\"form.invalid || form.pristine\"\n title=\"{{ (layout$ | async)?.saveBtnLabel | translate }}\"\n >\n {{ (layout$ | async)?.saveBtnLabel | translate }}\n </button>\n </div>\n </form>\n </div>\n</div>\n" }]
|
|
@@ -27061,6 +27156,8 @@ class RealtimeSubjectService {
|
|
|
27061
27156
|
constructor(realtime) {
|
|
27062
27157
|
this.realtime = realtime;
|
|
27063
27158
|
this.subjects$ = new Map();
|
|
27159
|
+
this.reconnect$ = this.createObservableForReconnect().pipe(share());
|
|
27160
|
+
this.connectionStatus$ = this.createObservableForConnectionStatus().pipe(distinctUntilChanged(), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
27064
27161
|
}
|
|
27065
27162
|
getObservableForChannel(channel) {
|
|
27066
27163
|
if (this.subjects$.has(channel)) {
|
|
@@ -27073,7 +27170,7 @@ class RealtimeSubjectService {
|
|
|
27073
27170
|
}
|
|
27074
27171
|
createObservableForChannel(channel, realtime) {
|
|
27075
27172
|
return new Observable(observer => {
|
|
27076
|
-
|
|
27173
|
+
let realtimeSubscription = realtime.subscribe(channel, msg => {
|
|
27077
27174
|
const data = {
|
|
27078
27175
|
channel: msg.channel,
|
|
27079
27176
|
data: msg.data.data,
|
|
@@ -27082,13 +27179,54 @@ class RealtimeSubjectService {
|
|
|
27082
27179
|
};
|
|
27083
27180
|
observer.next(data);
|
|
27084
27181
|
});
|
|
27182
|
+
/**
|
|
27183
|
+
* In (rare) case of a re-handshake, resubscribe valid subscriptions.
|
|
27184
|
+
* @see https://docs.cometd.org/current/reference/#_javascript_subscribe_resubscribe
|
|
27185
|
+
*/
|
|
27186
|
+
const reconnectSubscription = this.reconnect$.subscribe(() => {
|
|
27187
|
+
try {
|
|
27188
|
+
realtimeSubscription = this.realtime.resubscribe(realtimeSubscription);
|
|
27189
|
+
}
|
|
27190
|
+
catch (e) {
|
|
27191
|
+
console.warn(`Failed to resubscribe to channel: "${channel}" after reconnect.`, e);
|
|
27192
|
+
observer.error(e);
|
|
27193
|
+
}
|
|
27194
|
+
});
|
|
27085
27195
|
return {
|
|
27086
|
-
unsubscribe() {
|
|
27196
|
+
unsubscribe: () => {
|
|
27197
|
+
reconnectSubscription.unsubscribe();
|
|
27087
27198
|
realtime.unsubscribe(realtimeSubscription);
|
|
27088
27199
|
}
|
|
27089
27200
|
};
|
|
27090
27201
|
});
|
|
27091
27202
|
}
|
|
27203
|
+
createObservableForReconnect() {
|
|
27204
|
+
return new Observable(observer => {
|
|
27205
|
+
const handle = this.realtime.addHandshakeListener(msg => {
|
|
27206
|
+
if (msg.successful && msg.reestablish) {
|
|
27207
|
+
observer.next();
|
|
27208
|
+
}
|
|
27209
|
+
});
|
|
27210
|
+
return {
|
|
27211
|
+
unsubscribe: () => {
|
|
27212
|
+
this.realtime.removeListener(handle);
|
|
27213
|
+
}
|
|
27214
|
+
};
|
|
27215
|
+
});
|
|
27216
|
+
}
|
|
27217
|
+
createObservableForConnectionStatus() {
|
|
27218
|
+
return new Observable(observer => {
|
|
27219
|
+
observer.next(!this.realtime.isDisconnected() ? 'connected' : 'disconnected');
|
|
27220
|
+
const handle = this.realtime.addConnectListener(msg => {
|
|
27221
|
+
observer.next(msg.successful ? 'connected' : 'disconnected');
|
|
27222
|
+
});
|
|
27223
|
+
return {
|
|
27224
|
+
unsubscribe: () => {
|
|
27225
|
+
this.realtime.removeListener(handle);
|
|
27226
|
+
}
|
|
27227
|
+
};
|
|
27228
|
+
});
|
|
27229
|
+
}
|
|
27092
27230
|
}
|
|
27093
27231
|
RealtimeSubjectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RealtimeSubjectService, deps: [{ token: i1$2.Realtime }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
27094
27232
|
RealtimeSubjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RealtimeSubjectService, providedIn: 'root' });
|