@c8y/ngx-components 1007.0.43 → 1007.0.47
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/bundles/c8y-ngx-components.umd.js +5 -2
- 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/core/dashboard/dashboard-child.component.d.ts +1 -0
- package/esm2015/core/dashboard/dashboard-child.component.js +5 -1
- package/esm2015/core/data-grid/data-grid.component.js +2 -2
- package/esm5/core/dashboard/dashboard-child.component.js +5 -2
- package/esm5/core/data-grid/data-grid.component.js +2 -2
- package/fesm2015/c8y-ngx-components.js +5 -1
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/fesm5/c8y-ngx-components.js +5 -2
- package/fesm5/c8y-ngx-components.js.map +1 -1
- package/locales/ja_JP.po +5 -5
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"ActionBarItem":{"__symbolic":"interface"},"ActionBarFactory":{"__symbolic":"interface"},"HOOK_ACTION_BAR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":35},"arguments":["ActionBarFactory"]},"ActionBarService":{"__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":{"ngInjectableDef":{}}},"Action":{"__symbolic":"interface"},"ActionFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"Alert":{"__symbolic":"interface"},"AlertService":{"__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":{"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":{"ngInjectableDef":{}}},"BootstrapComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"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]=\"header.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 style=\"cursor:default\" 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"}]}]}},"BreadcrumbItem":{"__symbolic":"interface"},"Breadcrumb":{"__symbolic":"interface"},"BreadcrumbFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"initializeServices":{"__symbolic":"function"},"ICON_LIST":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":56,"character":29},"arguments":["iconList"]},"CommonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":74,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":75,"character":12},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":75,"character":40}],"exports":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":80,"character":4},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"DatePipe"}],"declarations":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"DatePipe"}],"entryComponents":[{"__symbolic":"reference","name":"ɵt"}]}]}],"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":109,"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":113,"character":17},"useFactory":{"__symbolic":"reference","name":"initializeServices"},"deps":[{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"ɵx"}],"multi":true},{"provide":{"__symbolic":"reference","name":"ICON_LIST"},"useValue":{"__symbolic":"reference","name":"ɵp"},"multi":false},{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵf"},"member":"providers"}}},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"Permissions"}]},"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":25,"character":30},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":24,"character":1},"arguments":[{"name":"c8yDate"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":26,"character":22}]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":26,"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"]}},"ExtensionFactory":{"__symbolic":"interface"},"ExtensionPoint":{"__symbolic":"interface"},"getActivatedRoute":{"__symbolic":"function"},"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"}]}},"LoadMoreMode":{"__symbolic":"interface"},"memoize":{"__symbolic":"function","parameters":["resolver"],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":9,"module":"./core/common/memoize.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":"ɵa"},"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"}]}},"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"},"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"}]}},"CoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":31,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbe"},{"__symbolic":"reference","name":"ɵbj"},{"__symbolic":"reference","name":"ɵbl"},{"__symbolic":"reference","name":"ɵce"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"DataGridModule"},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"ɵcl"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","name":"ɵci"},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"SelectModule"},{"__symbolic":"reference","name":"ɵct"},{"__symbolic":"reference","name":"ɵbr"},{"__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":"ɵdi"},{"__symbolic":"reference","name":"DatePickerModule"}]}]}],"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":"ɵcl"},"member":"providers"}}}]}}}},"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":"ɵbn"},{"__symbolic":"reference","name":"ɵbo"},{"__symbolic":"reference","name":"ɵbp"},{"__symbolic":"reference","name":"ɵbq"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":34,"character":4},{"__symbolic":"reference","name":"ɵbr"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵce"},{"__symbolic":"reference","name":"ɵci"}],"exports":[{"__symbolic":"reference","name":"HeaderBarComponent"},{"__symbolic":"reference","name":"TitleComponent"},{"__symbolic":"reference","name":"ɵbn"},{"__symbolic":"reference","name":"ɵbo"},{"__symbolic":"reference","name":"ɵbp"},{"__symbolic":"reference","name":"ɵbq"}]}]}],"members":{}},"HeaderService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorService"},{"__symbolic":"reference","name":"OptionsService"}]}],"toggleNavigator":[{"__symbolic":"method"}],"closeNavigator":[{"__symbolic":"method"}],"configNavigator":[{"__symbolic":"method"}],"changeTitle":[{"__symbolic":"method"}],"changePageTitle":[{"__symbolic":"method"}],"verifyIfNavOpen":[{"__symbolic":"method"}],"shouldShowBreadcrumbs":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"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":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":8,"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]=\"'angle-double-right'\"></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]=\"'angle-double-left'\"></i>\n </button>\n </div>\n <div class=\"head-toggler\">\n <button title=\"{{ 'Toggle' | translate }}\" type=\"button\" (click)=\"toggle()\">\n <i [c8yIcon]=\"'angle-double-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"}],"toggle":[{"__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"}],"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"}]}},"ngInjectableDef":{}}},"_":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":17,"module":"./core/i18n/gettext"},"gettext":{"__symbolic":"function","parameters":["str"],"value":{"__symbolic":"reference","name":"str"}},"HOOK_PATTERN_MESSAGES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":41},"arguments":["Pattern Messages"]},"CachedLocaleDictionaryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ngInjectableDef":{}}},"LoginMessage":{"__symbolic":"interface"},"LoginViews":{"None":0,"Credentials":1,"RecoverPassword":2,"SmsChallenge":3,"ChangePassword":4,"TotpChallenge":5,"TotpSetup":6,"ProvidePhoneNumber":7},"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,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":99,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":89,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":90,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"CookieAuth","line":91,"character":24},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":93,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":94,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":95,"character":22},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":97,"character":17},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":98,"character":39},{"__symbolic":"reference","module":"@angular/common","name":"LocationStrategy","line":99,"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"}],"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"}],"getLoginOption":[{"__symbolic":"method"}],"getSupportUserName":[{"__symbolic":"method"}],"getStoredCredentials":[{"__symbolic":"method"}],"getStoredToken":[{"__symbolic":"method"}],"getStoredTfaToken":[{"__symbolic":"method"}],"decodeToken":[{"__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":{"ngInjectableDef":{}}},"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":"ɵca"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"declarations":[{"__symbolic":"reference","name":"ConfirmModalComponent"},{"__symbolic":"reference","name":"ɵca"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"providers":[{"__symbolic":"reference","name":"ModalService"}],"entryComponents":[{"__symbolic":"reference","name":"ConfirmModalComponent"}]}]}],"members":{}},"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=\"bottom-m\">\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 right-m-md\"\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"}]}},"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=\"bottom-m-md\" *ngIf=\"title\">\n <i class=\"fa fw\" [ngClass]=\"[classIcon]\"></i>\n <span *ngIf=\"title\">{{ title | translate }}</span>\n </h3>\n <p class=\"text-wrap\" style=\"word-wrap:break-word;\">{{ body | translate }}</p>\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":40,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ILabels":{"__symbolic":"interface"},"ClickOptions":{"__symbolic":"interface"},"NavigatorNode":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵdk"}]}],"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"}]}},"NavigatorNodeRoot":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"NavigatorNode"},"members":{"addRoot":[{"__symbolic":"method"}],"createNode":[{"__symbolic":"method"}]}},"HOOK_NAVIGATOR_NODES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":13,"character":40},"arguments":["NavigatorNodesFactory"]},"NavigatorService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":18,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":28,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":29,"character":20}]}],"openOnFirstUrl":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"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"}]}},"NavigatorIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"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":8,"character":3}}]}]}},"NavigatorNodeFactory":{"__symbolic":"interface"},"NewPassword":{"__symbolic":"interface"},"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\n #totpForm=\"ngForm\"\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"verifyCode()\"\n novalidate\n>\n\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n >\n <label\n translate\n for=\"totpToken\"\n >Verification code</label>\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=\"{{'Verification code' | translate}}\"\n required\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\n <button\n title=\"{{ 'Verify' | translate }}\" \n [disabled]=\"!totpForm.form.valid || loading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n translate\n >Verify</button>\n\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"}]}},"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 bottom-m-md\"\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]=\"'bottom-m-md'\"\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"}]}},"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\">\r\n <span class=\"password-strength-label\" translate>Password strength</span>\r\n <span class=\"pull-right ng-binding\" [ngStyle]=\"{'color': model.color}\">{{model.description | translate}}</span>\r\n <div>\r\n <div class=\"password-{{model.colorName}}\" [ngStyle]=\"{'background-color': model.color}\"></div>\r\n </div>\r\n</div>"}]}],"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"}]}]}},"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"}]}},"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"}]}},"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 password' | translate\" #modal>\r\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\r\n <c8y-form-group>\r\n <label translate for=\"currentPassword\">Current 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=\"{{ 'Current password' | translate }}\"\r\n required\r\n />\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"}]}},"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 4 out of 5 the conditions below' | translate}}:</span>\n <ul class=\"list-unstyled\">\n <li class=\"small\" *ngFor=\"let requirement of checklist\">\n <i style=\"color:lightgreen;\" [c8yIcon]=\"requirement.icon\"></i> \n <span\n [translate]=\"requirement.label\"\n [translateParams]=\"this.translateParams\"\n class=\"small {{requirement.contextualColor}}\"\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"}]}],"ngOnInit":[{"__symbolic":"method"}],"onPasswordChange":[{"__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":31,"character":36}]}],"confirmPassword":[{"__symbolic":"method"}],"hasLowerCase":[{"__symbolic":"method"}],"hasUpperCase":[{"__symbolic":"method"}],"hasNumbers":[{"__symbolic":"method"}],"hasSpecialChars":[{"__symbolic":"method"}],"getStrengthColor":[{"__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\">\n <c8y-form-group>\n <label for=\"newPassword\" translate>Password</label>\n <input\n id=\"newPassword\"\n [(ngModel)]=\"model.newPassword\"\n #newPassword=\"ngModel\"\n (change)=\"newPasswordChanged()\"\n type=\"password\"\n name=\"newPassword\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my_new_password' | translate }}\"\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 [(ngModel)]=\"model.newPasswordConfirm\"\n #newPasswordConfirm=\"ngModel\"\n type=\"password\"\n name=\"newPasswordConfirm\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my_new_password' | translate }}\"\n required\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n\n <c8y-password-strength\n [password]=\"model.newPassword\"\n [hidden]=\"!showPasswordStrength()\"\n (strength)=\"model.strength = $event\"\n ></c8y-password-strength>\n\n <c8y-password-check-list\n [password]=\"model.newPassword\"\n [hidden]=\"!passwordEnforced\"\n ></c8y-password-check-list>\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"}]}},"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":"ɵcb"}],"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":40,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","module":"angularx-qrcode","name":"QRCodeModule","line":43,"character":4}],"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":"ɵcb"}],"entryComponents":[{"__symbolic":"reference","name":"PasswordConfirmModalComponent"}],"providers":[{"__symbolic":"reference","name":"PasswordStrengthCheckerService"},{"__symbolic":"reference","name":"PasswordService"}]}]}],"members":{}},"SmsChallengeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"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>Insert the code received via SMS</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=\"{{ 'Verification code' | translate }}\"\n required\n />\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=\"top-m-sm\">\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link btn-sm pull-right\"\n (click)=\"onCancel.emit()\"\n translate\n >Login</a\n >\n <a\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"btn btn-link btn-sm\"\n (click)=\"resendTFASms()\"\n translate\n >Send new code</a\n >\n </div>\n</form>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":27,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"verifyTFACode":[{"__symbolic":"method"}],"resendTFASms":[{"__symbolic":"method"}],"useOAuthInternal":[{"__symbolic":"method"}],"verifyCodeWithOauth":[{"__symbolic":"method"}],"verifyCodeWithBasicAuth":[{"__symbolic":"method"}],"loginWithTFA":[{"__symbolic":"method"}]}},"SearchModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcc"},{"__symbolic":"reference","name":"ɵcd"},{"__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":"ɵcc"},{"__symbolic":"reference","name":"ɵcd"},{"__symbolic":"reference","name":"HighlightComponent"},{"__symbolic":"reference","name":"SearchResultEmptyComponent"}]}]}],"members":{}},"Search":{"__symbolic":"interface"},"SearchFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"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"}]}},"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"]}]}]}},"Tab":{"__symbolic":"interface"},"TabFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"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":{}},"DropAreaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-drop-area","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=\"hint-placeholder\" style=\"width: 300px;\">\n <p>\n {{ loadingMessage | translate }}\n </p>\n <div class=\"progress progress-striped active\" *ngIf=\"progress !== -1\">\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\" *ngIf=\"progress === -1\" style=\"position: 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 <div *ngIf=\"!loading\" class=\"hint-placeholder pointer\">\n <i class=\"fa fw fa-{{ 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 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 multiple\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":17,"character":3}}]}],"message":[{"__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}}]}],"loadingMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"alwaysShow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"clickToOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"progress":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"files":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"area":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":34,"character":3},"arguments":["area",{"static":true}]}]}],"zone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":35,"character":3},"arguments":["zone",{"static":false}]}]}],"picker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":36,"character":3},"arguments":["picker",{"static":false}]}]}],"ngOnInit":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"showPicker":[{"__symbolic":"method"}],"onOver":[{"__symbolic":"method"}],"onPick":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"onFilesSelected":[{"__symbolic":"method"}],"getFilesNamesAsString":[{"__symbolic":"method"}],"isFilesArrayEmpty":[{"__symbolic":"method"}],"isTooManyFiles":[{"__symbolic":"method"}],"hasEmptyFiles":[{"__symbolic":"method"}],"isAnyFileEmpty":[{"__symbolic":"method"}],"shouldShowFilesList":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"onDelete":[{"__symbolic":"method"}],"clearErrors":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"compose":[{"__symbolic":"method"}],"read":[{"__symbolic":"method"}],"onLoad":[{"__symbolic":"method"}]}},"DroppedFile":{"__symbolic":"interface"},"FilePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":4},{"__symbolic":"reference","name":"CommonModule"}],"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":4,"character":1},"arguments":[{"selector":"c8y-file-picker","template":"<div class=\"form-group\">\n <label 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> <span>{{ 'Upload a binary' | translate }}</span>\n </label>\n <label class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadUrl\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearSelectedFiles()\"\n />\n <span></span> <span>{{ 'Use a URL' | translate }}</span>\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":9,"character":3},"arguments":[{"__symbolic":"reference","name":"DropAreaComponent"},{"static":true}]}]}],"onFilesPicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"uploadChoice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"fileUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"fileBinary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"onFileDropped":[{"__symbolic":"method"}],"clearInputFromUrl":[{"__symbolic":"method"}],"clearSelectedFiles":[{"__symbolic":"method"}],"onFileUrlChange":[{"__symbolic":"method"}]}},"PickedFiles":{"__symbolic":"interface"},"AppStateService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":39,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":40,"character":23},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":42,"character":25}]}],"assignApplicationKeyToDefaultHeaders":[{"__symbolic":"method"}],"getLangs":[{"__symbolic":"method"}],"loadManifest":[{"__symbolic":"method"}],"isApplicationAvailable":[{"__symbolic":"method"}],"setUser":[{"__symbolic":"method"}],"getCurrentContextPath":[{"__symbolic":"method"}],"loadDefaultOptions":[{"__symbolic":"method"}],"showIncompatibleVersionsError":[{"__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":{"ngInjectableDef":{}}},"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"}]}},"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":"ɵdn"},{"__symbolic":"reference","name":"ɵdm"},{"__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"}}}}}},"ViewContext":{"Device":"device/:id","Group":"group/:id","User":"users/:id","Application":"applications/:id","SubscribedApplications":"subscribedApplications/:id","Tenant":"tenants/:id"},"Route":{"__symbolic":"interface"},"RouteFactory":{"__symbolic":"interface"},"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":"ɵdl"}]}],"refresh":[{"__symbolic":"method"}],"addRoute":[{"__symbolic":"method"}],"addRoutes":[{"__symbolic":"method"}],"convertRoute":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"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":"ɵdl"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refreshTabs":[{"__symbolic":"method"}]}},"EmptyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"empty","template":""}]}],"members":{}},"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"}]}},"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"}]}},"FormGroupConfig":{"__symbolic":"interface"},"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"}]}},"FormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":27,"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":33,"character":4},{"__symbolic":"reference","name":"FormGroupComponent"},{"__symbolic":"reference","name":"MessageDirective"},{"__symbolic":"reference","name":"MessagesComponent"},{"__symbolic":"reference","name":"InputGroupListComponent"},{"__symbolic":"reference","name":"ɵbx"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"ɵby"},{"__symbolic":"reference","name":"ɵbz"},{"__symbolic":"reference","name":"FilterInputComponent"}],"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":"ɵbx"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"ɵby"},{"__symbolic":"reference","name":"ɵbz"},{"__symbolic":"reference","name":"FilterInputComponent"}]}]}],"members":{}},"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 class=\"fa fa-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"}]}},"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"}]}},"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"}]}},"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}}]}]}},"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 style=\"display: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"}]}},"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"}]}},"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"}]}},"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"}]}},"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, hyphens and underscores allowed in the first part of the URI. Must start with a letter; hyphens and underscores 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."]},"internationalPhoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":19,"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":22,"character":16},"arguments":["Login alias must not contain slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]},"max":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":25,"character":10},"arguments":["Max value: {{ value }}"]},"min":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":26,"character":10},"arguments":["Min value: {{ value }}"]},"opcuaBrowsePath":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":27,"character":21},"arguments":["Invalid OPC UA URI."]},"password":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":28,"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":31,"character":21},"arguments":["Passwords do not match."]},"passwordStrength":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":32,"character":22},"arguments":["Password not good enough, password must be stronger (green)."]},"phoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":33,"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":36,"character":14},"arguments":["This field is required."]},"tenantId":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":37,"character":14},"arguments":["May contain lowercase letters, digits, hyphens and underscores. Must start with a letter; hyphens and underscores only allowed in the middle; minimum 2 characters."]},"urlSegment":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":41,"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":42,"character":10},"arguments":["Username must not contain spaces nor slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]}},"rules":{"__symbolic":"error","message":"Expression form not supported","line":49,"character":15}}},"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"}]}},"deviceAvailabilityIconMap":{"sendData":{"AVAILABLE":{"icon":"long-arrow-right","class":"statusOk"},"UNAVAILABLE":{"icon":"long-arrow-right","class":"statusNok"},"UNKNOWN":{"icon":"long-arrow-right","class":"statusUnknown"},"NOT_MONITORED":{"icon":"long-arrow-right","class":"statusUnknown"}},"push":{"CONNECTED":{"icon":"long-arrow-left","class":"statusOk"},"DISCONNECTED":{"icon":"long-arrow-left","class":"statusUnknown"},"UNKNOWN":{"icon":"long-arrow-left","class":"statusUnknown"},"MAINTENANCE":{"icon":"wrench","class":"statusAlert"}},"device":{"MAINTENANCE":{"icon":"wrench","class":"statusAlert"}}},"tooltips":{"__symbolic":"error","message":"Lambda not supported","line":50,"character":30,"module":"./core/device-status/device-availability"},"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"]}},"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"]}},"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"]},"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":{}},"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":{"ngInjectableDef":{}}},"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":"ɵg"},{"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}]}]}},"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":{"ngInjectableDef":{}}},"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":"ɵf"}],"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 top-m-sm\">\n <button class=\"btn btn-clean\" (click)=\"expandErrorDetails = !expandErrorDetails\">\n <i class=\"fa fa-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"}]}},"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\">\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: -41px;top: 3px;\"\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":184,"character":5},"arguments":[{"__symbolic":"reference","name":"DashboardComponent"}]}],null,null],"parameters":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":185,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":186,"character":21}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"setDynamicDimension":[{"__symbolic":"method"}],"resizeStarted":[{"__symbolic":"method"}],"dragStarted":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"childInView":[{"__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"},"DashboardModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"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":"ɵy"},{"__symbolic":"reference","name":"DynamicComponentModule"},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":26,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":27,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"DocsModule"}],"exports":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"DashboardChildComponent"},{"__symbolic":"reference","name":"DashboardChildTitleComponent"},{"__symbolic":"reference","name":"DashboardChildActionComponent"},{"__symbolic":"reference","name":"WidgetsDashboardComponent"}]}]}],"members":{}},"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":{}},"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}]}]}]}},"WidgetsDashboardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i> {{ '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 class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i> {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button class=\"btn btn-link\" (click)=\"toggleFullscreen()\">\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i> {{ '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 (click)=\"onDeleteDashboard.emit()\" [disabled]=\"settings.isFrozen || settings.isDisabled\">\n <i c8yIcon=\"trash\"></i> <span 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 [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 forceHtmlTranslate ngNonBindable\n >Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>.</small\n >\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\" style=\"position: 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\"> {{ widget.title | translate }}</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 (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\">\n <i c8yIcon=\"pencil\"></i> <span translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"trash\"></i> <span 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":15,"character":3}}]}],"context":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"contextDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"_settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3},"arguments":["settings"]}]}],"onAddWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":40,"character":3}}]}],"onEditWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"onDeleteWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":46,"character":3}}]}],"onChangeDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":3}}]}],"onEditDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":52,"character":3}}]}],"onDeleteDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":55,"character":3}}]}],"onFreeze":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":3}}]}],"onChangeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":61,"character":3}}]}],"onChangeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":3}}]}],"toggleFullscreen":[{"__symbolic":"method"}],"fullScreen":[{"__symbolic":"method"}]}},"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":"ɵdf"},{"__symbolic":"reference","name":"ɵdg"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"exports":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":19,"character":24},{"__symbolic":"reference","name":"ɵdf"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"STEPPER_GLOBAL_OPTIONS","line":27,"character":15},"useValue":{"displayDefaultIndicatorType":false}}]}]}],"members":{}},"C8yStepper":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":94,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":89,"character":1},"arguments":[{"selector":"c8y-stepper","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":92,"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":99,"character":3}}]}],"customClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"onStepChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":109,"character":3}}]}],"_icons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":137,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵdf"},{"descendants":true}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getIndicatorType":[{"__symbolic":"method"}],"setIndex":[{"__symbolic":"method"}]}},"C8yStepperButtons":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":65,"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\">{{ labels?.cancel | translate }}</span>\n <ng-template #cancelLabel>\n <span>{{ '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\">{{ labels?.back | translate }}</span>\n <ng-template #backLabel>\n <span>{{ '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\">{{ labels?.custom | translate }}</span>\n <ng-template #customLabel>\n <span>{{ '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\">{{ labels?.next | translate }}</span>\n <ng-template #nextLabel>\n <span>{{ '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":74,"character":3}}]}],"pending":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":90,"character":3}}]}],"onNext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":94,"character":3}}]}],"onBack":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":99,"character":3}}]}],"onCustom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":104,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":120,"character":15}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":120,"character":52}}]],"parameters":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":120,"character":73}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"back":[{"__symbolic":"method"}],"custom":[{"__symbolic":"method"}]}},"ListGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-list-group","host":{"class":"c8y-list__group"},"template":"<ng-content></ng-content>\n\n"}]}],"members":{}},"ListGroupModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":17,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":18,"character":4}],"declarations":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ɵdc"},{"__symbolic":"reference","name":"ɵdd"},{"__symbolic":"reference","name":"ɵcz"},{"__symbolic":"reference","name":"ɵda"},{"__symbolic":"reference","name":"ɵdb"},{"__symbolic":"reference","name":"ɵde"},{"__symbolic":"reference","name":"ListItemRadioComponent"}],"exports":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ɵdc"},{"__symbolic":"reference","name":"ɵdd"},{"__symbolic":"reference","name":"ɵcz"},{"__symbolic":"reference","name":"ɵda"},{"__symbolic":"reference","name":"ɵdb"},{"__symbolic":"reference","name":"ɵde"},{"__symbolic":"reference","name":"ListItemRadioComponent"}]}]}],"members":{}},"ListItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-list-item, c8y-li","host":{"class":"c8y-list__item"},"template":"<div [ngClass]=\"{ 'expanded': !collapsed }\">\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\">\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 || showActions\">\n <button\n class=\"collapse-btn\"\n title=\"{{ 'Expand' | translate }}\"\n type=\"button\"\n (click)=\"toggleCollapsed()\"\n [attr.aria-expanded]=\"!collapsed\"\n *ngIf=\"showCollapse\"\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":25,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["class.active"]}]}],"collapsed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"collapsedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":30,"character":3}}]}],"itemFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":32,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵcz"},{"static":false}]}]}],"itemActions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":34,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵda"}]}]}],"itemCollapse":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":36,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵdb"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":49,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showDropdownUp":[{"__symbolic":"method"}],"toggleCollapsed":[{"__symbolic":"method"}],"pulse":[{"__symbolic":"method"}]}},"ListItemRadioComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-list-item-radio, c8y-li-radio","host":{"class":"c8y-list__item__radio"},"template":"<label class=\"c8y-radio\">\n <input\n #radio\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"selected\"\n (change)=\"onSelect.emit($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":18,"character":3},"arguments":["radio",{"static":true}]}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"QuickLinkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵdo"}],"imports":[{"__symbolic":"reference","name":"CoreModule"}],"exports":[{"__symbolic":"reference","name":"ɵdo"}],"providers":[]}]}],"members":{}},"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 #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\"\n style=\"position: absolute; right: 40px; top: 10px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >New</span\n >\n\n <span class=\"input-group-btn\">\n <button type=\"button\" class=\"btn btn-clean\" [disabled]=\"disabled\">\n <i class=\"dropdown-caret\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu\" *dropdownMenu>\n <ng-content select=\"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}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"selectedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":3}}]}],"onSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"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"}]}},"Item":{"__symbolic":"interface"},"selectedFunction":{"__symbolic":"interface"},"selectedLabelFunction":{"__symbolic":"interface"},"SelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"c8y-select","template":"<div\n class=\"c8y-child-assets-selector dropdown fit-h\"\n (isOpenChange)=\"isOpenChange($event)\"\n dropdown\n #dropdown\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\">{{ placeholder | translate }}</span>\n </button>\n\n <ul class=\"dropdown-menu multiselect-container\" *dropdownMenu>\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 class=\"fa fa-search\" *ngIf=\"!textFilter\"></i>\n <i class=\"fa fa-times 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 style=\"margin-top:0;\"\n /><span></span> <span span class=\"label-text \">{{ getSelectAllToggleStatus().label }}</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 class=\"c8y-checkbox input-sm text-truncate\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n (change)=\"onChangeItem($event.target.checked, item)\"\n style=\"margin-top:0\"\n />\n <span></span>\n <span class=\"label-text \" title=\"{{ item.name | translate }}\">{{\n item.name | translate\n }}</span>\n </label>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li>\n <button\n title=\"{{ applyLabel | translate }}\"\n class=\"btn btn-primary btn-block\"\n (click)=\"applyChanges()\"\n >\n {{ applyLabel | translate }}\n </button>\n </li>\n </ul>\n</div>\n"}]}],"members":{"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"selectedLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"applyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"onChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":32,"character":3}}]}],"dropdown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":33,"character":3},"arguments":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownDirective","line":33,"character":13},{"static":false}]}]}],"preventClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":48,"character":3},"arguments":["click",["$event"]]}]}],"isOpenChange":[{"__symbolic":"method"}],"outterSelected":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}],"isAllItemsSelected":[{"__symbolic":"method"}],"isAllFilteredSelected":[{"__symbolic":"method"}],"applyChanges":[{"__symbolic":"method"}],"selectAll":[{"__symbolic":"method"}],"onChangeItem":[{"__symbolic":"method"}],"updateFiltered":[{"__symbolic":"method"}],"getSelectAllToggleStatus":[{"__symbolic":"method"}],"ngOnChanges":[{"__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":{}},"DataGridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkTableModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":22,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":24,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/pagination","name":"PaginationModule","line":26,"character":4},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"ɵcw"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"ɵcx"},{"__symbolic":"reference","name":"ɵcy"},{"__symbolic":"reference","name":"DataGridComponent"}],"exports":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"ɵcy"},{"__symbolic":"reference","name":"DataGridComponent"}],"entryComponents":[{"__symbolic":"reference","name":"DataGridComponent"}]}]}],"members":{}},"DataGrid":{"__symbolic":"interface"},"Column":{"__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"},"DataGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":57,"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\">\n <h4 class=\"m-r-16\">{{ title | translate }}</h4>\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 class=\"m-l-8 btn btn-xs btn-default m-r-4\" (click)=\"clearFilters()\" translate>\n Clear filters\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>\n </span>\n\n <div class=\"flex-item-right\">\n <div class=\"btnbar flex-row\">\n <div class=\"dropdown\" dropdown [insideClick]=\"true\">\n <button class=\"btnbar-btn c8y-dropdown\" dropdownToggle>\n <i c8yIcon=\"columns\" class=\"m-r-4\"></i> <span translate>Configure columns</span>\n </button>\n\n <ul\n *dropdownMenu\n class=\"dropdown-menu\"\n (click)=\"$event.stopPropagation()\"\n >\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\">\n <label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"column.visible\"\n (change)=\"updateGridColumnsSize()\"\n />\n <span></span> \n {{ (column.header | translate) || column.name }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </li>\n </ul>\n </div>\n\n <button\n class=\"btnbar-btn\"\n [disabled]=\"dataSource.loading$ | async\"\n (click)=\"searchText = ''; reload()\"\n >\n <i c8yIcon=\"refresh\"></i> <span translate> Reload</span>\n </button>\n\n <div *ngIf=\"!serverSideDataCallback\" class=\"input-group input-group-search\">\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)\" style=\"cursor: pointer\">\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 *ngSwitchCase=\"builtInActionType.Export\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n >\n <i c8yIcon=\"sign-out\"></i> <span translate>Export</span>\n </button>\n\n <button\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n >\n <i c8yIcon=\"trash\"></i> <span translate>Delete</span>\n </button>\n\n <button\n *ngSwitchDefault\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n >\n <i c8yIcon=\"{{ bulkActionControl.icon }}\"></i>\n {{ bulkActionControl.text | translate }}\n </button>\n </ng-container>\n\n <button class=\"btnbar-btn\" (click)=\"setAllItemsSelected(false)\">\n <i c8yIcon=\"times\"></i> <span translate>Cancel</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\"\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 <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n class=\"btn btn-icon btn-xs btn-primary\"\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-primary\"\n title=\"{{ actionControl.text | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n </button>\n </ng-container>\n </ng-container>\n\n <div *ngIf=\"actionControls.length > 2\" class=\"dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Actions' | translate }}\"\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 <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"pencil\"></i> {{ 'Edit' | translate }}\n </button>\n <button\n *ngSwitchCase=\"builtInActionType.Delete\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"trash\"></i> {{ 'Delete' | translate }}\n </button>\n <button\n *ngSwitchCase=\"builtInActionType.Export\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"download\"></i> {{ 'Export' | translate }}\n </button>\n <button *ngSwitchDefault (click)=\"actionControl.callback(row, reload.bind(this))\">\n <i c8yIcon=\"{{ actionControl.icon }}\"></i> {{ actionControl.text | translate }}\n </button>\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 <div\n *ngIf=\"column.filterable\"\n class=\"dropdown\"\n dropdown\n #dropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n container=\"body\"\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 <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ noMatchingItemsLabel | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"pagination && !infiniteScroll\" class=\"table-data-grid-footer separator\">\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\" translate>Items per page</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":62,"character":3}}]}],"loadMoreItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"noMatchingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"_columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3},"arguments":["columns"]}]}],"_rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3},"arguments":["rows"]}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":3},"arguments":["pagination"]}]}],"_infiniteScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":3},"arguments":["infiniteScroll"]}]}],"_serverSideDataCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":3},"arguments":["serverSideDataCallback"]}]}],"_selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3},"arguments":["selectable"]}]}],"_selectionPrimaryKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":3},"arguments":["selectionPrimaryKey"]}]}],"_displayOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3},"arguments":["displayOptions"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3},"arguments":["actionControls"]}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":147,"character":3},"arguments":["bulkActionControls"]}]}],"rowMouseOver":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":152,"character":3}}]}],"rowMouseLeave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":153,"character":3}}]}],"rowClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":154,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":156,"character":3}}]}],"columnRenderers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":158,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵcy"}]}]}],"scrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":160,"character":3},"arguments":["scroll",{"static":true}]}]}],"infiniteScrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":162,"character":3},"arguments":["infiniteScrollContainer",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":162,"character":63}}]}]}],"thRefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":199,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkHeaderCell","line":199,"character":16},{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":199,"character":39}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":207,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":208,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":209,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":210,"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"}],"isItemSelected":[{"__symbolic":"method"}],"onColumnDrop":[{"__symbolic":"method"}],"updateGridColumnsSize":[{"__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"}],"updateFilteringLabelsParams":[{"__symbolic":"method"}],"updatePaginationLabelParams":[{"__symbolic":"method"}],"createLoadMoreComponent":[{"__symbolic":"method"}],"scrollToTop":[{"__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"}]}]}]}},"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 [selected]=\"option.selected\"\n (onSelect)=\"updateChoice({ item: item, id: option.obj.id })\"\n [disabled]=\"option.disabled\"\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":40,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap","name":"BsModalRef","line":47,"character":34}]}],"ngOnChanges":[{"__symbolic":"method"}],"updatePipe":[{"__symbolic":"method"}],"updateChoice":[{"__symbolic":"method"}],"dismiss":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getOutput":[{"__symbolic":"method"}]}},"ISelectModalObject":{"__symbolic":"interface"},"ISelectModalOption":{"__symbolic":"interface"},"ISelectModalBodyPart":{"__symbolic":"interface"},"ModalLabels":{"__symbolic":"interface"},"ModalSelectionMode":{"SINGLE":"single","MULTI":"multi"},"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":"ɵdh"}],"declarations":[{"__symbolic":"reference","name":"SelectModalComponent"},{"__symbolic":"reference","name":"ɵdh"}]}]}],"members":{}},"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"}]}},"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"}]}},"RealtimeMessage":{"__symbolic":"class","arity":1,"members":{}},"RealtimeAction":{"__symbolic":"interface"},"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"}]}},"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":"<form [formGroup]=\"fgDatePicker\">\n <c8y-form-group class=\"datepicker\">\n <input\n formControlName=\"dateFrom\"\n class=\"form-control\"\n placeholder=\"{{ 'Date from' | translate }}\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n />\n </c8y-form-group>\n <c8y-form-group class=\"datepicker\">\n <input\n formControlName=\"dateTo\"\n class=\"form-control\"\n placeholder=\"{{ 'Date to' | translate }}\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n />\n </c8y-form-group>\n <button\n *ngIf=\"fgDatePicker.get('dateFrom').value || fgDatePicker.get('dateTo').value\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"submit\"\n class=\"btn btn-link\"\n (click)=\"filter()\"\n >\n <i c8y-icon=\"filter\"></i>\n {{ 'Apply`filters`' | translate }}\n </button>\n <button\n *ngIf=\"fgDatePicker.get('dateFrom').value || fgDatePicker.get('dateTo').value\"\n title=\"{{ 'Clear' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"clearFilter()\"\n >\n <i c8y-icon=\"times\"></i>\n {{ 'Clear`filters`' | translate }}\n </button>\n</form>\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"},"ɵa":{"__symbolic":"class","members":{}},"ɵb":{"__symbolic":"function","parameters":["httpClient","optionsService","cachedLocaleDictionaryService","localePath","languages"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵk"},"arguments":[{"__symbolic":"reference","name":"httpClient"},{"__symbolic":"reference","name":"optionsService"},{"__symbolic":"reference","name":"cachedLocaleDictionaryService"},{"__symbolic":"reference","name":"localePath"},{"__symbolic":"reference","name":"languages"}]}},"ɵc":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"localePath"}},"ɵd":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"languages"}},"ɵe":{"__symbolic":"function","parameters":["appStateService"],"value":{}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":84,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":85,"character":12},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":86,"character":12}],"declarations":[{"__symbolic":"reference","name":"ɵg"}]}]}],"members":{},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":92,"character":17},"useFactory":{"__symbolic":"reference","name":"ɵe"},"deps":[{"__symbolic":"reference","name":"AppStateService"}]},{"provide":{"__symbolic":"reference","name":"HOOK_PATTERN_MESSAGES"},"useValue":{"__symbolic":"reference","name":"ɵh"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵi"},"useFactory":{"__symbolic":"reference","name":"ɵc"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","name":"ɵj"},"useFactory":{"__symbolic":"reference","name":"ɵd"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateLoader","line":99,"character":17},"useFactory":{"__symbolic":"reference","name":"ɵb"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":101,"character":15},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"CachedLocaleDictionaryService"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateCompiler","line":103,"character":17},"useClass":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateFakeCompiler","line":103,"character":46}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":104,"character":17},"useClass":{"__symbolic":"reference","name":"ɵl"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"MissingTranslationHandler","line":105,"character":17},"useClass":{"__symbolic":"reference","name":"ɵm"}},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateStore","line":106,"character":6},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":107,"character":6},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_STORE","line":108,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_DEFAULT_LANG","line":109,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_EXTEND","line":110,"character":17},"useValue":false},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"DEFAULT_LANGUAGE","line":111,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ɵf"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵf"},"member":"providers"}}}}}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[forceHtmlTranslate]"}]}],"members":{"translateParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":44,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":45,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":46,"character":18}]}],"ngAfterViewChecked":[{"__symbolic":"method"}],"checkNodes":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getLookupKey":[{"__symbolic":"method"}],"isLookupKeyMissing":[{"__symbolic":"method"}],"lookupKeyExist":[{"__symbolic":"method"}],"translateAndUpdateHtmlContent":[{"__symbolic":"method"}]}},"ɵh":{"^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":["generalStatus=\"{{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":["generalStatus=\"{{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":["generalStatus=\"{{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$"]},"ɵi":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":31},"arguments":["Locale path"]},"ɵj":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["Languages"]},"ɵk":{"__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":"ɵi"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵj"}]}]],"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"}]}},"ɵl":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateDefaultParser","line":10,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"getValue":[{"__symbolic":"method"}]}},"ɵm":{"__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":"ɵn"}]}],"handle":[{"__symbolic":"method"}],"getFromCache":[{"__symbolic":"method"}],"addToCache":[{"__symbolic":"method"}],"getCacheKey":[{"__symbolic":"method"}],"getPatternMessageTranslation":[{"__symbolic":"method"}]}},"ɵn":{"__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":{"ngInjectableDef":{}}},"ɵo":{"__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"}]}},"ɵp":["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","hdd-o","book","bookmark","tag","flag","search","heart","star","bolt","rocket","cog","cogs","wrench","ban","user","users","sign-in","sign-out","upload","download","cloud-upload","cloud-download","cloud","spinner","refresh","repeat","undo","lock","unlock","info","question","exclamation","bug","calendar","random","asterisk","key","link","chain-broken","external-link","picture-o","comment","bullhorn","phone","lightbulb-o","flask","sitemap","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","apple","windows","android","linux"],"ɵq":{"__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"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"shortenUserName"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":59,"character":1},"arguments":[{"selector":"[c8yFor]"}]}],"members":{"c8yForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3}}]}],"c8yForLoadMore":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3}}]}],"c8yForPipe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":127,"character":3}}]}],"c8yForNotFound":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":137,"character":3}}]}],"c8yForMaxIterations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":148,"character":3}}]}],"c8yForRealtime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"c8yForComparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":165,"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":172,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":173,"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"}]}},"ɵt":{"__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\"\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=\"showNoMoreDataHint\">\n <ng-container *ngTemplateOutlet=\"noMoreDataHint || finishHint\"></ng-container>\n</ng-container>\n\n<ng-template #finishHint>\n <div class=\"legend form-block center\">\n <i [c8yIcon]=\"'flag-checkered'\" class=\"m-r-4\"></i>\n {{ 'Last record' | translate }}\n </div>\n</ng-template>\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}}]}],"loadNextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"loadingLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"onLoad":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"hostClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":44,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":55,"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"}]}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"map"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵv":{"__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\" *ngIf=\"progress === null\" style=\"position: 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"}]}],"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}}]}]}},"ɵw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"c8y-single-operation","template":"<div class=\"c8y-list--group\" *ngIf=\"operation\">\n <a href=\"#/device/{{ operation.deviceId }}/control\" class=\"c8y-list__item\">\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i\n [c8yIcon]=\"statusIcons[operation.status]\"\n [ngClass]=\"statusClasses[operation.status]\"\n [tooltip]=\"operation.status?.toString() | translate\"\n placement=\"right\"\n container=\"body\"\n ></i>\n </div>\n <div class=\"c8y-list__item__body p-r-16\">\n <div class=\"content-flex-40\">\n <div class=\"col-8 text-break-word\">{{ operation.description | translate }}</div>\n <div class=\"col-4 text-muted\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <small>{{ operation.creationTime | c8yDate }}</small>\n </div>\n </div>\n </div>\n </div>\n </a>\n</div>\n"}]}],"members":{"operation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵx":{"__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"}]}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":20,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":22,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":23,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"}]}]}],"members":{}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-action-bar","host":{"class":"c8y-ui-action-bar"},"template":"<div class=\"navbar-header\">\n <button\n type=\"button\"\n class=\"navbar-toggle collapsed\"\n (click)=\"isPageToolbarExpanded = !isPageToolbarExpanded\"\n >\n <span class=\"sr-only\" translate>Toggle toolbar</span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n</div>\n\n<div id=\"page-toolbar\" class=\"navbar-collapse\" [collapse]=\"!isPageToolbarExpanded\">\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\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span 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 </div>\n </li>\n </ul>\n</div>\n"}]}],"members":{"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":10,"character":12},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":11,"character":12},"arguments":["class.has-tabs"]}]}],"isTabsHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":12,"character":12},"arguments":["class.horizontal-tabs"]}]}],"uiActionBar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":14,"character":3},"arguments":["class.c8y-ui-action-bar"]}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"hidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":17,"character":3}}]}],"getSortedItems":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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":9,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"itemClass":[{"__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}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionBarService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"}],"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":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"}]}]}],"members":{}},"ɵbc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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=\"fa-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":11,"character":3}}]}],"getByPriority":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ɵbd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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":9,"character":3}}]}],"label":[{"__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}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":13,"character":3},"arguments":["template",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"ɵbf"},{"__symbolic":"reference","name":"ɵbg"},{"__symbolic":"reference","name":"ɵbh"},{"__symbolic":"reference","name":"ɵbi"}],"declarations":[{"__symbolic":"reference","name":"ɵbf"},{"__symbolic":"reference","name":"ɵbg"},{"__symbolic":"reference","name":"ɵbh"},{"__symbolic":"reference","name":"ɵbi"}]}]}],"members":{}},"ɵbf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-alert-outlet","template":"<div\n class=\"alert animated fadeInRightBig\"\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 top-m-sm\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alert)\"\n >\n <i class=\"fa fa-chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alert) && isDetailsShow(alert)\" class=\"text-muted top-m-sm\">\n <button title=\"{{ 'Hide details' | translate }}\" class=\"btn btn-clean\" (click)=\"closeDetails()\">\n <i class=\"fa fa-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":13,"character":3},"arguments":["class.static"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":18,"character":5},"arguments":["position"]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"AlertService"}]}],"getClass":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"showDetails":[{"__symbolic":"method"}],"setDetailsContent":[{"__symbolic":"method"}],"hasDetails":[{"__symbolic":"method"}],"closeDetails":[{"__symbolic":"method"}],"isDetailsShow":[{"__symbolic":"method"}],"isTemplateRef":[{"__symbolic":"method"}],"template":[{"__symbolic":"method"}]}},"ɵbg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"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":12,"character":3}}]}],"onDetail":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"detailedData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":15,"character":3},"arguments":["detailedData",{"static":false}]}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":["text",{"static":false}]}]}],"containDetailsComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":17,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵbh"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AlertService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-alert-details","template":"<ng-content></ng-content>"}]}],"members":{}},"ɵbi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-alert-text","template":"<ng-content></ng-content>"}]}],"members":{}},"ɵbj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbk"}],"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"ɵbk"}]}]}],"members":{}},"ɵbk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"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":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"AuditService","line":13,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":18,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"BootstrapComponent"},{"__symbolic":"reference","name":"ɵbm"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"ɵcl"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":27,"character":4},{"__symbolic":"reference","name":"ɵct"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵbe"},{"__symbolic":"reference","name":"ɵci"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":32,"character":4}],"exports":[{"__symbolic":"reference","name":"BootstrapComponent"}],"entryComponents":[{"__symbolic":"reference","name":"BootstrapComponent"}]}]}],"members":{}},"ɵbm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"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\">\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 class=\"btn btn-primary btn-block\" (click)=\"acceptCookies()\">\n {{ 'Agree and proceed' | 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>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OptionsService"}]}],"ngOnInit":[{"__symbolic":"method"}],"acceptCookies":[{"__symbolic":"method"}]}},"ɵbn":{"__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":13,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":14,"character":18}]}]}},"ɵbo":{"__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"}]}],"ngOnChanges":[{"__symbolic":"method"}],"findStaticIcon":[{"__symbolic":"method"}],"iconFromAppDefinition":[{"__symbolic":"method"}],"iconUrlFromAppDefinition":[{"__symbolic":"method"}]}},"ɵbp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"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 class=\"fa-2x fa fw fa-th\"></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 >\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":22,"character":26}]}],"isActive":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"listAppsForUser":[{"__symbolic":"method"}],"filterApps":[{"__symbolic":"method"}],"filterVisible":[{"__symbolic":"method"}],"filterCloud":[{"__symbolic":"method"}],"filterDuplicates":[{"__symbolic":"method"}],"orderApps":[{"__symbolic":"method"}]}},"ɵbq":{"__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\n <div class=\"summary\">\n <h4 class=\"text-light\">{{'Welcome to' | translate}} {{app | humanizeAppName | async}}</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 class=\"quick-link\"\n [href]=\"quickLink.url || '#'\"\n (click)=\"quickLink.click && $event.preventDefault(); quickLink.click();\">\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 top-m-lg\" translate>Help & support</div>\n <div class=\"help-support\" *ngFor=\"let link of helpAndSupport\">\n <a class=\"help-and-support-link text-truncate\" target=\"_blank\" rel=\"noopener noreferrer\" [href]=\"link.url\">\n <i [c8yIcon]=\"link.icon\"></i>\n <span title=\"{{link.label | translate}}\" style=\"display: inline;\">{{link.label | translate}}</span>\n </a>\n </div>\n </div>\n\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}}]}]}},"ɵbr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbs"},{"__symbolic":"reference","name":"ɵbt"},{"__symbolic":"reference","name":"ɵbu"},{"__symbolic":"reference","name":"ɵbv"},{"__symbolic":"reference","name":"ɵbw"},{"__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":"ɵbe"},{"__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":"ɵbs"},{"__symbolic":"reference","name":"ɵbv"},{"__symbolic":"reference","name":"ɵbt"},{"__symbolic":"reference","name":"ɵbu"},{"__symbolic":"reference","name":"ɵbw"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}],"entryComponents":[{"__symbolic":"reference","name":"ɵbu"},{"__symbolic":"reference","name":"ɵbw"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}]}]}],"members":{}},"ɵbs":{"__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\"\n dropdownToggle\n style=\"white-space: nowrap\"\n >\n <span\n class=\"hidden-xs text-truncate right-m\"\n style=\"vertical-align: text-bottom; max-width: 104px; display: inline-block\"\n title=\"{{ui.currentUser | async | shortenUserName}}\"\n >\n {{ui.currentUser | async | shortenUserName}}\n </span>\n <i\n [c8yIcon]=\"'c8y-user'\"\n class=\"fa-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 style=\"cursor: pointer\" [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\"\n style=\"white-space: normal; 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\"\n style=\"margin: 1px 6px 0 -3px; font-size: 14px;\"\n ></i>\n <span class=\"text-muted text-truncate\">\n {{'Tenant ID' | translate}}: <strong>\n <span class=\"text-primary\" (click)=\"$event.stopPropagation(); copyIt(ui.currentTenant.value.name)\"\n style=\"cursor: pointer\">\n {{ui.currentTenant.value.name}} <i [c8yIcon]=\"'clipboard'\"></i></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'\"\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]=\"'phone'\"\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]=\"'phone'\"\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"}]}},"ɵbt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"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 You cannot edit the user since it is managed via your authorization 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]=\"user.newsletter\"\n [disabled]=\"userIsExternal\"\n />\n <c8y-messages>\n <c8y-message *ngIf=\"!user.email\" translate\n >Note that email is required to reset password.</c8y-message\n >\n </c8y-messages>\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 [disabled]=\"userIsExternal\"\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 <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 translate\n *ngIf=\"userCanSetupTotp && !userHasActiveTotp && isTfaEnabled\"\n >\n Set up two-factor authentication\n </button>\n </div>\n\n <c8y-form-group *ngIf=\"!!(state.state$ | async).newsletter\">\n <label translate>Newsletter</label>\n <label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"newsletter\"\n [(ngModel)]=\"user.newsletter\"\n [disabled]=\"userIsExternal\"\n />\n <span></span>\n {{ 'Send me information about outages, maintenance or updates.' | translate }}\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 translate\n >\n Cancel\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 || userIsExternal\"\n translate\n >\n Save\n </button>\n </div>\n</form>\n"}]}],"members":{"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"onUser":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"onLanguage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"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":51,"character":28},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":53,"character":25},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":54,"character":39},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":55,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"setupTotp":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"onNewPasswordChanged":[{"__symbolic":"method"}],"initializeTotpSettings":[{"__symbolic":"method"}],"canUserSetupTotp":[{"__symbolic":"method"}],"saveAfterPasswordConfirmation":[{"__symbolic":"method"}]}},"ɵbu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-user-edit-modal","template":"<c8y-modal\n [customFooter]=\"true\"\n [title]=\"'Edit user' | translate\"\n (onDismiss)=\"onDismiss()\"\n>\n <c8y-user-edit\n [lang]=\"lang\"\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n (onLanguage)=\"onLanguage($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n >\n </c8y-user-edit>\n</c8y-modal>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":21,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":22,"character":17},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":24,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":25,"character":20},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":29,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"onLanguage":[{"__symbolic":"method"}],"updateAndClose":[{"__symbolic":"method"}],"persistLanguage":[{"__symbolic":"method"}],"updateUserInAppState":[{"__symbolic":"method"}],"updateCredentials":[{"__symbolic":"method"}]}},"ɵbv":{"__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 style=\"cursor: pointer\" [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>"}]}],"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"}]}},"ɵbw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"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":15,"character":18},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":17,"character":19},{"__symbolic":"reference","name":"LoginService"}]}],"totpSetupVerified":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ɵbx":{"__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"}]}},"ɵby":{"__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}]}],"ngAfterContentChecked":[{"__symbolic":"method"}],"getTextForPlaceholder":[{"__symbolic":"method"}],"updatePlaceholder":[{"__symbolic":"method"}]}},"ɵbz":{"__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"}]}},"ɵca":{"__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\">{{title | translate}}</h3>\n</div>\n<div class=\"modal-body\">\n <p\n [hidden]=\"!title\"\n class=\"text-center text-wrap\"\n style=\"word-wrap:break-word;\"\n >{{body}}</p>\n <ng-content></ng-content>\n</div>\n<div class=\"modal-footer\" *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 >{{labels.cancel | translate}}</button>\n <button\n title=\"{{ labels.ok | translate }}\" \n *ngIf=\"labels.ok\"\n class=\"btn btn-primary\"\n (click)=\"_close()\"\n [disabled]=\"disabled\"\n >{{labels.ok | translate}}</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"]]}]}]}},"ɵcb":{"__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\n #twoFactorForm=\"ngForm\"\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"save()\"\n novalidate\n>\n <c8y-form-group>\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=\"”m-t-16”\">\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link pull-right\"\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}]}],"sendTFASms":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵcc":{"__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 *ngIf=\"search\">\n <div class=\"dropdown\" dropdown #dropdown=\"bs-dropdown\" *ngFor=\"let item of getByPriority()\">\n <button\n title=\"{{ 'Search' | translate }}\"\n type=\"button\"\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n (click)=\"openSearch()\"\n dropdownToggle\n >\n <i [c8yIcon]=\"item.icon\" class=\"fa-2x\"></i>\n </button>\n\n <div\n id=\"search-header-menu\"\n class=\"search-header-menu dropdown-menu dropdown-menu-center\"\n *dropdownMenu\n >\n <form\n (ngSubmit)=\"verifyNotEmpty(item.term); item.onSearch(); closeDropdown(dropdown)\"\n novalidate\n #searchForm=\"ngForm\"\n >\n <div class=\"input-group input-group-search\" *ngIf=\"!item.template\">\n <input\n type=\"search\"\n class=\"form-control input-lg\"\n required=\"required\"\n [placeholder]=\"'Search for groups or assets…'|translate\"\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"item.term\"\n name=\"searchTerm\"\n />\n\n <span class=\"input-group-btn\">\n <button type=\"submit\" class=\"btn btn-link\" (click)=\"$event.stopPropagation()\">\n <i [c8yIcon]=\"'arrow-right'\"></i>\n </button>\n </span>\n </div>\n\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </form>\n </div>\n </div>\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"}]}],"openSearch":[{"__symbolic":"method"}],"getByPriority":[{"__symbolic":"method"}],"closeDropdown":[{"__symbolic":"method"}],"verifyNotEmpty":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}],"focusInputBox":[{"__symbolic":"method"}]}},"ɵcd":{"__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"}]}},"ɵce":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcf"},{"__symbolic":"reference","name":"ɵcg"},{"__symbolic":"reference","name":"ɵch"}],"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":"ɵcf"},{"__symbolic":"reference","name":"ɵcg"},{"__symbolic":"reference","name":"ɵch"}]}]}],"members":{}},"ɵcf":{"__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":"ɵcg"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BreadcrumbService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵcg":{"__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}]}]}]}},"ɵch":{"__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=\"right-m-xs\"></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"}]}},"ɵci":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcj"},{"__symbolic":"reference","name":"ɵck"},{"__symbolic":"reference","name":"NavigatorItemComponent"},{"__symbolic":"reference","name":"NavigatorIconComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":24,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"}],"exports":[{"__symbolic":"reference","name":"ɵcj"},{"__symbolic":"reference","name":"NavigatorItemComponent"}],"entryComponents":[{"__symbolic":"reference","name":"NavigatorIconComponent"}]}]}],"members":{}},"ɵcj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-navigator-outlet, c8y-ui-navigator","template":"<nav class=\"navigator\" *ngIf=\"nodes && nodes.length > 0\" [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":9,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"}]}],"collapseNavigator":[{"__symbolic":"method"}],"trackByPathOrLabel":[{"__symbolic":"method"}]}},"ɵck":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"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=\"fa-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":13,"character":3},"arguments":["icon",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":13,"character":29},"static":false}]}]}],"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"isRoot":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"routerLinkActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/router","name":"RouterLinkActive","line":16,"character":13},{"static":false}]}]}],"childrenNodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":17,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵck"}]}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":18,"character":3}}]}],"confirm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":19,"character":3},"arguments":[{"__symbolic":"reference","name":"PopoverConfirmComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":26,"character":38},{"__symbolic":"reference","name":"NavigatorService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"openOnFirstUrl":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"expandCollapse":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"expandParentIfActive":[{"__symbolic":"method"}],"updateIcon":[{"__symbolic":"method"}],"updateIconComponent":[{"__symbolic":"method"}],"updateIconTemplate":[{"__symbolic":"method"}]}},"ɵcl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcm"},{"__symbolic":"reference","name":"ɵcn"},{"__symbolic":"reference","name":"ɵco"},{"__symbolic":"reference","name":"ɵcp"},{"__symbolic":"reference","name":"ɵcq"},{"__symbolic":"reference","name":"ɵcr"}],"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":"ɵbe"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"ɵcm"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ɵcl"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵcl"},"member":"providers"}}}},"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"reference","name":"LoginService"}]}}},"ɵcm":{"__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\">\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\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"}]}},"ɵcn":{"__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>Forgot password?</div>\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Reset password' | translate }}\"\n [disabled]=\"!resetForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n translate\n >\n Reset password\n </button>\n <div class=\"text-center top-m-sm\">\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 >Login</a\n >\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"}]}},"ɵco":{"__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]=\"model.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 || !model.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"}]}},"ɵcp":{"__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=\"{{ 'Tenant ID' | translate }}\"\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=\"{{ 'Username' | translate }}\"\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=\"{{ 'Password' | translate }}\"\n required\n />\n </c8y-form-group>\n <div class=\"form-group\" *ngIf=\"showBasicAuth\">\n <label class=\"c8y-checkbox\">\n <input\n title=\"{{ 'Remember me' | translate }}\"\n type=\"checkbox\"\n name=\"remember\"\n [(ngModel)]=\"loginService.rememberMe\"\n /><span></span>\n {{ 'Remember me' | translate }}\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 top-m-sm\">\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 top-m-sm\" *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"}]}},"ɵcq":{"__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>Two-factor authentication</div>\n\n<c8y-totp-setup *ngIf=\"isSetup\"></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=\"top-m-sm text-center\">\n <a\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n translate\n >Cancel</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"}]}},"ɵcr":{"__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":"ɵcr"},"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":"ɵcs"}]}],"validate":[{"__symbolic":"method"}]}},"ɵcs":{"__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":"PasswordService"}]}],"isStrong":[{"__symbolic":"method"}],"isPasswordGreen":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵct":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcu"},{"__symbolic":"reference","name":"ɵcv"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":14,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ɵcu"},{"__symbolic":"reference","name":"ɵcv"}]}]}],"members":{}},"ɵcu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"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":21,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"isNavigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":29,"character":3},"arguments":["class.page-tabs"]}]}],"isHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":3},"arguments":["class.page-tabs-horizontal"]}]}],"isVertical":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":35,"character":3},"arguments":["class.page-tabs-vertical"]}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":["container",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":38,"character":33},"static":true}]}]}],"leftBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":3},"arguments":["left",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":39,"character":28},"static":false}]}]}],"rightBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":3},"arguments":["right",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":40,"character":29},"static":false}]}]}],"tabsContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["tabsContainer",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":41,"character":37},"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":45,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":46,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":47,"character":16}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}],"scroll":[{"__symbolic":"method"}],"scrollSubscribe":[{"__symbolic":"method"}],"updateScroll":[{"__symbolic":"method"}],"getDimensions":[{"__symbolic":"method"}]}},"ɵcv":{"__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"}]}},"ɵcw":{"__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"}]}},"ɵcx":{"__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"}]}},"ɵcy":{"__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}]}]}]}},"ɵcz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":8,"character":3}}]}]}},"ɵda":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":7,"character":3},"arguments":["template",{"static":false}]}]}],"label":[{"__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":11,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}]}},"ɵdb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-list-item-collapse, c8y-li-collapse","template":"<ng-content></ng-content>\n"}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}]}},"ɵdc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":10,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}]}},"ɵdd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":8,"character":3}}]}]}},"ɵde":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-list-item-checkbox, c8y-li-checkbox","host":{"class":"c8y-list__item__check"},"template":"<label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"selected\"\n (change)=\"onSelect.emit($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":10,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵdf":{"__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"}]}]}]}},"ɵdg":{"__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"}]}},"ɵdh":{"__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"}]}},"ɵdi":{"__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":"ɵdj"}],"exports":[{"__symbolic":"reference","name":"ɵdj"}]}]}],"members":{}},"ɵdj":{"__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"}]}},"ɵdk":{"__symbolic":"interface"},"ɵdl":{"__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":"ɵdm"},{"__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":{"ngInjectableDef":{}}},"ɵdm":{"__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"}]}},"ɵdn":{"__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"}]}},"ɵdo":{"__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"}]}}},"origins":{"ActionBarItem":"./core/action-bar/action-bar.model","ActionBarFactory":"./core/action-bar/action-bar.model","HOOK_ACTION_BAR":"./core/action-bar/action-bar.service","ActionBarService":"./core/action-bar/action-bar.service","Action":"./core/action/action.model","ActionFactory":"./core/action/action.model","HOOK_ACTION":"./core/action/action.service","ActionService":"./core/action/action.service","Alert":"./core/alert/alert.model","AlertService":"./core/alert/alert.service","BootstrapComponent":"./core/bootstrap/bootstrap.component","BreadcrumbItem":"./core/breadcrumb/breadcrumb.model","Breadcrumb":"./core/breadcrumb/breadcrumb.model","BreadcrumbFactory":"./core/breadcrumb/breadcrumb.model","HOOK_BREADCRUMB":"./core/breadcrumb/breadcrumb.service","BreadcrumbService":"./core/breadcrumb/breadcrumb.service","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","ExtensionFactory":"./core/common/extension-hooks","ExtensionPoint":"./core/common/extension-hooks","getActivatedRoute":"./core/common/extension-hooks","HumanizeAppNamePipe":"./core/common/humanize-app-name.pipe","HumanizePipe":"./core/common/humanize.pipe","LoadMoreMode":"./core/common/load-more.model","memoize":"./core/common/memoize.decorator","HOOK_OPTIONS":"./core/common/options.service","OptionsService":"./core/common/options.service","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","Permissions":"./core/common/permissions.service","CoreModule":"./core/core.module","HeaderModule":"./core/header/header.module","HeaderService":"./core/header/header.service","TitleComponent":"./core/header/title/title.component","HeaderBarComponent":"./core/header/header-bar/header-bar.component","TranslateService":"./core/i18n/translate.service","_":"./core/i18n/gettext","gettext":"./core/i18n/gettext","HOOK_PATTERN_MESSAGES":"./core/i18n/patterns-message.hook","CachedLocaleDictionaryService":"./core/i18n/cached-locale-dictionary.service","LoginMessage":"./core/login/login.model","LoginViews":"./core/login/login.model","LoginService":"./core/login/login.service","ModalService":"./core/modal/modal.service","ModalModule":"./core/modal/modal.module","PopoverConfirmComponent":"./core/modal/popover-confirm.component","ConfirmModalComponent":"./core/modal/modal-confirm.component","ILabels":"./core/modal/modal-confirm.component","ClickOptions":"./core/navigator/navigator-node","NavigatorNode":"./core/navigator/navigator-node","NavigatorNodeRoot":"./core/navigator/navigator-node-root","HOOK_NAVIGATOR_NODES":"./core/navigator/navigator.service","NavigatorService":"./core/navigator/navigator.service","NavigatorItemComponent":"./core/navigator/navigator-entry.component","NavigatorIconComponent":"./core/navigator/navigator-icon.component","NavigatorNodeFactory":"./core/navigator/navigator-node-factory.interface","NewPassword":"./core/authentication/password.model","TotpChallengeComponent":"./core/authentication/totp-challenge.component","TotpSetupComponent":"./core/authentication/totp-setup.component","PasswordStrengthComponent":"./core/authentication/password-strength.component","PasswordStrengthCheckerService":"./core/authentication/password-strength-checker.service","PasswordConfirm":"./core/authentication/password-confirm.directive","PasswordConfirmModalComponent":"./core/authentication/password-confirm-modal.component","PasswordCheckListComponent":"./core/authentication/password-check-list.component","PasswordService":"./core/authentication/password.service","NewPasswordComponent":"./core/authentication/new-password.component","AuthenticationModule":"./core/authentication/authentication.module","SmsChallengeComponent":"./core/authentication/sms-challenge.component","SearchModule":"./core/search/search.module","Search":"./core/search/search.model","SearchFactory":"./core/search/search.model","HOOK_SEARCH":"./core/search/search.service","SearchService":"./core/search/search.service","HighlightComponent":"./core/search/highlight.component","SearchResultEmptyComponent":"./core/search/search-result-empty.component","Tab":"./core/tabs/tab.model","TabFactory":"./core/tabs/tab.model","HOOK_TABS":"./core/tabs/tabs.service","TabsService":"./core/tabs/tabs.service","DropAreaModule":"./core/drop-area/drop-area.module","DropAreaComponent":"./core/drop-area/drop-area.component","DroppedFile":"./core/drop-area/drop-area.component","FilePickerModule":"./core/file-picker/file-picker.module","FilePickerComponent":"./core/file-picker/file-picker.component","PickedFiles":"./core/file-picker/file-picker.model","AppStateService":"./core/common/ui-state.service","UserMenuService":"./core/user/user-menu.service","UserTotpRevokeComponent":"./core/user/user-totp-revoke.component","routes":"./core/router/router.module","RouterModule":"./core/router/router.module","ViewContext":"./core/router/router.models","Route":"./core/router/router.models","RouteFactory":"./core/router/router.models","HOOK_ONCE_ROUTE":"./core/router/router.service","RouterService":"./core/router/router.service","ContextRouteComponent":"./core/router/context-route.component","EmptyComponent":"./core/router/empty.component","DefaultValidationDirective":"./core/forms/default-validation.directive","FilterInputComponent":"./core/forms/filter-input.component","FormGroupConfig":"./core/forms/form-group-config.model","FormGroupComponent":"./core/forms/form-group.component","FormsModule":"./core/forms/forms.module","InputGroupListComponent":"./core/forms/input-group-list.component","JsonValidationPrettifierDirective":"./core/forms/json-validation-prettifier.directive","MaxValidationDirective":"./core/forms/max-validation.directive","MessageDirective":"./core/forms/message.directive","MessagesComponent":"./core/forms/messages.component","MinValidationDirective":"./core/forms/min-validation.directive","PhoneValidationDirective":"./core/forms/phone-validation.directive","TextAreaRowHeightDirective":"./core/forms/text-area-row-height.directive","ValidationRules":"./core/forms/validation-pattern","ValidationPattern":"./core/forms/validation-pattern","DeviceStatusModule":"./core/device-status/device-status.module","DeviceStatusComponent":"./core/device-status/device-status.component","deviceAvailabilityIconMap":"./core/device-status/device-availability","tooltips":"./core/device-status/device-availability","PushStatusLabels":"./core/device-status/device-availability","SendStatusLabels":"./core/device-status/device-availability","DocLink":"./core/docs/docs.models","DocLinkFactory":"./core/docs/docs.models","HOOK_DOCS":"./core/docs/docs.models","DocsModule":"./core/docs/docs.module","DocsService":"./core/docs/docs.service","GuideDocsComponent":"./core/docs/guide-docs.component","GuideHrefDirective":"./core/docs/guide-href.directive","DynamicComponentService":"./core/dynamic-component/dynamic-component.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","DashboardChildComponent":"./core/dashboard/dashboard-child.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","DashboardModule":"./core/dashboard/dashboard.module","DashboardChildChange":"./core/dashboard/dashboard-child-change","DashboardChildTitleComponent":"./core/dashboard/dashboard-child-title.component","DashboardChildActionComponent":"./core/dashboard/dashboard-child-action.component","WidgetsDashboardComponent":"./core/dashboard/widgets-dashboard.component","StepperModule":"./core/stepper/stepper.module","C8yStepper":"./core/stepper/stepper.component","C8yStepperButtons":"./core/stepper/stepper-buttons.component","ListGroupComponent":"./core/list-group/list-group.component","ListGroupModule":"./core/list-group/list-group.module","ListItemComponent":"./core/list-group/list-item.component","ListItemRadioComponent":"./core/list-group/list-item-radio.component","QuickLinkModule":"./core/quicklink/quick-link.module","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","DataGridModule":"./core/data-grid/data-grid.module","DataGrid":"./core/data-grid/data-grid.model","Column":"./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","DataGridComponent":"./core/data-grid/data-grid.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","SelectModalComponent":"./core/select-modal/select-modal.component","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","SelectModalModule":"./core/select-modal/select-modal.module","OperationBulkRealtimeService":"./core/realtime/operation-bulk-realtime.service","ManagedObjectRealtimeService":"./core/realtime/managed-object-realtime.service","RealtimeMessage":"./core/realtime/realtime.model","RealtimeAction":"./core/realtime/realtime.model","RealtimeService":"./core/realtime/realtime.service","DatePickerModule":"./core/date-picker/date-picker.module","DatePickerComponent":"./core/date-picker/date-picker.component","PickedDates":"./core/date-picker/date-picker.model","ɵa":"./core/common/ApplicationOptions","ɵb":"./core/i18n/i18n.module","ɵc":"./core/i18n/i18n.module","ɵd":"./core/i18n/i18n.module","ɵe":"./core/i18n/i18n.module","ɵf":"./core/i18n/i18n.module","ɵg":"./core/i18n/force-html-translate.directive","ɵh":"./core/i18n/pattern-messages.data","ɵi":"./core/i18n/locale.path","ɵj":"./core/i18n/languages","ɵk":"./core/i18n/translate.loader","ɵl":"./core/i18n/translate.parser","ɵm":"./core/i18n/missing-translation-custom.handler","ɵn":"./core/i18n/pattern-messages.service","ɵo":"./core/common/icon.directive","ɵp":"./core/common/icon.directive","ɵq":"./core/common/outlet.directive","ɵr":"./core/common/shorten-user-name.pipe","ɵs":"./core/common/forOf.directive","ɵt":"./core/common/load-more.component","ɵu":"./core/common/map-function.pipe","ɵv":"./core/common/progress-bar.component","ɵw":"./core/common/single-operation.component","ɵx":"./core/common/user-preferences/user-preferences.service","ɵy":"./core/action-bar/action-bar.module","ɵz":"./core/action-bar/action-bar.component","ɵba":"./core/action-bar/action-bar-item.component","ɵbb":"./core/action/action.module","ɵbc":"./core/action/action-outlet.component","ɵbd":"./core/action/action.component","ɵbe":"./core/alert/alert.module","ɵbf":"./core/alert/alert-outlet.component","ɵbg":"./core/alert/alert.component","ɵbh":"./core/alert/alert-details.component","ɵbi":"./core/alert/alert-text.component","ɵbj":"./core/audit-log/audit-log.module","ɵbk":"./core/audit-log/audit-log.component","ɵbl":"./core/bootstrap/bootstrap.module","ɵbm":"./core/bootstrap/cookie-banner/cookie-banner.component","ɵbn":"./core/header/title/title-outlet.component","ɵbo":"./core/header/application/app-icon.component","ɵbp":"./core/header/application/app-switcher.component","ɵbq":"./core/header/right-drawer/right-drawer.component","ɵbr":"./core/user/user.module","ɵbs":"./core/user/user-menu-outlet.component","ɵbt":"./core/user/user-edit.component","ɵbu":"./core/user/user-edit-modal.component","ɵbv":"./core/user/user-menu-item.component","ɵbw":"./core/user/user-totp-setup.component","ɵbx":"./core/forms/input-group-list-container.directive","ɵby":"./core/forms/required-input-placeholder.directive","ɵbz":"./core/forms/ip-range-input-list.component","ɵca":"./core/modal/modal.component","ɵcb":"./core/authentication/provide-phone-number.component","ɵcc":"./core/search/search-outlet.component","ɵcd":"./core/search/search.component","ɵce":"./core/breadcrumb/breadcrumb.module","ɵcf":"./core/breadcrumb/breadcrumb.component","ɵcg":"./core/breadcrumb/breadcrumb-item.component","ɵch":"./core/breadcrumb/breadcrumb-outlet.component","ɵci":"./core/navigator/navigator.module","ɵcj":"./core/navigator/navigator-outlet.component","ɵck":"./core/navigator/navigator-node.component","ɵcl":"./core/login/login.module","ɵcm":"./core/login/login.component","ɵcn":"./core/login/recover-password.component","ɵco":"./core/login/change-password.component","ɵcp":"./core/login/credentials.component","ɵcq":"./core/login/totp-auth.component","ɵcr":"./core/login/password-strength-validator.directive","ɵcs":"./core/login/strength-validator-service","ɵct":"./core/tabs/tabs.module","ɵcu":"./core/tabs/tabs-outlet.component","ɵcv":"./core/tabs/tab.component","ɵcw":"./core/data-grid/column/cell-renderer.component","ɵcx":"./core/data-grid/column/filtering-form-renderer.component","ɵcy":"./core/data-grid/column/column.directive","ɵcz":"./core/list-group/list-item-footer.component","ɵda":"./core/list-group/list-item-action.component","ɵdb":"./core/list-group/list-item-collapse.component","ɵdc":"./core/list-group/list-item-icon.component","ɵdd":"./core/list-group/list-item-body.component","ɵde":"./core/list-group/list-item-checkbox.component","ɵdf":"./core/stepper/stepper-icon.directive","ɵdg":"./core/stepper/stepper-progress.component","ɵdh":"./core/select-modal/select-modal-filter.pipe","ɵdi":"./core/realtime/realtime.module","ɵdj":"./core/realtime/realtime-button.component","ɵdk":"./core/navigator/navigator-node-data","ɵdl":"./core/router/context-route.service","ɵdm":"./core/router/router-tabs.resolver","ɵdn":"./core/router/context-route.guard","ɵdo":"./core/quicklink/quick-link.component"},"importAs":"@c8y/ngx-components"}
|
|
1
|
+
{"__symbolic":"module","version":4,"metadata":{"ActionBarItem":{"__symbolic":"interface"},"ActionBarFactory":{"__symbolic":"interface"},"HOOK_ACTION_BAR":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":16,"character":35},"arguments":["ActionBarFactory"]},"ActionBarService":{"__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":{"ngInjectableDef":{}}},"Action":{"__symbolic":"interface"},"ActionFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"Alert":{"__symbolic":"interface"},"AlertService":{"__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":{"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":{"ngInjectableDef":{}}},"BootstrapComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"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]=\"header.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 style=\"cursor:default\" 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"}]}]}},"BreadcrumbItem":{"__symbolic":"interface"},"Breadcrumb":{"__symbolic":"interface"},"BreadcrumbFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"initializeServices":{"__symbolic":"function"},"ICON_LIST":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":56,"character":29},"arguments":["iconList"]},"CommonModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":74,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":75,"character":12},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":75,"character":40}],"exports":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":80,"character":4},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"DatePipe"}],"declarations":[{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"HumanizePipe"},{"__symbolic":"reference","name":"HumanizeAppNamePipe"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"DatePipe"}],"entryComponents":[{"__symbolic":"reference","name":"ɵt"}]}]}],"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":109,"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":113,"character":17},"useFactory":{"__symbolic":"reference","name":"initializeServices"},"deps":[{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"ɵx"}],"multi":true},{"provide":{"__symbolic":"reference","name":"ICON_LIST"},"useValue":{"__symbolic":"reference","name":"ɵp"},"multi":false},{"__symbolic":"spread","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵf"},"member":"providers"}}},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","name":"Permissions"}]},"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":25,"character":30},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":24,"character":1},"arguments":[{"name":"c8yDate"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":15},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":26,"character":22}]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":26,"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"]}},"ExtensionFactory":{"__symbolic":"interface"},"ExtensionPoint":{"__symbolic":"interface"},"getActivatedRoute":{"__symbolic":"function"},"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"}]}},"LoadMoreMode":{"__symbolic":"interface"},"memoize":{"__symbolic":"function","parameters":["resolver"],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":9,"module":"./core/common/memoize.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":"ɵa"},"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"}]}},"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"},"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"}]}},"CoreModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":31,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵbe"},{"__symbolic":"reference","name":"ɵbj"},{"__symbolic":"reference","name":"ɵbl"},{"__symbolic":"reference","name":"ɵce"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"DataGridModule"},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"ɵcl"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","name":"ɵci"},{"__symbolic":"reference","name":"AuthenticationModule"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"SelectModule"},{"__symbolic":"reference","name":"ɵct"},{"__symbolic":"reference","name":"ɵbr"},{"__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":"ɵdi"},{"__symbolic":"reference","name":"DatePickerModule"}]}]}],"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":"ɵcl"},"member":"providers"}}}]}}}},"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":"ɵbn"},{"__symbolic":"reference","name":"ɵbo"},{"__symbolic":"reference","name":"ɵbp"},{"__symbolic":"reference","name":"ɵbq"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":34,"character":4},{"__symbolic":"reference","name":"ɵbr"},{"__symbolic":"reference","name":"SearchModule"},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ɵbb"},{"__symbolic":"reference","name":"ɵce"},{"__symbolic":"reference","name":"ɵci"}],"exports":[{"__symbolic":"reference","name":"HeaderBarComponent"},{"__symbolic":"reference","name":"TitleComponent"},{"__symbolic":"reference","name":"ɵbn"},{"__symbolic":"reference","name":"ɵbo"},{"__symbolic":"reference","name":"ɵbp"},{"__symbolic":"reference","name":"ɵbq"}]}]}],"members":{}},"HeaderService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"NavigatorService"},{"__symbolic":"reference","name":"OptionsService"}]}],"toggleNavigator":[{"__symbolic":"method"}],"closeNavigator":[{"__symbolic":"method"}],"configNavigator":[{"__symbolic":"method"}],"changeTitle":[{"__symbolic":"method"}],"changePageTitle":[{"__symbolic":"method"}],"verifyIfNavOpen":[{"__symbolic":"method"}],"shouldShowBreadcrumbs":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"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":{"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":8,"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]=\"'angle-double-right'\"></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]=\"'angle-double-left'\"></i>\n </button>\n </div>\n <div class=\"head-toggler\">\n <button title=\"{{ 'Toggle' | translate }}\" type=\"button\" (click)=\"toggle()\">\n <i [c8yIcon]=\"'angle-double-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"}],"toggle":[{"__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"}],"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"}]}},"ngInjectableDef":{}}},"_":{"__symbolic":"error","message":"Lambda not supported","line":2,"character":17,"module":"./core/i18n/gettext"},"gettext":{"__symbolic":"function","parameters":["str"],"value":{"__symbolic":"reference","name":"str"}},"HOOK_PATTERN_MESSAGES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":41},"arguments":["Pattern Messages"]},"CachedLocaleDictionaryService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{},"statics":{"ngInjectableDef":{}}},"LoginMessage":{"__symbolic":"interface"},"LoginViews":{"None":0,"Credentials":1,"RecoverPassword":2,"SmsChallenge":3,"ChangePassword":4,"TotpChallenge":5,"TotpSetup":6,"ProvidePhoneNumber":7},"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,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":99,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":89,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":90,"character":23},{"__symbolic":"reference","module":"@c8y/client","name":"CookieAuth","line":91,"character":24},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":93,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":94,"character":20},{"__symbolic":"reference","module":"@c8y/client","name":"Realtime","line":95,"character":22},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":97,"character":17},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":98,"character":39},{"__symbolic":"reference","module":"@angular/common","name":"LocationStrategy","line":99,"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"}],"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"}],"getLoginOption":[{"__symbolic":"method"}],"getSupportUserName":[{"__symbolic":"method"}],"getStoredCredentials":[{"__symbolic":"method"}],"getStoredToken":[{"__symbolic":"method"}],"getStoredTfaToken":[{"__symbolic":"method"}],"decodeToken":[{"__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":{"ngInjectableDef":{}}},"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":"ɵca"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"declarations":[{"__symbolic":"reference","name":"ConfirmModalComponent"},{"__symbolic":"reference","name":"ɵca"},{"__symbolic":"reference","name":"PopoverConfirmComponent"}],"providers":[{"__symbolic":"reference","name":"ModalService"}],"entryComponents":[{"__symbolic":"reference","name":"ConfirmModalComponent"}]}]}],"members":{}},"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=\"bottom-m\">\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 right-m-md\"\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"}]}},"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=\"bottom-m-md\" *ngIf=\"title\">\n <i class=\"fa fw\" [ngClass]=\"[classIcon]\"></i>\n <span *ngIf=\"title\">{{ title | translate }}</span>\n </h3>\n <p class=\"text-wrap\" style=\"word-wrap:break-word;\">{{ body | translate }}</p>\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":40,"character":29}]}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ILabels":{"__symbolic":"interface"},"ClickOptions":{"__symbolic":"interface"},"NavigatorNode":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵdk"}]}],"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"}]}},"NavigatorNodeRoot":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"NavigatorNode"},"members":{"addRoot":[{"__symbolic":"method"}],"createNode":[{"__symbolic":"method"}]}},"HOOK_NAVIGATOR_NODES":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":13,"character":40},"arguments":["NavigatorNodesFactory"]},"NavigatorService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":18,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":28,"character":22},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":29,"character":20}]}],"openOnFirstUrl":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"add":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"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"}]}},"NavigatorIconComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"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":8,"character":3}}]}]}},"NavigatorNodeFactory":{"__symbolic":"interface"},"NewPassword":{"__symbolic":"interface"},"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\n #totpForm=\"ngForm\"\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"verifyCode()\"\n novalidate\n>\n\n <c8y-form-group\n [hasError]=\"hasError\"\n [novalidation]=\"true\"\n >\n <label\n translate\n for=\"totpToken\"\n >Verification code</label>\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=\"{{'Verification code' | translate}}\"\n required\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\n <button\n title=\"{{ 'Verify' | translate }}\" \n [disabled]=\"!totpForm.form.valid || loading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n translate\n >Verify</button>\n\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"}]}},"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 bottom-m-md\"\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]=\"'bottom-m-md'\"\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"}]}},"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\">\r\n <span class=\"password-strength-label\" translate>Password strength</span>\r\n <span class=\"pull-right ng-binding\" [ngStyle]=\"{'color': model.color}\">{{model.description | translate}}</span>\r\n <div>\r\n <div class=\"password-{{model.colorName}}\" [ngStyle]=\"{'background-color': model.color}\"></div>\r\n </div>\r\n</div>"}]}],"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"}]}]}},"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"}]}},"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"}]}},"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 password' | translate\" #modal>\r\n <form #confirmForm=\"ngForm\" (ngSubmit)=\"confirmForm.form.valid && passwordConfirm()\">\r\n <c8y-form-group>\r\n <label translate for=\"currentPassword\">Current 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=\"{{ 'Current password' | translate }}\"\r\n required\r\n />\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"}]}},"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 4 out of 5 the conditions below' | translate}}:</span>\n <ul class=\"list-unstyled\">\n <li class=\"small\" *ngFor=\"let requirement of checklist\">\n <i style=\"color:lightgreen;\" [c8yIcon]=\"requirement.icon\"></i> \n <span\n [translate]=\"requirement.label\"\n [translateParams]=\"this.translateParams\"\n class=\"small {{requirement.contextualColor}}\"\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"}]}],"ngOnInit":[{"__symbolic":"method"}],"onPasswordChange":[{"__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":31,"character":36}]}],"confirmPassword":[{"__symbolic":"method"}],"hasLowerCase":[{"__symbolic":"method"}],"hasUpperCase":[{"__symbolic":"method"}],"hasNumbers":[{"__symbolic":"method"}],"hasSpecialChars":[{"__symbolic":"method"}],"getStrengthColor":[{"__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\">\n <c8y-form-group>\n <label for=\"newPassword\" translate>Password</label>\n <input\n id=\"newPassword\"\n [(ngModel)]=\"model.newPassword\"\n #newPassword=\"ngModel\"\n (change)=\"newPasswordChanged()\"\n type=\"password\"\n name=\"newPassword\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my_new_password' | translate }}\"\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 [(ngModel)]=\"model.newPasswordConfirm\"\n #newPasswordConfirm=\"ngModel\"\n type=\"password\"\n name=\"newPasswordConfirm\"\n class=\"form-control\"\n placeholder=\"{{ 'e.g. my_new_password' | translate }}\"\n required\n passwordConfirm=\"newPassword\"\n autocomplete=\"new-password\"\n />\n </c8y-form-group>\n\n <c8y-password-strength\n [password]=\"model.newPassword\"\n [hidden]=\"!showPasswordStrength()\"\n (strength)=\"model.strength = $event\"\n ></c8y-password-strength>\n\n <c8y-password-check-list\n [password]=\"model.newPassword\"\n [hidden]=\"!passwordEnforced\"\n ></c8y-password-check-list>\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"}]}},"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":"ɵcb"}],"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":40,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"},{"__symbolic":"reference","module":"angularx-qrcode","name":"QRCodeModule","line":43,"character":4}],"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":"ɵcb"}],"entryComponents":[{"__symbolic":"reference","name":"PasswordConfirmModalComponent"}],"providers":[{"__symbolic":"reference","name":"PasswordStrengthCheckerService"},{"__symbolic":"reference","name":"PasswordService"}]}]}],"members":{}},"SmsChallengeComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"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>Insert the code received via SMS</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=\"{{ 'Verification code' | translate }}\"\n required\n />\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=\"top-m-sm\">\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link btn-sm pull-right\"\n (click)=\"onCancel.emit()\"\n translate\n >Login</a\n >\n <a\n title=\"{{ 'Send new code' | translate }}\"\n [ngClass]=\"{ disabled: isLoading }\"\n class=\"btn btn-link btn-sm\"\n (click)=\"resendTFASms()\"\n translate\n >Send new code</a\n >\n </div>\n</form>\n"}]}],"members":{"credentials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":16,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"LoginService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":27,"character":19},{"__symbolic":"reference","name":"AlertService"}]}],"verifyTFACode":[{"__symbolic":"method"}],"resendTFASms":[{"__symbolic":"method"}],"useOAuthInternal":[{"__symbolic":"method"}],"verifyCodeWithOauth":[{"__symbolic":"method"}],"verifyCodeWithBasicAuth":[{"__symbolic":"method"}],"loginWithTFA":[{"__symbolic":"method"}]}},"SearchModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":17,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcc"},{"__symbolic":"reference","name":"ɵcd"},{"__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":"ɵcc"},{"__symbolic":"reference","name":"ɵcd"},{"__symbolic":"reference","name":"HighlightComponent"},{"__symbolic":"reference","name":"SearchResultEmptyComponent"}]}]}],"members":{}},"Search":{"__symbolic":"interface"},"SearchFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"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"}]}},"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"]}]}]}},"Tab":{"__symbolic":"interface"},"TabFactory":{"__symbolic":"interface"},"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":{"ngInjectableDef":{}}},"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":{}},"DropAreaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":12,"character":1},"arguments":[{"selector":"c8y-drop-area","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=\"hint-placeholder\" style=\"width: 300px;\">\n <p>\n {{ loadingMessage | translate }}\n </p>\n <div class=\"progress progress-striped active\" *ngIf=\"progress !== -1\">\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\" *ngIf=\"progress === -1\" style=\"position: 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 <div *ngIf=\"!loading\" class=\"hint-placeholder pointer\">\n <i class=\"fa fw fa-{{ 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 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 multiple\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":17,"character":3}}]}],"message":[{"__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}}]}],"loadingMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"alwaysShow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"clickToOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"progress":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"dropped":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":26,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"files":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"area":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":34,"character":3},"arguments":["area",{"static":true}]}]}],"zone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":35,"character":3},"arguments":["zone",{"static":false}]}]}],"picker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":36,"character":3},"arguments":["picker",{"static":false}]}]}],"ngOnInit":[{"__symbolic":"method"}],"toggle":[{"__symbolic":"method"}],"showPicker":[{"__symbolic":"method"}],"onOver":[{"__symbolic":"method"}],"onPick":[{"__symbolic":"method"}],"onDrop":[{"__symbolic":"method"}],"onFilesSelected":[{"__symbolic":"method"}],"getFilesNamesAsString":[{"__symbolic":"method"}],"isFilesArrayEmpty":[{"__symbolic":"method"}],"isTooManyFiles":[{"__symbolic":"method"}],"hasEmptyFiles":[{"__symbolic":"method"}],"isAnyFileEmpty":[{"__symbolic":"method"}],"shouldShowFilesList":[{"__symbolic":"method"}],"stopDragging":[{"__symbolic":"method"}],"onDelete":[{"__symbolic":"method"}],"clearErrors":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"compose":[{"__symbolic":"method"}],"read":[{"__symbolic":"method"}],"onLoad":[{"__symbolic":"method"}]}},"DroppedFile":{"__symbolic":"interface"},"FilePickerModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"FormsModule"},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":15,"character":4},{"__symbolic":"reference","name":"DropAreaModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":17,"character":4},{"__symbolic":"reference","name":"CommonModule"}],"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":4,"character":1},"arguments":[{"selector":"c8y-file-picker","template":"<div class=\"form-group\">\n <label 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> <span>{{ 'Upload a binary' | translate }}</span>\n </label>\n <label class=\"c8y-radio radio-inline\">\n <input\n #radio\n type=\"radio\"\n value=\"uploadUrl\"\n name=\"uploadChoice\"\n [(ngModel)]=\"uploadChoice\"\n (click)=\"clearSelectedFiles()\"\n />\n <span></span> <span>{{ 'Use a URL' | translate }}</span>\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":9,"character":3},"arguments":[{"__symbolic":"reference","name":"DropAreaComponent"},{"static":true}]}]}],"onFilesPicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"maxAllowedFiles":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}}]}],"uploadChoice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"fileUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"fileBinary":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}],"onFileDropped":[{"__symbolic":"method"}],"clearInputFromUrl":[{"__symbolic":"method"}],"clearSelectedFiles":[{"__symbolic":"method"}],"onFileUrlChange":[{"__symbolic":"method"}]}},"PickedFiles":{"__symbolic":"interface"},"AppStateService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StateService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"ApplicationService","line":39,"character":32},{"__symbolic":"reference","module":"@c8y/ngx-components/api","name":"ApiService","line":40,"character":23},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":42,"character":25}]}],"assignApplicationKeyToDefaultHeaders":[{"__symbolic":"method"}],"getLangs":[{"__symbolic":"method"}],"loadManifest":[{"__symbolic":"method"}],"isApplicationAvailable":[{"__symbolic":"method"}],"setUser":[{"__symbolic":"method"}],"getCurrentContextPath":[{"__symbolic":"method"}],"loadDefaultOptions":[{"__symbolic":"method"}],"showIncompatibleVersionsError":[{"__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":{"ngInjectableDef":{}}},"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"}]}},"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":"ɵdn"},{"__symbolic":"reference","name":"ɵdm"},{"__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"}}}}}},"ViewContext":{"Device":"device/:id","Group":"group/:id","User":"users/:id","Application":"applications/:id","SubscribedApplications":"subscribedApplications/:id","Tenant":"tenants/:id"},"Route":{"__symbolic":"interface"},"RouteFactory":{"__symbolic":"interface"},"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":"ɵdl"}]}],"refresh":[{"__symbolic":"method"}],"addRoute":[{"__symbolic":"method"}],"addRoutes":[{"__symbolic":"method"}],"convertRoute":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"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":"ɵdl"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refreshTabs":[{"__symbolic":"method"}]}},"EmptyComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"empty","template":""}]}],"members":{}},"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"}]}},"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"}]}},"FormGroupConfig":{"__symbolic":"interface"},"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"}]}},"FormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":27,"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":33,"character":4},{"__symbolic":"reference","name":"FormGroupComponent"},{"__symbolic":"reference","name":"MessageDirective"},{"__symbolic":"reference","name":"MessagesComponent"},{"__symbolic":"reference","name":"InputGroupListComponent"},{"__symbolic":"reference","name":"ɵbx"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"ɵby"},{"__symbolic":"reference","name":"ɵbz"},{"__symbolic":"reference","name":"FilterInputComponent"}],"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":"ɵbx"},{"__symbolic":"reference","name":"JsonValidationPrettifierDirective"},{"__symbolic":"reference","name":"TextAreaRowHeightDirective"},{"__symbolic":"reference","name":"ɵby"},{"__symbolic":"reference","name":"ɵbz"},{"__symbolic":"reference","name":"FilterInputComponent"}]}]}],"members":{}},"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 class=\"fa fa-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"}]}},"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"}]}},"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"}]}},"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}}]}]}},"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 style=\"display: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"}]}},"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"}]}},"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"}]}},"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"}]}},"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, hyphens and underscores allowed in the first part of the URI. Must start with a letter; hyphens and underscores 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."]},"internationalPhoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":19,"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":22,"character":16},"arguments":["Login alias must not contain slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]},"max":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":25,"character":10},"arguments":["Max value: {{ value }}"]},"min":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":26,"character":10},"arguments":["Min value: {{ value }}"]},"opcuaBrowsePath":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":27,"character":21},"arguments":["Invalid OPC UA URI."]},"password":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":28,"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":31,"character":21},"arguments":["Passwords do not match."]},"passwordStrength":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":32,"character":22},"arguments":["Password not good enough, password must be stronger (green)."]},"phoneNumber":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":33,"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":36,"character":14},"arguments":["This field is required."]},"tenantId":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":37,"character":14},"arguments":["May contain lowercase letters, digits, hyphens and underscores. Must start with a letter; hyphens and underscores only allowed in the middle; minimum 2 characters."]},"urlSegment":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"../i18n/gettext","name":"gettext","line":41,"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":42,"character":10},"arguments":["Username must not contain spaces nor slashes (\"/\", \"\\\") nor (\"+\"), (\":\"), (\"$\") signs."]}},"rules":{"__symbolic":"error","message":"Expression form not supported","line":49,"character":15}}},"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"}]}},"deviceAvailabilityIconMap":{"sendData":{"AVAILABLE":{"icon":"long-arrow-right","class":"statusOk"},"UNAVAILABLE":{"icon":"long-arrow-right","class":"statusNok"},"UNKNOWN":{"icon":"long-arrow-right","class":"statusUnknown"},"NOT_MONITORED":{"icon":"long-arrow-right","class":"statusUnknown"}},"push":{"CONNECTED":{"icon":"long-arrow-left","class":"statusOk"},"DISCONNECTED":{"icon":"long-arrow-left","class":"statusUnknown"},"UNKNOWN":{"icon":"long-arrow-left","class":"statusUnknown"},"MAINTENANCE":{"icon":"wrench","class":"statusAlert"}},"device":{"MAINTENANCE":{"icon":"wrench","class":"statusAlert"}}},"tooltips":{"__symbolic":"error","message":"Lambda not supported","line":50,"character":30,"module":"./core/device-status/device-availability"},"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"]}},"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"]}},"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"]},"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":{}},"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":{"ngInjectableDef":{}}},"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":"ɵg"},{"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}]}]}},"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":{"ngInjectableDef":{}}},"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":"ɵf"}],"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 top-m-sm\">\n <button class=\"btn btn-clean\" (click)=\"expandErrorDetails = !expandErrorDetails\">\n <i class=\"fa fa-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"}]}},"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\">\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: -41px;top: 3px;\"\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":21}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"setDynamicDimension":[{"__symbolic":"method"}],"resizeStarted":[{"__symbolic":"method"}],"dragStarted":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"getOrder":[{"__symbolic":"method"}],"childInView":[{"__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"},"DashboardModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"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":"ɵy"},{"__symbolic":"reference","name":"DynamicComponentModule"},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":26,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":27,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"DocsModule"}],"exports":[{"__symbolic":"reference","name":"DashboardComponent"},{"__symbolic":"reference","name":"DashboardChildComponent"},{"__symbolic":"reference","name":"DashboardChildTitleComponent"},{"__symbolic":"reference","name":"DashboardChildActionComponent"},{"__symbolic":"reference","name":"WidgetsDashboardComponent"}]}]}],"members":{}},"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":{}},"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}]}]}]}},"WidgetsDashboardComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i> {{ '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 class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i> {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button class=\"btn btn-link\" (click)=\"toggleFullscreen()\">\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i> {{ '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 (click)=\"onDeleteDashboard.emit()\" [disabled]=\"settings.isFrozen || settings.isDisabled\">\n <i c8yIcon=\"trash\"></i> <span 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 [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 forceHtmlTranslate ngNonBindable\n >Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>.</small\n >\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\" style=\"position: 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\"> {{ widget.title | translate }}</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 (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\">\n <i c8yIcon=\"pencil\"></i> <span translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"trash\"></i> <span 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":15,"character":3}}]}],"context":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"contextDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"_settings":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3},"arguments":["settings"]}]}],"onAddWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":40,"character":3}}]}],"onEditWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"onDeleteWidget":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":46,"character":3}}]}],"onChangeDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":3}}]}],"onEditDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":52,"character":3}}]}],"onDeleteDashboard":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":55,"character":3}}]}],"onFreeze":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":3}}]}],"onChangeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":61,"character":3}}]}],"onChangeEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":3}}]}],"toggleFullscreen":[{"__symbolic":"method"}],"fullScreen":[{"__symbolic":"method"}]}},"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":"ɵdf"},{"__symbolic":"reference","name":"ɵdg"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"exports":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":19,"character":24},{"__symbolic":"reference","name":"ɵdf"},{"__symbolic":"reference","name":"C8yStepperButtons"}],"providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"STEPPER_GLOBAL_OPTIONS","line":27,"character":15},"useValue":{"displayDefaultIndicatorType":false}}]}]}],"members":{}},"C8yStepper":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":94,"character":32},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":89,"character":1},"arguments":[{"selector":"c8y-stepper","providers":[{"provide":{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStepper","line":92,"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":99,"character":3}}]}],"customClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":104,"character":3}}]}],"onStepChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":109,"character":3}}]}],"_icons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":137,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵdf"},{"descendants":true}]}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getIndicatorType":[{"__symbolic":"method"}],"setIndex":[{"__symbolic":"method"}]}},"C8yStepperButtons":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":65,"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\">{{ labels?.cancel | translate }}</span>\n <ng-template #cancelLabel>\n <span>{{ '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\">{{ labels?.back | translate }}</span>\n <ng-template #backLabel>\n <span>{{ '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\">{{ labels?.custom | translate }}</span>\n <ng-template #customLabel>\n <span>{{ '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\">{{ labels?.next | translate }}</span>\n <ng-template #nextLabel>\n <span>{{ '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":74,"character":3}}]}],"pending":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":85,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":90,"character":3}}]}],"onNext":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":94,"character":3}}]}],"onBack":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":99,"character":3}}]}],"onCustom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":104,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":120,"character":15}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Host","line":120,"character":52}}]],"parameters":[{"__symbolic":"reference","name":"C8yStepper"},{"__symbolic":"reference","module":"@angular/cdk/stepper","name":"CdkStep","line":120,"character":73}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"next":[{"__symbolic":"method"}],"back":[{"__symbolic":"method"}],"custom":[{"__symbolic":"method"}]}},"ListGroupComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-list-group","host":{"class":"c8y-list__group"},"template":"<ng-content></ng-content>\n\n"}]}],"members":{}},"ListGroupModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":17,"character":4},"member":"forRoot"}},{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":18,"character":4}],"declarations":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ɵdc"},{"__symbolic":"reference","name":"ɵdd"},{"__symbolic":"reference","name":"ɵcz"},{"__symbolic":"reference","name":"ɵda"},{"__symbolic":"reference","name":"ɵdb"},{"__symbolic":"reference","name":"ɵde"},{"__symbolic":"reference","name":"ListItemRadioComponent"}],"exports":[{"__symbolic":"reference","name":"ListGroupComponent"},{"__symbolic":"reference","name":"ListItemComponent"},{"__symbolic":"reference","name":"ɵdc"},{"__symbolic":"reference","name":"ɵdd"},{"__symbolic":"reference","name":"ɵcz"},{"__symbolic":"reference","name":"ɵda"},{"__symbolic":"reference","name":"ɵdb"},{"__symbolic":"reference","name":"ɵde"},{"__symbolic":"reference","name":"ListItemRadioComponent"}]}]}],"members":{}},"ListItemComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"c8y-list-item, c8y-li","host":{"class":"c8y-list__item"},"template":"<div [ngClass]=\"{ 'expanded': !collapsed }\">\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\">\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 || showActions\">\n <button\n class=\"collapse-btn\"\n title=\"{{ 'Expand' | translate }}\"\n type=\"button\"\n (click)=\"toggleCollapsed()\"\n [attr.aria-expanded]=\"!collapsed\"\n *ngIf=\"showCollapse\"\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":25,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["class.active"]}]}],"collapsed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"collapsedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":30,"character":3}}]}],"itemFooter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":32,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵcz"},{"static":false}]}]}],"itemActions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":34,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵda"}]}]}],"itemCollapse":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":36,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵdb"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":49,"character":30}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"showDropdownUp":[{"__symbolic":"method"}],"toggleCollapsed":[{"__symbolic":"method"}],"pulse":[{"__symbolic":"method"}]}},"ListItemRadioComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-list-item-radio, c8y-li-radio","host":{"class":"c8y-list__item__radio"},"template":"<label class=\"c8y-radio\">\n <input\n #radio\n type=\"radio\"\n [name]=\"name\"\n [checked]=\"selected\"\n (change)=\"onSelect.emit($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":18,"character":3},"arguments":["radio",{"static":true}]}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":25,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"QuickLinkModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵdo"}],"imports":[{"__symbolic":"reference","name":"CoreModule"}],"exports":[{"__symbolic":"reference","name":"ɵdo"}],"providers":[]}]}],"members":{}},"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 #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\"\n style=\"position: absolute; right: 40px; top: 10px; z-index: 10;\"\n translate\n *ngIf=\"\n selected\n ? selected.id === null && getDisplayProperty()?.length > 0 && allowFreeEntries\n : false\n \"\n >New</span\n >\n\n <span class=\"input-group-btn\">\n <button type=\"button\" class=\"btn btn-clean\" [disabled]=\"disabled\">\n <i class=\"dropdown-caret\"></i>\n </button>\n </span>\n </div>\n\n <c8y-list-group class=\"dropdown-menu\" *dropdownMenu>\n <ng-content select=\"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}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":56,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"selectedChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":64,"character":3}}]}],"onSearch":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":67,"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"}]}},"Item":{"__symbolic":"interface"},"selectedFunction":{"__symbolic":"interface"},"selectedLabelFunction":{"__symbolic":"interface"},"SelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":22,"character":1},"arguments":[{"selector":"c8y-select","template":"<div\n class=\"c8y-child-assets-selector dropdown fit-h\"\n (isOpenChange)=\"isOpenChange($event)\"\n dropdown\n #dropdown\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\">{{ placeholder | translate }}</span>\n </button>\n\n <ul class=\"dropdown-menu multiselect-container\" *dropdownMenu>\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 class=\"fa fa-search\" *ngIf=\"!textFilter\"></i>\n <i class=\"fa fa-times 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 style=\"margin-top:0;\"\n /><span></span> <span span class=\"label-text \">{{ getSelectAllToggleStatus().label }}</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 class=\"c8y-checkbox input-sm text-truncate\">\n <input\n type=\"checkbox\"\n [checked]=\"isSelected(item)\"\n (change)=\"onChangeItem($event.target.checked, item)\"\n style=\"margin-top:0\"\n />\n <span></span>\n <span class=\"label-text \" title=\"{{ item.name | translate }}\">{{\n item.name | translate\n }}</span>\n </label>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li>\n <button\n title=\"{{ applyLabel | translate }}\"\n class=\"btn btn-primary btn-block\"\n (click)=\"applyChanges()\"\n >\n {{ applyLabel | translate }}\n </button>\n </li>\n </ul>\n</div>\n"}]}],"members":{"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"selectedLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"applyLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"selected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"onChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":32,"character":3}}]}],"dropdown":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":33,"character":3},"arguments":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownDirective","line":33,"character":13},{"static":false}]}]}],"preventClick":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":48,"character":3},"arguments":["click",["$event"]]}]}],"isOpenChange":[{"__symbolic":"method"}],"outterSelected":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}],"isAllItemsSelected":[{"__symbolic":"method"}],"isAllFilteredSelected":[{"__symbolic":"method"}],"applyChanges":[{"__symbolic":"method"}],"selectAll":[{"__symbolic":"method"}],"onChangeItem":[{"__symbolic":"method"}],"updateFiltered":[{"__symbolic":"method"}],"getSelectAllToggleStatus":[{"__symbolic":"method"}],"ngOnChanges":[{"__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":{}},"DataGridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":18,"character":4},{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkTableModule","line":19,"character":4},{"__symbolic":"reference","module":"@angular/cdk/drag-drop","name":"DragDropModule","line":20,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":21,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":22,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":24,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/popover","name":"PopoverModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/pagination","name":"PaginationModule","line":26,"character":4},"member":"forRoot"}}],"declarations":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"ɵcw"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"ɵcx"},{"__symbolic":"reference","name":"ɵcy"},{"__symbolic":"reference","name":"DataGridComponent"}],"exports":[{"__symbolic":"reference","name":"CellRendererDefDirective"},{"__symbolic":"reference","name":"HeaderCellRendererDefDirective"},{"__symbolic":"reference","name":"FilteringFormRendererDefDirective"},{"__symbolic":"reference","name":"ɵcy"},{"__symbolic":"reference","name":"DataGridComponent"}],"entryComponents":[{"__symbolic":"reference","name":"DataGridComponent"}]}]}],"members":{}},"DataGrid":{"__symbolic":"interface"},"Column":{"__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"},"DataGridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":57,"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\">\n <h4 class=\"m-r-16\">{{ title | translate }}</h4>\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 class=\"m-l-8 btn btn-xs btn-default m-r-4\" (click)=\"clearFilters()\" translate>\n Clear filters\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>\n </span>\n\n <div class=\"flex-item-right\">\n <div class=\"btnbar flex-row\">\n <div class=\"dropdown\" dropdown [insideClick]=\"true\">\n <button class=\"btnbar-btn c8y-dropdown\" dropdownToggle>\n <i c8yIcon=\"columns\" class=\"m-r-4\"></i> <span translate>Configure columns</span>\n </button>\n\n <ul\n *dropdownMenu\n class=\"dropdown-menu\"\n (click)=\"$event.stopPropagation()\"\n >\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\">\n <label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [(ngModel)]=\"column.visible\"\n (change)=\"updateGridColumnsSize()\"\n />\n <span></span> \n {{ (column.header | translate) || column.name }}\n </label>\n </div>\n </ng-container>\n </div>\n </div>\n </li>\n </ul>\n </div>\n\n <button\n class=\"btnbar-btn\"\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\" class=\"input-group input-group-search\">\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)\" style=\"cursor: pointer\">\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 *ngSwitchCase=\"builtInActionType.Export\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n >\n <i c8yIcon=\"sign-out\"></i> <span translate>Export</span>\n </button>\n\n <button\n *ngSwitchCase=\"builtInActionType.Delete\"\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n >\n <i c8yIcon=\"trash\"></i> <span translate>Delete</span>\n </button>\n\n <button\n *ngSwitchDefault\n class=\"btnbar-btn\"\n (click)=\"bulkActionControl.callback(selectedItemIds, reload.bind(this))\"\n >\n <i c8yIcon=\"{{ bulkActionControl.icon }}\"></i>\n {{ bulkActionControl.text | translate }}\n </button>\n </ng-container>\n\n <button class=\"btnbar-btn\" (click)=\"setAllItemsSelected(false)\">\n <i c8yIcon=\"times\"></i> <span translate>Cancel</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\"\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 <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n class=\"btn btn-icon btn-xs btn-primary\"\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-primary\"\n title=\"{{ actionControl.text | translate }}\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"{{ actionControl.icon }}\"></i>\n </button>\n </ng-container>\n </ng-container>\n\n <div *ngIf=\"actionControls.length > 2\" class=\"dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n title=\"{{ 'Actions' | translate }}\"\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 <button\n *ngSwitchCase=\"builtInActionType.Edit\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"pencil\"></i> {{ 'Edit' | translate }}\n </button>\n <button\n *ngSwitchCase=\"builtInActionType.Delete\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"trash\"></i> {{ 'Delete' | translate }}\n </button>\n <button\n *ngSwitchCase=\"builtInActionType.Export\"\n (click)=\"actionControl.callback(row, reload.bind(this))\"\n >\n <i c8yIcon=\"download\"></i> {{ 'Export' | translate }}\n </button>\n <button *ngSwitchDefault (click)=\"actionControl.callback(row, reload.bind(this))\">\n <i c8yIcon=\"{{ actionControl.icon }}\"></i> {{ actionControl.text | translate }}\n </button>\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 <div\n *ngIf=\"column.filterable\"\n class=\"dropdown\"\n dropdown\n #dropdown=\"bs-dropdown\"\n [insideClick]=\"true\"\n container=\"body\"\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 <div class=\"c8y-empty-state\">\n <h1 c8yIcon=\"search\"></h1>\n <div>\n <p>\n <strong>{{ noMatchingItemsLabel | translate }}</strong>\n </p>\n <small>{{ 'Refine your search terms' | translate }}</small>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"pagination && !infiniteScroll\" class=\"table-data-grid-footer separator\">\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\" translate>Items per page</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":62,"character":3}}]}],"loadMoreItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"loadingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"noMatchingItemsLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"_columns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3},"arguments":["columns"]}]}],"_rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3},"arguments":["rows"]}]}],"_pagination":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":93,"character":3},"arguments":["pagination"]}]}],"_infiniteScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":3},"arguments":["infiniteScroll"]}]}],"_serverSideDataCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":113,"character":3},"arguments":["serverSideDataCallback"]}]}],"_selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3},"arguments":["selectable"]}]}],"_selectionPrimaryKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":3},"arguments":["selectionPrimaryKey"]}]}],"_displayOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3},"arguments":["displayOptions"]}]}],"_actionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":141,"character":3},"arguments":["actionControls"]}]}],"_bulkActionControls":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":147,"character":3},"arguments":["bulkActionControls"]}]}],"rowMouseOver":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":152,"character":3}}]}],"rowMouseLeave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":153,"character":3}}]}],"rowClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":154,"character":3}}]}],"itemsSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":156,"character":3}}]}],"columnRenderers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":158,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵcy"}]}]}],"scrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":160,"character":3},"arguments":["scroll",{"static":true}]}]}],"infiniteScrollContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":162,"character":3},"arguments":["infiniteScrollContainer",{"static":false,"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":162,"character":63}}]}]}],"thRefs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":199,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/cdk/table","name":"CdkHeaderCell","line":199,"character":16},{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":199,"character":39}}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":207,"character":23},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":208,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":209,"character":16},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":210,"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"}],"isItemSelected":[{"__symbolic":"method"}],"onColumnDrop":[{"__symbolic":"method"}],"updateGridColumnsSize":[{"__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"}],"updateFilteringLabelsParams":[{"__symbolic":"method"}],"updatePaginationLabelParams":[{"__symbolic":"method"}],"createLoadMoreComponent":[{"__symbolic":"method"}],"scrollToTop":[{"__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"}]}]}]}},"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 [selected]=\"option.selected\"\n (onSelect)=\"updateChoice({ item: item, id: option.obj.id })\"\n [disabled]=\"option.disabled\"\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":40,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap","name":"BsModalRef","line":47,"character":34}]}],"ngOnChanges":[{"__symbolic":"method"}],"updatePipe":[{"__symbolic":"method"}],"updateChoice":[{"__symbolic":"method"}],"dismiss":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getOutput":[{"__symbolic":"method"}]}},"ISelectModalObject":{"__symbolic":"interface"},"ISelectModalOption":{"__symbolic":"interface"},"ISelectModalBodyPart":{"__symbolic":"interface"},"ModalLabels":{"__symbolic":"interface"},"ModalSelectionMode":{"SINGLE":"single","MULTI":"multi"},"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":"ɵdh"}],"declarations":[{"__symbolic":"reference","name":"SelectModalComponent"},{"__symbolic":"reference","name":"ɵdh"}]}]}],"members":{}},"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"}]}},"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"}]}},"RealtimeMessage":{"__symbolic":"class","arity":1,"members":{}},"RealtimeAction":{"__symbolic":"interface"},"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"}]}},"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":"<form [formGroup]=\"fgDatePicker\">\n <c8y-form-group class=\"datepicker\">\n <input\n formControlName=\"dateFrom\"\n class=\"form-control\"\n placeholder=\"{{ 'Date from' | translate }}\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n />\n </c8y-form-group>\n <c8y-form-group class=\"datepicker\">\n <input\n formControlName=\"dateTo\"\n class=\"form-control\"\n placeholder=\"{{ 'Date to' | translate }}\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today' }\"\n />\n </c8y-form-group>\n <button\n *ngIf=\"fgDatePicker.get('dateFrom').value || fgDatePicker.get('dateTo').value\"\n title=\"{{ 'Apply' | translate }}\"\n type=\"submit\"\n class=\"btn btn-link\"\n (click)=\"filter()\"\n >\n <i c8y-icon=\"filter\"></i>\n {{ 'Apply`filters`' | translate }}\n </button>\n <button\n *ngIf=\"fgDatePicker.get('dateFrom').value || fgDatePicker.get('dateTo').value\"\n title=\"{{ 'Clear' | translate }}\"\n type=\"button\"\n class=\"btn btn-link\"\n (click)=\"clearFilter()\"\n >\n <i c8y-icon=\"times\"></i>\n {{ 'Clear`filters`' | translate }}\n </button>\n</form>\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"},"ɵa":{"__symbolic":"class","members":{}},"ɵb":{"__symbolic":"function","parameters":["httpClient","optionsService","cachedLocaleDictionaryService","localePath","languages"],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"ɵk"},"arguments":[{"__symbolic":"reference","name":"httpClient"},{"__symbolic":"reference","name":"optionsService"},{"__symbolic":"reference","name":"cachedLocaleDictionaryService"},{"__symbolic":"reference","name":"localePath"},{"__symbolic":"reference","name":"languages"}]}},"ɵc":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"localePath"}},"ɵd":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"options"},"member":"languages"}},"ɵe":{"__symbolic":"function","parameters":["appStateService"],"value":{}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":84,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":85,"character":12},{"__symbolic":"reference","name":"ɵg"}],"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":86,"character":12}],"declarations":[{"__symbolic":"reference","name":"ɵg"}]}]}],"members":{},"statics":{"providers":{"__symbolic":"function","parameters":[],"value":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"LOCALE_ID","line":92,"character":17},"useFactory":{"__symbolic":"reference","name":"ɵe"},"deps":[{"__symbolic":"reference","name":"AppStateService"}]},{"provide":{"__symbolic":"reference","name":"HOOK_PATTERN_MESSAGES"},"useValue":{"__symbolic":"reference","name":"ɵh"},"multi":true},{"provide":{"__symbolic":"reference","name":"ɵi"},"useFactory":{"__symbolic":"reference","name":"ɵc"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","name":"ɵj"},"useFactory":{"__symbolic":"reference","name":"ɵd"},"deps":[{"__symbolic":"reference","name":"OptionsService"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateLoader","line":99,"character":17},"useFactory":{"__symbolic":"reference","name":"ɵb"},"deps":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":101,"character":15},{"__symbolic":"reference","name":"OptionsService"},{"__symbolic":"reference","name":"CachedLocaleDictionaryService"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","name":"ɵj"}]},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateCompiler","line":103,"character":17},"useClass":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateFakeCompiler","line":103,"character":46}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateParser","line":104,"character":17},"useClass":{"__symbolic":"reference","name":"ɵl"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"MissingTranslationHandler","line":105,"character":17},"useClass":{"__symbolic":"reference","name":"ɵm"}},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateStore","line":106,"character":6},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":107,"character":6},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_STORE","line":108,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_DEFAULT_LANG","line":109,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"USE_EXTEND","line":110,"character":17},"useValue":false},{"provide":{"__symbolic":"reference","module":"@ngx-translate/core","name":"DEFAULT_LANGUAGE","line":111,"character":17},"useValue":{"__symbolic":"reference","name":"undefined"}}]},"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ɵf"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵf"},"member":"providers"}}}}}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":22,"character":1},"arguments":[{"selector":"[forceHtmlTranslate]"}]}],"members":{"translateParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateService","line":44,"character":30},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":45,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":46,"character":18}]}],"ngAfterViewChecked":[{"__symbolic":"method"}],"checkNodes":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getLookupKey":[{"__symbolic":"method"}],"isLookupKeyMissing":[{"__symbolic":"method"}],"lookupKeyExist":[{"__symbolic":"method"}],"translateAndUpdateHtmlContent":[{"__symbolic":"method"}]}},"ɵh":{"^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":["generalStatus=\"{{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":["generalStatus=\"{{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":["generalStatus=\"{{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$"]},"ɵi":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":31},"arguments":["Locale path"]},"ɵj":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":2,"character":29},"arguments":["Languages"]},"ɵk":{"__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":"ɵi"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":18,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵj"}]}]],"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"}]}},"ɵl":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateDefaultParser","line":10,"character":43},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1}}],"members":{"getValue":[{"__symbolic":"method"}]}},"ɵm":{"__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":"ɵn"}]}],"handle":[{"__symbolic":"method"}],"getFromCache":[{"__symbolic":"method"}],"addToCache":[{"__symbolic":"method"}],"getCacheKey":[{"__symbolic":"method"}],"getPatternMessageTranslation":[{"__symbolic":"method"}]}},"ɵn":{"__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":{"ngInjectableDef":{}}},"ɵo":{"__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"}]}},"ɵp":["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","hdd-o","book","bookmark","tag","flag","search","heart","star","bolt","rocket","cog","cogs","wrench","ban","user","users","sign-in","sign-out","upload","download","cloud-upload","cloud-download","cloud","spinner","refresh","repeat","undo","lock","unlock","info","question","exclamation","bug","calendar","random","asterisk","key","link","chain-broken","external-link","picture-o","comment","bullhorn","phone","lightbulb-o","flask","sitemap","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","apple","windows","android","linux"],"ɵq":{"__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"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"shortenUserName"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":59,"character":1},"arguments":[{"selector":"[c8yFor]"}]}],"members":{"c8yForOf":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":94,"character":3}}]}],"c8yForLoadMore":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":119,"character":3}}]}],"c8yForPipe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":127,"character":3}}]}],"c8yForNotFound":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":137,"character":3}}]}],"c8yForMaxIterations":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":148,"character":3}}]}],"c8yForRealtime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":156,"character":3}}]}],"c8yForComparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":165,"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":172,"character":17},{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":173,"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"}]}},"ɵt":{"__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\"\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=\"showNoMoreDataHint\">\n <ng-container *ngTemplateOutlet=\"noMoreDataHint || finishHint\"></ng-container>\n</ng-container>\n\n<ng-template #finishHint>\n <div class=\"legend form-block center\">\n <i [c8yIcon]=\"'flag-checkered'\" class=\"m-r-4\"></i>\n {{ 'Last record' | translate }}\n </div>\n</ng-template>\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}}]}],"loadNextLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"loadingLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"onLoad":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"hostClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":44,"character":3},"arguments":["class"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":55,"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"}]}},"ɵu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"map"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵv":{"__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\" *ngIf=\"progress === null\" style=\"position: 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"}]}],"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}}]}]}},"ɵw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":13,"character":1},"arguments":[{"selector":"c8y-single-operation","template":"<div class=\"c8y-list--group\" *ngIf=\"operation\">\n <a href=\"#/device/{{ operation.deviceId }}/control\" class=\"c8y-list__item\">\n <div class=\"c8y-list__item__block\">\n <div class=\"c8y-list__item__icon\">\n <i\n [c8yIcon]=\"statusIcons[operation.status]\"\n [ngClass]=\"statusClasses[operation.status]\"\n [tooltip]=\"operation.status?.toString() | translate\"\n placement=\"right\"\n container=\"body\"\n ></i>\n </div>\n <div class=\"c8y-list__item__body p-r-16\">\n <div class=\"content-flex-40\">\n <div class=\"col-8 text-break-word\">{{ operation.description | translate }}</div>\n <div class=\"col-4 text-muted\">\n <i c8yIcon=\"calendar\" class=\"m-r-4\"></i>\n <small>{{ operation.creationTime | c8yDate }}</small>\n </div>\n </div>\n </div>\n </div>\n </a>\n</div>\n"}]}],"members":{"operation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵx":{"__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"}]}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":14,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"}],"imports":[{"__symbolic":"reference","module":"ngx-bootstrap/dropdown","name":"BsDropdownModule","line":20,"character":4},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":22,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":23,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ɵz"},{"__symbolic":"reference","name":"ɵba"}]}]}],"members":{}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-action-bar","host":{"class":"c8y-ui-action-bar"},"template":"<div class=\"navbar-header\">\n <button\n type=\"button\"\n class=\"navbar-toggle collapsed\"\n (click)=\"isPageToolbarExpanded = !isPageToolbarExpanded\"\n >\n <span class=\"sr-only\" translate>Toggle toolbar</span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n</div>\n\n<div id=\"page-toolbar\" class=\"navbar-collapse\" [collapse]=\"!isPageToolbarExpanded\">\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\"\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <span 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 </div>\n </li>\n </ul>\n</div>\n"}]}],"members":{"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":10,"character":12},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":11,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":11,"character":12},"arguments":["class.has-tabs"]}]}],"isTabsHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":12,"character":12},"arguments":["class.horizontal-tabs"]}]}],"uiActionBar":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":14,"character":3},"arguments":["class.c8y-ui-action-bar"]}]}],"items":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"hidden":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":17,"character":3}}]}],"getSortedItems":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ɵba":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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":9,"character":3}}]}],"priority":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"itemClass":[{"__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}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionBarService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":13,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"}],"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":"ɵbc"},{"__symbolic":"reference","name":"ɵbd"}]}]}],"members":{}},"ɵbc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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=\"fa-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":11,"character":3}}]}],"getByPriority":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}]}},"ɵbd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"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":9,"character":3}}]}],"label":[{"__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}}]}],"icon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":12,"character":3}}]}],"template":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":13,"character":3},"arguments":["template",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ActionService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"ɵbf"},{"__symbolic":"reference","name":"ɵbg"},{"__symbolic":"reference","name":"ɵbh"},{"__symbolic":"reference","name":"ɵbi"}],"declarations":[{"__symbolic":"reference","name":"ɵbf"},{"__symbolic":"reference","name":"ɵbg"},{"__symbolic":"reference","name":"ɵbh"},{"__symbolic":"reference","name":"ɵbi"}]}]}],"members":{}},"ɵbf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"c8y-alert-outlet","template":"<div\n class=\"alert animated fadeInRightBig\"\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 top-m-sm\">\n <button\n title=\"{{ 'Show details' | translate }}\"\n class=\"btn btn-clean\"\n (click)=\"showDetails(alert)\"\n >\n <i class=\"fa fa-chevron-down\"></i>\n {{ 'Show details' | translate }}\n </button>\n </p>\n <p *ngIf=\"hasDetails(alert) && isDetailsShow(alert)\" class=\"text-muted top-m-sm\">\n <button title=\"{{ 'Hide details' | translate }}\" class=\"btn btn-clean\" (click)=\"closeDetails()\">\n <i class=\"fa fa-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":13,"character":3},"arguments":["class.static"]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Attribute","line":18,"character":5},"arguments":["position"]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"AlertService"}]}],"getClass":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"showDetails":[{"__symbolic":"method"}],"setDetailsContent":[{"__symbolic":"method"}],"hasDetails":[{"__symbolic":"method"}],"closeDetails":[{"__symbolic":"method"}],"isDetailsShow":[{"__symbolic":"method"}],"isTemplateRef":[{"__symbolic":"method"}],"template":[{"__symbolic":"method"}]}},"ɵbg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"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":12,"character":3}}]}],"onDetail":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"onClose":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"detailedData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":15,"character":3},"arguments":["detailedData",{"static":false}]}]}],"text":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":["text",{"static":false}]}]}],"containDetailsComponent":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":17,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵbh"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AlertService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵbh":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-alert-details","template":"<ng-content></ng-content>"}]}],"members":{}},"ɵbi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-alert-text","template":"<ng-content></ng-content>"}]}],"members":{}},"ɵbj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":5,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbk"}],"imports":[{"__symbolic":"reference","name":"CommonModule"}],"exports":[{"__symbolic":"reference","name":"ɵbk"}]}]}],"members":{}},"ɵbk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"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":8,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@c8y/client","name":"AuditService","line":13,"character":29}]}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵbl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":18,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"BootstrapComponent"},{"__symbolic":"reference","name":"ɵbm"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"HeaderModule"},{"__symbolic":"reference","name":"ɵcl"},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":27,"character":4},{"__symbolic":"reference","name":"ɵct"},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","name":"ɵbe"},{"__symbolic":"reference","name":"ɵci"},{"__symbolic":"reference","module":"ngx-bootstrap/tooltip","name":"TooltipModule","line":32,"character":4}],"exports":[{"__symbolic":"reference","name":"BootstrapComponent"}],"entryComponents":[{"__symbolic":"reference","name":"BootstrapComponent"}]}]}],"members":{}},"ɵbm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"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\">\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 class=\"btn btn-primary btn-block\" (click)=\"acceptCookies()\">\n {{ 'Agree and proceed' | 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>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OptionsService"}]}],"ngOnInit":[{"__symbolic":"method"}],"acceptCookies":[{"__symbolic":"method"}]}},"ɵbn":{"__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":13,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":14,"character":18}]}]}},"ɵbo":{"__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"}]}],"ngOnChanges":[{"__symbolic":"method"}],"findStaticIcon":[{"__symbolic":"method"}],"iconFromAppDefinition":[{"__symbolic":"method"}],"iconUrlFromAppDefinition":[{"__symbolic":"method"}]}},"ɵbp":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"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 class=\"fa-2x fa fw fa-th\"></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 >\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":22,"character":26}]}],"isActive":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"listAppsForUser":[{"__symbolic":"method"}],"filterApps":[{"__symbolic":"method"}],"filterVisible":[{"__symbolic":"method"}],"filterCloud":[{"__symbolic":"method"}],"filterDuplicates":[{"__symbolic":"method"}],"orderApps":[{"__symbolic":"method"}]}},"ɵbq":{"__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\n <div class=\"summary\">\n <h4 class=\"text-light\">{{'Welcome to' | translate}} {{app | humanizeAppName | async}}</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 class=\"quick-link\"\n [href]=\"quickLink.url || '#'\"\n (click)=\"quickLink.click && $event.preventDefault(); quickLink.click();\">\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 top-m-lg\" translate>Help & support</div>\n <div class=\"help-support\" *ngFor=\"let link of helpAndSupport\">\n <a class=\"help-and-support-link text-truncate\" target=\"_blank\" rel=\"noopener noreferrer\" [href]=\"link.url\">\n <i [c8yIcon]=\"link.icon\"></i>\n <span title=\"{{link.label | translate}}\" style=\"display: inline;\">{{link.label | translate}}</span>\n </a>\n </div>\n </div>\n\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}}]}]}},"ɵbr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":25,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵbs"},{"__symbolic":"reference","name":"ɵbt"},{"__symbolic":"reference","name":"ɵbu"},{"__symbolic":"reference","name":"ɵbv"},{"__symbolic":"reference","name":"ɵbw"},{"__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":"ɵbe"},{"__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":"ɵbs"},{"__symbolic":"reference","name":"ɵbv"},{"__symbolic":"reference","name":"ɵbt"},{"__symbolic":"reference","name":"ɵbu"},{"__symbolic":"reference","name":"ɵbw"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}],"entryComponents":[{"__symbolic":"reference","name":"ɵbu"},{"__symbolic":"reference","name":"ɵbw"},{"__symbolic":"reference","name":"UserTotpRevokeComponent"}]}]}],"members":{}},"ɵbs":{"__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\"\n dropdownToggle\n style=\"white-space: nowrap\"\n >\n <span\n class=\"hidden-xs text-truncate right-m\"\n style=\"vertical-align: text-bottom; max-width: 104px; display: inline-block\"\n title=\"{{ui.currentUser | async | shortenUserName}}\"\n >\n {{ui.currentUser | async | shortenUserName}}\n </span>\n <i\n [c8yIcon]=\"'c8y-user'\"\n class=\"fa-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 style=\"cursor: pointer\" [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\"\n style=\"white-space: normal; 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\"\n style=\"margin: 1px 6px 0 -3px; font-size: 14px;\"\n ></i>\n <span class=\"text-muted text-truncate\">\n {{'Tenant ID' | translate}}: <strong>\n <span class=\"text-primary\" (click)=\"$event.stopPropagation(); copyIt(ui.currentTenant.value.name)\"\n style=\"cursor: pointer\">\n {{ui.currentTenant.value.name}} <i [c8yIcon]=\"'clipboard'\"></i></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'\"\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]=\"'phone'\"\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]=\"'phone'\"\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"}]}},"ɵbt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"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 You cannot edit the user since it is managed via your authorization 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]=\"user.newsletter\"\n [disabled]=\"userIsExternal\"\n />\n <c8y-messages>\n <c8y-message *ngIf=\"!user.email\" translate\n >Note that email is required to reset password.</c8y-message\n >\n </c8y-messages>\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 [disabled]=\"userIsExternal\"\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 <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 translate\n *ngIf=\"userCanSetupTotp && !userHasActiveTotp && isTfaEnabled\"\n >\n Set up two-factor authentication\n </button>\n </div>\n\n <c8y-form-group *ngIf=\"!!(state.state$ | async).newsletter\">\n <label translate>Newsletter</label>\n <label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n name=\"newsletter\"\n [(ngModel)]=\"user.newsletter\"\n [disabled]=\"userIsExternal\"\n />\n <span></span>\n {{ 'Send me information about outages, maintenance or updates.' | translate }}\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 translate\n >\n Cancel\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 || userIsExternal\"\n translate\n >\n Save\n </button>\n </div>\n</form>\n"}]}],"members":{"lang":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"user":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"onUser":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"onLanguage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"onCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"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":51,"character":28},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":53,"character":25},{"__symbolic":"reference","module":"@c8y/client","name":"TenantLoginOptionsService","line":54,"character":39},{"__symbolic":"reference","module":"@c8y/client","name":"TenantService","line":55,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"setupTotp":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}],"onNewPasswordChanged":[{"__symbolic":"method"}],"initializeTotpSettings":[{"__symbolic":"method"}],"canUserSetupTotp":[{"__symbolic":"method"}],"saveAfterPasswordConfirmation":[{"__symbolic":"method"}]}},"ɵbu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"c8y-user-edit-modal","template":"<c8y-modal\n [customFooter]=\"true\"\n [title]=\"'Edit user' | translate\"\n (onDismiss)=\"onDismiss()\"\n>\n <c8y-user-edit\n [lang]=\"lang\"\n [user]=\"ui.currentUser | async\"\n [loading]=\"loading\"\n (onLanguage)=\"onLanguage($event)\"\n (onUser)=\"updateAndClose($event)\"\n (onCancel)=\"onDismiss()\"\n >\n </c8y-user-edit>\n</c8y-modal>"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":21,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"UserService","line":22,"character":17},{"__symbolic":"reference","name":"AppStateService"},{"__symbolic":"reference","module":"@c8y/client","name":"BasicAuth","line":24,"character":18},{"__symbolic":"reference","module":"@c8y/client","name":"FetchClient","line":25,"character":20},{"__symbolic":"reference","name":"AlertService"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"ɵx"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalService","line":29,"character":26}]}],"ngOnInit":[{"__symbolic":"method"}],"onDismiss":[{"__symbolic":"method"}],"onLanguage":[{"__symbolic":"method"}],"updateAndClose":[{"__symbolic":"method"}],"persistLanguage":[{"__symbolic":"method"}],"updateUserInAppState":[{"__symbolic":"method"}],"updateCredentials":[{"__symbolic":"method"}]}},"ɵbv":{"__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 style=\"cursor: pointer\" [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>"}]}],"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"}]}},"ɵbw":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"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":15,"character":18},{"__symbolic":"reference","name":"ModalService"},{"__symbolic":"reference","module":"ngx-bootstrap/modal","name":"BsModalRef","line":17,"character":19},{"__symbolic":"reference","name":"LoginService"}]}],"totpSetupVerified":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ɵbx":{"__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"}]}},"ɵby":{"__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}]}],"ngAfterContentChecked":[{"__symbolic":"method"}],"getTextForPlaceholder":[{"__symbolic":"method"}],"updatePlaceholder":[{"__symbolic":"method"}]}},"ɵbz":{"__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"}]}},"ɵca":{"__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\">{{title | translate}}</h3>\n</div>\n<div class=\"modal-body\">\n <p\n [hidden]=\"!title\"\n class=\"text-center text-wrap\"\n style=\"word-wrap:break-word;\"\n >{{body}}</p>\n <ng-content></ng-content>\n</div>\n<div class=\"modal-footer\" *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 >{{labels.cancel | translate}}</button>\n <button\n title=\"{{ labels.ok | translate }}\" \n *ngIf=\"labels.ok\"\n class=\"btn btn-primary\"\n (click)=\"_close()\"\n [disabled]=\"disabled\"\n >{{labels.ok | translate}}</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"]]}]}]}},"ɵcb":{"__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\n #twoFactorForm=\"ngForm\"\n role=\"form\"\n class=\"loginForm\"\n (ngSubmit)=\"save()\"\n novalidate\n>\n <c8y-form-group>\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=\"”m-t-16”\">\n <a\n title=\"{{ 'Login' | translate }}\"\n class=\"btn btn-link pull-right\"\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}]}],"sendTFASms":[{"__symbolic":"method"}],"save":[{"__symbolic":"method"}]}},"ɵcc":{"__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 *ngIf=\"search\">\n <div class=\"dropdown\" dropdown #dropdown=\"bs-dropdown\" *ngFor=\"let item of getByPriority()\">\n <button\n title=\"{{ 'Search' | translate }}\"\n type=\"button\"\n class=\"main-header-button dropdown-toggle c8y-dropdown\"\n (click)=\"openSearch()\"\n dropdownToggle\n >\n <i [c8yIcon]=\"item.icon\" class=\"fa-2x\"></i>\n </button>\n\n <div\n id=\"search-header-menu\"\n class=\"search-header-menu dropdown-menu dropdown-menu-center\"\n *dropdownMenu\n >\n <form\n (ngSubmit)=\"verifyNotEmpty(item.term); item.onSearch(); closeDropdown(dropdown)\"\n novalidate\n #searchForm=\"ngForm\"\n >\n <div class=\"input-group input-group-search\" *ngIf=\"!item.template\">\n <input\n type=\"search\"\n class=\"form-control input-lg\"\n required=\"required\"\n [placeholder]=\"'Search for groups or assets…'|translate\"\n (click)=\"$event.stopPropagation()\"\n [(ngModel)]=\"item.term\"\n name=\"searchTerm\"\n />\n\n <span class=\"input-group-btn\">\n <button type=\"submit\" class=\"btn btn-link\" (click)=\"$event.stopPropagation()\">\n <i [c8yIcon]=\"'arrow-right'\"></i>\n </button>\n </span>\n </div>\n\n <ng-container *c8yOutlet=\"item.template\"></ng-container>\n </form>\n </div>\n </div>\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"}]}],"openSearch":[{"__symbolic":"method"}],"getByPriority":[{"__symbolic":"method"}],"closeDropdown":[{"__symbolic":"method"}],"verifyNotEmpty":[{"__symbolic":"method"}],"byPriority":[{"__symbolic":"method"}],"focusInputBox":[{"__symbolic":"method"}]}},"ɵcd":{"__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"}]}},"ɵce":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":15,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcf"},{"__symbolic":"reference","name":"ɵcg"},{"__symbolic":"reference","name":"ɵch"}],"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":"ɵcf"},{"__symbolic":"reference","name":"ɵcg"},{"__symbolic":"reference","name":"ɵch"}]}]}],"members":{}},"ɵcf":{"__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":"ɵcg"}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"BreadcrumbService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵcg":{"__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}]}]}]}},"ɵch":{"__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=\"right-m-xs\"></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"}]}},"ɵci":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":16,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcj"},{"__symbolic":"reference","name":"ɵck"},{"__symbolic":"reference","name":"NavigatorItemComponent"},{"__symbolic":"reference","name":"NavigatorIconComponent"}],"imports":[{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":24,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-bootstrap/collapse","name":"CollapseModule","line":25,"character":4},"member":"forRoot"}},{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"reference","name":"ModalModule"}],"exports":[{"__symbolic":"reference","name":"ɵcj"},{"__symbolic":"reference","name":"NavigatorItemComponent"}],"entryComponents":[{"__symbolic":"reference","name":"NavigatorIconComponent"}]}]}],"members":{}},"ɵcj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"c8y-navigator-outlet, c8y-ui-navigator","template":"<nav class=\"navigator\" *ngIf=\"nodes && nodes.length > 0\" [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":9,"character":3}}]}],"open":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":10,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"HeaderService"}]}],"collapseNavigator":[{"__symbolic":"method"}],"trackByPathOrLabel":[{"__symbolic":"method"}]}},"ɵck":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"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=\"fa-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":13,"character":3},"arguments":["icon",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":13,"character":29},"static":false}]}]}],"node":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"isRoot":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"routerLinkActive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":16,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/router","name":"RouterLinkActive","line":16,"character":13},{"static":false}]}]}],"childrenNodes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChildren","line":17,"character":3},"arguments":[{"__symbolic":"reference","name":"ɵck"}]}]}],"nodeClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":18,"character":3}}]}],"confirm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":19,"character":3},"arguments":[{"__symbolic":"reference","name":"PopoverConfirmComponent"},{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":26,"character":38},{"__symbolic":"reference","name":"NavigatorService"}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"openOnFirstUrl":[{"__symbolic":"method"}],"click":[{"__symbolic":"method"}],"expandCollapse":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"expandParentIfActive":[{"__symbolic":"method"}],"updateIcon":[{"__symbolic":"method"}],"updateIconComponent":[{"__symbolic":"method"}],"updateIconTemplate":[{"__symbolic":"method"}]}},"ɵcl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcm"},{"__symbolic":"reference","name":"ɵcn"},{"__symbolic":"reference","name":"ɵco"},{"__symbolic":"reference","name":"ɵcp"},{"__symbolic":"reference","name":"ɵcq"},{"__symbolic":"reference","name":"ɵcr"}],"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":"ɵbe"},{"__symbolic":"reference","name":"FormsModule"}],"exports":[{"__symbolic":"reference","name":"ɵcm"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"ɵcl"},"providers":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"ɵcl"},"member":"providers"}}}},"providers":{"__symbolic":"function","parameters":[],"value":[{"__symbolic":"reference","name":"LoginService"}]}}},"ɵcm":{"__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\">\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\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"}]}},"ɵcn":{"__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>Forgot password?</div>\n <c8y-form-group class=\"tenantField\" id=\"tenantField\" *ngIf=\"loginService.showTenant()\">\n <label translate>Tenant ID</label>\n <input\n [(ngModel)]=\"model.tenantId\"\n #tenantId=\"ngModel\"\n type=\"text\"\n name=\"tenantId\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Tenant ID' | translate }}\"\n required\n />\n </c8y-form-group>\n\n <c8y-form-group>\n <label translate>Email address</label>\n <input\n [(ngModel)]=\"model.email\"\n #email=\"ngModel\"\n type=\"text\"\n name=\"email\"\n autocapitalize=\"off\"\n autocorrect=\"off\"\n class=\"form-control\"\n placeholder=\"{{ 'Email address' | translate }}\"\n email\n required\n />\n </c8y-form-group>\n\n <button\n title=\"{{ 'Reset password' | translate }}\"\n [disabled]=\"!resetForm.form.valid || isLoading\"\n type=\"submit\"\n class=\"btn btn-primary btn-lg btn-block form-group\"\n translate\n >\n Reset password\n </button>\n <div class=\"text-center top-m-sm\">\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 >Login</a\n >\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"}]}},"ɵco":{"__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]=\"model.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 || !model.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"}]}},"ɵcp":{"__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=\"{{ 'Tenant ID' | translate }}\"\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=\"{{ 'Username' | translate }}\"\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=\"{{ 'Password' | translate }}\"\n required\n />\n </c8y-form-group>\n <div class=\"form-group\" *ngIf=\"showBasicAuth\">\n <label class=\"c8y-checkbox\">\n <input\n title=\"{{ 'Remember me' | translate }}\"\n type=\"checkbox\"\n name=\"remember\"\n [(ngModel)]=\"loginService.rememberMe\"\n /><span></span>\n {{ 'Remember me' | translate }}\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 top-m-sm\">\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 top-m-sm\" *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"}]}},"ɵcq":{"__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>Two-factor authentication</div>\n\n<c8y-totp-setup *ngIf=\"isSetup\"></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=\"top-m-sm text-center\">\n <a\n title=\"{{ 'Cancel' | translate }}\"\n class=\"btn btn-link btn-sm\"\n (click)=\"onCancel.emit()\"\n translate\n >Cancel</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"}]}},"ɵcr":{"__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":"ɵcr"},"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":"ɵcs"}]}],"validate":[{"__symbolic":"method"}]}},"ɵcs":{"__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":"PasswordService"}]}],"isStrong":[{"__symbolic":"method"}],"isPasswordGreen":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵct":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":7,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵcu"},{"__symbolic":"reference","name":"ɵcv"}],"imports":[{"__symbolic":"reference","name":"CommonModule"},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":14,"character":4},"member":"forChild"},"arguments":[[]]}],"exports":[{"__symbolic":"reference","name":"ɵcu"},{"__symbolic":"reference","name":"ɵcv"}]}]}],"members":{}},"ɵcu":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":16,"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":21,"character":3}}]}],"orientation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"navigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"isNavigatorOpen":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":26,"character":3},"arguments":["class.navigator-open"]}]}],"hasTabs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":29,"character":3},"arguments":["class.page-tabs"]}]}],"isHorizontal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":32,"character":3},"arguments":["class.page-tabs-horizontal"]}]}],"isVertical":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":35,"character":3},"arguments":["class.page-tabs-vertical"]}]}],"container":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":38,"character":3},"arguments":["container",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":38,"character":33},"static":true}]}]}],"leftBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":39,"character":3},"arguments":["left",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":39,"character":28},"static":false}]}]}],"rightBtn":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":40,"character":3},"arguments":["right",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":40,"character":29},"static":false}]}]}],"tabsContainer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":41,"character":3},"arguments":["tabsContainer",{"read":{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":41,"character":37},"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router","line":45,"character":20},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":46,"character":22},{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":47,"character":16}]}],"ngOnDestroy":[{"__symbolic":"method"}],"ngAfterContentInit":[{"__symbolic":"method"}],"isActive":[{"__symbolic":"method"}],"navigateTo":[{"__symbolic":"method"}],"scroll":[{"__symbolic":"method"}],"scrollSubscribe":[{"__symbolic":"method"}],"updateScroll":[{"__symbolic":"method"}],"getDimensions":[{"__symbolic":"method"}]}},"ɵcv":{"__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"}]}},"ɵcw":{"__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"}]}},"ɵcx":{"__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"}]}},"ɵcy":{"__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}]}]}]}},"ɵcz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":8,"character":3}}]}]}},"ɵda":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":7,"character":3},"arguments":["template",{"static":false}]}]}],"label":[{"__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":11,"character":3}}]}],"click":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":13,"character":3}}]}]}},"ɵdb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-list-item-collapse, c8y-li-collapse","template":"<ng-content></ng-content>\n"}]}],"members":{"item":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":8,"character":3}}]}]}},"ɵdc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":10,"character":3}}]}],"status":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}]}},"ɵdd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"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":8,"character":3}}]}]}},"ɵde":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"c8y-list-item-checkbox, c8y-li-checkbox","host":{"class":"c8y-list__item__check"},"template":"<label class=\"c8y-checkbox\">\n <input\n type=\"checkbox\"\n [checked]=\"selected\"\n (change)=\"onSelect.emit($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":10,"character":3}}]}],"onSelect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":12,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}]}},"ɵdf":{"__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"}]}]}]}},"ɵdg":{"__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"}]}},"ɵdh":{"__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"}]}},"ɵdi":{"__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":"ɵdj"}],"exports":[{"__symbolic":"reference","name":"ɵdj"}]}]}],"members":{}},"ɵdj":{"__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"}]}},"ɵdk":{"__symbolic":"interface"},"ɵdl":{"__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":"ɵdm"},{"__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":{"ngInjectableDef":{}}},"ɵdm":{"__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"}]}},"ɵdn":{"__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"}]}},"ɵdo":{"__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"}]}}},"origins":{"ActionBarItem":"./core/action-bar/action-bar.model","ActionBarFactory":"./core/action-bar/action-bar.model","HOOK_ACTION_BAR":"./core/action-bar/action-bar.service","ActionBarService":"./core/action-bar/action-bar.service","Action":"./core/action/action.model","ActionFactory":"./core/action/action.model","HOOK_ACTION":"./core/action/action.service","ActionService":"./core/action/action.service","Alert":"./core/alert/alert.model","AlertService":"./core/alert/alert.service","BootstrapComponent":"./core/bootstrap/bootstrap.component","BreadcrumbItem":"./core/breadcrumb/breadcrumb.model","Breadcrumb":"./core/breadcrumb/breadcrumb.model","BreadcrumbFactory":"./core/breadcrumb/breadcrumb.model","HOOK_BREADCRUMB":"./core/breadcrumb/breadcrumb.service","BreadcrumbService":"./core/breadcrumb/breadcrumb.service","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","ExtensionFactory":"./core/common/extension-hooks","ExtensionPoint":"./core/common/extension-hooks","getActivatedRoute":"./core/common/extension-hooks","HumanizeAppNamePipe":"./core/common/humanize-app-name.pipe","HumanizePipe":"./core/common/humanize.pipe","LoadMoreMode":"./core/common/load-more.model","memoize":"./core/common/memoize.decorator","HOOK_OPTIONS":"./core/common/options.service","OptionsService":"./core/common/options.service","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","Permissions":"./core/common/permissions.service","CoreModule":"./core/core.module","HeaderModule":"./core/header/header.module","HeaderService":"./core/header/header.service","TitleComponent":"./core/header/title/title.component","HeaderBarComponent":"./core/header/header-bar/header-bar.component","TranslateService":"./core/i18n/translate.service","_":"./core/i18n/gettext","gettext":"./core/i18n/gettext","HOOK_PATTERN_MESSAGES":"./core/i18n/patterns-message.hook","CachedLocaleDictionaryService":"./core/i18n/cached-locale-dictionary.service","LoginMessage":"./core/login/login.model","LoginViews":"./core/login/login.model","LoginService":"./core/login/login.service","ModalService":"./core/modal/modal.service","ModalModule":"./core/modal/modal.module","PopoverConfirmComponent":"./core/modal/popover-confirm.component","ConfirmModalComponent":"./core/modal/modal-confirm.component","ILabels":"./core/modal/modal-confirm.component","ClickOptions":"./core/navigator/navigator-node","NavigatorNode":"./core/navigator/navigator-node","NavigatorNodeRoot":"./core/navigator/navigator-node-root","HOOK_NAVIGATOR_NODES":"./core/navigator/navigator.service","NavigatorService":"./core/navigator/navigator.service","NavigatorItemComponent":"./core/navigator/navigator-entry.component","NavigatorIconComponent":"./core/navigator/navigator-icon.component","NavigatorNodeFactory":"./core/navigator/navigator-node-factory.interface","NewPassword":"./core/authentication/password.model","TotpChallengeComponent":"./core/authentication/totp-challenge.component","TotpSetupComponent":"./core/authentication/totp-setup.component","PasswordStrengthComponent":"./core/authentication/password-strength.component","PasswordStrengthCheckerService":"./core/authentication/password-strength-checker.service","PasswordConfirm":"./core/authentication/password-confirm.directive","PasswordConfirmModalComponent":"./core/authentication/password-confirm-modal.component","PasswordCheckListComponent":"./core/authentication/password-check-list.component","PasswordService":"./core/authentication/password.service","NewPasswordComponent":"./core/authentication/new-password.component","AuthenticationModule":"./core/authentication/authentication.module","SmsChallengeComponent":"./core/authentication/sms-challenge.component","SearchModule":"./core/search/search.module","Search":"./core/search/search.model","SearchFactory":"./core/search/search.model","HOOK_SEARCH":"./core/search/search.service","SearchService":"./core/search/search.service","HighlightComponent":"./core/search/highlight.component","SearchResultEmptyComponent":"./core/search/search-result-empty.component","Tab":"./core/tabs/tab.model","TabFactory":"./core/tabs/tab.model","HOOK_TABS":"./core/tabs/tabs.service","TabsService":"./core/tabs/tabs.service","DropAreaModule":"./core/drop-area/drop-area.module","DropAreaComponent":"./core/drop-area/drop-area.component","DroppedFile":"./core/drop-area/drop-area.component","FilePickerModule":"./core/file-picker/file-picker.module","FilePickerComponent":"./core/file-picker/file-picker.component","PickedFiles":"./core/file-picker/file-picker.model","AppStateService":"./core/common/ui-state.service","UserMenuService":"./core/user/user-menu.service","UserTotpRevokeComponent":"./core/user/user-totp-revoke.component","routes":"./core/router/router.module","RouterModule":"./core/router/router.module","ViewContext":"./core/router/router.models","Route":"./core/router/router.models","RouteFactory":"./core/router/router.models","HOOK_ONCE_ROUTE":"./core/router/router.service","RouterService":"./core/router/router.service","ContextRouteComponent":"./core/router/context-route.component","EmptyComponent":"./core/router/empty.component","DefaultValidationDirective":"./core/forms/default-validation.directive","FilterInputComponent":"./core/forms/filter-input.component","FormGroupConfig":"./core/forms/form-group-config.model","FormGroupComponent":"./core/forms/form-group.component","FormsModule":"./core/forms/forms.module","InputGroupListComponent":"./core/forms/input-group-list.component","JsonValidationPrettifierDirective":"./core/forms/json-validation-prettifier.directive","MaxValidationDirective":"./core/forms/max-validation.directive","MessageDirective":"./core/forms/message.directive","MessagesComponent":"./core/forms/messages.component","MinValidationDirective":"./core/forms/min-validation.directive","PhoneValidationDirective":"./core/forms/phone-validation.directive","TextAreaRowHeightDirective":"./core/forms/text-area-row-height.directive","ValidationRules":"./core/forms/validation-pattern","ValidationPattern":"./core/forms/validation-pattern","DeviceStatusModule":"./core/device-status/device-status.module","DeviceStatusComponent":"./core/device-status/device-status.component","deviceAvailabilityIconMap":"./core/device-status/device-availability","tooltips":"./core/device-status/device-availability","PushStatusLabels":"./core/device-status/device-availability","SendStatusLabels":"./core/device-status/device-availability","DocLink":"./core/docs/docs.models","DocLinkFactory":"./core/docs/docs.models","HOOK_DOCS":"./core/docs/docs.models","DocsModule":"./core/docs/docs.module","DocsService":"./core/docs/docs.service","GuideDocsComponent":"./core/docs/guide-docs.component","GuideHrefDirective":"./core/docs/guide-href.directive","DynamicComponentService":"./core/dynamic-component/dynamic-component.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","DashboardChildComponent":"./core/dashboard/dashboard-child.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","DashboardModule":"./core/dashboard/dashboard.module","DashboardChildChange":"./core/dashboard/dashboard-child-change","DashboardChildTitleComponent":"./core/dashboard/dashboard-child-title.component","DashboardChildActionComponent":"./core/dashboard/dashboard-child-action.component","WidgetsDashboardComponent":"./core/dashboard/widgets-dashboard.component","StepperModule":"./core/stepper/stepper.module","C8yStepper":"./core/stepper/stepper.component","C8yStepperButtons":"./core/stepper/stepper-buttons.component","ListGroupComponent":"./core/list-group/list-group.component","ListGroupModule":"./core/list-group/list-group.module","ListItemComponent":"./core/list-group/list-item.component","ListItemRadioComponent":"./core/list-group/list-item-radio.component","QuickLinkModule":"./core/quicklink/quick-link.module","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","DataGridModule":"./core/data-grid/data-grid.module","DataGrid":"./core/data-grid/data-grid.model","Column":"./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","DataGridComponent":"./core/data-grid/data-grid.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","SelectModalComponent":"./core/select-modal/select-modal.component","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","SelectModalModule":"./core/select-modal/select-modal.module","OperationBulkRealtimeService":"./core/realtime/operation-bulk-realtime.service","ManagedObjectRealtimeService":"./core/realtime/managed-object-realtime.service","RealtimeMessage":"./core/realtime/realtime.model","RealtimeAction":"./core/realtime/realtime.model","RealtimeService":"./core/realtime/realtime.service","DatePickerModule":"./core/date-picker/date-picker.module","DatePickerComponent":"./core/date-picker/date-picker.component","PickedDates":"./core/date-picker/date-picker.model","ɵa":"./core/common/ApplicationOptions","ɵb":"./core/i18n/i18n.module","ɵc":"./core/i18n/i18n.module","ɵd":"./core/i18n/i18n.module","ɵe":"./core/i18n/i18n.module","ɵf":"./core/i18n/i18n.module","ɵg":"./core/i18n/force-html-translate.directive","ɵh":"./core/i18n/pattern-messages.data","ɵi":"./core/i18n/locale.path","ɵj":"./core/i18n/languages","ɵk":"./core/i18n/translate.loader","ɵl":"./core/i18n/translate.parser","ɵm":"./core/i18n/missing-translation-custom.handler","ɵn":"./core/i18n/pattern-messages.service","ɵo":"./core/common/icon.directive","ɵp":"./core/common/icon.directive","ɵq":"./core/common/outlet.directive","ɵr":"./core/common/shorten-user-name.pipe","ɵs":"./core/common/forOf.directive","ɵt":"./core/common/load-more.component","ɵu":"./core/common/map-function.pipe","ɵv":"./core/common/progress-bar.component","ɵw":"./core/common/single-operation.component","ɵx":"./core/common/user-preferences/user-preferences.service","ɵy":"./core/action-bar/action-bar.module","ɵz":"./core/action-bar/action-bar.component","ɵba":"./core/action-bar/action-bar-item.component","ɵbb":"./core/action/action.module","ɵbc":"./core/action/action-outlet.component","ɵbd":"./core/action/action.component","ɵbe":"./core/alert/alert.module","ɵbf":"./core/alert/alert-outlet.component","ɵbg":"./core/alert/alert.component","ɵbh":"./core/alert/alert-details.component","ɵbi":"./core/alert/alert-text.component","ɵbj":"./core/audit-log/audit-log.module","ɵbk":"./core/audit-log/audit-log.component","ɵbl":"./core/bootstrap/bootstrap.module","ɵbm":"./core/bootstrap/cookie-banner/cookie-banner.component","ɵbn":"./core/header/title/title-outlet.component","ɵbo":"./core/header/application/app-icon.component","ɵbp":"./core/header/application/app-switcher.component","ɵbq":"./core/header/right-drawer/right-drawer.component","ɵbr":"./core/user/user.module","ɵbs":"./core/user/user-menu-outlet.component","ɵbt":"./core/user/user-edit.component","ɵbu":"./core/user/user-edit-modal.component","ɵbv":"./core/user/user-menu-item.component","ɵbw":"./core/user/user-totp-setup.component","ɵbx":"./core/forms/input-group-list-container.directive","ɵby":"./core/forms/required-input-placeholder.directive","ɵbz":"./core/forms/ip-range-input-list.component","ɵca":"./core/modal/modal.component","ɵcb":"./core/authentication/provide-phone-number.component","ɵcc":"./core/search/search-outlet.component","ɵcd":"./core/search/search.component","ɵce":"./core/breadcrumb/breadcrumb.module","ɵcf":"./core/breadcrumb/breadcrumb.component","ɵcg":"./core/breadcrumb/breadcrumb-item.component","ɵch":"./core/breadcrumb/breadcrumb-outlet.component","ɵci":"./core/navigator/navigator.module","ɵcj":"./core/navigator/navigator-outlet.component","ɵck":"./core/navigator/navigator-node.component","ɵcl":"./core/login/login.module","ɵcm":"./core/login/login.component","ɵcn":"./core/login/recover-password.component","ɵco":"./core/login/change-password.component","ɵcp":"./core/login/credentials.component","ɵcq":"./core/login/totp-auth.component","ɵcr":"./core/login/password-strength-validator.directive","ɵcs":"./core/login/strength-validator-service","ɵct":"./core/tabs/tabs.module","ɵcu":"./core/tabs/tabs-outlet.component","ɵcv":"./core/tabs/tab.component","ɵcw":"./core/data-grid/column/cell-renderer.component","ɵcx":"./core/data-grid/column/filtering-form-renderer.component","ɵcy":"./core/data-grid/column/column.directive","ɵcz":"./core/list-group/list-item-footer.component","ɵda":"./core/list-group/list-item-action.component","ɵdb":"./core/list-group/list-item-collapse.component","ɵdc":"./core/list-group/list-item-icon.component","ɵdd":"./core/list-group/list-item-body.component","ɵde":"./core/list-group/list-item-checkbox.component","ɵdf":"./core/stepper/stepper-icon.directive","ɵdg":"./core/stepper/stepper-progress.component","ɵdh":"./core/select-modal/select-modal-filter.pipe","ɵdi":"./core/realtime/realtime.module","ɵdj":"./core/realtime/realtime-button.component","ɵdk":"./core/navigator/navigator-node-data","ɵdl":"./core/router/context-route.service","ɵdm":"./core/router/router-tabs.resolver","ɵdn":"./core/router/context-route.guard","ɵdo":"./core/quicklink/quick-link.component"},"importAs":"@c8y/ngx-components"}
|