@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 { filter, startWith, switchMap, map, distinctUntilChanged, shareReplay, s
|
|
|
5
5
|
import * as i1 from '@angular/router';
|
|
6
6
|
import { NavigationEnd, RouterModule as RouterModule$1, PRIMARY_OUTLET, ROUTES, RouterLinkActive, ROUTER_CONFIGURATION } from '@angular/router';
|
|
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, flow, isNil, chunk, transform, identity, 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';
|
|
@@ -3779,7 +3779,7 @@ const ICONS = [
|
|
|
3779
3779
|
class EmptyStateComponent {
|
|
3780
3780
|
}
|
|
3781
3781
|
EmptyStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3782
|
-
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:
|
|
3782
|
+
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" }] });
|
|
3783
3783
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: EmptyStateComponent, decorators: [{
|
|
3784
3784
|
type: Component,
|
|
3785
3785
|
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" }]
|
|
@@ -4166,7 +4166,7 @@ class LoadMoreComponent {
|
|
|
4166
4166
|
}
|
|
4167
4167
|
}
|
|
4168
4168
|
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 });
|
|
4169
|
-
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:
|
|
4169
|
+
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" }] });
|
|
4170
4170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoadMoreComponent, decorators: [{
|
|
4171
4171
|
type: Component,
|
|
4172
4172
|
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" }]
|
|
@@ -4440,7 +4440,7 @@ class VirtualScrollerWrapperComponent {
|
|
|
4440
4440
|
}
|
|
4441
4441
|
}
|
|
4442
4442
|
VirtualScrollerWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VirtualScrollerWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4443
|
-
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:
|
|
4443
|
+
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" }] });
|
|
4444
4444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VirtualScrollerWrapperComponent, decorators: [{
|
|
4445
4445
|
type: Component,
|
|
4446
4446
|
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" }]
|
|
@@ -5747,7 +5747,7 @@ function strToNumber(value) {
|
|
|
5747
5747
|
class OperationResultComponent {
|
|
5748
5748
|
}
|
|
5749
5749
|
OperationResultComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: OperationResultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5750
|
-
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:
|
|
5750
|
+
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"] }] });
|
|
5751
5751
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: OperationResultComponent, decorators: [{
|
|
5752
5752
|
type: Component,
|
|
5753
5753
|
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" }]
|
|
@@ -5884,7 +5884,7 @@ class ProgressBarComponent {
|
|
|
5884
5884
|
}
|
|
5885
5885
|
}
|
|
5886
5886
|
ProgressBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
5887
|
-
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:
|
|
5887
|
+
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" }] });
|
|
5888
5888
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProgressBarComponent, decorators: [{
|
|
5889
5889
|
type: Component,
|
|
5890
5890
|
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" }]
|
|
@@ -6617,14 +6617,14 @@ class MarkdownToHtmlPipe {
|
|
|
6617
6617
|
: of('');
|
|
6618
6618
|
}
|
|
6619
6619
|
}
|
|
6620
|
-
MarkdownToHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MarkdownToHtmlPipe, deps: [{ token: i1$
|
|
6620
|
+
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 });
|
|
6621
6621
|
MarkdownToHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: MarkdownToHtmlPipe, name: "markdownToHtml" });
|
|
6622
6622
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MarkdownToHtmlPipe, decorators: [{
|
|
6623
6623
|
type: Pipe,
|
|
6624
6624
|
args: [{
|
|
6625
6625
|
name: 'markdownToHtml'
|
|
6626
6626
|
}]
|
|
6627
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
6627
|
+
}], ctorParameters: function () { return [{ type: i1$5.DomSanitizer }]; } });
|
|
6628
6628
|
|
|
6629
6629
|
class StringifyObjectPipe {
|
|
6630
6630
|
constructor(c8yDatePipe) {
|
|
@@ -7391,7 +7391,7 @@ class ActionBarComponent {
|
|
|
7391
7391
|
}
|
|
7392
7392
|
}
|
|
7393
7393
|
ActionBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionBarComponent, deps: [{ token: GainsightService }], target: i0.ɵɵFactoryTarget.Component });
|
|
7394
|
-
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$
|
|
7394
|
+
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" }] });
|
|
7395
7395
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionBarComponent, decorators: [{
|
|
7396
7396
|
type: Component,
|
|
7397
7397
|
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" }]
|
|
@@ -7581,7 +7581,7 @@ class ActionOutletComponent {
|
|
|
7581
7581
|
}
|
|
7582
7582
|
}
|
|
7583
7583
|
ActionOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7584
|
-
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:
|
|
7584
|
+
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" }] });
|
|
7585
7585
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ActionOutletComponent, decorators: [{
|
|
7586
7586
|
type: Component,
|
|
7587
7587
|
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" }]
|
|
@@ -8063,7 +8063,7 @@ class AlertOutletComponent extends AlertOutletBase {
|
|
|
8063
8063
|
}
|
|
8064
8064
|
}
|
|
8065
8065
|
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 });
|
|
8066
|
-
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:
|
|
8066
|
+
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" }] });
|
|
8067
8067
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AlertOutletComponent, decorators: [{
|
|
8068
8068
|
type: Component,
|
|
8069
8069
|
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" }]
|
|
@@ -10628,7 +10628,7 @@ class SearchOutletComponent {
|
|
|
10628
10628
|
}
|
|
10629
10629
|
}
|
|
10630
10630
|
SearchOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SearchOutletComponent, deps: [{ token: AlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10631
|
-
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:
|
|
10631
|
+
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"] }] });
|
|
10632
10632
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SearchOutletComponent, decorators: [{
|
|
10633
10633
|
type: Component,
|
|
10634
10634
|
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" }]
|
|
@@ -10649,7 +10649,7 @@ class BreadcrumbOutletComponent {
|
|
|
10649
10649
|
}
|
|
10650
10650
|
}
|
|
10651
10651
|
BreadcrumbOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10652
|
-
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:
|
|
10652
|
+
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" }] });
|
|
10653
10653
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbOutletComponent, decorators: [{
|
|
10654
10654
|
type: Component,
|
|
10655
10655
|
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" }]
|
|
@@ -10754,7 +10754,7 @@ class AppIconComponent {
|
|
|
10754
10754
|
}
|
|
10755
10755
|
}
|
|
10756
10756
|
AppIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppIconComponent, deps: [{ token: OptionsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10757
|
-
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:
|
|
10757
|
+
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"] }] });
|
|
10758
10758
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppIconComponent, decorators: [{
|
|
10759
10759
|
type: Component,
|
|
10760
10760
|
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" }]
|
|
@@ -10935,7 +10935,7 @@ class AppSwitcherComponent {
|
|
|
10935
10935
|
}
|
|
10936
10936
|
}
|
|
10937
10937
|
AppSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppSwitcherComponent, deps: [{ token: AppSwitcherService }], target: i0.ɵɵFactoryTarget.Component });
|
|
10938
|
-
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$
|
|
10938
|
+
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" }] });
|
|
10939
10939
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AppSwitcherComponent, decorators: [{
|
|
10940
10940
|
type: Component,
|
|
10941
10941
|
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" }]
|
|
@@ -10982,12 +10982,12 @@ class ConfirmModalComponent {
|
|
|
10982
10982
|
this.dismiss();
|
|
10983
10983
|
}
|
|
10984
10984
|
}
|
|
10985
|
-
ConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfirmModalComponent, deps: [{ token: i1$
|
|
10986
|
-
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:
|
|
10985
|
+
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 });
|
|
10986
|
+
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" }] });
|
|
10987
10987
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfirmModalComponent, decorators: [{
|
|
10988
10988
|
type: Component,
|
|
10989
|
-
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" }]
|
|
10990
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
10989
|
+
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" }]
|
|
10990
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }]; }, propDecorators: { title: [{
|
|
10991
10991
|
type: Input
|
|
10992
10992
|
}], body: [{
|
|
10993
10993
|
type: Input
|
|
@@ -11086,14 +11086,14 @@ class ModalService {
|
|
|
11086
11086
|
});
|
|
11087
11087
|
}
|
|
11088
11088
|
}
|
|
11089
|
-
ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalService, deps: [{ token: i1$
|
|
11089
|
+
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 });
|
|
11090
11090
|
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalService, providedIn: 'root' });
|
|
11091
11091
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalService, decorators: [{
|
|
11092
11092
|
type: Injectable,
|
|
11093
11093
|
args: [{
|
|
11094
11094
|
providedIn: 'root'
|
|
11095
11095
|
}]
|
|
11096
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
11096
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }, { type: GainsightService }]; } });
|
|
11097
11097
|
|
|
11098
11098
|
/**
|
|
11099
11099
|
* Service to manage the login.
|
|
@@ -11677,12 +11677,12 @@ class LoginService {
|
|
|
11677
11677
|
});
|
|
11678
11678
|
}
|
|
11679
11679
|
}
|
|
11680
|
-
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:
|
|
11680
|
+
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 });
|
|
11681
11681
|
LoginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService });
|
|
11682
11682
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService, decorators: [{
|
|
11683
11683
|
type: Injectable
|
|
11684
11684
|
}], ctorParameters: function () {
|
|
11685
|
-
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:
|
|
11685
|
+
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: [{
|
|
11686
11686
|
type: Optional
|
|
11687
11687
|
}] }];
|
|
11688
11688
|
} });
|
|
@@ -11847,7 +11847,7 @@ class MessagesComponent {
|
|
|
11847
11847
|
}
|
|
11848
11848
|
}
|
|
11849
11849
|
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 });
|
|
11850
|
-
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:
|
|
11850
|
+
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" }] });
|
|
11851
11851
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: MessagesComponent, decorators: [{
|
|
11852
11852
|
type: Component,
|
|
11853
11853
|
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" }]
|
|
@@ -11955,7 +11955,7 @@ class FormGroupComponent {
|
|
|
11955
11955
|
}
|
|
11956
11956
|
}
|
|
11957
11957
|
FormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FormGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11958
|
-
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:
|
|
11958
|
+
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"] }] });
|
|
11959
11959
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FormGroupComponent, decorators: [{
|
|
11960
11960
|
type: Component,
|
|
11961
11961
|
args: [{ selector: 'c8y-form-group', host: {
|
|
@@ -12146,13 +12146,13 @@ class ModalComponent {
|
|
|
12146
12146
|
}
|
|
12147
12147
|
}
|
|
12148
12148
|
}
|
|
12149
|
-
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalComponent, deps: [{ token: i1$
|
|
12150
|
-
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:
|
|
12149
|
+
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 });
|
|
12150
|
+
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" }] });
|
|
12151
12151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalComponent, decorators: [{
|
|
12152
12152
|
type: Component,
|
|
12153
12153
|
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" }]
|
|
12154
12154
|
}], ctorParameters: function () {
|
|
12155
|
-
return [{ type: i1$
|
|
12155
|
+
return [{ type: i1$8.BsModalRef, decorators: [{
|
|
12156
12156
|
type: Optional
|
|
12157
12157
|
}] }];
|
|
12158
12158
|
}, propDecorators: { onDismiss: [{
|
|
@@ -12261,12 +12261,12 @@ class CurrentPasswordModalComponent {
|
|
|
12261
12261
|
this.modal.hide();
|
|
12262
12262
|
}
|
|
12263
12263
|
}
|
|
12264
|
-
CurrentPasswordModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CurrentPasswordModalComponent, deps: [{ token: i1$
|
|
12264
|
+
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 });
|
|
12265
12265
|
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" }] });
|
|
12266
12266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CurrentPasswordModalComponent, decorators: [{
|
|
12267
12267
|
type: Component,
|
|
12268
12268
|
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" }]
|
|
12269
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12269
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }]; }, propDecorators: { currentPasswordEmitter: [{
|
|
12270
12270
|
type: Output
|
|
12271
12271
|
}] } });
|
|
12272
12272
|
|
|
@@ -12348,11 +12348,11 @@ class PasswordService {
|
|
|
12348
12348
|
return this.DEFAULT_PASSWORD_MIN_LENGTH;
|
|
12349
12349
|
}
|
|
12350
12350
|
}
|
|
12351
|
-
PasswordService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordService, deps: [{ token: i1$
|
|
12351
|
+
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 });
|
|
12352
12352
|
PasswordService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordService });
|
|
12353
12353
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordService, decorators: [{
|
|
12354
12354
|
type: Injectable
|
|
12355
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12355
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }]; } });
|
|
12356
12356
|
|
|
12357
12357
|
class TotpChallengeComponent {
|
|
12358
12358
|
constructor(loginService, users, alert) {
|
|
@@ -12399,7 +12399,7 @@ class TotpChallengeComponent {
|
|
|
12399
12399
|
}
|
|
12400
12400
|
}
|
|
12401
12401
|
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 });
|
|
12402
|
-
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:
|
|
12402
|
+
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 }] });
|
|
12403
12403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpChallengeComponent, decorators: [{
|
|
12404
12404
|
type: Component,
|
|
12405
12405
|
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" }]
|
|
@@ -12453,7 +12453,7 @@ class TotpSetupComponent {
|
|
|
12453
12453
|
}
|
|
12454
12454
|
}
|
|
12455
12455
|
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 });
|
|
12456
|
-
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:
|
|
12456
|
+
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"] }] });
|
|
12457
12457
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpSetupComponent, decorators: [{
|
|
12458
12458
|
type: Component,
|
|
12459
12459
|
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" }]
|
|
@@ -12483,12 +12483,12 @@ class UserTotpSetupComponent {
|
|
|
12483
12483
|
this.modal.hide();
|
|
12484
12484
|
}
|
|
12485
12485
|
}
|
|
12486
|
-
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$
|
|
12486
|
+
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 });
|
|
12487
12487
|
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" }] });
|
|
12488
12488
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserTotpSetupComponent, decorators: [{
|
|
12489
12489
|
type: Component,
|
|
12490
12490
|
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" }]
|
|
12491
|
-
}], ctorParameters: function () { return [{ type: i1$2.UserService }, { type: ModalService }, { type: i1$
|
|
12491
|
+
}], ctorParameters: function () { return [{ type: i1$2.UserService }, { type: ModalService }, { type: i1$8.BsModalRef }, { type: LoginService }]; } });
|
|
12492
12492
|
|
|
12493
12493
|
class PhoneValidationDirective {
|
|
12494
12494
|
constructor() {
|
|
@@ -12697,7 +12697,7 @@ class PasswordCheckListComponent {
|
|
|
12697
12697
|
}
|
|
12698
12698
|
}
|
|
12699
12699
|
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 });
|
|
12700
|
-
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:
|
|
12700
|
+
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" }] });
|
|
12701
12701
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PasswordCheckListComponent, decorators: [{
|
|
12702
12702
|
type: Component,
|
|
12703
12703
|
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" }]
|
|
@@ -12743,7 +12743,7 @@ class NewPasswordComponent {
|
|
|
12743
12743
|
}
|
|
12744
12744
|
}
|
|
12745
12745
|
NewPasswordComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NewPasswordComponent, deps: [{ token: LoginService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12746
|
-
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:
|
|
12746
|
+
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 }] });
|
|
12747
12747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NewPasswordComponent, decorators: [{
|
|
12748
12748
|
type: Component,
|
|
12749
12749
|
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" }]
|
|
@@ -12856,12 +12856,12 @@ class UserEditComponent {
|
|
|
12856
12856
|
});
|
|
12857
12857
|
}
|
|
12858
12858
|
}
|
|
12859
|
-
UserEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditComponent, deps: [{ token: AppStateService }, { token: TranslateService }, { token: i1$
|
|
12860
|
-
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" }] });
|
|
12859
|
+
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 });
|
|
12860
|
+
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" }] });
|
|
12861
12861
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditComponent, decorators: [{
|
|
12862
12862
|
type: Component,
|
|
12863
12863
|
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" }]
|
|
12864
|
-
}], ctorParameters: function () { return [{ type: AppStateService }, { type: TranslateService }, { type: i1$
|
|
12864
|
+
}], 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: [{
|
|
12865
12865
|
type: Input
|
|
12866
12866
|
}], loading: [{
|
|
12867
12867
|
type: Input
|
|
@@ -13040,12 +13040,12 @@ class UserEditModalComponent {
|
|
|
13040
13040
|
this.auth.updateCredentials(newCredentials);
|
|
13041
13041
|
}
|
|
13042
13042
|
}
|
|
13043
|
-
UserEditModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditModalComponent, deps: [{ token: i1$
|
|
13044
|
-
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:
|
|
13043
|
+
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 });
|
|
13044
|
+
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" }] });
|
|
13045
13045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserEditModalComponent, decorators: [{
|
|
13046
13046
|
type: Component,
|
|
13047
13047
|
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" }]
|
|
13048
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
13048
|
+
}], 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 }]; } });
|
|
13049
13049
|
|
|
13050
13050
|
class UserMenuItemComponent {
|
|
13051
13051
|
constructor(userService) {
|
|
@@ -13065,7 +13065,7 @@ class UserMenuItemComponent {
|
|
|
13065
13065
|
}
|
|
13066
13066
|
}
|
|
13067
13067
|
UserMenuItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuItemComponent, deps: [{ token: UserMenuService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13068
|
-
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:
|
|
13068
|
+
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" }] });
|
|
13069
13069
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuItemComponent, decorators: [{
|
|
13070
13070
|
type: Component,
|
|
13071
13071
|
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" }]
|
|
@@ -13230,12 +13230,12 @@ class UserMenuOutletComponent {
|
|
|
13230
13230
|
});
|
|
13231
13231
|
}
|
|
13232
13232
|
}
|
|
13233
|
-
UserMenuOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuOutletComponent, deps: [{ token: AppStateService }, { token: i1$
|
|
13234
|
-
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:
|
|
13233
|
+
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 });
|
|
13234
|
+
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" }] });
|
|
13235
13235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserMenuOutletComponent, decorators: [{
|
|
13236
13236
|
type: Component,
|
|
13237
13237
|
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" }]
|
|
13238
|
-
}], ctorParameters: function () { return [{ type: AppStateService }, { type: i1$
|
|
13238
|
+
}], 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: [{
|
|
13239
13239
|
type: Input
|
|
13240
13240
|
}] } });
|
|
13241
13241
|
|
|
@@ -13456,12 +13456,12 @@ class VersionDetailsModalComponent {
|
|
|
13456
13456
|
});
|
|
13457
13457
|
}
|
|
13458
13458
|
}
|
|
13459
|
-
VersionDetailsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionDetailsModalComponent, deps: [{ token: i1$
|
|
13460
|
-
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:
|
|
13459
|
+
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 });
|
|
13460
|
+
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" }] });
|
|
13461
13461
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionDetailsModalComponent, decorators: [{
|
|
13462
13462
|
type: Component,
|
|
13463
13463
|
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" }]
|
|
13464
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
13464
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }, { type: VersionService }, { type: PlatformDetailsService }]; } });
|
|
13465
13465
|
|
|
13466
13466
|
class ClipboardService {
|
|
13467
13467
|
constructor(alertService) {
|
|
@@ -13529,12 +13529,12 @@ class VersionListComponent {
|
|
|
13529
13529
|
this.clipboardService.writeText(text);
|
|
13530
13530
|
}
|
|
13531
13531
|
}
|
|
13532
|
-
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$
|
|
13533
|
-
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:
|
|
13532
|
+
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 });
|
|
13533
|
+
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" }] });
|
|
13534
13534
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: VersionListComponent, decorators: [{
|
|
13535
13535
|
type: Component,
|
|
13536
13536
|
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" }]
|
|
13537
|
-
}], ctorParameters: function () { return [{ type: VersionService }, { type: AppStateService }, { type: ClipboardService }, { type: i1$
|
|
13537
|
+
}], ctorParameters: function () { return [{ type: VersionService }, { type: AppStateService }, { type: ClipboardService }, { type: i1$8.BsModalService }]; } });
|
|
13538
13538
|
|
|
13539
13539
|
class UserRolesListPipe {
|
|
13540
13540
|
constructor(translateService) {
|
|
@@ -13599,7 +13599,7 @@ class RightDrawerComponent {
|
|
|
13599
13599
|
}
|
|
13600
13600
|
}
|
|
13601
13601
|
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 });
|
|
13602
|
-
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:
|
|
13602
|
+
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" }] });
|
|
13603
13603
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RightDrawerComponent, decorators: [{
|
|
13604
13604
|
type: Component,
|
|
13605
13605
|
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" }]
|
|
@@ -13647,7 +13647,7 @@ class HeaderBarComponent {
|
|
|
13647
13647
|
}
|
|
13648
13648
|
}
|
|
13649
13649
|
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 });
|
|
13650
|
-
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:
|
|
13650
|
+
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" }] });
|
|
13651
13651
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HeaderBarComponent, decorators: [{
|
|
13652
13652
|
type: Component,
|
|
13653
13653
|
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" }]
|
|
@@ -13855,7 +13855,7 @@ class SmsChallengeComponent {
|
|
|
13855
13855
|
}
|
|
13856
13856
|
}
|
|
13857
13857
|
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 });
|
|
13858
|
-
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:
|
|
13858
|
+
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" }] });
|
|
13859
13859
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SmsChallengeComponent, decorators: [{
|
|
13860
13860
|
type: Component,
|
|
13861
13861
|
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" }]
|
|
@@ -13912,7 +13912,7 @@ class ProvidePhoneNumberComponent {
|
|
|
13912
13912
|
}
|
|
13913
13913
|
}
|
|
13914
13914
|
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 });
|
|
13915
|
-
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:
|
|
13915
|
+
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" }] });
|
|
13916
13916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProvidePhoneNumberComponent, decorators: [{
|
|
13917
13917
|
type: Component,
|
|
13918
13918
|
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" }]
|
|
@@ -13956,7 +13956,7 @@ class RecoverPasswordComponent {
|
|
|
13956
13956
|
}
|
|
13957
13957
|
}
|
|
13958
13958
|
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 });
|
|
13959
|
-
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:
|
|
13959
|
+
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" }] });
|
|
13960
13960
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RecoverPasswordComponent, decorators: [{
|
|
13961
13961
|
type: Component,
|
|
13962
13962
|
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" }]
|
|
@@ -14071,7 +14071,7 @@ class PopoverConfirmComponent {
|
|
|
14071
14071
|
}
|
|
14072
14072
|
}
|
|
14073
14073
|
PopoverConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14074
|
-
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:
|
|
14074
|
+
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" }] });
|
|
14075
14075
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PopoverConfirmComponent, decorators: [{
|
|
14076
14076
|
type: Component,
|
|
14077
14077
|
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" }]
|
|
@@ -14103,7 +14103,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
14103
14103
|
class ModalModule {
|
|
14104
14104
|
}
|
|
14105
14105
|
ModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14106
|
-
ModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, declarations: [ConfirmModalComponent, ModalComponent, PopoverConfirmComponent], imports: [i1$
|
|
14106
|
+
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] });
|
|
14107
14107
|
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()] });
|
|
14108
14108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ModalModule, decorators: [{
|
|
14109
14109
|
type: NgModule,
|
|
@@ -14227,7 +14227,7 @@ class InputGroupListComponent {
|
|
|
14227
14227
|
}
|
|
14228
14228
|
}
|
|
14229
14229
|
InputGroupListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: InputGroupListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14230
|
-
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:
|
|
14230
|
+
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" }] });
|
|
14231
14231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: InputGroupListComponent, decorators: [{
|
|
14232
14232
|
type: Component,
|
|
14233
14233
|
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" }]
|
|
@@ -14333,7 +14333,7 @@ class IpRangeInputListComponent {
|
|
|
14333
14333
|
}
|
|
14334
14334
|
}
|
|
14335
14335
|
IpRangeInputListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: IpRangeInputListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14336
|
-
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:
|
|
14336
|
+
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" }] });
|
|
14337
14337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: IpRangeInputListComponent, decorators: [{
|
|
14338
14338
|
type: Component,
|
|
14339
14339
|
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" }]
|
|
@@ -14461,7 +14461,7 @@ class RangeComponent {
|
|
|
14461
14461
|
}
|
|
14462
14462
|
}
|
|
14463
14463
|
RangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14464
|
-
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:
|
|
14464
|
+
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"] }] });
|
|
14465
14465
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeComponent, decorators: [{
|
|
14466
14466
|
type: Component,
|
|
14467
14467
|
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" }]
|
|
@@ -14865,7 +14865,7 @@ class ChangePasswordComponent {
|
|
|
14865
14865
|
}
|
|
14866
14866
|
}
|
|
14867
14867
|
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 });
|
|
14868
|
-
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:
|
|
14868
|
+
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" }] });
|
|
14869
14869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ChangePasswordComponent, decorators: [{
|
|
14870
14870
|
type: Component,
|
|
14871
14871
|
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" }]
|
|
@@ -14974,7 +14974,7 @@ class CredentialsComponent {
|
|
|
14974
14974
|
}
|
|
14975
14975
|
}
|
|
14976
14976
|
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 });
|
|
14977
|
-
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:
|
|
14977
|
+
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" }] });
|
|
14978
14978
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CredentialsComponent, decorators: [{
|
|
14979
14979
|
type: Component,
|
|
14980
14980
|
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" }]
|
|
@@ -15039,7 +15039,7 @@ class TotpAuthComponent {
|
|
|
15039
15039
|
}
|
|
15040
15040
|
}
|
|
15041
15041
|
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 });
|
|
15042
|
-
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:
|
|
15042
|
+
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" }] });
|
|
15043
15043
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TotpAuthComponent, decorators: [{
|
|
15044
15044
|
type: Component,
|
|
15045
15045
|
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" }]
|
|
@@ -15214,7 +15214,7 @@ class LoginComponent {
|
|
|
15214
15214
|
}
|
|
15215
15215
|
}
|
|
15216
15216
|
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 });
|
|
15217
|
-
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:
|
|
15217
|
+
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"] }] });
|
|
15218
15218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginComponent, decorators: [{
|
|
15219
15219
|
type: Component,
|
|
15220
15220
|
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" }]
|
|
@@ -15316,7 +15316,7 @@ class TabsOutletComponent {
|
|
|
15316
15316
|
}
|
|
15317
15317
|
}
|
|
15318
15318
|
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 });
|
|
15319
|
-
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:
|
|
15319
|
+
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" }] });
|
|
15320
15320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TabsOutletComponent, decorators: [{
|
|
15321
15321
|
type: Component,
|
|
15322
15322
|
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" }]
|
|
@@ -15516,7 +15516,7 @@ class NavigatorNodeComponent {
|
|
|
15516
15516
|
}
|
|
15517
15517
|
}
|
|
15518
15518
|
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 });
|
|
15519
|
-
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$
|
|
15519
|
+
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" }] });
|
|
15520
15520
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorNodeComponent, decorators: [{
|
|
15521
15521
|
type: Component,
|
|
15522
15522
|
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" }]
|
|
@@ -15587,7 +15587,7 @@ class NavigatorOutletComponent {
|
|
|
15587
15587
|
}
|
|
15588
15588
|
}
|
|
15589
15589
|
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 });
|
|
15590
|
-
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:
|
|
15590
|
+
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" }] });
|
|
15591
15591
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorOutletComponent, decorators: [{
|
|
15592
15592
|
type: Component,
|
|
15593
15593
|
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" }]
|
|
@@ -15655,7 +15655,7 @@ class C8yStepperProgress {
|
|
|
15655
15655
|
}
|
|
15656
15656
|
}
|
|
15657
15657
|
C8yStepperProgress.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
15658
|
-
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:
|
|
15658
|
+
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]" }] });
|
|
15659
15659
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperProgress, decorators: [{
|
|
15660
15660
|
type: Component,
|
|
15661
15661
|
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" }]
|
|
@@ -15841,18 +15841,18 @@ class C8yStepper extends CdkStepper {
|
|
|
15841
15841
|
}
|
|
15842
15842
|
}
|
|
15843
15843
|
}
|
|
15844
|
-
C8yStepper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepper, deps: [{ token: i1$
|
|
15844
|
+
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 });
|
|
15845
15845
|
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: [
|
|
15846
15846
|
{ provide: CdkStepper, useExisting: C8yStepper },
|
|
15847
15847
|
{ provide: PRODUCT_EXPERIENCE_EVENT_SOURCE, useExisting: forwardRef(() => C8yStepper) }
|
|
15848
|
-
], 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:
|
|
15848
|
+
], 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" }] });
|
|
15849
15849
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepper, decorators: [{
|
|
15850
15850
|
type: Component,
|
|
15851
15851
|
args: [{ selector: 'c8y-stepper', providers: [
|
|
15852
15852
|
{ provide: CdkStepper, useExisting: C8yStepper },
|
|
15853
15853
|
{ provide: PRODUCT_EXPERIENCE_EVENT_SOURCE, useExisting: forwardRef(() => C8yStepper) }
|
|
15854
15854
|
], 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" }]
|
|
15855
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
15855
|
+
}], ctorParameters: function () { return [{ type: i1$a.Directionality }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { disableDefaultIcons: [{
|
|
15856
15856
|
type: Input
|
|
15857
15857
|
}], disableProgressButtons: [{
|
|
15858
15858
|
type: Input
|
|
@@ -16071,15 +16071,15 @@ class C8yStepperButtons {
|
|
|
16071
16071
|
this.gainsightService.triggerEvent(eventName, eventData);
|
|
16072
16072
|
}
|
|
16073
16073
|
}
|
|
16074
|
-
C8yStepperButtons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperButtons, deps: [{ token: C8yStepper, host: true }, { token: i2$
|
|
16075
|
-
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:
|
|
16074
|
+
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 });
|
|
16075
|
+
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" }] });
|
|
16076
16076
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: C8yStepperButtons, decorators: [{
|
|
16077
16077
|
type: Component,
|
|
16078
16078
|
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" }]
|
|
16079
16079
|
}], ctorParameters: function () {
|
|
16080
16080
|
return [{ type: C8yStepper, decorators: [{
|
|
16081
16081
|
type: Host
|
|
16082
|
-
}] }, { type: i2$
|
|
16082
|
+
}] }, { type: i2$3.CdkStep, decorators: [{
|
|
16083
16083
|
type: Host
|
|
16084
16084
|
}] }, { type: GainsightService }];
|
|
16085
16085
|
}, propDecorators: { labels: [{
|
|
@@ -16106,7 +16106,7 @@ class StepperOutletComponent {
|
|
|
16106
16106
|
}
|
|
16107
16107
|
}
|
|
16108
16108
|
StepperOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: StepperOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16109
|
-
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:
|
|
16109
|
+
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"] }] });
|
|
16110
16110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: StepperOutletComponent, decorators: [{
|
|
16111
16111
|
type: Component,
|
|
16112
16112
|
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" }]
|
|
@@ -16240,7 +16240,7 @@ class PropertiesListComponent {
|
|
|
16240
16240
|
}
|
|
16241
16241
|
}
|
|
16242
16242
|
PropertiesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PropertiesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16243
|
-
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:
|
|
16243
|
+
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" }] });
|
|
16244
16244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: PropertiesListComponent, decorators: [{
|
|
16245
16245
|
type: Component,
|
|
16246
16246
|
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" }]
|
|
@@ -16461,7 +16461,7 @@ class SetupComponent {
|
|
|
16461
16461
|
}
|
|
16462
16462
|
}
|
|
16463
16463
|
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 });
|
|
16464
|
-
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" }] });
|
|
16464
|
+
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" }] });
|
|
16465
16465
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupComponent, decorators: [{
|
|
16466
16466
|
type: Component,
|
|
16467
16467
|
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" }]
|
|
@@ -16503,7 +16503,7 @@ class CookieBannerPreferencesModalComponent {
|
|
|
16503
16503
|
}
|
|
16504
16504
|
}
|
|
16505
16505
|
CookieBannerPreferencesModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerPreferencesModalComponent, deps: [{ token: CookieBannerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16506
|
-
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:
|
|
16506
|
+
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" }] });
|
|
16507
16507
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerPreferencesModalComponent, decorators: [{
|
|
16508
16508
|
type: Component,
|
|
16509
16509
|
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" }]
|
|
@@ -16562,12 +16562,12 @@ class CookieBannerComponent {
|
|
|
16562
16562
|
this.cookieBannerService.isCookieBannerShowed$.next(shouldShow);
|
|
16563
16563
|
}
|
|
16564
16564
|
}
|
|
16565
|
-
CookieBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerComponent, deps: [{ token: i1$
|
|
16566
|
-
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:
|
|
16565
|
+
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 });
|
|
16566
|
+
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" }] });
|
|
16567
16567
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CookieBannerComponent, decorators: [{
|
|
16568
16568
|
type: Component,
|
|
16569
16569
|
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" }]
|
|
16570
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
16570
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }, { type: CookieBannerService }]; } });
|
|
16571
16571
|
|
|
16572
16572
|
class BootstrapComponent {
|
|
16573
16573
|
constructor(tabs, ui, navigator, actionBar, headerService, options, pluginsResolve, setupService) {
|
|
@@ -16660,7 +16660,7 @@ class BootstrapComponent {
|
|
|
16660
16660
|
}
|
|
16661
16661
|
}
|
|
16662
16662
|
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 });
|
|
16663
|
-
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:
|
|
16663
|
+
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" }] });
|
|
16664
16664
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BootstrapComponent, decorators: [{
|
|
16665
16665
|
type: Component,
|
|
16666
16666
|
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" }]
|
|
@@ -16723,7 +16723,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
16723
16723
|
class BreadcrumbModule {
|
|
16724
16724
|
}
|
|
16725
16725
|
BreadcrumbModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16726
|
-
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$
|
|
16726
|
+
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] });
|
|
16727
16727
|
BreadcrumbModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, imports: [RouterModule$1.forChild([]), CommonModule, TooltipModule.forRoot()] });
|
|
16728
16728
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: BreadcrumbModule, decorators: [{
|
|
16729
16729
|
type: NgModule,
|
|
@@ -16742,7 +16742,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
16742
16742
|
class NavigatorModule {
|
|
16743
16743
|
}
|
|
16744
16744
|
NavigatorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16745
|
-
NavigatorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, declarations: [NavigatorOutletComponent, NavigatorNodeComponent, NavigatorIconComponent], imports: [RouterModule$1, i1$
|
|
16745
|
+
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] });
|
|
16746
16746
|
NavigatorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, imports: [RouterModule$1, CollapseModule.forRoot(), CommonModule, ModalModule] });
|
|
16747
16747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NavigatorModule, decorators: [{
|
|
16748
16748
|
type: NgModule,
|
|
@@ -16956,7 +16956,7 @@ ListItemActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
16956
16956
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
16957
16957
|
useExisting: forwardRef(() => ListItemActionComponent)
|
|
16958
16958
|
}
|
|
16959
|
-
], 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:
|
|
16959
|
+
], 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" }] });
|
|
16960
16960
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemActionComponent, decorators: [{
|
|
16961
16961
|
type: Component,
|
|
16962
16962
|
args: [{ selector: 'c8y-list-item-action, c8y-li-action', providers: [
|
|
@@ -17027,7 +17027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
17027
17027
|
class ListItemFooterComponent {
|
|
17028
17028
|
}
|
|
17029
17029
|
ListItemFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17030
|
-
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:
|
|
17030
|
+
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"] }] });
|
|
17031
17031
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemFooterComponent, decorators: [{
|
|
17032
17032
|
type: Component,
|
|
17033
17033
|
args: [{ selector: 'c8y-list-item-footer, c8y-li-footer', template: "<span *ngIf=\"footer\">{{footer}}</span>\n<ng-content></ng-content>\n" }]
|
|
@@ -17189,7 +17189,7 @@ class ListItemComponent {
|
|
|
17189
17189
|
}
|
|
17190
17190
|
}
|
|
17191
17191
|
ListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17192
|
-
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:
|
|
17192
|
+
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" }] });
|
|
17193
17193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemComponent, decorators: [{
|
|
17194
17194
|
type: Component,
|
|
17195
17195
|
args: [{ selector: 'c8y-list-item, c8y-li', host: {
|
|
@@ -17472,7 +17472,7 @@ TypeaheadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
17472
17472
|
useExisting: forwardRef(() => TypeaheadComponent),
|
|
17473
17473
|
multi: true
|
|
17474
17474
|
}
|
|
17475
|
-
], 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$
|
|
17475
|
+
], 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" }] });
|
|
17476
17476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TypeaheadComponent, decorators: [{
|
|
17477
17477
|
type: Component,
|
|
17478
17478
|
args: [{ selector: 'c8y-typeahead', providers: [
|
|
@@ -17609,7 +17609,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
17609
17609
|
class ListItemIconComponent {
|
|
17610
17610
|
}
|
|
17611
17611
|
ListItemIconComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17612
|
-
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:
|
|
17612
|
+
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"] }] });
|
|
17613
17613
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemIconComponent, decorators: [{
|
|
17614
17614
|
type: Component,
|
|
17615
17615
|
args: [{ selector: 'c8y-list-item-icon, c8y-li-icon', host: {
|
|
@@ -17783,7 +17783,7 @@ class DeviceStatusComponent {
|
|
|
17783
17783
|
}
|
|
17784
17784
|
}
|
|
17785
17785
|
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 });
|
|
17786
|
-
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:
|
|
17786
|
+
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" }] });
|
|
17787
17787
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DeviceStatusComponent, decorators: [{
|
|
17788
17788
|
type: Component,
|
|
17789
17789
|
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" }]
|
|
@@ -17965,7 +17965,7 @@ class SearchInputComponent {
|
|
|
17965
17965
|
}
|
|
17966
17966
|
}
|
|
17967
17967
|
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 });
|
|
17968
|
-
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" }] });
|
|
17968
|
+
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" }] });
|
|
17969
17969
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
17970
17970
|
type: Component,
|
|
17971
17971
|
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" }]
|
|
@@ -18150,7 +18150,7 @@ class SelectComponent$1 {
|
|
|
18150
18150
|
}
|
|
18151
18151
|
}
|
|
18152
18152
|
SelectComponent$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectComponent$1, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18153
|
-
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$
|
|
18153
|
+
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" }] });
|
|
18154
18154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectComponent$1, decorators: [{
|
|
18155
18155
|
type: Component,
|
|
18156
18156
|
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" }]
|
|
@@ -18189,7 +18189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
18189
18189
|
class ListItemBodyComponent {
|
|
18190
18190
|
}
|
|
18191
18191
|
ListItemBodyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18192
|
-
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:
|
|
18192
|
+
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"] }] });
|
|
18193
18193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemBodyComponent, decorators: [{
|
|
18194
18194
|
type: Component,
|
|
18195
18195
|
args: [{ selector: 'c8y-list-item-body, c8y-li-body', template: "<span *ngIf=\"body\">{{body}}</span>\n<ng-content></ng-content>\n" }]
|
|
@@ -18260,7 +18260,7 @@ ListItemCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
18260
18260
|
multi: true,
|
|
18261
18261
|
useExisting: forwardRef(() => ListItemCheckboxComponent)
|
|
18262
18262
|
}
|
|
18263
|
-
], 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:
|
|
18263
|
+
], 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"] }] });
|
|
18264
18264
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListItemCheckboxComponent, decorators: [{
|
|
18265
18265
|
type: Component,
|
|
18266
18266
|
args: [{ selector: 'c8y-list-item-checkbox, c8y-li-checkbox', host: {
|
|
@@ -18431,7 +18431,7 @@ ListGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
|
|
|
18431
18431
|
ListItemCheckboxComponent,
|
|
18432
18432
|
ListItemRadioComponent,
|
|
18433
18433
|
ListItemTimelineComponent,
|
|
18434
|
-
ListItemDragHandleComponent], imports: [CommonModule, i1$
|
|
18434
|
+
ListItemDragHandleComponent], imports: [CommonModule, i1$9.CollapseModule, BsDropdownModule], exports: [ListGroupComponent,
|
|
18435
18435
|
ListItemComponent,
|
|
18436
18436
|
ListItemIconComponent,
|
|
18437
18437
|
ListItemBodyComponent,
|
|
@@ -18483,7 +18483,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
18483
18483
|
class SelectModule {
|
|
18484
18484
|
}
|
|
18485
18485
|
SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18486
|
-
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, declarations: [SelectComponent$1, TypeaheadComponent], imports: [i1$
|
|
18486
|
+
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] });
|
|
18487
18487
|
SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, imports: [BsDropdownModule.forRoot(), CommonModule, ListGroupModule, FormsModule] });
|
|
18488
18488
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModule, decorators: [{
|
|
18489
18489
|
type: NgModule,
|
|
@@ -18595,7 +18595,7 @@ class UserTotpRevokeComponent {
|
|
|
18595
18595
|
}
|
|
18596
18596
|
}
|
|
18597
18597
|
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 });
|
|
18598
|
-
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$
|
|
18598
|
+
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" }] });
|
|
18599
18599
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: UserTotpRevokeComponent, decorators: [{
|
|
18600
18600
|
type: Component,
|
|
18601
18601
|
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" }]
|
|
@@ -18628,7 +18628,7 @@ UserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14
|
|
|
18628
18628
|
BsDropdownModule,
|
|
18629
18629
|
AuthenticationModule,
|
|
18630
18630
|
AlertModule,
|
|
18631
|
-
RouterModule$1, i1$
|
|
18631
|
+
RouterModule$1, i1$7.TooltipModule, PopoverModule,
|
|
18632
18632
|
ClipboardModule], exports: [UserMenuOutletComponent,
|
|
18633
18633
|
UserMenuItemComponent,
|
|
18634
18634
|
UserEditComponent,
|
|
@@ -19206,7 +19206,7 @@ HeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
|
19206
19206
|
ActionModule,
|
|
19207
19207
|
BreadcrumbModule,
|
|
19208
19208
|
NavigatorModule,
|
|
19209
|
-
VersionModule, i1$
|
|
19209
|
+
VersionModule, i1$7.TooltipModule, i1$9.CollapseModule, ProductExperienceModule], exports: [HeaderBarComponent,
|
|
19210
19210
|
TitleComponent,
|
|
19211
19211
|
TitleOutletComponent,
|
|
19212
19212
|
AppIconComponent,
|
|
@@ -19437,12 +19437,12 @@ class SetupCompletedComponent {
|
|
|
19437
19437
|
this.step.state = this.status;
|
|
19438
19438
|
}
|
|
19439
19439
|
}
|
|
19440
|
-
SetupCompletedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupCompletedComponent, deps: [{ token: C8yStepper }, { token: i2$
|
|
19441
|
-
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:
|
|
19440
|
+
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 });
|
|
19441
|
+
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" }] });
|
|
19442
19442
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SetupCompletedComponent, decorators: [{
|
|
19443
19443
|
type: Component,
|
|
19444
19444
|
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" }]
|
|
19445
|
-
}], ctorParameters: function () { return [{ type: C8yStepper }, { type: i2$
|
|
19445
|
+
}], ctorParameters: function () { return [{ type: C8yStepper }, { type: i2$3.CdkStep }, { type: SetupComponent }]; } });
|
|
19446
19446
|
|
|
19447
19447
|
/**
|
|
19448
19448
|
* A factory providing the 'Summary' step to the setup stepper.
|
|
@@ -19981,7 +19981,7 @@ class DropAreaComponent {
|
|
|
19981
19981
|
}
|
|
19982
19982
|
}
|
|
19983
19983
|
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 });
|
|
19984
|
-
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:
|
|
19984
|
+
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" }] });
|
|
19985
19985
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DropAreaComponent, decorators: [{
|
|
19986
19986
|
type: Component,
|
|
19987
19987
|
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" }]
|
|
@@ -20124,7 +20124,7 @@ class FilePickerComponent {
|
|
|
20124
20124
|
}
|
|
20125
20125
|
}
|
|
20126
20126
|
FilePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FilePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20127
|
-
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:
|
|
20127
|
+
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" }] });
|
|
20128
20128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FilePickerComponent, decorators: [{
|
|
20129
20129
|
type: Component,
|
|
20130
20130
|
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" }]
|
|
@@ -20208,7 +20208,7 @@ class DatePickerComponent {
|
|
|
20208
20208
|
}
|
|
20209
20209
|
}
|
|
20210
20210
|
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20211
|
-
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:
|
|
20211
|
+
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" }] });
|
|
20212
20212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
20213
20213
|
type: Component,
|
|
20214
20214
|
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" }]
|
|
@@ -20422,7 +20422,7 @@ DatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version
|
|
|
20422
20422
|
DatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: DatePickerModule, declarations: [DatePickerComponent], imports: [FormsModule,
|
|
20423
20423
|
CommonModule$1,
|
|
20424
20424
|
FormsModule$1,
|
|
20425
|
-
ReactiveFormsModule, i1$
|
|
20425
|
+
ReactiveFormsModule, i1$6.BsDropdownModule, i6.BsDatepickerModule, CommonModule], exports: [DatePickerComponent] });
|
|
20426
20426
|
DatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DatePickerModule, imports: [FormsModule,
|
|
20427
20427
|
CommonModule$1,
|
|
20428
20428
|
FormsModule$1,
|
|
@@ -20705,7 +20705,7 @@ class GuideDocsComponent {
|
|
|
20705
20705
|
}
|
|
20706
20706
|
}
|
|
20707
20707
|
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 });
|
|
20708
|
-
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:
|
|
20708
|
+
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"] }] });
|
|
20709
20709
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: GuideDocsComponent, decorators: [{
|
|
20710
20710
|
type: Component,
|
|
20711
20711
|
args: [{ selector: '[c8y-guide-docs]', template: "<ng-container *ngIf=\"!!baseUrl\">\n <ng-content></ng-content>\n</ng-container>\n" }]
|
|
@@ -20773,7 +20773,7 @@ ArrayTypeComponent.CONFIG = {
|
|
|
20773
20773
|
types: [{ name: 'array', component: ArrayTypeComponent }]
|
|
20774
20774
|
};
|
|
20775
20775
|
ArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20776
|
-
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:
|
|
20776
|
+
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" }] });
|
|
20777
20777
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ArrayTypeComponent, decorators: [{
|
|
20778
20778
|
type: Component,
|
|
20779
20779
|
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" }]
|
|
@@ -20813,7 +20813,7 @@ FieldCheckbox.CONFIG = {
|
|
|
20813
20813
|
]
|
|
20814
20814
|
};
|
|
20815
20815
|
FieldCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20816
|
-
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:
|
|
20816
|
+
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 });
|
|
20817
20817
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldCheckbox, decorators: [{
|
|
20818
20818
|
type: Component,
|
|
20819
20819
|
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" }]
|
|
@@ -20830,7 +20830,7 @@ FieldDate.CONFIG = {
|
|
|
20830
20830
|
]
|
|
20831
20831
|
};
|
|
20832
20832
|
FieldDate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldDate, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20833
|
-
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:
|
|
20833
|
+
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 });
|
|
20834
20834
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldDate, decorators: [{
|
|
20835
20835
|
type: Component,
|
|
20836
20836
|
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" }]
|
|
@@ -20871,7 +20871,7 @@ FieldFile.CONFIG = {
|
|
|
20871
20871
|
]
|
|
20872
20872
|
};
|
|
20873
20873
|
FieldFile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldFile, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20874
|
-
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:
|
|
20874
|
+
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 });
|
|
20875
20875
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldFile, decorators: [{
|
|
20876
20876
|
type: Component,
|
|
20877
20877
|
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" }]
|
|
@@ -20896,7 +20896,7 @@ WrapperFormField.CONFIG = {
|
|
|
20896
20896
|
wrappers: [{ name: 'c8y-form-field', component: WrapperFormField }]
|
|
20897
20897
|
};
|
|
20898
20898
|
WrapperFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WrapperFormField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20899
|
-
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:
|
|
20899
|
+
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 });
|
|
20900
20900
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WrapperFormField, decorators: [{
|
|
20901
20901
|
type: Component,
|
|
20902
20902
|
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" }]
|
|
@@ -20937,7 +20937,7 @@ FieldInput.CONFIG = {
|
|
|
20937
20937
|
]
|
|
20938
20938
|
};
|
|
20939
20939
|
FieldInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20940
|
-
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:
|
|
20940
|
+
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 });
|
|
20941
20941
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldInput, decorators: [{
|
|
20942
20942
|
type: Component,
|
|
20943
20943
|
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" }]
|
|
@@ -20949,7 +20949,7 @@ ObjectTypeComponent.CONFIG = {
|
|
|
20949
20949
|
types: [{ name: 'object', component: ObjectTypeComponent }]
|
|
20950
20950
|
};
|
|
20951
20951
|
ObjectTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ObjectTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20952
|
-
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:
|
|
20952
|
+
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" }] });
|
|
20953
20953
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ObjectTypeComponent, decorators: [{
|
|
20954
20954
|
type: Component,
|
|
20955
20955
|
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" }]
|
|
@@ -20976,7 +20976,7 @@ FieldRadio.CONFIG = {
|
|
|
20976
20976
|
]
|
|
20977
20977
|
};
|
|
20978
20978
|
FieldRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20979
|
-
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:
|
|
20979
|
+
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 });
|
|
20980
20980
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FieldRadio, decorators: [{
|
|
20981
20981
|
type: Component,
|
|
20982
20982
|
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" }]
|
|
@@ -21438,7 +21438,7 @@ TypeaheadTypeComponent.CONFIG = {
|
|
|
21438
21438
|
types: [{ name: 'typeahead', component: TypeaheadTypeComponent }]
|
|
21439
21439
|
};
|
|
21440
21440
|
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 });
|
|
21441
|
-
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:
|
|
21441
|
+
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 });
|
|
21442
21442
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: TypeaheadTypeComponent, decorators: [{
|
|
21443
21443
|
type: Component,
|
|
21444
21444
|
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" }]
|
|
@@ -21472,7 +21472,7 @@ SelectComponent.CONFIG = {
|
|
|
21472
21472
|
]
|
|
21473
21473
|
};
|
|
21474
21474
|
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 });
|
|
21475
|
-
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:
|
|
21475
|
+
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 });
|
|
21476
21476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectComponent, decorators: [{
|
|
21477
21477
|
type: Component,
|
|
21478
21478
|
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 " }]
|
|
@@ -21515,7 +21515,7 @@ DynamicFormsUIThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0
|
|
|
21515
21515
|
TypeaheadTypeComponent,
|
|
21516
21516
|
SelectComponent, C8yArrayTypeInjectTemplatePipe], imports: [CommonModule$1,
|
|
21517
21517
|
CommonModule,
|
|
21518
|
-
PopoverModule, i1$
|
|
21518
|
+
PopoverModule, i1$7.TooltipModule, ReactiveFormsModule,
|
|
21519
21519
|
C8yTranslateModule,
|
|
21520
21520
|
DropAreaModule,
|
|
21521
21521
|
FormsModule,
|
|
@@ -22000,7 +22000,7 @@ class DynamicComponentAlertsComponent extends AlertOutletBase {
|
|
|
22000
22000
|
}
|
|
22001
22001
|
}
|
|
22002
22002
|
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 });
|
|
22003
|
-
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:
|
|
22003
|
+
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 });
|
|
22004
22004
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DynamicComponentAlertsComponent, decorators: [{
|
|
22005
22005
|
type: Component,
|
|
22006
22006
|
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" }]
|
|
@@ -22169,7 +22169,7 @@ class DynamicComponentComponent {
|
|
|
22169
22169
|
}
|
|
22170
22170
|
}
|
|
22171
22171
|
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 });
|
|
22172
|
-
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:
|
|
22172
|
+
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" }] });
|
|
22173
22173
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DynamicComponentComponent, decorators: [{
|
|
22174
22174
|
type: Component,
|
|
22175
22175
|
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" }]
|
|
@@ -22837,14 +22837,14 @@ class DashboardComponent {
|
|
|
22837
22837
|
return this.dashboardRect.height / this.rows;
|
|
22838
22838
|
}
|
|
22839
22839
|
}
|
|
22840
|
-
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardComponent, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
22840
|
+
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 });
|
|
22841
22841
|
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 });
|
|
22842
22842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
22843
22843
|
type: Component,
|
|
22844
22844
|
args: [{ selector: 'c8y-dashboard', host: {
|
|
22845
22845
|
class: 'c8y-grid-dashboard dashboard-grid'
|
|
22846
22846
|
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\n" }]
|
|
22847
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$
|
|
22847
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$5.DomSanitizer }]; }, propDecorators: { columns: [{
|
|
22848
22848
|
type: Input
|
|
22849
22849
|
}], gap: [{
|
|
22850
22850
|
type: Input
|
|
@@ -23072,14 +23072,14 @@ class DashboardChildComponent {
|
|
|
23072
23072
|
return false;
|
|
23073
23073
|
}
|
|
23074
23074
|
}
|
|
23075
|
-
DashboardChildComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardChildComponent, deps: [{ token: DashboardComponent }, { token: i1$
|
|
23076
|
-
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:
|
|
23075
|
+
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 });
|
|
23076
|
+
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" }] });
|
|
23077
23077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DashboardChildComponent, decorators: [{
|
|
23078
23078
|
type: Component,
|
|
23079
23079
|
args: [{ selector: 'c8y-dashboard-child', host: {
|
|
23080
23080
|
class: 'dashboard-grid-child'
|
|
23081
23081
|
}, 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" }]
|
|
23082
|
-
}], ctorParameters: function () { return [{ type: DashboardComponent }, { type: i1$
|
|
23082
|
+
}], ctorParameters: function () { return [{ type: DashboardComponent }, { type: i1$5.DomSanitizer }, { type: i0.ElementRef }]; }, propDecorators: { templateActions: [{
|
|
23083
23083
|
type: ContentChildren,
|
|
23084
23084
|
args: [DashboardChildActionComponent]
|
|
23085
23085
|
}], x: [{
|
|
@@ -23402,7 +23402,7 @@ class WidgetTimeContextComponent {
|
|
|
23402
23402
|
}
|
|
23403
23403
|
}
|
|
23404
23404
|
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 });
|
|
23405
|
-
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:
|
|
23405
|
+
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" }] });
|
|
23406
23406
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetTimeContextComponent, decorators: [{
|
|
23407
23407
|
type: Component,
|
|
23408
23408
|
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" }]
|
|
@@ -23532,7 +23532,7 @@ class WidgetsDashboardComponent {
|
|
|
23532
23532
|
}
|
|
23533
23533
|
}
|
|
23534
23534
|
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 });
|
|
23535
|
-
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" }] });
|
|
23535
|
+
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" }] });
|
|
23536
23536
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WidgetsDashboardComponent, decorators: [{
|
|
23537
23537
|
type: Component,
|
|
23538
23538
|
args: [{ selector: 'c8y-widgets-dashboard', host: {
|
|
@@ -23585,7 +23585,7 @@ DashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
|
|
|
23585
23585
|
WidgetTimeContextComponent], imports: [CommonModule,
|
|
23586
23586
|
ActionBarModule,
|
|
23587
23587
|
DynamicComponentModule,
|
|
23588
|
-
DragDropModule, i1$
|
|
23588
|
+
DragDropModule, i1$6.BsDropdownModule, HeaderModule,
|
|
23589
23589
|
DocsModule,
|
|
23590
23590
|
BreadcrumbModule,
|
|
23591
23591
|
FormsModule$1,
|
|
@@ -23820,7 +23820,7 @@ class CellRendererComponent {
|
|
|
23820
23820
|
}
|
|
23821
23821
|
}
|
|
23822
23822
|
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 });
|
|
23823
|
-
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:
|
|
23823
|
+
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 });
|
|
23824
23824
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CellRendererComponent, decorators: [{
|
|
23825
23825
|
type: Component,
|
|
23826
23826
|
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" }]
|
|
@@ -23877,7 +23877,7 @@ class FilteringFormRendererComponent {
|
|
|
23877
23877
|
}
|
|
23878
23878
|
}
|
|
23879
23879
|
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 });
|
|
23880
|
-
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:
|
|
23880
|
+
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 });
|
|
23881
23881
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FilteringFormRendererComponent, decorators: [{
|
|
23882
23882
|
type: Component,
|
|
23883
23883
|
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" }]
|
|
@@ -23923,12 +23923,12 @@ class ConfigureCustomColumnComponent {
|
|
|
23923
23923
|
}
|
|
23924
23924
|
}
|
|
23925
23925
|
}
|
|
23926
|
-
ConfigureCustomColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfigureCustomColumnComponent, deps: [{ token: i5.FormBuilder }, { token: i1$
|
|
23926
|
+
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 });
|
|
23927
23927
|
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" }] });
|
|
23928
23928
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ConfigureCustomColumnComponent, decorators: [{
|
|
23929
23929
|
type: Component,
|
|
23930
23930
|
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" }]
|
|
23931
|
-
}], ctorParameters: function () { return [{ type: i5.FormBuilder }, { type: i1$
|
|
23931
|
+
}], ctorParameters: function () { return [{ type: i5.FormBuilder }, { type: i1$8.BsModalRef }]; }, propDecorators: { form: [{
|
|
23932
23932
|
type: ViewChild,
|
|
23933
23933
|
args: ['columnConfigForm', { static: false }]
|
|
23934
23934
|
}], onAddCustomColumn: [{
|
|
@@ -25181,13 +25181,13 @@ class DataGridComponent {
|
|
|
25181
25181
|
: (_f = (_e = this.configurationStrategy.getContext()) === null || _e === void 0 ? void 0 : _e.configFilter) === null || _f === void 0 ? void 0 : _f[configPart])) !== null && _g !== void 0 ? _g : true);
|
|
25182
25182
|
}
|
|
25183
25183
|
}
|
|
25184
|
-
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$
|
|
25184
|
+
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 });
|
|
25185
25185
|
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: [
|
|
25186
25186
|
{
|
|
25187
25187
|
provide: PRODUCT_EXPERIENCE_EVENT_SOURCE,
|
|
25188
25188
|
useExisting: forwardRef(() => DataGridComponent)
|
|
25189
25189
|
}
|
|
25190
|
-
], 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" }] });
|
|
25190
|
+
], 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" }] });
|
|
25191
25191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DataGridComponent, decorators: [{
|
|
25192
25192
|
type: Component,
|
|
25193
25193
|
args: [{ selector: 'c8y-data-grid', host: { class: 'd-contents' }, providers: [
|
|
@@ -25202,7 +25202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
25202
25202
|
}, {
|
|
25203
25203
|
type: Inject,
|
|
25204
25204
|
args: [DATA_GRID_CONFIGURATION_STRATEGY]
|
|
25205
|
-
}] }, { type: DataGridService }, { type: i1$
|
|
25205
|
+
}] }, { type: DataGridService }, { type: i1$5.DomSanitizer }, { type: i0.ComponentFactoryResolver }, { type: GainsightService }, { type: i1$8.BsModalService }, { type: AlertService }];
|
|
25206
25206
|
}, propDecorators: { title: [{
|
|
25207
25207
|
type: Input
|
|
25208
25208
|
}], loadMoreItemsLabel: [{
|
|
@@ -25318,7 +25318,7 @@ DataGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
25318
25318
|
DynamicFormsModule,
|
|
25319
25319
|
CommonModule,
|
|
25320
25320
|
FormsModule,
|
|
25321
|
-
ModalModule, i1$
|
|
25321
|
+
ModalModule, i1$6.BsDropdownModule, i2$2.PopoverModule, i1$7.TooltipModule, i17.PaginationModule, ProductExperienceModule,
|
|
25322
25322
|
A11yModule], exports: [BaseFilteringFormRendererComponent,
|
|
25323
25323
|
CellRendererDefDirective,
|
|
25324
25324
|
HeaderCellRendererDefDirective,
|
|
@@ -25576,7 +25576,7 @@ class HelpComponent {
|
|
|
25576
25576
|
}
|
|
25577
25577
|
}
|
|
25578
25578
|
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 });
|
|
25579
|
-
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:
|
|
25579
|
+
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" }] });
|
|
25580
25580
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpComponent, decorators: [{
|
|
25581
25581
|
type: Component,
|
|
25582
25582
|
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>" }]
|
|
@@ -25599,7 +25599,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
25599
25599
|
class HelpModule {
|
|
25600
25600
|
}
|
|
25601
25601
|
HelpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25602
|
-
HelpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: HelpModule, declarations: [HelpComponent], imports: [CommonModule, i1$
|
|
25602
|
+
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,
|
|
25603
25603
|
ProductExperienceModule], exports: [HelpComponent] });
|
|
25604
25604
|
HelpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: HelpModule, providers: [HelpService], imports: [CommonModule,
|
|
25605
25605
|
CollapseModule.forRoot(),
|
|
@@ -25638,7 +25638,7 @@ class RealtimeButtonComponent {
|
|
|
25638
25638
|
}
|
|
25639
25639
|
}
|
|
25640
25640
|
RealtimeButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RealtimeButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25641
|
-
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:
|
|
25641
|
+
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" }] });
|
|
25642
25642
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RealtimeButtonComponent, decorators: [{
|
|
25643
25643
|
type: Component,
|
|
25644
25644
|
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" }]
|
|
@@ -25786,12 +25786,12 @@ class SelectModalComponent {
|
|
|
25786
25786
|
.map(selectedOption => selectedOption.obj);
|
|
25787
25787
|
}
|
|
25788
25788
|
}
|
|
25789
|
-
SelectModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalComponent, deps: [{ token: i1$
|
|
25790
|
-
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:
|
|
25789
|
+
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 });
|
|
25790
|
+
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" }] });
|
|
25791
25791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalComponent, decorators: [{
|
|
25792
25792
|
type: Component,
|
|
25793
25793
|
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" }]
|
|
25794
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
25794
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalRef }]; }, propDecorators: { icon: [{
|
|
25795
25795
|
type: Input
|
|
25796
25796
|
}], title: [{
|
|
25797
25797
|
type: Input
|
|
@@ -25824,7 +25824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
|
|
|
25824
25824
|
class SelectModalModule {
|
|
25825
25825
|
}
|
|
25826
25826
|
SelectModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
25827
|
-
SelectModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, declarations: [SelectModalComponent, SelectModalFilterPipe], imports: [i1$
|
|
25827
|
+
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] });
|
|
25828
25828
|
SelectModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, imports: [BsDropdownModule.forRoot(), CommonModule, ListGroupModule, SearchModule, FormsModule] });
|
|
25829
25829
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SelectModalModule, decorators: [{
|
|
25830
25830
|
type: NgModule,
|
|
@@ -25840,6 +25840,13 @@ class RangeDisplayComponent {
|
|
|
25840
25840
|
this.sanitizer = sanitizer;
|
|
25841
25841
|
this.config = {};
|
|
25842
25842
|
this.display = 'full';
|
|
25843
|
+
this.currentRangeWidthChanged = new Subject();
|
|
25844
|
+
// width of current range is changing within 150ms, see style declaration for .range-display__range__current
|
|
25845
|
+
this.CURRENT_RANGE_WIDTH_TRANSITION_TIME = 150;
|
|
25846
|
+
this.DEFAULT_TOOLTIP_SHIFT = '50%';
|
|
25847
|
+
this.MIN_TOOLTIP_SHIFT = 10;
|
|
25848
|
+
this.tooltipShift = this.DEFAULT_TOOLTIP_SHIFT;
|
|
25849
|
+
this.destroyed$ = new Subject();
|
|
25843
25850
|
}
|
|
25844
25851
|
get inlineStyle() {
|
|
25845
25852
|
this.config = this.config || {};
|
|
@@ -25855,6 +25862,8 @@ class RangeDisplayComponent {
|
|
|
25855
25862
|
return this.sanitizer.bypassSecurityTrustStyle(`
|
|
25856
25863
|
--range-min: ${this.config.min};
|
|
25857
25864
|
--range-max: ${this.config.max};
|
|
25865
|
+
--range-display-tooltip-translate: translate(${this.tooltipShift}, -56px);
|
|
25866
|
+
--range-display-tooltip-bg: var(${this.getTooltipBackground()});
|
|
25858
25867
|
--full-range: ${this.config.max - this.config.min};
|
|
25859
25868
|
--measurement-target: ${((this.config.target - this.config.min) * 100) / (this.config.max - this.config.min)}%;
|
|
25860
25869
|
--measurement-current: ${((this.config.current - this.config.min) * 100) / (this.config.max - this.config.min)}%;
|
|
@@ -25868,6 +25877,21 @@ class RangeDisplayComponent {
|
|
|
25868
25877
|
100}%;
|
|
25869
25878
|
`);
|
|
25870
25879
|
}
|
|
25880
|
+
ngOnChanges() {
|
|
25881
|
+
// It's necessary to handle tooltip shifting both in OnChanges and AfterViewInit. In case of Linear gauge widget, view is
|
|
25882
|
+
// rendered first (so as elements needed for calculating shifting) and config orientation is set later on.
|
|
25883
|
+
// In other cases it's possible that orientation is defined on initialization of class and view elements are rendered later.
|
|
25884
|
+
this.setupTooltipShiftingIfPossible();
|
|
25885
|
+
}
|
|
25886
|
+
ngAfterViewInit() {
|
|
25887
|
+
this.setupTooltipShiftingIfPossible();
|
|
25888
|
+
}
|
|
25889
|
+
ngOnDestroy() {
|
|
25890
|
+
var _a;
|
|
25891
|
+
(_a = this.currentRangeWidthObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
25892
|
+
this.destroyed$.next();
|
|
25893
|
+
this.destroyed$.complete();
|
|
25894
|
+
}
|
|
25871
25895
|
checkTarget() {
|
|
25872
25896
|
return (this.config.target !== undefined &&
|
|
25873
25897
|
this.config.target !== null &&
|
|
@@ -25895,19 +25919,78 @@ class RangeDisplayComponent {
|
|
|
25895
25919
|
isRangeDisplayed(rangeMin, rangeMax) {
|
|
25896
25920
|
return rangeMin === 0 || rangeMax === 0 || (rangeMin && rangeMax);
|
|
25897
25921
|
}
|
|
25922
|
+
setupTooltipShifting() {
|
|
25923
|
+
this.currentRangeWidthObserver = new ResizeObserver(([val]) => {
|
|
25924
|
+
if (getComputedStyle(val.target, null).display === 'block') {
|
|
25925
|
+
this.currentRangeWidthChanged.next(val.target);
|
|
25926
|
+
}
|
|
25927
|
+
});
|
|
25928
|
+
this.currentRangeWidthObserver.observe(this.currentRangeElement.nativeElement);
|
|
25929
|
+
this.currentRangeWidthChanged
|
|
25930
|
+
.pipe(debounceTime(this.CURRENT_RANGE_WIDTH_TRANSITION_TIME), map((rangeElement) => parseInt(getComputedStyle(rangeElement, null).width)), distinctUntilChanged(), takeUntil(this.destroyed$))
|
|
25931
|
+
.subscribe(rangeElementWidth => {
|
|
25932
|
+
this.setTooltipShiftValue(rangeElementWidth);
|
|
25933
|
+
});
|
|
25934
|
+
}
|
|
25935
|
+
setTooltipShiftValue(rangeElementWidth) {
|
|
25936
|
+
const tooltipWidth = parseInt(getComputedStyle(this.currentRangeElement.nativeElement, ':after').width);
|
|
25937
|
+
const currentRangeWidth = rangeElementWidth;
|
|
25938
|
+
const rangeDisplayWidth = parseInt(getComputedStyle(this.rangeDisplay.nativeElement, null).getPropertyValue('width'));
|
|
25939
|
+
const rangeDisplayPaddingLeft = parseInt(getComputedStyle(this.rangeDisplay.nativeElement, null).getPropertyValue('padding-left'));
|
|
25940
|
+
const tooltipOverflowsLeftEdge = tooltipWidth / 2 > rangeDisplayPaddingLeft + currentRangeWidth;
|
|
25941
|
+
const tooltipOverflowsRightEdge = tooltipWidth / 2 > rangeDisplayWidth - rangeDisplayPaddingLeft - currentRangeWidth;
|
|
25942
|
+
if (tooltipOverflowsLeftEdge) {
|
|
25943
|
+
this.tooltipShift = `${tooltipWidth - this.MIN_TOOLTIP_SHIFT}px`;
|
|
25944
|
+
}
|
|
25945
|
+
else if (tooltipOverflowsRightEdge) {
|
|
25946
|
+
this.tooltipShift = `${this.MIN_TOOLTIP_SHIFT}px`;
|
|
25947
|
+
}
|
|
25948
|
+
else {
|
|
25949
|
+
this.tooltipShift = this.DEFAULT_TOOLTIP_SHIFT;
|
|
25950
|
+
}
|
|
25951
|
+
}
|
|
25952
|
+
setupTooltipShiftingIfPossible() {
|
|
25953
|
+
var _a;
|
|
25954
|
+
if (((_a = this.config) === null || _a === void 0 ? void 0 : _a.orientation) === 'horizontal' &&
|
|
25955
|
+
!this.currentRangeWidthObserver &&
|
|
25956
|
+
this.rangeDisplay &&
|
|
25957
|
+
this.currentRangeElement) {
|
|
25958
|
+
this.setupTooltipShifting();
|
|
25959
|
+
}
|
|
25960
|
+
}
|
|
25961
|
+
getTooltipBackground() {
|
|
25962
|
+
const current = this.config.current;
|
|
25963
|
+
switch (true) {
|
|
25964
|
+
case this.isValueInRange(current, this.config.redRangeMin, this.config.redRangeMax):
|
|
25965
|
+
return '--c8y-palette-status-danger';
|
|
25966
|
+
case this.isValueInRange(current, this.config.yellowRangeMin, this.config.yellowRangeMax):
|
|
25967
|
+
return '--c8y-palette-status-warning';
|
|
25968
|
+
default:
|
|
25969
|
+
return '--c8y-palette-gray-30';
|
|
25970
|
+
}
|
|
25971
|
+
}
|
|
25972
|
+
isValueInRange(value, min, max) {
|
|
25973
|
+
return min != null && max != null && value >= min && value <= max;
|
|
25974
|
+
}
|
|
25898
25975
|
}
|
|
25899
|
-
RangeDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, deps: [{ token: i1$
|
|
25900
|
-
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
|
|
25976
|
+
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 });
|
|
25977
|
+
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" }] });
|
|
25901
25978
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, decorators: [{
|
|
25902
25979
|
type: Component,
|
|
25903
|
-
args: [{ selector: 'c8y-range-display', template: "<div
|
|
25904
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
25980
|
+
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" }]
|
|
25981
|
+
}], ctorParameters: function () { return [{ type: i1$5.DomSanitizer }]; }, propDecorators: { config: [{
|
|
25905
25982
|
type: Input
|
|
25906
25983
|
}], display: [{
|
|
25907
25984
|
type: Input
|
|
25908
25985
|
}], inlineStyle: [{
|
|
25909
25986
|
type: HostBinding,
|
|
25910
25987
|
args: ['attr.style']
|
|
25988
|
+
}], rangeDisplay: [{
|
|
25989
|
+
type: ViewChild,
|
|
25990
|
+
args: ['rangeDisplay', { static: false }]
|
|
25991
|
+
}], currentRangeElement: [{
|
|
25992
|
+
type: ViewChild,
|
|
25993
|
+
args: ['currentRangeElement', { static: false }]
|
|
25911
25994
|
}] } });
|
|
25912
25995
|
|
|
25913
25996
|
/**
|
|
@@ -25996,12 +26079,12 @@ class ListDisplaySwitchComponent {
|
|
|
25996
26079
|
return this.listKey || this.location.path();
|
|
25997
26080
|
}
|
|
25998
26081
|
}
|
|
25999
|
-
ListDisplaySwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListDisplaySwitchComponent, deps: [{ token:
|
|
26000
|
-
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:
|
|
26082
|
+
ListDisplaySwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListDisplaySwitchComponent, deps: [{ token: i2.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
26083
|
+
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" }] });
|
|
26001
26084
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ListDisplaySwitchComponent, decorators: [{
|
|
26002
26085
|
type: Component,
|
|
26003
26086
|
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" }]
|
|
26004
|
-
}], ctorParameters: function () { return [{ type:
|
|
26087
|
+
}], ctorParameters: function () { return [{ type: i2.Location }]; }, propDecorators: { listKey: [{
|
|
26005
26088
|
type: Input
|
|
26006
26089
|
}], listLength: [{
|
|
26007
26090
|
type: Input,
|
|
@@ -26128,7 +26211,7 @@ class WizardOutletComponent {
|
|
|
26128
26211
|
}
|
|
26129
26212
|
}
|
|
26130
26213
|
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 });
|
|
26131
|
-
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:
|
|
26214
|
+
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" }] });
|
|
26132
26215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardOutletComponent, decorators: [{
|
|
26133
26216
|
type: Component,
|
|
26134
26217
|
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" }]
|
|
@@ -26251,12 +26334,12 @@ class WizardComponent {
|
|
|
26251
26334
|
});
|
|
26252
26335
|
}
|
|
26253
26336
|
}
|
|
26254
|
-
WizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardComponent, deps: [{ token: WizardService }, { token: i1$
|
|
26255
|
-
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:
|
|
26337
|
+
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 });
|
|
26338
|
+
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" }] });
|
|
26256
26339
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardComponent, decorators: [{
|
|
26257
26340
|
type: Component,
|
|
26258
26341
|
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" }]
|
|
26259
|
-
}], ctorParameters: function () { return [{ type: WizardService }, { type: i1$
|
|
26342
|
+
}], ctorParameters: function () { return [{ type: WizardService }, { type: i1$8.BsModalRef }]; }, propDecorators: { header: [{
|
|
26260
26343
|
type: ViewChild,
|
|
26261
26344
|
args: ['headerRef', { static: true }]
|
|
26262
26345
|
}], body: [{
|
|
@@ -26411,14 +26494,14 @@ class WizardModalService {
|
|
|
26411
26494
|
return this.bsModalService.show(WizardComponent, options);
|
|
26412
26495
|
}
|
|
26413
26496
|
}
|
|
26414
|
-
WizardModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardModalService, deps: [{ token: i1$
|
|
26497
|
+
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 });
|
|
26415
26498
|
WizardModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardModalService, providedIn: 'root' });
|
|
26416
26499
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: WizardModalService, decorators: [{
|
|
26417
26500
|
type: Injectable,
|
|
26418
26501
|
args: [{
|
|
26419
26502
|
providedIn: 'root'
|
|
26420
26503
|
}]
|
|
26421
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
26504
|
+
}], ctorParameters: function () { return [{ type: i1$8.BsModalService }]; } });
|
|
26422
26505
|
|
|
26423
26506
|
class WizardModule {
|
|
26424
26507
|
}
|
|
@@ -26894,7 +26977,7 @@ class ProviderConfigurationComponent {
|
|
|
26894
26977
|
}
|
|
26895
26978
|
}
|
|
26896
26979
|
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 });
|
|
26897
|
-
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:
|
|
26980
|
+
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" }] });
|
|
26898
26981
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ProviderConfigurationComponent, decorators: [{
|
|
26899
26982
|
type: Component,
|
|
26900
26983
|
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" }]
|
|
@@ -27219,6 +27302,20 @@ class RealtimeService {
|
|
|
27219
27302
|
get active() {
|
|
27220
27303
|
return this.isActive.value;
|
|
27221
27304
|
}
|
|
27305
|
+
/**
|
|
27306
|
+
* An observable emitting a value in case the realtime connection has been interrupted.
|
|
27307
|
+
* Can be used to reload data of e.g. a datapoint graph that wasn't received while realtime was interrupted.
|
|
27308
|
+
*/
|
|
27309
|
+
get reconnect$() {
|
|
27310
|
+
return this.realtimeSubject.reconnect$;
|
|
27311
|
+
}
|
|
27312
|
+
/**
|
|
27313
|
+
* An observable emitting either `connected` or `disconnected` depending on the state of the realtime connection.
|
|
27314
|
+
* Can be used to e.g. inform the user about the interrupted realtime connection.
|
|
27315
|
+
*/
|
|
27316
|
+
get connectionStatus$() {
|
|
27317
|
+
return this.realtimeSubject.connectionStatus$;
|
|
27318
|
+
}
|
|
27222
27319
|
/**
|
|
27223
27320
|
* Get an Observable of all realtime notifications.
|
|
27224
27321
|
*
|
|
@@ -27298,6 +27395,8 @@ class RealtimeSubjectService {
|
|
|
27298
27395
|
constructor(realtime) {
|
|
27299
27396
|
this.realtime = realtime;
|
|
27300
27397
|
this.subjects$ = new Map();
|
|
27398
|
+
this.reconnect$ = this.createObservableForReconnect().pipe(share());
|
|
27399
|
+
this.connectionStatus$ = this.createObservableForConnectionStatus().pipe(distinctUntilChanged(), shareReplay({ refCount: true, bufferSize: 1 }));
|
|
27301
27400
|
}
|
|
27302
27401
|
getObservableForChannel(channel) {
|
|
27303
27402
|
if (this.subjects$.has(channel)) {
|
|
@@ -27310,7 +27409,7 @@ class RealtimeSubjectService {
|
|
|
27310
27409
|
}
|
|
27311
27410
|
createObservableForChannel(channel, realtime) {
|
|
27312
27411
|
return new Observable(observer => {
|
|
27313
|
-
|
|
27412
|
+
let realtimeSubscription = realtime.subscribe(channel, msg => {
|
|
27314
27413
|
const data = {
|
|
27315
27414
|
channel: msg.channel,
|
|
27316
27415
|
data: msg.data.data,
|
|
@@ -27319,13 +27418,54 @@ class RealtimeSubjectService {
|
|
|
27319
27418
|
};
|
|
27320
27419
|
observer.next(data);
|
|
27321
27420
|
});
|
|
27421
|
+
/**
|
|
27422
|
+
* In (rare) case of a re-handshake, resubscribe valid subscriptions.
|
|
27423
|
+
* @see https://docs.cometd.org/current/reference/#_javascript_subscribe_resubscribe
|
|
27424
|
+
*/
|
|
27425
|
+
const reconnectSubscription = this.reconnect$.subscribe(() => {
|
|
27426
|
+
try {
|
|
27427
|
+
realtimeSubscription = this.realtime.resubscribe(realtimeSubscription);
|
|
27428
|
+
}
|
|
27429
|
+
catch (e) {
|
|
27430
|
+
console.warn(`Failed to resubscribe to channel: "${channel}" after reconnect.`, e);
|
|
27431
|
+
observer.error(e);
|
|
27432
|
+
}
|
|
27433
|
+
});
|
|
27322
27434
|
return {
|
|
27323
|
-
unsubscribe() {
|
|
27435
|
+
unsubscribe: () => {
|
|
27436
|
+
reconnectSubscription.unsubscribe();
|
|
27324
27437
|
realtime.unsubscribe(realtimeSubscription);
|
|
27325
27438
|
}
|
|
27326
27439
|
};
|
|
27327
27440
|
});
|
|
27328
27441
|
}
|
|
27442
|
+
createObservableForReconnect() {
|
|
27443
|
+
return new Observable(observer => {
|
|
27444
|
+
const handle = this.realtime.addHandshakeListener(msg => {
|
|
27445
|
+
if (msg.successful && msg.reestablish) {
|
|
27446
|
+
observer.next();
|
|
27447
|
+
}
|
|
27448
|
+
});
|
|
27449
|
+
return {
|
|
27450
|
+
unsubscribe: () => {
|
|
27451
|
+
this.realtime.removeListener(handle);
|
|
27452
|
+
}
|
|
27453
|
+
};
|
|
27454
|
+
});
|
|
27455
|
+
}
|
|
27456
|
+
createObservableForConnectionStatus() {
|
|
27457
|
+
return new Observable(observer => {
|
|
27458
|
+
observer.next(!this.realtime.isDisconnected() ? 'connected' : 'disconnected');
|
|
27459
|
+
const handle = this.realtime.addConnectListener(msg => {
|
|
27460
|
+
observer.next(msg.successful ? 'connected' : 'disconnected');
|
|
27461
|
+
});
|
|
27462
|
+
return {
|
|
27463
|
+
unsubscribe: () => {
|
|
27464
|
+
this.realtime.removeListener(handle);
|
|
27465
|
+
}
|
|
27466
|
+
};
|
|
27467
|
+
});
|
|
27468
|
+
}
|
|
27329
27469
|
}
|
|
27330
27470
|
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 });
|
|
27331
27471
|
RealtimeSubjectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RealtimeSubjectService, providedIn: 'root' });
|