@c8y/ngx-components 1011.0.17 → 1011.0.20
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/assets-navigator/asset-node.service.d.ts +7 -3
- package/assets-navigator/c8y-ngx-components-assets-navigator.metadata.json +1 -1
- package/bundles/c8y-ngx-components-assets-navigator.umd.js +7 -2
- package/bundles/c8y-ngx-components-assets-navigator.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-assets-navigator.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-assets-navigator.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-child-devices.umd.js +416 -0
- package/bundles/c8y-ngx-components-child-devices.umd.js.map +1 -0
- package/bundles/c8y-ngx-components-child-devices.umd.min.js +16 -0
- package/bundles/c8y-ngx-components-child-devices.umd.min.js.map +1 -0
- package/bundles/c8y-ngx-components-device-grid.umd.js +169 -36
- package/bundles/c8y-ngx-components-device-grid.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-device-grid.umd.min.js +2 -2
- package/bundles/c8y-ngx-components-device-grid.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-sub-assets.umd.js +5 -3
- package/bundles/c8y-ngx-components-sub-assets.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sub-assets.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-sub-assets.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +2 -7
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +1 -1
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.metadata.json +1 -1
- package/child-devices/c8y-ngx-components-child-devices.d.ts +5 -0
- package/child-devices/c8y-ngx-components-child-devices.metadata.json +1 -0
- package/child-devices/child-devices.component.d.ts +9 -0
- package/child-devices/child-devices.guard.d.ts +7 -0
- package/child-devices/child-devices.module.d.ts +2 -0
- package/child-devices/index.d.ts +2 -0
- package/child-devices/package.json +11 -0
- package/core/login/totp-auth.component.d.ts +1 -1
- package/device-grid/c8y-ngx-components-device-grid.metadata.json +1 -1
- package/device-grid/device-grid.component.d.ts +18 -4
- package/device-grid/device-grid.service.d.ts +8 -3
- package/esm2015/assets-navigator/asset-node.service.js +8 -3
- package/esm2015/child-devices/c8y-ngx-components-child-devices.js +6 -0
- package/esm2015/child-devices/child-devices.component.js +30 -0
- package/esm2015/child-devices/child-devices.guard.js +30 -0
- package/esm2015/child-devices/child-devices.module.js +36 -0
- package/esm2015/child-devices/index.js +3 -0
- package/esm2015/core/login/totp-auth.component.js +3 -4
- package/esm2015/device-grid/device-grid.component.js +62 -15
- package/esm2015/device-grid/device-grid.service.js +59 -22
- package/esm2015/sub-assets/sub-assets.service.js +7 -5
- package/fesm2015/c8y-ngx-components-assets-navigator.js +7 -2
- package/fesm2015/c8y-ngx-components-assets-navigator.js.map +1 -1
- package/fesm2015/c8y-ngx-components-child-devices.js +96 -0
- package/fesm2015/c8y-ngx-components-child-devices.js.map +1 -0
- package/fesm2015/c8y-ngx-components-device-grid.js +118 -35
- package/fesm2015/c8y-ngx-components-device-grid.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sub-assets.js +6 -4
- package/fesm2015/c8y-ngx-components-sub-assets.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +2 -3
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/locales/locales.pot +6 -0
- package/package.json +2 -2
- package/sub-assets/c8y-ngx-components-sub-assets.metadata.json +1 -1
- package/sub-assets/sub-assets.service.d.ts +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"ActionBarItem":{"__symbolic":"interface"},"ActionBarFactory":{"__symbolic":"interface"},"ActionBarItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"c8y-action-bar-item","template":"<ng-template #template>\n <li class=\"{{itemClass}}\">\n <ng-content></ng-content>\n </li>\n</ng-template>"}]}],"members":{"placement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"itemClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["template",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionBarService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ActionBarModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":23,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ActionBarComponent"},{"__symbolic":"reference","name":"ActionBarItemComponent"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":25,"character":12},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":25,"character":44},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":25,"character":60},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ActionBarComponent"},{"__symbolic":"reference","name":"ActionBarItemComponent"}]}]}],"members":{}},"HOOK_ACTION_BAR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":28,"character":35},"arguments":["ActionBarFactory"]},"ActionBarService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":48,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":59,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":59,"character":50}]}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ActionBarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-action-bar","host":{"class":"c8y-ui-action-bar"},"template":"<div class=\"navbar-header\">\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\" >\n <ul class=\"nav navbar-nav navbar-left\">\n <ng-container *ngFor=\"let item of getSortedItems('left')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right\">\n <ng-container *ngFor=\"let item of getSortedItems('right')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n <li class=\"no-remove more-wrapper\" *ngIf=\"getSortedItems('more').length > 0\">\n <div class=\"dropdown\" dropdown>\n <button\n title=\"{{ 'More' | translate }}…\"\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span class=\"text-truncate\" translate>More…</span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <ng-container *ngFor=\"let item of getSortedItems('more')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"dropdown-menu visible-xs\"> \n <ng-container *ngFor=\"let item of getSortedItems('more')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </li>\n </ul>\n</div>\n"}]}],"members":{"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":18,"character":12},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":24,"character":12},"arguments":["class.has-tabs"]}]}],"isTabsHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":30,"character":12},"arguments":["class.horizontal-tabs"]}]}],"uiActionBar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":40,"character":3},"arguments":["class.c8y-ui-action-bar"]}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"hidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":50,"character":3}}]}],"getSortedItems":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"HOOK_ACTION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":31},"arguments":["ActionFactory"]},"ActionService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":29,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":29,"character":50}]}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ActionModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ActionOutletComponent"},{"__symbolic":"reference","name":"ActionComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":20,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":21,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ActionOutletComponent"},{"__symbolic":"reference","name":"ActionComponent"}]}]}],"members":{}},"ActionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-action","template":"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>"}]}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":["template",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"Action":{"__symbolic":"interface"},"ActionFactory":{"__symbolic":"interface"},"ActionOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-action-outlet","template":"<div class=\"dropdown\" dropdown *ngIf=\"items && items.length > 0\">\n <button\n type=\"button\"\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"true\">\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 getByPriority()\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n <li *ngIf=\"item.label\">\n <button title=\"{{ item.label | translate }}\" [attr.disabled]=\"item.disabled ? 'disabled' : null\" (click)=\"invoke(item)\">\n <i *ngIf=\"item.icon\" [c8yIcon]=\"item.icon\"></i>{{item.label | translate}}\n </button>\n </li>\n </ng-container>\n </ul>\n</div>\n"}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"getByPriority":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"AlertComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"c8y-alert","template":"<ng-template #text>\r\n <ng-content select=\"c8y-alert-text\"></ng-content>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n<ng-template #detailedData>\r\n <ng-content select=\"c8y-alert-details\"></ng-content>\r\n</ng-template>"}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"onDetail":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"detailedData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":31,"character":3},"arguments":["detailedData",{"static":false}]}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":35,"character":3},"arguments":["text",{"static":false}]}]}],"containDetailsComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"AlertDetailsComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AlertService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"AlertOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"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\" [innerText]=\"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 [innerText]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n</div>\n"}]}],"members":{"isStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":29,"character":3},"arguments":["class.static"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":40,"character":5},"arguments":["position"]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"AlertService"}]}],"getClass":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"showDetails":[{"__symbolic":"method"}],"hasDetails":[{"__symbolic":"method"}],"closeDetails":[{"__symbolic":"method"}],"isDetailsShow":[{"__symbolic":"method"}],"isTemplateRef":[{"__symbolic":"method"}],"template":[{"__symbolic":"method"}],"setDetailsContent":[{"__symbolic":"method"}]}},"Alert":{"__symbolic":"interface"},"AlertTextComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-alert-text","template":"<ng-content></ng-content>"}]}],"members":{}},"AlertDetailsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-alert-details","template":"<ng-content></ng-content>"}]}],"members":{}},"AlertService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"add":[{"__symbolic":"method"}],"addByText":[{"__symbolic":"method"}],"list":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"removeLastDanger":[{"__symbolic":"method"}],"saveSuccess":[{"__symbolic":"method"}],"createSuccess":[{"__symbolic":"method"}],"clearAll":[{"__symbolic":"method"}],"success":[{"__symbolic":"method"}],"danger":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"warning":[{"__symbolic":"method"}],"addServerFailure":[{"__symbolic":"method"}],"areSame":[{"__symbolic":"method"}],"changeAlerts":[{"__symbolic":"method"}],"addAlert":[{"__symbolic":"method"}],"hideAutomaticallyIfNeeded":[{"__symbolic":"method"}],"removeOldestIfMax":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"AlertModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"AlertOutletComponent"},{"__symbolic":"reference","name":"AlertComponent"},{"__symbolic":"reference","name":"AlertDetailsComponent"},{"__symbolic":"reference","name":"AlertTextComponent"}],"declarations":[{"__symbolic":"reference","name":"AlertOutletComponent"},{"__symbolic":"reference","name":"AlertComponent"},{"__symbolic":"reference","name":"AlertDetailsComponent"},{"__symbolic":"reference","name":"AlertTextComponent"}]}]}],"members":{}},"BootstrapComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-bootstrap","template":"<c8y-login *ngIf=\"!(ui.currentUser | async)\"></c8y-login>\n\n<div *ngIf=\"ui.currentUser | async\" [class.head-open]=\"headerService.headerOpen\">\n <c8y-header-bar #header></c8y-header-bar>\n <c8y-navigator-outlet\n [nodes]=\"navigator.items$ | async\"\n [open]=\"headerService.navigatorOpen$ | async\"\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 >\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$ | async\"\n >\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 <div class=\"container-fluid\">\n <router-outlet></router-outlet>\n <ng-content select=\"#c8y-legacy-view\"></ng-content>\n <!-- legacy ng-view, will not be migrated atm -->\n </div>\n </div>\n</div>\n<c8y-cookie-banner></c8y-cookie-banner>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"NavigatorService"},{"__symbolic":"reference","name":"ActionBarService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"HeaderService"}]}]}},"BootstrapModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"BootstrapComponent"},{"__symbolic":"reference","name":"CookieBannerComponent"},{"__symbolic":"reference","name":"ɵe"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":25,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"LoginModule"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":29,"character":4},{"__symbolic":"reference","name":"TabsModule"},{"__symbolic":"reference","name":"ActionBarModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","name":"NavigatorModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":34,"character":4},{"__symbolic":"reference","name":"ModalModule"}],"exports":[{"__symbolic":"reference","name":"BootstrapComponent"}],"entryComponents":[{"__symbolic":"reference","name":"BootstrapComponent"},{"__symbolic":"reference","name":"ɵe"}],"providers":[{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"CookieBannerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"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 </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-default btn-block\"\n (click)=\"onConfigurePreferences()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Configure preferences' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\">\n <div class=\"p-b-16\"></div>\n <a\n class=\"btn btn-default btn-block\"\n href=\"{{ settings.policyUrl }}\"\n target=\"_blank\"\n *ngIf=\"settings.policyUrl\"\n >\n {{ 'Privacy policy' | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":16,"character":28},{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"onConfigurePreferences":[{"__symbolic":"method"}],"acceptCookies":[{"__symbolic":"method"}],"shouldShowCookieBanner":[{"__symbolic":"method"}],"disableButtons":[{"__symbolic":"method"}],"setCookieBannerVisibility":[{"__symbolic":"method"}]}},"BreadcrumbOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"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 *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=\"{{ 'Collapse 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 *c8yOutlet=\"item.template\"></ng-container>\n <ng-container *ngIf=\"item.label\">\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 </li>\n </ng-container>\n </ul>\n</div>\n"}]}],"members":{"breadcrumbs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"normalizePath":[{"__symbolic":"method"}]}},"BreadcrumbComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-breadcrumb","template":"<ng-template>\n <ng-content></ng-content>\n</ng-template>"}]}],"members":{"contentChildItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":11,"character":3},"arguments":[{"__symbolic":"reference","name":"BreadcrumbItemComponent"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BreadcrumbService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"HOOK_BREADCRUMB":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":8,"character":35},"arguments":["BreadcrumbFactory"]},"BreadcrumbService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":19,"character":50}]}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"selectPreferredByPath":[{"__symbolic":"method"}],"sortByPreferredPath":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"BreadcrumbItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-breadcrumb-item","template":"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"translate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":["template",{"static":false}]}]}]}},"BreadcrumbItem":{"__symbolic":"interface"},"Breadcrumb":{"__symbolic":"interface"},"BreadcrumbFactory":{"__symbolic":"interface"},"BreadcrumbModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"BreadcrumbComponent"},{"__symbolic":"reference","name":"BreadcrumbItemComponent"},{"__symbolic":"reference","name":"BreadcrumbOutletComponent"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":22,"character":4},"member":"forChild"},"arguments":[[]]},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":24,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"BreadcrumbComponent"},{"__symbolic":"reference","name":"BreadcrumbItemComponent"},{"__symbolic":"reference","name":"BreadcrumbOutletComponent"}]}]}],"members":{}},"ApplicationOptions":{"__symbolic":"class","members":{}},"CookieBannerConfiguration":{"__symbolic":"interface"},"CookiePreferencesConfiguration":{"__symbolic":"interface"},"LoginExtraLink":{"__symbolic":"interface"},"Icon":{"__symbolic":"interface"},"Docs":{"__symbolic":"interface"},"Links":{"__symbolic":"interface"},"I18nExtra":{"__symbolic":"interface"},"I18nExtraLangCode":{"__symbolic":"interface"},"Languages":{"__symbolic":"interface"},"LanguagesLangCode":{"__symbolic":"interface"},"BrandingCssVars":{"__symbolic":"interface"},"initializeServices":{"__symbolic":"function"},"ICON_LIST":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":60,"character":29},"arguments":["iconList"]},"CommonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":79,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":80,"character":12},{"__symbolic":"reference","name":"I18nModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":80,"character":40}],"exports":[{"__symbolic":"reference","name":"IconDirective"},{"__symbolic":"reference","name":"OutletDirective"},{"__symbolic":"reference","name":"I18nModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":85,"character":4},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ShortenUserNamePipe"},{"__symbolic":"reference","name":"ForOfDirective"},{"__symbolic":"reference","name":"LoadMoreComponent"},{"__symbolic":"reference","name":"MapFunctionPipe"},{"__symbolic":"reference","name":"ProgressBarComponent"},{"__symbolic":"reference","name":"DatePipe"},{"__symbolic":"reference","name":"LoadingComponent"},{"__symbolic":"reference","name":"ɵb"}],"declarations":[{"__symbolic":"reference","name":"IconDirective"},{"__symbolic":"reference","name":"OutletDirective"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ShortenUserNamePipe"},{"__symbolic":"reference","name":"ForOfDirective"},{"__symbolic":"reference","name":"LoadMoreComponent"},{"__symbolic":"reference","name":"MapFunctionPipe"},{"__symbolic":"reference","name":"ProgressBarComponent"},{"__symbolic":"reference","name":"DatePipe"},{"__symbolic":"reference","name":"LoadingComponent"},{"__symbolic":"reference","name":"ɵb"}],"entryComponents":[{"__symbolic":"reference","name":"LoadMoreComponent"},{"__symbolic":"reference","name":"LoadingComponent"}]}]}],"members":{},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"DataModule","line":118,"character":9},"member":"providers"}}},{"provide":{"__symbolic":"reference","name":"HOOK_OPTIONS"},"useValue":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"window"},"member":"C8Y_APP"},"right":{}},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":122,"character":17},"useFactory":{"__symbolic":"reference","name":"initializeServices"},"deps":[{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"UserPreferencesService"}],"multi":true},{"provide":{"__symbolic":"reference","name":"ICON_LIST"},"useValue":{"__symbolic":"reference","name":"ICONS"},"multi":false},{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"I18nModule"},"member":"providers"}}},{"__symbolic":"reference","name":"UserPreferencesService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"Permissions"},{"__symbolic":"reference","name":"TenantUiService"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"ShortenUserNamePipe"},{"__symbolic":"reference","name":"MapFunctionPipe"},{"__symbolic":"reference","name":"DatePipe"},{"__symbolic":"reference","name":"ZipService"}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"CommonModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"CommonModule"},"member":"providers"}}}}}},"ES_MAX_TIME_MILLISECONDS":8640000000000000,"DatePipe":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":26,"character":30},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":25,"character":1},"arguments":[{"name":"c8yDate"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":27,"character":22}]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":27,"character":75}]}],"transform":[{"__symbolic":"method"}]}},"fromTrigger":{"__symbolic":"function","parameters":["router","refresh","factories"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"router"},"member":"events"},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"filter","line":7,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":7,"character":11,"module":"./core/common/extension-hooks"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"merge","line":8,"character":4},"arguments":[{"__symbolic":"reference","name":"refresh"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"startWith","line":9,"character":4},"arguments":[1]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":10,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":14,"module":"./core/common/extension-hooks"}]}]}},"fromFactories":{"__symbolic":"function","parameters":["factories","router","withFirstEmpty"],"defaults":[null,null,true],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"factories"}]}},"right":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"factories"},"member":"length"},"right":1}},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"of","line":19,"character":6},"arguments":[[]]},"elseExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"defer","line":20,"character":6},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":20,"character":12,"module":"./core/common/extension-hooks"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":28,"character":14},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":28,"character":18,"module":"./core/common/extension-hooks"}]}]}}},"resolveInjectedFactories":{"__symbolic":"function","parameters":["factories"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"flatten","line":32,"character":9},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"factories"},"member":"map"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":32,"character":31,"module":"./core/common/extension-hooks"}]}]}},"stateToFactory":{"__symbolic":"function"},"sortByPriority":{"__symbolic":"function","parameters":["items"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"sortBy","line":41,"character":9},"arguments":[{"__symbolic":"reference","name":"items"},"priority"]}},"toObservableOfArrays":{"__symbolic":"function"},"isPromise":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"reference","name":"obj"}}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":61,"character":18,"module":"./core/common/extension-hooks"},"right":"function"}}},"toObservable":{"__symbolic":"function"},"ExtensionFactory":{"__symbolic":"interface"},"ExtensionPoint":{"__symbolic":"interface"},"getActivatedRoute":{"__symbolic":"function"},"ForOfDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":60,"character":1},"arguments":[{"selector":"[c8yFor]"}]}],"members":{"c8yForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"c8yForLoadMore":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":122,"character":3}}]}],"c8yForPipe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":130,"character":3}}]}],"c8yForNotFound":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":140,"character":3}}]}],"c8yForMaxIterations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"c8yForLoadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":3}}]}],"c8yForLoadNextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":167,"character":3}}]}],"c8yForRealtime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":175,"character":3}}]}],"c8yForComparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":184,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":191,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":192,"character":38}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"handleRealtime":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}],"append":[{"__symbolic":"method"}],"loadMoreData":[{"__symbolic":"method"}],"createLoadMoreButtonComponent":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"forMatchingEmbeddedViewRef":[{"__symbolic":"method"}],"checkForDuplicates":[{"__symbolic":"method"}],"unsubscribePaging":[{"__symbolic":"method"}]}},"HumanizeAppNamePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":12,"character":1},"arguments":[{"name":"humanizeAppName"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":21,"character":40}]}],"transform":[{"__symbolic":"method"}],"getAppName":[{"__symbolic":"method"}],"getFirstDefined":[{"__symbolic":"method"}],"isPublicApp":[{"__symbolic":"method"}]}},"HumanizePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":8,"character":1},"arguments":[{"name":"humanize"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"IconDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[c8yIcon]"}]}],"members":{"c8yIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":21,"character":22}]}],"isC8y":[{"__symbolic":"method"}],"getClasses":[{"__symbolic":"method"}],"updateIcon":[{"__symbolic":"method"}]}},"ICONS":["home","th","bar-chart-o","tasks","tachometer","bell","puzzle-piece","map-marker","location-arrow","globe","power-off","desktop","laptop","mobile","signal","qrcode","file","file-text","folder","folder-open","archive","ssd","book","bookmark","tag","flag","search","heart","star","bolt","cog","cogs","wrench","ban","user","users","sign-in","sign-out","upload","download","cloud-upload","cloud-download","cloud","hourglass","refresh","repeat","undo","lock","unlock","info","question-circle","exclamation-circle","bug","calendar","random","asterisk","key","link","chain-broken","external-link","picture-o","comment","bullhorn","phone","lightbulb-o","flask","cloud-network","exchange","code-fork","keyboard-o","terminal","code","clipboard","pencil","envelope","inbox","reply","share","thumbs-up","thumbs-down","check","plus","expand","compress","arrows","arrow-up","arrow-down","arrow-left","arrow-right","th-list","bars","table","columns","filter","sort","sort-up","sort-down","ellipsis-h","ellipsis-v","rss"],"LoadMoreComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"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…\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"}]}],"members":{"paging":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"useIntersection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"hidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"maxIterations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"noMoreDataHint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"loadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"hideNoMoreDataHint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"loadNextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"loadingLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"onLoad":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"hostClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":49,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":60,"character":31}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"loadMore":[{"__symbolic":"method"}],"intersectionLoading":[{"__symbolic":"method"}],"getLoadingThreshold":[{"__symbolic":"method"}],"shouldShowNoMoreDataHint":[{"__symbolic":"method"}],"shouldSwitchMode":[{"__symbolic":"method"}],"buttonInView":[{"__symbolic":"method"}]}},"LoadMoreMode":{"__symbolic":"interface"},"LoadingComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-loading","template":"\n <div class=\"p-24 p-relative d-inline-block\" >\n <div class=\"spinner\">\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 "}]}],"members":{}},"MapFunctionPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"map"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"memoize":{"__symbolic":"function","parameters":["resolver"],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":9,"module":"./core/common/memoize.decorator"}},"throttle":{"__symbolic":"function","parameters":["wait","options"],"value":{"__symbolic":"error","message":"Lambda not supported","line":9,"character":9,"module":"./core/common/throttle.decorator"}},"HOOK_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":32},"arguments":["App options"]},"OptionsService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ApplicationOptions"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":17},"arguments":[{"__symbolic":"reference","name":"HOOK_OPTIONS"}]}],null,null],"parameters":[null,{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"SystemOptionsService","line":17,"character":34},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"TenantOptionsService","line":18,"character":33}]}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"getSupportUrl":[{"__symbolic":"method"}],"getActivateSupportUser":[{"__symbolic":"method"}],"getSystemOption":[{"__symbolic":"method"}],"getTenantOption":[{"__symbolic":"method"}],"setupOptions":[{"__symbolic":"method"}],"getOptionFromService":[{"__symbolic":"method"}],"parseOptionRawValue":[{"__symbolic":"method"}]}},"OutletDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":20,"character":1},"arguments":[{"selector":"[c8yOutlet]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":28,"character":27},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":29,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":30,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":16}]}],"c8yOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"c8yOutletProperties":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"ngOnDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"Permissions":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":11,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":12,"character":18}]}],"canEdit":[{"__symbolic":"method"}],"hasRole":[{"__symbolic":"method"}],"hasAllRoles":[{"__symbolic":"method"}],"hasAnyRole":[{"__symbolic":"method"}],"checkIfOwner":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"memoize"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"property","line":50,"character":11},"arguments":["id"]}]}]}],"checkWithRequest":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"memoize"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"property","line":57,"character":11},"arguments":["id"]}]}]}],"checkIfCanEdit":[{"__symbolic":"method"}]}},"ProgressBarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-progress-bar","template":"<div>\n <p *ngIf=\"message\">\n {{ message | translate }}\n </p>\n <div class=\"progress progress-striped active\" *ngIf=\"progress !== null\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\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 p-relative\" *ngIf=\"progress === null\">\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"}]}],"members":{"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"progress":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}]}},"ShortenUserNamePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"shortenUserName"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"StateService":{"__symbolic":"class","members":{"map":[{"__symbolic":"method"}],"emitNewState":[{"__symbolic":"method"}]}},"Status":{"SUCCESS":"success","WARNING":"warning","DANGER":"danger","INFO":"info"},"StatusType":{"__symbolic":"interface"},"statusIcons":{"__symbolic":"error","message":"Expression form not supported","line":12,"character":2,"module":"./core/common/status.model"},"statusClasses":{"__symbolic":"error","message":"Expression form not supported","line":19,"character":2,"module":"./core/common/status.model"},"statusAlert":{"__symbolic":"error","message":"Expression form not supported","line":26,"character":2,"module":"./core/common/status.model"},"operationStatusIcons":{"__symbolic":"error","message":"Expression form not supported","line":33,"character":2,"module":"./core/common/status.model"},"operationStatusClasses":{"__symbolic":"error","message":"Expression form not supported","line":40,"character":2,"module":"./core/common/status.model"},"TenantUiService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":7,"character":27},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":8,"character":32}]}],"isManagementTenant":[{"__symbolic":"method"}],"isEnterpriseTenant":[{"__symbolic":"method"}],"hasApp":[{"__symbolic":"method"}]}},"AppStateService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":40,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":41,"character":23},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":43,"character":25},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":44,"character":39}]}],"assignApplicationKeyToDefaultHeaders":[{"__symbolic":"method"}],"getLangs":[{"__symbolic":"method"}],"loadManifest":[{"__symbolic":"method"}],"refreshLoginOptions":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"throttle"},"arguments":[600,{"trailing":false}]}]}],"isApplicationAvailable":[{"__symbolic":"method"}],"setUser":[{"__symbolic":"method"}],"getCurrentContextPath":[{"__symbolic":"method"}],"loadDefaultOptions":[{"__symbolic":"method"}],"showIncompatibleVersionsError":[{"__symbolic":"method"}]}},"UserPreferencesStorageLocal":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"saveJsonStore":[{"__symbolic":"method"}]}},"UserPreferencesStorageInventory":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":6,"character":23}]}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"UserPreferencesService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":18,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":19,"character":23},{"__symbolic":"reference","name":"AppStateService"}]}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"getForUser":[{"__symbolic":"method"}],"setForUser":[{"__symbolic":"method"}],"getRawKey":[{"__symbolic":"method"}],"getStorage":[{"__symbolic":"method"}]}},"ZipService":{"__symbolic":"class","members":{"getEntries":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getJsonData":[{"__symbolic":"method"}]}},"ZipEntry":{"__symbolic":"interface"},"retryWithDelay":{"__symbolic":"function","parameters":["delayTime","count"],"defaults":[null,1],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":11,"module":"./core/common/retry-with-delay.operator"}},"HeaderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":24,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TitleComponent"},{"__symbolic":"reference","name":"HeaderBarComponent"},{"__symbolic":"reference","name":"TitleOutletComponent"},{"__symbolic":"reference","name":"AppIconComponent"},{"__symbolic":"reference","name":"AppSwitcherComponent"},{"__symbolic":"reference","name":"RightDrawerComponent"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":34,"character":4},{"__symbolic":"reference","name":"UserModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ActionModule"},{"__symbolic":"reference","name":"BreadcrumbModule"},{"__symbolic":"reference","name":"NavigatorModule"},{"__symbolic":"reference","name":"ProductExperienceModule"}],"exports":[{"__symbolic":"reference","name":"HeaderBarComponent"},{"__symbolic":"reference","name":"TitleComponent"},{"__symbolic":"reference","name":"TitleOutletComponent"},{"__symbolic":"reference","name":"AppIconComponent"},{"__symbolic":"reference","name":"AppSwitcherComponent"},{"__symbolic":"reference","name":"RightDrawerComponent"}]}]}],"members":{}},"HeaderService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"ɵc"}]}],"toggle":[{"__symbolic":"method"}],"toggleNavigator":[{"__symbolic":"method"}],"closeNavigator":[{"__symbolic":"method"}],"configNavigator":[{"__symbolic":"method"}],"changeTitle":[{"__symbolic":"method"}],"changePageTitle":[{"__symbolic":"method"}],"verifyIfNavOpen":[{"__symbolic":"method"}],"shouldShowBreadcrumbs":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Header":{"__symbolic":"interface"},"RightDrawerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-right-drawer","template":"<div class=\"c8y-right-drawer\">\n <div class=\"summary\">\n <h4 class=\"text-light\">\n {{ 'Welcome to' | translate }} {{ app | humanizeAppName | async }}\n </h4>\n </div>\n\n <div *ngIf=\"quickLinks.length\">\n <div class=\"legend form-block\" translate>Quick links</div>\n <div class=\"quick-links-drawer\">\n <ng-container *ngFor=\"let quickLink of quickLinks\">\n <a\n class=\"quick-link\"\n [href]=\"quickLink.url || '#'\"\n (click)=\"quickLink.click && $event.preventDefault(); quickLink.click();\"\n >\n <h2 *ngIf=\"quickLink.icon\"><i class=\"{{ quickLink.icon }}\"></i></h2>\n <img\n *ngIf=\"quickLink.iconSrc\"\n [src]=\"quickLink.iconSrc\"\n style=\"max-width:50px;\"\n class=\"img-responsive center-block\"\n onerror=\"this.style.display = 'none'\">\n {{ quickLink.label | translate }}\n </a>\n </ng-container>\n </div>\n </div>\n\n <div *ngIf=\"helpAndSupport.length\">\n <div class=\"legend form-block m-t-24\" translate>Help & support</div>\n <div class=\"help-support\" *ngFor=\"let link of helpAndSupport\">\n <a\n class=\"help-and-support-link text-truncate\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n [href]=\"link.url\"\n >\n <i [c8yIcon]=\"link.icon\"></i>\n <span title=\"{{ link.label | translate }}\" class=\"d-inline\">\n {{ link.label | translate }}\n </span>\n </a>\n </div>\n </div>\n</div>\n"}]}],"members":{"_quickLinks":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3},"arguments":["quickLinks"]}]}],"_helpAndSupport":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3},"arguments":["helpAndSupport"]}]}],"app":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}]}},"TitleOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-title-outlet","template":"<div class=\"c8y-ui-title\">\n <div class=\"title\" *c8yOutlet=\"title\"></div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":14,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":15,"character":18}]}]}},"TitleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-title","template":"<ng-template #template>\n <h1 class=\"text-truncate\">\n <ng-content></ng-content>\n </h1>\n</ng-template>\n\n"}]}],"members":{"pageTitleUpdate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":9,"character":3},"arguments":["template",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"HeaderBarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-header-bar","template":"<div\n class=\"app-main-header\"\n [ngClass]=\"{\n open: headerService.navigatorOpen$ | async,\n drawerOpen: drawerOpen\n }\"\n>\n <div class=\"header-bar\">\n <button\n *ngIf=\"canToggle$ | async\"\n type=\"button\"\n class=\"navigator-toggle main-header-button\"\n title=\"{{ 'Toggle navigator' | translate }}\"\n (click)=\"headerService.toggleNavigator()\"\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 [breadcrumbs]=\"breadcrumbService.items$ | async\"\n class=\"app-breadcrumbs\"\n ></c8y-breadcrumb-outlet>\n </span>\n </div>\n <c8y-search-outlet\n title=\"{{ 'Search' | translate }}\"\n [search]=\"searchService.items$ | async\"\n class=\"main-header-item\"\n ></c8y-search-outlet>\n <c8y-action-outlet\n title=\"{{ 'Add' | translate }}\"\n [items]=\"actionService.items$ | async\"\n class=\"main-header-item\"\n ></c8y-action-outlet>\n <c8y-app-switcher\n title=\"{{ 'Application switcher' | translate }}\"\n class=\"main-header-item\"\n ></c8y-app-switcher>\n <c8y-user-menu-outlet\n [items]=\"(userMenuService.state$ | async).userMenuItems\"\n class=\"main-header-item\"\n ></c8y-user-menu-outlet>\n\n <button\n title=\"{{ 'Toggle side drawer' | translate }}\"\n class=\"drawer-toggle main-header-button\"\n *ngIf=\"(appState$ | async).showRightDrawer\"\n (click)=\"drawerOpen = !drawerOpen\"\n >\n <i [c8yIcon]=\"'indent'\" *ngIf=\"drawerOpen\"></i>\n <i [c8yIcon]=\"'dedent'\" *ngIf=\"!drawerOpen\"></i>\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 *ngIf=\"(appState$ | async).showRightDrawer\"\n [app]=\"(appState$ | async).app\"\n [quickLinks]=\"docs.items$ | async\"\n [helpAndSupport]=\"docs.items$ | async\"\n >\n </c8y-right-drawer>\n <div class=\"loading-bar\" [ngClass]=\"{ active: (appState$ | async).isLoading }\"></div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"},{"__symbolic":"reference","name":"ActionService"},{"__symbolic":"reference","name":"BreadcrumbService"},{"__symbolic":"reference","name":"SearchService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"UserMenuService"},{"__symbolic":"reference","name":"DocsService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"AppSwitcherComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-app-switcher","template":"<div class=\"app-switcher-dropdown\" dropdown>\n <button\n class=\"main-header-button c8y-dropdown dropdown-toggle\"\n id=\"appSwitcherDropdown\"\n dropdownToggle\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 >\n <div class=\"app-switcher-sagcloud\" *ngIf=\"oneCloudApps && oneCloudApps.length > 0\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n *ngFor=\"let app of oneCloudApps\"\n [href]=\"getHref(app)\"\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 class=\"app-switcher\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n [ngClass]=\"isActive(app) ? 'active' : ''\"\n *ngFor=\"let app of apps\"\n [href]=\"getHref(app)\"\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"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":19,"character":65}]}],"isActive":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"listAppsForUser":[{"__symbolic":"method"}],"filterApps":[{"__symbolic":"method"}],"filterVisible":[{"__symbolic":"method"}],"filterCloud":[{"__symbolic":"method"}],"filterDuplicates":[{"__symbolic":"method"}],"orderApps":[{"__symbolic":"method"}]}},"AppIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"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"}]}],"members":{"contextPath":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"app":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OptionsService"}]}],"ngOnInit":[{"__symbolic":"method"}],"findStaticIcon":[{"__symbolic":"method"}],"iconFromAppDefinition":[{"__symbolic":"method"}],"iconUrlFromAppDefinition":[{"__symbolic":"method"}],"mapFontAwesomeToDelightIcons":[{"__symbolic":"method"}]}},"PatternMessagesService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":5},"arguments":[{"__symbolic":"reference","name":"HOOK_PATTERN_MESSAGES"}]}]],"parameters":[null]}],"translate":[{"__symbolic":"method"}],"translateWithPatterns":[{"__symbolic":"method"}],"translateWithParams":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"translateLoaderFactory":{"__symbolic":"function","parameters":["httpClient","optionsService","cachedLocaleDictionaryService","localePath","languages"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TranslateCustomLoader"},"arguments":[{"__symbolic":"reference","name":"httpClient"},{"__symbolic":"reference","name":"optionsService"},{"__symbolic":"reference","name":"cachedLocaleDictionaryService"},{"__symbolic":"reference","name":"localePath"},{"__symbolic":"reference","name":"languages"}]}},"localePathFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"localePath"}},"languagesFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"languages"}},"localeId":{"__symbolic":"function","parameters":["appStateService"],"value":{}},"getAngularLocalesLanguageString":{"__symbolic":"function","parameters":["language"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"en":"en-GB","en-EN":"en-GB","$quoted$":["en-EN"]},"index":{"__symbolic":"reference","name":"language"}},"right":{"__symbolic":"reference","name":"language"}}},"I18nModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":83,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"C8yTranslateModule"}],"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":85,"character":12}]}]}],"members":{},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":90,"character":17},"useFactory":{"__symbolic":"reference","name":"localeId"},"deps":[{"__symbolic":"reference","name":"AppStateService"}]},{"provide":{"__symbolic":"reference","name":"HOOK_PATTERN_MESSAGES"},"useValue":{"__symbolic":"reference","name":"MESSAGES"},"multi":true},{"provide":{"__symbolic":"reference","name":"LOCALE_PATH"},"useFactory":{"__symbolic":"reference","name":"localePathFactory"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","name":"LANGUAGES"},"useFactory":{"__symbolic":"reference","name":"languagesFactory"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateLoader","line":97,"character":17},"useFactory":{"__symbolic":"reference","name":"translateLoaderFactory"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":99,"character":15},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"CachedLocaleDictionaryService"},{"__symbolic":"reference","name":"LOCALE_PATH"},{"__symbolic":"reference","name":"LANGUAGES"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateCompiler","line":101,"character":17},"useClass":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateFakeCompiler","line":101,"character":46}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":102,"character":17},"useClass":{"__symbolic":"reference","name":"TranslateParserCustom"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"MissingTranslationHandler","line":103,"character":17},"useClass":{"__symbolic":"reference","name":"MissingTranslationCustomHandler"}},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateStore","line":104,"character":6},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":105,"character":6},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_STORE","line":106,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_DEFAULT_LANG","line":107,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_EXTEND","line":108,"character":17},"useValue":false},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"DEFAULT_LANGUAGE","line":109,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"I18nModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"I18nModule"},"member":"providers"}}}}}},"LANGUAGES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["Languages"]},"parse":{"__symbolic":"function"},"TranslateParserCustom":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateDefaultParser","line":6,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"getValue":[{"__symbolic":"method"}]}},"LOCALE_PATH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":31},"arguments":["Locale path"]},"loadLocale":{"__symbolic":"function","parameters":["moduleLang"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Promise"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":7,"character":21,"module":"./core/i18n/load-locale"}]}},"MissingTranslationCustomHandler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":15,"character":20},{"__symbolic":"reference","name":"PatternMessagesService"}]}],"handle":[{"__symbolic":"method"}],"getFromCache":[{"__symbolic":"method"}],"addToCache":[{"__symbolic":"method"}],"getCacheKey":[{"__symbolic":"method"}],"getPatternMessageTranslation":[{"__symbolic":"method"}]}},"TranslateService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":24,"character":26},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"OptionsService"}]}],"switchToLanguage":[{"__symbolic":"method"}],"loadLocales":[{"__symbolic":"method"}],"setLanguage":[{"__symbolic":"method"}],"firstSupportedLanguage":[{"__symbolic":"method"}],"convertToLanguageCodePO":[{"__symbolic":"method"}],"getNativeLanguage":[{"__symbolic":"method"}],"saveInLocalStorage":[{"__symbolic":"method"}],"getSupported":[{"__symbolic":"method"}],"queryStringLang":[{"__symbolic":"method"}],"getLessSpecific":[{"__symbolic":"method"}],"localStorageLang":[{"__symbolic":"method"}],"browserLangs":[{"__symbolic":"method"}],"getQueryParameter":[{"__symbolic":"method"}]},"statics":{"SAVE_LANGUAGE_KEY":"c8y_language","defaultLang":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"window"},"member":"localStorage"},"member":"getItem"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"TranslateService"},"member":"SAVE_LANGUAGE_KEY"}]}},"ɵprov":{}}},"_":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":17,"module":"./core/i18n/gettext"},"gettext":{"__symbolic":"function","parameters":["str"],"value":{"__symbolic":"reference","name":"str"}},"MESSAGES":{"^Access is denied$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Access denied."]}},"^Alarm created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Alarm created"]}},"^Alarm updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Alarm updated"]}},"^API is not available with the new domain$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not activate custom domain. DNS setup is incorrect."]}},"^Application with given name already exist$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Application with given name already exists."]}},"^Application with id (.+?) is already assigned to the tenant (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["This application is already assigned to tenant \"{{tenant}}\"."]},"placeholders":{"tenant":"$2"}},"^Apply software changes: (.+?)\\.?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Apply software changes: {{ softwareChanges }}"]},"placeholders":{"softwareChanges":{"capture":"$1","translate":{"install \"(.+?)\" \\(version: (.+?)\\)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["install \"{{ softwareName }}\" (version: {{ softwareVersion }})"]},"placeholders":{"softwareName":"$1","softwareVersion":"$2"}},"install \"([^\"]+)\"(?! \\(version: .+?\\))":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["install \"{{ softwareName }}\""]},"placeholders":{"softwareName":"$1"}},"delete \"(.+?)\" \\(version: (.+?)\\)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["delete \"{{ softwareName }}\" (version: {{ softwareVersion }})"]},"placeholders":{"softwareName":"$1","softwareVersion":"$2"}},"delete \"([^\"]+)\"(?! \\(version: .+?\\))":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["delete \"{{ softwareName }}\""]},"placeholders":{"softwareName":"$1"}},"$quoted$":["install \"(.+?)\" \\(version: (.+?)\\)","install \"([^\"]+)\"(?! \\(version: .+?\\))","delete \"(.+?)\" \\(version: (.+?)\\)","delete \"([^\"]+)\"(?! \\(version: .+?\\))"]}}}},"^Assign device profile (.+?) to device (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Assign device profile {{profileName}} to device {{deviceName}}"]},"placeholders":{"profileName":"$1","deviceName":"$2"}},"^(.+)pplication for tenant (.+) with properties \\( (.+?) \\) already exists$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Application for tenant \"{{tenant}}\" with the following values ({{valuesList}}) already exists."]},"placeholders":{"tenant":"$2","valuesList":"$3"}},"^Authentication failed! : User account is locked$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Authentication failed due to: user account is locked."]}},"^Availability monitoring record$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Availability monitoring record"]}},"^Can not activate a certificate which is either expired or not yet valid$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot activate a certificate which is either expired or not yet valid."]}},"^Cannot add certificate - certificate with (.+?) fingerprint already exists. : Certificate with (.+?) fingerprint already exists.":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not add certificate. Certificate with {{fingerprint}} fingerprint already exists."]},"placeholders":{"fingerprint":"$1"}},"^Cannot change password. : Provided token does not exist.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot change password: provided token is invalid."]}},"^Cannot deploy module (.*)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot deploy module due to error: \"{{ errorMessage | translate }}\"."]},"placeholders":{"errorMessage":"$1"}},"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}."]},"placeholders":{"moduleName":"$1","expression":"$3","incorrectExpression":"$4","line":"$5","column":"$6"}},"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}} near reserved keyword \"{{keyword}}\"."]},"placeholders":{"moduleName":"$1","expression":"$3","incorrectExpression":"$4","line":"$5","column":"$6","keyword":"$7"}},"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+), please check the where clause \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}, check \"where\" clause."]},"placeholders":{"moduleName":"$1","expression":"$3","incorrectExpression":"$4","line":"$5","column":"$6"}},"^Cannot deploy module (.+?)! : Deployment failed in module '(.+?)' in expression '(.+?)' : Exception compiling script '(.+?)' of dialect '(.+?)': missing (.+?) before statement \\((.+?)\\) \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": exception compiling script \"{{scriptName}}\" of dialect \"{{scriptDialect}}\": missing \"{{missingSyntax}}\" before statement \"{{affectedStatement}}\"."]},"placeholders":{"moduleName":"$1","expression":"$3","scriptName":"$4","scriptDialect":"$5","missingSyntax":"$6","affectedStatement":"$7"}},"^Cannot execute bulk operation on empty group. Group with id='(\\d+?)' doesn't have child assets.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."]},"placeholders":{"groupId":"$1"}},"^Cannot execute bulk operation on empty group. DynamicGroup with id='(\\d+?)' doesn't have child assets$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not execute bulk operation on an empty group. Smart group with ID \"{{groupId}}\" has no child assets."]},"placeholders":{"groupId":"$1"}},"^Cannot parse X509 certificate. : Could not parse certificate: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not parse X.509 certificate: {{ failureReason | translate }}."]},"placeholders":{"failureReason":"$1"}},"^Cannot reschedule bulk operation. All its operations are successful$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot reschedule bulk operation. All its operations are already successful."]}},"^Cannot reset user password : Cannot find user with such email.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot reset password for user with such email: email not found."]}},"^Cannot update/delete application binary via this endpoint$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot update/delete application binary via this endpoint"]}},"^Can't delete user because it is used by another managed object$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot delete device with associated device owner because this owner is still assigned to other device(s). Try to remove only the device."]}},"^Cep module created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module created"]}},"^Cep module updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module updated"]}},"^Cep module deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module deleted"]}},"^Cep module \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module \"{{name}}\" created"]},"placeholders":{"name":"$1"}},"^Cep module \"(.+?)\" updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module \"{{name}}\" updated"]},"placeholders":{"name":"$1"}},"^Cep module \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module \"{{name}}\" deleted"]},"placeholders":{"name":"$1"}},"^Command state is invalid: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Command state is invalid: {{violations}}"]},"placeholders":{"violations":{"capture":"$1","translate":{"(\\w+?) - may not be null":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" must not be null"]},"placeholders":{"field":"$1"}},"$quoted$":["(\\w+?) - may not be null"]}}}},"^Could not connect to endpoint (.+)\\. Could not verify `(.+)` host key with fingerprint `(.+)` for `(.+)` on port (.+)\\. If you expected that key, please remove the previous one from configuration to allow for connection\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not connect to endpoint \"{{endpointName}}\". Could not verify {{keyType}} host key with fingerprint {{fingerprint}} for host {{host}} on port {{port}}. If you expected this key, please remove the previous one from configuration to allow for connection."]},"placeholders":{"endpointName":"$1","keyType":"$2","fingerprint":"$3","host":"$4","port":"$5"}},"^Could not login to ssh server on endpoint \"(.+)\"\\. Provided credential for user \"(.+)\" is incorrect\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not access SSH server on endpoint \"{{endpointName}}\". Provided credentials for user \"{{userName}}\" are incorrect."]},"placeholders":{"endpointName":"$1","userName":"$2"}},"^Could not save object remoteAccessUpdate: (.+)$":{"gettext":"{{errorMessages}}","placeholders":{"errorMessages":{"capture":"$1","translate":{"Could not recognize host-key format":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not recognize \"Host key\" format"]}},"Could not recognize key-pair format":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not recognize the format of \"Public key\" or \"Private key\""]}},"$quoted$":["Could not recognize host-key format","Could not recognize key-pair format"]}}}},"^Could not update user. : Error persisting user (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not update user \"{{username}}\"."]},"placeholders":{"username":"$1"}},"ˆCreate bulk operation$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Create bulk operation"]}},"^Create bulk operation: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Create bulk operation: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"generalStatus='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["general status: \"{{ generalStatus | translate }}\""]},"placeholders":{"generalStatus":"$1"}},"progress='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["progress: \"{{ progress }}\""]},"placeholders":{"progress":"$1"}},"note=(.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["note: \"{{ note }}\""]},"placeholders":{"note":"$1"}},"$quoted$":["status='(.+?)'","generalStatus='(.+?)'","progress='(.+?)'","note=(.+?)"]}}}},"^Creation ramp must be greater than (\\d+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Bulk operation delay must be greater than {{minSeconds}} seconds."]},"placeholders":{"minSeconds":"$1"}},"^Created container$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Container created."]}},"^Created pod: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod \"{{imageName}}\" created."]},"placeholders":{"imageName":"$1"}},"^CSV file contained empty dataset$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No entries found in uploaded CSV file."]}},"^Cycle detected for route (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cycle detected for route {{route}}."]},"placeholders":{"route":"$1"}},"^Data broker processing is currently overloaded and may stop forwarding your data\\. Please contact support\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Data broker processing is currently overloaded and may stop forwarding your data. Please contact support."]}},"^Data broker processing is not able to connect do destination tenant, thus data forwarding is not working\\. Please contact support\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Data broker processing is not able to connect to destination tenant, thus data forwarding is not working. Please contact support."]}},"^Delete bulk operation$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Delete bulk operation"]}},"^Delete bulk operation: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Delete bulk operation: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"generalStatus='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["general status: \"{{ generalStatus | translate }}\""]},"placeholders":{"generalStatus":"$1"}},"progress='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["progress: \"{{ progress }}\""]},"placeholders":{"progress":"$1"}},"note=(.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["note: \"{{ note }}\""]},"placeholders":{"note":"$1"}},"$quoted$":["status='(.+?)'","generalStatus='(.+?)'","progress='(.+?)'","note=(.+?)"]}}}},"^Device id '(.+?)' contains '(.+?)' character which is not permitted.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["ID \"{{deviceId}}\" contains invalid character: \"{{invalidCharacter}}\"."]},"placeholders":{"deviceId":"$1","invalidCharacter":"$2"}},"^Device name: '(.+?)', alarm text: '(.+?)'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device name: \"{{deviceName}}\", alarm text: \"{{alarmText | translate}}\""]},"placeholders":{"deviceName":"$1","alarmText":"$2"}},"^Display name$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Login alias"]}},"^Domain name in uploaded certificate differs from the one in use$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Domain name in uploaded certificate differs from the one in use. Please deactivate the custom domain before uploading new certificate."]}},"^Domain name is already in use by another tenant!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Domain name is already used by another tenant."]}},"^Duplicated connector for instanceUrl (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Target URL {{targetUrl}} already used by another connector."]},"placeholders":{"targetUrl":"$1"}},"^Duplicated connector for name (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Connector name \"{{name}}\" already used by another connector."]},"placeholders":{"name":"$1"}},"^Entry is outside of the target dir: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["File entry outside of the target directory: \"{{path}}\"."]},"placeholders":{"path":"$1"}},"^Error during password validation. : Password must have at least (\\d+?) characters and no more than (\\d+?) and must contain only Latin1 characters.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Password is invalid. It must have at least {{minCharactersCount}} and no more than {{maxCharactersCount}} characters."]},"placeholders":{"minCharactersCount":"$1","maxCharactersCount":"$2"}},"^Error during password validation. : Your password has been used already. Choose another.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["This password has already been used earlier. Use a different one."]}},"^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Error in statement {{moduleName}}:{{statementNumber}}. Incorrect syntax near expression \"{{expression}}\" near reserved keyword \"{{keyword}}\"."]},"placeholders":{"moduleName":"$1","statementNumber":"$2","expression":"$3","keyword":"$4"}},"^External id not found; external id = ID \\[type=(.+?), value=(.+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["External ID not found for type \"{{type}}\" and value \"{{value}}\"."]},"placeholders":{"type":"$1","value":"$2"}},"^Error occurred when trying to find an Application for id ID (.+) : Could not find application by ID (\\d+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not find application by ID {{applicationId}}."]},"placeholders":{"applicationId":"$2"}},"^Http status code: 404\n{error=\"options/Not Found\",message=\"Unable to find option by given key: sigfox-agent/provider.token\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"}":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Unable to find option by given key: sigfox-agent/provider.token"]}},"^Failed to delete application. : Cannot remove application assigned to other tenants.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not delete application assigned to other tenants."]}},"^Failed to extract certificate from PKCS12$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Failed to extract certificate from PKCS12."]}},"^Failed to update domain at the platform$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Failed to update domain at the platform."]}},"^Finding device data from database failed : No managedObject for id '(.+?)'!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not find managed object with ID \"{{deviceId}}\"."]},"placeholders":{"deviceId":"$1"}},"^Following mandatory fields should be included: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Following mandatory fields should be included: {{fields}}"]},"placeholders":{"fields":"$1"}},"^Global Role updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global role updated"]}},"^Global Role (.+?) updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global role \"{{name}}\" updated"]},"placeholders":{"name":"$1"}},"^Global Role (.+?) updated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global role \"{{name}}\" updated: {{updatesList}}"]},"placeholders":{"name":"$1","updatesList":{"capture":"$2","translate":{"applications \\[([^\\]]+?)\\] added":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications {{list}} added"]},"placeholders":{"list":"$1"}},"applications \\[([^\\]]+?)\\] removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications {{list}} removed"]},"placeholders":{"list":"$1"}},"roles \\[([^\\]]+?)\\] added":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["roles {{list}} added"]},"placeholders":{"list":"$1"}},"roles \\[([^\\]]+?)\\] removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["roles {{list}} removed"]},"placeholders":{"list":"$1"}},"$quoted$":["applications \\[([^\\]]+?)\\] added","applications \\[([^\\]]+?)\\] removed","roles \\[([^\\]]+?)\\] added","roles \\[([^\\]]+?)\\] removed"]}}}},"^Global Roles$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global roles"]}},"^Operation updated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation updated: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"description='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["description: \"{{ description | translate }}\""]},"placeholders":{"description":"$1"}},"device name='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["device name: \"{{ deviceName }}\""]},"placeholders":{"deviceName":"$1"}},"failure reason='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["failure reason: \"{{ failureReason | translate }}\""]},"placeholders":{"failureReason":"$1"}},"$quoted$":["status='(.+?)'","description='(.+?)'","device name='(.+?)'","failure reason='(.+?)'"]}}}},"^ID \\[type=(.+?), value=(.+?)\\] was already bound to different Global ID.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["External ID \"{{value}}\" of the type \"{{type}}\" already exists."]},"placeholders":{"type":"$1","value":"$2"}},"^Invalid credentials! : Bad credentials$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Invalid credentials."]}},"^Invalid credentials! : No phone number provided$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Log into the management tenant first and enter your phone number."]}},"^Inventory Role removed$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role removed"]}},"^Inventory Role (.+?) removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role \"{{name}}\" deleted."]},"placeholders":{"name":"$1"}},"^Inventory Role updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role updated"]}},"^Inventory Role (.+?) updated":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role \"{{name}}\" updated."]},"placeholders":{"name":"$1"}},"^I/O error: Connection refused; nested exception is Connection refused : Connection refused":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Connection refused"]}},"^I/O error: Read timed out; nested exception is Read timed out : Read timed out":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Read timed out"]}},"^Log file requested$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Log file requested."]}},"^Managed object deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Managed object deleted"]}},"^Managed object \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Managed object \"{{name}}\" deleted"]},"placeholders":{"name":"$1"}},"^Maximum file size exceeded$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Maximum file size exceeded."]}},"^Message with ID (.+?) doesn't exist in smart rest template (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Message with ID \"{{messageId}}\" doesn't exist in SmartREST template with ID \"{{templateId}}\""]},"placeholders":{"messageId":"$1","templateId":"$2"}},"^NewDeviceRequest for id = (.+?) already exists.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device registration request with ID {{id}} already exists."]},"placeholders":{"id":"$1"}},"^No communication with device since (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No communication with device since {{timestamp | absoluteDate}}."]},"placeholders":{"timestamp":"$1"}},"^No data received from device within required interval.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No data received from device within required interval."]}},"^No LoRa provider settings are found. Please configure the connectivity settings.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No LoRa provider settings are found. Please configure the connectivity settings."]}},"^Not within any context!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["A problem occurred with microservice subscription."]}},"^Maximum age cannot be bigger than 10 years.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Maximum age cannot be bigger than 10 years."]}},"^Microservice application name incorrect. Please use only lower-case letters, digits and dashes. Maximum length is (\\d+) characters.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Microservice application name is incorrect: only lower case letters, digits and dashes allowed. Maximum length: {{maxLength}}."]},"placeholders":{"maxLength":"$1"}},"^Microservice not available.*$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Microservice is not available."]}},"^Operation created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation created."]}},"^Operation updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation updated."]}},"^Operation created: status='(.+?)'.":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation created: status: \"{{ status | translate }}\"."]},"placeholders":{"status":"$1"}},"^Option created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option created."]}},"^Option \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option \"{{option}}\" created."]},"placeholders":{"option":"$1"}},"^Option deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option deleted."]}},"^Option \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option \"{{option}}\" deleted."]},"placeholders":{"option":"$1"}},"^Owner field error. : Cannot introduce cyclic dependency.":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not introduce cyclic ownership dependency."]}},"^Password change is temporary blocked.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Password change is temporarily blocked."]}},"^Password cipher does not match":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Password cipher does not match."]}},"^Platform application cannot be added to, nor removed from any tenant.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Platform application cannot be added to, nor removed from any tenant."]}},"^Private key must be provided in KEY_PAIR credentials$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Private key must be provided when \"Public/private keys\" option is selected."]}},"^Private key cipher does not match":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Private key cipher does not match"]}},"^Protocol \"(.+?)\" does not support \"(.+?)\" credentials type$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Protocol \"{{protocol}}\" does not support \"{{credentialsType}}\" credentials type."]},"placeholders":{"protocol":"$1","credentialsType":"$2"}},"^pulling image \"(.+)\"$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pulling image: \"{{imageName}}\"."]},"placeholders":{"imageName":"$1"}},"^Real-time event processing is currently overloaded and may stop processing your events\\. Please contact support\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Real-time event processing is currently overloaded and may stop processing your events. Please contact support."]}},"^Resource ID \\[type=com_cumulocity_model_idtype_GId, value=(.+?)\\] for this request not found.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not find the resource with ID \"{{id}}\"."]},"placeholders":{"id":"$1"}},"^Retrieve configuration snapshot from device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Retrieve configuration snapshot from device {{deviceName}}"]},"placeholders":{"deviceName":"$1"}},"^Retrieve (.+?) configuration snapshot from device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Retrieve {{configurationType}} configuration snapshot from device {{deviceName}}"]},"placeholders":{"configurationType":"$1","deviceName":"$2"}},"^Scaled up replica set (.+) to (\\d+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Replica set \"{{replicaSetName}}\" scaled up to \"{{scaleNumber}}\"."]},"placeholders":{"replicaSetName":"$1","scaleNumber":"$2"}},"^Send configuration snapshot (.+?) of configuration type (.+?) to device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send configuration snapshot {{snapshotName}} of configuration type {{configurationType}} to device {{deviceName}}"]},"placeholders":{"snapshotName":"$1","configurationType":"$2","deviceName":"$3"}},"^Send configuration snapshot (.+?) to device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send configuration snapshot {{snapshotName}} to device {{deviceName}}"]},"placeholders":{"snapshotName":"$1","deviceName":"$2"}},"^Simulator state is invalid: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Simulator state is invalid: {{violations}}"]},"placeholders":{"violations":{"capture":"$1","translate":{"(\\w+?) - may not be null":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" should not be null"]},"placeholders":{"field":"$1"}},"(\\w+?) - must be less than or equal to (\\d+)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" must be less than or equal to {{maxValue}}"]},"placeholders":{"field":"$1","maxValue":"$2"}},"(\\w+?) - should not contain null values":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" should not contain null values"]},"placeholders":{"field":"$1"}},"$quoted$":["(\\w+?) - may not be null","(\\w+?) - must be less than or equal to (\\d+)","(\\w+?) - should not contain null values"]}}}},"^Smart rest template (.+?) doesn't exist$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["SmartREST template with id \"{{templateId}}\" doesn't exist."]},"placeholders":{"templateId":"$1"}},"^Smart rule created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule created."]}},"^Smart rule updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule updated."]}},"^Smart rule enabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule activated."]}},"^Smart rule disabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule deactivated."]}},"^Smart rule deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule deleted."]}},"^Smart rule \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" created."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" updated."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" enabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" activated."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" disabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" deactivated."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" deleted."]},"placeholders":{"name":"$1"}},"^Started container$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Container started."]}},"^Successfully assigned (.+) to (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{imageName}}\" assigned to \"{{address}}\"."]},"placeholders":{"imageName":"$1","address":"$2"}},"^Successfully pulled image \"(.+)\"$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Image \"{{imageName}}\" pulled."]},"placeholders":{"imageName":"$1"}},"^Tenant creation failed. : Tenant with given id already exists.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not create a tenant. Tenant with given domain/URL already exists."]}},"^Tenant id cannot be a reserved sql keyword \"(.+?)\".$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not use a reserved SQL keyword \"{{tenantId}}\" as a domain name."]},"placeholders":{"tenantId":"$1"}},"^Tenant \"(.+?)\" activated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" activated."]},"placeholders":{"tenant":"$1"}},"^Tenant (.+?) has sub-tenants, please remove them first!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not remove tenant \"{{tenant}}\". Remove its subtenants first."]},"placeholders":{"tenant":"$1"}},"^Tenant activated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant activated"]}},"^Tenant \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" created."]},"placeholders":{"tenant":"$1"}},"^Tenant created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant created"]}},"^Tenant \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" deleted."]},"placeholders":{"tenant":"$1"}},"^Tenant deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant deleted"]}},"^Tenant \"(.+?)\" suspended$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" suspended."]},"placeholders":{"tenant":"$1"}},"^Tenant suspended$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant suspended"]}},"^Tenant \"(.+?)\" updated: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" updated: {{properties}}."]},"placeholders":{"tenant":"$1","properties":"$2"}},"^Tenant updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant updated"]}},"^Too Many Requests$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Too many requests. Try again later."]}},"^User alias equals username '(.+)'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Username and login alias must be different."]}},"^User created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User created"]}},"^User (.+?) created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{name}}\" created"]},"placeholders":{"name":"$1"}},"^User deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User deleted"]}},"^User (.+?) deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{name}}\" deleted"]},"placeholders":{"name":"$1"}},"^User updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User updated"]}},"^User (.+?) updated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{name}}\" updated: {{updatesList}}"]},"placeholders":{"name":"$1","updatesList":{"capture":"$2","translate":{"delegatedBy='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["delegated by: \"{{delegate}}\""]},"placeholders":{"delegate":"$1"}},"owner='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["owner: \"{{owner}}\""]},"placeholders":{"owner":"$1"}},"inventory assignment \\[(.+?)\\] added":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["inventory assignment [{{inventoryAssignment}}] added"]},"placeholders":{"inventoryAssignment":"$1"}},"inventory assignment \\[(.+?)\\] removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["inventory assignment [{{inventoryAssignment}}] removed"]},"placeholders":{"inventoryAssignment":"$1"}},"applications \\[(.+?)\\] added$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications [{{applicationsList}}] added"]},"placeholders":{"applicationsList":"$1"}},"applications \\[(.+?)\\] removed$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications [{{applicationsList}}] removed"]},"placeholders":{"applicationsList":"$1"}},"global roles \\[(.+?)\\] added$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["global roles [{{globalRolesList}}] added"]},"placeholders":{"globalRolesList":"$1"}},"global roles \\[(.+?)\\] removed$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["global roles [{{globalRolesList}}] removed"]},"placeholders":{"globalRolesList":"$1"}},"$quoted$":["delegatedBy='(.+?)'","owner='(.+?)'","inventory assignment \\[(.+?)\\] added","inventory assignment \\[(.+?)\\] removed","applications \\[(.+?)\\] added$","applications \\[(.+?)\\] removed$","global roles \\[(.+?)\\] added$","global roles \\[(.+?)\\] removed$"]}}}},"^User with username '(.+?)' already exists! : Duplicated: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{username}}\" already exists."]},"placeholders":{"username":"$1"}},"^User with username or alias '(.+)' already exists! : Duplicated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User with username or login alias \"{{usernameOrAlias}}\" already exists."]},"placeholders":{"usernameOrAlias":"$1"}},"^User with email '(.+?)' already exists! : Duplicated: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User with email \"{{email}}\" already exists."]},"placeholders":{"email":"$1"}},"^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Unable to get tenant option: \"{{option}}\"."]},"placeholders":{"option":"$2"}},"^unable to find option with given key (.+?) : There is no system property for key (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Unable to get system option: \"{{option}}\"."]},"placeholders":{"option":"$2"}},"^Write failed with error code 16733 and error message 'trying to index text where term list is too big, max is 4mb _id: \"(.+?)\"'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["The uploaded image cannot be bigger than 4 MB. Please upload a smaller one."]}},"^Write failed with error code 17280 and error message 'WiredTigerIndex::insert: key too large to index, failing (.+?) { : \"(.+?)\" }'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["The chosen name is too long. Please try a shorter one."]}},"^You have reached devices limit. No more devices can be registered.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["You reached devices limit. No more devices can be registered."]}},"^(.+) succeeded for volume \"(.+)\"":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation \"{{operation}}\" succeeded for volume \"{{volume}}\"."]},"placeholders":{"operation":"$1","volume":"$2"}},"^Exception on tenant (.+) in statement '(.+)': Invocation exception when invoking method '(.+)' of class '(.+)' passing parameters \\[(.+)\\] for statement '(.+)': (.+) : (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Exception on tenant {{tenantId}} in statement \"{{moduleName}}\": Invocation exception when invoking method \"{{methodName}}\" of class \"{{classPath}}\" passing parameters [{{parameters}}] for statement \"{{statement}}\": {{exceptionType}} : {{exceptionMessage}}."]},"placeholders":{"tenantId":"$1","moduleName":"$2","methodName":"$3","classPath":"$4","parameters":"$5","statement":"$6","exceptionType":"$7","exceptionMessage":"$8"}},"^No nodes are available that match all of the predicates: (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No nodes are available that match all of the predicates: [{{predicates}}]."]},"placeholders":{"predicates":"$1"}},"^Readiness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Readiness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)."]},"placeholders":{"requestMethod":"$1","uri":"$2","protocol":"$3"}},"^Liveness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Liveness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)."]},"placeholders":{"requestMethod":"$1","uri":"$2","protocol":"$3"}},"^Error syncing pod$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod synchronization error."]}},"^Failed create pod sandbox.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod sandbox creation failed."]}},"^Exception on tenant (.+) in statement '(.+)': Http status code: (\\d+) \\{error=\"alarm/Unprocessable Entity\",message=\"(.+)\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"\\}$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Exception on tenant {{tenantId}} in statement \"{{statement}}\": HTTP status code: {{httpStatusCode}} : {{message | translate}}"]},"placeholders":{"tenantId":"$1","statement":"$2","httpStatusCode":"$3","message":"$4"}},"^User '(.+)' is managed by a remote identity management service defined by an administrator, direct update is forbidden$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{userName}}\" is managed by a remote identity management service defined by an administrator, direct update is forbidden."]},"placeholders":{"userName":"$1"}},"^Added new child device to \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Added new child device to \"{{parentDeviceName}}\" (ID: {{parentDeviceId}})."]},"placeholders":{"parentDeviceName":"$1","parentDeviceId":"$2"}},"^Updated child device of \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Updated child device of \"{{parentDeviceName}}\" (ID: {{parentDeviceId}})."]},"placeholders":{"parentDeviceName":"$1","parentDeviceId":"$2"}},"^Added child device \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Added child device \"{{name}}\" (ID: {{id}})."]},"placeholders":{"name":"$1","id":"$2"}},"^Removed child device \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Removed child device \"{{name}}\" (ID: {{id}})."]},"placeholders":{"name":"$1","id":"$2"}},"^Change value of \"(.+)\" to (.+) (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change value of \"{{name}}\" to {{value}}{{unit}}."]},"placeholders":{"name":"$1","value":"$2","unit":"$3"}},"^Change value of \"(.+)\" to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change value of \"{{name}}\" to {{value}}."]},"placeholders":{"name":"$1","value":"$2"}},"^Change status of \"(.+)\" to \"(.+)\".$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change status of \"{{name}}\" to \"{{label}}\"."]},"placeholders":{"name":"$1","label":"$2"}},"^Send message \"(.+)\".$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send message \"{{str}}\"."]},"placeholders":{"str":"$1"}},"^Close relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Close relay {{number}}."]},"placeholders":{"number":"$1"}},"^Open relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Open relay {{number}}."]},"placeholders":{"number":"$1"}},"^Change trace status to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change trace status to {{state | translate}}."]},"placeholders":{"state":"$1"}},"^Change relay status to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change relay status to {{status | translate}}."]},"placeholders":{"status":"$1"}},"^Closing relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Closing relay {{number}}."]},"placeholders":{"number":"$1"}},"^Opening relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Opening relay {{number}}."]},"placeholders":{"number":"$1"}},"^Update bulk operation$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update bulk operation"]}},"^Update bulk operation: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update bulk operation: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"generalStatus='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["general status: \"{{ generalStatus | translate }}\""]},"placeholders":{"generalStatus":"$1"}},"progress='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["progress: \"{{ progress }}\""]},"placeholders":{"progress":"$1"}},"note=(.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["note: \"{{ note }}\""]},"placeholders":{"note":"$1"}},"$quoted$":["status='(.+?)'","generalStatus='(.+?)'","progress='(.+?)'","note=(.+?)"]}}}},"^Update firmware to: \"?(.+?)\"? \\(version: (.+)\\)\\.?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update firmware to: \"{{ name }}\" (version: {{ version }})"]},"placeholders":{"name":"$1","version":"$2"}},"^Update firmware to: \"?(.+?)\"?\\.?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update firmware to: \"{{ name }}\""]},"placeholders":{"name":"$1"}},"^Update configuration to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update configuration to: {{ name }}."]},"placeholders":{"name":"$1"}},"^Apply device profile: (.+).?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Apply device profile: {{ name }}"]},"placeholders":{"name":"$1"}},"^Execute generic command: (.+).?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Execute generic command: {{command}}"]},"placeholders":{"command":"$1"}},"^Failed to refresh application. : Cannot refresh non local-hosted application.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not reactivate the application as it is not hosted locally."]}},"^Failed to refresh application. : Cannot refresh application without active version id.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not reactivate the application as it has no active version."]}},"^Scaled down replica set (.+) to (\\d+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Replica set \"{{replicaSetName}}\" scaled down to \"{{scaleNumber}}\"."]},"placeholders":{"replicaSetName":"$1","scaleNumber":"$2"}},"^Deleted pod: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod \"{{imageName}}\" deleted."]},"placeholders":{"imageName":"$1"}},"^Container image \"(.+)\" already present on machine$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Container image \"{{imageName}}\" already exists."]},"placeholders":{"imageName":"$1"}},"^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["This login mode was already set by another administrator. Refresh the page to update the data."]}},"$quoted$":["^Access is denied$","^Alarm created$","^Alarm updated$","^API is not available with the new domain$","^Application with given name already exist$","^Application with id (.+?) is already assigned to the tenant (.+?)$","^Apply software changes: (.+?)\\.?$","^Assign device profile (.+?) to device (.+?)$","^(.+)pplication for tenant (.+) with properties \\( (.+?) \\) already exists$","^Authentication failed! : User account is locked$","^Availability monitoring record$","^Can not activate a certificate which is either expired or not yet valid$","^Cannot add certificate - certificate with (.+?) fingerprint already exists. : Certificate with (.+?) fingerprint already exists.","^Cannot change password. : Provided token does not exist.$","^Cannot deploy module (.*)$","^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) \\[([\\S\\s]+?)\\]$","^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$","^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+), please check the where clause \\[([\\S\\s]+?)\\]$","^Cannot deploy module (.+?)! : Deployment failed in module '(.+?)' in expression '(.+?)' : Exception compiling script '(.+?)' of dialect '(.+?)': missing (.+?) before statement \\((.+?)\\) \\[([\\S\\s]+?)\\]$","^Cannot execute bulk operation on empty group. Group with id='(\\d+?)' doesn't have child assets.$","^Cannot execute bulk operation on empty group. DynamicGroup with id='(\\d+?)' doesn't have child assets$","^Cannot parse X509 certificate. : Could not parse certificate: (.+?)$","^Cannot reschedule bulk operation. All its operations are successful$","^Cannot reset user password : Cannot find user with such email.$","^Cannot update/delete application binary via this endpoint$","^Can't delete user because it is used by another managed object$","^Cep module created$","^Cep module updated$","^Cep module deleted$","^Cep module \"(.+?)\" created$","^Cep module \"(.+?)\" updated$","^Cep module \"(.+?)\" deleted$","^Command state is invalid: (.+)$","^Could not connect to endpoint (.+)\\. Could not verify `(.+)` host key with fingerprint `(.+)` for `(.+)` on port (.+)\\. If you expected that key, please remove the previous one from configuration to allow for connection\\.$","^Could not login to ssh server on endpoint \"(.+)\"\\. Provided credential for user \"(.+)\" is incorrect\\.$","^Could not save object remoteAccessUpdate: (.+)$","^Could not update user. : Error persisting user (.+?)!$","ˆCreate bulk operation$","^Create bulk operation: (.+)$","^Creation ramp must be greater than (\\d+?)$","^Created container$","^Created pod: (.+)$","^CSV file contained empty dataset$","^Cycle detected for route (.+?)!$","^Data broker processing is currently overloaded and may stop forwarding your data\\. Please contact support\\.$","^Data broker processing is not able to connect do destination tenant, thus data forwarding is not working\\. Please contact support\\.$","^Delete bulk operation$","^Delete bulk operation: (.+)$","^Device id '(.+?)' contains '(.+?)' character which is not permitted.$","^Device name: '(.+?)', alarm text: '(.+?)'$","^Display name$","^Domain name in uploaded certificate differs from the one in use$","^Domain name is already in use by another tenant!$","^Duplicated connector for instanceUrl (.+?)!$","^Duplicated connector for name (.+?)!$","^Entry is outside of the target dir: (.+)$","^Error during password validation. : Password must have at least (\\d+?) characters and no more than (\\d+?) and must contain only Latin1 characters.$","^Error during password validation. : Your password has been used already. Choose another.$","^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$","^External id not found; external id = ID \\[type=(.+?), value=(.+?)\\]$","^Error occurred when trying to find an Application for id ID (.+) : Could not find application by ID (\\d+)$","^Http status code: 404\n{error=\"options/Not Found\",message=\"Unable to find option by given key: sigfox-agent/provider.token\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"}","^Failed to delete application. : Cannot remove application assigned to other tenants.$","^Failed to extract certificate from PKCS12$","^Failed to update domain at the platform$","^Finding device data from database failed : No managedObject for id '(.+?)'!$","^Following mandatory fields should be included: (.+?)$","^Global Role updated$","^Global Role (.+?) updated$","^Global Role (.+?) updated: (.+)$","^Global Roles$","^Operation updated: (.+)$","^ID \\[type=(.+?), value=(.+?)\\] was already bound to different Global ID.$","^Invalid credentials! : Bad credentials$","^Invalid credentials! : No phone number provided$","^Inventory Role removed$","^Inventory Role (.+?) removed","^Inventory Role updated$","^Inventory Role (.+?) updated","^I/O error: Connection refused; nested exception is Connection refused : Connection refused","^I/O error: Read timed out; nested exception is Read timed out : Read timed out","^Log file requested$","^Managed object deleted$","^Managed object \"(.+?)\" deleted$","^Maximum file size exceeded$","^Message with ID (.+?) doesn't exist in smart rest template (.+?)$","^NewDeviceRequest for id = (.+?) already exists.$","^No communication with device since (.+?)$","^No data received from device within required interval.$","^No LoRa provider settings are found. Please configure the connectivity settings.$","^Not within any context!$","^Maximum age cannot be bigger than 10 years.$","^Microservice application name incorrect. Please use only lower-case letters, digits and dashes. Maximum length is (\\d+) characters.$","^Microservice not available.*$","^Operation created$","^Operation updated$","^Operation created: status='(.+?)'.","^Option created$","^Option \"(.+?)\" created$","^Option deleted$","^Option \"(.+?)\" deleted$","^Owner field error. : Cannot introduce cyclic dependency.","^Password change is temporary blocked.$","^Password cipher does not match","^Platform application cannot be added to, nor removed from any tenant.$","^Private key must be provided in KEY_PAIR credentials$","^Private key cipher does not match","^Protocol \"(.+?)\" does not support \"(.+?)\" credentials type$","^pulling image \"(.+)\"$","^Real-time event processing is currently overloaded and may stop processing your events\\. Please contact support\\.$","^Resource ID \\[type=com_cumulocity_model_idtype_GId, value=(.+?)\\] for this request not found.$","^Retrieve configuration snapshot from device (.+?)","^Retrieve (.+?) configuration snapshot from device (.+?)","^Scaled up replica set (.+) to (\\d+)$","^Send configuration snapshot (.+?) of configuration type (.+?) to device (.+?)","^Send configuration snapshot (.+?) to device (.+?)","^Simulator state is invalid: (.+)$","^Smart rest template (.+?) doesn't exist$","^Smart rule created$","^Smart rule updated$","^Smart rule enabled$","^Smart rule disabled$","^Smart rule deleted$","^Smart rule \"(.+?)\" created$","^Smart rule \"(.+?)\" updated$","^Smart rule \"(.+?)\" enabled$","^Smart rule \"(.+?)\" disabled$","^Smart rule \"(.+?)\" deleted$","^Started container$","^Successfully assigned (.+) to (.+)$","^Successfully pulled image \"(.+)\"$","^Tenant creation failed. : Tenant with given id already exists.$","^Tenant id cannot be a reserved sql keyword \"(.+?)\".$","^Tenant \"(.+?)\" activated$","^Tenant (.+?) has sub-tenants, please remove them first!$","^Tenant activated$","^Tenant \"(.+?)\" created$","^Tenant created$","^Tenant \"(.+?)\" deleted$","^Tenant deleted$","^Tenant \"(.+?)\" suspended$","^Tenant suspended$","^Tenant \"(.+?)\" updated: (.+?)$","^Tenant updated$","^Too Many Requests$","^User alias equals username '(.+)'$","^User created$","^User (.+?) created$","^User deleted$","^User (.+?) deleted$","^User updated$","^User (.+?) updated: (.+)$","^User with username '(.+?)' already exists! : Duplicated: (.+?)$","^User with username or alias '(.+)' already exists! : Duplicated: (.+)$","^User with email '(.+?)' already exists! : Duplicated: (.+?)$","^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$","^unable to find option with given key (.+?) : There is no system property for key (.+?)$","^Write failed with error code 16733 and error message 'trying to index text where term list is too big, max is 4mb _id: \"(.+?)\"'$","^Write failed with error code 17280 and error message 'WiredTigerIndex::insert: key too large to index, failing (.+?) { : \"(.+?)\" }'$","^You have reached devices limit. No more devices can be registered.$","^(.+) succeeded for volume \"(.+)\"","^Exception on tenant (.+) in statement '(.+)': Invocation exception when invoking method '(.+)' of class '(.+)' passing parameters \\[(.+)\\] for statement '(.+)': (.+) : (.+)$","^No nodes are available that match all of the predicates: (.+).$","^Readiness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$","^Liveness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$","^Error syncing pod$","^Failed create pod sandbox.$","^Exception on tenant (.+) in statement '(.+)': Http status code: (\\d+) \\{error=\"alarm/Unprocessable Entity\",message=\"(.+)\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"\\}$","^User '(.+)' is managed by a remote identity management service defined by an administrator, direct update is forbidden$","^Added new child device to \"(.+)\" \\(ID: (.+)\\).$","^Updated child device of \"(.+)\" \\(ID: (.+)\\).$","^Added child device \"(.+)\" \\(ID: (.+)\\).$","^Removed child device \"(.+)\" \\(ID: (.+)\\).$","^Change value of \"(.+)\" to (.+) (.+).$","^Change value of \"(.+)\" to (.+).$","^Change status of \"(.+)\" to \"(.+)\".$","^Send message \"(.+)\".$","^Close relay (.+).$","^Open relay (.+).$","^Change trace status to (.+).$","^Change relay status to (.+).$","^Closing relay (.+).$","^Opening relay (.+).$","^Update bulk operation$","^Update bulk operation: (.+)$","^Update firmware to: \"?(.+?)\"? \\(version: (.+)\\)\\.?$","^Update firmware to: \"?(.+?)\"?\\.?$","^Update configuration to (.+).$","^Apply device profile: (.+).?$","^Execute generic command: (.+).?$","^Failed to refresh application. : Cannot refresh non local-hosted application.$","^Failed to refresh application. : Cannot refresh application without active version id.$","^Scaled down replica set (.+) to (\\d+)$","^Deleted pod: (.+)$","^Container image \"(.+)\" already present on machine$","^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$"]},"TranslateCustomLoader":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":5},"arguments":[{"__symbolic":"reference","name":"LOCALE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":5},"arguments":[{"__symbolic":"reference","name":"LANGUAGES"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":14,"character":18},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"CachedLocaleDictionaryService"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"getTranslation":[{"__symbolic":"method"}],"getDictionaryWithTrimmedKeys":[{"__symbolic":"method"}]}},"trimTranslationKey":{"__symbolic":"function","parameters":["key"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"key"},"member":"replace"},"arguments":[{"__symbolic":"error","message":"Expression form not supported","line":56,"character":21,"module":"./core/i18n/translate.loader"},""]},"member":"replace"},"arguments":[{"__symbolic":"error","message":"Expression form not supported","line":56,"character":51,"module":"./core/i18n/translate.loader"}," "]},"member":"trim"}}},"HOOK_PATTERN_MESSAGES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":41},"arguments":["Pattern Messages"]},"C8yTranslateModule":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":12,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"C8yTranslatePipe"},{"__symbolic":"reference","name":"C8yTranslateDirective"}],"exports":[{"__symbolic":"reference","name":"C8yTranslatePipe"},{"__symbolic":"reference","name":"C8yTranslateDirective"}]}]}],"members":{}},"C8yTranslateDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateDirective","line":6,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[translate],[ngx-translate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":27,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":28,"character":13},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":10}]}],"checkNodes":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getLookupKey":[{"__symbolic":"method"}],"isElementSimpleTextType":[{"__symbolic":"method"}],"isElementInnerHtmlEmpty":[{"__symbolic":"method"}],"isLookupKeyMissing":[{"__symbolic":"method"}],"lookupKeyExist":[{"__symbolic":"method"}],"translateAndUpdateHtmlContent":[{"__symbolic":"method"}]}},"C8yTranslatePipe":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslatePipe","line":11,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"translate","pure":false}]}],"members":{}},"CachedLocaleDictionaryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ɵprov":{}}},"LoginService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":103,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":94,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":95,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"CookieAuth","line":96,"character":24},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":98,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":99,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":100,"character":22},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":102,"character":17},{"__symbolic":"reference","module":"@angular/common","name":"LocationStrategy","line":103,"character":34}]}],"getTenant":[{"__symbolic":"method"}],"initLoginOptions":[{"__symbolic":"method"}],"redirectToOauth":[{"__symbolic":"method"}],"autoLogout":[{"__symbolic":"method"}],"getGreenMinLength":[{"__symbolic":"method"}],"getEnforcePasswordStrength":[{"__symbolic":"method"}],"getPasswordStrengthValidity":[{"__symbolic":"method"}],"getPasswordStrengthEnforced":[{"__symbolic":"method"}],"cleanMessages":[{"__symbolic":"method"}],"addSuccessMessage":[{"__symbolic":"method"}],"getAuthStrategy":[{"__symbolic":"method"}],"useBasicAuth":[{"__symbolic":"method"}],"login":[{"__symbolic":"method"}],"authFulfilled":[{"__symbolic":"method"}],"switchLoginMode":[{"__symbolic":"method"}],"generateOauthToken":[{"__symbolic":"method"}],"isPasswordGrantLogin":[{"__symbolic":"method"}],"isSupportUser":[{"__symbolic":"method"}],"showTenant":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"saveTFAToken":[{"__symbolic":"method"}],"verifyAppAccess":[{"__symbolic":"method"}],"setCredentials":[{"__symbolic":"method"}],"isLocal":[{"__symbolic":"method"}],"saveToken":[{"__symbolic":"method"}],"storeBasicAuthToken":[{"__symbolic":"method"}],"cleanLocalStorage":[{"__symbolic":"method"}],"cleanSessionStorage":[{"__symbolic":"method"}],"isShowTenant":[{"__symbolic":"method"}],"redirect":[{"__symbolic":"method"}],"getBasicAuthLoginOption":[{"__symbolic":"method"}],"getSupportUserName":[{"__symbolic":"method"}],"getStoredCredentials":[{"__symbolic":"method"}],"getStoredToken":[{"__symbolic":"method"}],"getStoredTfaToken":[{"__symbolic":"method"}],"decodeToken":[{"__symbolic":"method"}]}},"LoginMessage":{"__symbolic":"interface"},"LoginViews":{"None":0,"Credentials":1,"RecoverPassword":2,"SmsChallenge":3,"ChangePassword":4,"TotpChallenge":5,"TotpSetup":6,"ProvidePhoneNumber":7},"LoginComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-login","styles":[],"template":"<div\n class=\"loading card fadeInUp animated shadow5\"\n *ngIf=\"currentView !== LOGIN_VIEWS.None\"\n [ngSwitch]=\"currentView\"\n>\n <div class=\"card-block p-b-0\">\n <img class=\"mainlogo\">\n <c8y-credentials\n *ngSwitchCase=\"LOGIN_VIEWS.Credentials\"\n (onChangeView)=\"handleLoginTemplate($event)\"\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 >\n </c8y-totp-auth>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpSetup\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n >\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\n <c8y-alert-outlet position=\"static\"></c8y-alert-outlet>\n </div>\n</div>\n"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}],"handleLoginTemplate":[{"__symbolic":"method"}],"onkeyup":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":52,"character":3},"arguments":["keyup",["$event"]]}]}],"reset":[{"__symbolic":"method"}],"loginAutomatically":[{"__symbolic":"method"}],"setView":[{"__symbolic":"method"}],"getResetPasswordToken":[{"__symbolic":"method"}]}},"PasswordStrengthValidatorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[passwordStrengthEnforced]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":6,"character":25},"useExisting":{"__symbolic":"reference","name":"PasswordStrengthValidatorDirective"},"multi":true}]}]}],"members":{"passwordStrengthEnforced":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"StrengthValidatorService"}]}],"validate":[{"__symbolic":"method"}]}},"StrengthValidatorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵh"}]}],"isStrong":[{"__symbolic":"method"}],"isPasswordGreen":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"RecoverPasswordComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-recover-password","styles":[],"template":"<form #resetForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"resetPassword()\" novalidate>\n <div class=\"legend form-block center\" translate>\n Forgot password?\n </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 translate\n >\n Reset password\n </button>\n <div class=\"text-center m-t-8\">\n <p>\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.Credentials })\"\n translate\n >\n Login\n </a>\n </p>\n </div>\n</form>\n"}]}],"members":{"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":22,"character":19},{"__symbolic":"reference","name":"LoginService"}]}],"ngOnInit":[{"__symbolic":"method"}],"resetPassword":[{"__symbolic":"method"}]}},"ChangePasswordComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-change-password","styles":[],"template":"<form\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"changePassword()\"\n #changePasswordForm=\"ngForm\"\n novalidate\n>\n\n <div\n class=\"legend form-block center\"\n translate\n >\n Change password\n </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 translate\n >\n Set password\n </button>\n</form>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":33,"character":19},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}]}},"TotpAuthComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"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></c8y-totp-challenge>\n\n<div class=\"text-center m-t-8\">\n <a\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n translate\n >\n Cancel\n </a>\n</div>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"view":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":25,"character":25},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}],"onTotpSuccess":[{"__symbolic":"method"}]}},"LoginModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LoginComponent"},{"__symbolic":"reference","name":"RecoverPasswordComponent"},{"__symbolic":"reference","name":"ChangePasswordComponent"},{"__symbolic":"reference","name":"CredentialsComponent"},{"__symbolic":"reference","name":"TotpAuthComponent"},{"__symbolic":"reference","name":"PasswordStrengthValidatorDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":29,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":30,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"LoginComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"LoginModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"LoginModule"},"member":"providers"}}}},"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"reference","name":"LoginService"}]}}},"CredentialsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-credentials","styles":[],"template":"<div id=\"oauth\" *ngIf=\"oauthOptions.initRequest && oauthOptions.visibleOnLoginPage\">\n <button\n title=\"{{ oauthOptions.buttonName | translate }}\"\n (click)=\"redirectToOauth()\"\n class=\"btn btn-block btn-lg form-group\"\n >\n <i [c8yIcon]=\"'sign-in'\" class=\"pull-left\"></i>\n {{ oauthOptions.buttonName | translate }}\n </button>\n</div>\n\n<form\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"login()\"\n #loginForm=\"ngForm\"\n *ngIf=\"showLoginForm\"\n novalidate\n>\n <div\n class=\"legend form-block center\"\n *ngIf=\"!(oauthOptions.initRequest && oauthOptions.visibleOnLoginPage); else orLegend\"\n translate\n >\n Login\n </div>\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=\"loginService.showTenant()\">\n <label for=\"tenant\" translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenant\"\n #tenant=\"ngModel\"\n type=\"text\"\n name=\"tenant\"\n id=\"tenant\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\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 [(ngModel)]=\"model.user\"\n #user=\"ngModel\"\n type=\"text\"\n name=\"user\"\n id=\"user\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\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 [(ngModel)]=\"model.password\"\n #password=\"ngModel\"\n type=\"password\"\n name=\"password\"\n id=\"password\"\n class=\"form-control\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <div class=\"form-group\" *ngIf=\"showBasicAuth\">\n <label title=\"{{ 'Remember me' | translate }}\" class=\"c8y-checkbox\">\n <input type=\"checkbox\" name=\"remember\" [(ngModel)]=\"loginService.rememberMe\" />\n <span></span>\n <span>{{ 'Remember me' | translate }}</span>\n </label>\n </div>\n <button\n title=\"{{ 'Log in' | translate }}\"\n [disabled]=\"!loginForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Log in' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <a\n title=\"{{ 'Forgot password?' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.RecoverPassword })\"\n >{{ 'Forgot password?' | translate }}</a\n >\n </div>\n <div class=\"text-center m-t-8\" *ngIf=\"!!(ui.state$ | async).loginExtraLink\">\n <a\n title=\"{{ (ui.state$ | async).loginExtraLink.label }}\"\n [href]=\"(ui.state$ | async).loginExtraLink.url\"\n class=\"btn btn-link btn-sm\"\n >\n {{ (ui.state$ | async).loginExtraLink.label }}</a\n >\n </div>\n</form>\n"}]}],"members":{"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"AppStateService"}]}],"ngOnInit":[{"__symbolic":"method"}],"redirectToOauth":[{"__symbolic":"method"}],"login":[{"__symbolic":"method"}],"handlePasswordReset":[{"__symbolic":"method"}],"handleTotpChallenge":[{"__symbolic":"method"}],"handleSmsChallenge":[{"__symbolic":"method"}],"handleNoPhoneNumberProvided":[{"__symbolic":"method"}]}},"ModalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"ModalModule","line":17,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":19,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"ConfirmModalComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"declarations":[{"__symbolic":"reference","name":"ConfirmModalComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"providers":[{"__symbolic":"reference","name":"ModalService"}],"entryComponents":[{"__symbolic":"reference","name":"ConfirmModalComponent"}]}]}],"members":{}},"ModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":59,"character":1},"arguments":[{"selector":"c8y-modal","template":"<div class=\"modal-header\">\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n <h3 [hidden]=\"!title\">\n {{ title | translate }}\n </h3>\n</div>\n<div class=\"modal-body\">\n <p [hidden]=\"!title\" class=\"text-center text-break-word\">\n {{ body }}\n </p>\n <ng-content></ng-content>\n</div>\n<div\n class=\"modal-footer\"\n *ngIf=\"!customFooter\">\n <ng-content select=\"[c8y-modal-footer]\"></ng-content>\n <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 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"}]}],"members":{"onDismiss":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":3}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"close":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"dismiss":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"body":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"customFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":81,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":81,"character":41}]}],"_dismiss":[{"__symbolic":"method"}],"_close":[{"__symbolic":"method"}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":97,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}]}},"ILabels":{"__symbolic":"interface"},"ConfirmModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-confirm-modal","template":"<div class=\"c8y-prompt alert\" [ngClass]=\"[classAlert]\">\n <h3 class=\"m-b-16\" *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\">{{ body | translate }}</p>\n <ng-content></ng-content>\n <div class=\"alert-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n class=\"btn btn-default\"\n *ngIf=\"labels.cancel !== null\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button title=\"{{ labels.ok | translate }}\" class=\"btn btn-primary\" (click)=\"close()\">\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n"}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"body":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":33,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ModalService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":14,"character":36}]}],"confirm":[{"__symbolic":"method"}],"acknowledge":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"PopoverConfirmButtons":{"__symbolic":"interface"},"PopoverConfirmComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"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 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"}]}],"members":{"popover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":[{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverDirective","line":32,"character":13},{"static":false}]}]}],"buttons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"containerClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"placement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"outsideClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"show":[{"__symbolic":"method"}],"buttonStatus":[{"__symbolic":"method"}],"handleOutsideClick":[{"__symbolic":"method"}]}},"NavigatorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"NavigatorOutletComponent"},{"__symbolic":"reference","name":"NavigatorNodeComponent"},{"__symbolic":"reference","name":"NavigatorItemComponent"},{"__symbolic":"reference","name":"NavigatorIconComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":23,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":24,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"}],"exports":[{"__symbolic":"reference","name":"NavigatorOutletComponent"},{"__symbolic":"reference","name":"NavigatorItemComponent"}],"entryComponents":[{"__symbolic":"reference","name":"NavigatorIconComponent"}]}]}],"members":{}},"NavigatorIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-navigator-icon","template":"<i class=\"icon\" [c8yIcon]=\"icon\"></i>"}]}],"members":{"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}]}},"NavigatorNodeFactory":{"__symbolic":"interface"},"HOOK_NAVIGATOR_NODES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":18,"character":40},"arguments":["NavigatorNodesFactory"]},"NavigatorService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":49,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":49,"character":58}]}],"openOnFirstUrl":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"NavigatorNodeData":{"__symbolic":"interface"},"NavigatorItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-navigator-item","template":"<ng-template #iconTpl><ng-content></ng-content></ng-template>"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":9,"character":3},"arguments":["iconTpl",{"static":true}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"NavigatorNodeRoot":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"NavigatorNode"},"members":{"addRoot":[{"__symbolic":"method"}],"createNode":[{"__symbolic":"method"}]}},"NavigatorOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-navigator-outlet, c8y-ui-navigator","template":"<nav class=\"navigator\" *ngIf=\"isShown$ | async\" [ngClass]=\"{ open: open }\">\n <ng-content select=\".navigator-slot-top\"></ng-content>\n <ul class=\"navigatorContent\">\n <c8y-navigator-node-display (nodeClick)=\"collapseNavigator($event)\" [node]=\"node\" *ngFor=\"let node of nodes trackBy trackByPathOrLabel\" [isRoot]=\"true\"></c8y-navigator-node-display>\n </ul>\n <ng-content select=\".navigator-slot-bottom\"></ng-content>\n</nav>\n"}]}],"members":{"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"}]}],"ngOnChanges":[{"__symbolic":"method"}],"collapseNavigator":[{"__symbolic":"method"}],"trackByPathOrLabel":[{"__symbolic":"method"}]}},"ClickEventSource":{"ICON":"icon","EXPANDER":"expander","LINK":"link"},"NavigatorNodeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"c8y-navigator-node-display","template":"<div\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 }\"\n>\n <ng-container>\n <a\n class=\"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.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]=\"{'root-link':isRoot, open: node.open, parent: node.hasChildren, 'dragged-hover': node.draggedHover && !node.dragged}\"\n >\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </a>\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-display\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n (nodeClick)=\"nodeClick.emit($event)\"\n >\n </c8y-navigator-node-display>\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 >\n </i>\n\n <!-- icon -->\n <div (click)=\"click('icon', $event)\">\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 >\n </i>\n\n <c8y-popover-confirm\n outsideClick=\"true\"\n containerClass=\"navigator-popover\"\n ></c8y-popover-confirm>\n</ng-template>\n"}]}],"members":{"iconSlot":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":36,"character":3},"arguments":["icon",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":36,"character":29},"static":false}]}]}],"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"isRoot":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"routerLinkActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":51,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/router","name":"RouterLinkActive","line":51,"character":13},{"static":false}]}]}],"childrenNodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":56,"character":3},"arguments":[{"__symbolic":"reference","name":"NavigatorNodeComponent"}]}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"confirm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":3},"arguments":[{"__symbolic":"reference","name":"PopoverConfirmComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":81,"character":38},{"__symbolic":"reference","name":"NavigatorService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"openOnFirstUrl":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"expandCollapse":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"handleExpandCollapse":[{"__symbolic":"method"}],"expandParentIfActive":[{"__symbolic":"method"}],"updateIcon":[{"__symbolic":"method"}],"updateIconComponent":[{"__symbolic":"method"}],"updateIconTemplate":[{"__symbolic":"method"}]}},"ClickOptions":{"__symbolic":"interface"},"NavigatorNode":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorNodeData"}]}],"openOnStart":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"find":[{"__symbolic":"method"}],"empty":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"dragStart":[{"__symbolic":"method"}],"dragEnd":[{"__symbolic":"method"}],"dragEnter":[{"__symbolic":"method"}],"dragLeave":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"traverse":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"updateChildren":[{"__symbolic":"method"}],"sort":[{"__symbolic":"method"}],"updateHidden":[{"__symbolic":"method"}]}},"TotpSetupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-totp-setup","template":"<div class=\"text-center\">\n <p\n class=\"lead m-b-16\"\n translate\n >\n Scan this QR code with your smartphone using the Google Authenticator app.\n </p>\n\n\n <qrcode\n *ngIf=\"totpSecret\"\n [width]=\"300\"\n [qrdata]=\"qrData\"\n [cssClass]=\"'m-b-16'\"\n [errorCorrectionLevel]=\"'M'\"\n ></qrcode>\n <p class=\"text-center text-muted\">\n {{secret}}\n </p>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":32,"character":28},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"TotpChallengeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-totp-challenge","viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":11,"character":30},"useExisting":{"__symbolic":"reference","module":"@angular/forms","name":"NgForm","line":11,"character":61}}],"template":"<form #totpForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <c8y-form-group [hasError]=\"hasError\" [novalidation]=\"true\" [ngClass]=\"hasError ? 'p-b-24' : ''\">\n <label translate for=\"totpToken\">\n Verification code\n </label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\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, please 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 <button *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button *ngIf=\"loading\"\n title=\"{{ 'Verifying…' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block btn-pending\"\n >\n {{ 'Verifying…' | translate }}\n </button>\n</form>\n"}]}],"members":{"verify":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"onSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"hasError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":34,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"verifyCode":[{"__symbolic":"method"}]}},"AuthenticationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TotpChallengeComponent"},{"__symbolic":"reference","name":"PasswordConfirm"},{"__symbolic":"reference","name":"PasswordStrengthComponent"},{"__symbolic":"reference","name":"PasswordCheckListComponent"},{"__symbolic":"reference","name":"NewPasswordComponent"},{"__symbolic":"reference","name":"PasswordConfirmModalComponent"},{"__symbolic":"reference","name":"SmsChallengeComponent"},{"__symbolic":"reference","name":"TotpSetupComponent"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":38,"character":25},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","module":"angularx-qrcode","name":"QRCodeModule","line":38,"character":67}],"exports":[{"__symbolic":"reference","name":"TotpChallengeComponent"},{"__symbolic":"reference","name":"PasswordStrengthComponent"},{"__symbolic":"reference","name":"PasswordCheckListComponent"},{"__symbolic":"reference","name":"PasswordConfirm"},{"__symbolic":"reference","name":"NewPasswordComponent"},{"__symbolic":"reference","name":"PasswordConfirmModalComponent"},{"__symbolic":"reference","name":"SmsChallengeComponent"},{"__symbolic":"reference","name":"TotpSetupComponent"},{"__symbolic":"reference","name":"ɵg"}],"entryComponents":[{"__symbolic":"reference","name":"PasswordConfirmModalComponent"}],"providers":[{"__symbolic":"reference","name":"PasswordStrengthCheckerService"},{"__symbolic":"reference","name":"PasswordService"}]}]}],"members":{}},"PasswordStrengthCheckerService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"hasLowerCase":[{"__symbolic":"method"}],"hasUpperCase":[{"__symbolic":"method"}],"hasNumbers":[{"__symbolic":"method"}],"hasSpecialChars":[{"__symbolic":"method"}],"getStrengthColor":[{"__symbolic":"method"}]}},"PasswordStrengthComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-password-strength","template":"<div class=\"password-strength password-{{ model.colorName }}\">\r\n <label class=\"password-strength-label small\" translate>\r\n Password strength\r\n </label>\r\n <div>\r\n <div class=\"password-bar\"></div>\r\n </div>\r\n <span class=\"small\">\r\n {{ model.description | translate }}\r\n </span>\r\n</div>\r\n"}]}],"members":{"password":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["password"]}]}],"strength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PasswordService"}]}]}},"SmsChallengeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-sms-challenge","styles":[],"template":"<form #twoFactorForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>\n Two-factor authentication\n </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 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 type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n translate\n >\n Verify\n </button>\n\n <div class=\"d-flex m-t-8\">\n <a\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"small pointer m-r-auto\"\n (click)=\"resendTFASms()\"\n translate\n >\n Send new code\n </a>\n <a\n title=\"{{ 'Log in' | translate }}\"\n class=\"small pointer m-l-auto\"\n (click)=\"onCancel.emit()\"\n translate\n >\n Log in\n </a>\n </div>\n</form>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":26,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"verifyTFACode":[{"__symbolic":"method"}],"resendTFASms":[{"__symbolic":"method"}],"useOAuthInternal":[{"__symbolic":"method"}],"verifyCodeWithOauth":[{"__symbolic":"method"}],"verifyCodeWithBasicAuth":[{"__symbolic":"method"}],"loginWithTFA":[{"__symbolic":"method"}]}},"NewPasswordComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-new-password","viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":8,"character":29},"useExisting":{"__symbolic":"reference","module":"@angular/forms","name":"NgForm","line":8,"character":60}}],"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"}]}],"members":{"password":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"}]}],"ngOnInit":[{"__symbolic":"method"}],"newPasswordChanged":[{"__symbolic":"method"}],"loadPasswordStrengthSettings":[{"__symbolic":"method"}],"showPasswordStrength":[{"__symbolic":"method"}],"toggleChangePassword":[{"__symbolic":"method"}]}},"PasswordStrengthColor":{"__symbolic":"interface"},"NewPassword":{"__symbolic":"interface"},"PasswordCheckListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-password-check-list","styles":[],"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"}]}],"members":{"password":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3},"arguments":["password"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"PasswordService"}]}],"ngOnInit":[{"__symbolic":"method"}],"onPasswordChange":[{"__symbolic":"method"}]}},"PasswordConfirmModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"c8y-password-confirm-modal","template":"<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\r\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\r\n <c8y-form-group [hasWarning]=\"true\">\r\n <label translate for=\"currentPassword\">Enter your password</label>\r\n <input\r\n id=\"currentPassword\"\r\n [(ngModel)]=\"password\"\r\n type=\"password\"\r\n name=\"password\"\r\n class=\"form-control\"\r\n placeholder=\"{{ 'Enter your password' | translate }}\"\r\n required\r\n />\r\n <c8y-messages>\r\n <c8y-message translate>\r\n Enter the password of the user that you are currently logged in with.\r\n </c8y-message>\r\n </c8y-messages>\r\n </c8y-form-group>\r\n\r\n <div class=\"modal-footer\">\r\n <button\r\n title=\"{{ 'Cancel' | translate }}\"\r\n class=\"btn btn-default\"\r\n type=\"button\"\r\n (click)=\"cancel()\"\r\n translate\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n title=\"{{ 'Save' | translate }}\"\r\n class=\"btn btn-primary\"\r\n type=\"submit\"\r\n [disabled]=\"!confirmForm.form.valid || loading\"\r\n translate\r\n >\r\n Save\r\n </button>\r\n </div>\r\n </form>\r\n</c8y-modal>\r\n"}]}],"members":{"passwordConfirmedEmitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"modal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":18,"character":3},"arguments":["modal",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":21,"character":17},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":23,"character":20},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"LoginService"}]}],"passwordConfirm":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"createNewClient":[{"__symbolic":"method"}],"emitSuccessAndClose":[{"__symbolic":"method"}]}},"PasswordConfirm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[passwordConfirm]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":7,"character":15},"useExisting":{"__symbolic":"reference","name":"PasswordConfirm"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":16,"character":15},"arguments":["passwordConfirm"]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"validate":[{"__symbolic":"method"}]}},"PasswordService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":32,"character":36}]}],"confirmPassword":[{"__symbolic":"method"}],"hasLowerCase":[{"__symbolic":"method"}],"hasUpperCase":[{"__symbolic":"method"}],"hasNumbers":[{"__symbolic":"method"}],"hasSpecialChars":[{"__symbolic":"method"}],"getStrengthColor":[{"__symbolic":"method"}],"getDefaultPasswordMinLength":[{"__symbolic":"method"}]}},"HOOK_SEARCH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":11,"character":31},"arguments":["SearchFactory"]},"SearchService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":16,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":25,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":26,"character":12}]}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"HighlightComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-highlight","template":"<span [innerHTML]=\"highlightedText\"></span>"}]}],"members":{"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":13,"character":3},"arguments":["text",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":29},"static":true}]}]}],"pattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"elementClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"SearchComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-search","template":"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":["template",{"static":false}]}]}],"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"term":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SearchService"}]}],"onSearch":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"Search":{"__symbolic":"interface"},"SearchFactory":{"__symbolic":"interface"},"SearchModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SearchOutletComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"HighlightComponent"},{"__symbolic":"reference","name":"SearchResultEmptyComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":25,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":26,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":28,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"SearchOutletComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"HighlightComponent"},{"__symbolic":"reference","name":"SearchResultEmptyComponent"}]}]}],"members":{}},"SearchResultEmptyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-search-result-empty","template":"<div class=\"no-results\">\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div class=\"p-t-8\">\n <p><strong>{{ message | translate }}</strong></p>\n <small translate>Refine your search terms.</small>\n </div>\n </div>\n</div>\n"}]}],"members":{"_message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["message"]}]}]}},"SearchOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-search-outlet","template":"<ng-container *ngFor=\"let item of getByPriority()\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n</ng-container>\n"}]}],"members":{"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AlertService"}]}],"getByPriority":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ConditionalTabsOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":83,"character":1},"arguments":[{"selector":"c8y-conditional-tabs-outlet","template":"\n <router-outlet></router-outlet>\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":92,"character":64}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"TabsOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-tabs-outlet,c8y-ui-tabs","template":"<div #container class=\"tabContainer hidden-xs\">\n <button class=\"tabs-slider tabs-slider-left\" #left *ngIf=\"showLeft\" (click)=\"scroll('left')\">\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button class=\"tabs-slider tabs-slider-right\" #right *ngIf=\"showRight\" (click)=\"scroll('right')\">\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <ul class=\"nav nav-tabs nav-tabsc8y\" #tabsContainer>\n <li [ngClass]=\"{'active': rla.isActive}\" *ngFor=\"let tab of tabs\">\n <a [routerLink]=\"tab.path\" routerLinkActive #rla=\"routerLinkActive\" title=\"{{tab?.label | translate}}\">\n <i [c8yIcon]=\"tab?.icon\" *ngIf=\"!tab.template && tab?.icon\"></i>\n <span class=\"txt\" *ngIf=\"!tab.template\">{{tab?.label | translate}}</span>\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </a>\n </li>\n </ul>\n</div>\n\n<div class=\"visible-xs mobile-tabs\">\n <div class=\"c8y-select-wrapper\">\n <select (change)=\"navigateTo($event.target.value)\" #select>\n <option *ngFor=\"let tab of tabs\" [value]=\"tab.path\" [selected]=\"isActive(tab)\">\n {{tab?.label | translate}}\n </option>\n </select>\n </div>\n</div>\n"}]}],"members":{"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"isNavigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":27,"character":3},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":30,"character":3},"arguments":["class.page-tabs"]}]}],"isHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":37,"character":3},"arguments":["class.page-tabs-horizontal"]}]}],"isVertical":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":40,"character":3},"arguments":["class.page-tabs-vertical"]}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":["container",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":43,"character":33},"static":true}]}]}],"leftBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":44,"character":3},"arguments":["left",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":44,"character":28},"static":false}]}]}],"rightBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["right",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":45,"character":29},"static":false}]}]}],"tabsContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":46,"character":3},"arguments":["tabsContainer",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":46,"character":37},"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":50,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":51,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":52,"character":16},{"__symbolic":"reference","name":"HeaderService"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}],"scroll":[{"__symbolic":"method"}],"scrollSubscribe":[{"__symbolic":"method"}],"updateScroll":[{"__symbolic":"method"}],"getDimensions":[{"__symbolic":"method"}]}},"Tab":{"__symbolic":"interface"},"TabFactory":{"__symbolic":"interface"},"TabComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"c8y-tab","template":"<ng-template #tpl><ng-content></ng-content></ng-template>"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":["tpl",{"static":false}]}]}],"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabsService"}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"HOOK_TABS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":29},"arguments":["TabsFactory"]},"TabsService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":22,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":23,"character":12},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":24,"character":30},{"__symbolic":"reference","name":"OptionsService"}]}],"prepareTabs":[{"__symbolic":"method"}],"sortTabs":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TabsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ConditionalTabsOutletComponent"},{"__symbolic":"reference","name":"TabsOutletComponent"},{"__symbolic":"reference","name":"TabComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":16,"character":4},"member":"forChild"},"arguments":[[]]},{"__symbolic":"reference","name":"HeaderModule"}],"exports":[{"__symbolic":"reference","name":"ConditionalTabsOutletComponent"},{"__symbolic":"reference","name":"TabsOutletComponent"},{"__symbolic":"reference","name":"TabComponent"}]}]}],"members":{}},"DropAreaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":29,"character":1},"arguments":[{"selector":"c8y-drop-area","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":32,"character":25},"useExisting":{"__symbolic":"reference","name":"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>\n <div class=\"file-placeholder\" [ngClass]=\"{ 'drag-over': isOver }\">\n <div *ngIf=\"loading\" class=\"d-flex p-4 flex-center\">\n <p class=\"flex-item-middle m-r-8\">\n {{ loadingMessage | translate }}\n </p>\n <div class=\"progress progress-striped active m-0\" *ngIf=\"progress !== -1\"\n style=\"min-width: 50%;\">\n <div\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\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>or click to browse your computer.</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 class=\"drop-zone\" *ngIf=\"shouldShowFilesList()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\">\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 class=\"progress progress-striped active m-0\" *ngIf=\"progress !== -1\"\n style=\"min-width: 80%;\">\n <div\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=\"flex-row 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 class=\"btn btn-clean showOnHover flex-item-right\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\" (click)=\"onDelete()\"></i>\n </button>\n </div>\n </div>\n</div>\n\n<input\n #picker\n *ngIf=\"clickToOpen\"\n (change)=\"onPick($event)\"\n (click)=\"picker.focus()\"\n (blur)=\"onTouched()\"\n [accept]=\"accept\"\n [multiple]=\"maxAllowedFiles > 1\"\n type=\"file\"\n style=\"opacity: 0; filter: alpha(opacity = 0); height: 0px\"\n/>\n<div #area [hidden]=\"isOver || loading\" (dragover)=\"toggle($event)\">\n <ng-content></ng-content>\n</div>\n"}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"loadingMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"alwaysShow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"clickToOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"progress":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"files":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"area":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":54,"character":3},"arguments":["area",{"static":true}]}]}],"zone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":55,"character":3},"arguments":["zone",{"static":false}]}]}],"picker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":56,"character":3},"arguments":["picker",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":58,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"showPicker":[{"__symbolic":"method"}],"onOver":[{"__symbolic":"method"}],"onPick":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"shouldShowFilesList":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"onDelete":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"onFilesSelected":[{"__symbolic":"method"}],"getFilesNamesAsString":[{"__symbolic":"method"}],"isFilesArrayEmpty":[{"__symbolic":"method"}],"isTooManyFiles":[{"__symbolic":"method"}],"hasEmptyFiles":[{"__symbolic":"method"}],"isAnyFileEmpty":[{"__symbolic":"method"}],"clearErrors":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"compose":[{"__symbolic":"method"}],"read":[{"__symbolic":"method"}],"onLoad":[{"__symbolic":"method"}]}},"DroppedFile":{"__symbolic":"interface"},"DropAreaModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"DropAreaComponent"}],"declarations":[{"__symbolic":"reference","name":"DropAreaComponent"}]}]}],"members":{}},"FilePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":4},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":18,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":20,"character":4}],"exports":[{"__symbolic":"reference","name":"FilePickerComponent"}],"declarations":[{"__symbolic":"reference","name":"FilePickerComponent"}]}]}],"members":{}},"FilePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"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 btn-clean text-primary m-l-4\"\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 [maxAllowedFiles]=\"maxAllowedFiles\"\n [files]=\"droppedFiles\"\n >\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 required\n />\n </div>\n </div>\n </c8y-form-group>\n</div>\n"}]}],"members":{"dropArea":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":23,"character":3},"arguments":[{"__symbolic":"reference","name":"DropAreaComponent"},{"static":true}]}]}],"onFilesPicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"uploadChoice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"fileUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"fileBinary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"fileUrlPopover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"onFileDropped":[{"__symbolic":"method"}],"clearInputFromUrl":[{"__symbolic":"method"}],"clearSelectedFiles":[{"__symbolic":"method"}],"onFileUrlChange":[{"__symbolic":"method"}],"isPopoverUsed":[{"__symbolic":"method"}]}},"PickedFiles":{"__symbolic":"interface"},"DatePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":19,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":20,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsDatepickerModule","line":21,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"DatePickerComponent"}],"declarations":[{"__symbolic":"reference","name":"DatePickerComponent"}]}]}],"members":{}},"DatePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-date-picker","template":"<div\n dropdown\n class=\"c8y-child-assets-selector\"\n #datefilter=\"bs-dropdown\"\n placement=\"bottom left\"\n [autoClose]=\"false\"\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-controls=\"dropdown-date-range\"\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 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 formControlName=\"dateFrom\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date from' | translate }}\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <span 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 formControlName=\"dateTo\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date to' | translate }}\"\n bsDatepicker\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"}]}],"members":{"onDateSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":9,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"clearFilter":[{"__symbolic":"method"}]}},"PickedDates":{"__symbolic":"interface"},"UserEditModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"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 [showProductUsageSetting]=\"showProductUsageSetting\"\n (onLanguage)=\"onLanguage($event)\"\n (onProductExperience)=\"onProductExperience($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n >\n </c8y-user-edit>\n</c8y-modal>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":28,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":29,"character":17},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":31,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":32,"character":20},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"UserPreferencesService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":36,"character":26},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"GainsightService"},{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"onLanguage":[{"__symbolic":"method"}],"onProductExperience":[{"__symbolic":"method"}],"updateAndClose":[{"__symbolic":"method"}],"persistLanguage":[{"__symbolic":"method"}],"gainsightTrackingAppReload":[{"__symbolic":"method"}],"updateUserInAppState":[{"__symbolic":"method"}],"updateCredentials":[{"__symbolic":"method"}]}},"UserMenuService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"User":{"__symbolic":"interface"},"UserEditComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"c8y-user-edit","template":"<form #userForm=\"ngForm\" (ngSubmit)=\"userForm.form.valid && save()\">\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 authorization\n server.\n </div>\n <c8y-form-group>\n <label translate for=\"userName\">Username (e.g. 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\" style=\"margin-left:-15px; margin-right:-15px\">\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 c8yDefaultValidation=\"phoneNumber\"\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-8 p-b-8 separator-top\" *ngIf=\"showProductUsageSetting\">\n <strong translate>Product experience</strong>\n <label class=\"c8y-switch\" for=\"productUsageTracking\">\n <input\n id=\"productUsageTracking\"\n name=\"productUsageTracking\"\n type=\"checkbox\"\n [(ngModel)]=\"isUsageTrackingEnabled\"\n />\n <span></span>\n {{ 'Enable anonymous tracking to enhance the product experience' | translate }}\n </label>\n </c8y-form-group>\n\n <div class=\"form-group\" *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\n <div class=\"modal-footer\">\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"}]}],"members":{"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"showProductUsageSetting":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"isUsageTrackingEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"onUser":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":3}}]}],"onLanguage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"onProductExperience":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":59,"character":28},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":61,"character":25},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":62,"character":39},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":63,"character":27},{"__symbolic":"reference","name":"UserPreferencesService"}]}],"ngOnInit":[{"__symbolic":"method"}],"setupTotp":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"onNewPasswordChanged":[{"__symbolic":"method"}],"initializeTotpSettings":[{"__symbolic":"method"}],"canUserSetupTotp":[{"__symbolic":"method"}],"saveAfterPasswordConfirmation":[{"__symbolic":"method"}]}},"UserTotpRevokeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"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=\"right\"\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=\"{{ 'Revoke' | translate }}\"\n type=\"button\"\n class=\"btn btn-danger\"\n (click)=\"revoke(); popover.hide()\"\n translate\n >\n Revoke\n </button>\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</ng-template>\n"}]}],"members":{"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"revokeEmitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3},"arguments":["revoke"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":13,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"revoke":[{"__symbolic":"method"}]}},"UserModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"UserMenuOutletComponent"},{"__symbolic":"reference","name":"UserEditComponent"},{"__symbolic":"reference","name":"UserEditModalComponent"},{"__symbolic":"reference","name":"UserMenuItemComponent"},{"__symbolic":"reference","name":"UserTotpSetupComponent"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}],"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":38,"character":4},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":41,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":42,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":43,"character":4}],"exports":[{"__symbolic":"reference","name":"UserMenuOutletComponent"},{"__symbolic":"reference","name":"UserMenuItemComponent"},{"__symbolic":"reference","name":"UserEditComponent"},{"__symbolic":"reference","name":"UserEditModalComponent"},{"__symbolic":"reference","name":"UserTotpSetupComponent"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}],"entryComponents":[{"__symbolic":"reference","name":"UserEditModalComponent"},{"__symbolic":"reference","name":"UserTotpSetupComponent"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}]}]}],"members":{}},"UserMenuItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-user-menu-item","template":"<ng-template #template>\n <li (click)=\"onClick()\">\n <a class=\"interact\" [attr.href]=\"link\" [attr.target]=\"target\">\n <i [c8yIcon]=\"icon\"></i>\n {{ label | translate }}\n <ng-content></ng-content>\n </a>\n </li>\n</ng-template>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"link":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"target":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":19,"character":3},"arguments":["template",{"static":false}]}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UserMenuService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onClick":[{"__symbolic":"method"}]}},"UserMenuItem":{"__symbolic":"interface"},"UserTotpSetupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-user-totp-setup","template":"<c8y-modal [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"close()\"\n type=\"button\"\n class=\"close\"\n ><span aria-hidden=\"true\">×</span></button>\n <h3 class=\"text-center\" translate>Set up two-factor authentication</h3>\n </ng-container>\n <c8y-totp-setup></c8y-totp-setup>\n <c8y-totp-challenge (onSuccess)=\"totpSetupVerified($event)\"></c8y-totp-challenge>\n</c8y-modal>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":14,"character":18},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":16,"character":19},{"__symbolic":"reference","name":"LoginService"}]}],"totpSetupVerified":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"UserMenuOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"c8y-user-menu-outlet","template":"<div\n dropdown\n class=\"dropdown\"\n>\n <button\n class=\"main-header-button c8y-dropdown dropdown-toggle text-nowrap\"\n dropdownToggle\n >\n <span\n class=\"d-inline-block hidden-xs text-truncate m-r-8\"\n style=\"vertical-align: text-bottom; max-width: 104px;\"\n title=\"{{ui.currentUser | async | shortenUserName}}\"\n >\n {{ui.currentUser | async | shortenUserName}}\n </span>\n <i\n [c8yIcon]=\"'c8y-user'\"\n class=\"icon-2x\"\n ></i>\n </button>\n <ul\n *dropdownMenu\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"max-width: 240px;\"\n >\n <ng-container *ngFor=\"let item of getSortedItems()\">\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 (click)=\"item.click()\">\n <a class=\"interact\" [attr.href]=\"item.link\" [attr.target]=\"item.target\">\n <i [c8yIcon]=\"item.icon\"></i>\n {{item.label | translate}}\n </a>\n </li>\n </ng-container>\n </ng-container>\n <li\n *ngIf=\"!(ui.state$ | async).hidePowered\"\n role=\"separator\"\n class=\"divider\"\n ></li>\n <li\n class=\"dropdown-header bg-gray-white text-pre-normal\"\n style=\"margin-top: -1px;\"\n *ngIf=\"!(ui.state$ | async).hidePowered\"\n >\n <div class=\"flex-row\">\n <i\n [c8yIcon]=\"'info-circle'\"\n class=\"text-info flex-item-v-start text-14\"\n style=\"margin: 1px 6px 0 -3px;\"\n ></i>\n <span class=\"text-muted text-truncate\">\n {{'Tenant ID' | translate}}: <strong>\n <span class=\"text-primary interact\" (click)=\"$event.stopPropagation(); copyIt(ui.currentTenant.value.name)\">\n {{ui.currentTenant.value.name}} \n <i [c8yIcon]=\"'clipboard'\"></i>\n </span>\n </strong><br>\n {{'Backend' | translate}}: <strong>{{(ui.state$ | async).versions.backend}}</strong><br>\n {{'UI' | translate }}: <strong>{{ui.uiVersion}}</strong>\n </span>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- the default items -->\n<c8y-user-menu-item\n [icon]=\"'user-menu-male'\"\n [label]=\"'User settings' | translate\"\n [priority]=\"20\"\n (click)=\"editUser()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n [icon]=\"'sign-out'\"\n [label]=\"'Logout' | translate\"\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 (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 (click)=\"deactivateSupportAccess()\"\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></c8y-user-menu-item>\n"}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":29,"character":28},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":32,"character":30},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":33,"character":27},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":35,"character":18},{"__symbolic":"reference","name":"OptionsService"}]}],"copyIt":[{"__symbolic":"method"}],"editUser":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"activateSupportAccess":[{"__symbolic":"method"}],"deactivateSupportAccess":[{"__symbolic":"method"}],"getSortedItems":[{"__symbolic":"method"}],"refreshCurrentUser":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ViewContext":{"Device":"device/:id","Group":"group/:id","User":"users/:id","Application":"applications/:id","SubscribedApplications":"subscribedApplications/:id","Tenant":"tenants/:id","Report":"reports/:id"},"Route":{"__symbolic":"interface"},"RouteFactory":{"__symbolic":"interface"},"ContextRouteService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"RouterTabsResolver"},{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":29,"character":20},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":30,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":31,"character":22}]}],"init":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"refreshContext":[{"__symbolic":"method"}],"updatedContext":[{"__symbolic":"method"}],"updateTabs":[{"__symbolic":"method"}],"redirectToFirstTab":[{"__symbolic":"method"}],"needsRedirect":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"routes":[{"path":"users/new","component":{"__symbolic":"reference","name":"EmptyComponent"}},{"path":"tenants/new","component":{"__symbolic":"reference","name":"EmptyComponent"}}],"RouterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":33,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ContextRouteComponent"},{"__symbolic":"reference","name":"EmptyComponent"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":36,"character":4},"member":"forRoot"},"arguments":[{"__symbolic":"reference","name":"routes"}]},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"CommonModule"}],"entryComponents":[{"__symbolic":"reference","name":"ContextRouteComponent"},{"__symbolic":"reference","name":"EmptyComponent"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"RouterService"}]}]},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"reference","name":"ContextRouteGuard"},{"__symbolic":"reference","name":"RouterTabsResolver"},{"__symbolic":"reference","name":"RouterService"}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"RouterModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"RouterModule"},"member":"providers"}}}}}},"ContextRouteGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":10,"character":32}]}],"canActivate":[{"__symbolic":"method"}],"service":[{"__symbolic":"method"}],"detailCached":[{"__symbolic":"method"}],"clearDetailCached":[{"__symbolic":"method"}],"getCache":[{"__symbolic":"method"}]}},"RouterTabsResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":9,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":9,"character":58}]}],"resolve":[{"__symbolic":"method"}],"getGuards":[{"__symbolic":"method"}]}},"HOOK_ONCE_ROUTE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":35},"arguments":["RouteFactory"]},"RouterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":15,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":17},"arguments":[{"__symbolic":"reference","name":"HOOK_ONCE_ROUTE"}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"RouteFactory"}]},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":21,"character":20},{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","name":"ContextRouteService"}]}],"refresh":[{"__symbolic":"method"}],"addRoute":[{"__symbolic":"method"}],"addRoutes":[{"__symbolic":"method"}],"convertRoute":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"EmptyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"empty","template":""}]}],"members":{}},"ContextRouteComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-context-route","template":"<router-outlet></router-outlet>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":9,"character":29},{"__symbolic":"reference","name":"ContextRouteService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refreshTabs":[{"__symbolic":"method"}]}},"ViewContextServices":{"__symbolic":"class","members":{},"statics":{"services":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Map"},"arguments":[[[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Device"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":10,"character":25}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Group"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":11,"character":24}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"User"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":12,"character":23}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Application"},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":13,"character":30}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"SubscribedApplications"},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":14,"character":41}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Tenant"},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":15,"character":25}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Report"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":16,"character":25}]]]},"contextToService":{"__symbolic":"function","parameters":["context"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContextServices"},"member":"services"},"member":"get"},"arguments":[{"__symbolic":"reference","name":"context"}]}}}},"InputGroupListContainerDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[c8yInputGroupListContainer]"}]}],"members":{"listProjections":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":16,"character":3},"arguments":[{"__symbolic":"reference","name":"InputGroupListComponent"}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}]}},"TextAreaRowHeightDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"textarea[heightPerRow]"}]}],"members":{"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":7,"character":3},"arguments":["rows"]}]}],"heightPerRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["heightPerRow"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":15,"character":58}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"setHeight":[{"__symbolic":"method"}]}},"RequiredInputPlaceholderDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"input[required]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":13,"character":22},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":14,"character":32}]}],"ngAfterViewChecked":[{"__symbolic":"method"}],"getTextForPlaceholder":[{"__symbolic":"method"}],"updatePlaceholder":[{"__symbolic":"method"}]}},"FormGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"c8y-form-group","host":{"class":"form-group"},"template":"<ng-content></ng-content>\n<c8y-messages *ngIf=\"!customErrorMessage\" [show]=\"errors\"></c8y-messages>\n"}]}],"members":{"hasError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"hasWarning":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"hasSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"novalidation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":51,"character":3},"arguments":["class.has-error"]}]}],"warning":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":54,"character":3},"arguments":["class.has-warning"]}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":57,"character":3},"arguments":["class.has-success"]}]}],"customErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":60,"character":3},"arguments":[{"__symbolic":"reference","name":"MessagesComponent"},{"static":false}]}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":61,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgModel","line":61,"character":16},{"static":true}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"initNgModel":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"FilterInputComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-filter","template":"<div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter…' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keyup)=\"filterChange$.next($event)\"\n />\n <span class=\"input-group-btn\">\n <button class=\"btn btn-clean\" (click)=\"reset()\">\n <i [c8yIcon]=\"filterTerm.length === 0 ? icon : 'close'\"></i>\n </button>\n </span>\n</div>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"onSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"DefaultValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[c8yDefaultValidation]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":6,"character":24},"useExisting":{"__symbolic":"reference","name":"DefaultValidationDirective"},"multi":true}]}]}],"members":{"c8yDefaultValidation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"validate":[{"__symbolic":"method"}]}},"MessageDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"c8y-message"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}]}},"MinValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[min]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":7,"character":24},"useExisting":{"__symbolic":"reference","name":"MinValidationDirective"},"multi":true}]}]}],"members":{"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"validate":[{"__symbolic":"method"}]}},"JsonValidationPrettifierDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"textarea[prettyValidJson]"}]}],"members":{"invalidJSON":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":17,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"validateInputAndPrettify":[{"__symbolic":"method"}],"setErrorAndValidationMessage":[{"__symbolic":"method"}],"clearValidationMessage":[{"__symbolic":"method"}]}},"IpRangeInputListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"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"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"PhoneValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[c8yPhoneValidation]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":6,"character":24},"useExisting":{"__symbolic":"reference","name":"PhoneValidationDirective"},"multi":true}]}]}],"members":{"validate":[{"__symbolic":"method"}],"validateInternationalPhoneNumber":[{"__symbolic":"method"}]}},"MessagesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"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"}]}],"members":{"show":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"defaults":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"customMessages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":14,"character":3},"arguments":[{"__symbolic":"reference","name":"MessageDirective"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":18,"character":40}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"changVisibility":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"toMessage":[{"__symbolic":"method"}]}},"MaxValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[max]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":7,"character":24},"useExisting":{"__symbolic":"reference","name":"MaxValidationDirective"},"multi":true}]}]}],"members":{"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"validate":[{"__symbolic":"method"}]}},"ValidationRules":{"__symbolic":"interface"},"ValidationPattern":{"__symbolic":"class","members":{},"statics":{"messages":{"deviceId":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":13,"character":14},"arguments":["Device ID must not contain spaces or slashes (\"/\")."]},"domain":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":14,"character":12},"arguments":["Only lowercase letters, digits and hyphens allowed in the first part of the URI. Must start with a letter; hyphens only allowed in the middle. Must be a valid URI."]},"email":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":18,"character":11},"arguments":["Invalid email address."]},"emails":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":19,"character":12},"arguments":["Invalid email addresses."]},"internationalPhoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":20,"character":30},"arguments":["International phone number required, in the format +49 9 876 543 210."]},"loginAlias":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":23,"character":16},"arguments":["Login alias must not contain slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]},"max":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":26,"character":9},"arguments":["Max value: {{ value }}"]},"min":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":27,"character":9},"arguments":["Min value: {{ value }}"]},"opcuaBrowsePath":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":28,"character":21},"arguments":["Invalid OPC UA URI."]},"password":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":29,"character":14},"arguments":["Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:'\",.<>{}[]\\/"]},"passwordConfirm":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":32,"character":21},"arguments":["Passwords do not match."]},"passwordStrength":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":33,"character":22},"arguments":["Password not good enough, password must be stronger (green)."]},"phoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":34,"character":17},"arguments":["Invalid phone number format. Only digits, spaces, slashes (\"/\") and dashes (\"-\") allowed."]},"required":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":37,"character":14},"arguments":["This field is required."]},"tenantId":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":38,"character":14},"arguments":["May contain lowercase letters, digits, and hyphens. Must start with a letter; hyphens only allowed in the middle; minimum 2 characters."]},"urlSegment":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":42,"character":16},"arguments":["Slash, single or double dots and white space not allowed."]},"user":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":43,"character":10},"arguments":["Username must not contain spaces nor slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]}},"rules":{"__symbolic":"error","message":"Expression form not supported","line":50,"character":15}}},"InputGroupListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"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 class=\"btn btn-clean text-primary\"\n (click)=\"remove()\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\"></i>\n </button>\n <button\n *ngIf=\"plus\"\n title=\"{{ 'Add' | translate }}\"\n class=\"btn btn-clean text-primary\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n</ng-container>\n"}]}],"members":{"plus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"minus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"onRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":3}}]}],"onAdd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"FormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":28,"character":26}],"exports":[{"__symbolic":"reference","name":"PhoneValidationDirective"},{"__symbolic":"reference","name":"DefaultValidationDirective"},{"__symbolic":"reference","name":"MinValidationDirective"},{"__symbolic":"reference","name":"MaxValidationDirective"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":34,"character":4},{"__symbolic":"reference","name":"FormGroupComponent"},{"__symbolic":"reference","name":"MessageDirective"},{"__symbolic":"reference","name":"MessagesComponent"},{"__symbolic":"reference","name":"InputGroupListComponent"},{"__symbolic":"reference","name":"InputGroupListContainerDirective"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"RequiredInputPlaceholderDirective"},{"__symbolic":"reference","name":"IpRangeInputListComponent"},{"__symbolic":"reference","name":"FilterInputComponent"},{"__symbolic":"reference","name":"ɵf"}],"declarations":[{"__symbolic":"reference","name":"PhoneValidationDirective"},{"__symbolic":"reference","name":"DefaultValidationDirective"},{"__symbolic":"reference","name":"MinValidationDirective"},{"__symbolic":"reference","name":"MaxValidationDirective"},{"__symbolic":"reference","name":"FormGroupComponent"},{"__symbolic":"reference","name":"MessageDirective"},{"__symbolic":"reference","name":"MessagesComponent"},{"__symbolic":"reference","name":"InputGroupListComponent"},{"__symbolic":"reference","name":"InputGroupListContainerDirective"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"RequiredInputPlaceholderDirective"},{"__symbolic":"reference","name":"IpRangeInputListComponent"},{"__symbolic":"reference","name":"FilterInputComponent"},{"__symbolic":"reference","name":"ɵf"}]}]}],"members":{}},"FormGroupConfig":{"__symbolic":"interface"},"SendStatus":{"AVAILABLE":"AVAILABLE","UNAVAILABLE":"UNAVAILABLE","UNKNOWN":"UNKNOWN","MAINTENANCE":"MAINTENANCE","NOT_MONITORED":"NOT_MONITORED"},"PushStatus":{"CONNECTED":"CONNECTED","DISCONNECTED":"DISCONNECTED","UNKNOWN":"UNKNOWN","MAINTENANCE":"MAINTENANCE"},"SendStatusLabels":{"AVAILABLE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection: online"]},"NOT_MONITORED":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection: not monitored"]},"UNAVAILABLE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection: offline"]},"UNKNOWN":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection status unknown"]},"MAINTENANCE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device is under maintenance"]}},"PushStatusLabels":{"CONNECTED":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Push connection: active"]},"DISCONNECTED":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Push connection: inactive"]},"UNKNOWN":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Push connection: inactive"]},"MAINTENANCE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device is under maintenance"]}},"deviceAvailabilityIconMap":{"__symbolic":"error","message":"Expression form not supported","line":36,"character":4,"module":"./core/device-status/device-availability"},"tooltips":{"__symbolic":"error","message":"Lambda not supported","line":80,"character":23,"module":"./core/device-status/device-availability"},"DeviceStatusModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":11,"character":8}],"exports":[{"__symbolic":"reference","name":"DeviceStatusComponent"}],"declarations":[{"__symbolic":"reference","name":"DeviceStatusComponent"}]}]}],"members":{}},"DeviceStatusComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"device-status","template":"<!-- ATTENTION: keep text format in `tooltip` attribute -->\n<div class=\"statusContainer\"\n title=\"{{status().sendStatus.tooltip | translate}}\n{{status().pushStatus.tooltip | translate}}\"\n placement=\"left\"\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 >\n </div>\n\n <div *ngIf=\"!!status().maintenanceStatus\"\n class=\"maintenanceStatus\"\n tooltip=\"{{status().maintenanceStatus.tooltip | translate}}\"\n container=\"body\"\n placement=\"auto\"\n [c8yIcon]=\"status().maintenanceStatus.icon\"\n [ngClass]=\"status().maintenanceStatus.class\"></div>\n</div>\n"}]}],"members":{"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3},"arguments":["mo"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":25,"character":40}]}],"get":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"setStatusProperites":[{"__symbolic":"method"}],"status":[{"__symbolic":"method"}],"getMaintenanceStatus":[{"__symbolic":"method"}],"getSendPushStatus":[{"__symbolic":"method"}],"getSendStatusTooltip":[{"__symbolic":"method"}],"getPushStatusTooltip":[{"__symbolic":"method"}]}},"DocsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"GuideHrefDirective"},{"__symbolic":"reference","name":"GuideDocsComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":12}],"exports":[{"__symbolic":"reference","name":"GuideHrefDirective"},{"__symbolic":"reference","name":"GuideDocsComponent"}],"providers":[{"__symbolic":"reference","name":"DocsService"}]}]}],"members":{}},"DocLink":{"__symbolic":"interface"},"DocLinkFactory":{"__symbolic":"interface"},"HOOK_DOCS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":13,"character":29},"arguments":["Hook docs"]},"DocsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":17},"arguments":[{"__symbolic":"reference","name":"HOOK_DOCS"}]}],null],"parameters":[{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DocLinkFactory"}]},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":21,"character":12}]}],"getBaseUrl":[{"__symbolic":"method"}],"getUserGuideLink":[{"__symbolic":"method"}],"list":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"getLink":[{"__symbolic":"method"}],"prefixWithSlash":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"GuideDocsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"[c8y-guide-docs]","template":"<ng-container *ngIf=\"!!baseUrl\">\n <ng-content></ng-content>\n</ng-container>\n"}]}],"members":{"links":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":22,"character":3},"arguments":[{"__symbolic":"reference","name":"GuideHrefDirective"},{"descendants":true}]}]}],"translateDirective":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":28,"character":3},"arguments":[{"__symbolic":"reference","name":"C8yTranslateDirective"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DocsService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":32,"character":53},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":32,"character":83}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"replaceAnchorAttributes":[{"__symbolic":"method"}],"findGuideAnchors":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"GuideHrefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[c8y-guide-href]"}]}],"members":{"c8yGuideHref":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3},"arguments":["c8y-guide-href"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":34}]}]}},"DynamicFormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":12,"character":4},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":16,"character":4},"member":"forRoot"}}],"providers":[{"__symbolic":"reference","name":"C8yJSONSchema"}],"exports":[{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":19,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":19,"character":26}]}]}],"members":{}},"C8yJSONSchema":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core/json-schema","name":"FormlyJsonschema","line":7,"character":35},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"toFieldConfig":[{"__symbolic":"method"}],"c8yOptions":[{"__symbolic":"method"}]}},"HOOK_COMPONENTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":35},"arguments":["Hook Dynamic Component"]},"HOOK_COMPONENT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":12,"character":34},"arguments":["Hook Dynamic Component @deprecated"]},"DynamicComponentDefinition":{"__symbolic":"interface"},"DynamicComponent":{"__symbolic":"interface"},"OnBeforeSave":{"__symbolic":"interface"},"DynamicComponentModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"DynamicComponentComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":12},{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":10,"character":26},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":10,"character":42},"member":"forChild"},"arguments":[[]]},{"__symbolic":"reference","name":"I18nModule"}],"exports":[{"__symbolic":"reference","name":"DynamicComponentComponent"}],"providers":[{"__symbolic":"reference","name":"DynamicComponentService"}]}]}],"members":{}},"DynamicComponentComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":45,"character":1},"arguments":[{"selector":"c8y-dynamic-component","template":"<ng-template #host></ng-template>\n\n<div class=\"alert alert-warning m-8\" role=\"alert\" *ngIf=\"notFoundError && error\">\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"}]}],"members":{"componentId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"notFoundError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"host":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":3},"arguments":["host",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":71,"character":29},"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":86,"character":38},{"__symbolic":"reference","name":"DynamicComponentService"}]}],"callLifeCycleHooks":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"loadComponent":[{"__symbolic":"method"}],"callOnBeforeSaveHook":[{"__symbolic":"method"}]}},"DynamicComponentService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":25,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":25,"character":50}]}],"getComponentsViaDeprecatedHook":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"getById$":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DashboardModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"DashboardChildComponent"},{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"DashboardChildTitleComponent"},{"__symbolic":"reference","name":"DashboardChildActionComponent"},{"__symbolic":"reference","name":"WidgetsDashboardComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ActionBarModule"},{"__symbolic":"reference","name":"DynamicComponentModule"},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":27,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":28,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"DocsModule"},{"__symbolic":"reference","name":"BreadcrumbModule"}],"exports":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"DashboardChildComponent"},{"__symbolic":"reference","name":"DashboardChildTitleComponent"},{"__symbolic":"reference","name":"DashboardChildActionComponent"},{"__symbolic":"reference","name":"WidgetsDashboardComponent"}]}]}],"members":{}},"WidgetsDashboardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-widgets-dashboard","host":{"style":"\n display: block;\n ","class":"dashboard c8y-grid-dashboard"},"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 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 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 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 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\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 (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"trash\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<!-- empty state -->\n<div class=\"c8y-empty-state text-center\" *ngIf=\"!settings.isLoading && widgets.length === 0\">\n <h1 class=\"c8y-icon c8y-icon-device c8y-icon-duocolor\"></h1>\n <h3 translate>No widgets to display.</h3>\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 [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary\"\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\">\n User guide`KEEP_ORIGINAL`\n </a>.\n </small>\n </p>\n </div>\n</div>\n<!-- /.empty settings -->\n\n<div class=\"col-xs-12 text-center\" *ngIf=\"settings.isLoading\">\n <div class=\"spinner p-relative\">\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\n<c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n *ngIf=\"!settings.isLoading\"\n>\n <c8y-dashboard-child\n *ngFor=\"let widget of widgets\"\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 (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 (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"trash\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\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 ></c8y-dynamic-component>\n </c8y-dashboard-child>\n</c8y-dashboard>\n"}]}],"members":{"widgets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"context":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"contextDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"_settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3},"arguments":["settings"]}]}],"breadcrumb":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"onAddWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"onEditWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":48,"character":3}}]}],"onDeleteWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":51,"character":3}}]}],"onChangeDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":3}}]}],"onEditDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":3}}]}],"onDeleteDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":60,"character":3}}]}],"onFreeze":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":63,"character":3}}]}],"onChangeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"onChangeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"toggleFullscreen":[{"__symbolic":"method"}],"fullScreen":[{"__symbolic":"method"}]}},"DashboardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":121,"character":1},"arguments":[{"selector":"c8y-dashboard","host":{"class":"c8y-grid-dashboard dashboard-grid"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":127,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n"}]}],"members":{"children":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":133,"character":3},"arguments":[{"__symbolic":"reference","name":"DashboardChildComponent"}]}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":140,"character":3}}]}],"gap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":145,"character":3}}]}],"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"dashboardChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":156,"character":3}}]}],"inlineStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":180,"character":3},"arguments":["attr.style"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":196,"character":31},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":196,"character":62}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"onResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":203,"character":3},"arguments":["window:resize"]}]}],"getLastRow":[{"__symbolic":"method"}],"updateRectSize":[{"__symbolic":"method"}],"emitChange":[{"__symbolic":"method"}],"calculateRowSize":[{"__symbolic":"method"}]}},"LegacyWidget":{"__symbolic":"interface"},"Widget":{"__symbolic":"interface"},"DashboardSettings":{"__symbolic":"interface"},"DashboardChildDimension":{"__symbolic":"interface"},"DashboardChildResizeDimension":{"__symbolic":"interface"},"DashboardChildArrangement":{"__symbolic":"interface"},"DashboardChange":{"__symbolic":"interface"},"WidgetChange":{"__symbolic":"interface"},"DashboardChildComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":64,"character":1},"arguments":[{"selector":"c8y-dashboard-child","host":{"class":"dashboard-grid-child"},"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 container=\"body\" placement=\"bottom right\">\n <a\n title=\"{{ 'Settings' | translate }}\"\n href=\"\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </a>\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\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n"}]}],"members":{"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":72,"character":3},"arguments":[{"__symbolic":"reference","name":"DashboardChildActionComponent"}]}]}],"x":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"y":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"margin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":109,"character":3}}]}],"isFrozen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3}}]}],"useIntersection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"changeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":125,"character":3}}]}],"changeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":130,"character":3}}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3}}]}],"inlineStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":161,"character":3},"arguments":["attr.style"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":185,"character":5},"arguments":[{"__symbolic":"reference","name":"DashboardComponent"}]}],null,null],"parameters":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":186,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":187,"character":20}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"setDynamicDimension":[{"__symbolic":"method"}],"resizeStarted":[{"__symbolic":"method"}],"dragStarted":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"getOrder":[{"__symbolic":"method"}],"childInView":[{"__symbolic":"method"}]}},"DashboardChildActionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-dashboard-child-action","template":"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>\n"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":7,"character":3},"arguments":["template",{"static":false}]}]}]}},"DashboardChildChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DashboardChildComponent"}]}],"findFreeDimension":[{"__symbolic":"method"}],"collapseUpAll":[{"__symbolic":"method"}],"arrangeAll":[{"__symbolic":"method"}],"arrangePipe":[{"__symbolic":"method"}],"collapseUp":[{"__symbolic":"method"}],"setDimension":[{"__symbolic":"method"}],"setPixelSize":[{"__symbolic":"method"}],"getPixelSize":[{"__symbolic":"method"}],"getDimensionSize":[{"__symbolic":"method"}],"getDimensionPosition":[{"__symbolic":"method"}],"doesCollide":[{"__symbolic":"method"}],"getCollided":[{"__symbolic":"method"}]}},"DashboardChildTitleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-dashboard-child-title","template":"<div class=\"card-title\">\n <ng-content></ng-content>\n</div>\n"}]}],"members":{}},"C8yStepper":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":97,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":92,"character":1},"arguments":[{"selector":"c8y-stepper","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":95,"character":25},"useExisting":{"__symbolic":"reference","name":"C8yStepper"}}],"template":"<ul 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 (onStepClicked)=\"setIndex($event)\"\n title=\"{{ step.label | translate }}\"\n [ngClass]=\"{'active': selectedIndex === i}\"\n >\n </c8y-stepper-progress>\n <div 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"}]}],"members":{"disableDefaultIcons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":3}}]}],"customClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":3}}]}],"onStepChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":112,"character":3}}]}],"_icons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":140,"character":3},"arguments":[{"__symbolic":"reference","name":"C8yStepperIcon"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":149,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":150,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":151,"character":36,"context":{"typeName":"HTMLElement"},"module":"./core/stepper/stepper.component"}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getIndicatorType":[{"__symbolic":"method"}],"setIndex":[{"__symbolic":"method"}]}},"C8yStepperProgress":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-stepper-progress","template":"<button\n type=\"button\"\n class=\"c8y-step\"\n [ngClass]=\"{ active: selected, 'step-done': state === 'done' || state === '_done' }\"\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 [c8yIcon]=\"'check'\"></span>\n </span>\n <span *ngSwitchDefault> {{ index + 1 }} </span>\n </ng-container>\n</button>\n"}]}],"members":{"iconOverrides":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"onStepClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"stepSelected":[{"__symbolic":"method"}]}},"C8yStepperButtons":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":66,"character":1},"arguments":[{"selector":"c8y-stepper-buttons","template":"<div class=\"text-center\">\n <button *ngIf=\"showBtns.cancel\" (click)=\"cancel()\" type=\"button\" class=\"btn btn-default\">\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 *ngIf=\"showBtns.back\"\n type=\"button\"\n (click)=\"back()\"\n class=\"btn btn-default\"\n [disabled]=\"pending\"\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 *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]=\"pending || disabled\"\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 (click)=\"next()\"\n *ngIf=\"showBtns.next\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pending }\"\n [disabled]=\"disabled\"\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"}]}],"members":{"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"pending":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":91,"character":3}}]}],"onNext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":95,"character":3}}]}],"onBack":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":100,"character":3}}]}],"onCustom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":105,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":124,"character":15}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":124,"character":52}}]],"parameters":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":124,"character":73}]}],"showButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"back":[{"__symbolic":"method"}],"custom":[{"__symbolic":"method"}]}},"C8yStepperIcon":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":6,"character":1},"arguments":[{"selector":"ng-template[c8yStepperIcon]"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["c8yStepperIcon"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"StepperModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepperModule","line":17,"character":26},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":17,"character":44}],"declarations":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","name":"C8yStepperIcon"},{"__symbolic":"reference","name":"C8yStepperProgress"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"exports":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":19,"character":24},{"__symbolic":"reference","name":"C8yStepperIcon"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"STEPPER_GLOBAL_OPTIONS","line":27,"character":15},"useValue":{"displayDefaultIndicatorType":false}}]}]}],"members":{}},"StepperButtonsVisibility":{"__symbolic":"interface"},"ListItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":54,"character":1},"arguments":[{"selector":"c8y-list-item, c8y-li","host":{"class":"c8y-list__item"},"template":"<div [ngClass]=\"{ 'expanded': !collapsed, interact: (itemCollapse && itemCollapse.collapseWay === 'row')}\">\n <div class=\"c8y-list__item__block\">\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 aria-haspopup=\"true\"\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"}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":67,"character":3},"arguments":["class.active"]}]}],"collapsed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"collapsedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":97,"character":3}}]}],"itemFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":112,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemFooterComponent"},{"static":false}]}]}],"itemActions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":132,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemActionComponent"}]}]}],"itemCollapse":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":147,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemCollapseComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":178,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showDropdownUp":[{"__symbolic":"method"}],"toggleCollapsed":[{"__symbolic":"method"}],"pulse":[{"__symbolic":"method"}]}},"ListItemBodyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-list-item-body, c8y-li-body","template":"<span *ngIf=\"body\">{{body}}</span>\n<ng-content></ng-content>\n"}]}],"members":{"body":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}]}},"ListItemCollapseComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"c8y-list-item-collapse, c8y-li-collapse","template":"<ng-content></ng-content>\n"}]}],"members":{"collapseWay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}]}},"ListItemActionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"c8y-list-item-action, c8y-li-action","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"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["template",{"static":false}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}]}},"ListItemRadioComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"c8y-list-item-radio, c8y-li-radio","host":{"class":"c8y-list__item__radio"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":31,"character":15},"multi":true,"useExisting":{"__symbolic":"reference","name":"ListItemRadioComponent"}}],"template":"<label class=\"c8y-radio\">\n <input\n #radio\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"selected\"\n (change)=\"change($event.target.checked); (false)\"\n [disabled]=\"disabled\"\n />\n <span></span>\n</label>\n<ng-content></ng-content>\n"}]}],"members":{"radio":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["radio",{"static":true}]}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":60,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"reset":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"change":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}]}},"ListItemFooterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-list-item-footer, c8y-li-footer","template":"<span *ngIf=\"footer\">{{footer}}</span>\n<ng-content></ng-content>\n"}]}],"members":{"footer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}]}},"ListGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":46,"character":1},"arguments":[{"selector":"c8y-list-group","host":{"class":"c8y-list__group"},"template":"<ng-content></ng-content>\n\n"}]}],"members":{"timeline":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":57,"character":3},"arguments":["class.c8y-list--timeline"]}]}],"timelineComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":76,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemTimelineComponent"},{"static":false}]}]}],"ngAfterContentChecked":[{"__symbolic":"method"}]}},"ListGroupModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":28,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":29,"character":26},"member":"forRoot"}},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":29,"character":52}],"declarations":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ListItemIconComponent"},{"__symbolic":"reference","name":"ListItemBodyComponent"},{"__symbolic":"reference","name":"ListItemFooterComponent"},{"__symbolic":"reference","name":"ListItemActionComponent"},{"__symbolic":"reference","name":"ListItemCollapseComponent"},{"__symbolic":"reference","name":"ListItemCheckboxComponent"},{"__symbolic":"reference","name":"ListItemRadioComponent"},{"__symbolic":"reference","name":"ListItemTimelineComponent"}],"exports":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ListItemIconComponent"},{"__symbolic":"reference","name":"ListItemBodyComponent"},{"__symbolic":"reference","name":"ListItemFooterComponent"},{"__symbolic":"reference","name":"ListItemActionComponent"},{"__symbolic":"reference","name":"ListItemCollapseComponent"},{"__symbolic":"reference","name":"ListItemCheckboxComponent"},{"__symbolic":"reference","name":"ListItemRadioComponent"},{"__symbolic":"reference","name":"ListItemTimelineComponent"}]}]}],"members":{}},"ListItemCheckboxComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/forms","name":"CheckboxControlValueAccessor","line":29,"character":47},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"c8y-list-item-checkbox, c8y-li-checkbox","host":{"class":"c8y-list__item__check"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":23,"character":15},"multi":true,"useExisting":{"__symbolic":"reference","name":"ListItemCheckboxComponent"}}],"template":"<label class=\"c8y-checkbox\">\n <input\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</label>\n<ng-content></ng-content>\n"}]}],"members":{"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":46,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":46,"character":63}]}],"ngOnChanges":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"ListItemIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-list-item-icon, c8y-li-icon","host":{"class":"c8y-list__item__icon"},"template":"<i [c8yIcon]=\"icon\" [ngClass]=\"status\" *ngIf=\"icon\"></i>\n<ng-content></ng-content>"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}]}},"ListItemTimelineComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"c8y-list-item-timeline, c8y-li-timeline","host":{"class":"c8y-list--timeline__item"},"template":"<small class=\"c8y-list--timeline__item__date\">\n <ng-content></ng-content>\n</small>\n<ng-content select=\"c8y-li, c8y-list-item\"></ng-content>\n"}]}],"members":{}},"QuickLinkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"QuickLinkComponent"}],"imports":[{"__symbolic":"reference","name":"CoreModule"}],"exports":[{"__symbolic":"reference","name":"QuickLinkComponent"}],"providers":[]}]}],"members":{}},"QuickLinkComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-quick-link","template":"<div [class]=\"classes\" title=\"{{ label | translate }}\">\r\n <h1 class=\"text-gray-darker\">\r\n <i [c8yIcon]=\"icon\" class=\"c8y-icon-duocolor\"></i>\r\n </h1>\r\n <p class=\"text-muted\">{{ label | translate }}</p>\r\n</div>\r\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"TypeaheadComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"c8y-typeahead","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":25,"character":15},"multi":true,"useExisting":{"__symbolic":"reference","name":"TypeaheadComponent"}},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":30,"character":15},"useExisting":{"__symbolic":"reference","name":"TypeaheadComponent"},"multi":true}],"template":"<div\n class=\"c8y-child-assets-selector dropdown\"\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 class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n"}]}],"members":{"searchControl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":["searchControl",{"static":false}]}]}],"dropdown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":["dropdown",{"static":false}]}]}],"list":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemComponent"}]}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"allowFreeEntries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"displayProperty":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"autoClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"onSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":73,"character":3}}]}],"onIconClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":76,"character":3}}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"doBlur":[{"__symbolic":"method"}],"getDisplayProperty":[{"__symbolic":"method"}],"onShown":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"handleKeyboard":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"selectNextItemOnKeyboardMove":[{"__symbolic":"method"}]}},"Item":{"__symbolic":"interface"},"selectedFunction":{"__symbolic":"interface"},"selectedLabelFunction":{"__symbolic":"interface"},"SelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"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>\n <button\n type=\"button\"\n class=\"btn dropdown-toggle c8y-dropdown\"\n title=\"{{ labelText || placeholder | translate }}\"\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 }}…\"\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\"\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 }}\n </span>\n </label>\n </li>\n\n <li class=\"multiselect-item-container\">\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=\"bg-white\">\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"}]}],"members":{"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"selectedLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"applyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"updateItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"disableApplyOnNoSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"onChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"dropdown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownDirective","line":38,"character":13},{"static":false}]}]}],"liChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemComponent"}]}]}],"preventClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":54,"character":3},"arguments":["click",["$event"]]}]}],"isOpenChange":[{"__symbolic":"method"}],"outterSelected":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}],"isAllItemsSelected":[{"__symbolic":"method"}],"isAllFilteredSelected":[{"__symbolic":"method"}],"isNoItemSelected":[{"__symbolic":"method"}],"applyChanges":[{"__symbolic":"method"}],"selectAll":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"onChangeItem":[{"__symbolic":"method"}],"updateFiltered":[{"__symbolic":"method"}],"getSelectAllToggleStatus":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateLabel":[{"__symbolic":"method"}],"updateSelected":[{"__symbolic":"method"}],"isAllSelected":[{"__symbolic":"method"}],"getLabel":[{"__symbolic":"method"}]}},"SelectModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":14,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ListGroupModule"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"TypeaheadComponent"}],"declarations":[{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"TypeaheadComponent"}]}]}],"members":{}},"DynamicProviderConfig":{"__symbolic":"interface"},"DynamicProviderTabsConfig":{"__symbolic":"interface"},"DynamicProviderNavigationConfig":{"__symbolic":"interface"},"DynamicProviderLayoutConfig":{"__symbolic":"interface"},"DynamicProviderEndpointConfig":{"__symbolic":"interface"},"Endpoint":{"__symbolic":"interface"},"ProviderDefinition":{"__symbolic":"interface"},"ProviderProperties":{"__symbolic":"interface"},"HOOK_DYNAMIC_PROVIDER_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":48},"arguments":["Dynamic Provider Config"]},"ProviderConfigurationNodeFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":5},"arguments":[{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"}]}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DynamicProviderConfig"}]}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":22}]}],"get":[{"__symbolic":"method"}],"checkCanActivate":[{"__symbolic":"method"}],"getGuards":[{"__symbolic":"method"}],"getNodeTabPath":[{"__symbolic":"method"}]}},"ProviderConfigurationRouteFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":12,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":27},"arguments":[{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DynamicProviderConfig"}]}]}]}],"get":[{"__symbolic":"method"}]}},"ProviderConfigurationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"c8y-sms-gateway","providers":[{"__symbolic":"reference","name":"ProviderConfigurationService"},{"__symbolic":"reference","name":"ProviderDefinitionsService"}],"template":"<c8y-title>\n {{ (layout$ | async).pageTitle | translate }}\n</c8y-title>\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 <h4 class=\"card-title\">\n {{ (layout$ | async).cardTitle | translate }}\n </h4>\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"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Permissions"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":68,"character":28},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"ProviderDefinitionsService"},{"__symbolic":"reference","name":"ProviderConfigurationService"},{"__symbolic":"reference","name":"C8yJSONSchema"}]}],"ngOnInit":[{"__symbolic":"method"}],"saveProviderConfiguration":[{"__symbolic":"method"}],"deleteProviderConfiguration":[{"__symbolic":"method"}],"removeEncryptedValues":[{"__symbolic":"method"}]}},"ProviderConfigurationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ProviderConfigurationComponent"}],"exports":[{"__symbolic":"reference","name":"ProviderConfigurationComponent"}],"imports":[{"__symbolic":"reference","name":"CoreModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"DynamicFormsModule"}],"entryComponents":[{"__symbolic":"reference","name":"ProviderConfigurationComponent"}],"providers":[{"provide":{"__symbolic":"reference","name":"ɵbb"},"useClass":{"__symbolic":"reference","name":"ProviderConfigurationRouteFactory"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵbc"},"useClass":{"__symbolic":"reference","name":"ProviderConfigurationNodeFactory"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵbd"},"useClass":{"__symbolic":"reference","name":"ɵbe"},"multi":true}]}]}],"members":{},"statics":{"config":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"ProviderConfigurationModule"},"providers":[{"provide":{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"},"useValue":{"__symbolic":"reference","name":"config"},"multi":true}]}}}},"ProviderConfigurationService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@c8y/client","name":"Service","line":7,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":13,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":13,"character":51}]}],"detail":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getDetailUrl":[{"__symbolic":"method"}]},"statics":{"NO_DETAIL_ID":null}},"ProviderDefinitionsService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@c8y/client","name":"Service","line":7,"character":48},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":11,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":11,"character":51}]}],"list":[{"__symbolic":"method"}]}},"GridDataSource":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"connect":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"loadData":[{"__symbolic":"method"}],"resolveValue":[{"__symbolic":"method"}],"resolveFunction":[{"__symbolic":"method"}],"normalizeNil":[{"__symbolic":"method"}],"doClientSideFiltering":[{"__symbolic":"method"}],"doClientSideSearch":[{"__symbolic":"method"}],"doClientSideSorting":[{"__symbolic":"method"}],"doClientSidePagination":[{"__symbolic":"method"}],"createRegexSearch":[{"__symbolic":"method"}],"toObservable":[{"__symbolic":"method"}]}},"DataGridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkTableModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":23,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":26,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":27,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/pagination","name":"PaginationModule","line":28,"character":4},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"CellRendererComponent"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"FilteringFormRendererComponent"},{"__symbolic":"reference","name":"ColumnDirective"},{"__symbolic":"reference","name":"DataGridComponent"}],"exports":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"ColumnDirective"},{"__symbolic":"reference","name":"DataGridComponent"}],"entryComponents":[{"__symbolic":"reference","name":"DataGridComponent"}]}]}],"members":{}},"DataGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":59,"character":1},"arguments":[{"selector":"c8y-data-grid","template":"<div class=\"table-data-grid-scroll\" #scroll>\n <div *ngIf=\"displayOptions.gridHeader\" class=\"table-data-grid-header separator large-padding\">\n <h4 class=\"m-r-16\">{{ title | translate }}</h4>\n\n <ng-container *ngIf=\"displayOptions.filter\">\n <span *ngIf=\"!filteringApplied\">\n <span class=\"label label-warning 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 >{{ filteredItemsCount }} of {{ allItemsCount }} items</small\n >\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</small\n >\n </ng-container>\n <button\n title=\" {{ 'Clear filters' | translate }}\"\n class=\"m-l-8 btn btn-xs btn-default m-r-4\"\n (click)=\"clearFilters()\"\n >\n {{ 'Clear filters' | translate }}\n </button>\n </span>\n <span class=\"hidden-xs hidden-sm\">\n <button\n class=\"btn-clean text-primary\"\n popover=\"{{ 'Click the column headers to apply filters.' | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n >\n <i c8yIcon=\"question-circle-o\"></i>\n </button> </span\n ></ng-container>\n\n <div class=\"flex-item-right\">\n <div class=\"btnbar flex-row\">\n <label class=\"c8y-switch\" *ngIf=\"showChildDevices.show\">\n <input type=\"checkbox\" [(ngModel)]=\"showChildDevices.value\" (click)=\"loadChildDevices()\"/>\n <span></span>\n {{ 'Show child devices' | translate }}\n </label>\n <button class=\"btn-clean m-l-4 m-r-16\" \n *ngIf=\"showChildDevices.show\"\n [popover]=\"childDevicesPop\"\n placement=\"bottom\"\n [outsideClick]=\"true\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n <ng-template #childDevicesPop>\n <span translate>\n Displays the button\n <button class=\"btn btn-xs btn-icon btn-default\"><i class=\"text-primary dlt-c8y-icon-enter-bottom\"></i></button>\n next to devices with children. Clicking it displays a list with all child devices.\n </span>\n </ng-template>\n <div\n class=\"dropdown\"\n dropdown\n [insideClick]=\"true\"\n container=\"body\"\n placement=\"bottom left\"\n >\n <button\n title=\"{{ 'Configure columns' | translate }}\"\n class=\"btnbar-btn c8y-dropdown\"\n dropdownToggle\n >\n <i c8yIcon=\"columns\" class=\"m-r-4\"></i>\n <span>{{ 'Configure columns' | translate }}</span>\n </button>\n\n <ul *dropdownMenu class=\"dropdown-menu\" (click)=\"$event.stopPropagation()\">\n <li class=\"bg-white\">\n <div cdkDropList (cdkDropListDropped)=\"onColumnDrop($event)\" class=\"list-group m-0\">\n <div *ngFor=\"let column of columns\" cdkDrag cdkDragLockAxis=\"y\">\n <ng-container *ngIf=\"!column.positionFixed\">\n <div class=\"list-group-item draggable-after p-0 \">\n <label\n title=\"{{ (column.header | translate) || column.name }}\"\n class=\"c8y-checkbox p-l-16 p-r-32 p-t-8 p-b-8 flex-item-v-stretch\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"column.visible\"\n (change)=\"updateGridColumnsSize()\"\n />\n <span></span>\n <span>{{ (column.header | translate) || column.name }}</span>\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </li>\n </ul>\n </div>\n\n <button\n title=\"{{ 'Reload' | translate }}\"\n class=\"btnbar-btn btn-link\"\n [disabled]=\"dataSource.loading$ | async\"\n (click)=\"searchText = ''; reload()\"\n >\n <i c8yIcon=\"refresh\" class=\"m-r-4\"></i>\n <span>{{ 'Reload' | translate }}</span>\n </button>\n\n <div *ngIf=\"!serverSideDataCallback || showSearch\" class=\"input-group input-group-search m-l-sm-16\">\n <input\n type=\"search\"\n class=\"form-control\"\n placeholder=\"{{ 'Search…' | 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 ></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 items.\n </span>\n <br class=\"visible-xs\" />\n <small *ngIf=\"selectedItemIds.length >= pagination.pageSize\">\n <a (click)=\"setAllItemsSelected(true)\" class=\"interact\">\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=\"flex-item-right\">\n <div class=\"btnbar flex-row\">\n <ng-container\n *ngFor=\"let bulkActionControl of bulkActionControls\"\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 >\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 >\n <i c8yIcon=\"trash\"></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 >\n <i c8yIcon=\"{{ bulkActionControl.icon }}\"></i>\n <span>{{ bulkActionControl.text | translate }}</span>\n </button>\n </ng-container>\n\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btnbar-btn\"\n (click)=\"cancel()\"\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 *ngFor=\"let column of columns; trackBy: trackByName\" [cdkColumnDef]=\"column.name\">\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 type=\"checkbox\"\n [checked]=\"currentPageSelectionState.allSelected\"\n [indeterminate]=\"\n !(\n currentPageSelectionState.allSelected ||\n currentPageSelectionState.allDeselected\n )\n \"\n (change)=\"setAllItemsInCurrentPageSelected($event.target.checked)\"\n />\n <span></span>\n </label>\n </div>\n </th>\n\n <td cdk-cell *cdkCellDef=\"let row\">\n <label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"isItemSelected(row)\"\n (change)=\"setItemsSelected([row], $event.target.checked)\"\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\"></th>\n\n <td cdk-cell *cdkCellDef=\"let row\">\n <ng-container *ngIf=\"actionControls.length <= 2\">\n <ng-container\n *ngFor=\"let actionControl of actionControls\"\n [ngSwitch]=\"actionControl.type\"\n >\n <ng-container *ngIf=\"actionControl.showIf ? actionControl.showIf(row) : true\">\n <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n class=\"btn btn-icon btn-xs btn-default\"\n title=\"{{ 'Edit' | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"pencil\"></i>\n </button>\n <button\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btn btn-dot showOnHover\"\n title=\"{{ 'Delete' | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i class=\"text-danger\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n *ngSwitchDefault\n class=\"btn btn-icon btn-xs btn-default\"\n title=\"{{ actionControl.text | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n tooltip=\"{{ actionControl.text | translate }}\"\n container=\"body\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div *ngIf=\"actionControls.length > 2\" class=\"dropdown\" dropdown>\n <button\n title=\"{{ 'Actions' | translate }}\"\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\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\" [ngSwitch]=\"actionControl.type\">\n <ng-container *ngIf=\"actionControl.showIf ? actionControl.showIf(row) : true\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Edit\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n <button\n title=\"{{ 'Delete' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"trash\"></i>\n {{ 'Delete' | translate }}\n </button>\n <button\n title=\"{{ 'Export' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Export\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Export' | translate }}\n </button>\n <button\n title=\"{{ actionControl.text | translate }}\"\n *ngSwitchDefault\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n {{ actionControl.text | translate }}\n </button>\n </ng-container>\n </li>\n </ul>\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\n ) as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"column.filterable\"\n class=\"dropdown\"\n dropdown\n #dropdown=\"bs-dropdown\"\n container=\"body\"\n placement=\"bottom left\"\n [insideClick]=\"true\"\n >\n <button\n class=\"btn-header c8y-dropdown\"\n dropdownToggle\n [title]=\"(column.header | translate) || column.name\"\n >\n <ng-container\n *ngIf=\"\n (\n [{\n columnName: column.name,\n value: ((column.header | translate) || column.name)\n }]\n | map:getHeaderCellRendererSpec:this\n ) 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 <ul *dropdownMenu class=\"dropdown-menu\" (click)=\"$event.stopPropagation()\">\n <li class=\"data-grid__dropdown\">\n <ng-container\n *ngIf=\"\n (\n [{\n column: column,\n dropdown: dropdown\n }]\n | map:getFilteringFormRendererSpec:this\n ) as filteringFormRendererSpec\n \"\n >\n <c8y-filtering-form-renderer [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=\"{{ 'Sort' | translate }}\"\n (click)=\"changeSortOrder(column.name)\"\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 class=\"resize-handle\"\n (mousedown)=\"\n resizeHandleMouseDown$.emit({ event: $event, targetColumnName: column.name })\n \"\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 [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\n ) 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 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 *ngIf=\"infiniteScroll\">\n <tr cdk-footer-row *cdkFooterRowDef=\"['infiniteScrollFooter']\"></tr>\n </ng-container>\n </table>\n\n <div *ngIf=\"(dataSource.loading$ | async) && !loadMoreComponent\" class=\"text-center\">\n <c8y-progress-bar [message]=\"loadingItemsLabel\"></c8y-progress-bar>\n </div>\n\n <div\n class=\"row m-0 p-t-40 p-b-40\"\n *ngIf=\"!(dataSource.loading$ | async) && (dataSource.stats$ | async).filteredSize === 0\"\n >\n <div class=\"col-md-4 col-md-offset-4\">\n <ng-content select=\".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 *ngIf=\"(dataSource.stats$ | async).currentPageSize > 0\" class=\"counter\">\n <span class=\"text-muted\" ngNonBindable translate [translateParams]=\"paginationLabelParams\"\n >{{ pageFirstItemIdx }} - {{ pageLastItemIdx }} of {{ itemsTotal }}</span\n >\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\"\n >\n <label class=\"m-r-4\">{{ 'Items per page' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\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 [class.hidden]=\"totalPagesCount <= 1\"\n [ngModel]=\"pagination.currentPage\"\n (pageChanged)=\"updatePagination($event)\"\n [totalItems]=\"(dataSource.stats$ | async).filteredSize\"\n [itemsPerPage]=\"pagination.pageSize\"\n (numPages)=\"totalPagesCount = $event\"\n [maxSize]=\"5\"\n [boundaryLinks]=\"false\"\n previousText=\" \"\n nextText=\" \"\n ></pagination>\n </div>\n </div>\n</div>\n"}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"loadMoreItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"showSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"showChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"_columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3},"arguments":["columns"]}]}],"_rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3},"arguments":["rows"]}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3},"arguments":["pagination"]}]}],"_infiniteScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3},"arguments":["infiniteScroll"]}]}],"_serverSideDataCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3},"arguments":["serverSideDataCallback"]}]}],"_selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":123,"character":3},"arguments":["selectable"]}]}],"_selectionPrimaryKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":129,"character":3},"arguments":["selectionPrimaryKey"]}]}],"_displayOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":140,"character":3},"arguments":["displayOptions"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":146,"character":3},"arguments":["actionControls"]}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":152,"character":3},"arguments":["bulkActionControls"]}]}],"searchText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"rowMouseOver":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":159,"character":3}}]}],"rowMouseLeave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":160,"character":3}}]}],"rowClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":161,"character":3}}]}],"onConfigChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":162,"character":3}}]}],"onFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":163,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":164,"character":3}}]}],"onChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":165,"character":3}}]}],"columnRenderers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":167,"character":3},"arguments":[{"__symbolic":"reference","name":"ColumnDirective"}]}]}],"scrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":169,"character":3},"arguments":["scroll",{"static":true}]}]}],"infiniteScrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":171,"character":3},"arguments":["infiniteScrollContainer",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":171,"character":63}}]}]}],"thRefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":207,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkHeaderCell","line":207,"character":16},{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":207,"character":39}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":215,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":216,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":217,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":218,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"trackByName":[{"__symbolic":"method"}],"resolveCellValue":[{"__symbolic":"method"}],"changeSortOrder":[{"__symbolic":"method"}],"updateSorting":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"resetFilter":[{"__symbolic":"method"}],"clearFilters":[{"__symbolic":"method"}],"updateFiltering":[{"__symbolic":"method"}],"updateFilteringApplied":[{"__symbolic":"method"}],"isColumnFilteringApplied":[{"__symbolic":"method"}],"updatePagination":[{"__symbolic":"method"}],"reload":[{"__symbolic":"method"}],"loadNextPage":[{"__symbolic":"method"}],"getCellRendererSpec":[{"__symbolic":"method"}],"getHeaderCellRendererSpec":[{"__symbolic":"method"}],"getFilteringFormRendererSpec":[{"__symbolic":"method"}],"setAllItemsSelected":[{"__symbolic":"method"}],"setAllItemsInCurrentPageSelected":[{"__symbolic":"method"}],"setItemsSelected":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"isItemSelected":[{"__symbolic":"method"}],"onColumnDrop":[{"__symbolic":"method"}],"updateGridColumnsSize":[{"__symbolic":"method"}],"loadChildDevices":[{"__symbolic":"method"}],"emitConfigChange":[{"__symbolic":"method"}],"updateColumns":[{"__symbolic":"method"}],"withColumnDefaults":[{"__symbolic":"method"}],"updateColumnNames":[{"__symbolic":"method"}],"setupResizeHandle":[{"__symbolic":"method"}],"clearMouseHighlights":[{"__symbolic":"method"}],"_getCellRendererSpec":[{"__symbolic":"method"}],"getColumnRenderer":[{"__symbolic":"method"}],"loadData":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"throttle"},"arguments":[500,{"trailing":true,"leading":false}]}]}],"updateFilteringLabelsParams":[{"__symbolic":"method"}],"updatePaginationLabelParams":[{"__symbolic":"method"}],"createLoadMoreComponent":[{"__symbolic":"method"}],"scrollToTop":[{"__symbolic":"method"}]}},"DataGrid":{"__symbolic":"interface"},"Column":{"__symbolic":"interface"},"ColumnConfig":{"__symbolic":"interface"},"Filter":{"__symbolic":"interface"},"GridConfig":{"__symbolic":"interface"},"SpecialColumnName":{"Checkbox":"checkbox","Actions":"actions"},"ColumnDataType":{"Icon":"icon","Numeric":"numeric","TextShort":"text-short","TextLong":"text-long"},"ColumnDataRecordClassName":{"Icon":"data-record-icon","Header":"data-record-header","Default":""},"minColumnGridTrackSize":80,"ratiosByColumnTypes":{"icon":1,"numeric":1,"text-short":1.67,"text-long":3.33,"$quoted$":["text-short","text-long"]},"SortOrder":{"__symbolic":"interface"},"FilterPredicateFunction":{"__symbolic":"interface"},"FilteringActionType":{"ApplyFilter":"APPLY_FILTER","ResetFilter":"RESET_FILTER"},"Row":{"__symbolic":"interface"},"Pagination":{"__symbolic":"interface"},"ServerSideDataCallback":{"__symbolic":"interface"},"DataSourceModifier":{"__symbolic":"interface"},"ServerSideDataResult":{"__symbolic":"interface"},"DataSourceStats":{"__symbolic":"interface"},"DisplayOptions":{"__symbolic":"interface"},"ActionControl":{"__symbolic":"interface"},"BulkActionControl":{"__symbolic":"interface"},"BuiltInActionType":{"Edit":"EDIT","Delete":"DELETE","Export":"EXPORT"},"FilteringFormRendererComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"c8y-filtering-form-renderer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":18,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n >\n </ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n >\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <div class=\"form-group\">\n <label translate>Filter text</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 <div class=\"flex-row\">\n <button\n class=\"btn btn-default btn-sm flex-grow m-r-8\"\n (click)=\"defaultRendererFilterText = ''; spec.context.resetFilter()\"\n translate\n >\n Reset\n </button>\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n translate\n >\n Apply\n </button>\n </div>\n</ng-container>\n"}]}],"members":{"_spec":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["spec"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":31,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":31,"character":54}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"CellRendererDef":{"__symbolic":"interface"},"CellRendererSpec":{"__symbolic":"interface"},"CellRendererContext":{"__symbolic":"class","members":{}},"CellRendererDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":21,"character":1},"arguments":[{"selector":"[c8yCellRendererDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"HeaderCellRendererDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[c8yHeaderCellRendererDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"FilteringFormRendererSpec":{"__symbolic":"interface"},"FilteringFormRendererContext":{"__symbolic":"class","members":{}},"FilteringModifier":{"__symbolic":"interface"},"FilteringFormRendererDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":21,"character":1},"arguments":[{"selector":"[c8yFilteringFormRendererDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"CellRendererComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-cell-renderer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n >\n </ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n >\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n {{ spec.context.value }}\n</ng-container>\n"}]}],"members":{"_spec":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["spec"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":30,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":30,"character":54}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}]}},"ColumnDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"c8y-column"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"cellRendererDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":9,"character":3},"arguments":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"static":false}]}]}],"headerCellRendererDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":12,"character":3},"arguments":[{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"static":false}]}]}],"filteringFormRendererDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":15,"character":3},"arguments":[{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"static":false}]}]}]}},"SelectModalFilterPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"selectModalFilterPipe"}]}],"members":{"transform":[{"__symbolic":"method"}],"filterContainString":[{"__symbolic":"method"}],"extractValues":[{"__symbolic":"method"}]}},"SelectModalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":11,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ListGroupModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"SelectModalComponent"},{"__symbolic":"reference","name":"SelectModalFilterPipe"}],"declarations":[{"__symbolic":"reference","name":"SelectModalComponent"},{"__symbolic":"reference","name":"SelectModalFilterPipe"}]}]}],"members":{}},"ISelectModalObject":{"__symbolic":"interface"},"ISelectModalOption":{"__symbolic":"interface"},"ISelectModalBodyPart":{"__symbolic":"interface"},"ModalLabels":{"__symbolic":"interface"},"ModalSelectionMode":{"SINGLE":"single","MULTI":"multi"},"SelectModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-select-modal","template":"<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <span c8yIcon=\"{{ icon }}\"></span>\n <h4 class=\"text-uppercase\">\n {{ title | translate }}\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <c8y-filter *ngIf=\"showFilter\" [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div class=\"modal-inner-scroll\">\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 translate>No items to display.</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 >\n </c8y-li-radio>\n <c8y-li-body class=\"content-flex-50\">\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 </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 *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 class=\"btn btn-primary\"\n (click)=\"select()\"\n [disabled]=\"!selected\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"subTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"disableSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"showFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"areMoreEntries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"result":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":45,"character":34}]}],"ngOnChanges":[{"__symbolic":"method"}],"updatePipe":[{"__symbolic":"method"}],"updateChoice":[{"__symbolic":"method"}],"dismiss":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getOutput":[{"__symbolic":"method"}]}},"ProductExperienceDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[c8yProductExperience]"}]}],"members":{"actionName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"actionData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"GainsightService"}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":11,"character":3},"arguments":["click"]}]}]}},"GainsightService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"UserPreferencesService"}]}],"isGainsightDisabledInUserPreferences":[{"__symbolic":"method"}],"setFunctionalCookie":[{"__symbolic":"method"}],"getGainsightKey":[{"__symbolic":"method"}],"loadTag":[{"__symbolic":"method"}],"identify":[{"__symbolic":"method"}],"triggerEvent":[{"__symbolic":"method"}],"shouldLoadGainsightTag":[{"__symbolic":"method"}],"canEditProductExperienceSettings":[{"__symbolic":"method"}],"isGainsightDisabled":[{"__symbolic":"method"}],"loadScriptTag":[{"__symbolic":"method"}],"getInstanceIdFromUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ProductExperienceModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ProductExperienceDirective"}],"exports":[{"__symbolic":"reference","name":"ProductExperienceDirective"}],"providers":[{"__symbolic":"reference","name":"GainsightService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"GainsightService"},{"__symbolic":"reference","name":"ɵd"}]}]}},"HelpComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-help","template":"<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right\"\n [priority]=\"priority\"\n *ngIf=\"isSupportedLanguage\"\n>\n <button\n class=\"btn btn-help\"\n [title]=\"'Open help' | translate\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n >\n <i\n [c8yIcon]=\"'question-circle-o'\"\n class=\"text-info\"\n ></i>\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>\n <div\n class=\"c8y-help-drawer-block\"\n #docOutlet\n >\n <div\n *ngIf=\"isLoading\"\n >\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 p-t-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <h4 class=\"text-bold text-primary m-b-16\">{{title}}</h4>\n <div\n id=\"helpContent\"\n class=\"help-content\"\n [innerHTML] = \"sectionContent\"\n ></div>\n \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\n </div>\n <div class=\"c8y-help-drawer-footer\" *ngIf=\"!isLoading\">\n <button\n class=\"btn btn-default\"\n (click)=\"toggle()\"\n [title]=\"'Close help' | translate\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >Close</button>\n <a\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n >\n <span translate *ngIf=\"!hasError\">\n Open the <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span translate *ngIf=\"hasError\">\n Check the <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>\n"}]}],"members":{"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"isCollapsed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DocsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":92,"character":30}]}],"getUrl":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"requestContent":[{"__symbolic":"method"}],"clean":[{"__symbolic":"method"}],"parseVersion":[{"__symbolic":"method"}],"resolveIcon":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}]}},"HelpModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"HelpComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":14,"character":26},"member":"forRoot"}},{"__symbolic":"reference","name":"ActionBarModule"}],"exports":[{"__symbolic":"reference","name":"HelpComponent"}],"entryComponents":[{"__symbolic":"reference","name":"HelpComponent"}]}]}],"members":{}},"ManagedObjectRealtimeService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"RealtimeService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":6,"character":24}]}],"channel":[{"__symbolic":"method"}]}},"OperationBulkRealtimeService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"RealtimeService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":9,"character":24}]}],"channel":[{"__symbolic":"method"}]}},"OperationRealtimeService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"RealtimeService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":9,"character":24}]}],"channel":[{"__symbolic":"method"}]}},"RealtimeButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-realtime-btn","template":"<button\n type=\"button\"\n class=\"btn btn-link c8y-realtime\"\n title=\"{{ 'Toggle realtime' | translate }}\"\n (click)=\"toggle()\"\n>\n <span class=\"c8y-pulse\" [ngClass]=\"{ active: active, inactive: !active }\"></span>\n <span translate>Realtime</span>\n</button>\n"}]}],"members":{"service":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"toggle":[{"__symbolic":"method"}]}},"RealtimeMessage":{"__symbolic":"class","arity":1,"members":{}},"RealtimeAction":{"__symbolic":"interface"},"RealtimeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"declarations":[{"__symbolic":"reference","name":"RealtimeButtonComponent"}],"exports":[{"__symbolic":"reference","name":"RealtimeButtonComponent"}]}]}],"members":{}},"RealtimeService":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":20,"character":34}]}],"onAll$":[{"__symbolic":"method"}],"start":[{"__symbolic":"method"}],"stop":[{"__symbolic":"method"}],"onCreate$":[{"__symbolic":"method"}],"onUpdate$":[{"__symbolic":"method"}],"onDelete$":[{"__symbolic":"method"}],"getIdString":[{"__symbolic":"method"}],"getChannel":[{"__symbolic":"method"}],"channel":[{"__symbolic":"method"}],"getSubjectForChannel":[{"__symbolic":"method"}]}},"PluginsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"providers":[{"__symbolic":"reference","name":"PluginsService"}]}]}],"members":{}},"PluginsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":9,"character":42},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":9,"character":78}]}],"listPackages":[{"__symbolic":"method"}],"listVersions":[{"__symbolic":"method"}],"listInstalled":[{"__symbolic":"method"}],"addByName":[{"__symbolic":"method"}],"removeByName":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"addOrRemove":[{"__symbolic":"method"}],"storeCumulocityJson":[{"__symbolic":"method"}],"getCumulocityJsonFile":[{"__symbolic":"method"}],"getApplication":[{"__symbolic":"method"}]}},"RangeDisplayModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"RangeDisplayComponent"}],"declarations":[{"__symbolic":"reference","name":"RangeDisplayComponent"}],"entryComponents":[{"__symbolic":"reference","name":"RangeDisplayComponent"}]}]}],"members":{}},"RangeDisplayComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-range-display","template":"<div [ngClass]=\"{ 'range-display--vertical': config.orientation === 'vertical' }\">\n <div class=\"range-display\">\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div *ngIf=\"isRedRangeDisplayed()\" class=\"range-display__range__max\"></div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\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 *ngIf=\"\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n \"\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 }} | {{ config.time | c8yDate }}\"\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 attr.data-label=\"{{ config.max || 100 | number }}\" class=\"range-display__tick\"></div>\n </div>\n </div>\n</div>"}]}],"members":{"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"inlineStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":10,"character":3},"arguments":["attr.style"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":45,"character":33}]}],"checkTarget":[{"__symbolic":"method"}],"rulerCalc":[{"__symbolic":"method"}],"trackByIndex":[{"__symbolic":"method"}],"isRedRangeDisplayed":[{"__symbolic":"method"}],"isYellowRangeDisplayed":[{"__symbolic":"method"}],"isRangeDisplayed":[{"__symbolic":"method"}]}},"CoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":36,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"ActionBarModule"},{"__symbolic":"reference","name":"ActionModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"BootstrapModule"},{"__symbolic":"reference","name":"BreadcrumbModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"DataGridModule"},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"LoginModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","name":"NavigatorModule"},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"SelectModule"},{"__symbolic":"reference","name":"TabsModule"},{"__symbolic":"reference","name":"UserModule"},{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","name":"DeviceStatusModule"},{"__symbolic":"reference","name":"DocsModule"},{"__symbolic":"reference","name":"StepperModule"},{"__symbolic":"reference","name":"DynamicComponentModule"},{"__symbolic":"reference","name":"DashboardModule"},{"__symbolic":"reference","name":"ListGroupModule"},{"__symbolic":"reference","name":"SelectModalModule"},{"__symbolic":"reference","name":"FilePickerModule"},{"__symbolic":"reference","name":"DatePickerModule"},{"__symbolic":"reference","name":"ProductExperienceModule"},{"__symbolic":"reference","name":"HelpModule"},{"__symbolic":"reference","name":"RealtimeModule"},{"__symbolic":"reference","name":"RangeDisplayModule"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"PluginsModule"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"CoreModule"},"providers":[{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"CommonModule"},"member":"providers"}}},{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"LoginModule"},"member":"providers"}}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":29,"character":1},"arguments":[{"selector":"[c8yIfAllowed]"}]}],"members":{"c8yIfAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"c8yIfAllowedAllowAny":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":54,"character":23},{"__symbolic":"reference","name":"Permissions"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":31,"character":1},"arguments":[{"selector":"[dropdown][c8yBsDropdownDirection],[dropdown][c8yDropdownDirection]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":37,"character":34},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":64}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":39,"character":3},"arguments":["click"]}]}],"shouldDropup":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OptionsService"}]}],"getCookiePreferencesConfig":[{"__symbolic":"method"}],"getCookieBannerSettings":[{"__symbolic":"method"}],"setCookies":[{"__symbolic":"method"}],"shouldShowCookieBanner":[{"__symbolic":"method"}],"getUserCookiePreferences":[{"__symbolic":"method"}],"isConfigCookiePreferencesDefined":[{"__symbolic":"method"}],"isFunctionalCookieEnabled":[{"__symbolic":"method"}],"getCookieDescription":[{"__symbolic":"method"}],"transformCookiePreferencesToList":[{"__symbolic":"method"}],"transformCookiePreferencesListToCookiePreferences":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"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"}]}],"members":{"modalRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":14,"character":3},"arguments":["modalRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"getCookieDescription":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[emails][formControlName],[emails][formControl],[emails][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":24,"character":25},"useExisting":{"__symbolic":"reference","name":"ɵf"},"multi":true}]}]}],"members":{"emails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-provide-phone-number","template":"<form #twoFactorForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"save()\" novalidate>\n <div class=\"legend form-block center\" translate>\n Two-factor authentication\n </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 c8yDefaultValidation=\"phoneNumber\"\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"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":22,"character":25}]}],"save":[{"__symbolic":"method"}],"sendTFASms":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":7,"character":12},{"__symbolic":"reference","name":"C8yTranslateModule"}],"providers":[{"provide":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FORMLY_CONFIG","line":10,"character":15},"multi":true,"useFactory":{"__symbolic":"reference","name":"ɵk"},"deps":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":13,"character":13},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":13,"character":31}]}]}]}],"members":{}},"ɵj":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":7,"character":33},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":7,"character":67}]}],"prePopulate":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"function","parameters":["translate","parser"],"value":{"extensions":[{"name":"translate","extension":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵj"},"arguments":[{"__symbolic":"reference","name":"translate"},{"__symbolic":"reference","name":"parser"}]}}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"C8yTranslateModule"},{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":7,"character":32}],"providers":[{"provide":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FORMLY_CONFIG","line":10,"character":15},"multi":true,"useFactory":{"__symbolic":"reference","name":"ɵm"},"deps":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":13,"character":13}]}]}]}],"members":{}},"ɵm":{"__symbolic":"function","parameters":["translate"],"value":{"validationMessages":[{"name":"required"},{"name":"pattern"}]}},"ɵn":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"}],"ɵo":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵn"},"member":"map"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":29,"character":25,"module":"./core/dynamic-forms/dynamic-forms-ui-theme.module"}]},"member":"reduce"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":30,"character":4,"module":"./core/dynamic-forms/dynamic-forms-ui-theme.module"},{"types":[],"wrappers":[]}]}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":45,"character":1},"arguments":[{"declarations":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"ɵn"}}],"entryComponents":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"ɵn"}}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":49,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":50,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":51,"character":4},{"__symbolic":"reference","name":"C8yTranslateModule"},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":55,"character":4},{"__symbolic":"reference","module":"@ngx-formly/core/select","name":"FormlySelectModule","line":56,"character":4}],"providers":[{"provide":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FORMLY_CONFIG","line":60,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵo"},"multi":true}]}]}],"members":{}},"ɵq":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":8,"character":35},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-field-checkbox","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":" <label class=\"c8y-checkbox\" [class.has-error]=\"showError\">\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 /><span></span><span> {{ to.label }} </span>\n <span *ngIf=\"to.required && to.hideRequiredMarker !== true\"><em class=\"m-l-4\" translate>(required)</em></span>\n <button\n *ngIf=\"!!to.description\"\n class=\"btn-clean m-l-4 flex-item-middle\"\n [popover]=\"to.description\"\n placement=\"auto\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </label>\n"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"checkbox","component":{"__symbolic":"reference","name":"FieldCheckbox"}},{"name":"boolean","extends":"checkbox"}]}}},"ɵr":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldArrayType","line":7,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-array-type","template":"<div role=\"group\"\n [attr.aria-labelledby]=\"id + '-fieldset'\"\n>\n <div id=\"{{id + '-fieldset'}}\"\n class=\"legend form-block\"\n *ngIf=\"to.label || to.description\"\n >\n {{ to.label }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-clean text-14 m-l-4 flex-item-middle\"\n [popover]=\"to.description\"\n placement=\"right\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </div>\n\n <div 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 field of field.fieldGroup; let i = index\" class=\"input-group-array\">\n <formly-field [field]=\"field\">\n </formly-field>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-clean flex-item-right\"\n title=\"{{ 'Delete' | translate }}\"\n (click)=\"remove(i)\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"p-t-8\">\n <button\n title=\"{{ 'Add \\{\\{ label \\}\\}' | translate: field?.fieldArray?.templateOptions }}\"\n class=\"btn-add-block\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-square\"></i>\n <span ngNonBindable translate [translateParams]=\"field?.fieldArray?.templateOptions\"\n >Add {{ label }}</span\n >\n </button>\n </div>\n</div>\n"}]}],"members":{"ngOnInit":[{"__symbolic":"method"}]},"statics":{"CONFIG":{"types":[{"name":"array","component":{"__symbolic":"reference","name":"ArrayTypeComponent"}}]}}},"ɵs":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldWrapper","line":8,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-wrapper-form-field","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"<div class=\"form-group\" [class.has-error]=\"showError\">\n <label *ngIf=\"to.label && to.hideLabel !== true\" [attr.for]=\"id\">\n {{ to.label }}\n <button\n *ngIf=\"to.description && showDescriptionAsPopup\"\n class=\"btn-clean m-l-4 flex-item-middle\"\n [popover]=\"to.description\"\n placement=\"auto\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </label>\n\n <ng-template #fieldComponent></ng-template>\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 class=\"help-block\" *ngIf=\"!showError && to.description && !showDescriptionAsPopup\">\n {{ to.description }}\n </div>\n</div>\n"}]}],"members":{"ngOnInit":[{"__symbolic":"method"}]},"statics":{"CONFIG":{"wrappers":[{"name":"c8y-form-field","component":{"__symbolic":"reference","name":"WrapperFormField"}}]}}},"ɵt":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":9,"character":31},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-field-file","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":19},"member":"OnPush"},"template":"<div class=\"form-group\" role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <div id=\"{{ id + '-fieldset' }}\" class=\"legend form-block\" *ngIf=\"to.label || to.description\">\n {{ to.label }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-clean text-14 m-l-4\"\n [popover]=\"to.description\"\n placement=\"right\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </div>\n\n <c8y-drop-area #dropArea class=\"drop-area-sm\" [formControl]=\"formControl\"> </c8y-drop-area>\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</div>\n"}]}],"members":{"dropArea":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":33,"character":3},"arguments":["dropArea",{"static":true}]}]}],"ngOnInit":[{"__symbolic":"method"}]},"statics":{"CONFIG":{"types":[{"name":"file","component":{"__symbolic":"reference","name":"FieldFile"}}]}}},"ɵu":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":8,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-field-input","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"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"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"input","component":{"__symbolic":"reference","name":"FieldInput"},"wrappers":["c8y-form-field"]},{"name":"string","extends":"input"},{"name":"number","extends":"input","defaultOptions":{"templateOptions":{"type":"number"}}},{"name":"integer","extends":"input","defaultOptions":{"templateOptions":{"type":"number"}}}]}}},"ɵv":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":8,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-field-radio","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"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 }}</span>\n</label>\n"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"radio","component":{"__symbolic":"reference","name":"FieldRadio"},"wrappers":["c8y-form-field"]}]}}},"ɵw":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":7,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-object-type","template":"<div role=\"group\"\n [attr.aria-labelledby]=\"id + '-fieldset'\" \n>\n <div id=\"{{id + '-fieldset'}}\" \n class=\"legend form-block\" \n *ngIf=\"to.label\"\n >{{ to.label }}</div>\n <p *ngIf=\"to.description\">{{ to.description }}</p>\n <div 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"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"object","component":{"__symbolic":"reference","name":"ObjectTypeComponent"}}]}}},"ɵx":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵy"}],"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"ɵy"}]}]}],"members":{}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-audit-log","template":"<div class=\"inner-scroll\">\n <ul class=\"timeline-list list-condensed m-t-16\">\n <li class=\"timeline-list-item flex-row\" *c8yFor=\"let record of records\">\n <small class=\"timeline-item-date text-right\">\n <span>{{ record.time | c8yDate }}</span>\n </small>\n <div class=\"timeline-item-content flex-row\">\n <div class=\"list-item-body\">\n <div class=\"row text-break-word\">\n <div class=\"col-md-5\">\n <span class=\"text-truncate\">{{ record.activity | translate }}</span>\n <small class=\"text-muted\">{{ record.user }}</small>\n </div>\n <div class=\"col-md-7\">\n <div class=\"small text-truncate-wrap\">{{ record.text | translate }}</div>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n"}]}],"members":{"source":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"AuditService","line":32,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵba"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":12,"character":26}],"exports":[{"__symbolic":"reference","name":"ɵba"}]}]}],"members":{}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-list-display-switch","template":"<div class=\"form-group\">\n <label class=\"m-r-8\">\n {{ 'Display as' | translate }}\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [ngModel]=\"selectedOption\"\n (ngModelChange)=\"onOptionSelect($event)\"\n >\n <option *ngFor=\"let option of DISPLAY_OPTIONS\" [ngValue]=\"option\">{{\n option.label\n }}</option></select\n >\n <span></span>\n </div>\n</div>\n"}]}],"members":{"listKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"listLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"onListClassChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common","name":"Location","line":42,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"onOptionSelect":[{"__symbolic":"method"}],"loadSelectedOption":[{"__symbolic":"method"}],"getLocalStorageOption":[{"__symbolic":"method"}],"getDefaultOption":[{"__symbolic":"method"}],"getLocalStorageKey":[{"__symbolic":"method"}],"getListKey":[{"__symbolic":"method"}]}},"ɵbe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":15,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":5},"arguments":[{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"}]}],null,null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DynamicProviderConfig"}]}]},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":18,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":22}]}],"get":[{"__symbolic":"method"}],"checkCanActivate":[{"__symbolic":"method"}],"getNodeTabPath":[{"__symbolic":"method"}]}}},"origins":{"ActionBarItem":"./core/action-bar/action-bar.model","ActionBarFactory":"./core/action-bar/action-bar.model","ActionBarItemComponent":"./core/action-bar/action-bar-item.component","ActionBarModule":"./core/action-bar/action-bar.module","HOOK_ACTION_BAR":"./core/action-bar/action-bar.service","ActionBarService":"./core/action-bar/action-bar.service","ActionBarComponent":"./core/action-bar/action-bar.component","HOOK_ACTION":"./core/action/action.service","ActionService":"./core/action/action.service","ActionModule":"./core/action/action.module","ActionComponent":"./core/action/action.component","Action":"./core/action/action.model","ActionFactory":"./core/action/action.model","ActionOutletComponent":"./core/action/action-outlet.component","AlertComponent":"./core/alert/alert.component","AlertOutletComponent":"./core/alert/alert-outlet.component","Alert":"./core/alert/alert.model","AlertTextComponent":"./core/alert/alert-text.component","AlertDetailsComponent":"./core/alert/alert-details.component","AlertService":"./core/alert/alert.service","AlertModule":"./core/alert/alert.module","BootstrapComponent":"./core/bootstrap/bootstrap.component","BootstrapModule":"./core/bootstrap/bootstrap.module","CookieBannerComponent":"./core/bootstrap/cookie-banner/cookie-banner.component","BreadcrumbOutletComponent":"./core/breadcrumb/breadcrumb-outlet.component","BreadcrumbComponent":"./core/breadcrumb/breadcrumb.component","HOOK_BREADCRUMB":"./core/breadcrumb/breadcrumb.service","BreadcrumbService":"./core/breadcrumb/breadcrumb.service","BreadcrumbItemComponent":"./core/breadcrumb/breadcrumb-item.component","BreadcrumbItem":"./core/breadcrumb/breadcrumb.model","Breadcrumb":"./core/breadcrumb/breadcrumb.model","BreadcrumbFactory":"./core/breadcrumb/breadcrumb.model","BreadcrumbModule":"./core/breadcrumb/breadcrumb.module","ApplicationOptions":"./core/common/ApplicationOptions","CookieBannerConfiguration":"./core/common/ApplicationOptions","CookiePreferencesConfiguration":"./core/common/ApplicationOptions","LoginExtraLink":"./core/common/ApplicationOptions","Icon":"./core/common/ApplicationOptions","Docs":"./core/common/ApplicationOptions","Links":"./core/common/ApplicationOptions","I18nExtra":"./core/common/ApplicationOptions","I18nExtraLangCode":"./core/common/ApplicationOptions","Languages":"./core/common/ApplicationOptions","LanguagesLangCode":"./core/common/ApplicationOptions","BrandingCssVars":"./core/common/ApplicationOptions","initializeServices":"./core/common/common.module","ICON_LIST":"./core/common/common.module","CommonModule":"./core/common/common.module","ES_MAX_TIME_MILLISECONDS":"./core/common/date.pipe","DatePipe":"./core/common/date.pipe","fromTrigger":"./core/common/extension-hooks","fromFactories":"./core/common/extension-hooks","resolveInjectedFactories":"./core/common/extension-hooks","stateToFactory":"./core/common/extension-hooks","sortByPriority":"./core/common/extension-hooks","toObservableOfArrays":"./core/common/extension-hooks","isPromise":"./core/common/extension-hooks","toObservable":"./core/common/extension-hooks","ExtensionFactory":"./core/common/extension-hooks","ExtensionPoint":"./core/common/extension-hooks","getActivatedRoute":"./core/common/extension-hooks","ForOfDirective":"./core/common/forOf.directive","HumanizeAppNamePipe":"./core/common/humanize-app-name.pipe","HumanizePipe":"./core/common/humanize.pipe","IconDirective":"./core/common/icon.directive","ICONS":"./core/common/icon.directive","LoadMoreComponent":"./core/common/load-more.component","LoadMoreMode":"./core/common/load-more.model","LoadingComponent":"./core/common/loading.component","MapFunctionPipe":"./core/common/map-function.pipe","memoize":"./core/common/memoize.decorator","throttle":"./core/common/throttle.decorator","HOOK_OPTIONS":"./core/common/options.service","OptionsService":"./core/common/options.service","OutletDirective":"./core/common/outlet.directive","Permissions":"./core/common/permissions.service","ProgressBarComponent":"./core/common/progress-bar.component","ShortenUserNamePipe":"./core/common/shorten-user-name.pipe","StateService":"./core/common/state-service.abstract","Status":"./core/common/status.model","StatusType":"./core/common/status.model","statusIcons":"./core/common/status.model","statusClasses":"./core/common/status.model","statusAlert":"./core/common/status.model","operationStatusIcons":"./core/common/status.model","operationStatusClasses":"./core/common/status.model","TenantUiService":"./core/common/tenant-ui.service","AppStateService":"./core/common/ui-state.service","UserPreferencesStorageLocal":"./core/common/user-preferences/user-preferences-storage-local","UserPreferencesStorageInventory":"./core/common/user-preferences/user-preferences-store-inventory","UserPreferencesService":"./core/common/user-preferences/user-preferences.service","ZipService":"./core/common/zip.service","ZipEntry":"./core/common/zip.service","retryWithDelay":"./core/common/retry-with-delay.operator","HeaderModule":"./core/header/header.module","HeaderService":"./core/header/header.service","Header":"./core/header/header.model","RightDrawerComponent":"./core/header/right-drawer/right-drawer.component","TitleOutletComponent":"./core/header/title/title-outlet.component","TitleComponent":"./core/header/title/title.component","HeaderBarComponent":"./core/header/header-bar/header-bar.component","AppSwitcherComponent":"./core/header/application/app-switcher.component","AppIconComponent":"./core/header/application/app-icon.component","PatternMessagesService":"./core/i18n/pattern-messages.service","translateLoaderFactory":"./core/i18n/i18n.module","localePathFactory":"./core/i18n/i18n.module","languagesFactory":"./core/i18n/i18n.module","localeId":"./core/i18n/i18n.module","getAngularLocalesLanguageString":"./core/i18n/i18n.module","I18nModule":"./core/i18n/i18n.module","LANGUAGES":"./core/i18n/languages","parse":"./core/i18n/parse-module","TranslateParserCustom":"./core/i18n/translate.parser","LOCALE_PATH":"./core/i18n/locale.path","loadLocale":"./core/i18n/load-locale","MissingTranslationCustomHandler":"./core/i18n/missing-translation-custom.handler","TranslateService":"./core/i18n/translate.service","_":"./core/i18n/gettext","gettext":"./core/i18n/gettext","MESSAGES":"./core/i18n/pattern-messages.data","TranslateCustomLoader":"./core/i18n/translate.loader","trimTranslationKey":"./core/i18n/translate.loader","HOOK_PATTERN_MESSAGES":"./core/i18n/patterns-message.hook","C8yTranslateModule":"./core/i18n/c8y-translate.module","C8yTranslateDirective":"./core/i18n/c8y-translate.directive","C8yTranslatePipe":"./core/i18n/c8y-translate.pipe","CachedLocaleDictionaryService":"./core/i18n/cached-locale-dictionary.service","LoginService":"./core/login/login.service","LoginMessage":"./core/login/login.model","LoginViews":"./core/login/login.model","LoginComponent":"./core/login/login.component","PasswordStrengthValidatorDirective":"./core/login/password-strength-validator.directive","StrengthValidatorService":"./core/login/strength-validator-service","RecoverPasswordComponent":"./core/login/recover-password.component","ChangePasswordComponent":"./core/login/change-password.component","TotpAuthComponent":"./core/login/totp-auth.component","LoginModule":"./core/login/login.module","CredentialsComponent":"./core/login/credentials.component","ModalModule":"./core/modal/modal.module","ModalComponent":"./core/modal/modal.component","ILabels":"./core/modal/modal-confirm.component","ConfirmModalComponent":"./core/modal/modal-confirm.component","ModalService":"./core/modal/modal.service","PopoverConfirmButtons":"./core/modal/popover-confirm.component","PopoverConfirmComponent":"./core/modal/popover-confirm.component","NavigatorModule":"./core/navigator/navigator.module","NavigatorIconComponent":"./core/navigator/navigator-icon.component","NavigatorNodeFactory":"./core/navigator/navigator-node-factory.interface","HOOK_NAVIGATOR_NODES":"./core/navigator/navigator.service","NavigatorService":"./core/navigator/navigator.service","NavigatorNodeData":"./core/navigator/navigator-node-data","NavigatorItemComponent":"./core/navigator/navigator-entry.component","NavigatorNodeRoot":"./core/navigator/navigator-node-root","NavigatorOutletComponent":"./core/navigator/navigator-outlet.component","ClickEventSource":"./core/navigator/navigator-node.component","NavigatorNodeComponent":"./core/navigator/navigator-node.component","ClickOptions":"./core/navigator/navigator-node","NavigatorNode":"./core/navigator/navigator-node","TotpSetupComponent":"./core/authentication/totp-setup.component","TotpChallengeComponent":"./core/authentication/totp-challenge.component","AuthenticationModule":"./core/authentication/authentication.module","PasswordStrengthCheckerService":"./core/authentication/password-strength-checker.service","PasswordStrengthComponent":"./core/authentication/password-strength.component","SmsChallengeComponent":"./core/authentication/sms-challenge.component","NewPasswordComponent":"./core/authentication/new-password.component","PasswordStrengthColor":"./core/authentication/password.model","NewPassword":"./core/authentication/password.model","PasswordCheckListComponent":"./core/authentication/password-check-list.component","PasswordConfirmModalComponent":"./core/authentication/password-confirm-modal.component","PasswordConfirm":"./core/authentication/password-confirm.directive","PasswordService":"./core/authentication/password.service","HOOK_SEARCH":"./core/search/search.service","SearchService":"./core/search/search.service","HighlightComponent":"./core/search/highlight.component","SearchComponent":"./core/search/search.component","Search":"./core/search/search.model","SearchFactory":"./core/search/search.model","SearchModule":"./core/search/search.module","SearchResultEmptyComponent":"./core/search/search-result-empty.component","SearchOutletComponent":"./core/search/search-outlet.component","ConditionalTabsOutletComponent":"./core/tabs/conditional-tabs-outlet.component","TabsOutletComponent":"./core/tabs/tabs-outlet.component","Tab":"./core/tabs/tab.model","TabFactory":"./core/tabs/tab.model","TabComponent":"./core/tabs/tab.component","HOOK_TABS":"./core/tabs/tabs.service","TabsService":"./core/tabs/tabs.service","TabsModule":"./core/tabs/tabs.module","DropAreaComponent":"./core/drop-area/drop-area.component","DroppedFile":"./core/drop-area/drop-area.component","DropAreaModule":"./core/drop-area/drop-area.module","FilePickerModule":"./core/file-picker/file-picker.module","FilePickerComponent":"./core/file-picker/file-picker.component","PickedFiles":"./core/file-picker/file-picker.model","DatePickerModule":"./core/date-picker/date-picker.module","DatePickerComponent":"./core/date-picker/date-picker.component","PickedDates":"./core/date-picker/date-picker.model","UserEditModalComponent":"./core/user/user-edit-modal.component","UserMenuService":"./core/user/user-menu.service","User":"./core/user/user-edit.component","UserEditComponent":"./core/user/user-edit.component","UserTotpRevokeComponent":"./core/user/user-totp-revoke.component","UserModule":"./core/user/user.module","UserMenuItemComponent":"./core/user/user-menu-item.component","UserMenuItem":"./core/user/user.model","UserTotpSetupComponent":"./core/user/user-totp-setup.component","UserMenuOutletComponent":"./core/user/user-menu-outlet.component","ViewContext":"./core/router/router.models","Route":"./core/router/router.models","RouteFactory":"./core/router/router.models","ContextRouteService":"./core/router/context-route.service","routes":"./core/router/router.module","RouterModule":"./core/router/router.module","ContextRouteGuard":"./core/router/context-route.guard","RouterTabsResolver":"./core/router/router-tabs.resolver","HOOK_ONCE_ROUTE":"./core/router/router.service","RouterService":"./core/router/router.service","EmptyComponent":"./core/router/empty.component","ContextRouteComponent":"./core/router/context-route.component","ViewContextServices":"./core/router/view-context.service","InputGroupListContainerDirective":"./core/forms/input-group-list-container.directive","TextAreaRowHeightDirective":"./core/forms/text-area-row-height.directive","RequiredInputPlaceholderDirective":"./core/forms/required-input-placeholder.directive","FormGroupComponent":"./core/forms/form-group.component","FilterInputComponent":"./core/forms/filter-input.component","DefaultValidationDirective":"./core/forms/default-validation.directive","MessageDirective":"./core/forms/message.directive","MinValidationDirective":"./core/forms/min-validation.directive","JsonValidationPrettifierDirective":"./core/forms/json-validation-prettifier.directive","IpRangeInputListComponent":"./core/forms/ip-range-input-list.component","PhoneValidationDirective":"./core/forms/phone-validation.directive","MessagesComponent":"./core/forms/messages.component","MaxValidationDirective":"./core/forms/max-validation.directive","ValidationRules":"./core/forms/validation-pattern","ValidationPattern":"./core/forms/validation-pattern","InputGroupListComponent":"./core/forms/input-group-list.component","FormsModule":"./core/forms/forms.module","FormGroupConfig":"./core/forms/form-group-config.model","SendStatus":"./core/device-status/device-availability","PushStatus":"./core/device-status/device-availability","SendStatusLabels":"./core/device-status/device-availability","PushStatusLabels":"./core/device-status/device-availability","deviceAvailabilityIconMap":"./core/device-status/device-availability","tooltips":"./core/device-status/device-availability","DeviceStatusModule":"./core/device-status/device-status.module","DeviceStatusComponent":"./core/device-status/device-status.component","DocsModule":"./core/docs/docs.module","DocLink":"./core/docs/docs.models","DocLinkFactory":"./core/docs/docs.models","HOOK_DOCS":"./core/docs/docs.models","DocsService":"./core/docs/docs.service","GuideDocsComponent":"./core/docs/guide-docs.component","GuideHrefDirective":"./core/docs/guide-href.directive","DynamicFormsModule":"./core/dynamic-forms/dynamic-forms.module","C8yJSONSchema":"./core/dynamic-forms/json-schema/c8y-json-schema.service","HOOK_COMPONENTS":"./core/dynamic-component/dynamic-component.model","HOOK_COMPONENT":"./core/dynamic-component/dynamic-component.model","DynamicComponentDefinition":"./core/dynamic-component/dynamic-component.model","DynamicComponent":"./core/dynamic-component/dynamic-component.model","OnBeforeSave":"./core/dynamic-component/dynamic-component.model","DynamicComponentModule":"./core/dynamic-component/dynamic-component.module","DynamicComponentComponent":"./core/dynamic-component/dynamic-component.component","DynamicComponentService":"./core/dynamic-component/dynamic-component.service","DashboardModule":"./core/dashboard/dashboard.module","WidgetsDashboardComponent":"./core/dashboard/widgets-dashboard.component","DashboardComponent":"./core/dashboard/dashboard.component","LegacyWidget":"./core/dashboard/dashboard.model","Widget":"./core/dashboard/dashboard.model","DashboardSettings":"./core/dashboard/dashboard.model","DashboardChildDimension":"./core/dashboard/dashboard.model","DashboardChildResizeDimension":"./core/dashboard/dashboard.model","DashboardChildArrangement":"./core/dashboard/dashboard.model","DashboardChange":"./core/dashboard/dashboard.model","WidgetChange":"./core/dashboard/dashboard.model","DashboardChildComponent":"./core/dashboard/dashboard-child.component","DashboardChildActionComponent":"./core/dashboard/dashboard-child-action.component","DashboardChildChange":"./core/dashboard/dashboard-child-change","DashboardChildTitleComponent":"./core/dashboard/dashboard-child-title.component","C8yStepper":"./core/stepper/stepper.component","C8yStepperProgress":"./core/stepper/stepper-progress.component","C8yStepperButtons":"./core/stepper/stepper-buttons.component","C8yStepperIcon":"./core/stepper/stepper-icon.directive","StepperModule":"./core/stepper/stepper.module","StepperButtonsVisibility":"./core/stepper/stepper.model","ListItemComponent":"./core/list-group/list-item.component","ListItemBodyComponent":"./core/list-group/list-item-body.component","ListItemCollapseComponent":"./core/list-group/list-item-collapse.component","ListItemActionComponent":"./core/list-group/list-item-action.component","ListItemRadioComponent":"./core/list-group/list-item-radio.component","ListItemFooterComponent":"./core/list-group/list-item-footer.component","ListGroupComponent":"./core/list-group/list-group.component","ListGroupModule":"./core/list-group/list-group.module","ListItemCheckboxComponent":"./core/list-group/list-item-checkbox.component","ListItemIconComponent":"./core/list-group/list-item-icon.component","ListItemTimelineComponent":"./core/list-group/list-item-timeline.component","QuickLinkModule":"./core/quicklink/quick-link.module","QuickLinkComponent":"./core/quicklink/quick-link.component","TypeaheadComponent":"./core/select/typeahead.component","Item":"./core/select/select.component","selectedFunction":"./core/select/select.component","selectedLabelFunction":"./core/select/select.component","SelectComponent":"./core/select/select.component","SelectModule":"./core/select/select.module","DynamicProviderConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderTabsConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderNavigationConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderLayoutConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderEndpointConfig":"./core/provider-configuration/model/dynamic-provider-config.model","Endpoint":"./core/provider-configuration/model/dynamic-provider-config.model","ProviderDefinition":"./core/provider-configuration/model/provider-definition.model","ProviderProperties":"./core/provider-configuration/model/provider-properties.model","HOOK_DYNAMIC_PROVIDER_CONFIG":"./core/provider-configuration/provider-configuration-hook","ProviderConfigurationNodeFactory":"./core/provider-configuration/provider-configuration-node.factory","ProviderConfigurationRouteFactory":"./core/provider-configuration/provider-configuration-route.factory","ProviderConfigurationComponent":"./core/provider-configuration/provider-configuration.component","ProviderConfigurationModule":"./core/provider-configuration/provider-configuration.module","ProviderConfigurationService":"./core/provider-configuration/service/provider-configuration.service","ProviderDefinitionsService":"./core/provider-configuration/service/provider-definitions.service","GridDataSource":"./core/data-grid/grid-data-source","DataGridModule":"./core/data-grid/data-grid.module","DataGridComponent":"./core/data-grid/data-grid.component","DataGrid":"./core/data-grid/data-grid.model","Column":"./core/data-grid/data-grid.model","ColumnConfig":"./core/data-grid/data-grid.model","Filter":"./core/data-grid/data-grid.model","GridConfig":"./core/data-grid/data-grid.model","SpecialColumnName":"./core/data-grid/data-grid.model","ColumnDataType":"./core/data-grid/data-grid.model","ColumnDataRecordClassName":"./core/data-grid/data-grid.model","minColumnGridTrackSize":"./core/data-grid/data-grid.model","ratiosByColumnTypes":"./core/data-grid/data-grid.model","SortOrder":"./core/data-grid/data-grid.model","FilterPredicateFunction":"./core/data-grid/data-grid.model","FilteringActionType":"./core/data-grid/data-grid.model","Row":"./core/data-grid/data-grid.model","Pagination":"./core/data-grid/data-grid.model","ServerSideDataCallback":"./core/data-grid/data-grid.model","DataSourceModifier":"./core/data-grid/data-grid.model","ServerSideDataResult":"./core/data-grid/data-grid.model","DataSourceStats":"./core/data-grid/data-grid.model","DisplayOptions":"./core/data-grid/data-grid.model","ActionControl":"./core/data-grid/data-grid.model","BulkActionControl":"./core/data-grid/data-grid.model","BuiltInActionType":"./core/data-grid/data-grid.model","FilteringFormRendererComponent":"./core/data-grid/column/filtering-form-renderer.component","CellRendererDef":"./core/data-grid/column/cell-renderer","CellRendererSpec":"./core/data-grid/column/cell-renderer","CellRendererContext":"./core/data-grid/column/cell-renderer","CellRendererDefDirective":"./core/data-grid/column/cell-renderer","HeaderCellRendererDefDirective":"./core/data-grid/column/cell-renderer","FilteringFormRendererSpec":"./core/data-grid/column/filtering-form-renderer","FilteringFormRendererContext":"./core/data-grid/column/filtering-form-renderer","FilteringModifier":"./core/data-grid/column/filtering-form-renderer","FilteringFormRendererDefDirective":"./core/data-grid/column/filtering-form-renderer","CellRendererComponent":"./core/data-grid/column/cell-renderer.component","ColumnDirective":"./core/data-grid/column/column.directive","SelectModalFilterPipe":"./core/select-modal/select-modal-filter.pipe","SelectModalModule":"./core/select-modal/select-modal.module","ISelectModalObject":"./core/select-modal/select-modal.model","ISelectModalOption":"./core/select-modal/select-modal.model","ISelectModalBodyPart":"./core/select-modal/select-modal.model","ModalLabels":"./core/select-modal/select-modal.model","ModalSelectionMode":"./core/select-modal/select-modal.model","SelectModalComponent":"./core/select-modal/select-modal.component","ProductExperienceDirective":"./core/product-experience/product-experience.directive","GainsightService":"./core/product-experience/gainsight.service","ProductExperienceModule":"./core/product-experience/product-experience.module","HelpComponent":"./core/help/help.component","HelpModule":"./core/help/help.module","ManagedObjectRealtimeService":"./core/realtime/managed-object-realtime.service","OperationBulkRealtimeService":"./core/realtime/operation-bulk-realtime.service","OperationRealtimeService":"./core/realtime/operation-realtime.service","RealtimeButtonComponent":"./core/realtime/realtime-button.component","RealtimeMessage":"./core/realtime/realtime.model","RealtimeAction":"./core/realtime/realtime.model","RealtimeModule":"./core/realtime/realtime.module","RealtimeService":"./core/realtime/realtime.service","PluginsModule":"./core/plugins/plugins.module","PluginsService":"./core/plugins/plugins.service","RangeDisplayModule":"./core/range-display/range-display.module","RangeDisplayComponent":"./core/range-display/range-display.component","CoreModule":"./core/core.module","ɵa":"./core/common/if-allowed.directive","ɵb":"./core/common/dropdown-direction.directive","ɵc":"./core/common","ɵd":"./core/bootstrap/cookie-banner/cookie-banner.service","ɵe":"./core/bootstrap/cookie-banner/cookie-banner-preferences-modal/cookie-banner-preferences-modal.component","ɵf":"./core/forms/emails-validator.directive","ɵg":"./core/authentication/provide-phone-number.component","ɵh":"./core/authentication","ɵi":"./core/dynamic-forms/i18n/i18n.module","ɵj":"./core/dynamic-forms/i18n/translate.extension","ɵk":"./core/dynamic-forms/i18n/translate.extension","ɵl":"./core/dynamic-forms/validation/validation.module","ɵm":"./core/dynamic-forms/validation/validation-config.factory","ɵn":"./core/dynamic-forms/dynamic-forms-ui-theme.module","ɵo":"./core/dynamic-forms/dynamic-forms-ui-theme.module","ɵp":"./core/dynamic-forms/dynamic-forms-ui-theme.module","ɵq":"./core/dynamic-forms/checkbox/checkbox.type.component","ɵr":"./core/dynamic-forms/array/array.type.component","ɵs":"./core/dynamic-forms/form-field/form-field.wrapper.component","ɵt":"./core/dynamic-forms/file/file.type.component","ɵu":"./core/dynamic-forms/input/input.type.component","ɵv":"./core/dynamic-forms/radio/radio.type.component","ɵw":"./core/dynamic-forms/object/object.type.component","ɵx":"./core/audit-log/audit-log.module","ɵy":"./core/audit-log/audit-log.component","ɵz":"./core/list-display-switch/list-display-switch.module","ɵba":"./core/list-display-switch/list-display-switch.component","ɵbb":"./core/router","ɵbc":"./core/navigator","ɵbd":"./core/tabs","ɵbe":"./core/provider-configuration/provider-configuration-tab.factory"},"importAs":"@c8y/ngx-components"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"ActionBarItem":{"__symbolic":"interface"},"ActionBarFactory":{"__symbolic":"interface"},"ActionBarItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"c8y-action-bar-item","template":"<ng-template #template>\n <li class=\"{{itemClass}}\">\n <ng-content></ng-content>\n </li>\n</ng-template>"}]}],"members":{"placement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"itemClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["template",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionBarService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ActionBarModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":23,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ActionBarComponent"},{"__symbolic":"reference","name":"ActionBarItemComponent"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":25,"character":12},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":25,"character":44},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":25,"character":60},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ActionBarComponent"},{"__symbolic":"reference","name":"ActionBarItemComponent"}]}]}],"members":{}},"HOOK_ACTION_BAR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":28,"character":35},"arguments":["ActionBarFactory"]},"ActionBarService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":48,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":59,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":59,"character":50}]}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ActionBarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-action-bar","host":{"class":"c8y-ui-action-bar"},"template":"<div class=\"navbar-header\">\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\" >\n <ul class=\"nav navbar-nav navbar-left\">\n <ng-container *ngFor=\"let item of getSortedItems('left')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"nav navbar-nav navbar-right\">\n <ng-container *ngFor=\"let item of getSortedItems('right')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n <li class=\"no-remove more-wrapper\" *ngIf=\"getSortedItems('more').length > 0\">\n <div class=\"dropdown\" dropdown>\n <button\n title=\"{{ 'More' | translate }}…\"\n class=\"dropdown-toggle c8y-dropdown d-flex\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span class=\"text-truncate\" translate>More…</span>\n <i [c8yIcon]=\"'caret-down'\"></i>\n </button>\n <ul class=\"dropdown-menu dropdown-menu-right\" *dropdownMenu>\n <ng-container *ngFor=\"let item of getSortedItems('more')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n </ul>\n <ul class=\"dropdown-menu visible-xs\"> \n <ng-container *ngFor=\"let item of getSortedItems('more')\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </ng-container>\n </ul>\n </div>\n </li>\n </ul>\n</div>\n"}]}],"members":{"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":18,"character":12},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":24,"character":12},"arguments":["class.has-tabs"]}]}],"isTabsHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":30,"character":12},"arguments":["class.horizontal-tabs"]}]}],"uiActionBar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":40,"character":3},"arguments":["class.c8y-ui-action-bar"]}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"hidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":50,"character":3}}]}],"getSortedItems":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"HOOK_ACTION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":31},"arguments":["ActionFactory"]},"ActionService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":21,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":29,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":29,"character":50}]}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ActionModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ActionOutletComponent"},{"__symbolic":"reference","name":"ActionComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":20,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":21,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ActionOutletComponent"},{"__symbolic":"reference","name":"ActionComponent"}]}]}],"members":{}},"ActionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-action","template":"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>"}]}],"members":{"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":["template",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"Action":{"__symbolic":"interface"},"ActionFactory":{"__symbolic":"interface"},"ActionOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-action-outlet","template":"<div class=\"dropdown\" dropdown *ngIf=\"items && items.length > 0\">\n <button\n type=\"button\"\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"true\">\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 getByPriority()\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n <li *ngIf=\"item.label\">\n <button title=\"{{ item.label | translate }}\" [attr.disabled]=\"item.disabled ? 'disabled' : null\" (click)=\"invoke(item)\">\n <i *ngIf=\"item.icon\" [c8yIcon]=\"item.icon\"></i>{{item.label | translate}}\n </button>\n </li>\n </ng-container>\n </ul>\n</div>\n"}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"getByPriority":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"AlertComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"c8y-alert","template":"<ng-template #text>\r\n <ng-content select=\"c8y-alert-text\"></ng-content>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n<ng-template #detailedData>\r\n <ng-content select=\"c8y-alert-details\"></ng-content>\r\n</ng-template>"}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"onDetail":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"detailedData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":31,"character":3},"arguments":["detailedData",{"static":false}]}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":35,"character":3},"arguments":["text",{"static":false}]}]}],"containDetailsComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"AlertDetailsComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AlertService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"AlertOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"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\" [innerText]=\"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 [innerText]=\"detailDisplayedAlert.contents | translate\"></code></pre>\n </div>\n </div>\n</div>\n"}]}],"members":{"isStatic":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":29,"character":3},"arguments":["class.static"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":40,"character":5},"arguments":["position"]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"AlertService"}]}],"getClass":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"showDetails":[{"__symbolic":"method"}],"hasDetails":[{"__symbolic":"method"}],"closeDetails":[{"__symbolic":"method"}],"isDetailsShow":[{"__symbolic":"method"}],"isTemplateRef":[{"__symbolic":"method"}],"template":[{"__symbolic":"method"}],"setDetailsContent":[{"__symbolic":"method"}]}},"Alert":{"__symbolic":"interface"},"AlertTextComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-alert-text","template":"<ng-content></ng-content>"}]}],"members":{}},"AlertDetailsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-alert-details","template":"<ng-content></ng-content>"}]}],"members":{}},"AlertService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"add":[{"__symbolic":"method"}],"addByText":[{"__symbolic":"method"}],"list":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"removeLastDanger":[{"__symbolic":"method"}],"saveSuccess":[{"__symbolic":"method"}],"createSuccess":[{"__symbolic":"method"}],"clearAll":[{"__symbolic":"method"}],"success":[{"__symbolic":"method"}],"danger":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"warning":[{"__symbolic":"method"}],"addServerFailure":[{"__symbolic":"method"}],"areSame":[{"__symbolic":"method"}],"changeAlerts":[{"__symbolic":"method"}],"addAlert":[{"__symbolic":"method"}],"hideAutomaticallyIfNeeded":[{"__symbolic":"method"}],"removeOldestIfMax":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"AlertModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"AlertOutletComponent"},{"__symbolic":"reference","name":"AlertComponent"},{"__symbolic":"reference","name":"AlertDetailsComponent"},{"__symbolic":"reference","name":"AlertTextComponent"}],"declarations":[{"__symbolic":"reference","name":"AlertOutletComponent"},{"__symbolic":"reference","name":"AlertComponent"},{"__symbolic":"reference","name":"AlertDetailsComponent"},{"__symbolic":"reference","name":"AlertTextComponent"}]}]}],"members":{}},"BootstrapComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-bootstrap","template":"<c8y-login *ngIf=\"!(ui.currentUser | async)\"></c8y-login>\n\n<div *ngIf=\"ui.currentUser | async\" [class.head-open]=\"headerService.headerOpen\">\n <c8y-header-bar #header></c8y-header-bar>\n <c8y-navigator-outlet\n [nodes]=\"navigator.items$ | async\"\n [open]=\"headerService.navigatorOpen$ | async\"\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 >\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$ | async\"\n >\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 <div class=\"container-fluid\">\n <router-outlet></router-outlet>\n <ng-content select=\"#c8y-legacy-view\"></ng-content>\n <!-- legacy ng-view, will not be migrated atm -->\n </div>\n </div>\n</div>\n<c8y-cookie-banner></c8y-cookie-banner>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"NavigatorService"},{"__symbolic":"reference","name":"ActionBarService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"HeaderService"}]}]}},"BootstrapModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"BootstrapComponent"},{"__symbolic":"reference","name":"CookieBannerComponent"},{"__symbolic":"reference","name":"ɵe"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":25,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"LoginModule"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":29,"character":4},{"__symbolic":"reference","name":"TabsModule"},{"__symbolic":"reference","name":"ActionBarModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","name":"NavigatorModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":34,"character":4},{"__symbolic":"reference","name":"ModalModule"}],"exports":[{"__symbolic":"reference","name":"BootstrapComponent"}],"entryComponents":[{"__symbolic":"reference","name":"BootstrapComponent"},{"__symbolic":"reference","name":"ɵe"}],"providers":[{"__symbolic":"reference","name":"ɵd"}]}]}],"members":{}},"CookieBannerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"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 </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-default btn-block\"\n (click)=\"onConfigurePreferences()\"\n [disabled]=\"shouldDisable\"\n >\n {{ 'Configure preferences' | translate }}\n </button>\n </div>\n <div class=\"col-sm-6 col-md-12\">\n <div class=\"p-b-16\"></div>\n <a\n class=\"btn btn-default btn-block\"\n href=\"{{ settings.policyUrl }}\"\n target=\"_blank\"\n *ngIf=\"settings.policyUrl\"\n >\n {{ 'Privacy policy' | translate }}\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":16,"character":28},{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"onConfigurePreferences":[{"__symbolic":"method"}],"acceptCookies":[{"__symbolic":"method"}],"shouldShowCookieBanner":[{"__symbolic":"method"}],"disableButtons":[{"__symbolic":"method"}],"setCookieBannerVisibility":[{"__symbolic":"method"}]}},"BreadcrumbOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"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 *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=\"{{ 'Collapse 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 *c8yOutlet=\"item.template\"></ng-container>\n <ng-container *ngIf=\"item.label\">\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 </li>\n </ng-container>\n </ul>\n</div>\n"}]}],"members":{"breadcrumbs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"normalizePath":[{"__symbolic":"method"}]}},"BreadcrumbComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-breadcrumb","template":"<ng-template>\n <ng-content></ng-content>\n</ng-template>"}]}],"members":{"contentChildItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":11,"character":3},"arguments":[{"__symbolic":"reference","name":"BreadcrumbItemComponent"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BreadcrumbService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"HOOK_BREADCRUMB":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":8,"character":35},"arguments":["BreadcrumbFactory"]},"BreadcrumbService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":19,"character":50}]}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"selectPreferredByPath":[{"__symbolic":"method"}],"sortByPreferredPath":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"BreadcrumbItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-breadcrumb-item","template":"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"translate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":["template",{"static":false}]}]}]}},"BreadcrumbItem":{"__symbolic":"interface"},"Breadcrumb":{"__symbolic":"interface"},"BreadcrumbFactory":{"__symbolic":"interface"},"BreadcrumbModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"BreadcrumbComponent"},{"__symbolic":"reference","name":"BreadcrumbItemComponent"},{"__symbolic":"reference","name":"BreadcrumbOutletComponent"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":22,"character":4},"member":"forChild"},"arguments":[[]]},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":24,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"BreadcrumbComponent"},{"__symbolic":"reference","name":"BreadcrumbItemComponent"},{"__symbolic":"reference","name":"BreadcrumbOutletComponent"}]}]}],"members":{}},"ApplicationOptions":{"__symbolic":"class","members":{}},"CookieBannerConfiguration":{"__symbolic":"interface"},"CookiePreferencesConfiguration":{"__symbolic":"interface"},"LoginExtraLink":{"__symbolic":"interface"},"Icon":{"__symbolic":"interface"},"Docs":{"__symbolic":"interface"},"Links":{"__symbolic":"interface"},"I18nExtra":{"__symbolic":"interface"},"I18nExtraLangCode":{"__symbolic":"interface"},"Languages":{"__symbolic":"interface"},"LanguagesLangCode":{"__symbolic":"interface"},"BrandingCssVars":{"__symbolic":"interface"},"initializeServices":{"__symbolic":"function"},"ICON_LIST":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":60,"character":29},"arguments":["iconList"]},"CommonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":79,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":80,"character":12},{"__symbolic":"reference","name":"I18nModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":80,"character":40}],"exports":[{"__symbolic":"reference","name":"IconDirective"},{"__symbolic":"reference","name":"OutletDirective"},{"__symbolic":"reference","name":"I18nModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":85,"character":4},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ShortenUserNamePipe"},{"__symbolic":"reference","name":"ForOfDirective"},{"__symbolic":"reference","name":"LoadMoreComponent"},{"__symbolic":"reference","name":"MapFunctionPipe"},{"__symbolic":"reference","name":"ProgressBarComponent"},{"__symbolic":"reference","name":"DatePipe"},{"__symbolic":"reference","name":"LoadingComponent"},{"__symbolic":"reference","name":"ɵb"}],"declarations":[{"__symbolic":"reference","name":"IconDirective"},{"__symbolic":"reference","name":"OutletDirective"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ShortenUserNamePipe"},{"__symbolic":"reference","name":"ForOfDirective"},{"__symbolic":"reference","name":"LoadMoreComponent"},{"__symbolic":"reference","name":"MapFunctionPipe"},{"__symbolic":"reference","name":"ProgressBarComponent"},{"__symbolic":"reference","name":"DatePipe"},{"__symbolic":"reference","name":"LoadingComponent"},{"__symbolic":"reference","name":"ɵb"}],"entryComponents":[{"__symbolic":"reference","name":"LoadMoreComponent"},{"__symbolic":"reference","name":"LoadingComponent"}]}]}],"members":{},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"DataModule","line":118,"character":9},"member":"providers"}}},{"provide":{"__symbolic":"reference","name":"HOOK_OPTIONS"},"useValue":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"window"},"member":"C8Y_APP"},"right":{}},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":122,"character":17},"useFactory":{"__symbolic":"reference","name":"initializeServices"},"deps":[{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"UserPreferencesService"}],"multi":true},{"provide":{"__symbolic":"reference","name":"ICON_LIST"},"useValue":{"__symbolic":"reference","name":"ICONS"},"multi":false},{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"I18nModule"},"member":"providers"}}},{"__symbolic":"reference","name":"UserPreferencesService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"Permissions"},{"__symbolic":"reference","name":"TenantUiService"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"ShortenUserNamePipe"},{"__symbolic":"reference","name":"MapFunctionPipe"},{"__symbolic":"reference","name":"DatePipe"},{"__symbolic":"reference","name":"ZipService"}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"CommonModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"CommonModule"},"member":"providers"}}}}}},"ES_MAX_TIME_MILLISECONDS":8640000000000000,"DatePipe":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":26,"character":30},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":25,"character":1},"arguments":[{"name":"c8yDate"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":27,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":27,"character":22}]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":27,"character":75}]}],"transform":[{"__symbolic":"method"}]}},"fromTrigger":{"__symbolic":"function","parameters":["router","refresh","factories"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"router"},"member":"events"},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"filter","line":7,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":7,"character":11,"module":"./core/common/extension-hooks"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"merge","line":8,"character":4},"arguments":[{"__symbolic":"reference","name":"refresh"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"startWith","line":9,"character":4},"arguments":[1]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"switchMap","line":10,"character":4},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":10,"character":14,"module":"./core/common/extension-hooks"}]}]}},"fromFactories":{"__symbolic":"function","parameters":["factories","router","withFirstEmpty"],"defaults":[null,null,true],"value":{"__symbolic":"if","condition":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Array"},"member":"isArray"},"arguments":[{"__symbolic":"reference","name":"factories"}]}},"right":{"__symbolic":"binop","operator":"<","left":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"factories"},"member":"length"},"right":1}},"thenExpression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"of","line":19,"character":6},"arguments":[[]]},"elseExpression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs","name":"defer","line":20,"character":6},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":20,"character":12,"module":"./core/common/extension-hooks"}]},"member":"pipe"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"rxjs/operators","name":"map","line":28,"character":14},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":28,"character":18,"module":"./core/common/extension-hooks"}]}]}}},"resolveInjectedFactories":{"__symbolic":"function","parameters":["factories"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"flatten","line":32,"character":9},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"factories"},"member":"map"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":32,"character":31,"module":"./core/common/extension-hooks"}]}]}},"stateToFactory":{"__symbolic":"function"},"sortByPriority":{"__symbolic":"function","parameters":["items"],"value":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"sortBy","line":41,"character":9},"arguments":[{"__symbolic":"reference","name":"items"},"priority"]}},"toObservableOfArrays":{"__symbolic":"function"},"isPromise":{"__symbolic":"function","parameters":["obj"],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"pre","operator":"!","operand":{"__symbolic":"reference","name":"obj"}}},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":61,"character":18,"module":"./core/common/extension-hooks"},"right":"function"}}},"toObservable":{"__symbolic":"function"},"ExtensionFactory":{"__symbolic":"interface"},"ExtensionPoint":{"__symbolic":"interface"},"getActivatedRoute":{"__symbolic":"function"},"ForOfDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":60,"character":1},"arguments":[{"selector":"[c8yFor]"}]}],"members":{"c8yForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3}}]}],"c8yForLoadMore":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":122,"character":3}}]}],"c8yForPipe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":130,"character":3}}]}],"c8yForNotFound":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":140,"character":3}}]}],"c8yForMaxIterations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"c8yForLoadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":159,"character":3}}]}],"c8yForLoadNextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":167,"character":3}}]}],"c8yForRealtime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":175,"character":3}}]}],"c8yForComparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":184,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":191,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":192,"character":38}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"handleRealtime":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}],"append":[{"__symbolic":"method"}],"loadMoreData":[{"__symbolic":"method"}],"createLoadMoreButtonComponent":[{"__symbolic":"method"}],"insert":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"forMatchingEmbeddedViewRef":[{"__symbolic":"method"}],"checkForDuplicates":[{"__symbolic":"method"}],"unsubscribePaging":[{"__symbolic":"method"}]}},"HumanizeAppNamePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":12,"character":1},"arguments":[{"name":"humanizeAppName"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":21,"character":40}]}],"transform":[{"__symbolic":"method"}],"getAppName":[{"__symbolic":"method"}],"getFirstDefined":[{"__symbolic":"method"}],"isPublicApp":[{"__symbolic":"method"}]}},"HumanizePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":8,"character":1},"arguments":[{"name":"humanize"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"IconDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"[c8yIcon]"}]}],"members":{"c8yIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":20,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":21,"character":22}]}],"isC8y":[{"__symbolic":"method"}],"getClasses":[{"__symbolic":"method"}],"updateIcon":[{"__symbolic":"method"}]}},"ICONS":["home","th","bar-chart-o","tasks","tachometer","bell","puzzle-piece","map-marker","location-arrow","globe","power-off","desktop","laptop","mobile","signal","qrcode","file","file-text","folder","folder-open","archive","ssd","book","bookmark","tag","flag","search","heart","star","bolt","cog","cogs","wrench","ban","user","users","sign-in","sign-out","upload","download","cloud-upload","cloud-download","cloud","hourglass","refresh","repeat","undo","lock","unlock","info","question-circle","exclamation-circle","bug","calendar","random","asterisk","key","link","chain-broken","external-link","picture-o","comment","bullhorn","phone","lightbulb-o","flask","cloud-network","exchange","code-fork","keyboard-o","terminal","code","clipboard","pencil","envelope","inbox","reply","share","thumbs-up","thumbs-down","check","plus","expand","compress","arrows","arrow-up","arrow-down","arrow-left","arrow-right","th-list","bars","table","columns","filter","sort","sort-up","sort-down","ellipsis-h","ellipsis-v","rss"],"LoadMoreComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"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…\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"}]}],"members":{"paging":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"useIntersection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"hidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"maxIterations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"noMoreDataHint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"loadingTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"hideNoMoreDataHint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"loadNextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"loadingLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"onLoad":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"hostClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":49,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":60,"character":31}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"loadMore":[{"__symbolic":"method"}],"intersectionLoading":[{"__symbolic":"method"}],"getLoadingThreshold":[{"__symbolic":"method"}],"shouldShowNoMoreDataHint":[{"__symbolic":"method"}],"shouldSwitchMode":[{"__symbolic":"method"}],"buttonInView":[{"__symbolic":"method"}]}},"LoadMoreMode":{"__symbolic":"interface"},"LoadingComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-loading","template":"\n <div class=\"p-24 p-relative d-inline-block\" >\n <div class=\"spinner\">\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 "}]}],"members":{}},"MapFunctionPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"map"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"memoize":{"__symbolic":"function","parameters":["resolver"],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":9,"module":"./core/common/memoize.decorator"}},"throttle":{"__symbolic":"function","parameters":["wait","options"],"value":{"__symbolic":"error","message":"Lambda not supported","line":9,"character":9,"module":"./core/common/throttle.decorator"}},"HOOK_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":32},"arguments":["App options"]},"OptionsService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ApplicationOptions"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":17},"arguments":[{"__symbolic":"reference","name":"HOOK_OPTIONS"}]}],null,null],"parameters":[null,{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"SystemOptionsService","line":17,"character":34},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"TenantOptionsService","line":18,"character":33}]}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"getSupportUrl":[{"__symbolic":"method"}],"getActivateSupportUser":[{"__symbolic":"method"}],"getSystemOption":[{"__symbolic":"method"}],"getTenantOption":[{"__symbolic":"method"}],"setupOptions":[{"__symbolic":"method"}],"getOptionFromService":[{"__symbolic":"method"}],"parseOptionRawValue":[{"__symbolic":"method"}]}},"OutletDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":20,"character":1},"arguments":[{"selector":"[c8yOutlet]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":28,"character":27},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":29,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":30,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":31,"character":16}]}],"c8yOutlet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"c8yOutletProperties":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"ngOnDestroy":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"Permissions":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":11,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":12,"character":18}]}],"canEdit":[{"__symbolic":"method"}],"hasRole":[{"__symbolic":"method"}],"hasAllRoles":[{"__symbolic":"method"}],"hasAnyRole":[{"__symbolic":"method"}],"checkIfOwner":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"memoize"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"property","line":50,"character":11},"arguments":["id"]}]}]}],"checkWithRequest":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"memoize"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"lodash-es","name":"property","line":57,"character":11},"arguments":["id"]}]}]}],"checkIfCanEdit":[{"__symbolic":"method"}]}},"ProgressBarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-progress-bar","template":"<div>\n <p *ngIf=\"message\">\n {{ message | translate }}\n </p>\n <div class=\"progress progress-striped active\" *ngIf=\"progress !== null\">\n <div\n class=\"progress-bar\"\n role=\"progressbar\"\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 p-relative\" *ngIf=\"progress === null\">\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"}]}],"members":{"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"progress":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}]}},"ShortenUserNamePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"shortenUserName"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"StateService":{"__symbolic":"class","members":{"map":[{"__symbolic":"method"}],"emitNewState":[{"__symbolic":"method"}]}},"Status":{"SUCCESS":"success","WARNING":"warning","DANGER":"danger","INFO":"info"},"StatusType":{"__symbolic":"interface"},"statusIcons":{"__symbolic":"error","message":"Expression form not supported","line":12,"character":2,"module":"./core/common/status.model"},"statusClasses":{"__symbolic":"error","message":"Expression form not supported","line":19,"character":2,"module":"./core/common/status.model"},"statusAlert":{"__symbolic":"error","message":"Expression form not supported","line":26,"character":2,"module":"./core/common/status.model"},"operationStatusIcons":{"__symbolic":"error","message":"Expression form not supported","line":33,"character":2,"module":"./core/common/status.model"},"operationStatusClasses":{"__symbolic":"error","message":"Expression form not supported","line":40,"character":2,"module":"./core/common/status.model"},"TenantUiService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":7,"character":27},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":8,"character":32}]}],"isManagementTenant":[{"__symbolic":"method"}],"isEnterpriseTenant":[{"__symbolic":"method"}],"hasApp":[{"__symbolic":"method"}]}},"AppStateService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":40,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":41,"character":23},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":43,"character":25},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":44,"character":39}]}],"assignApplicationKeyToDefaultHeaders":[{"__symbolic":"method"}],"getLangs":[{"__symbolic":"method"}],"loadManifest":[{"__symbolic":"method"}],"refreshLoginOptions":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"throttle"},"arguments":[600,{"trailing":false}]}]}],"isApplicationAvailable":[{"__symbolic":"method"}],"setUser":[{"__symbolic":"method"}],"getCurrentContextPath":[{"__symbolic":"method"}],"loadDefaultOptions":[{"__symbolic":"method"}],"showIncompatibleVersionsError":[{"__symbolic":"method"}]}},"UserPreferencesStorageLocal":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"saveJsonStore":[{"__symbolic":"method"}]}},"UserPreferencesStorageInventory":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":6,"character":23}]}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}]}},"UserPreferencesService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":18,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":19,"character":23},{"__symbolic":"reference","name":"AppStateService"}]}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"getForUser":[{"__symbolic":"method"}],"setForUser":[{"__symbolic":"method"}],"getRawKey":[{"__symbolic":"method"}],"getStorage":[{"__symbolic":"method"}]}},"ZipService":{"__symbolic":"class","members":{"getEntries":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getJsonData":[{"__symbolic":"method"}]}},"ZipEntry":{"__symbolic":"interface"},"retryWithDelay":{"__symbolic":"function","parameters":["delayTime","count"],"defaults":[null,1],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":11,"module":"./core/common/retry-with-delay.operator"}},"HeaderModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":24,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TitleComponent"},{"__symbolic":"reference","name":"HeaderBarComponent"},{"__symbolic":"reference","name":"TitleOutletComponent"},{"__symbolic":"reference","name":"AppIconComponent"},{"__symbolic":"reference","name":"AppSwitcherComponent"},{"__symbolic":"reference","name":"RightDrawerComponent"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":34,"character":4},{"__symbolic":"reference","name":"UserModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ActionModule"},{"__symbolic":"reference","name":"BreadcrumbModule"},{"__symbolic":"reference","name":"NavigatorModule"},{"__symbolic":"reference","name":"ProductExperienceModule"}],"exports":[{"__symbolic":"reference","name":"HeaderBarComponent"},{"__symbolic":"reference","name":"TitleComponent"},{"__symbolic":"reference","name":"TitleOutletComponent"},{"__symbolic":"reference","name":"AppIconComponent"},{"__symbolic":"reference","name":"AppSwitcherComponent"},{"__symbolic":"reference","name":"RightDrawerComponent"}]}]}],"members":{}},"HeaderService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"ɵc"}]}],"toggle":[{"__symbolic":"method"}],"toggleNavigator":[{"__symbolic":"method"}],"closeNavigator":[{"__symbolic":"method"}],"configNavigator":[{"__symbolic":"method"}],"changeTitle":[{"__symbolic":"method"}],"changePageTitle":[{"__symbolic":"method"}],"verifyIfNavOpen":[{"__symbolic":"method"}],"shouldShowBreadcrumbs":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"Header":{"__symbolic":"interface"},"RightDrawerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-right-drawer","template":"<div class=\"c8y-right-drawer\">\n <div class=\"summary\">\n <h4 class=\"text-light\">\n {{ 'Welcome to' | translate }} {{ app | humanizeAppName | async }}\n </h4>\n </div>\n\n <div *ngIf=\"quickLinks.length\">\n <div class=\"legend form-block\" translate>Quick links</div>\n <div class=\"quick-links-drawer\">\n <ng-container *ngFor=\"let quickLink of quickLinks\">\n <a\n class=\"quick-link\"\n [href]=\"quickLink.url || '#'\"\n (click)=\"quickLink.click && $event.preventDefault(); quickLink.click();\"\n >\n <h2 *ngIf=\"quickLink.icon\"><i class=\"{{ quickLink.icon }}\"></i></h2>\n <img\n *ngIf=\"quickLink.iconSrc\"\n [src]=\"quickLink.iconSrc\"\n style=\"max-width:50px;\"\n class=\"img-responsive center-block\"\n onerror=\"this.style.display = 'none'\">\n {{ quickLink.label | translate }}\n </a>\n </ng-container>\n </div>\n </div>\n\n <div *ngIf=\"helpAndSupport.length\">\n <div class=\"legend form-block m-t-24\" translate>Help & support</div>\n <div class=\"help-support\" *ngFor=\"let link of helpAndSupport\">\n <a\n class=\"help-and-support-link text-truncate\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n [href]=\"link.url\"\n >\n <i [c8yIcon]=\"link.icon\"></i>\n <span title=\"{{ link.label | translate }}\" class=\"d-inline\">\n {{ link.label | translate }}\n </span>\n </a>\n </div>\n </div>\n</div>\n"}]}],"members":{"_quickLinks":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3},"arguments":["quickLinks"]}]}],"_helpAndSupport":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3},"arguments":["helpAndSupport"]}]}],"app":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}]}},"TitleOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-title-outlet","template":"<div class=\"c8y-ui-title\">\n <div class=\"title\" *c8yOutlet=\"title\"></div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":14,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":15,"character":18}]}]}},"TitleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-title","template":"<ng-template #template>\n <h1 class=\"text-truncate\">\n <ng-content></ng-content>\n </h1>\n</ng-template>\n\n"}]}],"members":{"pageTitleUpdate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":9,"character":3},"arguments":["template",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"HeaderBarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-header-bar","template":"<div\n class=\"app-main-header\"\n [ngClass]=\"{\n open: headerService.navigatorOpen$ | async,\n drawerOpen: drawerOpen\n }\"\n>\n <div class=\"header-bar\">\n <button\n *ngIf=\"canToggle$ | async\"\n type=\"button\"\n class=\"navigator-toggle main-header-button\"\n title=\"{{ 'Toggle navigator' | translate }}\"\n (click)=\"headerService.toggleNavigator()\"\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 [breadcrumbs]=\"breadcrumbService.items$ | async\"\n class=\"app-breadcrumbs\"\n ></c8y-breadcrumb-outlet>\n </span>\n </div>\n <c8y-search-outlet\n title=\"{{ 'Search' | translate }}\"\n [search]=\"searchService.items$ | async\"\n class=\"main-header-item\"\n ></c8y-search-outlet>\n <c8y-action-outlet\n title=\"{{ 'Add' | translate }}\"\n [items]=\"actionService.items$ | async\"\n class=\"main-header-item\"\n ></c8y-action-outlet>\n <c8y-app-switcher\n title=\"{{ 'Application switcher' | translate }}\"\n class=\"main-header-item\"\n ></c8y-app-switcher>\n <c8y-user-menu-outlet\n [items]=\"(userMenuService.state$ | async).userMenuItems\"\n class=\"main-header-item\"\n ></c8y-user-menu-outlet>\n\n <button\n title=\"{{ 'Toggle side drawer' | translate }}\"\n class=\"drawer-toggle main-header-button\"\n *ngIf=\"(appState$ | async).showRightDrawer\"\n (click)=\"drawerOpen = !drawerOpen\"\n >\n <i [c8yIcon]=\"'indent'\" *ngIf=\"drawerOpen\"></i>\n <i [c8yIcon]=\"'dedent'\" *ngIf=\"!drawerOpen\"></i>\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 *ngIf=\"(appState$ | async).showRightDrawer\"\n [app]=\"(appState$ | async).app\"\n [quickLinks]=\"docs.items$ | async\"\n [helpAndSupport]=\"docs.items$ | async\"\n >\n </c8y-right-drawer>\n <div class=\"loading-bar\" [ngClass]=\"{ active: (appState$ | async).isLoading }\"></div>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"},{"__symbolic":"reference","name":"ActionService"},{"__symbolic":"reference","name":"BreadcrumbService"},{"__symbolic":"reference","name":"SearchService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"UserMenuService"},{"__symbolic":"reference","name":"DocsService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}]}},"AppSwitcherComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-app-switcher","template":"<div class=\"app-switcher-dropdown\" dropdown>\n <button\n class=\"main-header-button c8y-dropdown dropdown-toggle\"\n id=\"appSwitcherDropdown\"\n dropdownToggle\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 >\n <div class=\"app-switcher-sagcloud\" *ngIf=\"oneCloudApps && oneCloudApps.length > 0\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n *ngFor=\"let app of oneCloudApps\"\n [href]=\"getHref(app)\"\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 class=\"app-switcher\">\n <a\n title=\"{{ app.name | humanizeAppName | async }}\"\n class=\"appLink\"\n [ngClass]=\"isActive(app) ? 'active' : ''\"\n *ngFor=\"let app of apps\"\n [href]=\"getHref(app)\"\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"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":19,"character":65}]}],"isActive":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"listAppsForUser":[{"__symbolic":"method"}],"filterApps":[{"__symbolic":"method"}],"filterVisible":[{"__symbolic":"method"}],"filterCloud":[{"__symbolic":"method"}],"filterDuplicates":[{"__symbolic":"method"}],"orderApps":[{"__symbolic":"method"}]}},"AppIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"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"}]}],"members":{"contextPath":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"app":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OptionsService"}]}],"ngOnInit":[{"__symbolic":"method"}],"findStaticIcon":[{"__symbolic":"method"}],"iconFromAppDefinition":[{"__symbolic":"method"}],"iconUrlFromAppDefinition":[{"__symbolic":"method"}],"mapFontAwesomeToDelightIcons":[{"__symbolic":"method"}]}},"PatternMessagesService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":23,"character":5},"arguments":[{"__symbolic":"reference","name":"HOOK_PATTERN_MESSAGES"}]}]],"parameters":[null]}],"translate":[{"__symbolic":"method"}],"translateWithPatterns":[{"__symbolic":"method"}],"translateWithParams":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"translateLoaderFactory":{"__symbolic":"function","parameters":["httpClient","optionsService","cachedLocaleDictionaryService","localePath","languages"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TranslateCustomLoader"},"arguments":[{"__symbolic":"reference","name":"httpClient"},{"__symbolic":"reference","name":"optionsService"},{"__symbolic":"reference","name":"cachedLocaleDictionaryService"},{"__symbolic":"reference","name":"localePath"},{"__symbolic":"reference","name":"languages"}]}},"localePathFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"localePath"}},"languagesFactory":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"languages"}},"localeId":{"__symbolic":"function","parameters":["appStateService"],"value":{}},"getAngularLocalesLanguageString":{"__symbolic":"function","parameters":["language"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"index","expression":{"en":"en-GB","en-EN":"en-GB","$quoted$":["en-EN"]},"index":{"__symbolic":"reference","name":"language"}},"right":{"__symbolic":"reference","name":"language"}}},"I18nModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":83,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"C8yTranslateModule"}],"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":85,"character":12}]}]}],"members":{},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":90,"character":17},"useFactory":{"__symbolic":"reference","name":"localeId"},"deps":[{"__symbolic":"reference","name":"AppStateService"}]},{"provide":{"__symbolic":"reference","name":"HOOK_PATTERN_MESSAGES"},"useValue":{"__symbolic":"reference","name":"MESSAGES"},"multi":true},{"provide":{"__symbolic":"reference","name":"LOCALE_PATH"},"useFactory":{"__symbolic":"reference","name":"localePathFactory"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","name":"LANGUAGES"},"useFactory":{"__symbolic":"reference","name":"languagesFactory"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateLoader","line":97,"character":17},"useFactory":{"__symbolic":"reference","name":"translateLoaderFactory"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":99,"character":15},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"CachedLocaleDictionaryService"},{"__symbolic":"reference","name":"LOCALE_PATH"},{"__symbolic":"reference","name":"LANGUAGES"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateCompiler","line":101,"character":17},"useClass":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateFakeCompiler","line":101,"character":46}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":102,"character":17},"useClass":{"__symbolic":"reference","name":"TranslateParserCustom"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"MissingTranslationHandler","line":103,"character":17},"useClass":{"__symbolic":"reference","name":"MissingTranslationCustomHandler"}},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateStore","line":104,"character":6},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":105,"character":6},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_STORE","line":106,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_DEFAULT_LANG","line":107,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_EXTEND","line":108,"character":17},"useValue":false},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"DEFAULT_LANGUAGE","line":109,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"I18nModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"I18nModule"},"member":"providers"}}}}}},"LANGUAGES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["Languages"]},"parse":{"__symbolic":"function"},"TranslateParserCustom":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateDefaultParser","line":6,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1}}],"members":{"getValue":[{"__symbolic":"method"}]}},"LOCALE_PATH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":31},"arguments":["Locale path"]},"loadLocale":{"__symbolic":"function","parameters":["moduleLang"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Promise"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":7,"character":21,"module":"./core/i18n/load-locale"}]}},"MissingTranslationCustomHandler":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":15,"character":20},{"__symbolic":"reference","name":"PatternMessagesService"}]}],"handle":[{"__symbolic":"method"}],"getFromCache":[{"__symbolic":"method"}],"addToCache":[{"__symbolic":"method"}],"getCacheKey":[{"__symbolic":"method"}],"getPatternMessageTranslation":[{"__symbolic":"method"}]}},"TranslateService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":24,"character":26},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"OptionsService"}]}],"switchToLanguage":[{"__symbolic":"method"}],"loadLocales":[{"__symbolic":"method"}],"setLanguage":[{"__symbolic":"method"}],"firstSupportedLanguage":[{"__symbolic":"method"}],"convertToLanguageCodePO":[{"__symbolic":"method"}],"getNativeLanguage":[{"__symbolic":"method"}],"saveInLocalStorage":[{"__symbolic":"method"}],"getSupported":[{"__symbolic":"method"}],"queryStringLang":[{"__symbolic":"method"}],"getLessSpecific":[{"__symbolic":"method"}],"localStorageLang":[{"__symbolic":"method"}],"browserLangs":[{"__symbolic":"method"}],"getQueryParameter":[{"__symbolic":"method"}]},"statics":{"SAVE_LANGUAGE_KEY":"c8y_language","defaultLang":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"window"},"member":"localStorage"},"member":"getItem"},"arguments":[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"TranslateService"},"member":"SAVE_LANGUAGE_KEY"}]}},"ɵprov":{}}},"_":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":17,"module":"./core/i18n/gettext"},"gettext":{"__symbolic":"function","parameters":["str"],"value":{"__symbolic":"reference","name":"str"}},"MESSAGES":{"^Access is denied$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Access denied."]}},"^Alarm created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Alarm created"]}},"^Alarm updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Alarm updated"]}},"^API is not available with the new domain$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not activate custom domain. DNS setup is incorrect."]}},"^Application with given name already exist$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Application with given name already exists."]}},"^Application with id (.+?) is already assigned to the tenant (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["This application is already assigned to tenant \"{{tenant}}\"."]},"placeholders":{"tenant":"$2"}},"^Apply software changes: (.+?)\\.?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Apply software changes: {{ softwareChanges }}"]},"placeholders":{"softwareChanges":{"capture":"$1","translate":{"install \"(.+?)\" \\(version: (.+?)\\)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["install \"{{ softwareName }}\" (version: {{ softwareVersion }})"]},"placeholders":{"softwareName":"$1","softwareVersion":"$2"}},"install \"([^\"]+)\"(?! \\(version: .+?\\))":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["install \"{{ softwareName }}\""]},"placeholders":{"softwareName":"$1"}},"delete \"(.+?)\" \\(version: (.+?)\\)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["delete \"{{ softwareName }}\" (version: {{ softwareVersion }})"]},"placeholders":{"softwareName":"$1","softwareVersion":"$2"}},"delete \"([^\"]+)\"(?! \\(version: .+?\\))":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["delete \"{{ softwareName }}\""]},"placeholders":{"softwareName":"$1"}},"$quoted$":["install \"(.+?)\" \\(version: (.+?)\\)","install \"([^\"]+)\"(?! \\(version: .+?\\))","delete \"(.+?)\" \\(version: (.+?)\\)","delete \"([^\"]+)\"(?! \\(version: .+?\\))"]}}}},"^Assign device profile (.+?) to device (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Assign device profile {{profileName}} to device {{deviceName}}"]},"placeholders":{"profileName":"$1","deviceName":"$2"}},"^(.+)pplication for tenant (.+) with properties \\( (.+?) \\) already exists$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Application for tenant \"{{tenant}}\" with the following values ({{valuesList}}) already exists."]},"placeholders":{"tenant":"$2","valuesList":"$3"}},"^Authentication failed! : User account is locked$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Authentication failed due to: user account is locked."]}},"^Availability monitoring record$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Availability monitoring record"]}},"^Can not activate a certificate which is either expired or not yet valid$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot activate a certificate which is either expired or not yet valid."]}},"^Cannot add certificate - certificate with (.+?) fingerprint already exists. : Certificate with (.+?) fingerprint already exists.":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not add certificate. Certificate with {{fingerprint}} fingerprint already exists."]},"placeholders":{"fingerprint":"$1"}},"^Cannot change password. : Provided token does not exist.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot change password: provided token is invalid."]}},"^Cannot deploy module (.*)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot deploy module due to error: \"{{ errorMessage | translate }}\"."]},"placeholders":{"errorMessage":"$1"}},"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}."]},"placeholders":{"moduleName":"$1","expression":"$3","incorrectExpression":"$4","line":"$5","column":"$6"}},"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}} near reserved keyword \"{{keyword}}\"."]},"placeholders":{"moduleName":"$1","expression":"$3","incorrectExpression":"$4","line":"$5","column":"$6","keyword":"$7"}},"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+), please check the where clause \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}, check \"where\" clause."]},"placeholders":{"moduleName":"$1","expression":"$3","incorrectExpression":"$4","line":"$5","column":"$6"}},"^Cannot deploy module (.+?)! : Deployment failed in module '(.+?)' in expression '(.+?)' : Exception compiling script '(.+?)' of dialect '(.+?)': missing (.+?) before statement \\((.+?)\\) \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": exception compiling script \"{{scriptName}}\" of dialect \"{{scriptDialect}}\": missing \"{{missingSyntax}}\" before statement \"{{affectedStatement}}\"."]},"placeholders":{"moduleName":"$1","expression":"$3","scriptName":"$4","scriptDialect":"$5","missingSyntax":"$6","affectedStatement":"$7"}},"^Cannot execute bulk operation on empty group. Group with id='(\\d+?)' doesn't have child assets.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets."]},"placeholders":{"groupId":"$1"}},"^Cannot execute bulk operation on empty group. DynamicGroup with id='(\\d+?)' doesn't have child assets$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not execute bulk operation on an empty group. Smart group with ID \"{{groupId}}\" has no child assets."]},"placeholders":{"groupId":"$1"}},"^Cannot parse X509 certificate. : Could not parse certificate: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not parse X.509 certificate: {{ failureReason | translate }}."]},"placeholders":{"failureReason":"$1"}},"^Cannot reschedule bulk operation. All its operations are successful$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot reschedule bulk operation. All its operations are already successful."]}},"^Cannot reset user password : Cannot find user with such email.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot reset password for user with such email: email not found."]}},"^Cannot update/delete application binary via this endpoint$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot update/delete application binary via this endpoint"]}},"^Can't delete user because it is used by another managed object$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cannot delete device with associated device owner because this owner is still assigned to other device(s). Try to remove only the device."]}},"^Cep module created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module created"]}},"^Cep module updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module updated"]}},"^Cep module deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module deleted"]}},"^Cep module \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module \"{{name}}\" created"]},"placeholders":{"name":"$1"}},"^Cep module \"(.+?)\" updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module \"{{name}}\" updated"]},"placeholders":{"name":"$1"}},"^Cep module \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["CEP module \"{{name}}\" deleted"]},"placeholders":{"name":"$1"}},"^Command state is invalid: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Command state is invalid: {{violations}}"]},"placeholders":{"violations":{"capture":"$1","translate":{"(\\w+?) - may not be null":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" must not be null"]},"placeholders":{"field":"$1"}},"$quoted$":["(\\w+?) - may not be null"]}}}},"^Could not connect to endpoint (.+)\\. Could not verify `(.+)` host key with fingerprint `(.+)` for `(.+)` on port (.+)\\. If you expected that key, please remove the previous one from configuration to allow for connection\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not connect to endpoint \"{{endpointName}}\". Could not verify {{keyType}} host key with fingerprint {{fingerprint}} for host {{host}} on port {{port}}. If you expected this key, please remove the previous one from configuration to allow for connection."]},"placeholders":{"endpointName":"$1","keyType":"$2","fingerprint":"$3","host":"$4","port":"$5"}},"^Could not login to ssh server on endpoint \"(.+)\"\\. Provided credential for user \"(.+)\" is incorrect\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not access SSH server on endpoint \"{{endpointName}}\". Provided credentials for user \"{{userName}}\" are incorrect."]},"placeholders":{"endpointName":"$1","userName":"$2"}},"^Could not save object remoteAccessUpdate: (.+)$":{"gettext":"{{errorMessages}}","placeholders":{"errorMessages":{"capture":"$1","translate":{"Could not recognize host-key format":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not recognize \"Host key\" format"]}},"Could not recognize key-pair format":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not recognize the format of \"Public key\" or \"Private key\""]}},"$quoted$":["Could not recognize host-key format","Could not recognize key-pair format"]}}}},"^Could not update user. : Error persisting user (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not update user \"{{username}}\"."]},"placeholders":{"username":"$1"}},"ˆCreate bulk operation$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Create bulk operation"]}},"^Create bulk operation: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Create bulk operation: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"generalStatus='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["general status: \"{{ generalStatus | translate }}\""]},"placeholders":{"generalStatus":"$1"}},"progress='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["progress: \"{{ progress }}\""]},"placeholders":{"progress":"$1"}},"note=(.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["note: \"{{ note }}\""]},"placeholders":{"note":"$1"}},"$quoted$":["status='(.+?)'","generalStatus='(.+?)'","progress='(.+?)'","note=(.+?)"]}}}},"^Creation ramp must be greater than (\\d+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Bulk operation delay must be greater than {{minSeconds}} seconds."]},"placeholders":{"minSeconds":"$1"}},"^Created container$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Container created."]}},"^Created pod: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod \"{{imageName}}\" created."]},"placeholders":{"imageName":"$1"}},"^CSV file contained empty dataset$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No entries found in uploaded CSV file."]}},"^Cycle detected for route (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Cycle detected for route {{route}}."]},"placeholders":{"route":"$1"}},"^Data broker processing is currently overloaded and may stop forwarding your data\\. Please contact support\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Data broker processing is currently overloaded and may stop forwarding your data. Please contact support."]}},"^Data broker processing is not able to connect do destination tenant, thus data forwarding is not working\\. Please contact support\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Data broker processing is not able to connect to destination tenant, thus data forwarding is not working. Please contact support."]}},"^Delete bulk operation$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Delete bulk operation"]}},"^Delete bulk operation: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Delete bulk operation: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"generalStatus='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["general status: \"{{ generalStatus | translate }}\""]},"placeholders":{"generalStatus":"$1"}},"progress='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["progress: \"{{ progress }}\""]},"placeholders":{"progress":"$1"}},"note=(.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["note: \"{{ note }}\""]},"placeholders":{"note":"$1"}},"$quoted$":["status='(.+?)'","generalStatus='(.+?)'","progress='(.+?)'","note=(.+?)"]}}}},"^Device id '(.+?)' contains '(.+?)' character which is not permitted.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["ID \"{{deviceId}}\" contains invalid character: \"{{invalidCharacter}}\"."]},"placeholders":{"deviceId":"$1","invalidCharacter":"$2"}},"^Device name: '(.+?)', alarm text: '(.+?)'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device name: \"{{deviceName}}\", alarm text: \"{{alarmText | translate}}\""]},"placeholders":{"deviceName":"$1","alarmText":"$2"}},"^Display name$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Login alias"]}},"^Domain name in uploaded certificate differs from the one in use$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Domain name in uploaded certificate differs from the one in use. Please deactivate the custom domain before uploading new certificate."]}},"^Domain name is already in use by another tenant!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Domain name is already used by another tenant."]}},"^Duplicated connector for instanceUrl (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Target URL {{targetUrl}} already used by another connector."]},"placeholders":{"targetUrl":"$1"}},"^Duplicated connector for name (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Connector name \"{{name}}\" already used by another connector."]},"placeholders":{"name":"$1"}},"^Entry is outside of the target dir: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["File entry outside of the target directory: \"{{path}}\"."]},"placeholders":{"path":"$1"}},"^Error during password validation. : Password must have at least (\\d+?) characters and no more than (\\d+?) and must contain only Latin1 characters.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Password is invalid. It must have at least {{minCharactersCount}} and no more than {{maxCharactersCount}} characters."]},"placeholders":{"minCharactersCount":"$1","maxCharactersCount":"$2"}},"^Error during password validation. : Your password has been used already. Choose another.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["This password has already been used earlier. Use a different one."]}},"^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Error in statement {{moduleName}}:{{statementNumber}}. Incorrect syntax near expression \"{{expression}}\" near reserved keyword \"{{keyword}}\"."]},"placeholders":{"moduleName":"$1","statementNumber":"$2","expression":"$3","keyword":"$4"}},"^External id not found; external id = ID \\[type=(.+?), value=(.+?)\\]$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["External ID not found for type \"{{type}}\" and value \"{{value}}\"."]},"placeholders":{"type":"$1","value":"$2"}},"^Error occurred when trying to find an Application for id ID (.+) : Could not find application by ID (\\d+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not find application by ID {{applicationId}}."]},"placeholders":{"applicationId":"$2"}},"^Http status code: 404\n{error=\"options/Not Found\",message=\"Unable to find option by given key: sigfox-agent/provider.token\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"}":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Unable to find option by given key: sigfox-agent/provider.token"]}},"^Failed to delete application. : Cannot remove application assigned to other tenants.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not delete application assigned to other tenants."]}},"^Failed to extract certificate from PKCS12$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Failed to extract certificate from PKCS12."]}},"^Failed to update domain at the platform$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Failed to update domain at the platform."]}},"^Finding device data from database failed : No managedObject for id '(.+?)'!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not find managed object with ID \"{{deviceId}}\"."]},"placeholders":{"deviceId":"$1"}},"^Following mandatory fields should be included: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Following mandatory fields should be included: {{fields}}"]},"placeholders":{"fields":"$1"}},"^Global Role updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global role updated"]}},"^Global Role (.+?) updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global role \"{{name}}\" updated"]},"placeholders":{"name":"$1"}},"^Global Role (.+?) updated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global role \"{{name}}\" updated: {{updatesList}}"]},"placeholders":{"name":"$1","updatesList":{"capture":"$2","translate":{"applications \\[([^\\]]+?)\\] added":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications {{list}} added"]},"placeholders":{"list":"$1"}},"applications \\[([^\\]]+?)\\] removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications {{list}} removed"]},"placeholders":{"list":"$1"}},"roles \\[([^\\]]+?)\\] added":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["roles {{list}} added"]},"placeholders":{"list":"$1"}},"roles \\[([^\\]]+?)\\] removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["roles {{list}} removed"]},"placeholders":{"list":"$1"}},"$quoted$":["applications \\[([^\\]]+?)\\] added","applications \\[([^\\]]+?)\\] removed","roles \\[([^\\]]+?)\\] added","roles \\[([^\\]]+?)\\] removed"]}}}},"^Global Roles$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Global roles"]}},"^Operation updated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation updated: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"description='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["description: \"{{ description | translate }}\""]},"placeholders":{"description":"$1"}},"device name='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["device name: \"{{ deviceName }}\""]},"placeholders":{"deviceName":"$1"}},"failure reason='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["failure reason: \"{{ failureReason | translate }}\""]},"placeholders":{"failureReason":"$1"}},"$quoted$":["status='(.+?)'","description='(.+?)'","device name='(.+?)'","failure reason='(.+?)'"]}}}},"^ID \\[type=(.+?), value=(.+?)\\] was already bound to different Global ID.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["External ID \"{{value}}\" of the type \"{{type}}\" already exists."]},"placeholders":{"type":"$1","value":"$2"}},"^Invalid credentials! : Bad credentials$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Invalid credentials."]}},"^Invalid credentials! : No phone number provided$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Log into the management tenant first and enter your phone number."]}},"^Inventory Role removed$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role removed"]}},"^Inventory Role (.+?) removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role \"{{name}}\" deleted."]},"placeholders":{"name":"$1"}},"^Inventory Role updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role updated"]}},"^Inventory Role (.+?) updated":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Inventory role \"{{name}}\" updated."]},"placeholders":{"name":"$1"}},"^I/O error: Connection refused; nested exception is Connection refused : Connection refused":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Connection refused"]}},"^I/O error: Read timed out; nested exception is Read timed out : Read timed out":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Read timed out"]}},"^Log file requested$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Log file requested."]}},"^Managed object deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Managed object deleted"]}},"^Managed object \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Managed object \"{{name}}\" deleted"]},"placeholders":{"name":"$1"}},"^Maximum file size exceeded$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Maximum file size exceeded."]}},"^Message with ID (.+?) doesn't exist in smart rest template (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Message with ID \"{{messageId}}\" doesn't exist in SmartREST template with ID \"{{templateId}}\""]},"placeholders":{"messageId":"$1","templateId":"$2"}},"^NewDeviceRequest for id = (.+?) already exists.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device registration request with ID {{id}} already exists."]},"placeholders":{"id":"$1"}},"^No communication with device since (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No communication with device since {{timestamp | absoluteDate}}."]},"placeholders":{"timestamp":"$1"}},"^No data received from device within required interval.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No data received from device within required interval."]}},"^No LoRa provider settings are found. Please configure the connectivity settings.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No LoRa provider settings are found. Please configure the connectivity settings."]}},"^Not within any context!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["A problem occurred with microservice subscription."]}},"^Maximum age cannot be bigger than 10 years.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Maximum age cannot be bigger than 10 years."]}},"^Microservice application name incorrect. Please use only lower-case letters, digits and dashes. Maximum length is (\\d+) characters.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Microservice application name is incorrect: only lower case letters, digits and dashes allowed. Maximum length: {{maxLength}}."]},"placeholders":{"maxLength":"$1"}},"^Microservice not available.*$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Microservice is not available."]}},"^Operation created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation created."]}},"^Operation updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation updated."]}},"^Operation created: status='(.+?)'.":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation created: status: \"{{ status | translate }}\"."]},"placeholders":{"status":"$1"}},"^Option created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option created."]}},"^Option \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option \"{{option}}\" created."]},"placeholders":{"option":"$1"}},"^Option deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option deleted."]}},"^Option \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Option \"{{option}}\" deleted."]},"placeholders":{"option":"$1"}},"^Owner field error. : Cannot introduce cyclic dependency.":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not introduce cyclic ownership dependency."]}},"^Password change is temporary blocked.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Password change is temporarily blocked."]}},"^Password cipher does not match":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Password cipher does not match."]}},"^Platform application cannot be added to, nor removed from any tenant.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Platform application cannot be added to, nor removed from any tenant."]}},"^Private key must be provided in KEY_PAIR credentials$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Private key must be provided when \"Public/private keys\" option is selected."]}},"^Private key cipher does not match":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Private key cipher does not match"]}},"^Protocol \"(.+?)\" does not support \"(.+?)\" credentials type$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Protocol \"{{protocol}}\" does not support \"{{credentialsType}}\" credentials type."]},"placeholders":{"protocol":"$1","credentialsType":"$2"}},"^pulling image \"(.+)\"$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pulling image: \"{{imageName}}\"."]},"placeholders":{"imageName":"$1"}},"^Real-time event processing is currently overloaded and may stop processing your events\\. Please contact support\\.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Real-time event processing is currently overloaded and may stop processing your events. Please contact support."]}},"^Resource ID \\[type=com_cumulocity_model_idtype_GId, value=(.+?)\\] for this request not found.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not find the resource with ID \"{{id}}\"."]},"placeholders":{"id":"$1"}},"^Retrieve configuration snapshot from device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Retrieve configuration snapshot from device {{deviceName}}"]},"placeholders":{"deviceName":"$1"}},"^Retrieve (.+?) configuration snapshot from device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Retrieve {{configurationType}} configuration snapshot from device {{deviceName}}"]},"placeholders":{"configurationType":"$1","deviceName":"$2"}},"^Scaled up replica set (.+) to (\\d+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Replica set \"{{replicaSetName}}\" scaled up to \"{{scaleNumber}}\"."]},"placeholders":{"replicaSetName":"$1","scaleNumber":"$2"}},"^Send configuration snapshot (.+?) of configuration type (.+?) to device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send configuration snapshot {{snapshotName}} of configuration type {{configurationType}} to device {{deviceName}}"]},"placeholders":{"snapshotName":"$1","configurationType":"$2","deviceName":"$3"}},"^Send configuration snapshot (.+?) to device (.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send configuration snapshot {{snapshotName}} to device {{deviceName}}"]},"placeholders":{"snapshotName":"$1","deviceName":"$2"}},"^Simulator state is invalid: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Simulator state is invalid: {{violations}}"]},"placeholders":{"violations":{"capture":"$1","translate":{"(\\w+?) - may not be null":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" should not be null"]},"placeholders":{"field":"$1"}},"(\\w+?) - must be less than or equal to (\\d+)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" must be less than or equal to {{maxValue}}"]},"placeholders":{"field":"$1","maxValue":"$2"}},"(\\w+?) - should not contain null values":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{field}}\" should not contain null values"]},"placeholders":{"field":"$1"}},"$quoted$":["(\\w+?) - may not be null","(\\w+?) - must be less than or equal to (\\d+)","(\\w+?) - should not contain null values"]}}}},"^Smart rest template (.+?) doesn't exist$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["SmartREST template with id \"{{templateId}}\" doesn't exist."]},"placeholders":{"templateId":"$1"}},"^Smart rule created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule created."]}},"^Smart rule updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule updated."]}},"^Smart rule enabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule activated."]}},"^Smart rule disabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule deactivated."]}},"^Smart rule deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule deleted."]}},"^Smart rule \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" created."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" updated."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" enabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" activated."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" disabled$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" deactivated."]},"placeholders":{"name":"$1"}},"^Smart rule \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Smart rule \"{{name}}\" deleted."]},"placeholders":{"name":"$1"}},"^Started container$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Container started."]}},"^Successfully assigned (.+) to (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["\"{{imageName}}\" assigned to \"{{address}}\"."]},"placeholders":{"imageName":"$1","address":"$2"}},"^Successfully pulled image \"(.+)\"$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Image \"{{imageName}}\" pulled."]},"placeholders":{"imageName":"$1"}},"^Tenant creation failed. : Tenant with given id already exists.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not create a tenant. Tenant with given domain/URL already exists."]}},"^Tenant id cannot be a reserved sql keyword \"(.+?)\".$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not use a reserved SQL keyword \"{{tenantId}}\" as a domain name."]},"placeholders":{"tenantId":"$1"}},"^Tenant \"(.+?)\" activated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" activated."]},"placeholders":{"tenant":"$1"}},"^Tenant (.+?) has sub-tenants, please remove them first!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not remove tenant \"{{tenant}}\". Remove its subtenants first."]},"placeholders":{"tenant":"$1"}},"^Tenant activated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant activated"]}},"^Tenant \"(.+?)\" created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" created."]},"placeholders":{"tenant":"$1"}},"^Tenant created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant created"]}},"^Tenant \"(.+?)\" deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" deleted."]},"placeholders":{"tenant":"$1"}},"^Tenant deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant deleted"]}},"^Tenant \"(.+?)\" suspended$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" suspended."]},"placeholders":{"tenant":"$1"}},"^Tenant suspended$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant suspended"]}},"^Tenant \"(.+?)\" updated: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant \"{{tenant}}\" updated: {{properties}}."]},"placeholders":{"tenant":"$1","properties":"$2"}},"^Tenant updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Tenant updated"]}},"^Too Many Requests$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Too many requests. Try again later."]}},"^User alias equals username '(.+)'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Username and login alias must be different."]}},"^User created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User created"]}},"^User (.+?) created$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{name}}\" created"]},"placeholders":{"name":"$1"}},"^User deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User deleted"]}},"^User (.+?) deleted$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{name}}\" deleted"]},"placeholders":{"name":"$1"}},"^User updated$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User updated"]}},"^User (.+?) updated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{name}}\" updated: {{updatesList}}"]},"placeholders":{"name":"$1","updatesList":{"capture":"$2","translate":{"delegatedBy='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["delegated by: \"{{delegate}}\""]},"placeholders":{"delegate":"$1"}},"owner='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["owner: \"{{owner}}\""]},"placeholders":{"owner":"$1"}},"inventory assignment \\[(.+?)\\] added":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["inventory assignment [{{inventoryAssignment}}] added"]},"placeholders":{"inventoryAssignment":"$1"}},"inventory assignment \\[(.+?)\\] removed":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["inventory assignment [{{inventoryAssignment}}] removed"]},"placeholders":{"inventoryAssignment":"$1"}},"applications \\[(.+?)\\] added$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications [{{applicationsList}}] added"]},"placeholders":{"applicationsList":"$1"}},"applications \\[(.+?)\\] removed$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["applications [{{applicationsList}}] removed"]},"placeholders":{"applicationsList":"$1"}},"global roles \\[(.+?)\\] added$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["global roles [{{globalRolesList}}] added"]},"placeholders":{"globalRolesList":"$1"}},"global roles \\[(.+?)\\] removed$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["global roles [{{globalRolesList}}] removed"]},"placeholders":{"globalRolesList":"$1"}},"$quoted$":["delegatedBy='(.+?)'","owner='(.+?)'","inventory assignment \\[(.+?)\\] added","inventory assignment \\[(.+?)\\] removed","applications \\[(.+?)\\] added$","applications \\[(.+?)\\] removed$","global roles \\[(.+?)\\] added$","global roles \\[(.+?)\\] removed$"]}}}},"^User with username '(.+?)' already exists! : Duplicated: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{username}}\" already exists."]},"placeholders":{"username":"$1"}},"^User with username or alias '(.+)' already exists! : Duplicated: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User with username or login alias \"{{usernameOrAlias}}\" already exists."]},"placeholders":{"usernameOrAlias":"$1"}},"^User with email '(.+?)' already exists! : Duplicated: (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User with email \"{{email}}\" already exists."]},"placeholders":{"email":"$1"}},"^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Unable to get tenant option: \"{{option}}\"."]},"placeholders":{"option":"$2"}},"^unable to find option with given key (.+?) : There is no system property for key (.+?)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Unable to get system option: \"{{option}}\"."]},"placeholders":{"option":"$2"}},"^Write failed with error code 16733 and error message 'trying to index text where term list is too big, max is 4mb _id: \"(.+?)\"'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["The uploaded image cannot be bigger than 4 MB. Please upload a smaller one."]}},"^Write failed with error code 17280 and error message 'WiredTigerIndex::insert: key too large to index, failing (.+?) { : \"(.+?)\" }'$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["The chosen name is too long. Please try a shorter one."]}},"^You have reached devices limit. No more devices can be registered.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["You reached devices limit. No more devices can be registered."]}},"^(.+) succeeded for volume \"(.+)\"":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Operation \"{{operation}}\" succeeded for volume \"{{volume}}\"."]},"placeholders":{"operation":"$1","volume":"$2"}},"^Exception on tenant (.+) in statement '(.+)': Invocation exception when invoking method '(.+)' of class '(.+)' passing parameters \\[(.+)\\] for statement '(.+)': (.+) : (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Exception on tenant {{tenantId}} in statement \"{{moduleName}}\": Invocation exception when invoking method \"{{methodName}}\" of class \"{{classPath}}\" passing parameters [{{parameters}}] for statement \"{{statement}}\": {{exceptionType}} : {{exceptionMessage}}."]},"placeholders":{"tenantId":"$1","moduleName":"$2","methodName":"$3","classPath":"$4","parameters":"$5","statement":"$6","exceptionType":"$7","exceptionMessage":"$8"}},"^No nodes are available that match all of the predicates: (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["No nodes are available that match all of the predicates: [{{predicates}}]."]},"placeholders":{"predicates":"$1"}},"^Readiness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Readiness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)."]},"placeholders":{"requestMethod":"$1","uri":"$2","protocol":"$3"}},"^Liveness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Liveness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)."]},"placeholders":{"requestMethod":"$1","uri":"$2","protocol":"$3"}},"^Error syncing pod$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod synchronization error."]}},"^Failed create pod sandbox.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod sandbox creation failed."]}},"^Exception on tenant (.+) in statement '(.+)': Http status code: (\\d+) \\{error=\"alarm/Unprocessable Entity\",message=\"(.+)\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"\\}$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Exception on tenant {{tenantId}} in statement \"{{statement}}\": HTTP status code: {{httpStatusCode}} : {{message | translate}}"]},"placeholders":{"tenantId":"$1","statement":"$2","httpStatusCode":"$3","message":"$4"}},"^User '(.+)' is managed by a remote identity management service defined by an administrator, direct update is forbidden$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["User \"{{userName}}\" is managed by a remote identity management service defined by an administrator, direct update is forbidden."]},"placeholders":{"userName":"$1"}},"^Added new child device to \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Added new child device to \"{{parentDeviceName}}\" (ID: {{parentDeviceId}})."]},"placeholders":{"parentDeviceName":"$1","parentDeviceId":"$2"}},"^Updated child device of \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Updated child device of \"{{parentDeviceName}}\" (ID: {{parentDeviceId}})."]},"placeholders":{"parentDeviceName":"$1","parentDeviceId":"$2"}},"^Added child device \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Added child device \"{{name}}\" (ID: {{id}})."]},"placeholders":{"name":"$1","id":"$2"}},"^Removed child device \"(.+)\" \\(ID: (.+)\\).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Removed child device \"{{name}}\" (ID: {{id}})."]},"placeholders":{"name":"$1","id":"$2"}},"^Change value of \"(.+)\" to (.+) (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change value of \"{{name}}\" to {{value}}{{unit}}."]},"placeholders":{"name":"$1","value":"$2","unit":"$3"}},"^Change value of \"(.+)\" to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change value of \"{{name}}\" to {{value}}."]},"placeholders":{"name":"$1","value":"$2"}},"^Change status of \"(.+)\" to \"(.+)\".$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change status of \"{{name}}\" to \"{{label}}\"."]},"placeholders":{"name":"$1","label":"$2"}},"^Send message \"(.+)\".$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send message \"{{str}}\"."]},"placeholders":{"str":"$1"}},"^Close relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Close relay {{number}}."]},"placeholders":{"number":"$1"}},"^Open relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Open relay {{number}}."]},"placeholders":{"number":"$1"}},"^Change trace status to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change trace status to {{state | translate}}."]},"placeholders":{"state":"$1"}},"^Change relay status to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Change relay status to {{status | translate}}."]},"placeholders":{"status":"$1"}},"^Closing relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Closing relay {{number}}."]},"placeholders":{"number":"$1"}},"^Opening relay (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Opening relay {{number}}."]},"placeholders":{"number":"$1"}},"^Update bulk operation$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update bulk operation"]}},"^Update bulk operation: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update bulk operation: {{updatesList}}"]},"placeholders":{"updatesList":{"capture":"$1","translate":{"status='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["status: \"{{ status | translate }}\""]},"placeholders":{"status":"$1"}},"generalStatus='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["general status: \"{{ generalStatus | translate }}\""]},"placeholders":{"generalStatus":"$1"}},"progress='(.+?)'":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["progress: \"{{ progress }}\""]},"placeholders":{"progress":"$1"}},"note=(.+?)":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["note: \"{{ note }}\""]},"placeholders":{"note":"$1"}},"$quoted$":["status='(.+?)'","generalStatus='(.+?)'","progress='(.+?)'","note=(.+?)"]}}}},"^Update firmware to: \"?(.+?)\"? \\(version: (.+)\\)\\.?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update firmware to: \"{{ name }}\" (version: {{ version }})"]},"placeholders":{"name":"$1","version":"$2"}},"^Update firmware to: \"?(.+?)\"?\\.?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update firmware to: \"{{ name }}\""]},"placeholders":{"name":"$1"}},"^Update configuration to (.+).$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Update configuration to: {{ name }}."]},"placeholders":{"name":"$1"}},"^Apply device profile: (.+).?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Apply device profile: {{ name }}"]},"placeholders":{"name":"$1"}},"^Execute generic command: (.+).?$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Execute generic command: {{command}}"]},"placeholders":{"command":"$1"}},"^Failed to refresh application. : Cannot refresh non local-hosted application.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not reactivate the application as it is not hosted locally."]}},"^Failed to refresh application. : Cannot refresh application without active version id.$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Could not reactivate the application as it has no active version."]}},"^Scaled down replica set (.+) to (\\d+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Replica set \"{{replicaSetName}}\" scaled down to \"{{scaleNumber}}\"."]},"placeholders":{"replicaSetName":"$1","scaleNumber":"$2"}},"^Deleted pod: (.+)$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Pod \"{{imageName}}\" deleted."]},"placeholders":{"imageName":"$1"}},"^Container image \"(.+)\" already present on machine$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Container image \"{{imageName}}\" already exists."]},"placeholders":{"imageName":"$1"}},"^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$":{"gettext":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["This login mode was already set by another administrator. Refresh the page to update the data."]}},"$quoted$":["^Access is denied$","^Alarm created$","^Alarm updated$","^API is not available with the new domain$","^Application with given name already exist$","^Application with id (.+?) is already assigned to the tenant (.+?)$","^Apply software changes: (.+?)\\.?$","^Assign device profile (.+?) to device (.+?)$","^(.+)pplication for tenant (.+) with properties \\( (.+?) \\) already exists$","^Authentication failed! : User account is locked$","^Availability monitoring record$","^Can not activate a certificate which is either expired or not yet valid$","^Cannot add certificate - certificate with (.+?) fingerprint already exists. : Certificate with (.+?) fingerprint already exists.","^Cannot change password. : Provided token does not exist.$","^Cannot deploy module (.*)$","^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) \\[([\\S\\s]+?)\\]$","^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+) near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$","^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\d+) column (\\d+), please check the where clause \\[([\\S\\s]+?)\\]$","^Cannot deploy module (.+?)! : Deployment failed in module '(.+?)' in expression '(.+?)' : Exception compiling script '(.+?)' of dialect '(.+?)': missing (.+?) before statement \\((.+?)\\) \\[([\\S\\s]+?)\\]$","^Cannot execute bulk operation on empty group. Group with id='(\\d+?)' doesn't have child assets.$","^Cannot execute bulk operation on empty group. DynamicGroup with id='(\\d+?)' doesn't have child assets$","^Cannot parse X509 certificate. : Could not parse certificate: (.+?)$","^Cannot reschedule bulk operation. All its operations are successful$","^Cannot reset user password : Cannot find user with such email.$","^Cannot update/delete application binary via this endpoint$","^Can't delete user because it is used by another managed object$","^Cep module created$","^Cep module updated$","^Cep module deleted$","^Cep module \"(.+?)\" created$","^Cep module \"(.+?)\" updated$","^Cep module \"(.+?)\" deleted$","^Command state is invalid: (.+)$","^Could not connect to endpoint (.+)\\. Could not verify `(.+)` host key with fingerprint `(.+)` for `(.+)` on port (.+)\\. If you expected that key, please remove the previous one from configuration to allow for connection\\.$","^Could not login to ssh server on endpoint \"(.+)\"\\. Provided credential for user \"(.+)\" is incorrect\\.$","^Could not save object remoteAccessUpdate: (.+)$","^Could not update user. : Error persisting user (.+?)!$","ˆCreate bulk operation$","^Create bulk operation: (.+)$","^Creation ramp must be greater than (\\d+?)$","^Created container$","^Created pod: (.+)$","^CSV file contained empty dataset$","^Cycle detected for route (.+?)!$","^Data broker processing is currently overloaded and may stop forwarding your data\\. Please contact support\\.$","^Data broker processing is not able to connect do destination tenant, thus data forwarding is not working\\. Please contact support\\.$","^Delete bulk operation$","^Delete bulk operation: (.+)$","^Device id '(.+?)' contains '(.+?)' character which is not permitted.$","^Device name: '(.+?)', alarm text: '(.+?)'$","^Display name$","^Domain name in uploaded certificate differs from the one in use$","^Domain name is already in use by another tenant!$","^Duplicated connector for instanceUrl (.+?)!$","^Duplicated connector for name (.+?)!$","^Entry is outside of the target dir: (.+)$","^Error during password validation. : Password must have at least (\\d+?) characters and no more than (\\d+?) and must contain only Latin1 characters.$","^Error during password validation. : Your password has been used already. Choose another.$","^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$","^External id not found; external id = ID \\[type=(.+?), value=(.+?)\\]$","^Error occurred when trying to find an Application for id ID (.+) : Could not find application by ID (\\d+)$","^Http status code: 404\n{error=\"options/Not Found\",message=\"Unable to find option by given key: sigfox-agent/provider.token\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"}","^Failed to delete application. : Cannot remove application assigned to other tenants.$","^Failed to extract certificate from PKCS12$","^Failed to update domain at the platform$","^Finding device data from database failed : No managedObject for id '(.+?)'!$","^Following mandatory fields should be included: (.+?)$","^Global Role updated$","^Global Role (.+?) updated$","^Global Role (.+?) updated: (.+)$","^Global Roles$","^Operation updated: (.+)$","^ID \\[type=(.+?), value=(.+?)\\] was already bound to different Global ID.$","^Invalid credentials! : Bad credentials$","^Invalid credentials! : No phone number provided$","^Inventory Role removed$","^Inventory Role (.+?) removed","^Inventory Role updated$","^Inventory Role (.+?) updated","^I/O error: Connection refused; nested exception is Connection refused : Connection refused","^I/O error: Read timed out; nested exception is Read timed out : Read timed out","^Log file requested$","^Managed object deleted$","^Managed object \"(.+?)\" deleted$","^Maximum file size exceeded$","^Message with ID (.+?) doesn't exist in smart rest template (.+?)$","^NewDeviceRequest for id = (.+?) already exists.$","^No communication with device since (.+?)$","^No data received from device within required interval.$","^No LoRa provider settings are found. Please configure the connectivity settings.$","^Not within any context!$","^Maximum age cannot be bigger than 10 years.$","^Microservice application name incorrect. Please use only lower-case letters, digits and dashes. Maximum length is (\\d+) characters.$","^Microservice not available.*$","^Operation created$","^Operation updated$","^Operation created: status='(.+?)'.","^Option created$","^Option \"(.+?)\" created$","^Option deleted$","^Option \"(.+?)\" deleted$","^Owner field error. : Cannot introduce cyclic dependency.","^Password change is temporary blocked.$","^Password cipher does not match","^Platform application cannot be added to, nor removed from any tenant.$","^Private key must be provided in KEY_PAIR credentials$","^Private key cipher does not match","^Protocol \"(.+?)\" does not support \"(.+?)\" credentials type$","^pulling image \"(.+)\"$","^Real-time event processing is currently overloaded and may stop processing your events\\. Please contact support\\.$","^Resource ID \\[type=com_cumulocity_model_idtype_GId, value=(.+?)\\] for this request not found.$","^Retrieve configuration snapshot from device (.+?)","^Retrieve (.+?) configuration snapshot from device (.+?)","^Scaled up replica set (.+) to (\\d+)$","^Send configuration snapshot (.+?) of configuration type (.+?) to device (.+?)","^Send configuration snapshot (.+?) to device (.+?)","^Simulator state is invalid: (.+)$","^Smart rest template (.+?) doesn't exist$","^Smart rule created$","^Smart rule updated$","^Smart rule enabled$","^Smart rule disabled$","^Smart rule deleted$","^Smart rule \"(.+?)\" created$","^Smart rule \"(.+?)\" updated$","^Smart rule \"(.+?)\" enabled$","^Smart rule \"(.+?)\" disabled$","^Smart rule \"(.+?)\" deleted$","^Started container$","^Successfully assigned (.+) to (.+)$","^Successfully pulled image \"(.+)\"$","^Tenant creation failed. : Tenant with given id already exists.$","^Tenant id cannot be a reserved sql keyword \"(.+?)\".$","^Tenant \"(.+?)\" activated$","^Tenant (.+?) has sub-tenants, please remove them first!$","^Tenant activated$","^Tenant \"(.+?)\" created$","^Tenant created$","^Tenant \"(.+?)\" deleted$","^Tenant deleted$","^Tenant \"(.+?)\" suspended$","^Tenant suspended$","^Tenant \"(.+?)\" updated: (.+?)$","^Tenant updated$","^Too Many Requests$","^User alias equals username '(.+)'$","^User created$","^User (.+?) created$","^User deleted$","^User (.+?) deleted$","^User updated$","^User (.+?) updated: (.+)$","^User with username '(.+?)' already exists! : Duplicated: (.+?)$","^User with username or alias '(.+)' already exists! : Duplicated: (.+)$","^User with email '(.+?)' already exists! : Duplicated: (.+?)$","^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$","^unable to find option with given key (.+?) : There is no system property for key (.+?)$","^Write failed with error code 16733 and error message 'trying to index text where term list is too big, max is 4mb _id: \"(.+?)\"'$","^Write failed with error code 17280 and error message 'WiredTigerIndex::insert: key too large to index, failing (.+?) { : \"(.+?)\" }'$","^You have reached devices limit. No more devices can be registered.$","^(.+) succeeded for volume \"(.+)\"","^Exception on tenant (.+) in statement '(.+)': Invocation exception when invoking method '(.+)' of class '(.+)' passing parameters \\[(.+)\\] for statement '(.+)': (.+) : (.+)$","^No nodes are available that match all of the predicates: (.+).$","^Readiness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$","^Liveness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\(Client.Timeout exceeded while awaiting headers\\)$","^Error syncing pod$","^Failed create pod sandbox.$","^Exception on tenant (.+) in statement '(.+)': Http status code: (\\d+) \\{error=\"alarm/Unprocessable Entity\",message=\"(.+)\",info=\"https://www.cumulocity.com/guides/reference-guide/#error_reporting\",details=\"null\"\\}$","^User '(.+)' is managed by a remote identity management service defined by an administrator, direct update is forbidden$","^Added new child device to \"(.+)\" \\(ID: (.+)\\).$","^Updated child device of \"(.+)\" \\(ID: (.+)\\).$","^Added child device \"(.+)\" \\(ID: (.+)\\).$","^Removed child device \"(.+)\" \\(ID: (.+)\\).$","^Change value of \"(.+)\" to (.+) (.+).$","^Change value of \"(.+)\" to (.+).$","^Change status of \"(.+)\" to \"(.+)\".$","^Send message \"(.+)\".$","^Close relay (.+).$","^Open relay (.+).$","^Change trace status to (.+).$","^Change relay status to (.+).$","^Closing relay (.+).$","^Opening relay (.+).$","^Update bulk operation$","^Update bulk operation: (.+)$","^Update firmware to: \"?(.+?)\"? \\(version: (.+)\\)\\.?$","^Update firmware to: \"?(.+?)\"?\\.?$","^Update configuration to (.+).$","^Apply device profile: (.+).?$","^Execute generic command: (.+).?$","^Failed to refresh application. : Cannot refresh non local-hosted application.$","^Failed to refresh application. : Cannot refresh application without active version id.$","^Scaled down replica set (.+) to (\\d+)$","^Deleted pod: (.+)$","^Container image \"(.+)\" already present on machine$","^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$"]},"TranslateCustomLoader":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":5},"arguments":[{"__symbolic":"reference","name":"LOCALE_PATH"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":5},"arguments":[{"__symbolic":"reference","name":"LANGUAGES"}]}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":14,"character":18},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"CachedLocaleDictionaryService"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"getTranslation":[{"__symbolic":"method"}],"getDictionaryWithTrimmedKeys":[{"__symbolic":"method"}]}},"trimTranslationKey":{"__symbolic":"function","parameters":["key"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"key"},"member":"replace"},"arguments":[{"__symbolic":"error","message":"Expression form not supported","line":56,"character":21,"module":"./core/i18n/translate.loader"},""]},"member":"replace"},"arguments":[{"__symbolic":"error","message":"Expression form not supported","line":56,"character":51,"module":"./core/i18n/translate.loader"}," "]},"member":"trim"}}},"HOOK_PATTERN_MESSAGES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":41},"arguments":["Pattern Messages"]},"C8yTranslateModule":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":12,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"C8yTranslatePipe"},{"__symbolic":"reference","name":"C8yTranslateDirective"}],"exports":[{"__symbolic":"reference","name":"C8yTranslatePipe"},{"__symbolic":"reference","name":"C8yTranslateDirective"}]}]}],"members":{}},"C8yTranslateDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateDirective","line":6,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[translate],[ngx-translate]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":27,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":28,"character":13},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":29,"character":10}]}],"checkNodes":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getLookupKey":[{"__symbolic":"method"}],"isElementSimpleTextType":[{"__symbolic":"method"}],"isElementInnerHtmlEmpty":[{"__symbolic":"method"}],"isLookupKeyMissing":[{"__symbolic":"method"}],"lookupKeyExist":[{"__symbolic":"method"}],"translateAndUpdateHtmlContent":[{"__symbolic":"method"}]}},"C8yTranslatePipe":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslatePipe","line":11,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"translate","pure":false}]}],"members":{}},"CachedLocaleDictionaryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ɵprov":{}}},"LoginService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":25,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":103,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":94,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":95,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"CookieAuth","line":96,"character":24},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":98,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":99,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":100,"character":22},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":102,"character":17},{"__symbolic":"reference","module":"@angular/common","name":"LocationStrategy","line":103,"character":34}]}],"getTenant":[{"__symbolic":"method"}],"initLoginOptions":[{"__symbolic":"method"}],"redirectToOauth":[{"__symbolic":"method"}],"autoLogout":[{"__symbolic":"method"}],"getGreenMinLength":[{"__symbolic":"method"}],"getEnforcePasswordStrength":[{"__symbolic":"method"}],"getPasswordStrengthValidity":[{"__symbolic":"method"}],"getPasswordStrengthEnforced":[{"__symbolic":"method"}],"cleanMessages":[{"__symbolic":"method"}],"addSuccessMessage":[{"__symbolic":"method"}],"getAuthStrategy":[{"__symbolic":"method"}],"useBasicAuth":[{"__symbolic":"method"}],"login":[{"__symbolic":"method"}],"authFulfilled":[{"__symbolic":"method"}],"switchLoginMode":[{"__symbolic":"method"}],"generateOauthToken":[{"__symbolic":"method"}],"isPasswordGrantLogin":[{"__symbolic":"method"}],"isSupportUser":[{"__symbolic":"method"}],"showTenant":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"saveTFAToken":[{"__symbolic":"method"}],"verifyAppAccess":[{"__symbolic":"method"}],"setCredentials":[{"__symbolic":"method"}],"isLocal":[{"__symbolic":"method"}],"saveToken":[{"__symbolic":"method"}],"storeBasicAuthToken":[{"__symbolic":"method"}],"cleanLocalStorage":[{"__symbolic":"method"}],"cleanSessionStorage":[{"__symbolic":"method"}],"isShowTenant":[{"__symbolic":"method"}],"redirect":[{"__symbolic":"method"}],"getBasicAuthLoginOption":[{"__symbolic":"method"}],"getSupportUserName":[{"__symbolic":"method"}],"getStoredCredentials":[{"__symbolic":"method"}],"getStoredToken":[{"__symbolic":"method"}],"getStoredTfaToken":[{"__symbolic":"method"}],"decodeToken":[{"__symbolic":"method"}]}},"LoginMessage":{"__symbolic":"interface"},"LoginViews":{"None":0,"Credentials":1,"RecoverPassword":2,"SmsChallenge":3,"ChangePassword":4,"TotpChallenge":5,"TotpSetup":6,"ProvidePhoneNumber":7},"LoginComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-login","styles":[],"template":"<div\n class=\"loading card fadeInUp animated shadow5\"\n *ngIf=\"currentView !== LOGIN_VIEWS.None\"\n [ngSwitch]=\"currentView\"\n>\n <div class=\"card-block p-b-0\">\n <img class=\"mainlogo\">\n <c8y-credentials\n *ngSwitchCase=\"LOGIN_VIEWS.Credentials\"\n (onChangeView)=\"handleLoginTemplate($event)\"\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 >\n </c8y-totp-auth>\n <c8y-totp-auth\n *ngSwitchCase=\"LOGIN_VIEWS.TotpSetup\"\n (onCancel)=\"reset()\"\n [view]=\"currentView\"\n [credentials]=\"credentials\"\n >\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\n <c8y-alert-outlet position=\"static\"></c8y-alert-outlet>\n </div>\n</div>\n"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}],"handleLoginTemplate":[{"__symbolic":"method"}],"onkeyup":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":52,"character":3},"arguments":["keyup",["$event"]]}]}],"reset":[{"__symbolic":"method"}],"loginAutomatically":[{"__symbolic":"method"}],"setView":[{"__symbolic":"method"}],"getResetPasswordToken":[{"__symbolic":"method"}]}},"PasswordStrengthValidatorDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[passwordStrengthEnforced]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":6,"character":25},"useExisting":{"__symbolic":"reference","name":"PasswordStrengthValidatorDirective"},"multi":true}]}]}],"members":{"passwordStrengthEnforced":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"StrengthValidatorService"}]}],"validate":[{"__symbolic":"method"}]}},"StrengthValidatorService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵh"}]}],"isStrong":[{"__symbolic":"method"}],"isPasswordGreen":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"RecoverPasswordComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-recover-password","styles":[],"template":"<form #resetForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"resetPassword()\" novalidate>\n <div class=\"legend form-block center\" translate>\n Forgot password?\n </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 translate\n >\n Reset password\n </button>\n <div class=\"text-center m-t-8\">\n <p>\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.Credentials })\"\n translate\n >\n Login\n </a>\n </p>\n </div>\n</form>\n"}]}],"members":{"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":22,"character":19},{"__symbolic":"reference","name":"LoginService"}]}],"ngOnInit":[{"__symbolic":"method"}],"resetPassword":[{"__symbolic":"method"}]}},"ChangePasswordComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-change-password","styles":[],"template":"<form\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"changePassword()\"\n #changePasswordForm=\"ngForm\"\n novalidate\n>\n\n <div\n class=\"legend form-block center\"\n translate\n >\n Change password\n </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 translate\n >\n Set password\n </button>\n</form>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":33,"character":19},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}],"changePassword":[{"__symbolic":"method"}]}},"TotpAuthComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"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></c8y-totp-challenge>\n\n<div class=\"text-center m-t-8\">\n <a\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n translate\n >\n Cancel\n </a>\n</div>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"view":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":22,"character":25},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}],"onTotpSuccess":[{"__symbolic":"method"}]}},"LoginModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"LoginComponent"},{"__symbolic":"reference","name":"RecoverPasswordComponent"},{"__symbolic":"reference","name":"ChangePasswordComponent"},{"__symbolic":"reference","name":"CredentialsComponent"},{"__symbolic":"reference","name":"TotpAuthComponent"},{"__symbolic":"reference","name":"PasswordStrengthValidatorDirective"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":29,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":30,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"LoginComponent"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"LoginModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"LoginModule"},"member":"providers"}}}},"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"reference","name":"LoginService"}]}}},"CredentialsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-credentials","styles":[],"template":"<div id=\"oauth\" *ngIf=\"oauthOptions.initRequest && oauthOptions.visibleOnLoginPage\">\n <button\n title=\"{{ oauthOptions.buttonName | translate }}\"\n (click)=\"redirectToOauth()\"\n class=\"btn btn-block btn-lg form-group\"\n >\n <i [c8yIcon]=\"'sign-in'\" class=\"pull-left\"></i>\n {{ oauthOptions.buttonName | translate }}\n </button>\n</div>\n\n<form\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"login()\"\n #loginForm=\"ngForm\"\n *ngIf=\"showLoginForm\"\n novalidate\n>\n <div\n class=\"legend form-block center\"\n *ngIf=\"!(oauthOptions.initRequest && oauthOptions.visibleOnLoginPage); else orLegend\"\n translate\n >\n Login\n </div>\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=\"loginService.showTenant()\">\n <label for=\"tenant\" translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenant\"\n #tenant=\"ngModel\"\n type=\"text\"\n name=\"tenant\"\n id=\"tenant\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\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 [(ngModel)]=\"model.user\"\n #user=\"ngModel\"\n type=\"text\"\n name=\"user\"\n id=\"user\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\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 [(ngModel)]=\"model.password\"\n #password=\"ngModel\"\n type=\"password\"\n name=\"password\"\n id=\"password\"\n class=\"form-control\"\n placeholder-no-required-hint\n required\n />\n </c8y-form-group>\n <div class=\"form-group\" *ngIf=\"showBasicAuth\">\n <label title=\"{{ 'Remember me' | translate }}\" class=\"c8y-checkbox\">\n <input type=\"checkbox\" name=\"remember\" [(ngModel)]=\"loginService.rememberMe\" />\n <span></span>\n <span>{{ 'Remember me' | translate }}</span>\n </label>\n </div>\n <button\n title=\"{{ 'Log in' | translate }}\"\n [disabled]=\"!loginForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Log in' | translate }}\n </button>\n <div class=\"text-center m-t-8\">\n <a\n title=\"{{ 'Forgot password?' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onChangeView.emit({ view: LOGIN_VIEWS.RecoverPassword })\"\n >{{ 'Forgot password?' | translate }}</a\n >\n </div>\n <div class=\"text-center m-t-8\" *ngIf=\"!!(ui.state$ | async).loginExtraLink\">\n <a\n title=\"{{ (ui.state$ | async).loginExtraLink.label }}\"\n [href]=\"(ui.state$ | async).loginExtraLink.url\"\n class=\"btn btn-link btn-sm\"\n >\n {{ (ui.state$ | async).loginExtraLink.label }}</a\n >\n </div>\n</form>\n"}]}],"members":{"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"AppStateService"}]}],"ngOnInit":[{"__symbolic":"method"}],"redirectToOauth":[{"__symbolic":"method"}],"login":[{"__symbolic":"method"}],"handlePasswordReset":[{"__symbolic":"method"}],"handleTotpChallenge":[{"__symbolic":"method"}],"handleSmsChallenge":[{"__symbolic":"method"}],"handleNoPhoneNumberProvided":[{"__symbolic":"method"}]}},"ModalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"ModalModule","line":17,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":19,"character":4},"member":"forRoot"}}],"exports":[{"__symbolic":"reference","name":"ConfirmModalComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"declarations":[{"__symbolic":"reference","name":"ConfirmModalComponent"},{"__symbolic":"reference","name":"ModalComponent"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"providers":[{"__symbolic":"reference","name":"ModalService"}],"entryComponents":[{"__symbolic":"reference","name":"ConfirmModalComponent"}]}]}],"members":{}},"ModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":59,"character":1},"arguments":[{"selector":"c8y-modal","template":"<div class=\"modal-header\">\n <ng-content select=\"[c8y-modal-title]\"></ng-content>\n <h3 [hidden]=\"!title\">\n {{ title | translate }}\n </h3>\n</div>\n<div class=\"modal-body\">\n <p [hidden]=\"!title\" class=\"text-center text-break-word\">\n {{ body }}\n </p>\n <ng-content></ng-content>\n</div>\n<div\n class=\"modal-footer\"\n *ngIf=\"!customFooter\">\n <ng-content select=\"[c8y-modal-footer]\"></ng-content>\n <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 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"}]}],"members":{"onDismiss":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":65,"character":3}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"close":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"dismiss":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"body":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":71,"character":3}}]}],"customFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":73,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":81,"character":15}}]],"parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":81,"character":41}]}],"_dismiss":[{"__symbolic":"method"}],"_close":[{"__symbolic":"method"}],"onEnterKeyDown":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":97,"character":3},"arguments":["document:keydown.enter",["$event"]]}]}]}},"ILabels":{"__symbolic":"interface"},"ConfirmModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-confirm-modal","template":"<div class=\"c8y-prompt alert\" [ngClass]=\"[classAlert]\">\n <h3 class=\"m-b-16\" *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\">{{ body | translate }}</p>\n <ng-content></ng-content>\n <div class=\"alert-footer\">\n <button\n title=\"{{ labels.cancel | translate }}\"\n class=\"btn btn-default\"\n *ngIf=\"labels.cancel !== null\"\n (click)=\"dismiss()\"\n >\n {{ labels.cancel | translate }}\n </button>\n <button title=\"{{ labels.ok | translate }}\" class=\"btn btn-primary\" (click)=\"close()\">\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n"}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"body":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":33,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ModalService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":14,"character":36}]}],"confirm":[{"__symbolic":"method"}],"acknowledge":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"PopoverConfirmButtons":{"__symbolic":"interface"},"PopoverConfirmComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":27,"character":1},"arguments":[{"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 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"}]}],"members":{"popover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":[{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverDirective","line":32,"character":13},{"static":false}]}]}],"buttons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"isOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"containerClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"placement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"outsideClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"show":[{"__symbolic":"method"}],"buttonStatus":[{"__symbolic":"method"}],"handleOutsideClick":[{"__symbolic":"method"}]}},"NavigatorModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"NavigatorOutletComponent"},{"__symbolic":"reference","name":"NavigatorNodeComponent"},{"__symbolic":"reference","name":"NavigatorItemComponent"},{"__symbolic":"reference","name":"NavigatorIconComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":23,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":24,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"}],"exports":[{"__symbolic":"reference","name":"NavigatorOutletComponent"},{"__symbolic":"reference","name":"NavigatorItemComponent"}],"entryComponents":[{"__symbolic":"reference","name":"NavigatorIconComponent"}]}]}],"members":{}},"NavigatorIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-navigator-icon","template":"<i class=\"icon\" [c8yIcon]=\"icon\"></i>"}]}],"members":{"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}]}},"NavigatorNodeFactory":{"__symbolic":"interface"},"HOOK_NAVIGATOR_NODES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":18,"character":40},"arguments":["NavigatorNodesFactory"]},"NavigatorService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":49,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":49,"character":58}]}],"openOnFirstUrl":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"NavigatorNodeData":{"__symbolic":"interface"},"NavigatorItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-navigator-item","template":"<ng-template #iconTpl><ng-content></ng-content></ng-template>"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":9,"character":3},"arguments":["iconTpl",{"static":true}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"NavigatorNodeRoot":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"NavigatorNode"},"members":{"addRoot":[{"__symbolic":"method"}],"createNode":[{"__symbolic":"method"}]}},"NavigatorOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-navigator-outlet, c8y-ui-navigator","template":"<nav class=\"navigator\" *ngIf=\"isShown$ | async\" [ngClass]=\"{ open: open }\">\n <ng-content select=\".navigator-slot-top\"></ng-content>\n <ul class=\"navigatorContent\">\n <c8y-navigator-node-display (nodeClick)=\"collapseNavigator($event)\" [node]=\"node\" *ngFor=\"let node of nodes trackBy trackByPathOrLabel\" [isRoot]=\"true\"></c8y-navigator-node-display>\n </ul>\n <ng-content select=\".navigator-slot-bottom\"></ng-content>\n</nav>\n"}]}],"members":{"nodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"}]}],"ngOnChanges":[{"__symbolic":"method"}],"collapseNavigator":[{"__symbolic":"method"}],"trackByPathOrLabel":[{"__symbolic":"method"}]}},"ClickEventSource":{"ICON":"icon","EXPANDER":"expander","LINK":"link"},"NavigatorNodeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":28,"character":1},"arguments":[{"selector":"c8y-navigator-node-display","template":"<div\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 }\"\n>\n <ng-container>\n <a\n class=\"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.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]=\"{'root-link':isRoot, open: node.open, parent: node.hasChildren, 'dragged-hover': node.draggedHover && !node.dragged}\"\n >\n <ng-container *ngTemplateOutlet=\"inner\"></ng-container>\n </a>\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-display\n *ngFor=\"let childNode of node.children\"\n [node]=\"childNode\"\n (nodeClick)=\"nodeClick.emit($event)\"\n >\n </c8y-navigator-node-display>\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 >\n </i>\n\n <!-- icon -->\n <div (click)=\"click('icon', $event)\">\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 >\n </i>\n\n <c8y-popover-confirm\n outsideClick=\"true\"\n containerClass=\"navigator-popover\"\n ></c8y-popover-confirm>\n</ng-template>\n"}]}],"members":{"iconSlot":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":36,"character":3},"arguments":["icon",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":36,"character":29},"static":false}]}]}],"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"isRoot":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"routerLinkActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":51,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/router","name":"RouterLinkActive","line":51,"character":13},{"static":false}]}]}],"childrenNodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":56,"character":3},"arguments":[{"__symbolic":"reference","name":"NavigatorNodeComponent"}]}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"confirm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":3},"arguments":[{"__symbolic":"reference","name":"PopoverConfirmComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":81,"character":38},{"__symbolic":"reference","name":"NavigatorService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"openOnFirstUrl":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"expandCollapse":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"handleExpandCollapse":[{"__symbolic":"method"}],"expandParentIfActive":[{"__symbolic":"method"}],"updateIcon":[{"__symbolic":"method"}],"updateIconComponent":[{"__symbolic":"method"}],"updateIconTemplate":[{"__symbolic":"method"}]}},"ClickOptions":{"__symbolic":"interface"},"NavigatorNode":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorNodeData"}]}],"openOnStart":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"find":[{"__symbolic":"method"}],"empty":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"drop":[{"__symbolic":"method"}],"dragStart":[{"__symbolic":"method"}],"dragEnd":[{"__symbolic":"method"}],"dragEnter":[{"__symbolic":"method"}],"dragLeave":[{"__symbolic":"method"}],"expand":[{"__symbolic":"method"}],"traverse":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"updateChildren":[{"__symbolic":"method"}],"sort":[{"__symbolic":"method"}],"updateHidden":[{"__symbolic":"method"}]}},"TotpSetupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-totp-setup","template":"<div class=\"text-center\">\n <p\n class=\"lead m-b-16\"\n translate\n >\n Scan this QR code with your smartphone using the Google Authenticator app.\n </p>\n\n\n <qrcode\n *ngIf=\"totpSecret\"\n [width]=\"300\"\n [qrdata]=\"qrData\"\n [cssClass]=\"'m-b-16'\"\n [errorCorrectionLevel]=\"'M'\"\n ></qrcode>\n <p class=\"text-center text-muted\">\n {{secret}}\n </p>\n</div>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":32,"character":28},{"__symbolic":"reference","name":"AlertService"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"TotpChallengeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-totp-challenge","viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":11,"character":30},"useExisting":{"__symbolic":"reference","module":"@angular/forms","name":"NgForm","line":11,"character":61}}],"template":"<form #totpForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"verifyCode()\" novalidate>\n <c8y-form-group [hasError]=\"hasError\" [novalidation]=\"true\" [ngClass]=\"hasError ? 'p-b-24' : ''\">\n <label translate for=\"totpToken\">\n Verification code\n </label>\n\n <input\n id=\"totpToken\"\n [(ngModel)]=\"model.token\"\n name=\"totpToken\"\n type=\"text\"\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, please 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 <button *ngIf=\"!loading\"\n title=\"{{ 'Verify' | translate }}\"\n [disabled]=\"!totpForm.form.valid\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n >\n {{ 'Verify' | translate }}\n </button>\n\n <button *ngIf=\"loading\"\n title=\"{{ 'Verifying…' | translate }}\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block btn-pending\"\n >\n {{ 'Verifying…' | translate }}\n </button>\n</form>\n"}]}],"members":{"verify":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"onSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":22,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"hasError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":34,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"verifyCode":[{"__symbolic":"method"}]}},"AuthenticationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"TotpChallengeComponent"},{"__symbolic":"reference","name":"PasswordConfirm"},{"__symbolic":"reference","name":"PasswordStrengthComponent"},{"__symbolic":"reference","name":"PasswordCheckListComponent"},{"__symbolic":"reference","name":"NewPasswordComponent"},{"__symbolic":"reference","name":"PasswordConfirmModalComponent"},{"__symbolic":"reference","name":"SmsChallengeComponent"},{"__symbolic":"reference","name":"TotpSetupComponent"},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":38,"character":25},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","module":"angularx-qrcode","name":"QRCodeModule","line":38,"character":67}],"exports":[{"__symbolic":"reference","name":"TotpChallengeComponent"},{"__symbolic":"reference","name":"PasswordStrengthComponent"},{"__symbolic":"reference","name":"PasswordCheckListComponent"},{"__symbolic":"reference","name":"PasswordConfirm"},{"__symbolic":"reference","name":"NewPasswordComponent"},{"__symbolic":"reference","name":"PasswordConfirmModalComponent"},{"__symbolic":"reference","name":"SmsChallengeComponent"},{"__symbolic":"reference","name":"TotpSetupComponent"},{"__symbolic":"reference","name":"ɵg"}],"entryComponents":[{"__symbolic":"reference","name":"PasswordConfirmModalComponent"}],"providers":[{"__symbolic":"reference","name":"PasswordStrengthCheckerService"},{"__symbolic":"reference","name":"PasswordService"}]}]}],"members":{}},"PasswordStrengthCheckerService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"hasLowerCase":[{"__symbolic":"method"}],"hasUpperCase":[{"__symbolic":"method"}],"hasNumbers":[{"__symbolic":"method"}],"hasSpecialChars":[{"__symbolic":"method"}],"getStrengthColor":[{"__symbolic":"method"}]}},"PasswordStrengthComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-password-strength","template":"<div class=\"password-strength password-{{ model.colorName }}\">\r\n <label class=\"password-strength-label small\" translate>\r\n Password strength\r\n </label>\r\n <div>\r\n <div class=\"password-bar\"></div>\r\n </div>\r\n <span class=\"small\">\r\n {{ model.description | translate }}\r\n </span>\r\n</div>\r\n"}]}],"members":{"password":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["password"]}]}],"strength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PasswordService"}]}]}},"SmsChallengeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-sms-challenge","styles":[],"template":"<form #twoFactorForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"verifyTFACode()\" novalidate>\n <div class=\"legend form-block center\" translate>\n Two-factor authentication\n </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 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 type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n translate\n >\n Verify\n </button>\n\n <div class=\"d-flex m-t-8\">\n <a\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"small pointer m-r-auto\"\n (click)=\"resendTFASms()\"\n translate\n >\n Send new code\n </a>\n <a\n title=\"{{ 'Log in' | translate }}\"\n class=\"small pointer m-l-auto\"\n (click)=\"onCancel.emit()\"\n translate\n >\n Log in\n </a>\n </div>\n</form>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":15,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":26,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"verifyTFACode":[{"__symbolic":"method"}],"resendTFASms":[{"__symbolic":"method"}],"useOAuthInternal":[{"__symbolic":"method"}],"verifyCodeWithOauth":[{"__symbolic":"method"}],"verifyCodeWithBasicAuth":[{"__symbolic":"method"}],"loginWithTFA":[{"__symbolic":"method"}]}},"NewPasswordComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-new-password","viewProviders":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"ControlContainer","line":8,"character":29},"useExisting":{"__symbolic":"reference","module":"@angular/forms","name":"NgForm","line":8,"character":60}}],"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"}]}],"members":{"password":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"}]}],"ngOnInit":[{"__symbolic":"method"}],"newPasswordChanged":[{"__symbolic":"method"}],"loadPasswordStrengthSettings":[{"__symbolic":"method"}],"showPasswordStrength":[{"__symbolic":"method"}],"toggleChangePassword":[{"__symbolic":"method"}]}},"PasswordStrengthColor":{"__symbolic":"interface"},"NewPassword":{"__symbolic":"interface"},"PasswordCheckListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-password-check-list","styles":[],"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"}]}],"members":{"password":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3},"arguments":["password"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"PasswordService"}]}],"ngOnInit":[{"__symbolic":"method"}],"onPasswordChange":[{"__symbolic":"method"}]}},"PasswordConfirmModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"c8y-password-confirm-modal","template":"<c8y-modal [customFooter]=\"true\" [title]=\"'Confirm your current password' | translate\" #modal>\r\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\r\n <c8y-form-group [hasWarning]=\"true\">\r\n <label translate for=\"currentPassword\">Enter your password</label>\r\n <input\r\n id=\"currentPassword\"\r\n [(ngModel)]=\"password\"\r\n type=\"password\"\r\n name=\"password\"\r\n class=\"form-control\"\r\n placeholder=\"{{ 'Enter your password' | translate }}\"\r\n required\r\n />\r\n <c8y-messages>\r\n <c8y-message translate>\r\n Enter the password of the user that you are currently logged in with.\r\n </c8y-message>\r\n </c8y-messages>\r\n </c8y-form-group>\r\n\r\n <div class=\"modal-footer\">\r\n <button\r\n title=\"{{ 'Cancel' | translate }}\"\r\n class=\"btn btn-default\"\r\n type=\"button\"\r\n (click)=\"cancel()\"\r\n translate\r\n >\r\n Cancel\r\n </button>\r\n <button\r\n title=\"{{ 'Save' | translate }}\"\r\n class=\"btn btn-primary\"\r\n type=\"submit\"\r\n [disabled]=\"!confirmForm.form.valid || loading\"\r\n translate\r\n >\r\n Save\r\n </button>\r\n </div>\r\n </form>\r\n</c8y-modal>\r\n"}]}],"members":{"passwordConfirmedEmitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":14,"character":3}}]}],"modal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":18,"character":3},"arguments":["modal",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":21,"character":17},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":23,"character":20},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"LoginService"}]}],"passwordConfirm":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"createNewClient":[{"__symbolic":"method"}],"emitSuccessAndClose":[{"__symbolic":"method"}]}},"PasswordConfirm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[passwordConfirm]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":7,"character":15},"useExisting":{"__symbolic":"reference","name":"PasswordConfirm"},"multi":true}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":16,"character":15},"arguments":["passwordConfirm"]}]],"parameters":[{"__symbolic":"reference","name":"string"}]}],"validate":[{"__symbolic":"method"}]}},"PasswordService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":32,"character":36}]}],"confirmPassword":[{"__symbolic":"method"}],"hasLowerCase":[{"__symbolic":"method"}],"hasUpperCase":[{"__symbolic":"method"}],"hasNumbers":[{"__symbolic":"method"}],"hasSpecialChars":[{"__symbolic":"method"}],"getStrengthColor":[{"__symbolic":"method"}],"getDefaultPasswordMinLength":[{"__symbolic":"method"}]}},"HOOK_SEARCH":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":11,"character":31},"arguments":["SearchFactory"]},"SearchService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":16,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":25,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":26,"character":12}]}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"HighlightComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-highlight","template":"<span [innerHTML]=\"highlightedText\"></span>"}]}],"members":{"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":13,"character":3},"arguments":["text",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":13,"character":29},"static":true}]}]}],"pattern":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"elementClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"SearchComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-search","template":"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":["template",{"static":false}]}]}],"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"term":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"SearchService"}]}],"onSearch":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"Search":{"__symbolic":"interface"},"SearchFactory":{"__symbolic":"interface"},"SearchModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"SearchOutletComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"HighlightComponent"},{"__symbolic":"reference","name":"SearchResultEmptyComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":25,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":26,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":28,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"SearchOutletComponent"},{"__symbolic":"reference","name":"SearchComponent"},{"__symbolic":"reference","name":"HighlightComponent"},{"__symbolic":"reference","name":"SearchResultEmptyComponent"}]}]}],"members":{}},"SearchResultEmptyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-search-result-empty","template":"<div class=\"no-results\">\n <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div class=\"p-t-8\">\n <p><strong>{{ message | translate }}</strong></p>\n <small translate>Refine your search terms.</small>\n </div>\n </div>\n</div>\n"}]}],"members":{"_message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["message"]}]}]}},"SearchOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-search-outlet","template":"<ng-container *ngFor=\"let item of getByPriority()\">\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n</ng-container>\n"}]}],"members":{"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AlertService"}]}],"getByPriority":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ConditionalTabsOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":83,"character":1},"arguments":[{"selector":"c8y-conditional-tabs-outlet","template":"\n <router-outlet></router-outlet>\n "}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":92,"character":64}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"TabsOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-tabs-outlet,c8y-ui-tabs","template":"<div #container class=\"tabContainer hidden-xs\">\n <button class=\"tabs-slider tabs-slider-left\" #left *ngIf=\"showLeft\" (click)=\"scroll('left')\">\n <i [c8yIcon]=\"'chevron-left'\"></i>\n </button>\n <button class=\"tabs-slider tabs-slider-right\" #right *ngIf=\"showRight\" (click)=\"scroll('right')\">\n <i [c8yIcon]=\"'chevron-right'\"></i>\n </button>\n <ul class=\"nav nav-tabs nav-tabsc8y\" #tabsContainer>\n <li [ngClass]=\"{'active': rla.isActive}\" *ngFor=\"let tab of tabs\">\n <a [routerLink]=\"tab.path\" routerLinkActive #rla=\"routerLinkActive\" title=\"{{tab?.label | translate}}\">\n <i [c8yIcon]=\"tab?.icon\" *ngIf=\"!tab.template && tab?.icon\"></i>\n <span class=\"txt\" *ngIf=\"!tab.template\">{{tab?.label | translate}}</span>\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </a>\n </li>\n </ul>\n</div>\n\n<div class=\"visible-xs mobile-tabs\">\n <div class=\"c8y-select-wrapper\">\n <select (change)=\"navigateTo($event.target.value)\" #select>\n <option *ngFor=\"let tab of tabs\" [value]=\"tab.path\" [selected]=\"isActive(tab)\">\n {{tab?.label | translate}}\n </option>\n </select>\n </div>\n</div>\n"}]}],"members":{"tabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"isNavigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":27,"character":3},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":30,"character":3},"arguments":["class.page-tabs"]}]}],"isHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":37,"character":3},"arguments":["class.page-tabs-horizontal"]}]}],"isVertical":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":40,"character":3},"arguments":["class.page-tabs-vertical"]}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":["container",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":43,"character":33},"static":true}]}]}],"leftBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":44,"character":3},"arguments":["left",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":44,"character":28},"static":false}]}]}],"rightBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["right",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":45,"character":29},"static":false}]}]}],"tabsContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":46,"character":3},"arguments":["tabsContainer",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":46,"character":37},"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":50,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":51,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":52,"character":16},{"__symbolic":"reference","name":"HeaderService"}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}],"scroll":[{"__symbolic":"method"}],"scrollSubscribe":[{"__symbolic":"method"}],"updateScroll":[{"__symbolic":"method"}],"getDimensions":[{"__symbolic":"method"}]}},"Tab":{"__symbolic":"interface"},"TabFactory":{"__symbolic":"interface"},"TabComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"c8y-tab","template":"<ng-template #tpl><ng-content></ng-content></ng-template>"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":["tpl",{"static":false}]}]}],"path":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TabsService"}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"HOOK_TABS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":29},"arguments":["TabsFactory"]},"TabsService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":22,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":23,"character":12},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":24,"character":30},{"__symbolic":"reference","name":"OptionsService"}]}],"prepareTabs":[{"__symbolic":"method"}],"sortTabs":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"TabsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ConditionalTabsOutletComponent"},{"__symbolic":"reference","name":"TabsOutletComponent"},{"__symbolic":"reference","name":"TabComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":16,"character":4},"member":"forChild"},"arguments":[[]]},{"__symbolic":"reference","name":"HeaderModule"}],"exports":[{"__symbolic":"reference","name":"ConditionalTabsOutletComponent"},{"__symbolic":"reference","name":"TabsOutletComponent"},{"__symbolic":"reference","name":"TabComponent"}]}]}],"members":{}},"DropAreaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":29,"character":1},"arguments":[{"selector":"c8y-drop-area","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":32,"character":25},"useExisting":{"__symbolic":"reference","name":"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>\n <div class=\"file-placeholder\" [ngClass]=\"{ 'drag-over': isOver }\">\n <div *ngIf=\"loading\" class=\"d-flex p-4 flex-center\">\n <p class=\"flex-item-middle m-r-8\">\n {{ loadingMessage | translate }}\n </p>\n <div class=\"progress progress-striped active m-0\" *ngIf=\"progress !== -1\"\n style=\"min-width: 50%;\">\n <div\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\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>or click to browse your computer.</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 class=\"drop-zone\" *ngIf=\"shouldShowFilesList()\"\n [style.display]=\"isOver || alwaysShow || loading ? 'block' : 'none'\">\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 class=\"progress progress-striped active m-0\" *ngIf=\"progress !== -1\"\n style=\"min-width: 80%;\">\n <div\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=\"flex-row 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 class=\"btn btn-clean showOnHover flex-item-right\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\" (click)=\"onDelete()\"></i>\n </button>\n </div>\n </div>\n</div>\n\n<input\n #picker\n *ngIf=\"clickToOpen\"\n (change)=\"onPick($event)\"\n (click)=\"picker.focus()\"\n (blur)=\"onTouched()\"\n [accept]=\"accept\"\n [multiple]=\"maxAllowedFiles > 1\"\n type=\"file\"\n style=\"opacity: 0; filter: alpha(opacity = 0); height: 0px\"\n/>\n<div #area [hidden]=\"isOver || loading\" (dragover)=\"toggle($event)\">\n <ng-content></ng-content>\n</div>\n"}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"loadingMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"alwaysShow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"clickToOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"progress":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"files":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"accept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"area":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":54,"character":3},"arguments":["area",{"static":true}]}]}],"zone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":55,"character":3},"arguments":["zone",{"static":false}]}]}],"picker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":56,"character":3},"arguments":["picker",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":58,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"showPicker":[{"__symbolic":"method"}],"onOver":[{"__symbolic":"method"}],"onPick":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"shouldShowFilesList":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"onDelete":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"onFilesSelected":[{"__symbolic":"method"}],"getFilesNamesAsString":[{"__symbolic":"method"}],"isFilesArrayEmpty":[{"__symbolic":"method"}],"isTooManyFiles":[{"__symbolic":"method"}],"hasEmptyFiles":[{"__symbolic":"method"}],"isAnyFileEmpty":[{"__symbolic":"method"}],"clearErrors":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"compose":[{"__symbolic":"method"}],"read":[{"__symbolic":"method"}],"onLoad":[{"__symbolic":"method"}]}},"DroppedFile":{"__symbolic":"interface"},"DropAreaModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"DropAreaComponent"}],"declarations":[{"__symbolic":"reference","name":"DropAreaComponent"}]}]}],"members":{}},"FilePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":4},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":18,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":20,"character":4}],"exports":[{"__symbolic":"reference","name":"FilePickerComponent"}],"declarations":[{"__symbolic":"reference","name":"FilePickerComponent"}]}]}],"members":{}},"FilePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"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 btn-clean text-primary m-l-4\"\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 [maxAllowedFiles]=\"maxAllowedFiles\"\n [files]=\"droppedFiles\"\n >\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 required\n />\n </div>\n </div>\n </c8y-form-group>\n</div>\n"}]}],"members":{"dropArea":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":23,"character":3},"arguments":[{"__symbolic":"reference","name":"DropAreaComponent"},{"static":true}]}]}],"onFilesPicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":24,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"uploadChoice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"fileUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"fileBinary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"fileUrlPopover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"onFileDropped":[{"__symbolic":"method"}],"clearInputFromUrl":[{"__symbolic":"method"}],"clearSelectedFiles":[{"__symbolic":"method"}],"onFileUrlChange":[{"__symbolic":"method"}],"isPopoverUsed":[{"__symbolic":"method"}]}},"PickedFiles":{"__symbolic":"interface"},"DatePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":17,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":19,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":20,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/datepicker","name":"BsDatepickerModule","line":21,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"DatePickerComponent"}],"declarations":[{"__symbolic":"reference","name":"DatePickerComponent"}]}]}],"members":{}},"DatePickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-date-picker","template":"<div\n dropdown\n class=\"c8y-child-assets-selector\"\n #datefilter=\"bs-dropdown\"\n placement=\"bottom left\"\n [autoClose]=\"false\"\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-controls=\"dropdown-date-range\"\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 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 formControlName=\"dateFrom\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date from' | translate }}\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today', returnFocusToInput: true }\"\n />\n </c8y-form-group>\n <span 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 formControlName=\"dateTo\"\n class=\"form-control fit-w text-left\"\n placeholder=\"{{ 'Date to' | translate }}\"\n bsDatepicker\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"}]}],"members":{"onDateSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":9,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"filter":[{"__symbolic":"method"}],"clearFilter":[{"__symbolic":"method"}]}},"PickedDates":{"__symbolic":"interface"},"UserEditModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"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 [showProductUsageSetting]=\"showProductUsageSetting\"\n (onLanguage)=\"onLanguage($event)\"\n (onProductExperience)=\"onProductExperience($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n >\n </c8y-user-edit>\n</c8y-modal>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":28,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":29,"character":17},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":31,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":32,"character":20},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"UserPreferencesService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":36,"character":26},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"GainsightService"},{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"onLanguage":[{"__symbolic":"method"}],"onProductExperience":[{"__symbolic":"method"}],"updateAndClose":[{"__symbolic":"method"}],"persistLanguage":[{"__symbolic":"method"}],"gainsightTrackingAppReload":[{"__symbolic":"method"}],"updateUserInAppState":[{"__symbolic":"method"}],"updateCredentials":[{"__symbolic":"method"}]}},"UserMenuService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"User":{"__symbolic":"interface"},"UserEditComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"selector":"c8y-user-edit","template":"<form #userForm=\"ngForm\" (ngSubmit)=\"userForm.form.valid && save()\">\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 authorization\n server.\n </div>\n <c8y-form-group>\n <label translate for=\"userName\">Username (e.g. 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\" style=\"margin-left:-15px; margin-right:-15px\">\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 c8yDefaultValidation=\"phoneNumber\"\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-8 p-b-8 separator-top\" *ngIf=\"showProductUsageSetting\">\n <strong translate>Product experience</strong>\n <label class=\"c8y-switch\" for=\"productUsageTracking\">\n <input\n id=\"productUsageTracking\"\n name=\"productUsageTracking\"\n type=\"checkbox\"\n [(ngModel)]=\"isUsageTrackingEnabled\"\n />\n <span></span>\n {{ 'Enable anonymous tracking to enhance the product experience' | translate }}\n </label>\n </c8y-form-group>\n\n <div class=\"form-group\" *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\n <div class=\"modal-footer\">\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"}]}],"members":{"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"showProductUsageSetting":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"isUsageTrackingEnabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"onUser":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":3}}]}],"onLanguage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"onProductExperience":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"PasswordService"},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":59,"character":28},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":61,"character":25},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":62,"character":39},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":63,"character":27},{"__symbolic":"reference","name":"UserPreferencesService"}]}],"ngOnInit":[{"__symbolic":"method"}],"setupTotp":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"onNewPasswordChanged":[{"__symbolic":"method"}],"initializeTotpSettings":[{"__symbolic":"method"}],"canUserSetupTotp":[{"__symbolic":"method"}],"saveAfterPasswordConfirmation":[{"__symbolic":"method"}]}},"UserTotpRevokeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"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=\"right\"\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=\"{{ 'Revoke' | translate }}\"\n type=\"button\"\n class=\"btn btn-danger\"\n (click)=\"revoke(); popover.hide()\"\n translate\n >\n Revoke\n </button>\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</ng-template>\n"}]}],"members":{"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"revokeEmitter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3},"arguments":["revoke"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":13,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"revoke":[{"__symbolic":"method"}]}},"UserModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"UserMenuOutletComponent"},{"__symbolic":"reference","name":"UserEditComponent"},{"__symbolic":"reference","name":"UserEditModalComponent"},{"__symbolic":"reference","name":"UserMenuItemComponent"},{"__symbolic":"reference","name":"UserTotpSetupComponent"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}],"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":38,"character":4},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":41,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":42,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":43,"character":4}],"exports":[{"__symbolic":"reference","name":"UserMenuOutletComponent"},{"__symbolic":"reference","name":"UserMenuItemComponent"},{"__symbolic":"reference","name":"UserEditComponent"},{"__symbolic":"reference","name":"UserEditModalComponent"},{"__symbolic":"reference","name":"UserTotpSetupComponent"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}],"entryComponents":[{"__symbolic":"reference","name":"UserEditModalComponent"},{"__symbolic":"reference","name":"UserTotpSetupComponent"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}]}]}],"members":{}},"UserMenuItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-user-menu-item","template":"<ng-template #template>\n <li (click)=\"onClick()\">\n <a class=\"interact\" [attr.href]=\"link\" [attr.target]=\"target\">\n <i [c8yIcon]=\"icon\"></i>\n {{ label | translate }}\n <ng-content></ng-content>\n </a>\n </li>\n</ng-template>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"link":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"target":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":19,"character":3},"arguments":["template",{"static":false}]}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"UserMenuService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onClick":[{"__symbolic":"method"}]}},"UserMenuItem":{"__symbolic":"interface"},"UserTotpSetupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"c8y-user-totp-setup","template":"<c8y-modal [customFooter]=\"true\">\n <ng-container c8y-modal-title>\n <button\n title=\"{{ 'Close' | translate }}\"\n (click)=\"close()\"\n type=\"button\"\n class=\"close\"\n ><span aria-hidden=\"true\">×</span></button>\n <h3 class=\"text-center\" translate>Set up two-factor authentication</h3>\n </ng-container>\n <c8y-totp-setup></c8y-totp-setup>\n <c8y-totp-challenge (onSuccess)=\"totpSetupVerified($event)\"></c8y-totp-challenge>\n</c8y-modal>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":14,"character":18},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":16,"character":19},{"__symbolic":"reference","name":"LoginService"}]}],"totpSetupVerified":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"UserMenuOutletComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"c8y-user-menu-outlet","template":"<div\n dropdown\n class=\"dropdown\"\n>\n <button\n class=\"main-header-button c8y-dropdown dropdown-toggle text-nowrap\"\n dropdownToggle\n >\n <span\n class=\"d-inline-block hidden-xs text-truncate m-r-8\"\n style=\"vertical-align: text-bottom; max-width: 104px;\"\n title=\"{{ui.currentUser | async | shortenUserName}}\"\n >\n {{ui.currentUser | async | shortenUserName}}\n </span>\n <i\n [c8yIcon]=\"'c8y-user'\"\n class=\"icon-2x\"\n ></i>\n </button>\n <ul\n *dropdownMenu\n class=\"dropdown-menu dropdown-menu-right\"\n style=\"max-width: 240px;\"\n >\n <ng-container *ngFor=\"let item of getSortedItems()\">\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 (click)=\"item.click()\">\n <a class=\"interact\" [attr.href]=\"item.link\" [attr.target]=\"item.target\">\n <i [c8yIcon]=\"item.icon\"></i>\n {{item.label | translate}}\n </a>\n </li>\n </ng-container>\n </ng-container>\n <li\n *ngIf=\"!(ui.state$ | async).hidePowered\"\n role=\"separator\"\n class=\"divider\"\n ></li>\n <li\n class=\"dropdown-header bg-gray-white text-pre-normal\"\n style=\"margin-top: -1px;\"\n *ngIf=\"!(ui.state$ | async).hidePowered\"\n >\n <div class=\"flex-row\">\n <i\n [c8yIcon]=\"'info-circle'\"\n class=\"text-info flex-item-v-start text-14\"\n style=\"margin: 1px 6px 0 -3px;\"\n ></i>\n <span class=\"text-muted text-truncate\">\n {{'Tenant ID' | translate}}: <strong>\n <span class=\"text-primary interact\" (click)=\"$event.stopPropagation(); copyIt(ui.currentTenant.value.name)\">\n {{ui.currentTenant.value.name}} \n <i [c8yIcon]=\"'clipboard'\"></i>\n </span>\n </strong><br>\n {{'Backend' | translate}}: <strong>{{(ui.state$ | async).versions.backend}}</strong><br>\n {{'UI' | translate }}: <strong>{{ui.uiVersion}}</strong>\n </span>\n </div>\n </li>\n </ul>\n</div>\n\n<!-- the default items -->\n<c8y-user-menu-item\n [icon]=\"'user-menu-male'\"\n [label]=\"'User settings' | translate\"\n [priority]=\"20\"\n (click)=\"editUser()\"\n></c8y-user-menu-item>\n<c8y-user-menu-item\n [icon]=\"'sign-out'\"\n [label]=\"'Logout' | translate\"\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 (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 (click)=\"deactivateSupportAccess()\"\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></c8y-user-menu-item>\n"}]}],"members":{"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":29,"character":28},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":32,"character":30},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":33,"character":27},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":35,"character":18},{"__symbolic":"reference","name":"OptionsService"}]}],"copyIt":[{"__symbolic":"method"}],"editUser":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"activateSupportAccess":[{"__symbolic":"method"}],"deactivateSupportAccess":[{"__symbolic":"method"}],"getSortedItems":[{"__symbolic":"method"}],"refreshCurrentUser":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ViewContext":{"Device":"device/:id","Group":"group/:id","User":"users/:id","Application":"applications/:id","SubscribedApplications":"subscribedApplications/:id","Tenant":"tenants/:id","Report":"reports/:id"},"Route":{"__symbolic":"interface"},"RouteFactory":{"__symbolic":"interface"},"ContextRouteService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"RouterTabsResolver"},{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":29,"character":20},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":30,"character":24},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":31,"character":22}]}],"init":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"refreshContext":[{"__symbolic":"method"}],"updatedContext":[{"__symbolic":"method"}],"updateTabs":[{"__symbolic":"method"}],"redirectToFirstTab":[{"__symbolic":"method"}],"needsRedirect":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"routes":[{"path":"users/new","component":{"__symbolic":"reference","name":"EmptyComponent"}},{"path":"tenants/new","component":{"__symbolic":"reference","name":"EmptyComponent"}}],"RouterModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":33,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ContextRouteComponent"},{"__symbolic":"reference","name":"EmptyComponent"}],"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":36,"character":4},"member":"forRoot"},"arguments":[{"__symbolic":"reference","name":"routes"}]},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"CommonModule"}],"entryComponents":[{"__symbolic":"reference","name":"ContextRouteComponent"},{"__symbolic":"reference","name":"EmptyComponent"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"RouterService"}]}]},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"reference","name":"ContextRouteGuard"},{"__symbolic":"reference","name":"RouterTabsResolver"},{"__symbolic":"reference","name":"RouterService"}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"RouterModule"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"RouterModule"},"member":"providers"}}}}}},"ContextRouteGuard":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":10,"character":32}]}],"canActivate":[{"__symbolic":"method"}],"service":[{"__symbolic":"method"}],"detailCached":[{"__symbolic":"method"}],"clearDetailCached":[{"__symbolic":"method"}],"getCache":[{"__symbolic":"method"}]}},"RouterTabsResolver":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":9,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":9,"character":58}]}],"resolve":[{"__symbolic":"method"}],"getGuards":[{"__symbolic":"method"}]}},"HOOK_ONCE_ROUTE":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":10,"character":35},"arguments":["RouteFactory"]},"RouterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":15,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":17},"arguments":[{"__symbolic":"reference","name":"HOOK_ONCE_ROUTE"}]}],null,null,null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"RouteFactory"}]},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":21,"character":20},{"__symbolic":"reference","name":"TabsService"},{"__symbolic":"reference","name":"ContextRouteService"}]}],"refresh":[{"__symbolic":"method"}],"addRoute":[{"__symbolic":"method"}],"addRoutes":[{"__symbolic":"method"}],"convertRoute":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"EmptyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"empty","template":""}]}],"members":{}},"ContextRouteComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-context-route","template":"<router-outlet></router-outlet>\n"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":9,"character":29},{"__symbolic":"reference","name":"ContextRouteService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refreshTabs":[{"__symbolic":"method"}]}},"ViewContextServices":{"__symbolic":"class","members":{},"statics":{"services":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Map"},"arguments":[[[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Device"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":10,"character":25}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Group"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":11,"character":24}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"User"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":12,"character":23}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Application"},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":13,"character":30}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"SubscribedApplications"},{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":14,"character":41}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Tenant"},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":15,"character":25}],[{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContext"},"member":"Report"},{"__symbolic":"reference","module":"@c8y/client","name":"InventoryService","line":16,"character":25}]]]},"contextToService":{"__symbolic":"function","parameters":["context"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ViewContextServices"},"member":"services"},"member":"get"},"arguments":[{"__symbolic":"reference","name":"context"}]}}}},"InputGroupListContainerDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":12,"character":1},"arguments":[{"selector":"[c8yInputGroupListContainer]"}]}],"members":{"listProjections":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":16,"character":3},"arguments":[{"__symbolic":"reference","name":"InputGroupListComponent"}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}]}},"TextAreaRowHeightDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"textarea[heightPerRow]"}]}],"members":{"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":7,"character":3},"arguments":["rows"]}]}],"heightPerRow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3},"arguments":["heightPerRow"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":28},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":15,"character":58}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"setHeight":[{"__symbolic":"method"}]}},"RequiredInputPlaceholderDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"input[required]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":12,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":13,"character":22},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":14,"character":32}]}],"ngAfterViewChecked":[{"__symbolic":"method"}],"getTextForPlaceholder":[{"__symbolic":"method"}],"updatePlaceholder":[{"__symbolic":"method"}]}},"FormGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":38,"character":1},"arguments":[{"selector":"c8y-form-group","host":{"class":"form-group"},"template":"<ng-content></ng-content>\n<c8y-messages *ngIf=\"!customErrorMessage\" [show]=\"errors\"></c8y-messages>\n"}]}],"members":{"hasError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"hasWarning":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"hasSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":3}}]}],"novalidation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"error":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":51,"character":3},"arguments":["class.has-error"]}]}],"warning":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":54,"character":3},"arguments":["class.has-warning"]}]}],"success":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":57,"character":3},"arguments":["class.has-success"]}]}],"customErrorMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":60,"character":3},"arguments":[{"__symbolic":"reference","name":"MessagesComponent"},{"static":false}]}]}],"model":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":61,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/forms","name":"NgModel","line":61,"character":16},{"static":true}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"initNgModel":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"FilterInputComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-filter","template":"<div class=\"input-group input-group-search\">\n <input\n class=\"form-control\"\n placeholder=\"{{ 'Filter…' | translate }}\"\n type=\"text\"\n [value]=\"filterTerm\"\n (keyup)=\"filterChange$.next($event)\"\n />\n <span class=\"input-group-btn\">\n <button class=\"btn btn-clean\" (click)=\"reset()\">\n <i [c8yIcon]=\"filterTerm.length === 0 ? icon : 'close'\"></i>\n </button>\n </span>\n</div>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"onSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"DefaultValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[c8yDefaultValidation]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":6,"character":24},"useExisting":{"__symbolic":"reference","name":"DefaultValidationDirective"},"multi":true}]}]}],"members":{"c8yDefaultValidation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"validate":[{"__symbolic":"method"}]}},"MessageDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"c8y-message"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3}}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}]}},"MinValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[min]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":7,"character":24},"useExisting":{"__symbolic":"reference","name":"MinValidationDirective"},"multi":true}]}]}],"members":{"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"validate":[{"__symbolic":"method"}]}},"JsonValidationPrettifierDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":7,"character":1},"arguments":[{"selector":"textarea[prettyValidJson]"}]}],"members":{"invalidJSON":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":11,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"NgControl","line":17,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"validateInputAndPrettify":[{"__symbolic":"method"}],"setErrorAndValidationMessage":[{"__symbolic":"method"}],"clearValidationMessage":[{"__symbolic":"method"}]}},"IpRangeInputListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"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"}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"PhoneValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":4,"character":1},"arguments":[{"selector":"[c8yPhoneValidation]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":6,"character":24},"useExisting":{"__symbolic":"reference","name":"PhoneValidationDirective"},"multi":true}]}]}],"members":{"validate":[{"__symbolic":"method"}],"validateInternationalPhoneNumber":[{"__symbolic":"method"}]}},"MessagesComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"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"}]}],"members":{"show":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"defaults":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"customMessages":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":14,"character":3},"arguments":[{"__symbolic":"reference","name":"MessageDirective"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":18,"character":40}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"changVisibility":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"toMessage":[{"__symbolic":"method"}]}},"MaxValidationDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"[max]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":7,"character":24},"useExisting":{"__symbolic":"reference","name":"MaxValidationDirective"},"multi":true}]}]}],"members":{"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"validate":[{"__symbolic":"method"}]}},"ValidationRules":{"__symbolic":"interface"},"ValidationPattern":{"__symbolic":"class","members":{},"statics":{"messages":{"deviceId":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":13,"character":14},"arguments":["Device ID must not contain spaces or slashes (\"/\")."]},"domain":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":14,"character":12},"arguments":["Only lowercase letters, digits and hyphens allowed in the first part of the URI. Must start with a letter; hyphens only allowed in the middle. Must be a valid URI."]},"email":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":18,"character":11},"arguments":["Invalid email address."]},"emails":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":19,"character":12},"arguments":["Invalid email addresses."]},"internationalPhoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":20,"character":30},"arguments":["International phone number required, in the format +49 9 876 543 210."]},"loginAlias":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":23,"character":16},"arguments":["Login alias must not contain slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]},"max":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":26,"character":9},"arguments":["Max value: {{ value }}"]},"min":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":27,"character":9},"arguments":["Min value: {{ value }}"]},"opcuaBrowsePath":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":28,"character":21},"arguments":["Invalid OPC UA URI."]},"password":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":29,"character":14},"arguments":["Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:'\",.<>{}[]\\/"]},"passwordConfirm":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":32,"character":21},"arguments":["Passwords do not match."]},"passwordStrength":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":33,"character":22},"arguments":["Password not good enough, password must be stronger (green)."]},"phoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":34,"character":17},"arguments":["Invalid phone number format. Only digits, spaces, slashes (\"/\") and dashes (\"-\") allowed."]},"required":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":37,"character":14},"arguments":["This field is required."]},"tenantId":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":38,"character":14},"arguments":["May contain lowercase letters, digits, and hyphens. Must start with a letter; hyphens only allowed in the middle; minimum 2 characters."]},"urlSegment":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":42,"character":16},"arguments":["Slash, single or double dots and white space not allowed."]},"user":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":43,"character":10},"arguments":["Username must not contain spaces nor slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]}},"rules":{"__symbolic":"error","message":"Expression form not supported","line":50,"character":15}}},"InputGroupListComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"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 class=\"btn btn-clean text-primary\"\n (click)=\"remove()\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\"></i>\n </button>\n <button\n *ngIf=\"plus\"\n title=\"{{ 'Add' | translate }}\"\n class=\"btn btn-clean text-primary\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-circle\"></i>\n </button>\n </div>\n </div>\n</ng-container>\n"}]}],"members":{"plus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"minus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"onRemove":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":3}}]}],"onAdd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":20,"character":3}}]}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"FormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":27,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":28,"character":26}],"exports":[{"__symbolic":"reference","name":"PhoneValidationDirective"},{"__symbolic":"reference","name":"DefaultValidationDirective"},{"__symbolic":"reference","name":"MinValidationDirective"},{"__symbolic":"reference","name":"MaxValidationDirective"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":34,"character":4},{"__symbolic":"reference","name":"FormGroupComponent"},{"__symbolic":"reference","name":"MessageDirective"},{"__symbolic":"reference","name":"MessagesComponent"},{"__symbolic":"reference","name":"InputGroupListComponent"},{"__symbolic":"reference","name":"InputGroupListContainerDirective"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"RequiredInputPlaceholderDirective"},{"__symbolic":"reference","name":"IpRangeInputListComponent"},{"__symbolic":"reference","name":"FilterInputComponent"},{"__symbolic":"reference","name":"ɵf"}],"declarations":[{"__symbolic":"reference","name":"PhoneValidationDirective"},{"__symbolic":"reference","name":"DefaultValidationDirective"},{"__symbolic":"reference","name":"MinValidationDirective"},{"__symbolic":"reference","name":"MaxValidationDirective"},{"__symbolic":"reference","name":"FormGroupComponent"},{"__symbolic":"reference","name":"MessageDirective"},{"__symbolic":"reference","name":"MessagesComponent"},{"__symbolic":"reference","name":"InputGroupListComponent"},{"__symbolic":"reference","name":"InputGroupListContainerDirective"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"RequiredInputPlaceholderDirective"},{"__symbolic":"reference","name":"IpRangeInputListComponent"},{"__symbolic":"reference","name":"FilterInputComponent"},{"__symbolic":"reference","name":"ɵf"}]}]}],"members":{}},"FormGroupConfig":{"__symbolic":"interface"},"SendStatus":{"AVAILABLE":"AVAILABLE","UNAVAILABLE":"UNAVAILABLE","UNKNOWN":"UNKNOWN","MAINTENANCE":"MAINTENANCE","NOT_MONITORED":"NOT_MONITORED"},"PushStatus":{"CONNECTED":"CONNECTED","DISCONNECTED":"DISCONNECTED","UNKNOWN":"UNKNOWN","MAINTENANCE":"MAINTENANCE"},"SendStatusLabels":{"AVAILABLE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection: online"]},"NOT_MONITORED":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection: not monitored"]},"UNAVAILABLE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection: offline"]},"UNKNOWN":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Send connection status unknown"]},"MAINTENANCE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device is under maintenance"]}},"PushStatusLabels":{"CONNECTED":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Push connection: active"]},"DISCONNECTED":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Push connection: inactive"]},"UNKNOWN":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Push connection: inactive"]},"MAINTENANCE":{"__symbolic":"call","expression":{"__symbolic":"reference","name":"gettext"},"arguments":["Device is under maintenance"]}},"deviceAvailabilityIconMap":{"__symbolic":"error","message":"Expression form not supported","line":36,"character":4,"module":"./core/device-status/device-availability"},"tooltips":{"__symbolic":"error","message":"Lambda not supported","line":80,"character":23,"module":"./core/device-status/device-availability"},"DeviceStatusModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":11,"character":8}],"exports":[{"__symbolic":"reference","name":"DeviceStatusComponent"}],"declarations":[{"__symbolic":"reference","name":"DeviceStatusComponent"}]}]}],"members":{}},"DeviceStatusComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"device-status","template":"<!-- ATTENTION: keep text format in `tooltip` attribute -->\n<div class=\"statusContainer\"\n title=\"{{status().sendStatus.tooltip | translate}}\n{{status().pushStatus.tooltip | translate}}\"\n placement=\"left\"\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 >\n </div>\n\n <div *ngIf=\"!!status().maintenanceStatus\"\n class=\"maintenanceStatus\"\n tooltip=\"{{status().maintenanceStatus.tooltip | translate}}\"\n container=\"body\"\n placement=\"auto\"\n [c8yIcon]=\"status().maintenanceStatus.icon\"\n [ngClass]=\"status().maintenanceStatus.class\"></div>\n</div>\n"}]}],"members":{"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3},"arguments":["mo"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":25,"character":40}]}],"get":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"setStatusProperites":[{"__symbolic":"method"}],"status":[{"__symbolic":"method"}],"getMaintenanceStatus":[{"__symbolic":"method"}],"getSendPushStatus":[{"__symbolic":"method"}],"getSendStatusTooltip":[{"__symbolic":"method"}],"getPushStatusTooltip":[{"__symbolic":"method"}]}},"DocsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"GuideHrefDirective"},{"__symbolic":"reference","name":"GuideDocsComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":12}],"exports":[{"__symbolic":"reference","name":"GuideHrefDirective"},{"__symbolic":"reference","name":"GuideDocsComponent"}],"providers":[{"__symbolic":"reference","name":"DocsService"}]}]}],"members":{}},"DocLink":{"__symbolic":"interface"},"DocLinkFactory":{"__symbolic":"interface"},"HOOK_DOCS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":13,"character":29},"arguments":["Hook docs"]},"DocsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":20,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":20,"character":17},"arguments":[{"__symbolic":"reference","name":"HOOK_DOCS"}]}],null],"parameters":[{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DocLinkFactory"}]},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":21,"character":12}]}],"getBaseUrl":[{"__symbolic":"method"}],"getUserGuideLink":[{"__symbolic":"method"}],"list":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"getLink":[{"__symbolic":"method"}],"prefixWithSlash":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"GuideDocsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"[c8y-guide-docs]","template":"<ng-container *ngIf=\"!!baseUrl\">\n <ng-content></ng-content>\n</ng-container>\n"}]}],"members":{"links":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":22,"character":3},"arguments":[{"__symbolic":"reference","name":"GuideHrefDirective"},{"descendants":true}]}]}],"translateDirective":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":28,"character":3},"arguments":[{"__symbolic":"reference","name":"C8yTranslateDirective"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DocsService"},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":32,"character":53},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":32,"character":83}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"replaceAnchorAttributes":[{"__symbolic":"method"}],"findGuideAnchors":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"GuideHrefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":2,"character":1},"arguments":[{"selector":"[c8y-guide-href]"}]}],"members":{"c8yGuideHref":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":6,"character":3},"arguments":["c8y-guide-href"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":15,"character":34}]}]}},"DynamicFormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":11,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":12,"character":4},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":16,"character":4},"member":"forRoot"}}],"providers":[{"__symbolic":"reference","name":"C8yJSONSchema"}],"exports":[{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":19,"character":12},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":19,"character":26}]}]}],"members":{}},"C8yJSONSchema":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core/json-schema","name":"FormlyJsonschema","line":7,"character":35},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"toFieldConfig":[{"__symbolic":"method"}],"c8yOptions":[{"__symbolic":"method"}]}},"HOOK_COMPONENTS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":6,"character":35},"arguments":["Hook Dynamic Component"]},"HOOK_COMPONENT":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":12,"character":34},"arguments":["Hook Dynamic Component @deprecated"]},"DynamicComponentDefinition":{"__symbolic":"interface"},"DynamicComponent":{"__symbolic":"interface"},"OnBeforeSave":{"__symbolic":"interface"},"DynamicComponentModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"DynamicComponentComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":10,"character":12},{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":10,"character":26},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":10,"character":42},"member":"forChild"},"arguments":[[]]},{"__symbolic":"reference","name":"I18nModule"}],"exports":[{"__symbolic":"reference","name":"DynamicComponentComponent"}],"providers":[{"__symbolic":"reference","name":"DynamicComponentService"}]}]}],"members":{}},"DynamicComponentComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":45,"character":1},"arguments":[{"selector":"c8y-dynamic-component","template":"<ng-template #host></ng-template>\n\n<div class=\"alert alert-warning m-8\" role=\"alert\" *ngIf=\"notFoundError && error\">\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"}]}],"members":{"componentId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":3}}]}],"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"notFoundError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"host":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":71,"character":3},"arguments":["host",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":71,"character":29},"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":86,"character":38},{"__symbolic":"reference","name":"DynamicComponentService"}]}],"callLifeCycleHooks":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"loadComponent":[{"__symbolic":"method"}],"callOnBeforeSaveHook":[{"__symbolic":"method"}]}},"DynamicComponentService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":25,"character":32},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":25,"character":50}]}],"getComponentsViaDeprecatedHook":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"getById$":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"DashboardModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"DashboardChildComponent"},{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"DashboardChildTitleComponent"},{"__symbolic":"reference","name":"DashboardChildActionComponent"},{"__symbolic":"reference","name":"WidgetsDashboardComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ActionBarModule"},{"__symbolic":"reference","name":"DynamicComponentModule"},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":27,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":28,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"DocsModule"},{"__symbolic":"reference","name":"BreadcrumbModule"}],"exports":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"DashboardChildComponent"},{"__symbolic":"reference","name":"DashboardChildTitleComponent"},{"__symbolic":"reference","name":"DashboardChildActionComponent"},{"__symbolic":"reference","name":"WidgetsDashboardComponent"}]}]}],"members":{}},"WidgetsDashboardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-widgets-dashboard","host":{"style":"\n display: block;\n ","class":"dashboard c8y-grid-dashboard"},"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 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 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 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 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\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 (click)=\"onDeleteDashboard.emit()\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n >\n <i c8yIcon=\"trash\"></i>\n <span class=\"m-l-4\" translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<!-- empty state -->\n<div class=\"c8y-empty-state text-center\" *ngIf=\"!settings.isLoading && widgets.length === 0\">\n <h1 class=\"c8y-icon c8y-icon-device c8y-icon-duocolor\"></h1>\n <h3 translate>No widgets to display.</h3>\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 [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary\"\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\">\n User guide`KEEP_ORIGINAL`\n </a>.\n </small>\n </p>\n </div>\n</div>\n<!-- /.empty settings -->\n\n<div class=\"col-xs-12 text-center\" *ngIf=\"settings.isLoading\">\n <div class=\"spinner p-relative\">\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\n<c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n *ngIf=\"!settings.isLoading\"\n>\n <c8y-dashboard-child\n *ngFor=\"let widget of widgets\"\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 (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 (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"trash\"></i>\n <span class=\"m-l-4\" translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\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 ></c8y-dynamic-component>\n </c8y-dashboard-child>\n</c8y-dashboard>\n"}]}],"members":{"widgets":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"context":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"contextDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"_settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3},"arguments":["settings"]}]}],"breadcrumb":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"onAddWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"onEditWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":48,"character":3}}]}],"onDeleteWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":51,"character":3}}]}],"onChangeDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":3}}]}],"onEditDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":3}}]}],"onDeleteDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":60,"character":3}}]}],"onFreeze":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":63,"character":3}}]}],"onChangeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"onChangeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"toggleFullscreen":[{"__symbolic":"method"}],"fullScreen":[{"__symbolic":"method"}]}},"DashboardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":121,"character":1},"arguments":[{"selector":"c8y-dashboard","host":{"class":"c8y-grid-dashboard dashboard-grid"},"changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":127,"character":19},"member":"OnPush"},"template":"<ng-content></ng-content>\n"}]}],"members":{"children":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":133,"character":3},"arguments":[{"__symbolic":"reference","name":"DashboardChildComponent"}]}]}],"columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":140,"character":3}}]}],"gap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":145,"character":3}}]}],"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":151,"character":3}}]}],"dashboardChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":156,"character":3}}]}],"inlineStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":180,"character":3},"arguments":["attr.style"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":196,"character":31},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":196,"character":62}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"onResize":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":203,"character":3},"arguments":["window:resize"]}]}],"getLastRow":[{"__symbolic":"method"}],"updateRectSize":[{"__symbolic":"method"}],"emitChange":[{"__symbolic":"method"}],"calculateRowSize":[{"__symbolic":"method"}]}},"LegacyWidget":{"__symbolic":"interface"},"Widget":{"__symbolic":"interface"},"DashboardSettings":{"__symbolic":"interface"},"DashboardChildDimension":{"__symbolic":"interface"},"DashboardChildResizeDimension":{"__symbolic":"interface"},"DashboardChildArrangement":{"__symbolic":"interface"},"DashboardChange":{"__symbolic":"interface"},"WidgetChange":{"__symbolic":"interface"},"DashboardChildComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":64,"character":1},"arguments":[{"selector":"c8y-dashboard-child","host":{"class":"dashboard-grid-child"},"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 container=\"body\" placement=\"bottom right\">\n <a\n title=\"{{ 'Settings' | translate }}\"\n href=\"\"\n class=\"btnIcon c8y-dropdown\"\n (click)=\"(false)\"\n dropdownToggle\n >\n <i [c8yIcon]=\"'cog'\"></i>\n </a>\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\"\n cdkDrag\n [cdkDragDisabled]=\"isFrozen\"\n (cdkDragStarted)=\"resizeStarted($event)\"\n (cdkDragEnded)=\"reset($event)\"\n ></div>\n <div class=\"resize-icon\" *ngIf=\"!isFrozen && !isDragging\"></div>\n\n <div *cdkDragPlaceholder class=\"card-placeholder\"></div>\n </div>\n</div>\n"}]}],"members":{"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":72,"character":3},"arguments":[{"__symbolic":"reference","name":"DashboardChildActionComponent"}]}]}],"x":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"y":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":89,"character":3}}]}],"width":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":99,"character":3}}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"margin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":109,"character":3}}]}],"isFrozen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3}}]}],"useIntersection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"changeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":125,"character":3}}]}],"changeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":130,"character":3}}]}],"class":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3}}]}],"inlineStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":161,"character":3},"arguments":["attr.style"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":185,"character":5},"arguments":[{"__symbolic":"reference","name":"DashboardComponent"}]}],null,null],"parameters":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":186,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":187,"character":20}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"setDynamicDimension":[{"__symbolic":"method"}],"resizeStarted":[{"__symbolic":"method"}],"dragStarted":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"getOrder":[{"__symbolic":"method"}],"childInView":[{"__symbolic":"method"}]}},"DashboardChildActionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-dashboard-child-action","template":"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>\n"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":7,"character":3},"arguments":["template",{"static":false}]}]}]}},"DashboardChildChange":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DashboardChildComponent"}]}],"findFreeDimension":[{"__symbolic":"method"}],"collapseUpAll":[{"__symbolic":"method"}],"arrangeAll":[{"__symbolic":"method"}],"arrangePipe":[{"__symbolic":"method"}],"collapseUp":[{"__symbolic":"method"}],"setDimension":[{"__symbolic":"method"}],"setPixelSize":[{"__symbolic":"method"}],"getPixelSize":[{"__symbolic":"method"}],"getDimensionSize":[{"__symbolic":"method"}],"getDimensionPosition":[{"__symbolic":"method"}],"doesCollide":[{"__symbolic":"method"}],"getCollided":[{"__symbolic":"method"}]}},"DashboardChildTitleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-dashboard-child-title","template":"<div class=\"card-title\">\n <ng-content></ng-content>\n</div>\n"}]}],"members":{}},"C8yStepper":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":97,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":92,"character":1},"arguments":[{"selector":"c8y-stepper","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":95,"character":25},"useExisting":{"__symbolic":"reference","name":"C8yStepper"}}],"template":"<ul 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 (onStepClicked)=\"setIndex($event)\"\n title=\"{{ step.label | translate }}\"\n [ngClass]=\"{'active': selectedIndex === i}\"\n >\n </c8y-stepper-progress>\n <div 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"}]}],"members":{"disableDefaultIcons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":102,"character":3}}]}],"customClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":3}}]}],"onStepChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":112,"character":3}}]}],"_icons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":140,"character":3},"arguments":[{"__symbolic":"reference","name":"C8yStepperIcon"},{"descendants":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/cdk/bidi","name":"Directionality","line":149,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":150,"character":31},{"__symbolic":"reference","name":"ElementRef","module":"@angular/core","arguments":[{"__symbolic":"error","message":"Could not resolve type","line":151,"character":36,"context":{"typeName":"HTMLElement"},"module":"./core/stepper/stepper.component"}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getIndicatorType":[{"__symbolic":"method"}],"setIndex":[{"__symbolic":"method"}]}},"C8yStepperProgress":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-stepper-progress","template":"<button\n type=\"button\"\n class=\"c8y-step\"\n [ngClass]=\"{ active: selected, 'step-done': state === 'done' || state === '_done' }\"\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 [c8yIcon]=\"'check'\"></span>\n </span>\n <span *ngSwitchDefault> {{ index + 1 }} </span>\n </ng-container>\n</button>\n"}]}],"members":{"iconOverrides":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"index":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"state":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"onStepClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"stepSelected":[{"__symbolic":"method"}]}},"C8yStepperButtons":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":66,"character":1},"arguments":[{"selector":"c8y-stepper-buttons","template":"<div class=\"text-center\">\n <button *ngIf=\"showBtns.cancel\" (click)=\"cancel()\" type=\"button\" class=\"btn btn-default\">\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 *ngIf=\"showBtns.back\"\n type=\"button\"\n (click)=\"back()\"\n class=\"btn btn-default\"\n [disabled]=\"pending\"\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 *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]=\"pending || disabled\"\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 (click)=\"next()\"\n *ngIf=\"showBtns.next\"\n type=\"button\"\n class=\"btn btn-primary\"\n [ngClass]=\"{ 'btn-pending': pending }\"\n [disabled]=\"disabled\"\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"}]}],"members":{"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"pending":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":86,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":91,"character":3}}]}],"onNext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":95,"character":3}}]}],"onBack":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":100,"character":3}}]}],"onCustom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":105,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":124,"character":15}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":124,"character":52}}]],"parameters":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":124,"character":73}]}],"showButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3}}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"back":[{"__symbolic":"method"}],"custom":[{"__symbolic":"method"}]}},"C8yStepperIcon":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":6,"character":1},"arguments":[{"selector":"ng-template[c8yStepperIcon]"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3},"arguments":["c8yStepperIcon"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"StepperModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepperModule","line":17,"character":26},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":17,"character":44}],"declarations":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","name":"C8yStepperIcon"},{"__symbolic":"reference","name":"C8yStepperProgress"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"exports":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":19,"character":24},{"__symbolic":"reference","name":"C8yStepperIcon"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"STEPPER_GLOBAL_OPTIONS","line":27,"character":15},"useValue":{"displayDefaultIndicatorType":false}}]}]}],"members":{}},"StepperButtonsVisibility":{"__symbolic":"interface"},"ListItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":54,"character":1},"arguments":[{"selector":"c8y-list-item, c8y-li","host":{"class":"c8y-list__item"},"template":"<div [ngClass]=\"{ 'expanded': !collapsed, interact: (itemCollapse && itemCollapse.collapseWay === 'row')}\">\n <div class=\"c8y-list__item__block\">\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 aria-haspopup=\"true\"\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"}]}],"members":{"active":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":67,"character":3},"arguments":["class.active"]}]}],"collapsed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"collapsedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":97,"character":3}}]}],"itemFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":112,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemFooterComponent"},{"static":false}]}]}],"itemActions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":132,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemActionComponent"}]}]}],"itemCollapse":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":147,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemCollapseComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":178,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showDropdownUp":[{"__symbolic":"method"}],"toggleCollapsed":[{"__symbolic":"method"}],"pulse":[{"__symbolic":"method"}]}},"ListItemBodyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"c8y-list-item-body, c8y-li-body","template":"<span *ngIf=\"body\">{{body}}</span>\n<ng-content></ng-content>\n"}]}],"members":{"body":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}]}},"ListItemCollapseComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"character":1},"arguments":[{"selector":"c8y-list-item-collapse, c8y-li-collapse","template":"<ng-content></ng-content>\n"}]}],"members":{"collapseWay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}]}},"ListItemActionComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"c8y-list-item-action, c8y-li-action","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"}]}],"members":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":3},"arguments":["template",{"static":false}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}]}},"ListItemRadioComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"c8y-list-item-radio, c8y-li-radio","host":{"class":"c8y-list__item__radio"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":31,"character":15},"multi":true,"useExisting":{"__symbolic":"reference","name":"ListItemRadioComponent"}}],"template":"<label class=\"c8y-radio\">\n <input\n #radio\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"selected\"\n (change)=\"change($event.target.checked); (false)\"\n [disabled]=\"disabled\"\n />\n <span></span>\n</label>\n<ng-content></ng-content>\n"}]}],"members":{"radio":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["radio",{"static":true}]}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":60,"character":3}}]}],"value":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"reset":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"change":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}]}},"ListItemFooterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-list-item-footer, c8y-li-footer","template":"<span *ngIf=\"footer\">{{footer}}</span>\n<ng-content></ng-content>\n"}]}],"members":{"footer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}]}},"ListGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":46,"character":1},"arguments":[{"selector":"c8y-list-group","host":{"class":"c8y-list__group"},"template":"<ng-content></ng-content>\n\n"}]}],"members":{"timeline":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":57,"character":3},"arguments":["class.c8y-list--timeline"]}]}],"timelineComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":76,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemTimelineComponent"},{"static":false}]}]}],"ngAfterContentChecked":[{"__symbolic":"method"}]}},"ListGroupModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":28,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":29,"character":26},"member":"forRoot"}},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":29,"character":52}],"declarations":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ListItemIconComponent"},{"__symbolic":"reference","name":"ListItemBodyComponent"},{"__symbolic":"reference","name":"ListItemFooterComponent"},{"__symbolic":"reference","name":"ListItemActionComponent"},{"__symbolic":"reference","name":"ListItemCollapseComponent"},{"__symbolic":"reference","name":"ListItemCheckboxComponent"},{"__symbolic":"reference","name":"ListItemRadioComponent"},{"__symbolic":"reference","name":"ListItemTimelineComponent"}],"exports":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ListItemIconComponent"},{"__symbolic":"reference","name":"ListItemBodyComponent"},{"__symbolic":"reference","name":"ListItemFooterComponent"},{"__symbolic":"reference","name":"ListItemActionComponent"},{"__symbolic":"reference","name":"ListItemCollapseComponent"},{"__symbolic":"reference","name":"ListItemCheckboxComponent"},{"__symbolic":"reference","name":"ListItemRadioComponent"},{"__symbolic":"reference","name":"ListItemTimelineComponent"}]}]}],"members":{}},"ListItemCheckboxComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/forms","name":"CheckboxControlValueAccessor","line":29,"character":47},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"c8y-list-item-checkbox, c8y-li-checkbox","host":{"class":"c8y-list__item__check"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":23,"character":15},"multi":true,"useExisting":{"__symbolic":"reference","name":"ListItemCheckboxComponent"}}],"template":"<label class=\"c8y-checkbox\">\n <input\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</label>\n<ng-content></ng-content>\n"}]}],"members":{"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":46,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":46,"character":63}]}],"ngOnChanges":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}]}},"ListItemIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-list-item-icon, c8y-li-icon","host":{"class":"c8y-list__item__icon"},"template":"<i [c8yIcon]=\"icon\" [ngClass]=\"status\" *ngIf=\"icon\"></i>\n<ng-content></ng-content>"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}]}},"ListItemTimelineComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"c8y-list-item-timeline, c8y-li-timeline","host":{"class":"c8y-list--timeline__item"},"template":"<small class=\"c8y-list--timeline__item__date\">\n <ng-content></ng-content>\n</small>\n<ng-content select=\"c8y-li, c8y-list-item\"></ng-content>\n"}]}],"members":{}},"QuickLinkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"QuickLinkComponent"}],"imports":[{"__symbolic":"reference","name":"CoreModule"}],"exports":[{"__symbolic":"reference","name":"QuickLinkComponent"}],"providers":[]}]}],"members":{}},"QuickLinkComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-quick-link","template":"<div [class]=\"classes\" title=\"{{ label | translate }}\">\r\n <h1 class=\"text-gray-darker\">\r\n <i [c8yIcon]=\"icon\" class=\"c8y-icon-duocolor\"></i>\r\n </h1>\r\n <p class=\"text-muted\">{{ label | translate }}</p>\r\n</div>\r\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"TypeaheadComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"c8y-typeahead","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":25,"character":15},"multi":true,"useExisting":{"__symbolic":"reference","name":"TypeaheadComponent"}},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":30,"character":15},"useExisting":{"__symbolic":"reference","name":"TypeaheadComponent"},"multi":true}],"template":"<div\n class=\"c8y-child-assets-selector dropdown\"\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 class=\"input-group input-group-dropdown\" dropdownToggle>\n <input\n #searchControl\n type=\"text\"\n class=\"form-control text-truncate p-r-24\"\n [required]=\"required\"\n [ngModel]=\"selected ? getDisplayProperty() : ''\"\n [placeholder]=\"placeholder | translate\"\n (blur)=\"doBlur()\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n title=\"{{ placeholder | translate }}\"\n />\n\n <span\n class=\"label label-info p-absolute\"\n style=\"top: 10px; right: 40px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >\n New\n </span>\n\n <span class=\"input-group-btn\">\n <button\n type=\"button\"\n class=\"btn btn-clean\"\n [disabled]=\"disabled\"\n (click)=\"onIconClick.emit(icon)\"\n >\n <i [c8yIcon]=\"icon\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu dropdown-menu--modal\" *dropdownMenu>\n <ng-content select=\"div, c8y-li, c8y-list-item, button, a\"></ng-content>\n </c8y-list-group>\n</div>\n"}]}],"members":{"searchControl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":["searchControl",{"static":false}]}]}],"dropdown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":["dropdown",{"static":false}]}]}],"list":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemComponent"}]}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"allowFreeEntries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"displayProperty":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"autoClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"onSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":73,"character":3}}]}],"onIconClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":76,"character":3}}]}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"doBlur":[{"__symbolic":"method"}],"getDisplayProperty":[{"__symbolic":"method"}],"onShown":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"handleKeyboard":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"selectNextItemOnKeyboardMove":[{"__symbolic":"method"}]}},"Item":{"__symbolic":"interface"},"selectedFunction":{"__symbolic":"interface"},"selectedLabelFunction":{"__symbolic":"interface"},"SelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":25,"character":1},"arguments":[{"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>\n <button\n type=\"button\"\n class=\"btn dropdown-toggle c8y-dropdown\"\n title=\"{{ labelText || placeholder | translate }}\"\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 }}…\"\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\"\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 }}\n </span>\n </label>\n </li>\n\n <li class=\"multiselect-item-container\">\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=\"bg-white\">\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"}]}],"members":{"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"selectedLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"applyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"updateItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"disableApplyOnNoSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"onChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"dropdown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownDirective","line":38,"character":13},{"static":false}]}]}],"liChildren":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":39,"character":3},"arguments":[{"__symbolic":"reference","name":"ListItemComponent"}]}]}],"preventClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":54,"character":3},"arguments":["click",["$event"]]}]}],"isOpenChange":[{"__symbolic":"method"}],"outterSelected":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}],"isAllItemsSelected":[{"__symbolic":"method"}],"isAllFilteredSelected":[{"__symbolic":"method"}],"isNoItemSelected":[{"__symbolic":"method"}],"applyChanges":[{"__symbolic":"method"}],"selectAll":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"onChangeItem":[{"__symbolic":"method"}],"updateFiltered":[{"__symbolic":"method"}],"getSelectAllToggleStatus":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"updateLabel":[{"__symbolic":"method"}],"updateSelected":[{"__symbolic":"method"}],"isAllSelected":[{"__symbolic":"method"}],"getLabel":[{"__symbolic":"method"}]}},"SelectModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":14,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ListGroupModule"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"TypeaheadComponent"}],"declarations":[{"__symbolic":"reference","name":"SelectComponent"},{"__symbolic":"reference","name":"TypeaheadComponent"}]}]}],"members":{}},"DynamicProviderConfig":{"__symbolic":"interface"},"DynamicProviderTabsConfig":{"__symbolic":"interface"},"DynamicProviderNavigationConfig":{"__symbolic":"interface"},"DynamicProviderLayoutConfig":{"__symbolic":"interface"},"DynamicProviderEndpointConfig":{"__symbolic":"interface"},"Endpoint":{"__symbolic":"interface"},"ProviderDefinition":{"__symbolic":"interface"},"ProviderProperties":{"__symbolic":"interface"},"HOOK_DYNAMIC_PROVIDER_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":48},"arguments":["Dynamic Provider Config"]},"ProviderConfigurationNodeFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":16,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":5},"arguments":[{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"}]}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DynamicProviderConfig"}]}]},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":22}]}],"get":[{"__symbolic":"method"}],"checkCanActivate":[{"__symbolic":"method"}],"getGuards":[{"__symbolic":"method"}],"getNodeTabPath":[{"__symbolic":"method"}]}},"ProviderConfigurationRouteFactory":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":12,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":27},"arguments":[{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"}]}]],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DynamicProviderConfig"}]}]}]}],"get":[{"__symbolic":"method"}]}},"ProviderConfigurationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"c8y-sms-gateway","providers":[{"__symbolic":"reference","name":"ProviderConfigurationService"},{"__symbolic":"reference","name":"ProviderDefinitionsService"}],"template":"<c8y-title>\n {{ (layout$ | async).pageTitle | translate }}\n</c8y-title>\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 <h4 class=\"card-title\">\n {{ (layout$ | async).cardTitle | translate }}\n </h4>\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"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Permissions"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":68,"character":28},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"ProviderDefinitionsService"},{"__symbolic":"reference","name":"ProviderConfigurationService"},{"__symbolic":"reference","name":"C8yJSONSchema"}]}],"ngOnInit":[{"__symbolic":"method"}],"saveProviderConfiguration":[{"__symbolic":"method"}],"deleteProviderConfiguration":[{"__symbolic":"method"}],"removeEncryptedValues":[{"__symbolic":"method"}]}},"ProviderConfigurationModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ProviderConfigurationComponent"}],"exports":[{"__symbolic":"reference","name":"ProviderConfigurationComponent"}],"imports":[{"__symbolic":"reference","name":"CoreModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"DynamicFormsModule"}],"entryComponents":[{"__symbolic":"reference","name":"ProviderConfigurationComponent"}],"providers":[{"provide":{"__symbolic":"reference","name":"ɵbb"},"useClass":{"__symbolic":"reference","name":"ProviderConfigurationRouteFactory"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵbc"},"useClass":{"__symbolic":"reference","name":"ProviderConfigurationNodeFactory"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵbd"},"useClass":{"__symbolic":"reference","name":"ɵbe"},"multi":true}]}]}],"members":{},"statics":{"config":{"__symbolic":"function","parameters":["config"],"value":{"ngModule":{"__symbolic":"reference","name":"ProviderConfigurationModule"},"providers":[{"provide":{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"},"useValue":{"__symbolic":"reference","name":"config"},"multi":true}]}}}},"ProviderConfigurationService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@c8y/client","name":"Service","line":7,"character":50},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":13,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":13,"character":51}]}],"detail":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"getDetailUrl":[{"__symbolic":"method"}]},"statics":{"NO_DETAIL_ID":null}},"ProviderDefinitionsService":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@c8y/client","name":"Service","line":7,"character":48},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":11,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":11,"character":51}]}],"list":[{"__symbolic":"method"}]}},"GridDataSource":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"connect":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"loadData":[{"__symbolic":"method"}],"resolveValue":[{"__symbolic":"method"}],"resolveFunction":[{"__symbolic":"method"}],"normalizeNil":[{"__symbolic":"method"}],"doClientSideFiltering":[{"__symbolic":"method"}],"doClientSideSearch":[{"__symbolic":"method"}],"doClientSideSorting":[{"__symbolic":"method"}],"doClientSidePagination":[{"__symbolic":"method"}],"createRegexSearch":[{"__symbolic":"method"}],"toObservable":[{"__symbolic":"method"}]}},"DataGridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkTableModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":23,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":26,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":27,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/pagination","name":"PaginationModule","line":28,"character":4},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"CellRendererComponent"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"FilteringFormRendererComponent"},{"__symbolic":"reference","name":"ColumnDirective"},{"__symbolic":"reference","name":"DataGridComponent"}],"exports":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"ColumnDirective"},{"__symbolic":"reference","name":"DataGridComponent"}],"entryComponents":[{"__symbolic":"reference","name":"DataGridComponent"}]}]}],"members":{}},"DataGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":59,"character":1},"arguments":[{"selector":"c8y-data-grid","template":"<div class=\"table-data-grid-scroll\" #scroll>\n <div *ngIf=\"displayOptions.gridHeader\" class=\"table-data-grid-header separator large-padding\">\n <h4 class=\"m-r-16\">{{ title | translate }}</h4>\n\n <ng-container *ngIf=\"displayOptions.filter\">\n <span *ngIf=\"!filteringApplied\">\n <span class=\"label label-warning 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 >{{ filteredItemsCount }} of {{ allItemsCount }} items</small\n >\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</small\n >\n </ng-container>\n <button\n title=\" {{ 'Clear filters' | translate }}\"\n class=\"m-l-8 btn btn-xs btn-default m-r-4\"\n (click)=\"clearFilters()\"\n >\n {{ 'Clear filters' | translate }}\n </button>\n </span>\n <span class=\"hidden-xs hidden-sm\">\n <button\n class=\"btn-clean text-primary\"\n popover=\"{{ 'Click the column headers to apply filters.' | translate }}\"\n placement=\"right\"\n triggers=\"focus\"\n >\n <i c8yIcon=\"question-circle-o\"></i>\n </button> </span\n ></ng-container>\n\n <div class=\"flex-item-right\">\n <div class=\"btnbar flex-row\">\n <label class=\"c8y-switch\" *ngIf=\"showChildDevices.show\">\n <input type=\"checkbox\" [(ngModel)]=\"showChildDevices.value\" (click)=\"loadChildDevices()\"/>\n <span></span>\n {{ 'Show child devices' | translate }}\n </label>\n <button class=\"btn-clean m-l-4 m-r-16\" \n *ngIf=\"showChildDevices.show\"\n [popover]=\"childDevicesPop\"\n placement=\"bottom\"\n [outsideClick]=\"true\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n <ng-template #childDevicesPop>\n <span translate>\n Displays the button\n <button class=\"btn btn-xs btn-icon btn-default\"><i class=\"text-primary dlt-c8y-icon-enter-bottom\"></i></button>\n next to devices with children. Clicking it displays a list with all child devices.\n </span>\n </ng-template>\n <div\n class=\"dropdown\"\n dropdown\n [insideClick]=\"true\"\n container=\"body\"\n placement=\"bottom left\"\n >\n <button\n title=\"{{ 'Configure columns' | translate }}\"\n class=\"btnbar-btn c8y-dropdown\"\n dropdownToggle\n >\n <i c8yIcon=\"columns\" class=\"m-r-4\"></i>\n <span>{{ 'Configure columns' | translate }}</span>\n </button>\n\n <ul *dropdownMenu class=\"dropdown-menu\" (click)=\"$event.stopPropagation()\">\n <li class=\"bg-white\">\n <div cdkDropList (cdkDropListDropped)=\"onColumnDrop($event)\" class=\"list-group m-0\">\n <div *ngFor=\"let column of columns\" cdkDrag cdkDragLockAxis=\"y\">\n <ng-container *ngIf=\"!column.positionFixed\">\n <div class=\"list-group-item draggable-after p-0 \">\n <label\n title=\"{{ (column.header | translate) || column.name }}\"\n class=\"c8y-checkbox p-l-16 p-r-32 p-t-8 p-b-8 flex-item-v-stretch\"\n >\n <input\n type=\"checkbox\"\n [(ngModel)]=\"column.visible\"\n (change)=\"updateGridColumnsSize()\"\n />\n <span></span>\n <span>{{ (column.header | translate) || column.name }}</span>\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </li>\n </ul>\n </div>\n\n <button\n title=\"{{ 'Reload' | translate }}\"\n class=\"btnbar-btn btn-link\"\n [disabled]=\"dataSource.loading$ | async\"\n (click)=\"searchText = ''; reload()\"\n >\n <i c8yIcon=\"refresh\" class=\"m-r-4\"></i>\n <span>{{ 'Reload' | translate }}</span>\n </button>\n\n <div *ngIf=\"!serverSideDataCallback || showSearch\" class=\"input-group input-group-search m-l-sm-16\">\n <input\n type=\"search\"\n class=\"form-control\"\n placeholder=\"{{ 'Search…' | 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 ></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 items.\n </span>\n <br class=\"visible-xs\" />\n <small *ngIf=\"selectedItemIds.length >= pagination.pageSize\">\n <a (click)=\"setAllItemsSelected(true)\" class=\"interact\">\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=\"flex-item-right\">\n <div class=\"btnbar flex-row\">\n <ng-container\n *ngFor=\"let bulkActionControl of bulkActionControls\"\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 >\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 >\n <i c8yIcon=\"trash\"></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 >\n <i c8yIcon=\"{{ bulkActionControl.icon }}\"></i>\n <span>{{ bulkActionControl.text | translate }}</span>\n </button>\n </ng-container>\n\n <button\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btnbar-btn\"\n (click)=\"cancel()\"\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 *ngFor=\"let column of columns; trackBy: trackByName\" [cdkColumnDef]=\"column.name\">\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 type=\"checkbox\"\n [checked]=\"currentPageSelectionState.allSelected\"\n [indeterminate]=\"\n !(\n currentPageSelectionState.allSelected ||\n currentPageSelectionState.allDeselected\n )\n \"\n (change)=\"setAllItemsInCurrentPageSelected($event.target.checked)\"\n />\n <span></span>\n </label>\n </div>\n </th>\n\n <td cdk-cell *cdkCellDef=\"let row\">\n <label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"isItemSelected(row)\"\n (change)=\"setItemsSelected([row], $event.target.checked)\"\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\"></th>\n\n <td cdk-cell *cdkCellDef=\"let row\">\n <ng-container *ngIf=\"actionControls.length <= 2\">\n <ng-container\n *ngFor=\"let actionControl of actionControls\"\n [ngSwitch]=\"actionControl.type\"\n >\n <ng-container *ngIf=\"actionControl.showIf ? actionControl.showIf(row) : true\">\n <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n class=\"btn btn-icon btn-xs btn-default\"\n title=\"{{ 'Edit' | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"pencil\"></i>\n </button>\n <button\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btn btn-dot showOnHover\"\n title=\"{{ 'Delete' | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i class=\"text-danger\" c8yIcon=\"minus-circle\"></i>\n </button>\n <button\n *ngSwitchDefault\n class=\"btn btn-icon btn-xs btn-default\"\n title=\"{{ actionControl.text | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n tooltip=\"{{ actionControl.text | translate }}\"\n container=\"body\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n\n <div *ngIf=\"actionControls.length > 2\" class=\"dropdown\" dropdown>\n <button\n title=\"{{ 'Actions' | translate }}\"\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\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\" [ngSwitch]=\"actionControl.type\">\n <ng-container *ngIf=\"actionControl.showIf ? actionControl.showIf(row) : true\">\n <button\n title=\"{{ 'Edit' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Edit\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"pencil\"></i>\n {{ 'Edit' | translate }}\n </button>\n <button\n title=\"{{ 'Delete' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Delete\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"trash\"></i>\n {{ 'Delete' | translate }}\n </button>\n <button\n title=\"{{ 'Export' | translate }}\"\n *ngSwitchCase=\"builtInActionType.Export\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"download\"></i>\n {{ 'Export' | translate }}\n </button>\n <button\n title=\"{{ actionControl.text | translate }}\"\n *ngSwitchDefault\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n {{ actionControl.text | translate }}\n </button>\n </ng-container>\n </li>\n </ul>\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\n ) as cellRendererSpec\n \"\n >\n <c8y-cell-renderer [spec]=\"cellRendererSpec\"></c8y-cell-renderer>\n </ng-container>\n </div>\n\n <div\n *ngIf=\"column.filterable\"\n class=\"dropdown\"\n dropdown\n #dropdown=\"bs-dropdown\"\n container=\"body\"\n placement=\"bottom left\"\n [insideClick]=\"true\"\n >\n <button\n class=\"btn-header c8y-dropdown\"\n dropdownToggle\n [title]=\"(column.header | translate) || column.name\"\n >\n <ng-container\n *ngIf=\"\n (\n [{\n columnName: column.name,\n value: ((column.header | translate) || column.name)\n }]\n | map:getHeaderCellRendererSpec:this\n ) 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 <ul *dropdownMenu class=\"dropdown-menu\" (click)=\"$event.stopPropagation()\">\n <li class=\"data-grid__dropdown\">\n <ng-container\n *ngIf=\"\n (\n [{\n column: column,\n dropdown: dropdown\n }]\n | map:getFilteringFormRendererSpec:this\n ) as filteringFormRendererSpec\n \"\n >\n <c8y-filtering-form-renderer [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=\"{{ 'Sort' | translate }}\"\n (click)=\"changeSortOrder(column.name)\"\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 class=\"resize-handle\"\n (mousedown)=\"\n resizeHandleMouseDown$.emit({ event: $event, targetColumnName: column.name })\n \"\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 [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\n ) 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 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 *ngIf=\"infiniteScroll\">\n <tr cdk-footer-row *cdkFooterRowDef=\"['infiniteScrollFooter']\"></tr>\n </ng-container>\n </table>\n\n <div *ngIf=\"(dataSource.loading$ | async) && !loadMoreComponent\" class=\"text-center\">\n <c8y-progress-bar [message]=\"loadingItemsLabel\"></c8y-progress-bar>\n </div>\n\n <div\n class=\"row m-0 p-t-40 p-b-40\"\n *ngIf=\"!(dataSource.loading$ | async) && (dataSource.stats$ | async).filteredSize === 0\"\n >\n <div class=\"col-md-4 col-md-offset-4\">\n <ng-content select=\".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 *ngIf=\"(dataSource.stats$ | async).currentPageSize > 0\" class=\"counter\">\n <span class=\"text-muted\" ngNonBindable translate [translateParams]=\"paginationLabelParams\"\n >{{ pageFirstItemIdx }} - {{ pageLastItemIdx }} of {{ itemsTotal }}</span\n >\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\"\n >\n <label class=\"m-r-4\">{{ 'Items per page' | translate }}</label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\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 [class.hidden]=\"totalPagesCount <= 1\"\n [ngModel]=\"pagination.currentPage\"\n (pageChanged)=\"updatePagination($event)\"\n [totalItems]=\"(dataSource.stats$ | async).filteredSize\"\n [itemsPerPage]=\"pagination.pageSize\"\n (numPages)=\"totalPagesCount = $event\"\n [maxSize]=\"5\"\n [boundaryLinks]=\"false\"\n previousText=\" \"\n nextText=\" \"\n ></pagination>\n </div>\n </div>\n</div>\n"}]}],"members":{"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"loadMoreItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"showSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"showChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"_columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3},"arguments":["columns"]}]}],"_rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3},"arguments":["rows"]}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":97,"character":3},"arguments":["pagination"]}]}],"_infiniteScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":111,"character":3},"arguments":["infiniteScroll"]}]}],"_serverSideDataCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":117,"character":3},"arguments":["serverSideDataCallback"]}]}],"_selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":123,"character":3},"arguments":["selectable"]}]}],"_selectionPrimaryKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":129,"character":3},"arguments":["selectionPrimaryKey"]}]}],"_displayOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":140,"character":3},"arguments":["displayOptions"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":146,"character":3},"arguments":["actionControls"]}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":152,"character":3},"arguments":["bulkActionControls"]}]}],"searchText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"rowMouseOver":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":159,"character":3}}]}],"rowMouseLeave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":160,"character":3}}]}],"rowClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":161,"character":3}}]}],"onConfigChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":162,"character":3}}]}],"onFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":163,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":164,"character":3}}]}],"onChildDevices":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":165,"character":3}}]}],"columnRenderers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":167,"character":3},"arguments":[{"__symbolic":"reference","name":"ColumnDirective"}]}]}],"scrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":169,"character":3},"arguments":["scroll",{"static":true}]}]}],"infiniteScrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":171,"character":3},"arguments":["infiniteScrollContainer",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":171,"character":63}}]}]}],"thRefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":207,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkHeaderCell","line":207,"character":16},{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":207,"character":39}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":215,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":216,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":217,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":218,"character":17}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"trackByName":[{"__symbolic":"method"}],"resolveCellValue":[{"__symbolic":"method"}],"changeSortOrder":[{"__symbolic":"method"}],"updateSorting":[{"__symbolic":"method"}],"applyFilter":[{"__symbolic":"method"}],"resetFilter":[{"__symbolic":"method"}],"clearFilters":[{"__symbolic":"method"}],"updateFiltering":[{"__symbolic":"method"}],"updateFilteringApplied":[{"__symbolic":"method"}],"isColumnFilteringApplied":[{"__symbolic":"method"}],"updatePagination":[{"__symbolic":"method"}],"reload":[{"__symbolic":"method"}],"loadNextPage":[{"__symbolic":"method"}],"getCellRendererSpec":[{"__symbolic":"method"}],"getHeaderCellRendererSpec":[{"__symbolic":"method"}],"getFilteringFormRendererSpec":[{"__symbolic":"method"}],"setAllItemsSelected":[{"__symbolic":"method"}],"setAllItemsInCurrentPageSelected":[{"__symbolic":"method"}],"setItemsSelected":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"isItemSelected":[{"__symbolic":"method"}],"onColumnDrop":[{"__symbolic":"method"}],"updateGridColumnsSize":[{"__symbolic":"method"}],"loadChildDevices":[{"__symbolic":"method"}],"emitConfigChange":[{"__symbolic":"method"}],"updateColumns":[{"__symbolic":"method"}],"withColumnDefaults":[{"__symbolic":"method"}],"updateColumnNames":[{"__symbolic":"method"}],"setupResizeHandle":[{"__symbolic":"method"}],"clearMouseHighlights":[{"__symbolic":"method"}],"_getCellRendererSpec":[{"__symbolic":"method"}],"getColumnRenderer":[{"__symbolic":"method"}],"loadData":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","name":"throttle"},"arguments":[500,{"trailing":true,"leading":false}]}]}],"updateFilteringLabelsParams":[{"__symbolic":"method"}],"updatePaginationLabelParams":[{"__symbolic":"method"}],"createLoadMoreComponent":[{"__symbolic":"method"}],"scrollToTop":[{"__symbolic":"method"}]}},"DataGrid":{"__symbolic":"interface"},"Column":{"__symbolic":"interface"},"ColumnConfig":{"__symbolic":"interface"},"Filter":{"__symbolic":"interface"},"GridConfig":{"__symbolic":"interface"},"SpecialColumnName":{"Checkbox":"checkbox","Actions":"actions"},"ColumnDataType":{"Icon":"icon","Numeric":"numeric","TextShort":"text-short","TextLong":"text-long"},"ColumnDataRecordClassName":{"Icon":"data-record-icon","Header":"data-record-header","Default":""},"minColumnGridTrackSize":80,"ratiosByColumnTypes":{"icon":1,"numeric":1,"text-short":1.67,"text-long":3.33,"$quoted$":["text-short","text-long"]},"SortOrder":{"__symbolic":"interface"},"FilterPredicateFunction":{"__symbolic":"interface"},"FilteringActionType":{"ApplyFilter":"APPLY_FILTER","ResetFilter":"RESET_FILTER"},"Row":{"__symbolic":"interface"},"Pagination":{"__symbolic":"interface"},"ServerSideDataCallback":{"__symbolic":"interface"},"DataSourceModifier":{"__symbolic":"interface"},"ServerSideDataResult":{"__symbolic":"interface"},"DataSourceStats":{"__symbolic":"interface"},"DisplayOptions":{"__symbolic":"interface"},"ActionControl":{"__symbolic":"interface"},"BulkActionControl":{"__symbolic":"interface"},"BuiltInActionType":{"Edit":"EDIT","Delete":"DELETE","Export":"EXPORT"},"FilteringFormRendererComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"c8y-filtering-form-renderer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":18,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n >\n </ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n >\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n <div class=\"form-group\">\n <label translate>Filter text</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 <div class=\"flex-row\">\n <button\n class=\"btn btn-default btn-sm flex-grow m-r-8\"\n (click)=\"defaultRendererFilterText = ''; spec.context.resetFilter()\"\n translate\n >\n Reset\n </button>\n <button\n class=\"btn btn-primary btn-sm flex-grow\"\n (click)=\"\n spec.context.applyFilter({\n filterPredicate: defaultRendererFilterText\n })\n \"\n translate\n >\n Apply\n </button>\n </div>\n</ng-container>\n"}]}],"members":{"_spec":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3},"arguments":["spec"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":31,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":31,"character":54}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"CellRendererDef":{"__symbolic":"interface"},"CellRendererSpec":{"__symbolic":"interface"},"CellRendererContext":{"__symbolic":"class","members":{}},"CellRendererDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":21,"character":1},"arguments":[{"selector":"[c8yCellRendererDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"HeaderCellRendererDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":26,"character":1},"arguments":[{"selector":"[c8yHeaderCellRendererDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"FilteringFormRendererSpec":{"__symbolic":"interface"},"FilteringFormRendererContext":{"__symbolic":"class","members":{}},"FilteringModifier":{"__symbolic":"interface"},"FilteringFormRendererDefDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":21,"character":1},"arguments":[{"selector":"[c8yFilteringFormRendererDef]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"CellRendererComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-cell-renderer","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":17,"character":19},"member":"OnPush"},"template":"<ng-container *ngIf=\"spec.renderer\">\n <ng-container\n *ngIf=\"rendererType === 'TEMPLATE'\"\n [ngTemplateOutlet]=\"spec.renderer\"\n [ngTemplateOutletContext]=\"{ $implicit: spec.context }\"\n >\n </ng-container>\n\n <ng-container\n *ngIf=\"rendererType === 'COMPONENT'\"\n [ngComponentOutlet]=\"spec.renderer\"\n [ngComponentOutletInjector]=\"rendererInjector\"\n >\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"!spec.renderer\">\n {{ spec.context.value }}\n</ng-container>\n"}]}],"members":{"_spec":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3},"arguments":["spec"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":30,"character":32},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":30,"character":54}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}]}},"ColumnDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":5,"character":1},"arguments":[{"selector":"c8y-column"}]}],"members":{"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"cellRendererDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":9,"character":3},"arguments":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"static":false}]}]}],"headerCellRendererDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":12,"character":3},"arguments":[{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"static":false}]}]}],"filteringFormRendererDef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":15,"character":3},"arguments":[{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"static":false}]}]}]}},"SelectModalFilterPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"selectModalFilterPipe"}]}],"members":{"transform":[{"__symbolic":"method"}],"filterContainString":[{"__symbolic":"method"}],"extractValues":[{"__symbolic":"method"}]}},"SelectModalModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":9,"character":1},"arguments":[{"imports":[{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":11,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ListGroupModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"SelectModalComponent"},{"__symbolic":"reference","name":"SelectModalFilterPipe"}],"declarations":[{"__symbolic":"reference","name":"SelectModalComponent"},{"__symbolic":"reference","name":"SelectModalFilterPipe"}]}]}],"members":{}},"ISelectModalObject":{"__symbolic":"interface"},"ISelectModalOption":{"__symbolic":"interface"},"ISelectModalBodyPart":{"__symbolic":"interface"},"ModalLabels":{"__symbolic":"interface"},"ModalSelectionMode":{"SINGLE":"single","MULTI":"multi"},"SelectModalComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-select-modal","template":"<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <span c8yIcon=\"{{ icon }}\"></span>\n <h4 class=\"text-uppercase\">\n {{ title | translate }}\n </h4>\n </div>\n <div class=\"p-16 text-center separator-bottom\">\n <p class=\"m-b-8\">{{ subTitle | translate }}</p>\n <c8y-filter *ngIf=\"showFilter\" [icon]=\"'search'\" (onSearch)=\"updatePipe($event)\"></c8y-filter>\n </div>\n <div class=\"modal-inner-scroll\">\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 translate>No items to display.</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 >\n </c8y-li-radio>\n <c8y-li-body class=\"content-flex-50\">\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 </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 *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 class=\"btn btn-primary\"\n (click)=\"select()\"\n [disabled]=\"!selected\"\n >\n {{ labels.ok | translate }}\n </button>\n </div>\n</div>\n"}]}],"members":{"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"subTitle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"disableSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"showFilter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"areMoreEntries":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"result":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":45,"character":34}]}],"ngOnChanges":[{"__symbolic":"method"}],"updatePipe":[{"__symbolic":"method"}],"updateChoice":[{"__symbolic":"method"}],"dismiss":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getOutput":[{"__symbolic":"method"}]}},"ProductExperienceDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":3,"character":1},"arguments":[{"selector":"[c8yProductExperience]"}]}],"members":{"actionName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":7,"character":3}}]}],"actionData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"GainsightService"}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":11,"character":3},"arguments":["click"]}]}]}},"GainsightService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"UserPreferencesService"}]}],"isGainsightDisabledInUserPreferences":[{"__symbolic":"method"}],"setFunctionalCookie":[{"__symbolic":"method"}],"getGainsightKey":[{"__symbolic":"method"}],"loadTag":[{"__symbolic":"method"}],"identify":[{"__symbolic":"method"}],"triggerEvent":[{"__symbolic":"method"}],"shouldLoadGainsightTag":[{"__symbolic":"method"}],"canEditProductExperienceSettings":[{"__symbolic":"method"}],"isGainsightDisabled":[{"__symbolic":"method"}],"loadScriptTag":[{"__symbolic":"method"}],"getInstanceIdFromUrl":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ProductExperienceModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ProductExperienceDirective"}],"exports":[{"__symbolic":"reference","name":"ProductExperienceDirective"}],"providers":[{"__symbolic":"reference","name":"GainsightService"}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"GainsightService"},{"__symbolic":"reference","name":"ɵd"}]}]}},"HelpComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"c8y-help","template":"<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"pull-right\"\n [priority]=\"priority\"\n *ngIf=\"isSupportedLanguage\"\n>\n <button\n class=\"btn btn-help\"\n [title]=\"'Open help' | translate\"\n (click)=\"toggle()\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n >\n <i\n [c8yIcon]=\"'question-circle-o'\"\n class=\"text-info\"\n ></i>\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>\n <div\n class=\"c8y-help-drawer-block\"\n #docOutlet\n >\n <div\n *ngIf=\"isLoading\"\n >\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 p-t-16 flex-grow\"\n *ngIf=\"!hasError\"\n >\n <h4 class=\"text-bold text-primary m-b-16\">{{title}}</h4>\n <div\n id=\"helpContent\"\n class=\"help-content\"\n [innerHTML] = \"sectionContent\"\n ></div>\n \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\n </div>\n <div class=\"c8y-help-drawer-footer\" *ngIf=\"!isLoading\">\n <button\n class=\"btn btn-default\"\n (click)=\"toggle()\"\n [title]=\"'Close help' | translate\"\n [attr.aria-expanded]=\"!isCollapsed\"\n aria-controls=\"collapseHelp\"\n translate\n >Close</button>\n <a\n href=\"{{ hasError ? getUrl() : getUrl(src) }}\"\n class=\"btn btn-primary\"\n target=\"_blank\"\n >\n <span translate *ngIf=\"!hasError\">\n Open the <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n <span translate *ngIf=\"hasError\">\n Check the <span>User guide`KEEP_ORIGINAL`</span>\n </span>\n </a>\n </div>\n</div>\n"}]}],"members":{"src":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"isCollapsed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"DocsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":92,"character":30}]}],"getUrl":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"open":[{"__symbolic":"method"}],"requestContent":[{"__symbolic":"method"}],"clean":[{"__symbolic":"method"}],"parseVersion":[{"__symbolic":"method"}],"resolveIcon":[{"__symbolic":"method"}],"render":[{"__symbolic":"method"}]}},"HelpModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"HelpComponent"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":14,"character":26},"member":"forRoot"}},{"__symbolic":"reference","name":"ActionBarModule"}],"exports":[{"__symbolic":"reference","name":"HelpComponent"}],"entryComponents":[{"__symbolic":"reference","name":"HelpComponent"}]}]}],"members":{}},"ManagedObjectRealtimeService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"RealtimeService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":6,"character":24}]}],"channel":[{"__symbolic":"method"}]}},"OperationBulkRealtimeService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"RealtimeService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":9,"character":24}]}],"channel":[{"__symbolic":"method"}]}},"OperationRealtimeService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"RealtimeService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":9,"character":24}]}],"channel":[{"__symbolic":"method"}]}},"RealtimeButtonComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-realtime-btn","template":"<button\n type=\"button\"\n class=\"btn btn-link c8y-realtime\"\n title=\"{{ 'Toggle realtime' | translate }}\"\n (click)=\"toggle()\"\n>\n <span class=\"c8y-pulse\" [ngClass]=\"{ active: active, inactive: !active }\"></span>\n <span translate>Realtime</span>\n</button>\n"}]}],"members":{"service":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}],"toggle":[{"__symbolic":"method"}]}},"RealtimeMessage":{"__symbolic":"class","arity":1,"members":{}},"RealtimeAction":{"__symbolic":"interface"},"RealtimeModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"declarations":[{"__symbolic":"reference","name":"RealtimeButtonComponent"}],"exports":[{"__symbolic":"reference","name":"RealtimeButtonComponent"}]}]}],"members":{}},"RealtimeService":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":20,"character":34}]}],"onAll$":[{"__symbolic":"method"}],"start":[{"__symbolic":"method"}],"stop":[{"__symbolic":"method"}],"onCreate$":[{"__symbolic":"method"}],"onUpdate$":[{"__symbolic":"method"}],"onDelete$":[{"__symbolic":"method"}],"getIdString":[{"__symbolic":"method"}],"getChannel":[{"__symbolic":"method"}],"channel":[{"__symbolic":"method"}],"getSubjectForChannel":[{"__symbolic":"method"}]}},"PluginsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"providers":[{"__symbolic":"reference","name":"PluginsService"}]}]}],"members":{}},"PluginsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":9,"character":42},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":9,"character":78}]}],"listPackages":[{"__symbolic":"method"}],"listVersions":[{"__symbolic":"method"}],"listInstalled":[{"__symbolic":"method"}],"addByName":[{"__symbolic":"method"}],"removeByName":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"addOrRemove":[{"__symbolic":"method"}],"storeCumulocityJson":[{"__symbolic":"method"}],"getCumulocityJsonFile":[{"__symbolic":"method"}],"getApplication":[{"__symbolic":"method"}]}},"RangeDisplayModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"RangeDisplayComponent"}],"declarations":[{"__symbolic":"reference","name":"RangeDisplayComponent"}],"entryComponents":[{"__symbolic":"reference","name":"RangeDisplayComponent"}]}]}],"members":{}},"RangeDisplayComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-range-display","template":"<div [ngClass]=\"{ 'range-display--vertical': config.orientation === 'vertical' }\">\n <div class=\"range-display\">\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div *ngIf=\"isRedRangeDisplayed()\" class=\"range-display__range__max\"></div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\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 *ngIf=\"\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n \"\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 }} | {{ config.time | c8yDate }}\"\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 attr.data-label=\"{{ config.max || 100 | number }}\" class=\"range-display__tick\"></div>\n </div>\n </div>\n</div>"}]}],"members":{"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":9,"character":3}}]}],"inlineStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":10,"character":3},"arguments":["attr.style"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":45,"character":33}]}],"checkTarget":[{"__symbolic":"method"}],"rulerCalc":[{"__symbolic":"method"}],"trackByIndex":[{"__symbolic":"method"}],"isRedRangeDisplayed":[{"__symbolic":"method"}],"isYellowRangeDisplayed":[{"__symbolic":"method"}],"isRangeDisplayed":[{"__symbolic":"method"}]}},"CoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":36,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"ActionBarModule"},{"__symbolic":"reference","name":"ActionModule"},{"__symbolic":"reference","name":"AlertModule"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"BootstrapModule"},{"__symbolic":"reference","name":"BreadcrumbModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"DataGridModule"},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"LoginModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","name":"NavigatorModule"},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"SelectModule"},{"__symbolic":"reference","name":"TabsModule"},{"__symbolic":"reference","name":"UserModule"},{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","name":"DeviceStatusModule"},{"__symbolic":"reference","name":"DocsModule"},{"__symbolic":"reference","name":"StepperModule"},{"__symbolic":"reference","name":"DynamicComponentModule"},{"__symbolic":"reference","name":"DashboardModule"},{"__symbolic":"reference","name":"ListGroupModule"},{"__symbolic":"reference","name":"SelectModalModule"},{"__symbolic":"reference","name":"FilePickerModule"},{"__symbolic":"reference","name":"DatePickerModule"},{"__symbolic":"reference","name":"ProductExperienceModule"},{"__symbolic":"reference","name":"HelpModule"},{"__symbolic":"reference","name":"RealtimeModule"},{"__symbolic":"reference","name":"RangeDisplayModule"},{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"PluginsModule"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"CoreModule"},"providers":[{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"CommonModule"},"member":"providers"}}},{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"LoginModule"},"member":"providers"}}}]}}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":29,"character":1},"arguments":[{"selector":"[c8yIfAllowed]"}]}],"members":{"c8yIfAllowed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"c8yIfAllowedAllowAny":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":54,"character":23},{"__symbolic":"reference","name":"Permissions"}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":31,"character":1},"arguments":[{"selector":"[dropdown][c8yBsDropdownDirection],[dropdown][c8yDropdownDirection]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":37,"character":34},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":37,"character":64}]}],"onClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":39,"character":3},"arguments":["click"]}]}],"shouldDropup":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OptionsService"}]}],"getCookiePreferencesConfig":[{"__symbolic":"method"}],"getCookieBannerSettings":[{"__symbolic":"method"}],"setCookies":[{"__symbolic":"method"}],"shouldShowCookieBanner":[{"__symbolic":"method"}],"getUserCookiePreferences":[{"__symbolic":"method"}],"isConfigCookiePreferencesDefined":[{"__symbolic":"method"}],"isFunctionalCookieEnabled":[{"__symbolic":"method"}],"getCookieDescription":[{"__symbolic":"method"}],"transformCookiePreferencesToList":[{"__symbolic":"method"}],"transformCookiePreferencesListToCookiePreferences":[{"__symbolic":"method"}]},"statics":{"ɵprov":{}}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"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"}]}],"members":{"modalRef":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":14,"character":3},"arguments":["modalRef",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵd"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onClose":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"getCookieDescription":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[emails][formControlName],[emails][formControl],[emails][ngModel]","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALIDATORS","line":24,"character":25},"useExisting":{"__symbolic":"reference","name":"ɵf"},"multi":true}]}]}],"members":{"emails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"validate":[{"__symbolic":"method"}],"registerOnValidatorChange":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":6,"character":1},"arguments":[{"selector":"c8y-provide-phone-number","template":"<form #twoFactorForm=\"ngForm\" role=\"form\" class=\"loginForm\" (ngSubmit)=\"save()\" novalidate>\n <div class=\"legend form-block center\" translate>\n Two-factor authentication\n </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 c8yDefaultValidation=\"phoneNumber\"\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"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"onChangeView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":22,"character":25}]}],"save":[{"__symbolic":"method"}],"sendTFASms":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":7,"character":12},{"__symbolic":"reference","name":"C8yTranslateModule"}],"providers":[{"provide":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FORMLY_CONFIG","line":10,"character":15},"multi":true,"useFactory":{"__symbolic":"reference","name":"ɵk"},"deps":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":13,"character":13},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":13,"character":31}]}]}]}],"members":{}},"ɵj":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":7,"character":33},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":7,"character":67}]}],"prePopulate":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"function","parameters":["translate","parser"],"value":{"extensions":[{"name":"translate","extension":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵj"},"arguments":[{"__symbolic":"reference","name":"translate"},{"__symbolic":"reference","name":"parser"}]}}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":6,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"C8yTranslateModule"},{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":7,"character":32}],"providers":[{"provide":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FORMLY_CONFIG","line":10,"character":15},"multi":true,"useFactory":{"__symbolic":"reference","name":"ɵm"},"deps":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":13,"character":13}]}]}]}],"members":{}},"ɵm":{"__symbolic":"function","parameters":["translate"],"value":{"validationMessages":[{"name":"required"},{"name":"pattern"}]}},"ɵn":[{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"}],"ɵo":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵn"},"member":"map"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":29,"character":25,"module":"./core/dynamic-forms/dynamic-forms-ui-theme.module"}]},"member":"reduce"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":30,"character":4,"module":"./core/dynamic-forms/dynamic-forms-ui-theme.module"},{"types":[],"wrappers":[]}]}},"ɵp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":45,"character":1},"arguments":[{"declarations":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"ɵn"}}],"entryComponents":[{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"ɵn"}}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":49,"character":4},{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":50,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":51,"character":4},{"__symbolic":"reference","name":"C8yTranslateModule"},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@ngx-formly/core","name":"FormlyModule","line":55,"character":4},{"__symbolic":"reference","module":"@ngx-formly/core/select","name":"FormlySelectModule","line":56,"character":4}],"providers":[{"provide":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FORMLY_CONFIG","line":60,"character":15},"useFactory":{"__symbolic":"reference","name":"ɵo"},"multi":true}]}]}],"members":{}},"ɵq":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":8,"character":35},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-field-checkbox","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":" <label class=\"c8y-checkbox\" [class.has-error]=\"showError\">\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 /><span></span><span> {{ to.label }} </span>\n <span *ngIf=\"to.required && to.hideRequiredMarker !== true\"><em class=\"m-l-4\" translate>(required)</em></span>\n <button\n *ngIf=\"!!to.description\"\n class=\"btn-clean m-l-4 flex-item-middle\"\n [popover]=\"to.description\"\n placement=\"auto\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </label>\n"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"checkbox","component":{"__symbolic":"reference","name":"FieldCheckbox"}},{"name":"boolean","extends":"checkbox"}]}}},"ɵr":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldArrayType","line":7,"character":40},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-array-type","template":"<div role=\"group\"\n [attr.aria-labelledby]=\"id + '-fieldset'\"\n>\n <div id=\"{{id + '-fieldset'}}\"\n class=\"legend form-block\"\n *ngIf=\"to.label || to.description\"\n >\n {{ to.label }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-clean text-14 m-l-4 flex-item-middle\"\n [popover]=\"to.description\"\n placement=\"right\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </div>\n\n <div 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 field of field.fieldGroup; let i = index\" class=\"input-group-array\">\n <formly-field [field]=\"field\">\n </formly-field>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-clean flex-item-right\"\n title=\"{{ 'Delete' | translate }}\"\n (click)=\"remove(i)\"\n >\n <i c8yIcon=\"minus-circle\" class=\"text-danger\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"p-t-8\">\n <button\n title=\"{{ 'Add \\{\\{ label \\}\\}' | translate: field?.fieldArray?.templateOptions }}\"\n class=\"btn-add-block\"\n (click)=\"add()\"\n >\n <i c8yIcon=\"plus-square\"></i>\n <span ngNonBindable translate [translateParams]=\"field?.fieldArray?.templateOptions\"\n >Add {{ label }}</span\n >\n </button>\n </div>\n</div>\n"}]}],"members":{"ngOnInit":[{"__symbolic":"method"}]},"statics":{"CONFIG":{"types":[{"name":"array","component":{"__symbolic":"reference","name":"ArrayTypeComponent"}}]}}},"ɵs":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldWrapper","line":8,"character":38},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-wrapper-form-field","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"OnPush"},"template":"<div class=\"form-group\" [class.has-error]=\"showError\">\n <label *ngIf=\"to.label && to.hideLabel !== true\" [attr.for]=\"id\">\n {{ to.label }}\n <button\n *ngIf=\"to.description && showDescriptionAsPopup\"\n class=\"btn-clean m-l-4 flex-item-middle\"\n [popover]=\"to.description\"\n placement=\"auto\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </label>\n\n <ng-template #fieldComponent></ng-template>\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 class=\"help-block\" *ngIf=\"!showError && to.description && !showDescriptionAsPopup\">\n {{ to.description }}\n </div>\n</div>\n"}]}],"members":{"ngOnInit":[{"__symbolic":"method"}]},"statics":{"CONFIG":{"wrappers":[{"name":"c8y-form-field","component":{"__symbolic":"reference","name":"WrapperFormField"}}]}}},"ɵt":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":9,"character":31},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-field-file","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":7,"character":19},"member":"OnPush"},"template":"<div class=\"form-group\" role=\"group\" [attr.aria-labelledby]=\"id + '-fieldset'\">\n <div id=\"{{ id + '-fieldset' }}\" class=\"legend form-block\" *ngIf=\"to.label || to.description\">\n {{ to.label }}\n <button\n *ngIf=\"to.description\"\n class=\"btn-clean text-14 m-l-4\"\n [popover]=\"to.description\"\n placement=\"right\"\n outsideClick=\"true\"\n type=\"button\"\n >\n <i c8yIcon=\"question-circle-o\" class=\"text-primary\"></i>\n </button>\n </div>\n\n <c8y-drop-area #dropArea class=\"drop-area-sm\" [formControl]=\"formControl\"> </c8y-drop-area>\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</div>\n"}]}],"members":{"dropArea":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":33,"character":3},"arguments":["dropArea",{"static":true}]}]}],"ngOnInit":[{"__symbolic":"method"}]},"statics":{"CONFIG":{"types":[{"name":"file","component":{"__symbolic":"reference","name":"FieldFile"}}]}}},"ɵu":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":8,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-field-input","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"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"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"input","component":{"__symbolic":"reference","name":"FieldInput"},"wrappers":["c8y-form-field"]},{"name":"string","extends":"input"},{"name":"number","extends":"input","defaultOptions":{"templateOptions":{"type":"number"}}},{"name":"integer","extends":"input","defaultOptions":{"templateOptions":{"type":"number"}}}]}}},"ɵv":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":8,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-field-radio","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":6,"character":19},"member":"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 }}</span>\n</label>\n"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"radio","component":{"__symbolic":"reference","name":"FieldRadio"},"wrappers":["c8y-form-field"]}]}}},"ɵw":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-formly/core","name":"FieldType","line":7,"character":41},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"c8y-object-type","template":"<div role=\"group\"\n [attr.aria-labelledby]=\"id + '-fieldset'\" \n>\n <div id=\"{{id + '-fieldset'}}\" \n class=\"legend form-block\" \n *ngIf=\"to.label\"\n >{{ to.label }}</div>\n <p *ngIf=\"to.description\">{{ to.description }}</p>\n <div 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"}]}],"members":{},"statics":{"CONFIG":{"types":[{"name":"object","component":{"__symbolic":"reference","name":"ObjectTypeComponent"}}]}}},"ɵx":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵy"}],"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"ɵy"}]}]}],"members":{}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-audit-log","template":"<div class=\"inner-scroll\">\n <ul class=\"timeline-list list-condensed m-t-16\">\n <li class=\"timeline-list-item flex-row\" *c8yFor=\"let record of records\">\n <small class=\"timeline-item-date text-right\">\n <span>{{ record.time | c8yDate }}</span>\n </small>\n <div class=\"timeline-item-content flex-row\">\n <div class=\"list-item-body\">\n <div class=\"row text-break-word\">\n <div class=\"col-md-5\">\n <span class=\"text-truncate\">{{ record.activity | translate }}</span>\n <small class=\"text-muted\">{{ record.user }}</small>\n </div>\n <div class=\"col-md-7\">\n <div class=\"small text-truncate-wrap\">{{ record.text | translate }}</div>\n </div>\n </div>\n </div>\n </div>\n </li>\n </ul>\n</div>\n"}]}],"members":{"source":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"AuditService","line":32,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵba"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":12,"character":26}],"exports":[{"__symbolic":"reference","name":"ɵba"}]}]}],"members":{}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-list-display-switch","template":"<div class=\"form-group\">\n <label class=\"m-r-8\">\n {{ 'Display as' | translate }}\n </label>\n <div class=\"c8y-select-wrapper\">\n <select\n class=\"form-control\"\n [ngModel]=\"selectedOption\"\n (ngModelChange)=\"onOptionSelect($event)\"\n >\n <option *ngFor=\"let option of DISPLAY_OPTIONS\" [ngValue]=\"option\">{{\n option.label\n }}</option></select\n >\n <span></span>\n </div>\n</div>\n"}]}],"members":{"listKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"listLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"onListClassChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common","name":"Location","line":42,"character":32}]}],"ngOnInit":[{"__symbolic":"method"}],"onOptionSelect":[{"__symbolic":"method"}],"loadSelectedOption":[{"__symbolic":"method"}],"getLocalStorageOption":[{"__symbolic":"method"}],"getDefaultOption":[{"__symbolic":"method"}],"getLocalStorageKey":[{"__symbolic":"method"}],"getListKey":[{"__symbolic":"method"}]}},"ɵbe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":10,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":15,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":16,"character":5},"arguments":[{"__symbolic":"reference","name":"HOOK_DYNAMIC_PROVIDER_CONFIG"}]}],null,null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"DynamicProviderConfig"}]}]},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":18,"character":19},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":19,"character":22}]}],"get":[{"__symbolic":"method"}],"checkCanActivate":[{"__symbolic":"method"}],"getNodeTabPath":[{"__symbolic":"method"}]}}},"origins":{"ActionBarItem":"./core/action-bar/action-bar.model","ActionBarFactory":"./core/action-bar/action-bar.model","ActionBarItemComponent":"./core/action-bar/action-bar-item.component","ActionBarModule":"./core/action-bar/action-bar.module","HOOK_ACTION_BAR":"./core/action-bar/action-bar.service","ActionBarService":"./core/action-bar/action-bar.service","ActionBarComponent":"./core/action-bar/action-bar.component","HOOK_ACTION":"./core/action/action.service","ActionService":"./core/action/action.service","ActionModule":"./core/action/action.module","ActionComponent":"./core/action/action.component","Action":"./core/action/action.model","ActionFactory":"./core/action/action.model","ActionOutletComponent":"./core/action/action-outlet.component","AlertComponent":"./core/alert/alert.component","AlertOutletComponent":"./core/alert/alert-outlet.component","Alert":"./core/alert/alert.model","AlertTextComponent":"./core/alert/alert-text.component","AlertDetailsComponent":"./core/alert/alert-details.component","AlertService":"./core/alert/alert.service","AlertModule":"./core/alert/alert.module","BootstrapComponent":"./core/bootstrap/bootstrap.component","BootstrapModule":"./core/bootstrap/bootstrap.module","CookieBannerComponent":"./core/bootstrap/cookie-banner/cookie-banner.component","BreadcrumbOutletComponent":"./core/breadcrumb/breadcrumb-outlet.component","BreadcrumbComponent":"./core/breadcrumb/breadcrumb.component","HOOK_BREADCRUMB":"./core/breadcrumb/breadcrumb.service","BreadcrumbService":"./core/breadcrumb/breadcrumb.service","BreadcrumbItemComponent":"./core/breadcrumb/breadcrumb-item.component","BreadcrumbItem":"./core/breadcrumb/breadcrumb.model","Breadcrumb":"./core/breadcrumb/breadcrumb.model","BreadcrumbFactory":"./core/breadcrumb/breadcrumb.model","BreadcrumbModule":"./core/breadcrumb/breadcrumb.module","ApplicationOptions":"./core/common/ApplicationOptions","CookieBannerConfiguration":"./core/common/ApplicationOptions","CookiePreferencesConfiguration":"./core/common/ApplicationOptions","LoginExtraLink":"./core/common/ApplicationOptions","Icon":"./core/common/ApplicationOptions","Docs":"./core/common/ApplicationOptions","Links":"./core/common/ApplicationOptions","I18nExtra":"./core/common/ApplicationOptions","I18nExtraLangCode":"./core/common/ApplicationOptions","Languages":"./core/common/ApplicationOptions","LanguagesLangCode":"./core/common/ApplicationOptions","BrandingCssVars":"./core/common/ApplicationOptions","initializeServices":"./core/common/common.module","ICON_LIST":"./core/common/common.module","CommonModule":"./core/common/common.module","ES_MAX_TIME_MILLISECONDS":"./core/common/date.pipe","DatePipe":"./core/common/date.pipe","fromTrigger":"./core/common/extension-hooks","fromFactories":"./core/common/extension-hooks","resolveInjectedFactories":"./core/common/extension-hooks","stateToFactory":"./core/common/extension-hooks","sortByPriority":"./core/common/extension-hooks","toObservableOfArrays":"./core/common/extension-hooks","isPromise":"./core/common/extension-hooks","toObservable":"./core/common/extension-hooks","ExtensionFactory":"./core/common/extension-hooks","ExtensionPoint":"./core/common/extension-hooks","getActivatedRoute":"./core/common/extension-hooks","ForOfDirective":"./core/common/forOf.directive","HumanizeAppNamePipe":"./core/common/humanize-app-name.pipe","HumanizePipe":"./core/common/humanize.pipe","IconDirective":"./core/common/icon.directive","ICONS":"./core/common/icon.directive","LoadMoreComponent":"./core/common/load-more.component","LoadMoreMode":"./core/common/load-more.model","LoadingComponent":"./core/common/loading.component","MapFunctionPipe":"./core/common/map-function.pipe","memoize":"./core/common/memoize.decorator","throttle":"./core/common/throttle.decorator","HOOK_OPTIONS":"./core/common/options.service","OptionsService":"./core/common/options.service","OutletDirective":"./core/common/outlet.directive","Permissions":"./core/common/permissions.service","ProgressBarComponent":"./core/common/progress-bar.component","ShortenUserNamePipe":"./core/common/shorten-user-name.pipe","StateService":"./core/common/state-service.abstract","Status":"./core/common/status.model","StatusType":"./core/common/status.model","statusIcons":"./core/common/status.model","statusClasses":"./core/common/status.model","statusAlert":"./core/common/status.model","operationStatusIcons":"./core/common/status.model","operationStatusClasses":"./core/common/status.model","TenantUiService":"./core/common/tenant-ui.service","AppStateService":"./core/common/ui-state.service","UserPreferencesStorageLocal":"./core/common/user-preferences/user-preferences-storage-local","UserPreferencesStorageInventory":"./core/common/user-preferences/user-preferences-store-inventory","UserPreferencesService":"./core/common/user-preferences/user-preferences.service","ZipService":"./core/common/zip.service","ZipEntry":"./core/common/zip.service","retryWithDelay":"./core/common/retry-with-delay.operator","HeaderModule":"./core/header/header.module","HeaderService":"./core/header/header.service","Header":"./core/header/header.model","RightDrawerComponent":"./core/header/right-drawer/right-drawer.component","TitleOutletComponent":"./core/header/title/title-outlet.component","TitleComponent":"./core/header/title/title.component","HeaderBarComponent":"./core/header/header-bar/header-bar.component","AppSwitcherComponent":"./core/header/application/app-switcher.component","AppIconComponent":"./core/header/application/app-icon.component","PatternMessagesService":"./core/i18n/pattern-messages.service","translateLoaderFactory":"./core/i18n/i18n.module","localePathFactory":"./core/i18n/i18n.module","languagesFactory":"./core/i18n/i18n.module","localeId":"./core/i18n/i18n.module","getAngularLocalesLanguageString":"./core/i18n/i18n.module","I18nModule":"./core/i18n/i18n.module","LANGUAGES":"./core/i18n/languages","parse":"./core/i18n/parse-module","TranslateParserCustom":"./core/i18n/translate.parser","LOCALE_PATH":"./core/i18n/locale.path","loadLocale":"./core/i18n/load-locale","MissingTranslationCustomHandler":"./core/i18n/missing-translation-custom.handler","TranslateService":"./core/i18n/translate.service","_":"./core/i18n/gettext","gettext":"./core/i18n/gettext","MESSAGES":"./core/i18n/pattern-messages.data","TranslateCustomLoader":"./core/i18n/translate.loader","trimTranslationKey":"./core/i18n/translate.loader","HOOK_PATTERN_MESSAGES":"./core/i18n/patterns-message.hook","C8yTranslateModule":"./core/i18n/c8y-translate.module","C8yTranslateDirective":"./core/i18n/c8y-translate.directive","C8yTranslatePipe":"./core/i18n/c8y-translate.pipe","CachedLocaleDictionaryService":"./core/i18n/cached-locale-dictionary.service","LoginService":"./core/login/login.service","LoginMessage":"./core/login/login.model","LoginViews":"./core/login/login.model","LoginComponent":"./core/login/login.component","PasswordStrengthValidatorDirective":"./core/login/password-strength-validator.directive","StrengthValidatorService":"./core/login/strength-validator-service","RecoverPasswordComponent":"./core/login/recover-password.component","ChangePasswordComponent":"./core/login/change-password.component","TotpAuthComponent":"./core/login/totp-auth.component","LoginModule":"./core/login/login.module","CredentialsComponent":"./core/login/credentials.component","ModalModule":"./core/modal/modal.module","ModalComponent":"./core/modal/modal.component","ILabels":"./core/modal/modal-confirm.component","ConfirmModalComponent":"./core/modal/modal-confirm.component","ModalService":"./core/modal/modal.service","PopoverConfirmButtons":"./core/modal/popover-confirm.component","PopoverConfirmComponent":"./core/modal/popover-confirm.component","NavigatorModule":"./core/navigator/navigator.module","NavigatorIconComponent":"./core/navigator/navigator-icon.component","NavigatorNodeFactory":"./core/navigator/navigator-node-factory.interface","HOOK_NAVIGATOR_NODES":"./core/navigator/navigator.service","NavigatorService":"./core/navigator/navigator.service","NavigatorNodeData":"./core/navigator/navigator-node-data","NavigatorItemComponent":"./core/navigator/navigator-entry.component","NavigatorNodeRoot":"./core/navigator/navigator-node-root","NavigatorOutletComponent":"./core/navigator/navigator-outlet.component","ClickEventSource":"./core/navigator/navigator-node.component","NavigatorNodeComponent":"./core/navigator/navigator-node.component","ClickOptions":"./core/navigator/navigator-node","NavigatorNode":"./core/navigator/navigator-node","TotpSetupComponent":"./core/authentication/totp-setup.component","TotpChallengeComponent":"./core/authentication/totp-challenge.component","AuthenticationModule":"./core/authentication/authentication.module","PasswordStrengthCheckerService":"./core/authentication/password-strength-checker.service","PasswordStrengthComponent":"./core/authentication/password-strength.component","SmsChallengeComponent":"./core/authentication/sms-challenge.component","NewPasswordComponent":"./core/authentication/new-password.component","PasswordStrengthColor":"./core/authentication/password.model","NewPassword":"./core/authentication/password.model","PasswordCheckListComponent":"./core/authentication/password-check-list.component","PasswordConfirmModalComponent":"./core/authentication/password-confirm-modal.component","PasswordConfirm":"./core/authentication/password-confirm.directive","PasswordService":"./core/authentication/password.service","HOOK_SEARCH":"./core/search/search.service","SearchService":"./core/search/search.service","HighlightComponent":"./core/search/highlight.component","SearchComponent":"./core/search/search.component","Search":"./core/search/search.model","SearchFactory":"./core/search/search.model","SearchModule":"./core/search/search.module","SearchResultEmptyComponent":"./core/search/search-result-empty.component","SearchOutletComponent":"./core/search/search-outlet.component","ConditionalTabsOutletComponent":"./core/tabs/conditional-tabs-outlet.component","TabsOutletComponent":"./core/tabs/tabs-outlet.component","Tab":"./core/tabs/tab.model","TabFactory":"./core/tabs/tab.model","TabComponent":"./core/tabs/tab.component","HOOK_TABS":"./core/tabs/tabs.service","TabsService":"./core/tabs/tabs.service","TabsModule":"./core/tabs/tabs.module","DropAreaComponent":"./core/drop-area/drop-area.component","DroppedFile":"./core/drop-area/drop-area.component","DropAreaModule":"./core/drop-area/drop-area.module","FilePickerModule":"./core/file-picker/file-picker.module","FilePickerComponent":"./core/file-picker/file-picker.component","PickedFiles":"./core/file-picker/file-picker.model","DatePickerModule":"./core/date-picker/date-picker.module","DatePickerComponent":"./core/date-picker/date-picker.component","PickedDates":"./core/date-picker/date-picker.model","UserEditModalComponent":"./core/user/user-edit-modal.component","UserMenuService":"./core/user/user-menu.service","User":"./core/user/user-edit.component","UserEditComponent":"./core/user/user-edit.component","UserTotpRevokeComponent":"./core/user/user-totp-revoke.component","UserModule":"./core/user/user.module","UserMenuItemComponent":"./core/user/user-menu-item.component","UserMenuItem":"./core/user/user.model","UserTotpSetupComponent":"./core/user/user-totp-setup.component","UserMenuOutletComponent":"./core/user/user-menu-outlet.component","ViewContext":"./core/router/router.models","Route":"./core/router/router.models","RouteFactory":"./core/router/router.models","ContextRouteService":"./core/router/context-route.service","routes":"./core/router/router.module","RouterModule":"./core/router/router.module","ContextRouteGuard":"./core/router/context-route.guard","RouterTabsResolver":"./core/router/router-tabs.resolver","HOOK_ONCE_ROUTE":"./core/router/router.service","RouterService":"./core/router/router.service","EmptyComponent":"./core/router/empty.component","ContextRouteComponent":"./core/router/context-route.component","ViewContextServices":"./core/router/view-context.service","InputGroupListContainerDirective":"./core/forms/input-group-list-container.directive","TextAreaRowHeightDirective":"./core/forms/text-area-row-height.directive","RequiredInputPlaceholderDirective":"./core/forms/required-input-placeholder.directive","FormGroupComponent":"./core/forms/form-group.component","FilterInputComponent":"./core/forms/filter-input.component","DefaultValidationDirective":"./core/forms/default-validation.directive","MessageDirective":"./core/forms/message.directive","MinValidationDirective":"./core/forms/min-validation.directive","JsonValidationPrettifierDirective":"./core/forms/json-validation-prettifier.directive","IpRangeInputListComponent":"./core/forms/ip-range-input-list.component","PhoneValidationDirective":"./core/forms/phone-validation.directive","MessagesComponent":"./core/forms/messages.component","MaxValidationDirective":"./core/forms/max-validation.directive","ValidationRules":"./core/forms/validation-pattern","ValidationPattern":"./core/forms/validation-pattern","InputGroupListComponent":"./core/forms/input-group-list.component","FormsModule":"./core/forms/forms.module","FormGroupConfig":"./core/forms/form-group-config.model","SendStatus":"./core/device-status/device-availability","PushStatus":"./core/device-status/device-availability","SendStatusLabels":"./core/device-status/device-availability","PushStatusLabels":"./core/device-status/device-availability","deviceAvailabilityIconMap":"./core/device-status/device-availability","tooltips":"./core/device-status/device-availability","DeviceStatusModule":"./core/device-status/device-status.module","DeviceStatusComponent":"./core/device-status/device-status.component","DocsModule":"./core/docs/docs.module","DocLink":"./core/docs/docs.models","DocLinkFactory":"./core/docs/docs.models","HOOK_DOCS":"./core/docs/docs.models","DocsService":"./core/docs/docs.service","GuideDocsComponent":"./core/docs/guide-docs.component","GuideHrefDirective":"./core/docs/guide-href.directive","DynamicFormsModule":"./core/dynamic-forms/dynamic-forms.module","C8yJSONSchema":"./core/dynamic-forms/json-schema/c8y-json-schema.service","HOOK_COMPONENTS":"./core/dynamic-component/dynamic-component.model","HOOK_COMPONENT":"./core/dynamic-component/dynamic-component.model","DynamicComponentDefinition":"./core/dynamic-component/dynamic-component.model","DynamicComponent":"./core/dynamic-component/dynamic-component.model","OnBeforeSave":"./core/dynamic-component/dynamic-component.model","DynamicComponentModule":"./core/dynamic-component/dynamic-component.module","DynamicComponentComponent":"./core/dynamic-component/dynamic-component.component","DynamicComponentService":"./core/dynamic-component/dynamic-component.service","DashboardModule":"./core/dashboard/dashboard.module","WidgetsDashboardComponent":"./core/dashboard/widgets-dashboard.component","DashboardComponent":"./core/dashboard/dashboard.component","LegacyWidget":"./core/dashboard/dashboard.model","Widget":"./core/dashboard/dashboard.model","DashboardSettings":"./core/dashboard/dashboard.model","DashboardChildDimension":"./core/dashboard/dashboard.model","DashboardChildResizeDimension":"./core/dashboard/dashboard.model","DashboardChildArrangement":"./core/dashboard/dashboard.model","DashboardChange":"./core/dashboard/dashboard.model","WidgetChange":"./core/dashboard/dashboard.model","DashboardChildComponent":"./core/dashboard/dashboard-child.component","DashboardChildActionComponent":"./core/dashboard/dashboard-child-action.component","DashboardChildChange":"./core/dashboard/dashboard-child-change","DashboardChildTitleComponent":"./core/dashboard/dashboard-child-title.component","C8yStepper":"./core/stepper/stepper.component","C8yStepperProgress":"./core/stepper/stepper-progress.component","C8yStepperButtons":"./core/stepper/stepper-buttons.component","C8yStepperIcon":"./core/stepper/stepper-icon.directive","StepperModule":"./core/stepper/stepper.module","StepperButtonsVisibility":"./core/stepper/stepper.model","ListItemComponent":"./core/list-group/list-item.component","ListItemBodyComponent":"./core/list-group/list-item-body.component","ListItemCollapseComponent":"./core/list-group/list-item-collapse.component","ListItemActionComponent":"./core/list-group/list-item-action.component","ListItemRadioComponent":"./core/list-group/list-item-radio.component","ListItemFooterComponent":"./core/list-group/list-item-footer.component","ListGroupComponent":"./core/list-group/list-group.component","ListGroupModule":"./core/list-group/list-group.module","ListItemCheckboxComponent":"./core/list-group/list-item-checkbox.component","ListItemIconComponent":"./core/list-group/list-item-icon.component","ListItemTimelineComponent":"./core/list-group/list-item-timeline.component","QuickLinkModule":"./core/quicklink/quick-link.module","QuickLinkComponent":"./core/quicklink/quick-link.component","TypeaheadComponent":"./core/select/typeahead.component","Item":"./core/select/select.component","selectedFunction":"./core/select/select.component","selectedLabelFunction":"./core/select/select.component","SelectComponent":"./core/select/select.component","SelectModule":"./core/select/select.module","DynamicProviderConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderTabsConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderNavigationConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderLayoutConfig":"./core/provider-configuration/model/dynamic-provider-config.model","DynamicProviderEndpointConfig":"./core/provider-configuration/model/dynamic-provider-config.model","Endpoint":"./core/provider-configuration/model/dynamic-provider-config.model","ProviderDefinition":"./core/provider-configuration/model/provider-definition.model","ProviderProperties":"./core/provider-configuration/model/provider-properties.model","HOOK_DYNAMIC_PROVIDER_CONFIG":"./core/provider-configuration/provider-configuration-hook","ProviderConfigurationNodeFactory":"./core/provider-configuration/provider-configuration-node.factory","ProviderConfigurationRouteFactory":"./core/provider-configuration/provider-configuration-route.factory","ProviderConfigurationComponent":"./core/provider-configuration/provider-configuration.component","ProviderConfigurationModule":"./core/provider-configuration/provider-configuration.module","ProviderConfigurationService":"./core/provider-configuration/service/provider-configuration.service","ProviderDefinitionsService":"./core/provider-configuration/service/provider-definitions.service","GridDataSource":"./core/data-grid/grid-data-source","DataGridModule":"./core/data-grid/data-grid.module","DataGridComponent":"./core/data-grid/data-grid.component","DataGrid":"./core/data-grid/data-grid.model","Column":"./core/data-grid/data-grid.model","ColumnConfig":"./core/data-grid/data-grid.model","Filter":"./core/data-grid/data-grid.model","GridConfig":"./core/data-grid/data-grid.model","SpecialColumnName":"./core/data-grid/data-grid.model","ColumnDataType":"./core/data-grid/data-grid.model","ColumnDataRecordClassName":"./core/data-grid/data-grid.model","minColumnGridTrackSize":"./core/data-grid/data-grid.model","ratiosByColumnTypes":"./core/data-grid/data-grid.model","SortOrder":"./core/data-grid/data-grid.model","FilterPredicateFunction":"./core/data-grid/data-grid.model","FilteringActionType":"./core/data-grid/data-grid.model","Row":"./core/data-grid/data-grid.model","Pagination":"./core/data-grid/data-grid.model","ServerSideDataCallback":"./core/data-grid/data-grid.model","DataSourceModifier":"./core/data-grid/data-grid.model","ServerSideDataResult":"./core/data-grid/data-grid.model","DataSourceStats":"./core/data-grid/data-grid.model","DisplayOptions":"./core/data-grid/data-grid.model","ActionControl":"./core/data-grid/data-grid.model","BulkActionControl":"./core/data-grid/data-grid.model","BuiltInActionType":"./core/data-grid/data-grid.model","FilteringFormRendererComponent":"./core/data-grid/column/filtering-form-renderer.component","CellRendererDef":"./core/data-grid/column/cell-renderer","CellRendererSpec":"./core/data-grid/column/cell-renderer","CellRendererContext":"./core/data-grid/column/cell-renderer","CellRendererDefDirective":"./core/data-grid/column/cell-renderer","HeaderCellRendererDefDirective":"./core/data-grid/column/cell-renderer","FilteringFormRendererSpec":"./core/data-grid/column/filtering-form-renderer","FilteringFormRendererContext":"./core/data-grid/column/filtering-form-renderer","FilteringModifier":"./core/data-grid/column/filtering-form-renderer","FilteringFormRendererDefDirective":"./core/data-grid/column/filtering-form-renderer","CellRendererComponent":"./core/data-grid/column/cell-renderer.component","ColumnDirective":"./core/data-grid/column/column.directive","SelectModalFilterPipe":"./core/select-modal/select-modal-filter.pipe","SelectModalModule":"./core/select-modal/select-modal.module","ISelectModalObject":"./core/select-modal/select-modal.model","ISelectModalOption":"./core/select-modal/select-modal.model","ISelectModalBodyPart":"./core/select-modal/select-modal.model","ModalLabels":"./core/select-modal/select-modal.model","ModalSelectionMode":"./core/select-modal/select-modal.model","SelectModalComponent":"./core/select-modal/select-modal.component","ProductExperienceDirective":"./core/product-experience/product-experience.directive","GainsightService":"./core/product-experience/gainsight.service","ProductExperienceModule":"./core/product-experience/product-experience.module","HelpComponent":"./core/help/help.component","HelpModule":"./core/help/help.module","ManagedObjectRealtimeService":"./core/realtime/managed-object-realtime.service","OperationBulkRealtimeService":"./core/realtime/operation-bulk-realtime.service","OperationRealtimeService":"./core/realtime/operation-realtime.service","RealtimeButtonComponent":"./core/realtime/realtime-button.component","RealtimeMessage":"./core/realtime/realtime.model","RealtimeAction":"./core/realtime/realtime.model","RealtimeModule":"./core/realtime/realtime.module","RealtimeService":"./core/realtime/realtime.service","PluginsModule":"./core/plugins/plugins.module","PluginsService":"./core/plugins/plugins.service","RangeDisplayModule":"./core/range-display/range-display.module","RangeDisplayComponent":"./core/range-display/range-display.component","CoreModule":"./core/core.module","ɵa":"./core/common/if-allowed.directive","ɵb":"./core/common/dropdown-direction.directive","ɵc":"./core/common","ɵd":"./core/bootstrap/cookie-banner/cookie-banner.service","ɵe":"./core/bootstrap/cookie-banner/cookie-banner-preferences-modal/cookie-banner-preferences-modal.component","ɵf":"./core/forms/emails-validator.directive","ɵg":"./core/authentication/provide-phone-number.component","ɵh":"./core/authentication","ɵi":"./core/dynamic-forms/i18n/i18n.module","ɵj":"./core/dynamic-forms/i18n/translate.extension","ɵk":"./core/dynamic-forms/i18n/translate.extension","ɵl":"./core/dynamic-forms/validation/validation.module","ɵm":"./core/dynamic-forms/validation/validation-config.factory","ɵn":"./core/dynamic-forms/dynamic-forms-ui-theme.module","ɵo":"./core/dynamic-forms/dynamic-forms-ui-theme.module","ɵp":"./core/dynamic-forms/dynamic-forms-ui-theme.module","ɵq":"./core/dynamic-forms/checkbox/checkbox.type.component","ɵr":"./core/dynamic-forms/array/array.type.component","ɵs":"./core/dynamic-forms/form-field/form-field.wrapper.component","ɵt":"./core/dynamic-forms/file/file.type.component","ɵu":"./core/dynamic-forms/input/input.type.component","ɵv":"./core/dynamic-forms/radio/radio.type.component","ɵw":"./core/dynamic-forms/object/object.type.component","ɵx":"./core/audit-log/audit-log.module","ɵy":"./core/audit-log/audit-log.component","ɵz":"./core/list-display-switch/list-display-switch.module","ɵba":"./core/list-display-switch/list-display-switch.component","ɵbb":"./core/router","ɵbc":"./core/navigator","ɵbd":"./core/tabs","ɵbe":"./core/provider-configuration/provider-configuration-tab.factory"},"importAs":"@c8y/ngx-components"}
|