@c8y/ngx-components 1006.6.36 → 1006.6.40
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-connectivity.umd.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +400 -131
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +2 -2
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.d.ts +90 -87
- package/c8y-ngx-components.metadata.json +1 -1
- package/connectivity/c8y-ngx-components-connectivity.metadata.json +1 -1
- package/context-dashboard/c8y-ngx-components-context-dashboard.metadata.json +1 -1
- package/core/authentication/new-password.component.d.ts +8 -6
- package/core/docs/guide-docs.component.d.ts +25 -3
- package/core/forms/validation-pattern.d.ts +1 -0
- package/core/i18n/force-html-translate.directive.d.ts +32 -0
- package/core/login/change-password.component.d.ts +1 -1
- package/core/login/login.service.d.ts +15 -2
- package/core/login/password-strength-validator.directive.d.ts +9 -0
- package/core/login/strength-validator-service.d.ts +7 -0
- package/core/user/user-edit.component.d.ts +4 -2
- package/esm2015/c8y-ngx-components.js +90 -87
- package/esm2015/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm2015/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm2015/core/authentication/new-password.component.js +15 -20
- package/esm2015/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm2015/core/docs/guide-docs.component.js +69 -4
- package/esm2015/core/forms/validation-pattern.js +2 -1
- package/esm2015/core/i18n/force-html-translate.directive.js +99 -0
- package/esm2015/core/i18n/i18n.module.js +5 -3
- package/esm2015/core/i18n/pattern-messages.data.js +2 -2
- package/esm2015/core/login/change-password.component.js +5 -5
- package/esm2015/core/login/credentials.component.js +2 -2
- package/esm2015/core/login/login.module.js +4 -2
- package/esm2015/core/login/login.service.js +40 -6
- package/esm2015/core/login/password-strength-validator.directive.js +32 -0
- package/esm2015/core/login/strength-validator-service.js +28 -0
- package/esm2015/core/user/user-edit.component.js +10 -5
- package/esm2015/repository/configuration/configuration-list.component.js +2 -2
- package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/esm5/c8y-ngx-components.js +90 -87
- package/esm5/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm5/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm5/core/authentication/new-password.component.js +21 -25
- package/esm5/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm5/core/docs/guide-docs.component.js +72 -4
- package/esm5/core/forms/validation-pattern.js +2 -1
- package/esm5/core/i18n/force-html-translate.directive.js +105 -0
- package/esm5/core/i18n/i18n.module.js +5 -3
- package/esm5/core/i18n/pattern-messages.data.js +2 -2
- package/esm5/core/login/change-password.component.js +5 -5
- package/esm5/core/login/credentials.component.js +2 -2
- package/esm5/core/login/login.module.js +4 -2
- package/esm5/core/login/login.service.js +43 -6
- package/esm5/core/login/password-strength-validator.directive.js +38 -0
- package/esm5/core/login/strength-validator-service.js +29 -0
- package/esm5/core/user/user-edit.component.js +19 -9
- package/esm5/repository/configuration/configuration-list.component.js +2 -2
- package/esm5/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/fesm2015/c8y-ngx-components-connectivity.js +1 -1
- package/fesm2015/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm2015/c8y-ngx-components-repository.js +1 -1
- package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +281 -40
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm5/c8y-ngx-components-repository.js +1 -1
- package/fesm5/c8y-ngx-components-repository.js.map +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm5/c8y-ngx-components.js +315 -49
- package/fesm5/c8y-ngx-components.js.map +1 -1
- package/locales/de.po +71 -60
- package/locales/es.po +120 -85
- package/locales/fr.po +107 -72
- package/locales/ja_JP.po +89 -78
- package/locales/ko.po +92 -57
- package/locales/locales.pot +9 -9
- package/locales/nl.po +95 -60
- package/locales/pl.po +88 -53
- package/locales/pt_BR.po +174 -138
- package/locales/ru.po +120 -85
- package/locales/zh_CN.po +87 -52
- package/package.json +2 -2
- package/repository/c8y-ngx-components-repository.metadata.json +1 -1
- package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/router"),require("rxjs"),require("rxjs/operators"),require("lodash-es"),require("@c8y/ngx-components/api"),require("@c8y/client"),require("@ngx-translate/core"),require("lodash"),require("@angular/common"),require("@angular/common/http"),require("!file-loader?name=assets/locales/angular/af-NA.js!@angular/common/locales/af-NA.js"),require("!file-loader?name=assets/locales/angular/af.js!@angular/common/locales/af.js"),require("!file-loader?name=assets/locales/angular/agq.js!@angular/common/locales/agq.js"),require("!file-loader?name=assets/locales/angular/ak.js!@angular/common/locales/ak.js"),require("!file-loader?name=assets/locales/angular/am.js!@angular/common/locales/am.js"),require("!file-loader?name=assets/locales/angular/ar-AE.js!@angular/common/locales/ar-AE.js"),require("!file-loader?name=assets/locales/angular/ar-BH.js!@angular/common/locales/ar-BH.js"),require("!file-loader?name=assets/locales/angular/ar-DJ.js!@angular/common/locales/ar-DJ.js"),require("!file-loader?name=assets/locales/angular/ar-DZ.js!@angular/common/locales/ar-DZ.js"),require("!file-loader?name=assets/locales/angular/ar-EG.js!@angular/common/locales/ar-EG.js"),require("!file-loader?name=assets/locales/angular/ar-EH.js!@angular/common/locales/ar-EH.js"),require("!file-loader?name=assets/locales/angular/ar-ER.js!@angular/common/locales/ar-ER.js"),require("!file-loader?name=assets/locales/angular/ar-IL.js!@angular/common/locales/ar-IL.js"),require("!file-loader?name=assets/locales/angular/ar-IQ.js!@angular/common/locales/ar-IQ.js"),require("!file-loader?name=assets/locales/angular/ar-JO.js!@angular/common/locales/ar-JO.js"),require("!file-loader?name=assets/locales/angular/ar-KM.js!@angular/common/locales/ar-KM.js"),require("!file-loader?name=assets/locales/angular/ar-KW.js!@angular/common/locales/ar-KW.js"),require("!file-loader?name=assets/locales/angular/ar-LB.js!@angular/common/locales/ar-LB.js"),require("!file-loader?name=assets/locales/angular/ar-LY.js!@angular/common/locales/ar-LY.js"),require("!file-loader?name=assets/locales/angular/ar-MA.js!@angular/common/locales/ar-MA.js"),require("!file-loader?name=assets/locales/angular/ar-MR.js!@angular/common/locales/ar-MR.js"),require("!file-loader?name=assets/locales/angular/ar-OM.js!@angular/common/locales/ar-OM.js"),require("!file-loader?name=assets/locales/angular/ar-PS.js!@angular/common/locales/ar-PS.js"),require("!file-loader?name=assets/locales/angular/ar-QA.js!@angular/common/locales/ar-QA.js"),require("!file-loader?name=assets/locales/angular/ar-SA.js!@angular/common/locales/ar-SA.js"),require("!file-loader?name=assets/locales/angular/ar-SD.js!@angular/common/locales/ar-SD.js"),require("!file-loader?name=assets/locales/angular/ar-SO.js!@angular/common/locales/ar-SO.js"),require("!file-loader?name=assets/locales/angular/ar-SS.js!@angular/common/locales/ar-SS.js"),require("!file-loader?name=assets/locales/angular/ar-SY.js!@angular/common/locales/ar-SY.js"),require("!file-loader?name=assets/locales/angular/ar-TD.js!@angular/common/locales/ar-TD.js"),require("!file-loader?name=assets/locales/angular/ar-TN.js!@angular/common/locales/ar-TN.js"),require("!file-loader?name=assets/locales/angular/ar-YE.js!@angular/common/locales/ar-YE.js"),require("!file-loader?name=assets/locales/angular/ar.js!@angular/common/locales/ar.js"),require("!file-loader?name=assets/locales/angular/as.js!@angular/common/locales/as.js"),require("!file-loader?name=assets/locales/angular/asa.js!@angular/common/locales/asa.js"),require("!file-loader?name=assets/locales/angular/ast.js!@angular/common/locales/ast.js"),require("!file-loader?name=assets/locales/angular/az-Cyrl.js!@angular/common/locales/az-Cyrl.js"),require("!file-loader?name=assets/locales/angular/az-Latn.js!@angular/common/locales/az-Latn.js"),require("!file-loader?name=assets/locales/angular/az.js!@angular/common/locales/az.js"),require("!file-loader?name=assets/locales/angular/bas.js!@angular/common/locales/bas.js"),require("!file-loader?name=assets/locales/angular/be.js!@angular/common/locales/be.js"),require("!file-loader?name=assets/locales/angular/bem.js!@angular/common/locales/bem.js"),require("!file-loader?name=assets/locales/angular/bez.js!@angular/common/locales/bez.js"),require("!file-loader?name=assets/locales/angular/bg.js!@angular/common/locales/bg.js"),require("!file-loader?name=assets/locales/angular/bm.js!@angular/common/locales/bm.js"),require("!file-loader?name=assets/locales/angular/bn-IN.js!@angular/common/locales/bn-IN.js"),require("!file-loader?name=assets/locales/angular/bn.js!@angular/common/locales/bn.js"),require("!file-loader?name=assets/locales/angular/bo-IN.js!@angular/common/locales/bo-IN.js"),require("!file-loader?name=assets/locales/angular/bo.js!@angular/common/locales/bo.js"),require("!file-loader?name=assets/locales/angular/br.js!@angular/common/locales/br.js"),require("!file-loader?name=assets/locales/angular/brx.js!@angular/common/locales/brx.js"),require("!file-loader?name=assets/locales/angular/bs-Cyrl.js!@angular/common/locales/bs-Cyrl.js"),require("!file-loader?name=assets/locales/angular/bs-Latn.js!@angular/common/locales/bs-Latn.js"),require("!file-loader?name=assets/locales/angular/bs.js!@angular/common/locales/bs.js"),require("!file-loader?name=assets/locales/angular/ca-AD.js!@angular/common/locales/ca-AD.js"),require("!file-loader?name=assets/locales/angular/ca-ES-VALENCIA.js!@angular/common/locales/ca-ES-VALENCIA.js"),require("!file-loader?name=assets/locales/angular/ca-FR.js!@angular/common/locales/ca-FR.js"),require("!file-loader?name=assets/locales/angular/ca-IT.js!@angular/common/locales/ca-IT.js"),require("!file-loader?name=assets/locales/angular/ca.js!@angular/common/locales/ca.js"),require("!file-loader?name=assets/locales/angular/ccp-IN.js!@angular/common/locales/ccp-IN.js"),require("!file-loader?name=assets/locales/angular/ccp.js!@angular/common/locales/ccp.js"),require("!file-loader?name=assets/locales/angular/ce.js!@angular/common/locales/ce.js"),require("!file-loader?name=assets/locales/angular/cgg.js!@angular/common/locales/cgg.js"),require("!file-loader?name=assets/locales/angular/chr.js!@angular/common/locales/chr.js"),require("!file-loader?name=assets/locales/angular/ckb-IR.js!@angular/common/locales/ckb-IR.js"),require("!file-loader?name=assets/locales/angular/ckb.js!@angular/common/locales/ckb.js"),require("!file-loader?name=assets/locales/angular/cs.js!@angular/common/locales/cs.js"),require("!file-loader?name=assets/locales/angular/cu.js!@angular/common/locales/cu.js"),require("!file-loader?name=assets/locales/angular/cy.js!@angular/common/locales/cy.js"),require("!file-loader?name=assets/locales/angular/da-GL.js!@angular/common/locales/da-GL.js"),require("!file-loader?name=assets/locales/angular/da.js!@angular/common/locales/da.js"),require("!file-loader?name=assets/locales/angular/dav.js!@angular/common/locales/dav.js"),require("!file-loader?name=assets/locales/angular/de-AT.js!@angular/common/locales/de-AT.js"),require("!file-loader?name=assets/locales/angular/de-BE.js!@angular/common/locales/de-BE.js"),require("!file-loader?name=assets/locales/angular/de-CH.js!@angular/common/locales/de-CH.js"),require("!file-loader?name=assets/locales/angular/de-IT.js!@angular/common/locales/de-IT.js"),require("!file-loader?name=assets/locales/angular/de-LI.js!@angular/common/locales/de-LI.js"),require("!file-loader?name=assets/locales/angular/de-LU.js!@angular/common/locales/de-LU.js"),require("!file-loader?name=assets/locales/angular/de.js!@angular/common/locales/de.js"),require("!file-loader?name=assets/locales/angular/dje.js!@angular/common/locales/dje.js"),require("!file-loader?name=assets/locales/angular/dsb.js!@angular/common/locales/dsb.js"),require("!file-loader?name=assets/locales/angular/dua.js!@angular/common/locales/dua.js"),require("!file-loader?name=assets/locales/angular/dyo.js!@angular/common/locales/dyo.js"),require("!file-loader?name=assets/locales/angular/dz.js!@angular/common/locales/dz.js"),require("!file-loader?name=assets/locales/angular/ebu.js!@angular/common/locales/ebu.js"),require("!file-loader?name=assets/locales/angular/ee-TG.js!@angular/common/locales/ee-TG.js"),require("!file-loader?name=assets/locales/angular/ee.js!@angular/common/locales/ee.js"),require("!file-loader?name=assets/locales/angular/el-CY.js!@angular/common/locales/el-CY.js"),require("!file-loader?name=assets/locales/angular/el.js!@angular/common/locales/el.js"),require("!file-loader?name=assets/locales/angular/en-001.js!@angular/common/locales/en-001.js"),require("!file-loader?name=assets/locales/angular/en-150.js!@angular/common/locales/en-150.js"),require("!file-loader?name=assets/locales/angular/en-AG.js!@angular/common/locales/en-AG.js"),require("!file-loader?name=assets/locales/angular/en-AI.js!@angular/common/locales/en-AI.js"),require("!file-loader?name=assets/locales/angular/en-AS.js!@angular/common/locales/en-AS.js"),require("!file-loader?name=assets/locales/angular/en-AT.js!@angular/common/locales/en-AT.js"),require("!file-loader?name=assets/locales/angular/en-AU.js!@angular/common/locales/en-AU.js"),require("!file-loader?name=assets/locales/angular/en-BB.js!@angular/common/locales/en-BB.js"),require("!file-loader?name=assets/locales/angular/en-BE.js!@angular/common/locales/en-BE.js"),require("!file-loader?name=assets/locales/angular/en-BI.js!@angular/common/locales/en-BI.js"),require("!file-loader?name=assets/locales/angular/en-BM.js!@angular/common/locales/en-BM.js"),require("!file-loader?name=assets/locales/angular/en-BS.js!@angular/common/locales/en-BS.js"),require("!file-loader?name=assets/locales/angular/en-BW.js!@angular/common/locales/en-BW.js"),require("!file-loader?name=assets/locales/angular/en-BZ.js!@angular/common/locales/en-BZ.js"),require("!file-loader?name=assets/locales/angular/en-CA.js!@angular/common/locales/en-CA.js"),require("!file-loader?name=assets/locales/angular/en-CC.js!@angular/common/locales/en-CC.js"),require("!file-loader?name=assets/locales/angular/en-CH.js!@angular/common/locales/en-CH.js"),require("!file-loader?name=assets/locales/angular/en-CK.js!@angular/common/locales/en-CK.js"),require("!file-loader?name=assets/locales/angular/en-CM.js!@angular/common/locales/en-CM.js"),require("!file-loader?name=assets/locales/angular/en-CX.js!@angular/common/locales/en-CX.js"),require("!file-loader?name=assets/locales/angular/en-CY.js!@angular/common/locales/en-CY.js"),require("!file-loader?name=assets/locales/angular/en-DE.js!@angular/common/locales/en-DE.js"),require("!file-loader?name=assets/locales/angular/en-DG.js!@angular/common/locales/en-DG.js"),require("!file-loader?name=assets/locales/angular/en-DK.js!@angular/common/locales/en-DK.js"),require("!file-loader?name=assets/locales/angular/en-DM.js!@angular/common/locales/en-DM.js"),require("!file-loader?name=assets/locales/angular/en-ER.js!@angular/common/locales/en-ER.js"),require("!file-loader?name=assets/locales/angular/en-FI.js!@angular/common/locales/en-FI.js"),require("!file-loader?name=assets/locales/angular/en-FJ.js!@angular/common/locales/en-FJ.js"),require("!file-loader?name=assets/locales/angular/en-FK.js!@angular/common/locales/en-FK.js"),require("!file-loader?name=assets/locales/angular/en-FM.js!@angular/common/locales/en-FM.js"),require("!file-loader?name=assets/locales/angular/en-GB.js!@angular/common/locales/en-GB.js"),require("!file-loader?name=assets/locales/angular/en-GD.js!@angular/common/locales/en-GD.js"),require("!file-loader?name=assets/locales/angular/en-GG.js!@angular/common/locales/en-GG.js"),require("!file-loader?name=assets/locales/angular/en-GH.js!@angular/common/locales/en-GH.js"),require("!file-loader?name=assets/locales/angular/en-GI.js!@angular/common/locales/en-GI.js"),require("!file-loader?name=assets/locales/angular/en-GM.js!@angular/common/locales/en-GM.js"),require("!file-loader?name=assets/locales/angular/en-GU.js!@angular/common/locales/en-GU.js"),require("!file-loader?name=assets/locales/angular/en-GY.js!@angular/common/locales/en-GY.js"),require("!file-loader?name=assets/locales/angular/en-HK.js!@angular/common/locales/en-HK.js"),require("!file-loader?name=assets/locales/angular/en-IE.js!@angular/common/locales/en-IE.js"),require("!file-loader?name=assets/locales/angular/en-IL.js!@angular/common/locales/en-IL.js"),require("!file-loader?name=assets/locales/angular/en-IM.js!@angular/common/locales/en-IM.js"),require("!file-loader?name=assets/locales/angular/en-IN.js!@angular/common/locales/en-IN.js"),require("!file-loader?name=assets/locales/angular/en-IO.js!@angular/common/locales/en-IO.js"),require("!file-loader?name=assets/locales/angular/en-JE.js!@angular/common/locales/en-JE.js"),require("!file-loader?name=assets/locales/angular/en-JM.js!@angular/common/locales/en-JM.js"),require("!file-loader?name=assets/locales/angular/en-KE.js!@angular/common/locales/en-KE.js"),require("!file-loader?name=assets/locales/angular/en-KI.js!@angular/common/locales/en-KI.js"),require("!file-loader?name=assets/locales/angular/en-KN.js!@angular/common/locales/en-KN.js"),require("!file-loader?name=assets/locales/angular/en-KY.js!@angular/common/locales/en-KY.js"),require("!file-loader?name=assets/locales/angular/en-LC.js!@angular/common/locales/en-LC.js"),require("!file-loader?name=assets/locales/angular/en-LR.js!@angular/common/locales/en-LR.js"),require("!file-loader?name=assets/locales/angular/en-LS.js!@angular/common/locales/en-LS.js"),require("!file-loader?name=assets/locales/angular/en-MG.js!@angular/common/locales/en-MG.js"),require("!file-loader?name=assets/locales/angular/en-MH.js!@angular/common/locales/en-MH.js"),require("!file-loader?name=assets/locales/angular/en-MO.js!@angular/common/locales/en-MO.js"),require("!file-loader?name=assets/locales/angular/en-MP.js!@angular/common/locales/en-MP.js"),require("!file-loader?name=assets/locales/angular/en-MS.js!@angular/common/locales/en-MS.js"),require("!file-loader?name=assets/locales/angular/en-MT.js!@angular/common/locales/en-MT.js"),require("!file-loader?name=assets/locales/angular/en-MU.js!@angular/common/locales/en-MU.js"),require("!file-loader?name=assets/locales/angular/en-MW.js!@angular/common/locales/en-MW.js"),require("!file-loader?name=assets/locales/angular/en-MY.js!@angular/common/locales/en-MY.js"),require("!file-loader?name=assets/locales/angular/en-NA.js!@angular/common/locales/en-NA.js"),require("!file-loader?name=assets/locales/angular/en-NF.js!@angular/common/locales/en-NF.js"),require("!file-loader?name=assets/locales/angular/en-NG.js!@angular/common/locales/en-NG.js"),require("!file-loader?name=assets/locales/angular/en-NL.js!@angular/common/locales/en-NL.js"),require("!file-loader?name=assets/locales/angular/en-NR.js!@angular/common/locales/en-NR.js"),require("!file-loader?name=assets/locales/angular/en-NU.js!@angular/common/locales/en-NU.js"),require("!file-loader?name=assets/locales/angular/en-NZ.js!@angular/common/locales/en-NZ.js"),require("!file-loader?name=assets/locales/angular/en-PG.js!@angular/common/locales/en-PG.js"),require("!file-loader?name=assets/locales/angular/en-PH.js!@angular/common/locales/en-PH.js"),require("!file-loader?name=assets/locales/angular/en-PK.js!@angular/common/locales/en-PK.js"),require("!file-loader?name=assets/locales/angular/en-PN.js!@angular/common/locales/en-PN.js"),require("!file-loader?name=assets/locales/angular/en-PR.js!@angular/common/locales/en-PR.js"),require("!file-loader?name=assets/locales/angular/en-PW.js!@angular/common/locales/en-PW.js"),require("!file-loader?name=assets/locales/angular/en-RW.js!@angular/common/locales/en-RW.js"),require("!file-loader?name=assets/locales/angular/en-SB.js!@angular/common/locales/en-SB.js"),require("!file-loader?name=assets/locales/angular/en-SC.js!@angular/common/locales/en-SC.js"),require("!file-loader?name=assets/locales/angular/en-SD.js!@angular/common/locales/en-SD.js"),require("!file-loader?name=assets/locales/angular/en-SE.js!@angular/common/locales/en-SE.js"),require("!file-loader?name=assets/locales/angular/en-SG.js!@angular/common/locales/en-SG.js"),require("!file-loader?name=assets/locales/angular/en-SH.js!@angular/common/locales/en-SH.js"),require("!file-loader?name=assets/locales/angular/en-SI.js!@angular/common/locales/en-SI.js"),require("!file-loader?name=assets/locales/angular/en-SL.js!@angular/common/locales/en-SL.js"),require("!file-loader?name=assets/locales/angular/en-SS.js!@angular/common/locales/en-SS.js"),require("!file-loader?name=assets/locales/angular/en-SX.js!@angular/common/locales/en-SX.js"),require("!file-loader?name=assets/locales/angular/en-SZ.js!@angular/common/locales/en-SZ.js"),require("!file-loader?name=assets/locales/angular/en-TC.js!@angular/common/locales/en-TC.js"),require("!file-loader?name=assets/locales/angular/en-TK.js!@angular/common/locales/en-TK.js"),require("!file-loader?name=assets/locales/angular/en-TO.js!@angular/common/locales/en-TO.js"),require("!file-loader?name=assets/locales/angular/en-TT.js!@angular/common/locales/en-TT.js"),require("!file-loader?name=assets/locales/angular/en-TV.js!@angular/common/locales/en-TV.js"),require("!file-loader?name=assets/locales/angular/en-TZ.js!@angular/common/locales/en-TZ.js"),require("!file-loader?name=assets/locales/angular/en-UG.js!@angular/common/locales/en-UG.js"),require("!file-loader?name=assets/locales/angular/en-UM.js!@angular/common/locales/en-UM.js"),require("!file-loader?name=assets/locales/angular/en-US-POSIX.js!@angular/common/locales/en-US-POSIX.js"),require("!file-loader?name=assets/locales/angular/en-VC.js!@angular/common/locales/en-VC.js"),require("!file-loader?name=assets/locales/angular/en-VG.js!@angular/common/locales/en-VG.js"),require("!file-loader?name=assets/locales/angular/en-VI.js!@angular/common/locales/en-VI.js"),require("!file-loader?name=assets/locales/angular/en-VU.js!@angular/common/locales/en-VU.js"),require("!file-loader?name=assets/locales/angular/en-WS.js!@angular/common/locales/en-WS.js"),require("!file-loader?name=assets/locales/angular/en-ZA.js!@angular/common/locales/en-ZA.js"),require("!file-loader?name=assets/locales/angular/en-ZM.js!@angular/common/locales/en-ZM.js"),require("!file-loader?name=assets/locales/angular/en-ZW.js!@angular/common/locales/en-ZW.js"),require("!file-loader?name=assets/locales/angular/en.js!@angular/common/locales/en.js"),require("!file-loader?name=assets/locales/angular/eo.js!@angular/common/locales/eo.js"),require("!file-loader?name=assets/locales/angular/es-419.js!@angular/common/locales/es-419.js"),require("!file-loader?name=assets/locales/angular/es-AR.js!@angular/common/locales/es-AR.js"),require("!file-loader?name=assets/locales/angular/es-BO.js!@angular/common/locales/es-BO.js"),require("!file-loader?name=assets/locales/angular/es-BR.js!@angular/common/locales/es-BR.js"),require("!file-loader?name=assets/locales/angular/es-BZ.js!@angular/common/locales/es-BZ.js"),require("!file-loader?name=assets/locales/angular/es-CL.js!@angular/common/locales/es-CL.js"),require("!file-loader?name=assets/locales/angular/es-CO.js!@angular/common/locales/es-CO.js"),require("!file-loader?name=assets/locales/angular/es-CR.js!@angular/common/locales/es-CR.js"),require("!file-loader?name=assets/locales/angular/es-CU.js!@angular/common/locales/es-CU.js"),require("!file-loader?name=assets/locales/angular/es-DO.js!@angular/common/locales/es-DO.js"),require("!file-loader?name=assets/locales/angular/es-EA.js!@angular/common/locales/es-EA.js"),require("!file-loader?name=assets/locales/angular/es-EC.js!@angular/common/locales/es-EC.js"),require("!file-loader?name=assets/locales/angular/es-GQ.js!@angular/common/locales/es-GQ.js"),require("!file-loader?name=assets/locales/angular/es-GT.js!@angular/common/locales/es-GT.js"),require("!file-loader?name=assets/locales/angular/es-HN.js!@angular/common/locales/es-HN.js"),require("!file-loader?name=assets/locales/angular/es-IC.js!@angular/common/locales/es-IC.js"),require("!file-loader?name=assets/locales/angular/es-MX.js!@angular/common/locales/es-MX.js"),require("!file-loader?name=assets/locales/angular/es-NI.js!@angular/common/locales/es-NI.js"),require("!file-loader?name=assets/locales/angular/es-PA.js!@angular/common/locales/es-PA.js"),require("!file-loader?name=assets/locales/angular/es-PE.js!@angular/common/locales/es-PE.js"),require("!file-loader?name=assets/locales/angular/es-PH.js!@angular/common/locales/es-PH.js"),require("!file-loader?name=assets/locales/angular/es-PR.js!@angular/common/locales/es-PR.js"),require("!file-loader?name=assets/locales/angular/es-PY.js!@angular/common/locales/es-PY.js"),require("!file-loader?name=assets/locales/angular/es-SV.js!@angular/common/locales/es-SV.js"),require("!file-loader?name=assets/locales/angular/es-US.js!@angular/common/locales/es-US.js"),require("!file-loader?name=assets/locales/angular/es-UY.js!@angular/common/locales/es-UY.js"),require("!file-loader?name=assets/locales/angular/es-VE.js!@angular/common/locales/es-VE.js"),require("!file-loader?name=assets/locales/angular/es.js!@angular/common/locales/es.js"),require("!file-loader?name=assets/locales/angular/et.js!@angular/common/locales/et.js"),require("!file-loader?name=assets/locales/angular/eu.js!@angular/common/locales/eu.js"),require("!file-loader?name=assets/locales/angular/ewo.js!@angular/common/locales/ewo.js"),require("!file-loader?name=assets/locales/angular/fa-AF.js!@angular/common/locales/fa-AF.js"),require("!file-loader?name=assets/locales/angular/fa.js!@angular/common/locales/fa.js"),require("!file-loader?name=assets/locales/angular/ff-CM.js!@angular/common/locales/ff-CM.js"),require("!file-loader?name=assets/locales/angular/ff-GN.js!@angular/common/locales/ff-GN.js"),require("!file-loader?name=assets/locales/angular/ff-MR.js!@angular/common/locales/ff-MR.js"),require("!file-loader?name=assets/locales/angular/ff.js!@angular/common/locales/ff.js"),require("!file-loader?name=assets/locales/angular/fi.js!@angular/common/locales/fi.js"),require("!file-loader?name=assets/locales/angular/fil.js!@angular/common/locales/fil.js"),require("!file-loader?name=assets/locales/angular/fo-DK.js!@angular/common/locales/fo-DK.js"),require("!file-loader?name=assets/locales/angular/fo.js!@angular/common/locales/fo.js"),require("!file-loader?name=assets/locales/angular/fr-BE.js!@angular/common/locales/fr-BE.js"),require("!file-loader?name=assets/locales/angular/fr-BF.js!@angular/common/locales/fr-BF.js"),require("!file-loader?name=assets/locales/angular/fr-BI.js!@angular/common/locales/fr-BI.js"),require("!file-loader?name=assets/locales/angular/fr-BJ.js!@angular/common/locales/fr-BJ.js"),require("!file-loader?name=assets/locales/angular/fr-BL.js!@angular/common/locales/fr-BL.js"),require("!file-loader?name=assets/locales/angular/fr-CA.js!@angular/common/locales/fr-CA.js"),require("!file-loader?name=assets/locales/angular/fr-CD.js!@angular/common/locales/fr-CD.js"),require("!file-loader?name=assets/locales/angular/fr-CF.js!@angular/common/locales/fr-CF.js"),require("!file-loader?name=assets/locales/angular/fr-CG.js!@angular/common/locales/fr-CG.js"),require("!file-loader?name=assets/locales/angular/fr-CH.js!@angular/common/locales/fr-CH.js"),require("!file-loader?name=assets/locales/angular/fr-CI.js!@angular/common/locales/fr-CI.js"),require("!file-loader?name=assets/locales/angular/fr-CM.js!@angular/common/locales/fr-CM.js"),require("!file-loader?name=assets/locales/angular/fr-DJ.js!@angular/common/locales/fr-DJ.js"),require("!file-loader?name=assets/locales/angular/fr-DZ.js!@angular/common/locales/fr-DZ.js"),require("!file-loader?name=assets/locales/angular/fr-GA.js!@angular/common/locales/fr-GA.js"),require("!file-loader?name=assets/locales/angular/fr-GF.js!@angular/common/locales/fr-GF.js"),require("!file-loader?name=assets/locales/angular/fr-GN.js!@angular/common/locales/fr-GN.js"),require("!file-loader?name=assets/locales/angular/fr-GP.js!@angular/common/locales/fr-GP.js"),require("!file-loader?name=assets/locales/angular/fr-GQ.js!@angular/common/locales/fr-GQ.js"),require("!file-loader?name=assets/locales/angular/fr-HT.js!@angular/common/locales/fr-HT.js"),require("!file-loader?name=assets/locales/angular/fr-KM.js!@angular/common/locales/fr-KM.js"),require("!file-loader?name=assets/locales/angular/fr-LU.js!@angular/common/locales/fr-LU.js"),require("!file-loader?name=assets/locales/angular/fr-MA.js!@angular/common/locales/fr-MA.js"),require("!file-loader?name=assets/locales/angular/fr-MC.js!@angular/common/locales/fr-MC.js"),require("!file-loader?name=assets/locales/angular/fr-MF.js!@angular/common/locales/fr-MF.js"),require("!file-loader?name=assets/locales/angular/fr-MG.js!@angular/common/locales/fr-MG.js"),require("!file-loader?name=assets/locales/angular/fr-ML.js!@angular/common/locales/fr-ML.js"),require("!file-loader?name=assets/locales/angular/fr-MQ.js!@angular/common/locales/fr-MQ.js"),require("!file-loader?name=assets/locales/angular/fr-MR.js!@angular/common/locales/fr-MR.js"),require("!file-loader?name=assets/locales/angular/fr-MU.js!@angular/common/locales/fr-MU.js"),require("!file-loader?name=assets/locales/angular/fr-NC.js!@angular/common/locales/fr-NC.js"),require("!file-loader?name=assets/locales/angular/fr-NE.js!@angular/common/locales/fr-NE.js"),require("!file-loader?name=assets/locales/angular/fr-PF.js!@angular/common/locales/fr-PF.js"),require("!file-loader?name=assets/locales/angular/fr-PM.js!@angular/common/locales/fr-PM.js"),require("!file-loader?name=assets/locales/angular/fr-RE.js!@angular/common/locales/fr-RE.js"),require("!file-loader?name=assets/locales/angular/fr-RW.js!@angular/common/locales/fr-RW.js"),require("!file-loader?name=assets/locales/angular/fr-SC.js!@angular/common/locales/fr-SC.js"),require("!file-loader?name=assets/locales/angular/fr-SN.js!@angular/common/locales/fr-SN.js"),require("!file-loader?name=assets/locales/angular/fr-SY.js!@angular/common/locales/fr-SY.js"),require("!file-loader?name=assets/locales/angular/fr-TD.js!@angular/common/locales/fr-TD.js"),require("!file-loader?name=assets/locales/angular/fr-TG.js!@angular/common/locales/fr-TG.js"),require("!file-loader?name=assets/locales/angular/fr-TN.js!@angular/common/locales/fr-TN.js"),require("!file-loader?name=assets/locales/angular/fr-VU.js!@angular/common/locales/fr-VU.js"),require("!file-loader?name=assets/locales/angular/fr-WF.js!@angular/common/locales/fr-WF.js"),require("!file-loader?name=assets/locales/angular/fr-YT.js!@angular/common/locales/fr-YT.js"),require("!file-loader?name=assets/locales/angular/fr.js!@angular/common/locales/fr.js"),require("!file-loader?name=assets/locales/angular/fur.js!@angular/common/locales/fur.js"),require("!file-loader?name=assets/locales/angular/fy.js!@angular/common/locales/fy.js"),require("!file-loader?name=assets/locales/angular/ga.js!@angular/common/locales/ga.js"),require("!file-loader?name=assets/locales/angular/gd.js!@angular/common/locales/gd.js"),require("!file-loader?name=assets/locales/angular/gl.js!@angular/common/locales/gl.js"),require("!file-loader?name=assets/locales/angular/gsw-FR.js!@angular/common/locales/gsw-FR.js"),require("!file-loader?name=assets/locales/angular/gsw-LI.js!@angular/common/locales/gsw-LI.js"),require("!file-loader?name=assets/locales/angular/gsw.js!@angular/common/locales/gsw.js"),require("!file-loader?name=assets/locales/angular/gu.js!@angular/common/locales/gu.js"),require("!file-loader?name=assets/locales/angular/guz.js!@angular/common/locales/guz.js"),require("!file-loader?name=assets/locales/angular/gv.js!@angular/common/locales/gv.js"),require("!file-loader?name=assets/locales/angular/ha-GH.js!@angular/common/locales/ha-GH.js"),require("!file-loader?name=assets/locales/angular/ha-NE.js!@angular/common/locales/ha-NE.js"),require("!file-loader?name=assets/locales/angular/ha.js!@angular/common/locales/ha.js"),require("!file-loader?name=assets/locales/angular/haw.js!@angular/common/locales/haw.js"),require("!file-loader?name=assets/locales/angular/he.js!@angular/common/locales/he.js"),require("!file-loader?name=assets/locales/angular/hi.js!@angular/common/locales/hi.js"),require("!file-loader?name=assets/locales/angular/hr-BA.js!@angular/common/locales/hr-BA.js"),require("!file-loader?name=assets/locales/angular/hr.js!@angular/common/locales/hr.js"),require("!file-loader?name=assets/locales/angular/hsb.js!@angular/common/locales/hsb.js"),require("!file-loader?name=assets/locales/angular/hu.js!@angular/common/locales/hu.js"),require("!file-loader?name=assets/locales/angular/hy.js!@angular/common/locales/hy.js"),require("!file-loader?name=assets/locales/angular/id.js!@angular/common/locales/id.js"),require("!file-loader?name=assets/locales/angular/ig.js!@angular/common/locales/ig.js"),require("!file-loader?name=assets/locales/angular/ii.js!@angular/common/locales/ii.js"),require("!file-loader?name=assets/locales/angular/is.js!@angular/common/locales/is.js"),require("!file-loader?name=assets/locales/angular/it-CH.js!@angular/common/locales/it-CH.js"),require("!file-loader?name=assets/locales/angular/it-SM.js!@angular/common/locales/it-SM.js"),require("!file-loader?name=assets/locales/angular/it-VA.js!@angular/common/locales/it-VA.js"),require("!file-loader?name=assets/locales/angular/it.js!@angular/common/locales/it.js"),require("!file-loader?name=assets/locales/angular/ja.js!@angular/common/locales/ja.js"),require("!file-loader?name=assets/locales/angular/jgo.js!@angular/common/locales/jgo.js"),require("!file-loader?name=assets/locales/angular/jmc.js!@angular/common/locales/jmc.js"),require("!file-loader?name=assets/locales/angular/ka.js!@angular/common/locales/ka.js"),require("!file-loader?name=assets/locales/angular/kab.js!@angular/common/locales/kab.js"),require("!file-loader?name=assets/locales/angular/kam.js!@angular/common/locales/kam.js"),require("!file-loader?name=assets/locales/angular/kde.js!@angular/common/locales/kde.js"),require("!file-loader?name=assets/locales/angular/kea.js!@angular/common/locales/kea.js"),require("!file-loader?name=assets/locales/angular/khq.js!@angular/common/locales/khq.js"),require("!file-loader?name=assets/locales/angular/ki.js!@angular/common/locales/ki.js"),require("!file-loader?name=assets/locales/angular/kk.js!@angular/common/locales/kk.js"),require("!file-loader?name=assets/locales/angular/kkj.js!@angular/common/locales/kkj.js"),require("!file-loader?name=assets/locales/angular/kl.js!@angular/common/locales/kl.js"),require("!file-loader?name=assets/locales/angular/kln.js!@angular/common/locales/kln.js"),require("!file-loader?name=assets/locales/angular/km.js!@angular/common/locales/km.js"),require("!file-loader?name=assets/locales/angular/kn.js!@angular/common/locales/kn.js"),require("!file-loader?name=assets/locales/angular/ko-KP.js!@angular/common/locales/ko-KP.js"),require("!file-loader?name=assets/locales/angular/ko.js!@angular/common/locales/ko.js"),require("!file-loader?name=assets/locales/angular/kok.js!@angular/common/locales/kok.js"),require("!file-loader?name=assets/locales/angular/ks.js!@angular/common/locales/ks.js"),require("!file-loader?name=assets/locales/angular/ksb.js!@angular/common/locales/ksb.js"),require("!file-loader?name=assets/locales/angular/ksf.js!@angular/common/locales/ksf.js"),require("!file-loader?name=assets/locales/angular/ksh.js!@angular/common/locales/ksh.js"),require("!file-loader?name=assets/locales/angular/kw.js!@angular/common/locales/kw.js"),require("!file-loader?name=assets/locales/angular/ky.js!@angular/common/locales/ky.js"),require("!file-loader?name=assets/locales/angular/lag.js!@angular/common/locales/lag.js"),require("!file-loader?name=assets/locales/angular/lb.js!@angular/common/locales/lb.js"),require("!file-loader?name=assets/locales/angular/lg.js!@angular/common/locales/lg.js"),require("!file-loader?name=assets/locales/angular/lkt.js!@angular/common/locales/lkt.js"),require("!file-loader?name=assets/locales/angular/ln-AO.js!@angular/common/locales/ln-AO.js"),require("!file-loader?name=assets/locales/angular/ln-CF.js!@angular/common/locales/ln-CF.js"),require("!file-loader?name=assets/locales/angular/ln-CG.js!@angular/common/locales/ln-CG.js"),require("!file-loader?name=assets/locales/angular/ln.js!@angular/common/locales/ln.js"),require("!file-loader?name=assets/locales/angular/lo.js!@angular/common/locales/lo.js"),require("!file-loader?name=assets/locales/angular/lrc-IQ.js!@angular/common/locales/lrc-IQ.js"),require("!file-loader?name=assets/locales/angular/lrc.js!@angular/common/locales/lrc.js"),require("!file-loader?name=assets/locales/angular/lt.js!@angular/common/locales/lt.js"),require("!file-loader?name=assets/locales/angular/lu.js!@angular/common/locales/lu.js"),require("!file-loader?name=assets/locales/angular/luo.js!@angular/common/locales/luo.js"),require("!file-loader?name=assets/locales/angular/luy.js!@angular/common/locales/luy.js"),require("!file-loader?name=assets/locales/angular/lv.js!@angular/common/locales/lv.js"),require("!file-loader?name=assets/locales/angular/mas-TZ.js!@angular/common/locales/mas-TZ.js"),require("!file-loader?name=assets/locales/angular/mas.js!@angular/common/locales/mas.js"),require("!file-loader?name=assets/locales/angular/mer.js!@angular/common/locales/mer.js"),require("!file-loader?name=assets/locales/angular/mfe.js!@angular/common/locales/mfe.js"),require("!file-loader?name=assets/locales/angular/mg.js!@angular/common/locales/mg.js"),require("!file-loader?name=assets/locales/angular/mgh.js!@angular/common/locales/mgh.js"),require("!file-loader?name=assets/locales/angular/mgo.js!@angular/common/locales/mgo.js"),require("!file-loader?name=assets/locales/angular/mk.js!@angular/common/locales/mk.js"),require("!file-loader?name=assets/locales/angular/ml.js!@angular/common/locales/ml.js"),require("!file-loader?name=assets/locales/angular/mn.js!@angular/common/locales/mn.js"),require("!file-loader?name=assets/locales/angular/mr.js!@angular/common/locales/mr.js"),require("!file-loader?name=assets/locales/angular/ms-BN.js!@angular/common/locales/ms-BN.js"),require("!file-loader?name=assets/locales/angular/ms-SG.js!@angular/common/locales/ms-SG.js"),require("!file-loader?name=assets/locales/angular/ms.js!@angular/common/locales/ms.js"),require("!file-loader?name=assets/locales/angular/mt.js!@angular/common/locales/mt.js"),require("!file-loader?name=assets/locales/angular/mua.js!@angular/common/locales/mua.js"),require("!file-loader?name=assets/locales/angular/my.js!@angular/common/locales/my.js"),require("!file-loader?name=assets/locales/angular/mzn.js!@angular/common/locales/mzn.js"),require("!file-loader?name=assets/locales/angular/naq.js!@angular/common/locales/naq.js"),require("!file-loader?name=assets/locales/angular/nb-SJ.js!@angular/common/locales/nb-SJ.js"),require("!file-loader?name=assets/locales/angular/nb.js!@angular/common/locales/nb.js"),require("!file-loader?name=assets/locales/angular/nd.js!@angular/common/locales/nd.js"),require("!file-loader?name=assets/locales/angular/nds-NL.js!@angular/common/locales/nds-NL.js"),require("!file-loader?name=assets/locales/angular/nds.js!@angular/common/locales/nds.js"),require("!file-loader?name=assets/locales/angular/ne-IN.js!@angular/common/locales/ne-IN.js"),require("!file-loader?name=assets/locales/angular/ne.js!@angular/common/locales/ne.js"),require("!file-loader?name=assets/locales/angular/nl-AW.js!@angular/common/locales/nl-AW.js"),require("!file-loader?name=assets/locales/angular/nl-BE.js!@angular/common/locales/nl-BE.js"),require("!file-loader?name=assets/locales/angular/nl-BQ.js!@angular/common/locales/nl-BQ.js"),require("!file-loader?name=assets/locales/angular/nl-CW.js!@angular/common/locales/nl-CW.js"),require("!file-loader?name=assets/locales/angular/nl-SR.js!@angular/common/locales/nl-SR.js"),require("!file-loader?name=assets/locales/angular/nl-SX.js!@angular/common/locales/nl-SX.js"),require("!file-loader?name=assets/locales/angular/nl.js!@angular/common/locales/nl.js"),require("!file-loader?name=assets/locales/angular/nmg.js!@angular/common/locales/nmg.js"),require("!file-loader?name=assets/locales/angular/nn.js!@angular/common/locales/nn.js"),require("!file-loader?name=assets/locales/angular/nnh.js!@angular/common/locales/nnh.js"),require("!file-loader?name=assets/locales/angular/nus.js!@angular/common/locales/nus.js"),require("!file-loader?name=assets/locales/angular/nyn.js!@angular/common/locales/nyn.js"),require("!file-loader?name=assets/locales/angular/om-KE.js!@angular/common/locales/om-KE.js"),require("!file-loader?name=assets/locales/angular/om.js!@angular/common/locales/om.js"),require("!file-loader?name=assets/locales/angular/or.js!@angular/common/locales/or.js"),require("!file-loader?name=assets/locales/angular/os-RU.js!@angular/common/locales/os-RU.js"),require("!file-loader?name=assets/locales/angular/os.js!@angular/common/locales/os.js"),require("!file-loader?name=assets/locales/angular/pa-Arab.js!@angular/common/locales/pa-Arab.js"),require("!file-loader?name=assets/locales/angular/pa-Guru.js!@angular/common/locales/pa-Guru.js"),require("!file-loader?name=assets/locales/angular/pa.js!@angular/common/locales/pa.js"),require("!file-loader?name=assets/locales/angular/pl.js!@angular/common/locales/pl.js"),require("!file-loader?name=assets/locales/angular/prg.js!@angular/common/locales/prg.js"),require("!file-loader?name=assets/locales/angular/ps.js!@angular/common/locales/ps.js"),require("!file-loader?name=assets/locales/angular/pt-AO.js!@angular/common/locales/pt-AO.js"),require("!file-loader?name=assets/locales/angular/pt-CH.js!@angular/common/locales/pt-CH.js"),require("!file-loader?name=assets/locales/angular/pt-CV.js!@angular/common/locales/pt-CV.js"),require("!file-loader?name=assets/locales/angular/pt-GQ.js!@angular/common/locales/pt-GQ.js"),require("!file-loader?name=assets/locales/angular/pt-GW.js!@angular/common/locales/pt-GW.js"),require("!file-loader?name=assets/locales/angular/pt-LU.js!@angular/common/locales/pt-LU.js"),require("!file-loader?name=assets/locales/angular/pt-MO.js!@angular/common/locales/pt-MO.js"),require("!file-loader?name=assets/locales/angular/pt-MZ.js!@angular/common/locales/pt-MZ.js"),require("!file-loader?name=assets/locales/angular/pt-PT.js!@angular/common/locales/pt-PT.js"),require("!file-loader?name=assets/locales/angular/pt-ST.js!@angular/common/locales/pt-ST.js"),require("!file-loader?name=assets/locales/angular/pt-TL.js!@angular/common/locales/pt-TL.js"),require("!file-loader?name=assets/locales/angular/pt.js!@angular/common/locales/pt.js"),require("!file-loader?name=assets/locales/angular/qu-BO.js!@angular/common/locales/qu-BO.js"),require("!file-loader?name=assets/locales/angular/qu-EC.js!@angular/common/locales/qu-EC.js"),require("!file-loader?name=assets/locales/angular/qu.js!@angular/common/locales/qu.js"),require("!file-loader?name=assets/locales/angular/rm.js!@angular/common/locales/rm.js"),require("!file-loader?name=assets/locales/angular/rn.js!@angular/common/locales/rn.js"),require("!file-loader?name=assets/locales/angular/ro-MD.js!@angular/common/locales/ro-MD.js"),require("!file-loader?name=assets/locales/angular/ro.js!@angular/common/locales/ro.js"),require("!file-loader?name=assets/locales/angular/rof.js!@angular/common/locales/rof.js"),require("!file-loader?name=assets/locales/angular/root.js!@angular/common/locales/root.js"),require("!file-loader?name=assets/locales/angular/ru-BY.js!@angular/common/locales/ru-BY.js"),require("!file-loader?name=assets/locales/angular/ru-KG.js!@angular/common/locales/ru-KG.js"),require("!file-loader?name=assets/locales/angular/ru-KZ.js!@angular/common/locales/ru-KZ.js"),require("!file-loader?name=assets/locales/angular/ru-MD.js!@angular/common/locales/ru-MD.js"),require("!file-loader?name=assets/locales/angular/ru-UA.js!@angular/common/locales/ru-UA.js"),require("!file-loader?name=assets/locales/angular/ru.js!@angular/common/locales/ru.js"),require("!file-loader?name=assets/locales/angular/rw.js!@angular/common/locales/rw.js"),require("!file-loader?name=assets/locales/angular/rwk.js!@angular/common/locales/rwk.js"),require("!file-loader?name=assets/locales/angular/sah.js!@angular/common/locales/sah.js"),require("!file-loader?name=assets/locales/angular/saq.js!@angular/common/locales/saq.js"),require("!file-loader?name=assets/locales/angular/sbp.js!@angular/common/locales/sbp.js"),require("!file-loader?name=assets/locales/angular/sd.js!@angular/common/locales/sd.js"),require("!file-loader?name=assets/locales/angular/se-FI.js!@angular/common/locales/se-FI.js"),require("!file-loader?name=assets/locales/angular/se-SE.js!@angular/common/locales/se-SE.js"),require("!file-loader?name=assets/locales/angular/se.js!@angular/common/locales/se.js"),require("!file-loader?name=assets/locales/angular/seh.js!@angular/common/locales/seh.js"),require("!file-loader?name=assets/locales/angular/ses.js!@angular/common/locales/ses.js"),require("!file-loader?name=assets/locales/angular/sg.js!@angular/common/locales/sg.js"),require("!file-loader?name=assets/locales/angular/shi-Latn.js!@angular/common/locales/shi-Latn.js"),require("!file-loader?name=assets/locales/angular/shi-Tfng.js!@angular/common/locales/shi-Tfng.js"),require("!file-loader?name=assets/locales/angular/shi.js!@angular/common/locales/shi.js"),require("!file-loader?name=assets/locales/angular/si.js!@angular/common/locales/si.js"),require("!file-loader?name=assets/locales/angular/sk.js!@angular/common/locales/sk.js"),require("!file-loader?name=assets/locales/angular/sl.js!@angular/common/locales/sl.js"),require("!file-loader?name=assets/locales/angular/smn.js!@angular/common/locales/smn.js"),require("!file-loader?name=assets/locales/angular/sn.js!@angular/common/locales/sn.js"),require("!file-loader?name=assets/locales/angular/so-DJ.js!@angular/common/locales/so-DJ.js"),require("!file-loader?name=assets/locales/angular/so-ET.js!@angular/common/locales/so-ET.js"),require("!file-loader?name=assets/locales/angular/so-KE.js!@angular/common/locales/so-KE.js"),require("!file-loader?name=assets/locales/angular/so.js!@angular/common/locales/so.js"),require("!file-loader?name=assets/locales/angular/sq-MK.js!@angular/common/locales/sq-MK.js"),require("!file-loader?name=assets/locales/angular/sq-XK.js!@angular/common/locales/sq-XK.js"),require("!file-loader?name=assets/locales/angular/sq.js!@angular/common/locales/sq.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl-BA.js!@angular/common/locales/sr-Cyrl-BA.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl-ME.js!@angular/common/locales/sr-Cyrl-ME.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl-XK.js!@angular/common/locales/sr-Cyrl-XK.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl.js!@angular/common/locales/sr-Cyrl.js"),require("!file-loader?name=assets/locales/angular/sr-Latn-BA.js!@angular/common/locales/sr-Latn-BA.js"),require("!file-loader?name=assets/locales/angular/sr-Latn-ME.js!@angular/common/locales/sr-Latn-ME.js"),require("!file-loader?name=assets/locales/angular/sr-Latn-XK.js!@angular/common/locales/sr-Latn-XK.js"),require("!file-loader?name=assets/locales/angular/sr-Latn.js!@angular/common/locales/sr-Latn.js"),require("!file-loader?name=assets/locales/angular/sr.js!@angular/common/locales/sr.js"),require("!file-loader?name=assets/locales/angular/sv-AX.js!@angular/common/locales/sv-AX.js"),require("!file-loader?name=assets/locales/angular/sv-FI.js!@angular/common/locales/sv-FI.js"),require("!file-loader?name=assets/locales/angular/sv.js!@angular/common/locales/sv.js"),require("!file-loader?name=assets/locales/angular/sw-CD.js!@angular/common/locales/sw-CD.js"),require("!file-loader?name=assets/locales/angular/sw-KE.js!@angular/common/locales/sw-KE.js"),require("!file-loader?name=assets/locales/angular/sw-UG.js!@angular/common/locales/sw-UG.js"),require("!file-loader?name=assets/locales/angular/sw.js!@angular/common/locales/sw.js"),require("!file-loader?name=assets/locales/angular/ta-LK.js!@angular/common/locales/ta-LK.js"),require("!file-loader?name=assets/locales/angular/ta-MY.js!@angular/common/locales/ta-MY.js"),require("!file-loader?name=assets/locales/angular/ta-SG.js!@angular/common/locales/ta-SG.js"),require("!file-loader?name=assets/locales/angular/ta.js!@angular/common/locales/ta.js"),require("!file-loader?name=assets/locales/angular/te.js!@angular/common/locales/te.js"),require("!file-loader?name=assets/locales/angular/teo-KE.js!@angular/common/locales/teo-KE.js"),require("!file-loader?name=assets/locales/angular/teo.js!@angular/common/locales/teo.js"),require("!file-loader?name=assets/locales/angular/tg.js!@angular/common/locales/tg.js"),require("!file-loader?name=assets/locales/angular/th.js!@angular/common/locales/th.js"),require("!file-loader?name=assets/locales/angular/ti-ER.js!@angular/common/locales/ti-ER.js"),require("!file-loader?name=assets/locales/angular/ti.js!@angular/common/locales/ti.js"),require("!file-loader?name=assets/locales/angular/tk.js!@angular/common/locales/tk.js"),require("!file-loader?name=assets/locales/angular/to.js!@angular/common/locales/to.js"),require("!file-loader?name=assets/locales/angular/tr-CY.js!@angular/common/locales/tr-CY.js"),require("!file-loader?name=assets/locales/angular/tr.js!@angular/common/locales/tr.js"),require("!file-loader?name=assets/locales/angular/tt.js!@angular/common/locales/tt.js"),require("!file-loader?name=assets/locales/angular/twq.js!@angular/common/locales/twq.js"),require("!file-loader?name=assets/locales/angular/tzm.js!@angular/common/locales/tzm.js"),require("!file-loader?name=assets/locales/angular/ug.js!@angular/common/locales/ug.js"),require("!file-loader?name=assets/locales/angular/uk.js!@angular/common/locales/uk.js"),require("!file-loader?name=assets/locales/angular/ur-IN.js!@angular/common/locales/ur-IN.js"),require("!file-loader?name=assets/locales/angular/ur.js!@angular/common/locales/ur.js"),require("!file-loader?name=assets/locales/angular/uz-Arab.js!@angular/common/locales/uz-Arab.js"),require("!file-loader?name=assets/locales/angular/uz-Cyrl.js!@angular/common/locales/uz-Cyrl.js"),require("!file-loader?name=assets/locales/angular/uz-Latn.js!@angular/common/locales/uz-Latn.js"),require("!file-loader?name=assets/locales/angular/uz.js!@angular/common/locales/uz.js"),require("!file-loader?name=assets/locales/angular/vai-Latn.js!@angular/common/locales/vai-Latn.js"),require("!file-loader?name=assets/locales/angular/vai-Vaii.js!@angular/common/locales/vai-Vaii.js"),require("!file-loader?name=assets/locales/angular/vai.js!@angular/common/locales/vai.js"),require("!file-loader?name=assets/locales/angular/vi.js!@angular/common/locales/vi.js"),require("!file-loader?name=assets/locales/angular/vo.js!@angular/common/locales/vo.js"),require("!file-loader?name=assets/locales/angular/vun.js!@angular/common/locales/vun.js"),require("!file-loader?name=assets/locales/angular/wae.js!@angular/common/locales/wae.js"),require("!file-loader?name=assets/locales/angular/wo.js!@angular/common/locales/wo.js"),require("!file-loader?name=assets/locales/angular/xog.js!@angular/common/locales/xog.js"),require("!file-loader?name=assets/locales/angular/yav.js!@angular/common/locales/yav.js"),require("!file-loader?name=assets/locales/angular/yi.js!@angular/common/locales/yi.js"),require("!file-loader?name=assets/locales/angular/yo-BJ.js!@angular/common/locales/yo-BJ.js"),require("!file-loader?name=assets/locales/angular/yo.js!@angular/common/locales/yo.js"),require("!file-loader?name=assets/locales/angular/yue-Hans.js!@angular/common/locales/yue-Hans.js"),require("!file-loader?name=assets/locales/angular/yue-Hant.js!@angular/common/locales/yue-Hant.js"),require("!file-loader?name=assets/locales/angular/yue.js!@angular/common/locales/yue.js"),require("!file-loader?name=assets/locales/angular/zgh.js!@angular/common/locales/zgh.js"),require("!file-loader?name=assets/locales/angular/zh-Hans-HK.js!@angular/common/locales/zh-Hans-HK.js"),require("!file-loader?name=assets/locales/angular/zh-Hans-MO.js!@angular/common/locales/zh-Hans-MO.js"),require("!file-loader?name=assets/locales/angular/zh-Hans-SG.js!@angular/common/locales/zh-Hans-SG.js"),require("!file-loader?name=assets/locales/angular/zh-Hans.js!@angular/common/locales/zh-Hans.js"),require("!file-loader?name=assets/locales/angular/zh-Hant-HK.js!@angular/common/locales/zh-Hant-HK.js"),require("!file-loader?name=assets/locales/angular/zh-Hant-MO.js!@angular/common/locales/zh-Hant-MO.js"),require("!file-loader?name=assets/locales/angular/zh-Hant.js!@angular/common/locales/zh-Hant.js"),require("!file-loader?name=assets/locales/angular/zh.js!@angular/common/locales/zh.js"),require("!file-loader?name=assets/locales/angular/zu.js!@angular/common/locales/zu.js"),require("ngx-bootstrap/collapse"),require("ngx-bootstrap/dropdown"),require("ngx-bootstrap/tooltip"),require("@angular/forms"),require("@angular/platform-browser"),require("ngx-bootstrap/modal"),require("ngx-bootstrap/popover"),require("libphonenumber-js/max"),require("@angular/upgrade/static"),require("angularx-qrcode"),require("@angular/cdk/table"),require("@angular/cdk/drag-drop"),require("ngx-bootstrap/pagination"),require("@angular/cdk/stepper")):"function"==typeof define&&define.amd?define("@c8y/ngx-components",["exports","@angular/core","@angular/router","rxjs","rxjs/operators","lodash-es","@c8y/ngx-components/api","@c8y/client","@ngx-translate/core","lodash","@angular/common","@angular/common/http","!file-loader?name=assets/locales/angular/af-NA.js!@angular/common/locales/af-NA.js","!file-loader?name=assets/locales/angular/af.js!@angular/common/locales/af.js","!file-loader?name=assets/locales/angular/agq.js!@angular/common/locales/agq.js","!file-loader?name=assets/locales/angular/ak.js!@angular/common/locales/ak.js","!file-loader?name=assets/locales/angular/am.js!@angular/common/locales/am.js","!file-loader?name=assets/locales/angular/ar-AE.js!@angular/common/locales/ar-AE.js","!file-loader?name=assets/locales/angular/ar-BH.js!@angular/common/locales/ar-BH.js","!file-loader?name=assets/locales/angular/ar-DJ.js!@angular/common/locales/ar-DJ.js","!file-loader?name=assets/locales/angular/ar-DZ.js!@angular/common/locales/ar-DZ.js","!file-loader?name=assets/locales/angular/ar-EG.js!@angular/common/locales/ar-EG.js","!file-loader?name=assets/locales/angular/ar-EH.js!@angular/common/locales/ar-EH.js","!file-loader?name=assets/locales/angular/ar-ER.js!@angular/common/locales/ar-ER.js","!file-loader?name=assets/locales/angular/ar-IL.js!@angular/common/locales/ar-IL.js","!file-loader?name=assets/locales/angular/ar-IQ.js!@angular/common/locales/ar-IQ.js","!file-loader?name=assets/locales/angular/ar-JO.js!@angular/common/locales/ar-JO.js","!file-loader?name=assets/locales/angular/ar-KM.js!@angular/common/locales/ar-KM.js","!file-loader?name=assets/locales/angular/ar-KW.js!@angular/common/locales/ar-KW.js","!file-loader?name=assets/locales/angular/ar-LB.js!@angular/common/locales/ar-LB.js","!file-loader?name=assets/locales/angular/ar-LY.js!@angular/common/locales/ar-LY.js","!file-loader?name=assets/locales/angular/ar-MA.js!@angular/common/locales/ar-MA.js","!file-loader?name=assets/locales/angular/ar-MR.js!@angular/common/locales/ar-MR.js","!file-loader?name=assets/locales/angular/ar-OM.js!@angular/common/locales/ar-OM.js","!file-loader?name=assets/locales/angular/ar-PS.js!@angular/common/locales/ar-PS.js","!file-loader?name=assets/locales/angular/ar-QA.js!@angular/common/locales/ar-QA.js","!file-loader?name=assets/locales/angular/ar-SA.js!@angular/common/locales/ar-SA.js","!file-loader?name=assets/locales/angular/ar-SD.js!@angular/common/locales/ar-SD.js","!file-loader?name=assets/locales/angular/ar-SO.js!@angular/common/locales/ar-SO.js","!file-loader?name=assets/locales/angular/ar-SS.js!@angular/common/locales/ar-SS.js","!file-loader?name=assets/locales/angular/ar-SY.js!@angular/common/locales/ar-SY.js","!file-loader?name=assets/locales/angular/ar-TD.js!@angular/common/locales/ar-TD.js","!file-loader?name=assets/locales/angular/ar-TN.js!@angular/common/locales/ar-TN.js","!file-loader?name=assets/locales/angular/ar-YE.js!@angular/common/locales/ar-YE.js","!file-loader?name=assets/locales/angular/ar.js!@angular/common/locales/ar.js","!file-loader?name=assets/locales/angular/as.js!@angular/common/locales/as.js","!file-loader?name=assets/locales/angular/asa.js!@angular/common/locales/asa.js","!file-loader?name=assets/locales/angular/ast.js!@angular/common/locales/ast.js","!file-loader?name=assets/locales/angular/az-Cyrl.js!@angular/common/locales/az-Cyrl.js","!file-loader?name=assets/locales/angular/az-Latn.js!@angular/common/locales/az-Latn.js","!file-loader?name=assets/locales/angular/az.js!@angular/common/locales/az.js","!file-loader?name=assets/locales/angular/bas.js!@angular/common/locales/bas.js","!file-loader?name=assets/locales/angular/be.js!@angular/common/locales/be.js","!file-loader?name=assets/locales/angular/bem.js!@angular/common/locales/bem.js","!file-loader?name=assets/locales/angular/bez.js!@angular/common/locales/bez.js","!file-loader?name=assets/locales/angular/bg.js!@angular/common/locales/bg.js","!file-loader?name=assets/locales/angular/bm.js!@angular/common/locales/bm.js","!file-loader?name=assets/locales/angular/bn-IN.js!@angular/common/locales/bn-IN.js","!file-loader?name=assets/locales/angular/bn.js!@angular/common/locales/bn.js","!file-loader?name=assets/locales/angular/bo-IN.js!@angular/common/locales/bo-IN.js","!file-loader?name=assets/locales/angular/bo.js!@angular/common/locales/bo.js","!file-loader?name=assets/locales/angular/br.js!@angular/common/locales/br.js","!file-loader?name=assets/locales/angular/brx.js!@angular/common/locales/brx.js","!file-loader?name=assets/locales/angular/bs-Cyrl.js!@angular/common/locales/bs-Cyrl.js","!file-loader?name=assets/locales/angular/bs-Latn.js!@angular/common/locales/bs-Latn.js","!file-loader?name=assets/locales/angular/bs.js!@angular/common/locales/bs.js","!file-loader?name=assets/locales/angular/ca-AD.js!@angular/common/locales/ca-AD.js","!file-loader?name=assets/locales/angular/ca-ES-VALENCIA.js!@angular/common/locales/ca-ES-VALENCIA.js","!file-loader?name=assets/locales/angular/ca-FR.js!@angular/common/locales/ca-FR.js","!file-loader?name=assets/locales/angular/ca-IT.js!@angular/common/locales/ca-IT.js","!file-loader?name=assets/locales/angular/ca.js!@angular/common/locales/ca.js","!file-loader?name=assets/locales/angular/ccp-IN.js!@angular/common/locales/ccp-IN.js","!file-loader?name=assets/locales/angular/ccp.js!@angular/common/locales/ccp.js","!file-loader?name=assets/locales/angular/ce.js!@angular/common/locales/ce.js","!file-loader?name=assets/locales/angular/cgg.js!@angular/common/locales/cgg.js","!file-loader?name=assets/locales/angular/chr.js!@angular/common/locales/chr.js","!file-loader?name=assets/locales/angular/ckb-IR.js!@angular/common/locales/ckb-IR.js","!file-loader?name=assets/locales/angular/ckb.js!@angular/common/locales/ckb.js","!file-loader?name=assets/locales/angular/cs.js!@angular/common/locales/cs.js","!file-loader?name=assets/locales/angular/cu.js!@angular/common/locales/cu.js","!file-loader?name=assets/locales/angular/cy.js!@angular/common/locales/cy.js","!file-loader?name=assets/locales/angular/da-GL.js!@angular/common/locales/da-GL.js","!file-loader?name=assets/locales/angular/da.js!@angular/common/locales/da.js","!file-loader?name=assets/locales/angular/dav.js!@angular/common/locales/dav.js","!file-loader?name=assets/locales/angular/de-AT.js!@angular/common/locales/de-AT.js","!file-loader?name=assets/locales/angular/de-BE.js!@angular/common/locales/de-BE.js","!file-loader?name=assets/locales/angular/de-CH.js!@angular/common/locales/de-CH.js","!file-loader?name=assets/locales/angular/de-IT.js!@angular/common/locales/de-IT.js","!file-loader?name=assets/locales/angular/de-LI.js!@angular/common/locales/de-LI.js","!file-loader?name=assets/locales/angular/de-LU.js!@angular/common/locales/de-LU.js","!file-loader?name=assets/locales/angular/de.js!@angular/common/locales/de.js","!file-loader?name=assets/locales/angular/dje.js!@angular/common/locales/dje.js","!file-loader?name=assets/locales/angular/dsb.js!@angular/common/locales/dsb.js","!file-loader?name=assets/locales/angular/dua.js!@angular/common/locales/dua.js","!file-loader?name=assets/locales/angular/dyo.js!@angular/common/locales/dyo.js","!file-loader?name=assets/locales/angular/dz.js!@angular/common/locales/dz.js","!file-loader?name=assets/locales/angular/ebu.js!@angular/common/locales/ebu.js","!file-loader?name=assets/locales/angular/ee-TG.js!@angular/common/locales/ee-TG.js","!file-loader?name=assets/locales/angular/ee.js!@angular/common/locales/ee.js","!file-loader?name=assets/locales/angular/el-CY.js!@angular/common/locales/el-CY.js","!file-loader?name=assets/locales/angular/el.js!@angular/common/locales/el.js","!file-loader?name=assets/locales/angular/en-001.js!@angular/common/locales/en-001.js","!file-loader?name=assets/locales/angular/en-150.js!@angular/common/locales/en-150.js","!file-loader?name=assets/locales/angular/en-AG.js!@angular/common/locales/en-AG.js","!file-loader?name=assets/locales/angular/en-AI.js!@angular/common/locales/en-AI.js","!file-loader?name=assets/locales/angular/en-AS.js!@angular/common/locales/en-AS.js","!file-loader?name=assets/locales/angular/en-AT.js!@angular/common/locales/en-AT.js","!file-loader?name=assets/locales/angular/en-AU.js!@angular/common/locales/en-AU.js","!file-loader?name=assets/locales/angular/en-BB.js!@angular/common/locales/en-BB.js","!file-loader?name=assets/locales/angular/en-BE.js!@angular/common/locales/en-BE.js","!file-loader?name=assets/locales/angular/en-BI.js!@angular/common/locales/en-BI.js","!file-loader?name=assets/locales/angular/en-BM.js!@angular/common/locales/en-BM.js","!file-loader?name=assets/locales/angular/en-BS.js!@angular/common/locales/en-BS.js","!file-loader?name=assets/locales/angular/en-BW.js!@angular/common/locales/en-BW.js","!file-loader?name=assets/locales/angular/en-BZ.js!@angular/common/locales/en-BZ.js","!file-loader?name=assets/locales/angular/en-CA.js!@angular/common/locales/en-CA.js","!file-loader?name=assets/locales/angular/en-CC.js!@angular/common/locales/en-CC.js","!file-loader?name=assets/locales/angular/en-CH.js!@angular/common/locales/en-CH.js","!file-loader?name=assets/locales/angular/en-CK.js!@angular/common/locales/en-CK.js","!file-loader?name=assets/locales/angular/en-CM.js!@angular/common/locales/en-CM.js","!file-loader?name=assets/locales/angular/en-CX.js!@angular/common/locales/en-CX.js","!file-loader?name=assets/locales/angular/en-CY.js!@angular/common/locales/en-CY.js","!file-loader?name=assets/locales/angular/en-DE.js!@angular/common/locales/en-DE.js","!file-loader?name=assets/locales/angular/en-DG.js!@angular/common/locales/en-DG.js","!file-loader?name=assets/locales/angular/en-DK.js!@angular/common/locales/en-DK.js","!file-loader?name=assets/locales/angular/en-DM.js!@angular/common/locales/en-DM.js","!file-loader?name=assets/locales/angular/en-ER.js!@angular/common/locales/en-ER.js","!file-loader?name=assets/locales/angular/en-FI.js!@angular/common/locales/en-FI.js","!file-loader?name=assets/locales/angular/en-FJ.js!@angular/common/locales/en-FJ.js","!file-loader?name=assets/locales/angular/en-FK.js!@angular/common/locales/en-FK.js","!file-loader?name=assets/locales/angular/en-FM.js!@angular/common/locales/en-FM.js","!file-loader?name=assets/locales/angular/en-GB.js!@angular/common/locales/en-GB.js","!file-loader?name=assets/locales/angular/en-GD.js!@angular/common/locales/en-GD.js","!file-loader?name=assets/locales/angular/en-GG.js!@angular/common/locales/en-GG.js","!file-loader?name=assets/locales/angular/en-GH.js!@angular/common/locales/en-GH.js","!file-loader?name=assets/locales/angular/en-GI.js!@angular/common/locales/en-GI.js","!file-loader?name=assets/locales/angular/en-GM.js!@angular/common/locales/en-GM.js","!file-loader?name=assets/locales/angular/en-GU.js!@angular/common/locales/en-GU.js","!file-loader?name=assets/locales/angular/en-GY.js!@angular/common/locales/en-GY.js","!file-loader?name=assets/locales/angular/en-HK.js!@angular/common/locales/en-HK.js","!file-loader?name=assets/locales/angular/en-IE.js!@angular/common/locales/en-IE.js","!file-loader?name=assets/locales/angular/en-IL.js!@angular/common/locales/en-IL.js","!file-loader?name=assets/locales/angular/en-IM.js!@angular/common/locales/en-IM.js","!file-loader?name=assets/locales/angular/en-IN.js!@angular/common/locales/en-IN.js","!file-loader?name=assets/locales/angular/en-IO.js!@angular/common/locales/en-IO.js","!file-loader?name=assets/locales/angular/en-JE.js!@angular/common/locales/en-JE.js","!file-loader?name=assets/locales/angular/en-JM.js!@angular/common/locales/en-JM.js","!file-loader?name=assets/locales/angular/en-KE.js!@angular/common/locales/en-KE.js","!file-loader?name=assets/locales/angular/en-KI.js!@angular/common/locales/en-KI.js","!file-loader?name=assets/locales/angular/en-KN.js!@angular/common/locales/en-KN.js","!file-loader?name=assets/locales/angular/en-KY.js!@angular/common/locales/en-KY.js","!file-loader?name=assets/locales/angular/en-LC.js!@angular/common/locales/en-LC.js","!file-loader?name=assets/locales/angular/en-LR.js!@angular/common/locales/en-LR.js","!file-loader?name=assets/locales/angular/en-LS.js!@angular/common/locales/en-LS.js","!file-loader?name=assets/locales/angular/en-MG.js!@angular/common/locales/en-MG.js","!file-loader?name=assets/locales/angular/en-MH.js!@angular/common/locales/en-MH.js","!file-loader?name=assets/locales/angular/en-MO.js!@angular/common/locales/en-MO.js","!file-loader?name=assets/locales/angular/en-MP.js!@angular/common/locales/en-MP.js","!file-loader?name=assets/locales/angular/en-MS.js!@angular/common/locales/en-MS.js","!file-loader?name=assets/locales/angular/en-MT.js!@angular/common/locales/en-MT.js","!file-loader?name=assets/locales/angular/en-MU.js!@angular/common/locales/en-MU.js","!file-loader?name=assets/locales/angular/en-MW.js!@angular/common/locales/en-MW.js","!file-loader?name=assets/locales/angular/en-MY.js!@angular/common/locales/en-MY.js","!file-loader?name=assets/locales/angular/en-NA.js!@angular/common/locales/en-NA.js","!file-loader?name=assets/locales/angular/en-NF.js!@angular/common/locales/en-NF.js","!file-loader?name=assets/locales/angular/en-NG.js!@angular/common/locales/en-NG.js","!file-loader?name=assets/locales/angular/en-NL.js!@angular/common/locales/en-NL.js","!file-loader?name=assets/locales/angular/en-NR.js!@angular/common/locales/en-NR.js","!file-loader?name=assets/locales/angular/en-NU.js!@angular/common/locales/en-NU.js","!file-loader?name=assets/locales/angular/en-NZ.js!@angular/common/locales/en-NZ.js","!file-loader?name=assets/locales/angular/en-PG.js!@angular/common/locales/en-PG.js","!file-loader?name=assets/locales/angular/en-PH.js!@angular/common/locales/en-PH.js","!file-loader?name=assets/locales/angular/en-PK.js!@angular/common/locales/en-PK.js","!file-loader?name=assets/locales/angular/en-PN.js!@angular/common/locales/en-PN.js","!file-loader?name=assets/locales/angular/en-PR.js!@angular/common/locales/en-PR.js","!file-loader?name=assets/locales/angular/en-PW.js!@angular/common/locales/en-PW.js","!file-loader?name=assets/locales/angular/en-RW.js!@angular/common/locales/en-RW.js","!file-loader?name=assets/locales/angular/en-SB.js!@angular/common/locales/en-SB.js","!file-loader?name=assets/locales/angular/en-SC.js!@angular/common/locales/en-SC.js","!file-loader?name=assets/locales/angular/en-SD.js!@angular/common/locales/en-SD.js","!file-loader?name=assets/locales/angular/en-SE.js!@angular/common/locales/en-SE.js","!file-loader?name=assets/locales/angular/en-SG.js!@angular/common/locales/en-SG.js","!file-loader?name=assets/locales/angular/en-SH.js!@angular/common/locales/en-SH.js","!file-loader?name=assets/locales/angular/en-SI.js!@angular/common/locales/en-SI.js","!file-loader?name=assets/locales/angular/en-SL.js!@angular/common/locales/en-SL.js","!file-loader?name=assets/locales/angular/en-SS.js!@angular/common/locales/en-SS.js","!file-loader?name=assets/locales/angular/en-SX.js!@angular/common/locales/en-SX.js","!file-loader?name=assets/locales/angular/en-SZ.js!@angular/common/locales/en-SZ.js","!file-loader?name=assets/locales/angular/en-TC.js!@angular/common/locales/en-TC.js","!file-loader?name=assets/locales/angular/en-TK.js!@angular/common/locales/en-TK.js","!file-loader?name=assets/locales/angular/en-TO.js!@angular/common/locales/en-TO.js","!file-loader?name=assets/locales/angular/en-TT.js!@angular/common/locales/en-TT.js","!file-loader?name=assets/locales/angular/en-TV.js!@angular/common/locales/en-TV.js","!file-loader?name=assets/locales/angular/en-TZ.js!@angular/common/locales/en-TZ.js","!file-loader?name=assets/locales/angular/en-UG.js!@angular/common/locales/en-UG.js","!file-loader?name=assets/locales/angular/en-UM.js!@angular/common/locales/en-UM.js","!file-loader?name=assets/locales/angular/en-US-POSIX.js!@angular/common/locales/en-US-POSIX.js","!file-loader?name=assets/locales/angular/en-VC.js!@angular/common/locales/en-VC.js","!file-loader?name=assets/locales/angular/en-VG.js!@angular/common/locales/en-VG.js","!file-loader?name=assets/locales/angular/en-VI.js!@angular/common/locales/en-VI.js","!file-loader?name=assets/locales/angular/en-VU.js!@angular/common/locales/en-VU.js","!file-loader?name=assets/locales/angular/en-WS.js!@angular/common/locales/en-WS.js","!file-loader?name=assets/locales/angular/en-ZA.js!@angular/common/locales/en-ZA.js","!file-loader?name=assets/locales/angular/en-ZM.js!@angular/common/locales/en-ZM.js","!file-loader?name=assets/locales/angular/en-ZW.js!@angular/common/locales/en-ZW.js","!file-loader?name=assets/locales/angular/en.js!@angular/common/locales/en.js","!file-loader?name=assets/locales/angular/eo.js!@angular/common/locales/eo.js","!file-loader?name=assets/locales/angular/es-419.js!@angular/common/locales/es-419.js","!file-loader?name=assets/locales/angular/es-AR.js!@angular/common/locales/es-AR.js","!file-loader?name=assets/locales/angular/es-BO.js!@angular/common/locales/es-BO.js","!file-loader?name=assets/locales/angular/es-BR.js!@angular/common/locales/es-BR.js","!file-loader?name=assets/locales/angular/es-BZ.js!@angular/common/locales/es-BZ.js","!file-loader?name=assets/locales/angular/es-CL.js!@angular/common/locales/es-CL.js","!file-loader?name=assets/locales/angular/es-CO.js!@angular/common/locales/es-CO.js","!file-loader?name=assets/locales/angular/es-CR.js!@angular/common/locales/es-CR.js","!file-loader?name=assets/locales/angular/es-CU.js!@angular/common/locales/es-CU.js","!file-loader?name=assets/locales/angular/es-DO.js!@angular/common/locales/es-DO.js","!file-loader?name=assets/locales/angular/es-EA.js!@angular/common/locales/es-EA.js","!file-loader?name=assets/locales/angular/es-EC.js!@angular/common/locales/es-EC.js","!file-loader?name=assets/locales/angular/es-GQ.js!@angular/common/locales/es-GQ.js","!file-loader?name=assets/locales/angular/es-GT.js!@angular/common/locales/es-GT.js","!file-loader?name=assets/locales/angular/es-HN.js!@angular/common/locales/es-HN.js","!file-loader?name=assets/locales/angular/es-IC.js!@angular/common/locales/es-IC.js","!file-loader?name=assets/locales/angular/es-MX.js!@angular/common/locales/es-MX.js","!file-loader?name=assets/locales/angular/es-NI.js!@angular/common/locales/es-NI.js","!file-loader?name=assets/locales/angular/es-PA.js!@angular/common/locales/es-PA.js","!file-loader?name=assets/locales/angular/es-PE.js!@angular/common/locales/es-PE.js","!file-loader?name=assets/locales/angular/es-PH.js!@angular/common/locales/es-PH.js","!file-loader?name=assets/locales/angular/es-PR.js!@angular/common/locales/es-PR.js","!file-loader?name=assets/locales/angular/es-PY.js!@angular/common/locales/es-PY.js","!file-loader?name=assets/locales/angular/es-SV.js!@angular/common/locales/es-SV.js","!file-loader?name=assets/locales/angular/es-US.js!@angular/common/locales/es-US.js","!file-loader?name=assets/locales/angular/es-UY.js!@angular/common/locales/es-UY.js","!file-loader?name=assets/locales/angular/es-VE.js!@angular/common/locales/es-VE.js","!file-loader?name=assets/locales/angular/es.js!@angular/common/locales/es.js","!file-loader?name=assets/locales/angular/et.js!@angular/common/locales/et.js","!file-loader?name=assets/locales/angular/eu.js!@angular/common/locales/eu.js","!file-loader?name=assets/locales/angular/ewo.js!@angular/common/locales/ewo.js","!file-loader?name=assets/locales/angular/fa-AF.js!@angular/common/locales/fa-AF.js","!file-loader?name=assets/locales/angular/fa.js!@angular/common/locales/fa.js","!file-loader?name=assets/locales/angular/ff-CM.js!@angular/common/locales/ff-CM.js","!file-loader?name=assets/locales/angular/ff-GN.js!@angular/common/locales/ff-GN.js","!file-loader?name=assets/locales/angular/ff-MR.js!@angular/common/locales/ff-MR.js","!file-loader?name=assets/locales/angular/ff.js!@angular/common/locales/ff.js","!file-loader?name=assets/locales/angular/fi.js!@angular/common/locales/fi.js","!file-loader?name=assets/locales/angular/fil.js!@angular/common/locales/fil.js","!file-loader?name=assets/locales/angular/fo-DK.js!@angular/common/locales/fo-DK.js","!file-loader?name=assets/locales/angular/fo.js!@angular/common/locales/fo.js","!file-loader?name=assets/locales/angular/fr-BE.js!@angular/common/locales/fr-BE.js","!file-loader?name=assets/locales/angular/fr-BF.js!@angular/common/locales/fr-BF.js","!file-loader?name=assets/locales/angular/fr-BI.js!@angular/common/locales/fr-BI.js","!file-loader?name=assets/locales/angular/fr-BJ.js!@angular/common/locales/fr-BJ.js","!file-loader?name=assets/locales/angular/fr-BL.js!@angular/common/locales/fr-BL.js","!file-loader?name=assets/locales/angular/fr-CA.js!@angular/common/locales/fr-CA.js","!file-loader?name=assets/locales/angular/fr-CD.js!@angular/common/locales/fr-CD.js","!file-loader?name=assets/locales/angular/fr-CF.js!@angular/common/locales/fr-CF.js","!file-loader?name=assets/locales/angular/fr-CG.js!@angular/common/locales/fr-CG.js","!file-loader?name=assets/locales/angular/fr-CH.js!@angular/common/locales/fr-CH.js","!file-loader?name=assets/locales/angular/fr-CI.js!@angular/common/locales/fr-CI.js","!file-loader?name=assets/locales/angular/fr-CM.js!@angular/common/locales/fr-CM.js","!file-loader?name=assets/locales/angular/fr-DJ.js!@angular/common/locales/fr-DJ.js","!file-loader?name=assets/locales/angular/fr-DZ.js!@angular/common/locales/fr-DZ.js","!file-loader?name=assets/locales/angular/fr-GA.js!@angular/common/locales/fr-GA.js","!file-loader?name=assets/locales/angular/fr-GF.js!@angular/common/locales/fr-GF.js","!file-loader?name=assets/locales/angular/fr-GN.js!@angular/common/locales/fr-GN.js","!file-loader?name=assets/locales/angular/fr-GP.js!@angular/common/locales/fr-GP.js","!file-loader?name=assets/locales/angular/fr-GQ.js!@angular/common/locales/fr-GQ.js","!file-loader?name=assets/locales/angular/fr-HT.js!@angular/common/locales/fr-HT.js","!file-loader?name=assets/locales/angular/fr-KM.js!@angular/common/locales/fr-KM.js","!file-loader?name=assets/locales/angular/fr-LU.js!@angular/common/locales/fr-LU.js","!file-loader?name=assets/locales/angular/fr-MA.js!@angular/common/locales/fr-MA.js","!file-loader?name=assets/locales/angular/fr-MC.js!@angular/common/locales/fr-MC.js","!file-loader?name=assets/locales/angular/fr-MF.js!@angular/common/locales/fr-MF.js","!file-loader?name=assets/locales/angular/fr-MG.js!@angular/common/locales/fr-MG.js","!file-loader?name=assets/locales/angular/fr-ML.js!@angular/common/locales/fr-ML.js","!file-loader?name=assets/locales/angular/fr-MQ.js!@angular/common/locales/fr-MQ.js","!file-loader?name=assets/locales/angular/fr-MR.js!@angular/common/locales/fr-MR.js","!file-loader?name=assets/locales/angular/fr-MU.js!@angular/common/locales/fr-MU.js","!file-loader?name=assets/locales/angular/fr-NC.js!@angular/common/locales/fr-NC.js","!file-loader?name=assets/locales/angular/fr-NE.js!@angular/common/locales/fr-NE.js","!file-loader?name=assets/locales/angular/fr-PF.js!@angular/common/locales/fr-PF.js","!file-loader?name=assets/locales/angular/fr-PM.js!@angular/common/locales/fr-PM.js","!file-loader?name=assets/locales/angular/fr-RE.js!@angular/common/locales/fr-RE.js","!file-loader?name=assets/locales/angular/fr-RW.js!@angular/common/locales/fr-RW.js","!file-loader?name=assets/locales/angular/fr-SC.js!@angular/common/locales/fr-SC.js","!file-loader?name=assets/locales/angular/fr-SN.js!@angular/common/locales/fr-SN.js","!file-loader?name=assets/locales/angular/fr-SY.js!@angular/common/locales/fr-SY.js","!file-loader?name=assets/locales/angular/fr-TD.js!@angular/common/locales/fr-TD.js","!file-loader?name=assets/locales/angular/fr-TG.js!@angular/common/locales/fr-TG.js","!file-loader?name=assets/locales/angular/fr-TN.js!@angular/common/locales/fr-TN.js","!file-loader?name=assets/locales/angular/fr-VU.js!@angular/common/locales/fr-VU.js","!file-loader?name=assets/locales/angular/fr-WF.js!@angular/common/locales/fr-WF.js","!file-loader?name=assets/locales/angular/fr-YT.js!@angular/common/locales/fr-YT.js","!file-loader?name=assets/locales/angular/fr.js!@angular/common/locales/fr.js","!file-loader?name=assets/locales/angular/fur.js!@angular/common/locales/fur.js","!file-loader?name=assets/locales/angular/fy.js!@angular/common/locales/fy.js","!file-loader?name=assets/locales/angular/ga.js!@angular/common/locales/ga.js","!file-loader?name=assets/locales/angular/gd.js!@angular/common/locales/gd.js","!file-loader?name=assets/locales/angular/gl.js!@angular/common/locales/gl.js","!file-loader?name=assets/locales/angular/gsw-FR.js!@angular/common/locales/gsw-FR.js","!file-loader?name=assets/locales/angular/gsw-LI.js!@angular/common/locales/gsw-LI.js","!file-loader?name=assets/locales/angular/gsw.js!@angular/common/locales/gsw.js","!file-loader?name=assets/locales/angular/gu.js!@angular/common/locales/gu.js","!file-loader?name=assets/locales/angular/guz.js!@angular/common/locales/guz.js","!file-loader?name=assets/locales/angular/gv.js!@angular/common/locales/gv.js","!file-loader?name=assets/locales/angular/ha-GH.js!@angular/common/locales/ha-GH.js","!file-loader?name=assets/locales/angular/ha-NE.js!@angular/common/locales/ha-NE.js","!file-loader?name=assets/locales/angular/ha.js!@angular/common/locales/ha.js","!file-loader?name=assets/locales/angular/haw.js!@angular/common/locales/haw.js","!file-loader?name=assets/locales/angular/he.js!@angular/common/locales/he.js","!file-loader?name=assets/locales/angular/hi.js!@angular/common/locales/hi.js","!file-loader?name=assets/locales/angular/hr-BA.js!@angular/common/locales/hr-BA.js","!file-loader?name=assets/locales/angular/hr.js!@angular/common/locales/hr.js","!file-loader?name=assets/locales/angular/hsb.js!@angular/common/locales/hsb.js","!file-loader?name=assets/locales/angular/hu.js!@angular/common/locales/hu.js","!file-loader?name=assets/locales/angular/hy.js!@angular/common/locales/hy.js","!file-loader?name=assets/locales/angular/id.js!@angular/common/locales/id.js","!file-loader?name=assets/locales/angular/ig.js!@angular/common/locales/ig.js","!file-loader?name=assets/locales/angular/ii.js!@angular/common/locales/ii.js","!file-loader?name=assets/locales/angular/is.js!@angular/common/locales/is.js","!file-loader?name=assets/locales/angular/it-CH.js!@angular/common/locales/it-CH.js","!file-loader?name=assets/locales/angular/it-SM.js!@angular/common/locales/it-SM.js","!file-loader?name=assets/locales/angular/it-VA.js!@angular/common/locales/it-VA.js","!file-loader?name=assets/locales/angular/it.js!@angular/common/locales/it.js","!file-loader?name=assets/locales/angular/ja.js!@angular/common/locales/ja.js","!file-loader?name=assets/locales/angular/jgo.js!@angular/common/locales/jgo.js","!file-loader?name=assets/locales/angular/jmc.js!@angular/common/locales/jmc.js","!file-loader?name=assets/locales/angular/ka.js!@angular/common/locales/ka.js","!file-loader?name=assets/locales/angular/kab.js!@angular/common/locales/kab.js","!file-loader?name=assets/locales/angular/kam.js!@angular/common/locales/kam.js","!file-loader?name=assets/locales/angular/kde.js!@angular/common/locales/kde.js","!file-loader?name=assets/locales/angular/kea.js!@angular/common/locales/kea.js","!file-loader?name=assets/locales/angular/khq.js!@angular/common/locales/khq.js","!file-loader?name=assets/locales/angular/ki.js!@angular/common/locales/ki.js","!file-loader?name=assets/locales/angular/kk.js!@angular/common/locales/kk.js","!file-loader?name=assets/locales/angular/kkj.js!@angular/common/locales/kkj.js","!file-loader?name=assets/locales/angular/kl.js!@angular/common/locales/kl.js","!file-loader?name=assets/locales/angular/kln.js!@angular/common/locales/kln.js","!file-loader?name=assets/locales/angular/km.js!@angular/common/locales/km.js","!file-loader?name=assets/locales/angular/kn.js!@angular/common/locales/kn.js","!file-loader?name=assets/locales/angular/ko-KP.js!@angular/common/locales/ko-KP.js","!file-loader?name=assets/locales/angular/ko.js!@angular/common/locales/ko.js","!file-loader?name=assets/locales/angular/kok.js!@angular/common/locales/kok.js","!file-loader?name=assets/locales/angular/ks.js!@angular/common/locales/ks.js","!file-loader?name=assets/locales/angular/ksb.js!@angular/common/locales/ksb.js","!file-loader?name=assets/locales/angular/ksf.js!@angular/common/locales/ksf.js","!file-loader?name=assets/locales/angular/ksh.js!@angular/common/locales/ksh.js","!file-loader?name=assets/locales/angular/kw.js!@angular/common/locales/kw.js","!file-loader?name=assets/locales/angular/ky.js!@angular/common/locales/ky.js","!file-loader?name=assets/locales/angular/lag.js!@angular/common/locales/lag.js","!file-loader?name=assets/locales/angular/lb.js!@angular/common/locales/lb.js","!file-loader?name=assets/locales/angular/lg.js!@angular/common/locales/lg.js","!file-loader?name=assets/locales/angular/lkt.js!@angular/common/locales/lkt.js","!file-loader?name=assets/locales/angular/ln-AO.js!@angular/common/locales/ln-AO.js","!file-loader?name=assets/locales/angular/ln-CF.js!@angular/common/locales/ln-CF.js","!file-loader?name=assets/locales/angular/ln-CG.js!@angular/common/locales/ln-CG.js","!file-loader?name=assets/locales/angular/ln.js!@angular/common/locales/ln.js","!file-loader?name=assets/locales/angular/lo.js!@angular/common/locales/lo.js","!file-loader?name=assets/locales/angular/lrc-IQ.js!@angular/common/locales/lrc-IQ.js","!file-loader?name=assets/locales/angular/lrc.js!@angular/common/locales/lrc.js","!file-loader?name=assets/locales/angular/lt.js!@angular/common/locales/lt.js","!file-loader?name=assets/locales/angular/lu.js!@angular/common/locales/lu.js","!file-loader?name=assets/locales/angular/luo.js!@angular/common/locales/luo.js","!file-loader?name=assets/locales/angular/luy.js!@angular/common/locales/luy.js","!file-loader?name=assets/locales/angular/lv.js!@angular/common/locales/lv.js","!file-loader?name=assets/locales/angular/mas-TZ.js!@angular/common/locales/mas-TZ.js","!file-loader?name=assets/locales/angular/mas.js!@angular/common/locales/mas.js","!file-loader?name=assets/locales/angular/mer.js!@angular/common/locales/mer.js","!file-loader?name=assets/locales/angular/mfe.js!@angular/common/locales/mfe.js","!file-loader?name=assets/locales/angular/mg.js!@angular/common/locales/mg.js","!file-loader?name=assets/locales/angular/mgh.js!@angular/common/locales/mgh.js","!file-loader?name=assets/locales/angular/mgo.js!@angular/common/locales/mgo.js","!file-loader?name=assets/locales/angular/mk.js!@angular/common/locales/mk.js","!file-loader?name=assets/locales/angular/ml.js!@angular/common/locales/ml.js","!file-loader?name=assets/locales/angular/mn.js!@angular/common/locales/mn.js","!file-loader?name=assets/locales/angular/mr.js!@angular/common/locales/mr.js","!file-loader?name=assets/locales/angular/ms-BN.js!@angular/common/locales/ms-BN.js","!file-loader?name=assets/locales/angular/ms-SG.js!@angular/common/locales/ms-SG.js","!file-loader?name=assets/locales/angular/ms.js!@angular/common/locales/ms.js","!file-loader?name=assets/locales/angular/mt.js!@angular/common/locales/mt.js","!file-loader?name=assets/locales/angular/mua.js!@angular/common/locales/mua.js","!file-loader?name=assets/locales/angular/my.js!@angular/common/locales/my.js","!file-loader?name=assets/locales/angular/mzn.js!@angular/common/locales/mzn.js","!file-loader?name=assets/locales/angular/naq.js!@angular/common/locales/naq.js","!file-loader?name=assets/locales/angular/nb-SJ.js!@angular/common/locales/nb-SJ.js","!file-loader?name=assets/locales/angular/nb.js!@angular/common/locales/nb.js","!file-loader?name=assets/locales/angular/nd.js!@angular/common/locales/nd.js","!file-loader?name=assets/locales/angular/nds-NL.js!@angular/common/locales/nds-NL.js","!file-loader?name=assets/locales/angular/nds.js!@angular/common/locales/nds.js","!file-loader?name=assets/locales/angular/ne-IN.js!@angular/common/locales/ne-IN.js","!file-loader?name=assets/locales/angular/ne.js!@angular/common/locales/ne.js","!file-loader?name=assets/locales/angular/nl-AW.js!@angular/common/locales/nl-AW.js","!file-loader?name=assets/locales/angular/nl-BE.js!@angular/common/locales/nl-BE.js","!file-loader?name=assets/locales/angular/nl-BQ.js!@angular/common/locales/nl-BQ.js","!file-loader?name=assets/locales/angular/nl-CW.js!@angular/common/locales/nl-CW.js","!file-loader?name=assets/locales/angular/nl-SR.js!@angular/common/locales/nl-SR.js","!file-loader?name=assets/locales/angular/nl-SX.js!@angular/common/locales/nl-SX.js","!file-loader?name=assets/locales/angular/nl.js!@angular/common/locales/nl.js","!file-loader?name=assets/locales/angular/nmg.js!@angular/common/locales/nmg.js","!file-loader?name=assets/locales/angular/nn.js!@angular/common/locales/nn.js","!file-loader?name=assets/locales/angular/nnh.js!@angular/common/locales/nnh.js","!file-loader?name=assets/locales/angular/nus.js!@angular/common/locales/nus.js","!file-loader?name=assets/locales/angular/nyn.js!@angular/common/locales/nyn.js","!file-loader?name=assets/locales/angular/om-KE.js!@angular/common/locales/om-KE.js","!file-loader?name=assets/locales/angular/om.js!@angular/common/locales/om.js","!file-loader?name=assets/locales/angular/or.js!@angular/common/locales/or.js","!file-loader?name=assets/locales/angular/os-RU.js!@angular/common/locales/os-RU.js","!file-loader?name=assets/locales/angular/os.js!@angular/common/locales/os.js","!file-loader?name=assets/locales/angular/pa-Arab.js!@angular/common/locales/pa-Arab.js","!file-loader?name=assets/locales/angular/pa-Guru.js!@angular/common/locales/pa-Guru.js","!file-loader?name=assets/locales/angular/pa.js!@angular/common/locales/pa.js","!file-loader?name=assets/locales/angular/pl.js!@angular/common/locales/pl.js","!file-loader?name=assets/locales/angular/prg.js!@angular/common/locales/prg.js","!file-loader?name=assets/locales/angular/ps.js!@angular/common/locales/ps.js","!file-loader?name=assets/locales/angular/pt-AO.js!@angular/common/locales/pt-AO.js","!file-loader?name=assets/locales/angular/pt-CH.js!@angular/common/locales/pt-CH.js","!file-loader?name=assets/locales/angular/pt-CV.js!@angular/common/locales/pt-CV.js","!file-loader?name=assets/locales/angular/pt-GQ.js!@angular/common/locales/pt-GQ.js","!file-loader?name=assets/locales/angular/pt-GW.js!@angular/common/locales/pt-GW.js","!file-loader?name=assets/locales/angular/pt-LU.js!@angular/common/locales/pt-LU.js","!file-loader?name=assets/locales/angular/pt-MO.js!@angular/common/locales/pt-MO.js","!file-loader?name=assets/locales/angular/pt-MZ.js!@angular/common/locales/pt-MZ.js","!file-loader?name=assets/locales/angular/pt-PT.js!@angular/common/locales/pt-PT.js","!file-loader?name=assets/locales/angular/pt-ST.js!@angular/common/locales/pt-ST.js","!file-loader?name=assets/locales/angular/pt-TL.js!@angular/common/locales/pt-TL.js","!file-loader?name=assets/locales/angular/pt.js!@angular/common/locales/pt.js","!file-loader?name=assets/locales/angular/qu-BO.js!@angular/common/locales/qu-BO.js","!file-loader?name=assets/locales/angular/qu-EC.js!@angular/common/locales/qu-EC.js","!file-loader?name=assets/locales/angular/qu.js!@angular/common/locales/qu.js","!file-loader?name=assets/locales/angular/rm.js!@angular/common/locales/rm.js","!file-loader?name=assets/locales/angular/rn.js!@angular/common/locales/rn.js","!file-loader?name=assets/locales/angular/ro-MD.js!@angular/common/locales/ro-MD.js","!file-loader?name=assets/locales/angular/ro.js!@angular/common/locales/ro.js","!file-loader?name=assets/locales/angular/rof.js!@angular/common/locales/rof.js","!file-loader?name=assets/locales/angular/root.js!@angular/common/locales/root.js","!file-loader?name=assets/locales/angular/ru-BY.js!@angular/common/locales/ru-BY.js","!file-loader?name=assets/locales/angular/ru-KG.js!@angular/common/locales/ru-KG.js","!file-loader?name=assets/locales/angular/ru-KZ.js!@angular/common/locales/ru-KZ.js","!file-loader?name=assets/locales/angular/ru-MD.js!@angular/common/locales/ru-MD.js","!file-loader?name=assets/locales/angular/ru-UA.js!@angular/common/locales/ru-UA.js","!file-loader?name=assets/locales/angular/ru.js!@angular/common/locales/ru.js","!file-loader?name=assets/locales/angular/rw.js!@angular/common/locales/rw.js","!file-loader?name=assets/locales/angular/rwk.js!@angular/common/locales/rwk.js","!file-loader?name=assets/locales/angular/sah.js!@angular/common/locales/sah.js","!file-loader?name=assets/locales/angular/saq.js!@angular/common/locales/saq.js","!file-loader?name=assets/locales/angular/sbp.js!@angular/common/locales/sbp.js","!file-loader?name=assets/locales/angular/sd.js!@angular/common/locales/sd.js","!file-loader?name=assets/locales/angular/se-FI.js!@angular/common/locales/se-FI.js","!file-loader?name=assets/locales/angular/se-SE.js!@angular/common/locales/se-SE.js","!file-loader?name=assets/locales/angular/se.js!@angular/common/locales/se.js","!file-loader?name=assets/locales/angular/seh.js!@angular/common/locales/seh.js","!file-loader?name=assets/locales/angular/ses.js!@angular/common/locales/ses.js","!file-loader?name=assets/locales/angular/sg.js!@angular/common/locales/sg.js","!file-loader?name=assets/locales/angular/shi-Latn.js!@angular/common/locales/shi-Latn.js","!file-loader?name=assets/locales/angular/shi-Tfng.js!@angular/common/locales/shi-Tfng.js","!file-loader?name=assets/locales/angular/shi.js!@angular/common/locales/shi.js","!file-loader?name=assets/locales/angular/si.js!@angular/common/locales/si.js","!file-loader?name=assets/locales/angular/sk.js!@angular/common/locales/sk.js","!file-loader?name=assets/locales/angular/sl.js!@angular/common/locales/sl.js","!file-loader?name=assets/locales/angular/smn.js!@angular/common/locales/smn.js","!file-loader?name=assets/locales/angular/sn.js!@angular/common/locales/sn.js","!file-loader?name=assets/locales/angular/so-DJ.js!@angular/common/locales/so-DJ.js","!file-loader?name=assets/locales/angular/so-ET.js!@angular/common/locales/so-ET.js","!file-loader?name=assets/locales/angular/so-KE.js!@angular/common/locales/so-KE.js","!file-loader?name=assets/locales/angular/so.js!@angular/common/locales/so.js","!file-loader?name=assets/locales/angular/sq-MK.js!@angular/common/locales/sq-MK.js","!file-loader?name=assets/locales/angular/sq-XK.js!@angular/common/locales/sq-XK.js","!file-loader?name=assets/locales/angular/sq.js!@angular/common/locales/sq.js","!file-loader?name=assets/locales/angular/sr-Cyrl-BA.js!@angular/common/locales/sr-Cyrl-BA.js","!file-loader?name=assets/locales/angular/sr-Cyrl-ME.js!@angular/common/locales/sr-Cyrl-ME.js","!file-loader?name=assets/locales/angular/sr-Cyrl-XK.js!@angular/common/locales/sr-Cyrl-XK.js","!file-loader?name=assets/locales/angular/sr-Cyrl.js!@angular/common/locales/sr-Cyrl.js","!file-loader?name=assets/locales/angular/sr-Latn-BA.js!@angular/common/locales/sr-Latn-BA.js","!file-loader?name=assets/locales/angular/sr-Latn-ME.js!@angular/common/locales/sr-Latn-ME.js","!file-loader?name=assets/locales/angular/sr-Latn-XK.js!@angular/common/locales/sr-Latn-XK.js","!file-loader?name=assets/locales/angular/sr-Latn.js!@angular/common/locales/sr-Latn.js","!file-loader?name=assets/locales/angular/sr.js!@angular/common/locales/sr.js","!file-loader?name=assets/locales/angular/sv-AX.js!@angular/common/locales/sv-AX.js","!file-loader?name=assets/locales/angular/sv-FI.js!@angular/common/locales/sv-FI.js","!file-loader?name=assets/locales/angular/sv.js!@angular/common/locales/sv.js","!file-loader?name=assets/locales/angular/sw-CD.js!@angular/common/locales/sw-CD.js","!file-loader?name=assets/locales/angular/sw-KE.js!@angular/common/locales/sw-KE.js","!file-loader?name=assets/locales/angular/sw-UG.js!@angular/common/locales/sw-UG.js","!file-loader?name=assets/locales/angular/sw.js!@angular/common/locales/sw.js","!file-loader?name=assets/locales/angular/ta-LK.js!@angular/common/locales/ta-LK.js","!file-loader?name=assets/locales/angular/ta-MY.js!@angular/common/locales/ta-MY.js","!file-loader?name=assets/locales/angular/ta-SG.js!@angular/common/locales/ta-SG.js","!file-loader?name=assets/locales/angular/ta.js!@angular/common/locales/ta.js","!file-loader?name=assets/locales/angular/te.js!@angular/common/locales/te.js","!file-loader?name=assets/locales/angular/teo-KE.js!@angular/common/locales/teo-KE.js","!file-loader?name=assets/locales/angular/teo.js!@angular/common/locales/teo.js","!file-loader?name=assets/locales/angular/tg.js!@angular/common/locales/tg.js","!file-loader?name=assets/locales/angular/th.js!@angular/common/locales/th.js","!file-loader?name=assets/locales/angular/ti-ER.js!@angular/common/locales/ti-ER.js","!file-loader?name=assets/locales/angular/ti.js!@angular/common/locales/ti.js","!file-loader?name=assets/locales/angular/tk.js!@angular/common/locales/tk.js","!file-loader?name=assets/locales/angular/to.js!@angular/common/locales/to.js","!file-loader?name=assets/locales/angular/tr-CY.js!@angular/common/locales/tr-CY.js","!file-loader?name=assets/locales/angular/tr.js!@angular/common/locales/tr.js","!file-loader?name=assets/locales/angular/tt.js!@angular/common/locales/tt.js","!file-loader?name=assets/locales/angular/twq.js!@angular/common/locales/twq.js","!file-loader?name=assets/locales/angular/tzm.js!@angular/common/locales/tzm.js","!file-loader?name=assets/locales/angular/ug.js!@angular/common/locales/ug.js","!file-loader?name=assets/locales/angular/uk.js!@angular/common/locales/uk.js","!file-loader?name=assets/locales/angular/ur-IN.js!@angular/common/locales/ur-IN.js","!file-loader?name=assets/locales/angular/ur.js!@angular/common/locales/ur.js","!file-loader?name=assets/locales/angular/uz-Arab.js!@angular/common/locales/uz-Arab.js","!file-loader?name=assets/locales/angular/uz-Cyrl.js!@angular/common/locales/uz-Cyrl.js","!file-loader?name=assets/locales/angular/uz-Latn.js!@angular/common/locales/uz-Latn.js","!file-loader?name=assets/locales/angular/uz.js!@angular/common/locales/uz.js","!file-loader?name=assets/locales/angular/vai-Latn.js!@angular/common/locales/vai-Latn.js","!file-loader?name=assets/locales/angular/vai-Vaii.js!@angular/common/locales/vai-Vaii.js","!file-loader?name=assets/locales/angular/vai.js!@angular/common/locales/vai.js","!file-loader?name=assets/locales/angular/vi.js!@angular/common/locales/vi.js","!file-loader?name=assets/locales/angular/vo.js!@angular/common/locales/vo.js","!file-loader?name=assets/locales/angular/vun.js!@angular/common/locales/vun.js","!file-loader?name=assets/locales/angular/wae.js!@angular/common/locales/wae.js","!file-loader?name=assets/locales/angular/wo.js!@angular/common/locales/wo.js","!file-loader?name=assets/locales/angular/xog.js!@angular/common/locales/xog.js","!file-loader?name=assets/locales/angular/yav.js!@angular/common/locales/yav.js","!file-loader?name=assets/locales/angular/yi.js!@angular/common/locales/yi.js","!file-loader?name=assets/locales/angular/yo-BJ.js!@angular/common/locales/yo-BJ.js","!file-loader?name=assets/locales/angular/yo.js!@angular/common/locales/yo.js","!file-loader?name=assets/locales/angular/yue-Hans.js!@angular/common/locales/yue-Hans.js","!file-loader?name=assets/locales/angular/yue-Hant.js!@angular/common/locales/yue-Hant.js","!file-loader?name=assets/locales/angular/yue.js!@angular/common/locales/yue.js","!file-loader?name=assets/locales/angular/zgh.js!@angular/common/locales/zgh.js","!file-loader?name=assets/locales/angular/zh-Hans-HK.js!@angular/common/locales/zh-Hans-HK.js","!file-loader?name=assets/locales/angular/zh-Hans-MO.js!@angular/common/locales/zh-Hans-MO.js","!file-loader?name=assets/locales/angular/zh-Hans-SG.js!@angular/common/locales/zh-Hans-SG.js","!file-loader?name=assets/locales/angular/zh-Hans.js!@angular/common/locales/zh-Hans.js","!file-loader?name=assets/locales/angular/zh-Hant-HK.js!@angular/common/locales/zh-Hant-HK.js","!file-loader?name=assets/locales/angular/zh-Hant-MO.js!@angular/common/locales/zh-Hant-MO.js","!file-loader?name=assets/locales/angular/zh-Hant.js!@angular/common/locales/zh-Hant.js","!file-loader?name=assets/locales/angular/zh.js!@angular/common/locales/zh.js","!file-loader?name=assets/locales/angular/zu.js!@angular/common/locales/zu.js","ngx-bootstrap/collapse","ngx-bootstrap/dropdown","ngx-bootstrap/tooltip","@angular/forms","@angular/platform-browser","ngx-bootstrap/modal","ngx-bootstrap/popover","libphonenumber-js/max","@angular/upgrade/static","angularx-qrcode","@angular/cdk/table","@angular/cdk/drag-drop","ngx-bootstrap/pagination","@angular/cdk/stepper"],t):t(((e=e||self).c8y=e.c8y||{},e.c8y["ngx-components"]={}),e.ng.core,e.ng.router,e.rxjs,e.rxjs.operators,e.lodashEs,e.c8y["ngx-components"].api,e.client,e.core$1,e.lodash,e.ng.common,e.ng.common.http,e.afNA_js,e.af_js,e.agq_js,e.ak_js,e.am_js,e.arAE_js,e.arBH_js,e.arDJ_js,e.arDZ_js,e.arEG_js,e.arEH_js,e.arER_js,e.arIL_js,e.arIQ_js,e.arJO_js,e.arKM_js,e.arKW_js,e.arLB_js,e.arLY_js,e.arMA_js,e.arMR_js,e.arOM_js,e.arPS_js,e.arQA_js,e.arSA_js,e.arSD_js,e.arSO_js,e.arSS_js,e.arSY_js,e.arTD_js,e.arTN_js,e.arYE_js,e.ar_js,e.as_js,e.asa_js,e.ast_js,e.azCyrl_js,e.azLatn_js,e.az_js,e.bas_js,e.be_js,e.bem_js,e.bez_js,e.bg_js,e.bm_js,e.bnIN_js,e.bn_js,e.boIN_js,e.bo_js,e.br_js,e.brx_js,e.bsCyrl_js,e.bsLatn_js,e.bs_js,e.caAD_js,e.caESVALENCIA_js,e.caFR_js,e.caIT_js,e.ca_js,e.ccpIN_js,e.ccp_js,e.ce_js,e.cgg_js,e.chr_js,e.ckbIR_js,e.ckb_js,e.cs_js,e.cu_js,e.cy_js,e.daGL_js,e.da_js,e.dav_js,e.deAT_js,e.deBE_js,e.deCH_js,e.deIT_js,e.deLI_js,e.deLU_js,e.de_js,e.dje_js,e.dsb_js,e.dua_js,e.dyo_js,e.dz_js,e.ebu_js,e.eeTG_js,e.ee_js,e.elCY_js,e.el_js,e.en001_js,e.en150_js,e.enAG_js,e.enAI_js,e.enAS_js,e.enAT_js,e.enAU_js,e.enBB_js,e.enBE_js,e.enBI_js,e.enBM_js,e.enBS_js,e.enBW_js,e.enBZ_js,e.enCA_js,e.enCC_js,e.enCH_js,e.enCK_js,e.enCM_js,e.enCX_js,e.enCY_js,e.enDE_js,e.enDG_js,e.enDK_js,e.enDM_js,e.enER_js,e.enFI_js,e.enFJ_js,e.enFK_js,e.enFM_js,e.enGB_js,e.enGD_js,e.enGG_js,e.enGH_js,e.enGI_js,e.enGM_js,e.enGU_js,e.enGY_js,e.enHK_js,e.enIE_js,e.enIL_js,e.enIM_js,e.enIN_js,e.enIO_js,e.enJE_js,e.enJM_js,e.enKE_js,e.enKI_js,e.enKN_js,e.enKY_js,e.enLC_js,e.enLR_js,e.enLS_js,e.enMG_js,e.enMH_js,e.enMO_js,e.enMP_js,e.enMS_js,e.enMT_js,e.enMU_js,e.enMW_js,e.enMY_js,e.enNA_js,e.enNF_js,e.enNG_js,e.enNL_js,e.enNR_js,e.enNU_js,e.enNZ_js,e.enPG_js,e.enPH_js,e.enPK_js,e.enPN_js,e.enPR_js,e.enPW_js,e.enRW_js,e.enSB_js,e.enSC_js,e.enSD_js,e.enSE_js,e.enSG_js,e.enSH_js,e.enSI_js,e.enSL_js,e.enSS_js,e.enSX_js,e.enSZ_js,e.enTC_js,e.enTK_js,e.enTO_js,e.enTT_js,e.enTV_js,e.enTZ_js,e.enUG_js,e.enUM_js,e.enUSPOSIX_js,e.enVC_js,e.enVG_js,e.enVI_js,e.enVU_js,e.enWS_js,e.enZA_js,e.enZM_js,e.enZW_js,e.en_js,e.eo_js,e.es419_js,e.esAR_js,e.esBO_js,e.esBR_js,e.esBZ_js,e.esCL_js,e.esCO_js,e.esCR_js,e.esCU_js,e.esDO_js,e.esEA_js,e.esEC_js,e.esGQ_js,e.esGT_js,e.esHN_js,e.esIC_js,e.esMX_js,e.esNI_js,e.esPA_js,e.esPE_js,e.esPH_js,e.esPR_js,e.esPY_js,e.esSV_js,e.esUS_js,e.esUY_js,e.esVE_js,e.es_js,e.et_js,e.eu_js,e.ewo_js,e.faAF_js,e.fa_js,e.ffCM_js,e.ffGN_js,e.ffMR_js,e.ff_js,e.fi_js,e.fil_js,e.foDK_js,e.fo_js,e.frBE_js,e.frBF_js,e.frBI_js,e.frBJ_js,e.frBL_js,e.frCA_js,e.frCD_js,e.frCF_js,e.frCG_js,e.frCH_js,e.frCI_js,e.frCM_js,e.frDJ_js,e.frDZ_js,e.frGA_js,e.frGF_js,e.frGN_js,e.frGP_js,e.frGQ_js,e.frHT_js,e.frKM_js,e.frLU_js,e.frMA_js,e.frMC_js,e.frMF_js,e.frMG_js,e.frML_js,e.frMQ_js,e.frMR_js,e.frMU_js,e.frNC_js,e.frNE_js,e.frPF_js,e.frPM_js,e.frRE_js,e.frRW_js,e.frSC_js,e.frSN_js,e.frSY_js,e.frTD_js,e.frTG_js,e.frTN_js,e.frVU_js,e.frWF_js,e.frYT_js,e.fr_js,e.fur_js,e.fy_js,e.ga_js,e.gd_js,e.gl_js,e.gswFR_js,e.gswLI_js,e.gsw_js,e.gu_js,e.guz_js,e.gv_js,e.haGH_js,e.haNE_js,e.ha_js,e.haw_js,e.he_js,e.hi_js,e.hrBA_js,e.hr_js,e.hsb_js,e.hu_js,e.hy_js,e.id_js,e.ig_js,e.ii_js,e.is_js,e.itCH_js,e.itSM_js,e.itVA_js,e.it_js,e.ja_js,e.jgo_js,e.jmc_js,e.ka_js,e.kab_js,e.kam_js,e.kde_js,e.kea_js,e.khq_js,e.ki_js,e.kk_js,e.kkj_js,e.kl_js,e.kln_js,e.km_js,e.kn_js,e.koKP_js,e.ko_js,e.kok_js,e.ks_js,e.ksb_js,e.ksf_js,e.ksh_js,e.kw_js,e.ky_js,e.lag_js,e.lb_js,e.lg_js,e.lkt_js,e.lnAO_js,e.lnCF_js,e.lnCG_js,e.ln_js,e.lo_js,e.lrcIQ_js,e.lrc_js,e.lt_js,e.lu_js,e.luo_js,e.luy_js,e.lv_js,e.masTZ_js,e.mas_js,e.mer_js,e.mfe_js,e.mg_js,e.mgh_js,e.mgo_js,e.mk_js,e.ml_js,e.mn_js,e.mr_js,e.msBN_js,e.msSG_js,e.ms_js,e.mt_js,e.mua_js,e.my_js,e.mzn_js,e.naq_js,e.nbSJ_js,e.nb_js,e.nd_js,e.ndsNL_js,e.nds_js,e.neIN_js,e.ne_js,e.nlAW_js,e.nlBE_js,e.nlBQ_js,e.nlCW_js,e.nlSR_js,e.nlSX_js,e.nl_js,e.nmg_js,e.nn_js,e.nnh_js,e.nus_js,e.nyn_js,e.omKE_js,e.om_js,e.or_js,e.osRU_js,e.os_js,e.paArab_js,e.paGuru_js,e.pa_js,e.pl_js,e.prg_js,e.ps_js,e.ptAO_js,e.ptCH_js,e.ptCV_js,e.ptGQ_js,e.ptGW_js,e.ptLU_js,e.ptMO_js,e.ptMZ_js,e.ptPT_js,e.ptST_js,e.ptTL_js,e.pt_js,e.quBO_js,e.quEC_js,e.qu_js,e.rm_js,e.rn_js,e.roMD_js,e.ro_js,e.rof_js,e.root_js,e.ruBY_js,e.ruKG_js,e.ruKZ_js,e.ruMD_js,e.ruUA_js,e.ru_js,e.rw_js,e.rwk_js,e.sah_js,e.saq_js,e.sbp_js,e.sd_js,e.seFI_js,e.seSE_js,e.se_js,e.seh_js,e.ses_js,e.sg_js,e.shiLatn_js,e.shiTfng_js,e.shi_js,e.si_js,e.sk_js,e.sl_js,e.smn_js,e.sn_js,e.soDJ_js,e.soET_js,e.soKE_js,e.so_js,e.sqMK_js,e.sqXK_js,e.sq_js,e.srCyrlBA_js,e.srCyrlME_js,e.srCyrlXK_js,e.srCyrl_js,e.srLatnBA_js,e.srLatnME_js,e.srLatnXK_js,e.srLatn_js,e.sr_js,e.svAX_js,e.svFI_js,e.sv_js,e.swCD_js,e.swKE_js,e.swUG_js,e.sw_js,e.taLK_js,e.taMY_js,e.taSG_js,e.ta_js,e.te_js,e.teoKE_js,e.teo_js,e.tg_js,e.th_js,e.tiER_js,e.ti_js,e.tk_js,e.to_js,e.trCY_js,e.tr_js,e.tt_js,e.twq_js,e.tzm_js,e.ug_js,e.uk_js,e.urIN_js,e.ur_js,e.uzArab_js,e.uzCyrl_js,e.uzLatn_js,e.uz_js,e.vaiLatn_js,e.vaiVaii_js,e.vai_js,e.vi_js,e.vo_js,e.vun_js,e.wae_js,e.wo_js,e.xog_js,e.yav_js,e.yi_js,e.yoBJ_js,e.yo_js,e.yueHans_js,e.yueHant_js,e.yue_js,e.zgh_js,e.zhHansHK_js,e.zhHansMO_js,e.zhHansSG_js,e.zhHans_js,e.zhHantHK_js,e.zhHantMO_js,e.zhHant_js,e.zh_js,e.zu_js,e.collapse,e.dropdown,e.tooltip,e.ng.forms,e.ng.platformBrowser,e.modal,e.popover,e.max,e.ng.upgrade.static,e.angularxQrcode,e.ng.cdk.table,e.ng.cdk["drag-drop"],e.pagination,e.ng.cdk.stepper)}(this,(function(e,t,n,a,s,o,r,l,i,c,u,d,p,m,g,f,h,y,v,j,b,w,S,C,I,P,O,_,x,E,k,T,A,D,N,M,q,L,R,$,F,U,G,B,z,H,V,K,W,Y,Z,J,X,Q,ee,te,ne,ae,se,oe,re,le,ie,ce,ue,de,pe,me,ge,fe,he,ye,ve,je,be,we,Se,Ce,Ie,Pe,Oe,_e,xe,Ee,ke,Te,Ae,De,Ne,Me,qe,Le,Re,$e,Fe,Ue,Ge,Be,ze,He,Ve,Ke,We,Ye,Ze,Je,Xe,Qe,et,tt,nt,at,st,ot,rt,lt,it,ct,ut,dt,pt,mt,gt,ft,ht,yt,vt,jt,bt,wt,St,Ct,It,Pt,Ot,_t,xt,Et,kt,Tt,At,Dt,Nt,Mt,qt,Lt,Rt,$t,Ft,Ut,Gt,Bt,zt,Ht,Vt,Kt,Wt,Yt,Zt,Jt,Xt,Qt,en,tn,nn,an,sn,on,rn,ln,cn,un,dn,pn,mn,gn,fn,hn,yn,vn,jn,bn,wn,Sn,Cn,In,Pn,On,_n,xn,En,kn,Tn,An,Dn,Nn,Mn,qn,Ln,Rn,$n,Fn,Un,Gn,Bn,zn,Hn,Vn,Kn,Wn,Yn,Zn,Jn,Xn,Qn,ea,ta,na,aa,sa,oa,ra,la,ia,ca,ua,da,pa,ma,ga,fa,ha,ya,va,ja,ba,wa,Sa,Ca,Ia,Pa,Oa,_a,xa,Ea,ka,Ta,Aa,Da,Na,Ma,qa,La,Ra,$a,Fa,Ua,Ga,Ba,za,Ha,Va,Ka,Wa,Ya,Za,Ja,Xa,Qa,es,ts,ns,as,ss,os,rs,ls,is,cs,us,ds,ps,ms,gs,fs,hs,ys,vs,js,bs,ws,Ss,Cs,Is,Ps,Os,_s,xs,Es,ks,Ts,As,Ds,Ns,Ms,qs,Ls,Rs,$s,Fs,Us,Gs,Bs,zs,Hs,Vs,Ks,Ws,Ys,Zs,Js,Xs,Qs,eo,to,no,ao,so,oo,ro,lo,io,co,uo,po,mo,go,fo,ho,yo,vo,jo,bo,wo,So,Co,Io,Po,Oo,_o,xo,Eo,ko,To,Ao,Do,No,Mo,qo,Lo,Ro,$o,Fo,Uo,Go,Bo,zo,Ho,Vo,Ko,Wo,Yo,Zo,Jo,Xo,Qo,er,tr,nr,ar,sr,or,rr,lr,ir,cr,ur,dr,pr,mr,gr,fr,hr,yr,vr,jr,br,wr,Sr,Cr,Ir,Pr,Or,_r,xr,Er,kr,Tr,Ar,Dr,Nr,Mr,qr,Lr,Rr,$r,Fr,Ur,Gr,Br,zr,Hr,Vr,Kr,Wr,Yr,Zr,Jr,Xr,Qr,el,tl,nl,al,sl,ol,rl,ll,il,cl,ul,dl,pl,ml,gl,fl,hl,yl,vl,jl,bl,wl,Sl,Cl,Il,Pl,Ol,_l,xl,El,kl,Tl,Al,Dl,Nl,Ml,ql,Ll,Rl,$l,Fl,Ul,Gl,Bl,zl,Hl,Vl,Kl,Wl,Yl,Zl,Jl,Xl,Ql,ei,ti,ni,ai,si,oi,ri,li,ii,ci,ui,di,pi,mi,gi,fi,hi,yi,vi,ji,bi,wi,Si,Ci,Ii,Pi,Oi,_i,xi,Ei,ki,Ti,Ai,Di,Ni,Mi,qi,Li,Ri,$i,Fi,Ui,Gi,Bi,zi,Hi,Vi,Ki,Wi,Yi,Zi,Ji,Xi,Qi,ec,tc,nc,ac,sc,oc,rc,lc,ic,cc,uc,dc){"use strict";p=p&&p.hasOwnProperty("default")?p.default:p,m=m&&m.hasOwnProperty("default")?m.default:m,g=g&&g.hasOwnProperty("default")?g.default:g,f=f&&f.hasOwnProperty("default")?f.default:f,h=h&&h.hasOwnProperty("default")?h.default:h,y=y&&y.hasOwnProperty("default")?y.default:y,v=v&&v.hasOwnProperty("default")?v.default:v,j=j&&j.hasOwnProperty("default")?j.default:j,b=b&&b.hasOwnProperty("default")?b.default:b,w=w&&w.hasOwnProperty("default")?w.default:w,S=S&&S.hasOwnProperty("default")?S.default:S,C=C&&C.hasOwnProperty("default")?C.default:C,I=I&&I.hasOwnProperty("default")?I.default:I,P=P&&P.hasOwnProperty("default")?P.default:P,O=O&&O.hasOwnProperty("default")?O.default:O,_=_&&_.hasOwnProperty("default")?_.default:_,x=x&&x.hasOwnProperty("default")?x.default:x,E=E&&E.hasOwnProperty("default")?E.default:E,k=k&&k.hasOwnProperty("default")?k.default:k,T=T&&T.hasOwnProperty("default")?T.default:T,A=A&&A.hasOwnProperty("default")?A.default:A,D=D&&D.hasOwnProperty("default")?D.default:D,N=N&&N.hasOwnProperty("default")?N.default:N,M=M&&M.hasOwnProperty("default")?M.default:M,q=q&&q.hasOwnProperty("default")?q.default:q,L=L&&L.hasOwnProperty("default")?L.default:L,R=R&&R.hasOwnProperty("default")?R.default:R,$=$&&$.hasOwnProperty("default")?$.default:$,F=F&&F.hasOwnProperty("default")?F.default:F,U=U&&U.hasOwnProperty("default")?U.default:U,G=G&&G.hasOwnProperty("default")?G.default:G,B=B&&B.hasOwnProperty("default")?B.default:B,z=z&&z.hasOwnProperty("default")?z.default:z,H=H&&H.hasOwnProperty("default")?H.default:H,V=V&&V.hasOwnProperty("default")?V.default:V,K=K&&K.hasOwnProperty("default")?K.default:K,W=W&&W.hasOwnProperty("default")?W.default:W,Y=Y&&Y.hasOwnProperty("default")?Y.default:Y,Z=Z&&Z.hasOwnProperty("default")?Z.default:Z,J=J&&J.hasOwnProperty("default")?J.default:J,X=X&&X.hasOwnProperty("default")?X.default:X,Q=Q&&Q.hasOwnProperty("default")?Q.default:Q,ee=ee&&ee.hasOwnProperty("default")?ee.default:ee,te=te&&te.hasOwnProperty("default")?te.default:te,ne=ne&&ne.hasOwnProperty("default")?ne.default:ne,ae=ae&&ae.hasOwnProperty("default")?ae.default:ae,se=se&&se.hasOwnProperty("default")?se.default:se,oe=oe&&oe.hasOwnProperty("default")?oe.default:oe,re=re&&re.hasOwnProperty("default")?re.default:re,le=le&&le.hasOwnProperty("default")?le.default:le,ie=ie&&ie.hasOwnProperty("default")?ie.default:ie,ce=ce&&ce.hasOwnProperty("default")?ce.default:ce,ue=ue&&ue.hasOwnProperty("default")?ue.default:ue,de=de&&de.hasOwnProperty("default")?de.default:de,pe=pe&&pe.hasOwnProperty("default")?pe.default:pe,me=me&&me.hasOwnProperty("default")?me.default:me,ge=ge&&ge.hasOwnProperty("default")?ge.default:ge,fe=fe&&fe.hasOwnProperty("default")?fe.default:fe,he=he&&he.hasOwnProperty("default")?he.default:he,ye=ye&&ye.hasOwnProperty("default")?ye.default:ye,ve=ve&&ve.hasOwnProperty("default")?ve.default:ve,je=je&&je.hasOwnProperty("default")?je.default:je,be=be&&be.hasOwnProperty("default")?be.default:be,we=we&&we.hasOwnProperty("default")?we.default:we,Se=Se&&Se.hasOwnProperty("default")?Se.default:Se,Ce=Ce&&Ce.hasOwnProperty("default")?Ce.default:Ce,Ie=Ie&&Ie.hasOwnProperty("default")?Ie.default:Ie,Pe=Pe&&Pe.hasOwnProperty("default")?Pe.default:Pe,Oe=Oe&&Oe.hasOwnProperty("default")?Oe.default:Oe,_e=_e&&_e.hasOwnProperty("default")?_e.default:_e,xe=xe&&xe.hasOwnProperty("default")?xe.default:xe,Ee=Ee&&Ee.hasOwnProperty("default")?Ee.default:Ee,ke=ke&&ke.hasOwnProperty("default")?ke.default:ke,Te=Te&&Te.hasOwnProperty("default")?Te.default:Te,Ae=Ae&&Ae.hasOwnProperty("default")?Ae.default:Ae,De=De&&De.hasOwnProperty("default")?De.default:De,Ne=Ne&&Ne.hasOwnProperty("default")?Ne.default:Ne,Me=Me&&Me.hasOwnProperty("default")?Me.default:Me,qe=qe&&qe.hasOwnProperty("default")?qe.default:qe,Le=Le&&Le.hasOwnProperty("default")?Le.default:Le,Re=Re&&Re.hasOwnProperty("default")?Re.default:Re,$e=$e&&$e.hasOwnProperty("default")?$e.default:$e,Fe=Fe&&Fe.hasOwnProperty("default")?Fe.default:Fe,Ue=Ue&&Ue.hasOwnProperty("default")?Ue.default:Ue,Ge=Ge&&Ge.hasOwnProperty("default")?Ge.default:Ge,Be=Be&&Be.hasOwnProperty("default")?Be.default:Be,ze=ze&&ze.hasOwnProperty("default")?ze.default:ze,He=He&&He.hasOwnProperty("default")?He.default:He,Ve=Ve&&Ve.hasOwnProperty("default")?Ve.default:Ve,Ke=Ke&&Ke.hasOwnProperty("default")?Ke.default:Ke,We=We&&We.hasOwnProperty("default")?We.default:We,Ye=Ye&&Ye.hasOwnProperty("default")?Ye.default:Ye,Ze=Ze&&Ze.hasOwnProperty("default")?Ze.default:Ze,Je=Je&&Je.hasOwnProperty("default")?Je.default:Je,Xe=Xe&&Xe.hasOwnProperty("default")?Xe.default:Xe,Qe=Qe&&Qe.hasOwnProperty("default")?Qe.default:Qe,et=et&&et.hasOwnProperty("default")?et.default:et,tt=tt&&tt.hasOwnProperty("default")?tt.default:tt,nt=nt&&nt.hasOwnProperty("default")?nt.default:nt,at=at&&at.hasOwnProperty("default")?at.default:at,st=st&&st.hasOwnProperty("default")?st.default:st,ot=ot&&ot.hasOwnProperty("default")?ot.default:ot,rt=rt&&rt.hasOwnProperty("default")?rt.default:rt,lt=lt&<.hasOwnProperty("default")?lt.default:lt,it=it&&it.hasOwnProperty("default")?it.default:it,ct=ct&&ct.hasOwnProperty("default")?ct.default:ct,ut=ut&&ut.hasOwnProperty("default")?ut.default:ut,dt=dt&&dt.hasOwnProperty("default")?dt.default:dt,pt=pt&&pt.hasOwnProperty("default")?pt.default:pt,mt=mt&&mt.hasOwnProperty("default")?mt.default:mt,gt=gt&>.hasOwnProperty("default")?gt.default:gt,ft=ft&&ft.hasOwnProperty("default")?ft.default:ft,ht=ht&&ht.hasOwnProperty("default")?ht.default:ht,yt=yt&&yt.hasOwnProperty("default")?yt.default:yt,vt=vt&&vt.hasOwnProperty("default")?vt.default:vt,jt=jt&&jt.hasOwnProperty("default")?jt.default:jt,bt=bt&&bt.hasOwnProperty("default")?bt.default:bt,wt=wt&&wt.hasOwnProperty("default")?wt.default:wt,St=St&&St.hasOwnProperty("default")?St.default:St,Ct=Ct&&Ct.hasOwnProperty("default")?Ct.default:Ct,It=It&&It.hasOwnProperty("default")?It.default:It,Pt=Pt&&Pt.hasOwnProperty("default")?Pt.default:Pt,Ot=Ot&&Ot.hasOwnProperty("default")?Ot.default:Ot,_t=_t&&_t.hasOwnProperty("default")?_t.default:_t,xt=xt&&xt.hasOwnProperty("default")?xt.default:xt,Et=Et&&Et.hasOwnProperty("default")?Et.default:Et,kt=kt&&kt.hasOwnProperty("default")?kt.default:kt,Tt=Tt&&Tt.hasOwnProperty("default")?Tt.default:Tt,At=At&&At.hasOwnProperty("default")?At.default:At,Dt=Dt&&Dt.hasOwnProperty("default")?Dt.default:Dt,Nt=Nt&&Nt.hasOwnProperty("default")?Nt.default:Nt,Mt=Mt&&Mt.hasOwnProperty("default")?Mt.default:Mt,qt=qt&&qt.hasOwnProperty("default")?qt.default:qt,Lt=Lt&&Lt.hasOwnProperty("default")?Lt.default:Lt,Rt=Rt&&Rt.hasOwnProperty("default")?Rt.default:Rt,$t=$t&&$t.hasOwnProperty("default")?$t.default:$t,Ft=Ft&&Ft.hasOwnProperty("default")?Ft.default:Ft,Ut=Ut&&Ut.hasOwnProperty("default")?Ut.default:Ut,Gt=Gt&&Gt.hasOwnProperty("default")?Gt.default:Gt,Bt=Bt&&Bt.hasOwnProperty("default")?Bt.default:Bt,zt=zt&&zt.hasOwnProperty("default")?zt.default:zt,Ht=Ht&&Ht.hasOwnProperty("default")?Ht.default:Ht,Vt=Vt&&Vt.hasOwnProperty("default")?Vt.default:Vt,Kt=Kt&&Kt.hasOwnProperty("default")?Kt.default:Kt,Wt=Wt&&Wt.hasOwnProperty("default")?Wt.default:Wt,Yt=Yt&&Yt.hasOwnProperty("default")?Yt.default:Yt,Zt=Zt&&Zt.hasOwnProperty("default")?Zt.default:Zt,Jt=Jt&&Jt.hasOwnProperty("default")?Jt.default:Jt,Xt=Xt&&Xt.hasOwnProperty("default")?Xt.default:Xt,Qt=Qt&&Qt.hasOwnProperty("default")?Qt.default:Qt,en=en&&en.hasOwnProperty("default")?en.default:en,tn=tn&&tn.hasOwnProperty("default")?tn.default:tn,nn=nn&&nn.hasOwnProperty("default")?nn.default:nn,an=an&&an.hasOwnProperty("default")?an.default:an,sn=sn&&sn.hasOwnProperty("default")?sn.default:sn,on=on&&on.hasOwnProperty("default")?on.default:on,rn=rn&&rn.hasOwnProperty("default")?rn.default:rn,ln=ln&&ln.hasOwnProperty("default")?ln.default:ln,cn=cn&&cn.hasOwnProperty("default")?cn.default:cn,un=un&&un.hasOwnProperty("default")?un.default:un,dn=dn&&dn.hasOwnProperty("default")?dn.default:dn,pn=pn&&pn.hasOwnProperty("default")?pn.default:pn,mn=mn&&mn.hasOwnProperty("default")?mn.default:mn,gn=gn&&gn.hasOwnProperty("default")?gn.default:gn,fn=fn&&fn.hasOwnProperty("default")?fn.default:fn,hn=hn&&hn.hasOwnProperty("default")?hn.default:hn,yn=yn&&yn.hasOwnProperty("default")?yn.default:yn,vn=vn&&vn.hasOwnProperty("default")?vn.default:vn,jn=jn&&jn.hasOwnProperty("default")?jn.default:jn,bn=bn&&bn.hasOwnProperty("default")?bn.default:bn,wn=wn&&wn.hasOwnProperty("default")?wn.default:wn,Sn=Sn&&Sn.hasOwnProperty("default")?Sn.default:Sn,Cn=Cn&&Cn.hasOwnProperty("default")?Cn.default:Cn,In=In&&In.hasOwnProperty("default")?In.default:In,Pn=Pn&&Pn.hasOwnProperty("default")?Pn.default:Pn,On=On&&On.hasOwnProperty("default")?On.default:On,_n=_n&&_n.hasOwnProperty("default")?_n.default:_n,xn=xn&&xn.hasOwnProperty("default")?xn.default:xn,En=En&&En.hasOwnProperty("default")?En.default:En,kn=kn&&kn.hasOwnProperty("default")?kn.default:kn,Tn=Tn&&Tn.hasOwnProperty("default")?Tn.default:Tn,An=An&&An.hasOwnProperty("default")?An.default:An,Dn=Dn&&Dn.hasOwnProperty("default")?Dn.default:Dn,Nn=Nn&&Nn.hasOwnProperty("default")?Nn.default:Nn,Mn=Mn&&Mn.hasOwnProperty("default")?Mn.default:Mn,qn=qn&&qn.hasOwnProperty("default")?qn.default:qn,Ln=Ln&&Ln.hasOwnProperty("default")?Ln.default:Ln,Rn=Rn&&Rn.hasOwnProperty("default")?Rn.default:Rn,$n=$n&&$n.hasOwnProperty("default")?$n.default:$n,Fn=Fn&&Fn.hasOwnProperty("default")?Fn.default:Fn,Un=Un&&Un.hasOwnProperty("default")?Un.default:Un,Gn=Gn&&Gn.hasOwnProperty("default")?Gn.default:Gn,Bn=Bn&&Bn.hasOwnProperty("default")?Bn.default:Bn,zn=zn&&zn.hasOwnProperty("default")?zn.default:zn,Hn=Hn&&Hn.hasOwnProperty("default")?Hn.default:Hn,Vn=Vn&&Vn.hasOwnProperty("default")?Vn.default:Vn,Kn=Kn&&Kn.hasOwnProperty("default")?Kn.default:Kn,Wn=Wn&&Wn.hasOwnProperty("default")?Wn.default:Wn,Yn=Yn&&Yn.hasOwnProperty("default")?Yn.default:Yn,Zn=Zn&&Zn.hasOwnProperty("default")?Zn.default:Zn,Jn=Jn&&Jn.hasOwnProperty("default")?Jn.default:Jn,Xn=Xn&&Xn.hasOwnProperty("default")?Xn.default:Xn,Qn=Qn&&Qn.hasOwnProperty("default")?Qn.default:Qn,ea=ea&&ea.hasOwnProperty("default")?ea.default:ea,ta=ta&&ta.hasOwnProperty("default")?ta.default:ta,na=na&&na.hasOwnProperty("default")?na.default:na,aa=aa&&aa.hasOwnProperty("default")?aa.default:aa,sa=sa&&sa.hasOwnProperty("default")?sa.default:sa,oa=oa&&oa.hasOwnProperty("default")?oa.default:oa,ra=ra&&ra.hasOwnProperty("default")?ra.default:ra,la=la&&la.hasOwnProperty("default")?la.default:la,ia=ia&&ia.hasOwnProperty("default")?ia.default:ia,ca=ca&&ca.hasOwnProperty("default")?ca.default:ca,ua=ua&&ua.hasOwnProperty("default")?ua.default:ua,da=da&&da.hasOwnProperty("default")?da.default:da,pa=pa&&pa.hasOwnProperty("default")?pa.default:pa,ma=ma&&ma.hasOwnProperty("default")?ma.default:ma,ga=ga&&ga.hasOwnProperty("default")?ga.default:ga,fa=fa&&fa.hasOwnProperty("default")?fa.default:fa,ha=ha&&ha.hasOwnProperty("default")?ha.default:ha,ya=ya&&ya.hasOwnProperty("default")?ya.default:ya,va=va&&va.hasOwnProperty("default")?va.default:va,ja=ja&&ja.hasOwnProperty("default")?ja.default:ja,ba=ba&&ba.hasOwnProperty("default")?ba.default:ba,wa=wa&&wa.hasOwnProperty("default")?wa.default:wa,Sa=Sa&&Sa.hasOwnProperty("default")?Sa.default:Sa,Ca=Ca&&Ca.hasOwnProperty("default")?Ca.default:Ca,Ia=Ia&&Ia.hasOwnProperty("default")?Ia.default:Ia,Pa=Pa&&Pa.hasOwnProperty("default")?Pa.default:Pa,Oa=Oa&&Oa.hasOwnProperty("default")?Oa.default:Oa,_a=_a&&_a.hasOwnProperty("default")?_a.default:_a,xa=xa&&xa.hasOwnProperty("default")?xa.default:xa,Ea=Ea&&Ea.hasOwnProperty("default")?Ea.default:Ea,ka=ka&&ka.hasOwnProperty("default")?ka.default:ka,Ta=Ta&&Ta.hasOwnProperty("default")?Ta.default:Ta,Aa=Aa&&Aa.hasOwnProperty("default")?Aa.default:Aa,Da=Da&&Da.hasOwnProperty("default")?Da.default:Da,Na=Na&&Na.hasOwnProperty("default")?Na.default:Na,Ma=Ma&&Ma.hasOwnProperty("default")?Ma.default:Ma,qa=qa&&qa.hasOwnProperty("default")?qa.default:qa,La=La&&La.hasOwnProperty("default")?La.default:La,Ra=Ra&&Ra.hasOwnProperty("default")?Ra.default:Ra,$a=$a&&$a.hasOwnProperty("default")?$a.default:$a,Fa=Fa&&Fa.hasOwnProperty("default")?Fa.default:Fa,Ua=Ua&&Ua.hasOwnProperty("default")?Ua.default:Ua,Ga=Ga&&Ga.hasOwnProperty("default")?Ga.default:Ga,Ba=Ba&&Ba.hasOwnProperty("default")?Ba.default:Ba,za=za&&za.hasOwnProperty("default")?za.default:za,Ha=Ha&&Ha.hasOwnProperty("default")?Ha.default:Ha,Va=Va&&Va.hasOwnProperty("default")?Va.default:Va,Ka=Ka&&Ka.hasOwnProperty("default")?Ka.default:Ka,Wa=Wa&&Wa.hasOwnProperty("default")?Wa.default:Wa,Ya=Ya&&Ya.hasOwnProperty("default")?Ya.default:Ya,Za=Za&&Za.hasOwnProperty("default")?Za.default:Za,Ja=Ja&&Ja.hasOwnProperty("default")?Ja.default:Ja,Xa=Xa&&Xa.hasOwnProperty("default")?Xa.default:Xa,Qa=Qa&&Qa.hasOwnProperty("default")?Qa.default:Qa,es=es&&es.hasOwnProperty("default")?es.default:es,ts=ts&&ts.hasOwnProperty("default")?ts.default:ts,ns=ns&&ns.hasOwnProperty("default")?ns.default:ns,as=as&&as.hasOwnProperty("default")?as.default:as,ss=ss&&ss.hasOwnProperty("default")?ss.default:ss,os=os&&os.hasOwnProperty("default")?os.default:os,rs=rs&&rs.hasOwnProperty("default")?rs.default:rs,ls=ls&&ls.hasOwnProperty("default")?ls.default:ls,is=is&&is.hasOwnProperty("default")?is.default:is,cs=cs&&cs.hasOwnProperty("default")?cs.default:cs,us=us&&us.hasOwnProperty("default")?us.default:us,ds=ds&&ds.hasOwnProperty("default")?ds.default:ds,ps=ps&&ps.hasOwnProperty("default")?ps.default:ps,ms=ms&&ms.hasOwnProperty("default")?ms.default:ms,gs=gs&&gs.hasOwnProperty("default")?gs.default:gs,fs=fs&&fs.hasOwnProperty("default")?fs.default:fs,hs=hs&&hs.hasOwnProperty("default")?hs.default:hs,ys=ys&&ys.hasOwnProperty("default")?ys.default:ys,vs=vs&&vs.hasOwnProperty("default")?vs.default:vs,js=js&&js.hasOwnProperty("default")?js.default:js,bs=bs&&bs.hasOwnProperty("default")?bs.default:bs,ws=ws&&ws.hasOwnProperty("default")?ws.default:ws,Ss=Ss&&Ss.hasOwnProperty("default")?Ss.default:Ss,Cs=Cs&&Cs.hasOwnProperty("default")?Cs.default:Cs,Is=Is&&Is.hasOwnProperty("default")?Is.default:Is,Ps=Ps&&Ps.hasOwnProperty("default")?Ps.default:Ps,Os=Os&&Os.hasOwnProperty("default")?Os.default:Os,_s=_s&&_s.hasOwnProperty("default")?_s.default:_s,xs=xs&&xs.hasOwnProperty("default")?xs.default:xs,Es=Es&&Es.hasOwnProperty("default")?Es.default:Es,ks=ks&&ks.hasOwnProperty("default")?ks.default:ks,Ts=Ts&&Ts.hasOwnProperty("default")?Ts.default:Ts,As=As&&As.hasOwnProperty("default")?As.default:As,Ds=Ds&&Ds.hasOwnProperty("default")?Ds.default:Ds,Ns=Ns&&Ns.hasOwnProperty("default")?Ns.default:Ns,Ms=Ms&&Ms.hasOwnProperty("default")?Ms.default:Ms,qs=qs&&qs.hasOwnProperty("default")?qs.default:qs,Ls=Ls&&Ls.hasOwnProperty("default")?Ls.default:Ls,Rs=Rs&&Rs.hasOwnProperty("default")?Rs.default:Rs,$s=$s&&$s.hasOwnProperty("default")?$s.default:$s,Fs=Fs&&Fs.hasOwnProperty("default")?Fs.default:Fs,Us=Us&&Us.hasOwnProperty("default")?Us.default:Us,Gs=Gs&&Gs.hasOwnProperty("default")?Gs.default:Gs,Bs=Bs&&Bs.hasOwnProperty("default")?Bs.default:Bs,zs=zs&&zs.hasOwnProperty("default")?zs.default:zs,Hs=Hs&&Hs.hasOwnProperty("default")?Hs.default:Hs,Vs=Vs&&Vs.hasOwnProperty("default")?Vs.default:Vs,Ks=Ks&&Ks.hasOwnProperty("default")?Ks.default:Ks,Ws=Ws&&Ws.hasOwnProperty("default")?Ws.default:Ws,Ys=Ys&&Ys.hasOwnProperty("default")?Ys.default:Ys,Zs=Zs&&Zs.hasOwnProperty("default")?Zs.default:Zs,Js=Js&&Js.hasOwnProperty("default")?Js.default:Js,Xs=Xs&&Xs.hasOwnProperty("default")?Xs.default:Xs,Qs=Qs&&Qs.hasOwnProperty("default")?Qs.default:Qs,eo=eo&&eo.hasOwnProperty("default")?eo.default:eo,to=to&&to.hasOwnProperty("default")?to.default:to,no=no&&no.hasOwnProperty("default")?no.default:no,ao=ao&&ao.hasOwnProperty("default")?ao.default:ao,so=so&&so.hasOwnProperty("default")?so.default:so,oo=oo&&oo.hasOwnProperty("default")?oo.default:oo,ro=ro&&ro.hasOwnProperty("default")?ro.default:ro,lo=lo&&lo.hasOwnProperty("default")?lo.default:lo,io=io&&io.hasOwnProperty("default")?io.default:io,co=co&&co.hasOwnProperty("default")?co.default:co,uo=uo&&uo.hasOwnProperty("default")?uo.default:uo,po=po&&po.hasOwnProperty("default")?po.default:po,mo=mo&&mo.hasOwnProperty("default")?mo.default:mo,go=go&&go.hasOwnProperty("default")?go.default:go,fo=fo&&fo.hasOwnProperty("default")?fo.default:fo,ho=ho&&ho.hasOwnProperty("default")?ho.default:ho,yo=yo&&yo.hasOwnProperty("default")?yo.default:yo,vo=vo&&vo.hasOwnProperty("default")?vo.default:vo,jo=jo&&jo.hasOwnProperty("default")?jo.default:jo,bo=bo&&bo.hasOwnProperty("default")?bo.default:bo,wo=wo&&wo.hasOwnProperty("default")?wo.default:wo,So=So&&So.hasOwnProperty("default")?So.default:So,Co=Co&&Co.hasOwnProperty("default")?Co.default:Co,Io=Io&&Io.hasOwnProperty("default")?Io.default:Io,Po=Po&&Po.hasOwnProperty("default")?Po.default:Po,Oo=Oo&&Oo.hasOwnProperty("default")?Oo.default:Oo,_o=_o&&_o.hasOwnProperty("default")?_o.default:_o,xo=xo&&xo.hasOwnProperty("default")?xo.default:xo,Eo=Eo&&Eo.hasOwnProperty("default")?Eo.default:Eo,ko=ko&&ko.hasOwnProperty("default")?ko.default:ko,To=To&&To.hasOwnProperty("default")?To.default:To,Ao=Ao&&Ao.hasOwnProperty("default")?Ao.default:Ao,Do=Do&&Do.hasOwnProperty("default")?Do.default:Do,No=No&&No.hasOwnProperty("default")?No.default:No,Mo=Mo&&Mo.hasOwnProperty("default")?Mo.default:Mo,qo=qo&&qo.hasOwnProperty("default")?qo.default:qo,Lo=Lo&&Lo.hasOwnProperty("default")?Lo.default:Lo,Ro=Ro&&Ro.hasOwnProperty("default")?Ro.default:Ro,$o=$o&&$o.hasOwnProperty("default")?$o.default:$o,Fo=Fo&&Fo.hasOwnProperty("default")?Fo.default:Fo,Uo=Uo&&Uo.hasOwnProperty("default")?Uo.default:Uo,Go=Go&&Go.hasOwnProperty("default")?Go.default:Go,Bo=Bo&&Bo.hasOwnProperty("default")?Bo.default:Bo,zo=zo&&zo.hasOwnProperty("default")?zo.default:zo,Ho=Ho&&Ho.hasOwnProperty("default")?Ho.default:Ho,Vo=Vo&&Vo.hasOwnProperty("default")?Vo.default:Vo,Ko=Ko&&Ko.hasOwnProperty("default")?Ko.default:Ko,Wo=Wo&&Wo.hasOwnProperty("default")?Wo.default:Wo,Yo=Yo&&Yo.hasOwnProperty("default")?Yo.default:Yo,Zo=Zo&&Zo.hasOwnProperty("default")?Zo.default:Zo,Jo=Jo&&Jo.hasOwnProperty("default")?Jo.default:Jo,Xo=Xo&&Xo.hasOwnProperty("default")?Xo.default:Xo,Qo=Qo&&Qo.hasOwnProperty("default")?Qo.default:Qo,er=er&&er.hasOwnProperty("default")?er.default:er,tr=tr&&tr.hasOwnProperty("default")?tr.default:tr,nr=nr&&nr.hasOwnProperty("default")?nr.default:nr,ar=ar&&ar.hasOwnProperty("default")?ar.default:ar,sr=sr&&sr.hasOwnProperty("default")?sr.default:sr,or=or&&or.hasOwnProperty("default")?or.default:or,rr=rr&&rr.hasOwnProperty("default")?rr.default:rr,lr=lr&&lr.hasOwnProperty("default")?lr.default:lr,ir=ir&&ir.hasOwnProperty("default")?ir.default:ir,cr=cr&&cr.hasOwnProperty("default")?cr.default:cr,ur=ur&&ur.hasOwnProperty("default")?ur.default:ur,dr=dr&&dr.hasOwnProperty("default")?dr.default:dr,pr=pr&&pr.hasOwnProperty("default")?pr.default:pr,mr=mr&&mr.hasOwnProperty("default")?mr.default:mr,gr=gr&&gr.hasOwnProperty("default")?gr.default:gr,fr=fr&&fr.hasOwnProperty("default")?fr.default:fr,hr=hr&&hr.hasOwnProperty("default")?hr.default:hr,yr=yr&&yr.hasOwnProperty("default")?yr.default:yr,vr=vr&&vr.hasOwnProperty("default")?vr.default:vr,jr=jr&&jr.hasOwnProperty("default")?jr.default:jr,br=br&&br.hasOwnProperty("default")?br.default:br,wr=wr&&wr.hasOwnProperty("default")?wr.default:wr,Sr=Sr&&Sr.hasOwnProperty("default")?Sr.default:Sr,Cr=Cr&&Cr.hasOwnProperty("default")?Cr.default:Cr,Ir=Ir&&Ir.hasOwnProperty("default")?Ir.default:Ir,Pr=Pr&&Pr.hasOwnProperty("default")?Pr.default:Pr,Or=Or&&Or.hasOwnProperty("default")?Or.default:Or,_r=_r&&_r.hasOwnProperty("default")?_r.default:_r,xr=xr&&xr.hasOwnProperty("default")?xr.default:xr,Er=Er&&Er.hasOwnProperty("default")?Er.default:Er,kr=kr&&kr.hasOwnProperty("default")?kr.default:kr,Tr=Tr&&Tr.hasOwnProperty("default")?Tr.default:Tr,Ar=Ar&&Ar.hasOwnProperty("default")?Ar.default:Ar,Dr=Dr&&Dr.hasOwnProperty("default")?Dr.default:Dr,Nr=Nr&&Nr.hasOwnProperty("default")?Nr.default:Nr,Mr=Mr&&Mr.hasOwnProperty("default")?Mr.default:Mr,qr=qr&&qr.hasOwnProperty("default")?qr.default:qr,Lr=Lr&&Lr.hasOwnProperty("default")?Lr.default:Lr,Rr=Rr&&Rr.hasOwnProperty("default")?Rr.default:Rr,$r=$r&&$r.hasOwnProperty("default")?$r.default:$r,Fr=Fr&&Fr.hasOwnProperty("default")?Fr.default:Fr,Ur=Ur&&Ur.hasOwnProperty("default")?Ur.default:Ur,Gr=Gr&&Gr.hasOwnProperty("default")?Gr.default:Gr,Br=Br&&Br.hasOwnProperty("default")?Br.default:Br,zr=zr&&zr.hasOwnProperty("default")?zr.default:zr,Hr=Hr&&Hr.hasOwnProperty("default")?Hr.default:Hr,Vr=Vr&&Vr.hasOwnProperty("default")?Vr.default:Vr,Kr=Kr&&Kr.hasOwnProperty("default")?Kr.default:Kr,Wr=Wr&&Wr.hasOwnProperty("default")?Wr.default:Wr,Yr=Yr&&Yr.hasOwnProperty("default")?Yr.default:Yr,Zr=Zr&&Zr.hasOwnProperty("default")?Zr.default:Zr,Jr=Jr&&Jr.hasOwnProperty("default")?Jr.default:Jr,Xr=Xr&&Xr.hasOwnProperty("default")?Xr.default:Xr,Qr=Qr&&Qr.hasOwnProperty("default")?Qr.default:Qr,el=el&&el.hasOwnProperty("default")?el.default:el,tl=tl&&tl.hasOwnProperty("default")?tl.default:tl,nl=nl&&nl.hasOwnProperty("default")?nl.default:nl,al=al&&al.hasOwnProperty("default")?al.default:al,sl=sl&&sl.hasOwnProperty("default")?sl.default:sl,ol=ol&&ol.hasOwnProperty("default")?ol.default:ol,rl=rl&&rl.hasOwnProperty("default")?rl.default:rl,ll=ll&&ll.hasOwnProperty("default")?ll.default:ll,il=il&&il.hasOwnProperty("default")?il.default:il,cl=cl&&cl.hasOwnProperty("default")?cl.default:cl,ul=ul&&ul.hasOwnProperty("default")?ul.default:ul,dl=dl&&dl.hasOwnProperty("default")?dl.default:dl,pl=pl&&pl.hasOwnProperty("default")?pl.default:pl,ml=ml&&ml.hasOwnProperty("default")?ml.default:ml,gl=gl&&gl.hasOwnProperty("default")?gl.default:gl,fl=fl&&fl.hasOwnProperty("default")?fl.default:fl,hl=hl&&hl.hasOwnProperty("default")?hl.default:hl,yl=yl&&yl.hasOwnProperty("default")?yl.default:yl,vl=vl&&vl.hasOwnProperty("default")?vl.default:vl,jl=jl&&jl.hasOwnProperty("default")?jl.default:jl,bl=bl&&bl.hasOwnProperty("default")?bl.default:bl,wl=wl&&wl.hasOwnProperty("default")?wl.default:wl,Sl=Sl&&Sl.hasOwnProperty("default")?Sl.default:Sl,Cl=Cl&&Cl.hasOwnProperty("default")?Cl.default:Cl,Il=Il&&Il.hasOwnProperty("default")?Il.default:Il,Pl=Pl&&Pl.hasOwnProperty("default")?Pl.default:Pl,Ol=Ol&&Ol.hasOwnProperty("default")?Ol.default:Ol,_l=_l&&_l.hasOwnProperty("default")?_l.default:_l,xl=xl&&xl.hasOwnProperty("default")?xl.default:xl,El=El&&El.hasOwnProperty("default")?El.default:El,kl=kl&&kl.hasOwnProperty("default")?kl.default:kl,Tl=Tl&&Tl.hasOwnProperty("default")?Tl.default:Tl,Al=Al&&Al.hasOwnProperty("default")?Al.default:Al,Dl=Dl&&Dl.hasOwnProperty("default")?Dl.default:Dl,Nl=Nl&&Nl.hasOwnProperty("default")?Nl.default:Nl,Ml=Ml&&Ml.hasOwnProperty("default")?Ml.default:Ml,ql=ql&&ql.hasOwnProperty("default")?ql.default:ql,Ll=Ll&&Ll.hasOwnProperty("default")?Ll.default:Ll,Rl=Rl&&Rl.hasOwnProperty("default")?Rl.default:Rl,$l=$l&&$l.hasOwnProperty("default")?$l.default:$l,Fl=Fl&&Fl.hasOwnProperty("default")?Fl.default:Fl,Ul=Ul&&Ul.hasOwnProperty("default")?Ul.default:Ul,Gl=Gl&&Gl.hasOwnProperty("default")?Gl.default:Gl,Bl=Bl&&Bl.hasOwnProperty("default")?Bl.default:Bl,zl=zl&&zl.hasOwnProperty("default")?zl.default:zl,Hl=Hl&&Hl.hasOwnProperty("default")?Hl.default:Hl,Vl=Vl&&Vl.hasOwnProperty("default")?Vl.default:Vl,Kl=Kl&&Kl.hasOwnProperty("default")?Kl.default:Kl,Wl=Wl&&Wl.hasOwnProperty("default")?Wl.default:Wl,Yl=Yl&&Yl.hasOwnProperty("default")?Yl.default:Yl,Zl=Zl&&Zl.hasOwnProperty("default")?Zl.default:Zl,Jl=Jl&&Jl.hasOwnProperty("default")?Jl.default:Jl,Xl=Xl&&Xl.hasOwnProperty("default")?Xl.default:Xl,Ql=Ql&&Ql.hasOwnProperty("default")?Ql.default:Ql,ei=ei&&ei.hasOwnProperty("default")?ei.default:ei,ti=ti&&ti.hasOwnProperty("default")?ti.default:ti,ni=ni&&ni.hasOwnProperty("default")?ni.default:ni,ai=ai&&ai.hasOwnProperty("default")?ai.default:ai,si=si&&si.hasOwnProperty("default")?si.default:si,oi=oi&&oi.hasOwnProperty("default")?oi.default:oi,ri=ri&&ri.hasOwnProperty("default")?ri.default:ri,li=li&&li.hasOwnProperty("default")?li.default:li,ii=ii&&ii.hasOwnProperty("default")?ii.default:ii,ci=ci&&ci.hasOwnProperty("default")?ci.default:ci,ui=ui&&ui.hasOwnProperty("default")?ui.default:ui,di=di&&di.hasOwnProperty("default")?di.default:di,pi=pi&&pi.hasOwnProperty("default")?pi.default:pi,mi=mi&&mi.hasOwnProperty("default")?mi.default:mi,gi=gi&&gi.hasOwnProperty("default")?gi.default:gi,fi=fi&&fi.hasOwnProperty("default")?fi.default:fi,hi=hi&&hi.hasOwnProperty("default")?hi.default:hi,yi=yi&&yi.hasOwnProperty("default")?yi.default:yi,vi=vi&&vi.hasOwnProperty("default")?vi.default:vi,ji=ji&&ji.hasOwnProperty("default")?ji.default:ji,bi=bi&&bi.hasOwnProperty("default")?bi.default:bi,wi=wi&&wi.hasOwnProperty("default")?wi.default:wi,Si=Si&&Si.hasOwnProperty("default")?Si.default:Si,Ci=Ci&&Ci.hasOwnProperty("default")?Ci.default:Ci,Ii=Ii&&Ii.hasOwnProperty("default")?Ii.default:Ii,Pi=Pi&&Pi.hasOwnProperty("default")?Pi.default:Pi,Oi=Oi&&Oi.hasOwnProperty("default")?Oi.default:Oi,_i=_i&&_i.hasOwnProperty("default")?_i.default:_i,xi=xi&&xi.hasOwnProperty("default")?xi.default:xi,Ei=Ei&&Ei.hasOwnProperty("default")?Ei.default:Ei,ki=ki&&ki.hasOwnProperty("default")?ki.default:ki,Ti=Ti&&Ti.hasOwnProperty("default")?Ti.default:Ti,Ai=Ai&&Ai.hasOwnProperty("default")?Ai.default:Ai,Di=Di&&Di.hasOwnProperty("default")?Di.default:Di,Ni=Ni&&Ni.hasOwnProperty("default")?Ni.default:Ni,Mi=Mi&&Mi.hasOwnProperty("default")?Mi.default:Mi,qi=qi&&qi.hasOwnProperty("default")?qi.default:qi,Li=Li&&Li.hasOwnProperty("default")?Li.default:Li,Ri=Ri&&Ri.hasOwnProperty("default")?Ri.default:Ri,$i=$i&&$i.hasOwnProperty("default")?$i.default:$i,Fi=Fi&&Fi.hasOwnProperty("default")?Fi.default:Fi,Ui=Ui&&Ui.hasOwnProperty("default")?Ui.default:Ui,Gi=Gi&&Gi.hasOwnProperty("default")?Gi.default:Gi,Bi=Bi&&Bi.hasOwnProperty("default")?Bi.default:Bi,zi=zi&&zi.hasOwnProperty("default")?zi.default:zi,Hi=Hi&&Hi.hasOwnProperty("default")?Hi.default:Hi,Vi=Vi&&Vi.hasOwnProperty("default")?Vi.default:Vi,Ki=Ki&&Ki.hasOwnProperty("default")?Ki.default:Ki,Wi=Wi&&Wi.hasOwnProperty("default")?Wi.default:Wi,Yi=Yi&&Yi.hasOwnProperty("default")?Yi.default:Yi,Zi=Zi&&Zi.hasOwnProperty("default")?Zi.default:Zi,Ji=Ji&&Ji.hasOwnProperty("default")?Ji.default:Ji;
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/router"),require("rxjs"),require("rxjs/operators"),require("lodash-es"),require("@c8y/ngx-components/api"),require("@c8y/client"),require("@ngx-translate/core"),require("lodash"),require("@angular/common"),require("@angular/common/http"),require("!file-loader?name=assets/locales/angular/af-NA.js!@angular/common/locales/af-NA.js"),require("!file-loader?name=assets/locales/angular/af.js!@angular/common/locales/af.js"),require("!file-loader?name=assets/locales/angular/agq.js!@angular/common/locales/agq.js"),require("!file-loader?name=assets/locales/angular/ak.js!@angular/common/locales/ak.js"),require("!file-loader?name=assets/locales/angular/am.js!@angular/common/locales/am.js"),require("!file-loader?name=assets/locales/angular/ar-AE.js!@angular/common/locales/ar-AE.js"),require("!file-loader?name=assets/locales/angular/ar-BH.js!@angular/common/locales/ar-BH.js"),require("!file-loader?name=assets/locales/angular/ar-DJ.js!@angular/common/locales/ar-DJ.js"),require("!file-loader?name=assets/locales/angular/ar-DZ.js!@angular/common/locales/ar-DZ.js"),require("!file-loader?name=assets/locales/angular/ar-EG.js!@angular/common/locales/ar-EG.js"),require("!file-loader?name=assets/locales/angular/ar-EH.js!@angular/common/locales/ar-EH.js"),require("!file-loader?name=assets/locales/angular/ar-ER.js!@angular/common/locales/ar-ER.js"),require("!file-loader?name=assets/locales/angular/ar-IL.js!@angular/common/locales/ar-IL.js"),require("!file-loader?name=assets/locales/angular/ar-IQ.js!@angular/common/locales/ar-IQ.js"),require("!file-loader?name=assets/locales/angular/ar-JO.js!@angular/common/locales/ar-JO.js"),require("!file-loader?name=assets/locales/angular/ar-KM.js!@angular/common/locales/ar-KM.js"),require("!file-loader?name=assets/locales/angular/ar-KW.js!@angular/common/locales/ar-KW.js"),require("!file-loader?name=assets/locales/angular/ar-LB.js!@angular/common/locales/ar-LB.js"),require("!file-loader?name=assets/locales/angular/ar-LY.js!@angular/common/locales/ar-LY.js"),require("!file-loader?name=assets/locales/angular/ar-MA.js!@angular/common/locales/ar-MA.js"),require("!file-loader?name=assets/locales/angular/ar-MR.js!@angular/common/locales/ar-MR.js"),require("!file-loader?name=assets/locales/angular/ar-OM.js!@angular/common/locales/ar-OM.js"),require("!file-loader?name=assets/locales/angular/ar-PS.js!@angular/common/locales/ar-PS.js"),require("!file-loader?name=assets/locales/angular/ar-QA.js!@angular/common/locales/ar-QA.js"),require("!file-loader?name=assets/locales/angular/ar-SA.js!@angular/common/locales/ar-SA.js"),require("!file-loader?name=assets/locales/angular/ar-SD.js!@angular/common/locales/ar-SD.js"),require("!file-loader?name=assets/locales/angular/ar-SO.js!@angular/common/locales/ar-SO.js"),require("!file-loader?name=assets/locales/angular/ar-SS.js!@angular/common/locales/ar-SS.js"),require("!file-loader?name=assets/locales/angular/ar-SY.js!@angular/common/locales/ar-SY.js"),require("!file-loader?name=assets/locales/angular/ar-TD.js!@angular/common/locales/ar-TD.js"),require("!file-loader?name=assets/locales/angular/ar-TN.js!@angular/common/locales/ar-TN.js"),require("!file-loader?name=assets/locales/angular/ar-YE.js!@angular/common/locales/ar-YE.js"),require("!file-loader?name=assets/locales/angular/ar.js!@angular/common/locales/ar.js"),require("!file-loader?name=assets/locales/angular/as.js!@angular/common/locales/as.js"),require("!file-loader?name=assets/locales/angular/asa.js!@angular/common/locales/asa.js"),require("!file-loader?name=assets/locales/angular/ast.js!@angular/common/locales/ast.js"),require("!file-loader?name=assets/locales/angular/az-Cyrl.js!@angular/common/locales/az-Cyrl.js"),require("!file-loader?name=assets/locales/angular/az-Latn.js!@angular/common/locales/az-Latn.js"),require("!file-loader?name=assets/locales/angular/az.js!@angular/common/locales/az.js"),require("!file-loader?name=assets/locales/angular/bas.js!@angular/common/locales/bas.js"),require("!file-loader?name=assets/locales/angular/be.js!@angular/common/locales/be.js"),require("!file-loader?name=assets/locales/angular/bem.js!@angular/common/locales/bem.js"),require("!file-loader?name=assets/locales/angular/bez.js!@angular/common/locales/bez.js"),require("!file-loader?name=assets/locales/angular/bg.js!@angular/common/locales/bg.js"),require("!file-loader?name=assets/locales/angular/bm.js!@angular/common/locales/bm.js"),require("!file-loader?name=assets/locales/angular/bn-IN.js!@angular/common/locales/bn-IN.js"),require("!file-loader?name=assets/locales/angular/bn.js!@angular/common/locales/bn.js"),require("!file-loader?name=assets/locales/angular/bo-IN.js!@angular/common/locales/bo-IN.js"),require("!file-loader?name=assets/locales/angular/bo.js!@angular/common/locales/bo.js"),require("!file-loader?name=assets/locales/angular/br.js!@angular/common/locales/br.js"),require("!file-loader?name=assets/locales/angular/brx.js!@angular/common/locales/brx.js"),require("!file-loader?name=assets/locales/angular/bs-Cyrl.js!@angular/common/locales/bs-Cyrl.js"),require("!file-loader?name=assets/locales/angular/bs-Latn.js!@angular/common/locales/bs-Latn.js"),require("!file-loader?name=assets/locales/angular/bs.js!@angular/common/locales/bs.js"),require("!file-loader?name=assets/locales/angular/ca-AD.js!@angular/common/locales/ca-AD.js"),require("!file-loader?name=assets/locales/angular/ca-ES-VALENCIA.js!@angular/common/locales/ca-ES-VALENCIA.js"),require("!file-loader?name=assets/locales/angular/ca-FR.js!@angular/common/locales/ca-FR.js"),require("!file-loader?name=assets/locales/angular/ca-IT.js!@angular/common/locales/ca-IT.js"),require("!file-loader?name=assets/locales/angular/ca.js!@angular/common/locales/ca.js"),require("!file-loader?name=assets/locales/angular/ccp-IN.js!@angular/common/locales/ccp-IN.js"),require("!file-loader?name=assets/locales/angular/ccp.js!@angular/common/locales/ccp.js"),require("!file-loader?name=assets/locales/angular/ce.js!@angular/common/locales/ce.js"),require("!file-loader?name=assets/locales/angular/cgg.js!@angular/common/locales/cgg.js"),require("!file-loader?name=assets/locales/angular/chr.js!@angular/common/locales/chr.js"),require("!file-loader?name=assets/locales/angular/ckb-IR.js!@angular/common/locales/ckb-IR.js"),require("!file-loader?name=assets/locales/angular/ckb.js!@angular/common/locales/ckb.js"),require("!file-loader?name=assets/locales/angular/cs.js!@angular/common/locales/cs.js"),require("!file-loader?name=assets/locales/angular/cu.js!@angular/common/locales/cu.js"),require("!file-loader?name=assets/locales/angular/cy.js!@angular/common/locales/cy.js"),require("!file-loader?name=assets/locales/angular/da-GL.js!@angular/common/locales/da-GL.js"),require("!file-loader?name=assets/locales/angular/da.js!@angular/common/locales/da.js"),require("!file-loader?name=assets/locales/angular/dav.js!@angular/common/locales/dav.js"),require("!file-loader?name=assets/locales/angular/de-AT.js!@angular/common/locales/de-AT.js"),require("!file-loader?name=assets/locales/angular/de-BE.js!@angular/common/locales/de-BE.js"),require("!file-loader?name=assets/locales/angular/de-CH.js!@angular/common/locales/de-CH.js"),require("!file-loader?name=assets/locales/angular/de-IT.js!@angular/common/locales/de-IT.js"),require("!file-loader?name=assets/locales/angular/de-LI.js!@angular/common/locales/de-LI.js"),require("!file-loader?name=assets/locales/angular/de-LU.js!@angular/common/locales/de-LU.js"),require("!file-loader?name=assets/locales/angular/de.js!@angular/common/locales/de.js"),require("!file-loader?name=assets/locales/angular/dje.js!@angular/common/locales/dje.js"),require("!file-loader?name=assets/locales/angular/dsb.js!@angular/common/locales/dsb.js"),require("!file-loader?name=assets/locales/angular/dua.js!@angular/common/locales/dua.js"),require("!file-loader?name=assets/locales/angular/dyo.js!@angular/common/locales/dyo.js"),require("!file-loader?name=assets/locales/angular/dz.js!@angular/common/locales/dz.js"),require("!file-loader?name=assets/locales/angular/ebu.js!@angular/common/locales/ebu.js"),require("!file-loader?name=assets/locales/angular/ee-TG.js!@angular/common/locales/ee-TG.js"),require("!file-loader?name=assets/locales/angular/ee.js!@angular/common/locales/ee.js"),require("!file-loader?name=assets/locales/angular/el-CY.js!@angular/common/locales/el-CY.js"),require("!file-loader?name=assets/locales/angular/el.js!@angular/common/locales/el.js"),require("!file-loader?name=assets/locales/angular/en-001.js!@angular/common/locales/en-001.js"),require("!file-loader?name=assets/locales/angular/en-150.js!@angular/common/locales/en-150.js"),require("!file-loader?name=assets/locales/angular/en-AG.js!@angular/common/locales/en-AG.js"),require("!file-loader?name=assets/locales/angular/en-AI.js!@angular/common/locales/en-AI.js"),require("!file-loader?name=assets/locales/angular/en-AS.js!@angular/common/locales/en-AS.js"),require("!file-loader?name=assets/locales/angular/en-AT.js!@angular/common/locales/en-AT.js"),require("!file-loader?name=assets/locales/angular/en-AU.js!@angular/common/locales/en-AU.js"),require("!file-loader?name=assets/locales/angular/en-BB.js!@angular/common/locales/en-BB.js"),require("!file-loader?name=assets/locales/angular/en-BE.js!@angular/common/locales/en-BE.js"),require("!file-loader?name=assets/locales/angular/en-BI.js!@angular/common/locales/en-BI.js"),require("!file-loader?name=assets/locales/angular/en-BM.js!@angular/common/locales/en-BM.js"),require("!file-loader?name=assets/locales/angular/en-BS.js!@angular/common/locales/en-BS.js"),require("!file-loader?name=assets/locales/angular/en-BW.js!@angular/common/locales/en-BW.js"),require("!file-loader?name=assets/locales/angular/en-BZ.js!@angular/common/locales/en-BZ.js"),require("!file-loader?name=assets/locales/angular/en-CA.js!@angular/common/locales/en-CA.js"),require("!file-loader?name=assets/locales/angular/en-CC.js!@angular/common/locales/en-CC.js"),require("!file-loader?name=assets/locales/angular/en-CH.js!@angular/common/locales/en-CH.js"),require("!file-loader?name=assets/locales/angular/en-CK.js!@angular/common/locales/en-CK.js"),require("!file-loader?name=assets/locales/angular/en-CM.js!@angular/common/locales/en-CM.js"),require("!file-loader?name=assets/locales/angular/en-CX.js!@angular/common/locales/en-CX.js"),require("!file-loader?name=assets/locales/angular/en-CY.js!@angular/common/locales/en-CY.js"),require("!file-loader?name=assets/locales/angular/en-DE.js!@angular/common/locales/en-DE.js"),require("!file-loader?name=assets/locales/angular/en-DG.js!@angular/common/locales/en-DG.js"),require("!file-loader?name=assets/locales/angular/en-DK.js!@angular/common/locales/en-DK.js"),require("!file-loader?name=assets/locales/angular/en-DM.js!@angular/common/locales/en-DM.js"),require("!file-loader?name=assets/locales/angular/en-ER.js!@angular/common/locales/en-ER.js"),require("!file-loader?name=assets/locales/angular/en-FI.js!@angular/common/locales/en-FI.js"),require("!file-loader?name=assets/locales/angular/en-FJ.js!@angular/common/locales/en-FJ.js"),require("!file-loader?name=assets/locales/angular/en-FK.js!@angular/common/locales/en-FK.js"),require("!file-loader?name=assets/locales/angular/en-FM.js!@angular/common/locales/en-FM.js"),require("!file-loader?name=assets/locales/angular/en-GB.js!@angular/common/locales/en-GB.js"),require("!file-loader?name=assets/locales/angular/en-GD.js!@angular/common/locales/en-GD.js"),require("!file-loader?name=assets/locales/angular/en-GG.js!@angular/common/locales/en-GG.js"),require("!file-loader?name=assets/locales/angular/en-GH.js!@angular/common/locales/en-GH.js"),require("!file-loader?name=assets/locales/angular/en-GI.js!@angular/common/locales/en-GI.js"),require("!file-loader?name=assets/locales/angular/en-GM.js!@angular/common/locales/en-GM.js"),require("!file-loader?name=assets/locales/angular/en-GU.js!@angular/common/locales/en-GU.js"),require("!file-loader?name=assets/locales/angular/en-GY.js!@angular/common/locales/en-GY.js"),require("!file-loader?name=assets/locales/angular/en-HK.js!@angular/common/locales/en-HK.js"),require("!file-loader?name=assets/locales/angular/en-IE.js!@angular/common/locales/en-IE.js"),require("!file-loader?name=assets/locales/angular/en-IL.js!@angular/common/locales/en-IL.js"),require("!file-loader?name=assets/locales/angular/en-IM.js!@angular/common/locales/en-IM.js"),require("!file-loader?name=assets/locales/angular/en-IN.js!@angular/common/locales/en-IN.js"),require("!file-loader?name=assets/locales/angular/en-IO.js!@angular/common/locales/en-IO.js"),require("!file-loader?name=assets/locales/angular/en-JE.js!@angular/common/locales/en-JE.js"),require("!file-loader?name=assets/locales/angular/en-JM.js!@angular/common/locales/en-JM.js"),require("!file-loader?name=assets/locales/angular/en-KE.js!@angular/common/locales/en-KE.js"),require("!file-loader?name=assets/locales/angular/en-KI.js!@angular/common/locales/en-KI.js"),require("!file-loader?name=assets/locales/angular/en-KN.js!@angular/common/locales/en-KN.js"),require("!file-loader?name=assets/locales/angular/en-KY.js!@angular/common/locales/en-KY.js"),require("!file-loader?name=assets/locales/angular/en-LC.js!@angular/common/locales/en-LC.js"),require("!file-loader?name=assets/locales/angular/en-LR.js!@angular/common/locales/en-LR.js"),require("!file-loader?name=assets/locales/angular/en-LS.js!@angular/common/locales/en-LS.js"),require("!file-loader?name=assets/locales/angular/en-MG.js!@angular/common/locales/en-MG.js"),require("!file-loader?name=assets/locales/angular/en-MH.js!@angular/common/locales/en-MH.js"),require("!file-loader?name=assets/locales/angular/en-MO.js!@angular/common/locales/en-MO.js"),require("!file-loader?name=assets/locales/angular/en-MP.js!@angular/common/locales/en-MP.js"),require("!file-loader?name=assets/locales/angular/en-MS.js!@angular/common/locales/en-MS.js"),require("!file-loader?name=assets/locales/angular/en-MT.js!@angular/common/locales/en-MT.js"),require("!file-loader?name=assets/locales/angular/en-MU.js!@angular/common/locales/en-MU.js"),require("!file-loader?name=assets/locales/angular/en-MW.js!@angular/common/locales/en-MW.js"),require("!file-loader?name=assets/locales/angular/en-MY.js!@angular/common/locales/en-MY.js"),require("!file-loader?name=assets/locales/angular/en-NA.js!@angular/common/locales/en-NA.js"),require("!file-loader?name=assets/locales/angular/en-NF.js!@angular/common/locales/en-NF.js"),require("!file-loader?name=assets/locales/angular/en-NG.js!@angular/common/locales/en-NG.js"),require("!file-loader?name=assets/locales/angular/en-NL.js!@angular/common/locales/en-NL.js"),require("!file-loader?name=assets/locales/angular/en-NR.js!@angular/common/locales/en-NR.js"),require("!file-loader?name=assets/locales/angular/en-NU.js!@angular/common/locales/en-NU.js"),require("!file-loader?name=assets/locales/angular/en-NZ.js!@angular/common/locales/en-NZ.js"),require("!file-loader?name=assets/locales/angular/en-PG.js!@angular/common/locales/en-PG.js"),require("!file-loader?name=assets/locales/angular/en-PH.js!@angular/common/locales/en-PH.js"),require("!file-loader?name=assets/locales/angular/en-PK.js!@angular/common/locales/en-PK.js"),require("!file-loader?name=assets/locales/angular/en-PN.js!@angular/common/locales/en-PN.js"),require("!file-loader?name=assets/locales/angular/en-PR.js!@angular/common/locales/en-PR.js"),require("!file-loader?name=assets/locales/angular/en-PW.js!@angular/common/locales/en-PW.js"),require("!file-loader?name=assets/locales/angular/en-RW.js!@angular/common/locales/en-RW.js"),require("!file-loader?name=assets/locales/angular/en-SB.js!@angular/common/locales/en-SB.js"),require("!file-loader?name=assets/locales/angular/en-SC.js!@angular/common/locales/en-SC.js"),require("!file-loader?name=assets/locales/angular/en-SD.js!@angular/common/locales/en-SD.js"),require("!file-loader?name=assets/locales/angular/en-SE.js!@angular/common/locales/en-SE.js"),require("!file-loader?name=assets/locales/angular/en-SG.js!@angular/common/locales/en-SG.js"),require("!file-loader?name=assets/locales/angular/en-SH.js!@angular/common/locales/en-SH.js"),require("!file-loader?name=assets/locales/angular/en-SI.js!@angular/common/locales/en-SI.js"),require("!file-loader?name=assets/locales/angular/en-SL.js!@angular/common/locales/en-SL.js"),require("!file-loader?name=assets/locales/angular/en-SS.js!@angular/common/locales/en-SS.js"),require("!file-loader?name=assets/locales/angular/en-SX.js!@angular/common/locales/en-SX.js"),require("!file-loader?name=assets/locales/angular/en-SZ.js!@angular/common/locales/en-SZ.js"),require("!file-loader?name=assets/locales/angular/en-TC.js!@angular/common/locales/en-TC.js"),require("!file-loader?name=assets/locales/angular/en-TK.js!@angular/common/locales/en-TK.js"),require("!file-loader?name=assets/locales/angular/en-TO.js!@angular/common/locales/en-TO.js"),require("!file-loader?name=assets/locales/angular/en-TT.js!@angular/common/locales/en-TT.js"),require("!file-loader?name=assets/locales/angular/en-TV.js!@angular/common/locales/en-TV.js"),require("!file-loader?name=assets/locales/angular/en-TZ.js!@angular/common/locales/en-TZ.js"),require("!file-loader?name=assets/locales/angular/en-UG.js!@angular/common/locales/en-UG.js"),require("!file-loader?name=assets/locales/angular/en-UM.js!@angular/common/locales/en-UM.js"),require("!file-loader?name=assets/locales/angular/en-US-POSIX.js!@angular/common/locales/en-US-POSIX.js"),require("!file-loader?name=assets/locales/angular/en-VC.js!@angular/common/locales/en-VC.js"),require("!file-loader?name=assets/locales/angular/en-VG.js!@angular/common/locales/en-VG.js"),require("!file-loader?name=assets/locales/angular/en-VI.js!@angular/common/locales/en-VI.js"),require("!file-loader?name=assets/locales/angular/en-VU.js!@angular/common/locales/en-VU.js"),require("!file-loader?name=assets/locales/angular/en-WS.js!@angular/common/locales/en-WS.js"),require("!file-loader?name=assets/locales/angular/en-ZA.js!@angular/common/locales/en-ZA.js"),require("!file-loader?name=assets/locales/angular/en-ZM.js!@angular/common/locales/en-ZM.js"),require("!file-loader?name=assets/locales/angular/en-ZW.js!@angular/common/locales/en-ZW.js"),require("!file-loader?name=assets/locales/angular/en.js!@angular/common/locales/en.js"),require("!file-loader?name=assets/locales/angular/eo.js!@angular/common/locales/eo.js"),require("!file-loader?name=assets/locales/angular/es-419.js!@angular/common/locales/es-419.js"),require("!file-loader?name=assets/locales/angular/es-AR.js!@angular/common/locales/es-AR.js"),require("!file-loader?name=assets/locales/angular/es-BO.js!@angular/common/locales/es-BO.js"),require("!file-loader?name=assets/locales/angular/es-BR.js!@angular/common/locales/es-BR.js"),require("!file-loader?name=assets/locales/angular/es-BZ.js!@angular/common/locales/es-BZ.js"),require("!file-loader?name=assets/locales/angular/es-CL.js!@angular/common/locales/es-CL.js"),require("!file-loader?name=assets/locales/angular/es-CO.js!@angular/common/locales/es-CO.js"),require("!file-loader?name=assets/locales/angular/es-CR.js!@angular/common/locales/es-CR.js"),require("!file-loader?name=assets/locales/angular/es-CU.js!@angular/common/locales/es-CU.js"),require("!file-loader?name=assets/locales/angular/es-DO.js!@angular/common/locales/es-DO.js"),require("!file-loader?name=assets/locales/angular/es-EA.js!@angular/common/locales/es-EA.js"),require("!file-loader?name=assets/locales/angular/es-EC.js!@angular/common/locales/es-EC.js"),require("!file-loader?name=assets/locales/angular/es-GQ.js!@angular/common/locales/es-GQ.js"),require("!file-loader?name=assets/locales/angular/es-GT.js!@angular/common/locales/es-GT.js"),require("!file-loader?name=assets/locales/angular/es-HN.js!@angular/common/locales/es-HN.js"),require("!file-loader?name=assets/locales/angular/es-IC.js!@angular/common/locales/es-IC.js"),require("!file-loader?name=assets/locales/angular/es-MX.js!@angular/common/locales/es-MX.js"),require("!file-loader?name=assets/locales/angular/es-NI.js!@angular/common/locales/es-NI.js"),require("!file-loader?name=assets/locales/angular/es-PA.js!@angular/common/locales/es-PA.js"),require("!file-loader?name=assets/locales/angular/es-PE.js!@angular/common/locales/es-PE.js"),require("!file-loader?name=assets/locales/angular/es-PH.js!@angular/common/locales/es-PH.js"),require("!file-loader?name=assets/locales/angular/es-PR.js!@angular/common/locales/es-PR.js"),require("!file-loader?name=assets/locales/angular/es-PY.js!@angular/common/locales/es-PY.js"),require("!file-loader?name=assets/locales/angular/es-SV.js!@angular/common/locales/es-SV.js"),require("!file-loader?name=assets/locales/angular/es-US.js!@angular/common/locales/es-US.js"),require("!file-loader?name=assets/locales/angular/es-UY.js!@angular/common/locales/es-UY.js"),require("!file-loader?name=assets/locales/angular/es-VE.js!@angular/common/locales/es-VE.js"),require("!file-loader?name=assets/locales/angular/es.js!@angular/common/locales/es.js"),require("!file-loader?name=assets/locales/angular/et.js!@angular/common/locales/et.js"),require("!file-loader?name=assets/locales/angular/eu.js!@angular/common/locales/eu.js"),require("!file-loader?name=assets/locales/angular/ewo.js!@angular/common/locales/ewo.js"),require("!file-loader?name=assets/locales/angular/fa-AF.js!@angular/common/locales/fa-AF.js"),require("!file-loader?name=assets/locales/angular/fa.js!@angular/common/locales/fa.js"),require("!file-loader?name=assets/locales/angular/ff-CM.js!@angular/common/locales/ff-CM.js"),require("!file-loader?name=assets/locales/angular/ff-GN.js!@angular/common/locales/ff-GN.js"),require("!file-loader?name=assets/locales/angular/ff-MR.js!@angular/common/locales/ff-MR.js"),require("!file-loader?name=assets/locales/angular/ff.js!@angular/common/locales/ff.js"),require("!file-loader?name=assets/locales/angular/fi.js!@angular/common/locales/fi.js"),require("!file-loader?name=assets/locales/angular/fil.js!@angular/common/locales/fil.js"),require("!file-loader?name=assets/locales/angular/fo-DK.js!@angular/common/locales/fo-DK.js"),require("!file-loader?name=assets/locales/angular/fo.js!@angular/common/locales/fo.js"),require("!file-loader?name=assets/locales/angular/fr-BE.js!@angular/common/locales/fr-BE.js"),require("!file-loader?name=assets/locales/angular/fr-BF.js!@angular/common/locales/fr-BF.js"),require("!file-loader?name=assets/locales/angular/fr-BI.js!@angular/common/locales/fr-BI.js"),require("!file-loader?name=assets/locales/angular/fr-BJ.js!@angular/common/locales/fr-BJ.js"),require("!file-loader?name=assets/locales/angular/fr-BL.js!@angular/common/locales/fr-BL.js"),require("!file-loader?name=assets/locales/angular/fr-CA.js!@angular/common/locales/fr-CA.js"),require("!file-loader?name=assets/locales/angular/fr-CD.js!@angular/common/locales/fr-CD.js"),require("!file-loader?name=assets/locales/angular/fr-CF.js!@angular/common/locales/fr-CF.js"),require("!file-loader?name=assets/locales/angular/fr-CG.js!@angular/common/locales/fr-CG.js"),require("!file-loader?name=assets/locales/angular/fr-CH.js!@angular/common/locales/fr-CH.js"),require("!file-loader?name=assets/locales/angular/fr-CI.js!@angular/common/locales/fr-CI.js"),require("!file-loader?name=assets/locales/angular/fr-CM.js!@angular/common/locales/fr-CM.js"),require("!file-loader?name=assets/locales/angular/fr-DJ.js!@angular/common/locales/fr-DJ.js"),require("!file-loader?name=assets/locales/angular/fr-DZ.js!@angular/common/locales/fr-DZ.js"),require("!file-loader?name=assets/locales/angular/fr-GA.js!@angular/common/locales/fr-GA.js"),require("!file-loader?name=assets/locales/angular/fr-GF.js!@angular/common/locales/fr-GF.js"),require("!file-loader?name=assets/locales/angular/fr-GN.js!@angular/common/locales/fr-GN.js"),require("!file-loader?name=assets/locales/angular/fr-GP.js!@angular/common/locales/fr-GP.js"),require("!file-loader?name=assets/locales/angular/fr-GQ.js!@angular/common/locales/fr-GQ.js"),require("!file-loader?name=assets/locales/angular/fr-HT.js!@angular/common/locales/fr-HT.js"),require("!file-loader?name=assets/locales/angular/fr-KM.js!@angular/common/locales/fr-KM.js"),require("!file-loader?name=assets/locales/angular/fr-LU.js!@angular/common/locales/fr-LU.js"),require("!file-loader?name=assets/locales/angular/fr-MA.js!@angular/common/locales/fr-MA.js"),require("!file-loader?name=assets/locales/angular/fr-MC.js!@angular/common/locales/fr-MC.js"),require("!file-loader?name=assets/locales/angular/fr-MF.js!@angular/common/locales/fr-MF.js"),require("!file-loader?name=assets/locales/angular/fr-MG.js!@angular/common/locales/fr-MG.js"),require("!file-loader?name=assets/locales/angular/fr-ML.js!@angular/common/locales/fr-ML.js"),require("!file-loader?name=assets/locales/angular/fr-MQ.js!@angular/common/locales/fr-MQ.js"),require("!file-loader?name=assets/locales/angular/fr-MR.js!@angular/common/locales/fr-MR.js"),require("!file-loader?name=assets/locales/angular/fr-MU.js!@angular/common/locales/fr-MU.js"),require("!file-loader?name=assets/locales/angular/fr-NC.js!@angular/common/locales/fr-NC.js"),require("!file-loader?name=assets/locales/angular/fr-NE.js!@angular/common/locales/fr-NE.js"),require("!file-loader?name=assets/locales/angular/fr-PF.js!@angular/common/locales/fr-PF.js"),require("!file-loader?name=assets/locales/angular/fr-PM.js!@angular/common/locales/fr-PM.js"),require("!file-loader?name=assets/locales/angular/fr-RE.js!@angular/common/locales/fr-RE.js"),require("!file-loader?name=assets/locales/angular/fr-RW.js!@angular/common/locales/fr-RW.js"),require("!file-loader?name=assets/locales/angular/fr-SC.js!@angular/common/locales/fr-SC.js"),require("!file-loader?name=assets/locales/angular/fr-SN.js!@angular/common/locales/fr-SN.js"),require("!file-loader?name=assets/locales/angular/fr-SY.js!@angular/common/locales/fr-SY.js"),require("!file-loader?name=assets/locales/angular/fr-TD.js!@angular/common/locales/fr-TD.js"),require("!file-loader?name=assets/locales/angular/fr-TG.js!@angular/common/locales/fr-TG.js"),require("!file-loader?name=assets/locales/angular/fr-TN.js!@angular/common/locales/fr-TN.js"),require("!file-loader?name=assets/locales/angular/fr-VU.js!@angular/common/locales/fr-VU.js"),require("!file-loader?name=assets/locales/angular/fr-WF.js!@angular/common/locales/fr-WF.js"),require("!file-loader?name=assets/locales/angular/fr-YT.js!@angular/common/locales/fr-YT.js"),require("!file-loader?name=assets/locales/angular/fr.js!@angular/common/locales/fr.js"),require("!file-loader?name=assets/locales/angular/fur.js!@angular/common/locales/fur.js"),require("!file-loader?name=assets/locales/angular/fy.js!@angular/common/locales/fy.js"),require("!file-loader?name=assets/locales/angular/ga.js!@angular/common/locales/ga.js"),require("!file-loader?name=assets/locales/angular/gd.js!@angular/common/locales/gd.js"),require("!file-loader?name=assets/locales/angular/gl.js!@angular/common/locales/gl.js"),require("!file-loader?name=assets/locales/angular/gsw-FR.js!@angular/common/locales/gsw-FR.js"),require("!file-loader?name=assets/locales/angular/gsw-LI.js!@angular/common/locales/gsw-LI.js"),require("!file-loader?name=assets/locales/angular/gsw.js!@angular/common/locales/gsw.js"),require("!file-loader?name=assets/locales/angular/gu.js!@angular/common/locales/gu.js"),require("!file-loader?name=assets/locales/angular/guz.js!@angular/common/locales/guz.js"),require("!file-loader?name=assets/locales/angular/gv.js!@angular/common/locales/gv.js"),require("!file-loader?name=assets/locales/angular/ha-GH.js!@angular/common/locales/ha-GH.js"),require("!file-loader?name=assets/locales/angular/ha-NE.js!@angular/common/locales/ha-NE.js"),require("!file-loader?name=assets/locales/angular/ha.js!@angular/common/locales/ha.js"),require("!file-loader?name=assets/locales/angular/haw.js!@angular/common/locales/haw.js"),require("!file-loader?name=assets/locales/angular/he.js!@angular/common/locales/he.js"),require("!file-loader?name=assets/locales/angular/hi.js!@angular/common/locales/hi.js"),require("!file-loader?name=assets/locales/angular/hr-BA.js!@angular/common/locales/hr-BA.js"),require("!file-loader?name=assets/locales/angular/hr.js!@angular/common/locales/hr.js"),require("!file-loader?name=assets/locales/angular/hsb.js!@angular/common/locales/hsb.js"),require("!file-loader?name=assets/locales/angular/hu.js!@angular/common/locales/hu.js"),require("!file-loader?name=assets/locales/angular/hy.js!@angular/common/locales/hy.js"),require("!file-loader?name=assets/locales/angular/id.js!@angular/common/locales/id.js"),require("!file-loader?name=assets/locales/angular/ig.js!@angular/common/locales/ig.js"),require("!file-loader?name=assets/locales/angular/ii.js!@angular/common/locales/ii.js"),require("!file-loader?name=assets/locales/angular/is.js!@angular/common/locales/is.js"),require("!file-loader?name=assets/locales/angular/it-CH.js!@angular/common/locales/it-CH.js"),require("!file-loader?name=assets/locales/angular/it-SM.js!@angular/common/locales/it-SM.js"),require("!file-loader?name=assets/locales/angular/it-VA.js!@angular/common/locales/it-VA.js"),require("!file-loader?name=assets/locales/angular/it.js!@angular/common/locales/it.js"),require("!file-loader?name=assets/locales/angular/ja.js!@angular/common/locales/ja.js"),require("!file-loader?name=assets/locales/angular/jgo.js!@angular/common/locales/jgo.js"),require("!file-loader?name=assets/locales/angular/jmc.js!@angular/common/locales/jmc.js"),require("!file-loader?name=assets/locales/angular/ka.js!@angular/common/locales/ka.js"),require("!file-loader?name=assets/locales/angular/kab.js!@angular/common/locales/kab.js"),require("!file-loader?name=assets/locales/angular/kam.js!@angular/common/locales/kam.js"),require("!file-loader?name=assets/locales/angular/kde.js!@angular/common/locales/kde.js"),require("!file-loader?name=assets/locales/angular/kea.js!@angular/common/locales/kea.js"),require("!file-loader?name=assets/locales/angular/khq.js!@angular/common/locales/khq.js"),require("!file-loader?name=assets/locales/angular/ki.js!@angular/common/locales/ki.js"),require("!file-loader?name=assets/locales/angular/kk.js!@angular/common/locales/kk.js"),require("!file-loader?name=assets/locales/angular/kkj.js!@angular/common/locales/kkj.js"),require("!file-loader?name=assets/locales/angular/kl.js!@angular/common/locales/kl.js"),require("!file-loader?name=assets/locales/angular/kln.js!@angular/common/locales/kln.js"),require("!file-loader?name=assets/locales/angular/km.js!@angular/common/locales/km.js"),require("!file-loader?name=assets/locales/angular/kn.js!@angular/common/locales/kn.js"),require("!file-loader?name=assets/locales/angular/ko-KP.js!@angular/common/locales/ko-KP.js"),require("!file-loader?name=assets/locales/angular/ko.js!@angular/common/locales/ko.js"),require("!file-loader?name=assets/locales/angular/kok.js!@angular/common/locales/kok.js"),require("!file-loader?name=assets/locales/angular/ks.js!@angular/common/locales/ks.js"),require("!file-loader?name=assets/locales/angular/ksb.js!@angular/common/locales/ksb.js"),require("!file-loader?name=assets/locales/angular/ksf.js!@angular/common/locales/ksf.js"),require("!file-loader?name=assets/locales/angular/ksh.js!@angular/common/locales/ksh.js"),require("!file-loader?name=assets/locales/angular/kw.js!@angular/common/locales/kw.js"),require("!file-loader?name=assets/locales/angular/ky.js!@angular/common/locales/ky.js"),require("!file-loader?name=assets/locales/angular/lag.js!@angular/common/locales/lag.js"),require("!file-loader?name=assets/locales/angular/lb.js!@angular/common/locales/lb.js"),require("!file-loader?name=assets/locales/angular/lg.js!@angular/common/locales/lg.js"),require("!file-loader?name=assets/locales/angular/lkt.js!@angular/common/locales/lkt.js"),require("!file-loader?name=assets/locales/angular/ln-AO.js!@angular/common/locales/ln-AO.js"),require("!file-loader?name=assets/locales/angular/ln-CF.js!@angular/common/locales/ln-CF.js"),require("!file-loader?name=assets/locales/angular/ln-CG.js!@angular/common/locales/ln-CG.js"),require("!file-loader?name=assets/locales/angular/ln.js!@angular/common/locales/ln.js"),require("!file-loader?name=assets/locales/angular/lo.js!@angular/common/locales/lo.js"),require("!file-loader?name=assets/locales/angular/lrc-IQ.js!@angular/common/locales/lrc-IQ.js"),require("!file-loader?name=assets/locales/angular/lrc.js!@angular/common/locales/lrc.js"),require("!file-loader?name=assets/locales/angular/lt.js!@angular/common/locales/lt.js"),require("!file-loader?name=assets/locales/angular/lu.js!@angular/common/locales/lu.js"),require("!file-loader?name=assets/locales/angular/luo.js!@angular/common/locales/luo.js"),require("!file-loader?name=assets/locales/angular/luy.js!@angular/common/locales/luy.js"),require("!file-loader?name=assets/locales/angular/lv.js!@angular/common/locales/lv.js"),require("!file-loader?name=assets/locales/angular/mas-TZ.js!@angular/common/locales/mas-TZ.js"),require("!file-loader?name=assets/locales/angular/mas.js!@angular/common/locales/mas.js"),require("!file-loader?name=assets/locales/angular/mer.js!@angular/common/locales/mer.js"),require("!file-loader?name=assets/locales/angular/mfe.js!@angular/common/locales/mfe.js"),require("!file-loader?name=assets/locales/angular/mg.js!@angular/common/locales/mg.js"),require("!file-loader?name=assets/locales/angular/mgh.js!@angular/common/locales/mgh.js"),require("!file-loader?name=assets/locales/angular/mgo.js!@angular/common/locales/mgo.js"),require("!file-loader?name=assets/locales/angular/mk.js!@angular/common/locales/mk.js"),require("!file-loader?name=assets/locales/angular/ml.js!@angular/common/locales/ml.js"),require("!file-loader?name=assets/locales/angular/mn.js!@angular/common/locales/mn.js"),require("!file-loader?name=assets/locales/angular/mr.js!@angular/common/locales/mr.js"),require("!file-loader?name=assets/locales/angular/ms-BN.js!@angular/common/locales/ms-BN.js"),require("!file-loader?name=assets/locales/angular/ms-SG.js!@angular/common/locales/ms-SG.js"),require("!file-loader?name=assets/locales/angular/ms.js!@angular/common/locales/ms.js"),require("!file-loader?name=assets/locales/angular/mt.js!@angular/common/locales/mt.js"),require("!file-loader?name=assets/locales/angular/mua.js!@angular/common/locales/mua.js"),require("!file-loader?name=assets/locales/angular/my.js!@angular/common/locales/my.js"),require("!file-loader?name=assets/locales/angular/mzn.js!@angular/common/locales/mzn.js"),require("!file-loader?name=assets/locales/angular/naq.js!@angular/common/locales/naq.js"),require("!file-loader?name=assets/locales/angular/nb-SJ.js!@angular/common/locales/nb-SJ.js"),require("!file-loader?name=assets/locales/angular/nb.js!@angular/common/locales/nb.js"),require("!file-loader?name=assets/locales/angular/nd.js!@angular/common/locales/nd.js"),require("!file-loader?name=assets/locales/angular/nds-NL.js!@angular/common/locales/nds-NL.js"),require("!file-loader?name=assets/locales/angular/nds.js!@angular/common/locales/nds.js"),require("!file-loader?name=assets/locales/angular/ne-IN.js!@angular/common/locales/ne-IN.js"),require("!file-loader?name=assets/locales/angular/ne.js!@angular/common/locales/ne.js"),require("!file-loader?name=assets/locales/angular/nl-AW.js!@angular/common/locales/nl-AW.js"),require("!file-loader?name=assets/locales/angular/nl-BE.js!@angular/common/locales/nl-BE.js"),require("!file-loader?name=assets/locales/angular/nl-BQ.js!@angular/common/locales/nl-BQ.js"),require("!file-loader?name=assets/locales/angular/nl-CW.js!@angular/common/locales/nl-CW.js"),require("!file-loader?name=assets/locales/angular/nl-SR.js!@angular/common/locales/nl-SR.js"),require("!file-loader?name=assets/locales/angular/nl-SX.js!@angular/common/locales/nl-SX.js"),require("!file-loader?name=assets/locales/angular/nl.js!@angular/common/locales/nl.js"),require("!file-loader?name=assets/locales/angular/nmg.js!@angular/common/locales/nmg.js"),require("!file-loader?name=assets/locales/angular/nn.js!@angular/common/locales/nn.js"),require("!file-loader?name=assets/locales/angular/nnh.js!@angular/common/locales/nnh.js"),require("!file-loader?name=assets/locales/angular/nus.js!@angular/common/locales/nus.js"),require("!file-loader?name=assets/locales/angular/nyn.js!@angular/common/locales/nyn.js"),require("!file-loader?name=assets/locales/angular/om-KE.js!@angular/common/locales/om-KE.js"),require("!file-loader?name=assets/locales/angular/om.js!@angular/common/locales/om.js"),require("!file-loader?name=assets/locales/angular/or.js!@angular/common/locales/or.js"),require("!file-loader?name=assets/locales/angular/os-RU.js!@angular/common/locales/os-RU.js"),require("!file-loader?name=assets/locales/angular/os.js!@angular/common/locales/os.js"),require("!file-loader?name=assets/locales/angular/pa-Arab.js!@angular/common/locales/pa-Arab.js"),require("!file-loader?name=assets/locales/angular/pa-Guru.js!@angular/common/locales/pa-Guru.js"),require("!file-loader?name=assets/locales/angular/pa.js!@angular/common/locales/pa.js"),require("!file-loader?name=assets/locales/angular/pl.js!@angular/common/locales/pl.js"),require("!file-loader?name=assets/locales/angular/prg.js!@angular/common/locales/prg.js"),require("!file-loader?name=assets/locales/angular/ps.js!@angular/common/locales/ps.js"),require("!file-loader?name=assets/locales/angular/pt-AO.js!@angular/common/locales/pt-AO.js"),require("!file-loader?name=assets/locales/angular/pt-CH.js!@angular/common/locales/pt-CH.js"),require("!file-loader?name=assets/locales/angular/pt-CV.js!@angular/common/locales/pt-CV.js"),require("!file-loader?name=assets/locales/angular/pt-GQ.js!@angular/common/locales/pt-GQ.js"),require("!file-loader?name=assets/locales/angular/pt-GW.js!@angular/common/locales/pt-GW.js"),require("!file-loader?name=assets/locales/angular/pt-LU.js!@angular/common/locales/pt-LU.js"),require("!file-loader?name=assets/locales/angular/pt-MO.js!@angular/common/locales/pt-MO.js"),require("!file-loader?name=assets/locales/angular/pt-MZ.js!@angular/common/locales/pt-MZ.js"),require("!file-loader?name=assets/locales/angular/pt-PT.js!@angular/common/locales/pt-PT.js"),require("!file-loader?name=assets/locales/angular/pt-ST.js!@angular/common/locales/pt-ST.js"),require("!file-loader?name=assets/locales/angular/pt-TL.js!@angular/common/locales/pt-TL.js"),require("!file-loader?name=assets/locales/angular/pt.js!@angular/common/locales/pt.js"),require("!file-loader?name=assets/locales/angular/qu-BO.js!@angular/common/locales/qu-BO.js"),require("!file-loader?name=assets/locales/angular/qu-EC.js!@angular/common/locales/qu-EC.js"),require("!file-loader?name=assets/locales/angular/qu.js!@angular/common/locales/qu.js"),require("!file-loader?name=assets/locales/angular/rm.js!@angular/common/locales/rm.js"),require("!file-loader?name=assets/locales/angular/rn.js!@angular/common/locales/rn.js"),require("!file-loader?name=assets/locales/angular/ro-MD.js!@angular/common/locales/ro-MD.js"),require("!file-loader?name=assets/locales/angular/ro.js!@angular/common/locales/ro.js"),require("!file-loader?name=assets/locales/angular/rof.js!@angular/common/locales/rof.js"),require("!file-loader?name=assets/locales/angular/root.js!@angular/common/locales/root.js"),require("!file-loader?name=assets/locales/angular/ru-BY.js!@angular/common/locales/ru-BY.js"),require("!file-loader?name=assets/locales/angular/ru-KG.js!@angular/common/locales/ru-KG.js"),require("!file-loader?name=assets/locales/angular/ru-KZ.js!@angular/common/locales/ru-KZ.js"),require("!file-loader?name=assets/locales/angular/ru-MD.js!@angular/common/locales/ru-MD.js"),require("!file-loader?name=assets/locales/angular/ru-UA.js!@angular/common/locales/ru-UA.js"),require("!file-loader?name=assets/locales/angular/ru.js!@angular/common/locales/ru.js"),require("!file-loader?name=assets/locales/angular/rw.js!@angular/common/locales/rw.js"),require("!file-loader?name=assets/locales/angular/rwk.js!@angular/common/locales/rwk.js"),require("!file-loader?name=assets/locales/angular/sah.js!@angular/common/locales/sah.js"),require("!file-loader?name=assets/locales/angular/saq.js!@angular/common/locales/saq.js"),require("!file-loader?name=assets/locales/angular/sbp.js!@angular/common/locales/sbp.js"),require("!file-loader?name=assets/locales/angular/sd.js!@angular/common/locales/sd.js"),require("!file-loader?name=assets/locales/angular/se-FI.js!@angular/common/locales/se-FI.js"),require("!file-loader?name=assets/locales/angular/se-SE.js!@angular/common/locales/se-SE.js"),require("!file-loader?name=assets/locales/angular/se.js!@angular/common/locales/se.js"),require("!file-loader?name=assets/locales/angular/seh.js!@angular/common/locales/seh.js"),require("!file-loader?name=assets/locales/angular/ses.js!@angular/common/locales/ses.js"),require("!file-loader?name=assets/locales/angular/sg.js!@angular/common/locales/sg.js"),require("!file-loader?name=assets/locales/angular/shi-Latn.js!@angular/common/locales/shi-Latn.js"),require("!file-loader?name=assets/locales/angular/shi-Tfng.js!@angular/common/locales/shi-Tfng.js"),require("!file-loader?name=assets/locales/angular/shi.js!@angular/common/locales/shi.js"),require("!file-loader?name=assets/locales/angular/si.js!@angular/common/locales/si.js"),require("!file-loader?name=assets/locales/angular/sk.js!@angular/common/locales/sk.js"),require("!file-loader?name=assets/locales/angular/sl.js!@angular/common/locales/sl.js"),require("!file-loader?name=assets/locales/angular/smn.js!@angular/common/locales/smn.js"),require("!file-loader?name=assets/locales/angular/sn.js!@angular/common/locales/sn.js"),require("!file-loader?name=assets/locales/angular/so-DJ.js!@angular/common/locales/so-DJ.js"),require("!file-loader?name=assets/locales/angular/so-ET.js!@angular/common/locales/so-ET.js"),require("!file-loader?name=assets/locales/angular/so-KE.js!@angular/common/locales/so-KE.js"),require("!file-loader?name=assets/locales/angular/so.js!@angular/common/locales/so.js"),require("!file-loader?name=assets/locales/angular/sq-MK.js!@angular/common/locales/sq-MK.js"),require("!file-loader?name=assets/locales/angular/sq-XK.js!@angular/common/locales/sq-XK.js"),require("!file-loader?name=assets/locales/angular/sq.js!@angular/common/locales/sq.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl-BA.js!@angular/common/locales/sr-Cyrl-BA.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl-ME.js!@angular/common/locales/sr-Cyrl-ME.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl-XK.js!@angular/common/locales/sr-Cyrl-XK.js"),require("!file-loader?name=assets/locales/angular/sr-Cyrl.js!@angular/common/locales/sr-Cyrl.js"),require("!file-loader?name=assets/locales/angular/sr-Latn-BA.js!@angular/common/locales/sr-Latn-BA.js"),require("!file-loader?name=assets/locales/angular/sr-Latn-ME.js!@angular/common/locales/sr-Latn-ME.js"),require("!file-loader?name=assets/locales/angular/sr-Latn-XK.js!@angular/common/locales/sr-Latn-XK.js"),require("!file-loader?name=assets/locales/angular/sr-Latn.js!@angular/common/locales/sr-Latn.js"),require("!file-loader?name=assets/locales/angular/sr.js!@angular/common/locales/sr.js"),require("!file-loader?name=assets/locales/angular/sv-AX.js!@angular/common/locales/sv-AX.js"),require("!file-loader?name=assets/locales/angular/sv-FI.js!@angular/common/locales/sv-FI.js"),require("!file-loader?name=assets/locales/angular/sv.js!@angular/common/locales/sv.js"),require("!file-loader?name=assets/locales/angular/sw-CD.js!@angular/common/locales/sw-CD.js"),require("!file-loader?name=assets/locales/angular/sw-KE.js!@angular/common/locales/sw-KE.js"),require("!file-loader?name=assets/locales/angular/sw-UG.js!@angular/common/locales/sw-UG.js"),require("!file-loader?name=assets/locales/angular/sw.js!@angular/common/locales/sw.js"),require("!file-loader?name=assets/locales/angular/ta-LK.js!@angular/common/locales/ta-LK.js"),require("!file-loader?name=assets/locales/angular/ta-MY.js!@angular/common/locales/ta-MY.js"),require("!file-loader?name=assets/locales/angular/ta-SG.js!@angular/common/locales/ta-SG.js"),require("!file-loader?name=assets/locales/angular/ta.js!@angular/common/locales/ta.js"),require("!file-loader?name=assets/locales/angular/te.js!@angular/common/locales/te.js"),require("!file-loader?name=assets/locales/angular/teo-KE.js!@angular/common/locales/teo-KE.js"),require("!file-loader?name=assets/locales/angular/teo.js!@angular/common/locales/teo.js"),require("!file-loader?name=assets/locales/angular/tg.js!@angular/common/locales/tg.js"),require("!file-loader?name=assets/locales/angular/th.js!@angular/common/locales/th.js"),require("!file-loader?name=assets/locales/angular/ti-ER.js!@angular/common/locales/ti-ER.js"),require("!file-loader?name=assets/locales/angular/ti.js!@angular/common/locales/ti.js"),require("!file-loader?name=assets/locales/angular/tk.js!@angular/common/locales/tk.js"),require("!file-loader?name=assets/locales/angular/to.js!@angular/common/locales/to.js"),require("!file-loader?name=assets/locales/angular/tr-CY.js!@angular/common/locales/tr-CY.js"),require("!file-loader?name=assets/locales/angular/tr.js!@angular/common/locales/tr.js"),require("!file-loader?name=assets/locales/angular/tt.js!@angular/common/locales/tt.js"),require("!file-loader?name=assets/locales/angular/twq.js!@angular/common/locales/twq.js"),require("!file-loader?name=assets/locales/angular/tzm.js!@angular/common/locales/tzm.js"),require("!file-loader?name=assets/locales/angular/ug.js!@angular/common/locales/ug.js"),require("!file-loader?name=assets/locales/angular/uk.js!@angular/common/locales/uk.js"),require("!file-loader?name=assets/locales/angular/ur-IN.js!@angular/common/locales/ur-IN.js"),require("!file-loader?name=assets/locales/angular/ur.js!@angular/common/locales/ur.js"),require("!file-loader?name=assets/locales/angular/uz-Arab.js!@angular/common/locales/uz-Arab.js"),require("!file-loader?name=assets/locales/angular/uz-Cyrl.js!@angular/common/locales/uz-Cyrl.js"),require("!file-loader?name=assets/locales/angular/uz-Latn.js!@angular/common/locales/uz-Latn.js"),require("!file-loader?name=assets/locales/angular/uz.js!@angular/common/locales/uz.js"),require("!file-loader?name=assets/locales/angular/vai-Latn.js!@angular/common/locales/vai-Latn.js"),require("!file-loader?name=assets/locales/angular/vai-Vaii.js!@angular/common/locales/vai-Vaii.js"),require("!file-loader?name=assets/locales/angular/vai.js!@angular/common/locales/vai.js"),require("!file-loader?name=assets/locales/angular/vi.js!@angular/common/locales/vi.js"),require("!file-loader?name=assets/locales/angular/vo.js!@angular/common/locales/vo.js"),require("!file-loader?name=assets/locales/angular/vun.js!@angular/common/locales/vun.js"),require("!file-loader?name=assets/locales/angular/wae.js!@angular/common/locales/wae.js"),require("!file-loader?name=assets/locales/angular/wo.js!@angular/common/locales/wo.js"),require("!file-loader?name=assets/locales/angular/xog.js!@angular/common/locales/xog.js"),require("!file-loader?name=assets/locales/angular/yav.js!@angular/common/locales/yav.js"),require("!file-loader?name=assets/locales/angular/yi.js!@angular/common/locales/yi.js"),require("!file-loader?name=assets/locales/angular/yo-BJ.js!@angular/common/locales/yo-BJ.js"),require("!file-loader?name=assets/locales/angular/yo.js!@angular/common/locales/yo.js"),require("!file-loader?name=assets/locales/angular/yue-Hans.js!@angular/common/locales/yue-Hans.js"),require("!file-loader?name=assets/locales/angular/yue-Hant.js!@angular/common/locales/yue-Hant.js"),require("!file-loader?name=assets/locales/angular/yue.js!@angular/common/locales/yue.js"),require("!file-loader?name=assets/locales/angular/zgh.js!@angular/common/locales/zgh.js"),require("!file-loader?name=assets/locales/angular/zh-Hans-HK.js!@angular/common/locales/zh-Hans-HK.js"),require("!file-loader?name=assets/locales/angular/zh-Hans-MO.js!@angular/common/locales/zh-Hans-MO.js"),require("!file-loader?name=assets/locales/angular/zh-Hans-SG.js!@angular/common/locales/zh-Hans-SG.js"),require("!file-loader?name=assets/locales/angular/zh-Hans.js!@angular/common/locales/zh-Hans.js"),require("!file-loader?name=assets/locales/angular/zh-Hant-HK.js!@angular/common/locales/zh-Hant-HK.js"),require("!file-loader?name=assets/locales/angular/zh-Hant-MO.js!@angular/common/locales/zh-Hant-MO.js"),require("!file-loader?name=assets/locales/angular/zh-Hant.js!@angular/common/locales/zh-Hant.js"),require("!file-loader?name=assets/locales/angular/zh.js!@angular/common/locales/zh.js"),require("!file-loader?name=assets/locales/angular/zu.js!@angular/common/locales/zu.js"),require("ngx-bootstrap/collapse"),require("ngx-bootstrap/dropdown"),require("ngx-bootstrap/tooltip"),require("@angular/forms"),require("@angular/platform-browser"),require("ngx-bootstrap/modal"),require("ngx-bootstrap/popover"),require("libphonenumber-js/max"),require("@angular/upgrade/static"),require("angularx-qrcode"),require("@angular/cdk/table"),require("@angular/cdk/drag-drop"),require("ngx-bootstrap/pagination"),require("@angular/cdk/stepper")):"function"==typeof define&&define.amd?define("@c8y/ngx-components",["exports","@angular/core","@angular/router","rxjs","rxjs/operators","lodash-es","@c8y/ngx-components/api","@c8y/client","@ngx-translate/core","lodash","@angular/common","@angular/common/http","!file-loader?name=assets/locales/angular/af-NA.js!@angular/common/locales/af-NA.js","!file-loader?name=assets/locales/angular/af.js!@angular/common/locales/af.js","!file-loader?name=assets/locales/angular/agq.js!@angular/common/locales/agq.js","!file-loader?name=assets/locales/angular/ak.js!@angular/common/locales/ak.js","!file-loader?name=assets/locales/angular/am.js!@angular/common/locales/am.js","!file-loader?name=assets/locales/angular/ar-AE.js!@angular/common/locales/ar-AE.js","!file-loader?name=assets/locales/angular/ar-BH.js!@angular/common/locales/ar-BH.js","!file-loader?name=assets/locales/angular/ar-DJ.js!@angular/common/locales/ar-DJ.js","!file-loader?name=assets/locales/angular/ar-DZ.js!@angular/common/locales/ar-DZ.js","!file-loader?name=assets/locales/angular/ar-EG.js!@angular/common/locales/ar-EG.js","!file-loader?name=assets/locales/angular/ar-EH.js!@angular/common/locales/ar-EH.js","!file-loader?name=assets/locales/angular/ar-ER.js!@angular/common/locales/ar-ER.js","!file-loader?name=assets/locales/angular/ar-IL.js!@angular/common/locales/ar-IL.js","!file-loader?name=assets/locales/angular/ar-IQ.js!@angular/common/locales/ar-IQ.js","!file-loader?name=assets/locales/angular/ar-JO.js!@angular/common/locales/ar-JO.js","!file-loader?name=assets/locales/angular/ar-KM.js!@angular/common/locales/ar-KM.js","!file-loader?name=assets/locales/angular/ar-KW.js!@angular/common/locales/ar-KW.js","!file-loader?name=assets/locales/angular/ar-LB.js!@angular/common/locales/ar-LB.js","!file-loader?name=assets/locales/angular/ar-LY.js!@angular/common/locales/ar-LY.js","!file-loader?name=assets/locales/angular/ar-MA.js!@angular/common/locales/ar-MA.js","!file-loader?name=assets/locales/angular/ar-MR.js!@angular/common/locales/ar-MR.js","!file-loader?name=assets/locales/angular/ar-OM.js!@angular/common/locales/ar-OM.js","!file-loader?name=assets/locales/angular/ar-PS.js!@angular/common/locales/ar-PS.js","!file-loader?name=assets/locales/angular/ar-QA.js!@angular/common/locales/ar-QA.js","!file-loader?name=assets/locales/angular/ar-SA.js!@angular/common/locales/ar-SA.js","!file-loader?name=assets/locales/angular/ar-SD.js!@angular/common/locales/ar-SD.js","!file-loader?name=assets/locales/angular/ar-SO.js!@angular/common/locales/ar-SO.js","!file-loader?name=assets/locales/angular/ar-SS.js!@angular/common/locales/ar-SS.js","!file-loader?name=assets/locales/angular/ar-SY.js!@angular/common/locales/ar-SY.js","!file-loader?name=assets/locales/angular/ar-TD.js!@angular/common/locales/ar-TD.js","!file-loader?name=assets/locales/angular/ar-TN.js!@angular/common/locales/ar-TN.js","!file-loader?name=assets/locales/angular/ar-YE.js!@angular/common/locales/ar-YE.js","!file-loader?name=assets/locales/angular/ar.js!@angular/common/locales/ar.js","!file-loader?name=assets/locales/angular/as.js!@angular/common/locales/as.js","!file-loader?name=assets/locales/angular/asa.js!@angular/common/locales/asa.js","!file-loader?name=assets/locales/angular/ast.js!@angular/common/locales/ast.js","!file-loader?name=assets/locales/angular/az-Cyrl.js!@angular/common/locales/az-Cyrl.js","!file-loader?name=assets/locales/angular/az-Latn.js!@angular/common/locales/az-Latn.js","!file-loader?name=assets/locales/angular/az.js!@angular/common/locales/az.js","!file-loader?name=assets/locales/angular/bas.js!@angular/common/locales/bas.js","!file-loader?name=assets/locales/angular/be.js!@angular/common/locales/be.js","!file-loader?name=assets/locales/angular/bem.js!@angular/common/locales/bem.js","!file-loader?name=assets/locales/angular/bez.js!@angular/common/locales/bez.js","!file-loader?name=assets/locales/angular/bg.js!@angular/common/locales/bg.js","!file-loader?name=assets/locales/angular/bm.js!@angular/common/locales/bm.js","!file-loader?name=assets/locales/angular/bn-IN.js!@angular/common/locales/bn-IN.js","!file-loader?name=assets/locales/angular/bn.js!@angular/common/locales/bn.js","!file-loader?name=assets/locales/angular/bo-IN.js!@angular/common/locales/bo-IN.js","!file-loader?name=assets/locales/angular/bo.js!@angular/common/locales/bo.js","!file-loader?name=assets/locales/angular/br.js!@angular/common/locales/br.js","!file-loader?name=assets/locales/angular/brx.js!@angular/common/locales/brx.js","!file-loader?name=assets/locales/angular/bs-Cyrl.js!@angular/common/locales/bs-Cyrl.js","!file-loader?name=assets/locales/angular/bs-Latn.js!@angular/common/locales/bs-Latn.js","!file-loader?name=assets/locales/angular/bs.js!@angular/common/locales/bs.js","!file-loader?name=assets/locales/angular/ca-AD.js!@angular/common/locales/ca-AD.js","!file-loader?name=assets/locales/angular/ca-ES-VALENCIA.js!@angular/common/locales/ca-ES-VALENCIA.js","!file-loader?name=assets/locales/angular/ca-FR.js!@angular/common/locales/ca-FR.js","!file-loader?name=assets/locales/angular/ca-IT.js!@angular/common/locales/ca-IT.js","!file-loader?name=assets/locales/angular/ca.js!@angular/common/locales/ca.js","!file-loader?name=assets/locales/angular/ccp-IN.js!@angular/common/locales/ccp-IN.js","!file-loader?name=assets/locales/angular/ccp.js!@angular/common/locales/ccp.js","!file-loader?name=assets/locales/angular/ce.js!@angular/common/locales/ce.js","!file-loader?name=assets/locales/angular/cgg.js!@angular/common/locales/cgg.js","!file-loader?name=assets/locales/angular/chr.js!@angular/common/locales/chr.js","!file-loader?name=assets/locales/angular/ckb-IR.js!@angular/common/locales/ckb-IR.js","!file-loader?name=assets/locales/angular/ckb.js!@angular/common/locales/ckb.js","!file-loader?name=assets/locales/angular/cs.js!@angular/common/locales/cs.js","!file-loader?name=assets/locales/angular/cu.js!@angular/common/locales/cu.js","!file-loader?name=assets/locales/angular/cy.js!@angular/common/locales/cy.js","!file-loader?name=assets/locales/angular/da-GL.js!@angular/common/locales/da-GL.js","!file-loader?name=assets/locales/angular/da.js!@angular/common/locales/da.js","!file-loader?name=assets/locales/angular/dav.js!@angular/common/locales/dav.js","!file-loader?name=assets/locales/angular/de-AT.js!@angular/common/locales/de-AT.js","!file-loader?name=assets/locales/angular/de-BE.js!@angular/common/locales/de-BE.js","!file-loader?name=assets/locales/angular/de-CH.js!@angular/common/locales/de-CH.js","!file-loader?name=assets/locales/angular/de-IT.js!@angular/common/locales/de-IT.js","!file-loader?name=assets/locales/angular/de-LI.js!@angular/common/locales/de-LI.js","!file-loader?name=assets/locales/angular/de-LU.js!@angular/common/locales/de-LU.js","!file-loader?name=assets/locales/angular/de.js!@angular/common/locales/de.js","!file-loader?name=assets/locales/angular/dje.js!@angular/common/locales/dje.js","!file-loader?name=assets/locales/angular/dsb.js!@angular/common/locales/dsb.js","!file-loader?name=assets/locales/angular/dua.js!@angular/common/locales/dua.js","!file-loader?name=assets/locales/angular/dyo.js!@angular/common/locales/dyo.js","!file-loader?name=assets/locales/angular/dz.js!@angular/common/locales/dz.js","!file-loader?name=assets/locales/angular/ebu.js!@angular/common/locales/ebu.js","!file-loader?name=assets/locales/angular/ee-TG.js!@angular/common/locales/ee-TG.js","!file-loader?name=assets/locales/angular/ee.js!@angular/common/locales/ee.js","!file-loader?name=assets/locales/angular/el-CY.js!@angular/common/locales/el-CY.js","!file-loader?name=assets/locales/angular/el.js!@angular/common/locales/el.js","!file-loader?name=assets/locales/angular/en-001.js!@angular/common/locales/en-001.js","!file-loader?name=assets/locales/angular/en-150.js!@angular/common/locales/en-150.js","!file-loader?name=assets/locales/angular/en-AG.js!@angular/common/locales/en-AG.js","!file-loader?name=assets/locales/angular/en-AI.js!@angular/common/locales/en-AI.js","!file-loader?name=assets/locales/angular/en-AS.js!@angular/common/locales/en-AS.js","!file-loader?name=assets/locales/angular/en-AT.js!@angular/common/locales/en-AT.js","!file-loader?name=assets/locales/angular/en-AU.js!@angular/common/locales/en-AU.js","!file-loader?name=assets/locales/angular/en-BB.js!@angular/common/locales/en-BB.js","!file-loader?name=assets/locales/angular/en-BE.js!@angular/common/locales/en-BE.js","!file-loader?name=assets/locales/angular/en-BI.js!@angular/common/locales/en-BI.js","!file-loader?name=assets/locales/angular/en-BM.js!@angular/common/locales/en-BM.js","!file-loader?name=assets/locales/angular/en-BS.js!@angular/common/locales/en-BS.js","!file-loader?name=assets/locales/angular/en-BW.js!@angular/common/locales/en-BW.js","!file-loader?name=assets/locales/angular/en-BZ.js!@angular/common/locales/en-BZ.js","!file-loader?name=assets/locales/angular/en-CA.js!@angular/common/locales/en-CA.js","!file-loader?name=assets/locales/angular/en-CC.js!@angular/common/locales/en-CC.js","!file-loader?name=assets/locales/angular/en-CH.js!@angular/common/locales/en-CH.js","!file-loader?name=assets/locales/angular/en-CK.js!@angular/common/locales/en-CK.js","!file-loader?name=assets/locales/angular/en-CM.js!@angular/common/locales/en-CM.js","!file-loader?name=assets/locales/angular/en-CX.js!@angular/common/locales/en-CX.js","!file-loader?name=assets/locales/angular/en-CY.js!@angular/common/locales/en-CY.js","!file-loader?name=assets/locales/angular/en-DE.js!@angular/common/locales/en-DE.js","!file-loader?name=assets/locales/angular/en-DG.js!@angular/common/locales/en-DG.js","!file-loader?name=assets/locales/angular/en-DK.js!@angular/common/locales/en-DK.js","!file-loader?name=assets/locales/angular/en-DM.js!@angular/common/locales/en-DM.js","!file-loader?name=assets/locales/angular/en-ER.js!@angular/common/locales/en-ER.js","!file-loader?name=assets/locales/angular/en-FI.js!@angular/common/locales/en-FI.js","!file-loader?name=assets/locales/angular/en-FJ.js!@angular/common/locales/en-FJ.js","!file-loader?name=assets/locales/angular/en-FK.js!@angular/common/locales/en-FK.js","!file-loader?name=assets/locales/angular/en-FM.js!@angular/common/locales/en-FM.js","!file-loader?name=assets/locales/angular/en-GB.js!@angular/common/locales/en-GB.js","!file-loader?name=assets/locales/angular/en-GD.js!@angular/common/locales/en-GD.js","!file-loader?name=assets/locales/angular/en-GG.js!@angular/common/locales/en-GG.js","!file-loader?name=assets/locales/angular/en-GH.js!@angular/common/locales/en-GH.js","!file-loader?name=assets/locales/angular/en-GI.js!@angular/common/locales/en-GI.js","!file-loader?name=assets/locales/angular/en-GM.js!@angular/common/locales/en-GM.js","!file-loader?name=assets/locales/angular/en-GU.js!@angular/common/locales/en-GU.js","!file-loader?name=assets/locales/angular/en-GY.js!@angular/common/locales/en-GY.js","!file-loader?name=assets/locales/angular/en-HK.js!@angular/common/locales/en-HK.js","!file-loader?name=assets/locales/angular/en-IE.js!@angular/common/locales/en-IE.js","!file-loader?name=assets/locales/angular/en-IL.js!@angular/common/locales/en-IL.js","!file-loader?name=assets/locales/angular/en-IM.js!@angular/common/locales/en-IM.js","!file-loader?name=assets/locales/angular/en-IN.js!@angular/common/locales/en-IN.js","!file-loader?name=assets/locales/angular/en-IO.js!@angular/common/locales/en-IO.js","!file-loader?name=assets/locales/angular/en-JE.js!@angular/common/locales/en-JE.js","!file-loader?name=assets/locales/angular/en-JM.js!@angular/common/locales/en-JM.js","!file-loader?name=assets/locales/angular/en-KE.js!@angular/common/locales/en-KE.js","!file-loader?name=assets/locales/angular/en-KI.js!@angular/common/locales/en-KI.js","!file-loader?name=assets/locales/angular/en-KN.js!@angular/common/locales/en-KN.js","!file-loader?name=assets/locales/angular/en-KY.js!@angular/common/locales/en-KY.js","!file-loader?name=assets/locales/angular/en-LC.js!@angular/common/locales/en-LC.js","!file-loader?name=assets/locales/angular/en-LR.js!@angular/common/locales/en-LR.js","!file-loader?name=assets/locales/angular/en-LS.js!@angular/common/locales/en-LS.js","!file-loader?name=assets/locales/angular/en-MG.js!@angular/common/locales/en-MG.js","!file-loader?name=assets/locales/angular/en-MH.js!@angular/common/locales/en-MH.js","!file-loader?name=assets/locales/angular/en-MO.js!@angular/common/locales/en-MO.js","!file-loader?name=assets/locales/angular/en-MP.js!@angular/common/locales/en-MP.js","!file-loader?name=assets/locales/angular/en-MS.js!@angular/common/locales/en-MS.js","!file-loader?name=assets/locales/angular/en-MT.js!@angular/common/locales/en-MT.js","!file-loader?name=assets/locales/angular/en-MU.js!@angular/common/locales/en-MU.js","!file-loader?name=assets/locales/angular/en-MW.js!@angular/common/locales/en-MW.js","!file-loader?name=assets/locales/angular/en-MY.js!@angular/common/locales/en-MY.js","!file-loader?name=assets/locales/angular/en-NA.js!@angular/common/locales/en-NA.js","!file-loader?name=assets/locales/angular/en-NF.js!@angular/common/locales/en-NF.js","!file-loader?name=assets/locales/angular/en-NG.js!@angular/common/locales/en-NG.js","!file-loader?name=assets/locales/angular/en-NL.js!@angular/common/locales/en-NL.js","!file-loader?name=assets/locales/angular/en-NR.js!@angular/common/locales/en-NR.js","!file-loader?name=assets/locales/angular/en-NU.js!@angular/common/locales/en-NU.js","!file-loader?name=assets/locales/angular/en-NZ.js!@angular/common/locales/en-NZ.js","!file-loader?name=assets/locales/angular/en-PG.js!@angular/common/locales/en-PG.js","!file-loader?name=assets/locales/angular/en-PH.js!@angular/common/locales/en-PH.js","!file-loader?name=assets/locales/angular/en-PK.js!@angular/common/locales/en-PK.js","!file-loader?name=assets/locales/angular/en-PN.js!@angular/common/locales/en-PN.js","!file-loader?name=assets/locales/angular/en-PR.js!@angular/common/locales/en-PR.js","!file-loader?name=assets/locales/angular/en-PW.js!@angular/common/locales/en-PW.js","!file-loader?name=assets/locales/angular/en-RW.js!@angular/common/locales/en-RW.js","!file-loader?name=assets/locales/angular/en-SB.js!@angular/common/locales/en-SB.js","!file-loader?name=assets/locales/angular/en-SC.js!@angular/common/locales/en-SC.js","!file-loader?name=assets/locales/angular/en-SD.js!@angular/common/locales/en-SD.js","!file-loader?name=assets/locales/angular/en-SE.js!@angular/common/locales/en-SE.js","!file-loader?name=assets/locales/angular/en-SG.js!@angular/common/locales/en-SG.js","!file-loader?name=assets/locales/angular/en-SH.js!@angular/common/locales/en-SH.js","!file-loader?name=assets/locales/angular/en-SI.js!@angular/common/locales/en-SI.js","!file-loader?name=assets/locales/angular/en-SL.js!@angular/common/locales/en-SL.js","!file-loader?name=assets/locales/angular/en-SS.js!@angular/common/locales/en-SS.js","!file-loader?name=assets/locales/angular/en-SX.js!@angular/common/locales/en-SX.js","!file-loader?name=assets/locales/angular/en-SZ.js!@angular/common/locales/en-SZ.js","!file-loader?name=assets/locales/angular/en-TC.js!@angular/common/locales/en-TC.js","!file-loader?name=assets/locales/angular/en-TK.js!@angular/common/locales/en-TK.js","!file-loader?name=assets/locales/angular/en-TO.js!@angular/common/locales/en-TO.js","!file-loader?name=assets/locales/angular/en-TT.js!@angular/common/locales/en-TT.js","!file-loader?name=assets/locales/angular/en-TV.js!@angular/common/locales/en-TV.js","!file-loader?name=assets/locales/angular/en-TZ.js!@angular/common/locales/en-TZ.js","!file-loader?name=assets/locales/angular/en-UG.js!@angular/common/locales/en-UG.js","!file-loader?name=assets/locales/angular/en-UM.js!@angular/common/locales/en-UM.js","!file-loader?name=assets/locales/angular/en-US-POSIX.js!@angular/common/locales/en-US-POSIX.js","!file-loader?name=assets/locales/angular/en-VC.js!@angular/common/locales/en-VC.js","!file-loader?name=assets/locales/angular/en-VG.js!@angular/common/locales/en-VG.js","!file-loader?name=assets/locales/angular/en-VI.js!@angular/common/locales/en-VI.js","!file-loader?name=assets/locales/angular/en-VU.js!@angular/common/locales/en-VU.js","!file-loader?name=assets/locales/angular/en-WS.js!@angular/common/locales/en-WS.js","!file-loader?name=assets/locales/angular/en-ZA.js!@angular/common/locales/en-ZA.js","!file-loader?name=assets/locales/angular/en-ZM.js!@angular/common/locales/en-ZM.js","!file-loader?name=assets/locales/angular/en-ZW.js!@angular/common/locales/en-ZW.js","!file-loader?name=assets/locales/angular/en.js!@angular/common/locales/en.js","!file-loader?name=assets/locales/angular/eo.js!@angular/common/locales/eo.js","!file-loader?name=assets/locales/angular/es-419.js!@angular/common/locales/es-419.js","!file-loader?name=assets/locales/angular/es-AR.js!@angular/common/locales/es-AR.js","!file-loader?name=assets/locales/angular/es-BO.js!@angular/common/locales/es-BO.js","!file-loader?name=assets/locales/angular/es-BR.js!@angular/common/locales/es-BR.js","!file-loader?name=assets/locales/angular/es-BZ.js!@angular/common/locales/es-BZ.js","!file-loader?name=assets/locales/angular/es-CL.js!@angular/common/locales/es-CL.js","!file-loader?name=assets/locales/angular/es-CO.js!@angular/common/locales/es-CO.js","!file-loader?name=assets/locales/angular/es-CR.js!@angular/common/locales/es-CR.js","!file-loader?name=assets/locales/angular/es-CU.js!@angular/common/locales/es-CU.js","!file-loader?name=assets/locales/angular/es-DO.js!@angular/common/locales/es-DO.js","!file-loader?name=assets/locales/angular/es-EA.js!@angular/common/locales/es-EA.js","!file-loader?name=assets/locales/angular/es-EC.js!@angular/common/locales/es-EC.js","!file-loader?name=assets/locales/angular/es-GQ.js!@angular/common/locales/es-GQ.js","!file-loader?name=assets/locales/angular/es-GT.js!@angular/common/locales/es-GT.js","!file-loader?name=assets/locales/angular/es-HN.js!@angular/common/locales/es-HN.js","!file-loader?name=assets/locales/angular/es-IC.js!@angular/common/locales/es-IC.js","!file-loader?name=assets/locales/angular/es-MX.js!@angular/common/locales/es-MX.js","!file-loader?name=assets/locales/angular/es-NI.js!@angular/common/locales/es-NI.js","!file-loader?name=assets/locales/angular/es-PA.js!@angular/common/locales/es-PA.js","!file-loader?name=assets/locales/angular/es-PE.js!@angular/common/locales/es-PE.js","!file-loader?name=assets/locales/angular/es-PH.js!@angular/common/locales/es-PH.js","!file-loader?name=assets/locales/angular/es-PR.js!@angular/common/locales/es-PR.js","!file-loader?name=assets/locales/angular/es-PY.js!@angular/common/locales/es-PY.js","!file-loader?name=assets/locales/angular/es-SV.js!@angular/common/locales/es-SV.js","!file-loader?name=assets/locales/angular/es-US.js!@angular/common/locales/es-US.js","!file-loader?name=assets/locales/angular/es-UY.js!@angular/common/locales/es-UY.js","!file-loader?name=assets/locales/angular/es-VE.js!@angular/common/locales/es-VE.js","!file-loader?name=assets/locales/angular/es.js!@angular/common/locales/es.js","!file-loader?name=assets/locales/angular/et.js!@angular/common/locales/et.js","!file-loader?name=assets/locales/angular/eu.js!@angular/common/locales/eu.js","!file-loader?name=assets/locales/angular/ewo.js!@angular/common/locales/ewo.js","!file-loader?name=assets/locales/angular/fa-AF.js!@angular/common/locales/fa-AF.js","!file-loader?name=assets/locales/angular/fa.js!@angular/common/locales/fa.js","!file-loader?name=assets/locales/angular/ff-CM.js!@angular/common/locales/ff-CM.js","!file-loader?name=assets/locales/angular/ff-GN.js!@angular/common/locales/ff-GN.js","!file-loader?name=assets/locales/angular/ff-MR.js!@angular/common/locales/ff-MR.js","!file-loader?name=assets/locales/angular/ff.js!@angular/common/locales/ff.js","!file-loader?name=assets/locales/angular/fi.js!@angular/common/locales/fi.js","!file-loader?name=assets/locales/angular/fil.js!@angular/common/locales/fil.js","!file-loader?name=assets/locales/angular/fo-DK.js!@angular/common/locales/fo-DK.js","!file-loader?name=assets/locales/angular/fo.js!@angular/common/locales/fo.js","!file-loader?name=assets/locales/angular/fr-BE.js!@angular/common/locales/fr-BE.js","!file-loader?name=assets/locales/angular/fr-BF.js!@angular/common/locales/fr-BF.js","!file-loader?name=assets/locales/angular/fr-BI.js!@angular/common/locales/fr-BI.js","!file-loader?name=assets/locales/angular/fr-BJ.js!@angular/common/locales/fr-BJ.js","!file-loader?name=assets/locales/angular/fr-BL.js!@angular/common/locales/fr-BL.js","!file-loader?name=assets/locales/angular/fr-CA.js!@angular/common/locales/fr-CA.js","!file-loader?name=assets/locales/angular/fr-CD.js!@angular/common/locales/fr-CD.js","!file-loader?name=assets/locales/angular/fr-CF.js!@angular/common/locales/fr-CF.js","!file-loader?name=assets/locales/angular/fr-CG.js!@angular/common/locales/fr-CG.js","!file-loader?name=assets/locales/angular/fr-CH.js!@angular/common/locales/fr-CH.js","!file-loader?name=assets/locales/angular/fr-CI.js!@angular/common/locales/fr-CI.js","!file-loader?name=assets/locales/angular/fr-CM.js!@angular/common/locales/fr-CM.js","!file-loader?name=assets/locales/angular/fr-DJ.js!@angular/common/locales/fr-DJ.js","!file-loader?name=assets/locales/angular/fr-DZ.js!@angular/common/locales/fr-DZ.js","!file-loader?name=assets/locales/angular/fr-GA.js!@angular/common/locales/fr-GA.js","!file-loader?name=assets/locales/angular/fr-GF.js!@angular/common/locales/fr-GF.js","!file-loader?name=assets/locales/angular/fr-GN.js!@angular/common/locales/fr-GN.js","!file-loader?name=assets/locales/angular/fr-GP.js!@angular/common/locales/fr-GP.js","!file-loader?name=assets/locales/angular/fr-GQ.js!@angular/common/locales/fr-GQ.js","!file-loader?name=assets/locales/angular/fr-HT.js!@angular/common/locales/fr-HT.js","!file-loader?name=assets/locales/angular/fr-KM.js!@angular/common/locales/fr-KM.js","!file-loader?name=assets/locales/angular/fr-LU.js!@angular/common/locales/fr-LU.js","!file-loader?name=assets/locales/angular/fr-MA.js!@angular/common/locales/fr-MA.js","!file-loader?name=assets/locales/angular/fr-MC.js!@angular/common/locales/fr-MC.js","!file-loader?name=assets/locales/angular/fr-MF.js!@angular/common/locales/fr-MF.js","!file-loader?name=assets/locales/angular/fr-MG.js!@angular/common/locales/fr-MG.js","!file-loader?name=assets/locales/angular/fr-ML.js!@angular/common/locales/fr-ML.js","!file-loader?name=assets/locales/angular/fr-MQ.js!@angular/common/locales/fr-MQ.js","!file-loader?name=assets/locales/angular/fr-MR.js!@angular/common/locales/fr-MR.js","!file-loader?name=assets/locales/angular/fr-MU.js!@angular/common/locales/fr-MU.js","!file-loader?name=assets/locales/angular/fr-NC.js!@angular/common/locales/fr-NC.js","!file-loader?name=assets/locales/angular/fr-NE.js!@angular/common/locales/fr-NE.js","!file-loader?name=assets/locales/angular/fr-PF.js!@angular/common/locales/fr-PF.js","!file-loader?name=assets/locales/angular/fr-PM.js!@angular/common/locales/fr-PM.js","!file-loader?name=assets/locales/angular/fr-RE.js!@angular/common/locales/fr-RE.js","!file-loader?name=assets/locales/angular/fr-RW.js!@angular/common/locales/fr-RW.js","!file-loader?name=assets/locales/angular/fr-SC.js!@angular/common/locales/fr-SC.js","!file-loader?name=assets/locales/angular/fr-SN.js!@angular/common/locales/fr-SN.js","!file-loader?name=assets/locales/angular/fr-SY.js!@angular/common/locales/fr-SY.js","!file-loader?name=assets/locales/angular/fr-TD.js!@angular/common/locales/fr-TD.js","!file-loader?name=assets/locales/angular/fr-TG.js!@angular/common/locales/fr-TG.js","!file-loader?name=assets/locales/angular/fr-TN.js!@angular/common/locales/fr-TN.js","!file-loader?name=assets/locales/angular/fr-VU.js!@angular/common/locales/fr-VU.js","!file-loader?name=assets/locales/angular/fr-WF.js!@angular/common/locales/fr-WF.js","!file-loader?name=assets/locales/angular/fr-YT.js!@angular/common/locales/fr-YT.js","!file-loader?name=assets/locales/angular/fr.js!@angular/common/locales/fr.js","!file-loader?name=assets/locales/angular/fur.js!@angular/common/locales/fur.js","!file-loader?name=assets/locales/angular/fy.js!@angular/common/locales/fy.js","!file-loader?name=assets/locales/angular/ga.js!@angular/common/locales/ga.js","!file-loader?name=assets/locales/angular/gd.js!@angular/common/locales/gd.js","!file-loader?name=assets/locales/angular/gl.js!@angular/common/locales/gl.js","!file-loader?name=assets/locales/angular/gsw-FR.js!@angular/common/locales/gsw-FR.js","!file-loader?name=assets/locales/angular/gsw-LI.js!@angular/common/locales/gsw-LI.js","!file-loader?name=assets/locales/angular/gsw.js!@angular/common/locales/gsw.js","!file-loader?name=assets/locales/angular/gu.js!@angular/common/locales/gu.js","!file-loader?name=assets/locales/angular/guz.js!@angular/common/locales/guz.js","!file-loader?name=assets/locales/angular/gv.js!@angular/common/locales/gv.js","!file-loader?name=assets/locales/angular/ha-GH.js!@angular/common/locales/ha-GH.js","!file-loader?name=assets/locales/angular/ha-NE.js!@angular/common/locales/ha-NE.js","!file-loader?name=assets/locales/angular/ha.js!@angular/common/locales/ha.js","!file-loader?name=assets/locales/angular/haw.js!@angular/common/locales/haw.js","!file-loader?name=assets/locales/angular/he.js!@angular/common/locales/he.js","!file-loader?name=assets/locales/angular/hi.js!@angular/common/locales/hi.js","!file-loader?name=assets/locales/angular/hr-BA.js!@angular/common/locales/hr-BA.js","!file-loader?name=assets/locales/angular/hr.js!@angular/common/locales/hr.js","!file-loader?name=assets/locales/angular/hsb.js!@angular/common/locales/hsb.js","!file-loader?name=assets/locales/angular/hu.js!@angular/common/locales/hu.js","!file-loader?name=assets/locales/angular/hy.js!@angular/common/locales/hy.js","!file-loader?name=assets/locales/angular/id.js!@angular/common/locales/id.js","!file-loader?name=assets/locales/angular/ig.js!@angular/common/locales/ig.js","!file-loader?name=assets/locales/angular/ii.js!@angular/common/locales/ii.js","!file-loader?name=assets/locales/angular/is.js!@angular/common/locales/is.js","!file-loader?name=assets/locales/angular/it-CH.js!@angular/common/locales/it-CH.js","!file-loader?name=assets/locales/angular/it-SM.js!@angular/common/locales/it-SM.js","!file-loader?name=assets/locales/angular/it-VA.js!@angular/common/locales/it-VA.js","!file-loader?name=assets/locales/angular/it.js!@angular/common/locales/it.js","!file-loader?name=assets/locales/angular/ja.js!@angular/common/locales/ja.js","!file-loader?name=assets/locales/angular/jgo.js!@angular/common/locales/jgo.js","!file-loader?name=assets/locales/angular/jmc.js!@angular/common/locales/jmc.js","!file-loader?name=assets/locales/angular/ka.js!@angular/common/locales/ka.js","!file-loader?name=assets/locales/angular/kab.js!@angular/common/locales/kab.js","!file-loader?name=assets/locales/angular/kam.js!@angular/common/locales/kam.js","!file-loader?name=assets/locales/angular/kde.js!@angular/common/locales/kde.js","!file-loader?name=assets/locales/angular/kea.js!@angular/common/locales/kea.js","!file-loader?name=assets/locales/angular/khq.js!@angular/common/locales/khq.js","!file-loader?name=assets/locales/angular/ki.js!@angular/common/locales/ki.js","!file-loader?name=assets/locales/angular/kk.js!@angular/common/locales/kk.js","!file-loader?name=assets/locales/angular/kkj.js!@angular/common/locales/kkj.js","!file-loader?name=assets/locales/angular/kl.js!@angular/common/locales/kl.js","!file-loader?name=assets/locales/angular/kln.js!@angular/common/locales/kln.js","!file-loader?name=assets/locales/angular/km.js!@angular/common/locales/km.js","!file-loader?name=assets/locales/angular/kn.js!@angular/common/locales/kn.js","!file-loader?name=assets/locales/angular/ko-KP.js!@angular/common/locales/ko-KP.js","!file-loader?name=assets/locales/angular/ko.js!@angular/common/locales/ko.js","!file-loader?name=assets/locales/angular/kok.js!@angular/common/locales/kok.js","!file-loader?name=assets/locales/angular/ks.js!@angular/common/locales/ks.js","!file-loader?name=assets/locales/angular/ksb.js!@angular/common/locales/ksb.js","!file-loader?name=assets/locales/angular/ksf.js!@angular/common/locales/ksf.js","!file-loader?name=assets/locales/angular/ksh.js!@angular/common/locales/ksh.js","!file-loader?name=assets/locales/angular/kw.js!@angular/common/locales/kw.js","!file-loader?name=assets/locales/angular/ky.js!@angular/common/locales/ky.js","!file-loader?name=assets/locales/angular/lag.js!@angular/common/locales/lag.js","!file-loader?name=assets/locales/angular/lb.js!@angular/common/locales/lb.js","!file-loader?name=assets/locales/angular/lg.js!@angular/common/locales/lg.js","!file-loader?name=assets/locales/angular/lkt.js!@angular/common/locales/lkt.js","!file-loader?name=assets/locales/angular/ln-AO.js!@angular/common/locales/ln-AO.js","!file-loader?name=assets/locales/angular/ln-CF.js!@angular/common/locales/ln-CF.js","!file-loader?name=assets/locales/angular/ln-CG.js!@angular/common/locales/ln-CG.js","!file-loader?name=assets/locales/angular/ln.js!@angular/common/locales/ln.js","!file-loader?name=assets/locales/angular/lo.js!@angular/common/locales/lo.js","!file-loader?name=assets/locales/angular/lrc-IQ.js!@angular/common/locales/lrc-IQ.js","!file-loader?name=assets/locales/angular/lrc.js!@angular/common/locales/lrc.js","!file-loader?name=assets/locales/angular/lt.js!@angular/common/locales/lt.js","!file-loader?name=assets/locales/angular/lu.js!@angular/common/locales/lu.js","!file-loader?name=assets/locales/angular/luo.js!@angular/common/locales/luo.js","!file-loader?name=assets/locales/angular/luy.js!@angular/common/locales/luy.js","!file-loader?name=assets/locales/angular/lv.js!@angular/common/locales/lv.js","!file-loader?name=assets/locales/angular/mas-TZ.js!@angular/common/locales/mas-TZ.js","!file-loader?name=assets/locales/angular/mas.js!@angular/common/locales/mas.js","!file-loader?name=assets/locales/angular/mer.js!@angular/common/locales/mer.js","!file-loader?name=assets/locales/angular/mfe.js!@angular/common/locales/mfe.js","!file-loader?name=assets/locales/angular/mg.js!@angular/common/locales/mg.js","!file-loader?name=assets/locales/angular/mgh.js!@angular/common/locales/mgh.js","!file-loader?name=assets/locales/angular/mgo.js!@angular/common/locales/mgo.js","!file-loader?name=assets/locales/angular/mk.js!@angular/common/locales/mk.js","!file-loader?name=assets/locales/angular/ml.js!@angular/common/locales/ml.js","!file-loader?name=assets/locales/angular/mn.js!@angular/common/locales/mn.js","!file-loader?name=assets/locales/angular/mr.js!@angular/common/locales/mr.js","!file-loader?name=assets/locales/angular/ms-BN.js!@angular/common/locales/ms-BN.js","!file-loader?name=assets/locales/angular/ms-SG.js!@angular/common/locales/ms-SG.js","!file-loader?name=assets/locales/angular/ms.js!@angular/common/locales/ms.js","!file-loader?name=assets/locales/angular/mt.js!@angular/common/locales/mt.js","!file-loader?name=assets/locales/angular/mua.js!@angular/common/locales/mua.js","!file-loader?name=assets/locales/angular/my.js!@angular/common/locales/my.js","!file-loader?name=assets/locales/angular/mzn.js!@angular/common/locales/mzn.js","!file-loader?name=assets/locales/angular/naq.js!@angular/common/locales/naq.js","!file-loader?name=assets/locales/angular/nb-SJ.js!@angular/common/locales/nb-SJ.js","!file-loader?name=assets/locales/angular/nb.js!@angular/common/locales/nb.js","!file-loader?name=assets/locales/angular/nd.js!@angular/common/locales/nd.js","!file-loader?name=assets/locales/angular/nds-NL.js!@angular/common/locales/nds-NL.js","!file-loader?name=assets/locales/angular/nds.js!@angular/common/locales/nds.js","!file-loader?name=assets/locales/angular/ne-IN.js!@angular/common/locales/ne-IN.js","!file-loader?name=assets/locales/angular/ne.js!@angular/common/locales/ne.js","!file-loader?name=assets/locales/angular/nl-AW.js!@angular/common/locales/nl-AW.js","!file-loader?name=assets/locales/angular/nl-BE.js!@angular/common/locales/nl-BE.js","!file-loader?name=assets/locales/angular/nl-BQ.js!@angular/common/locales/nl-BQ.js","!file-loader?name=assets/locales/angular/nl-CW.js!@angular/common/locales/nl-CW.js","!file-loader?name=assets/locales/angular/nl-SR.js!@angular/common/locales/nl-SR.js","!file-loader?name=assets/locales/angular/nl-SX.js!@angular/common/locales/nl-SX.js","!file-loader?name=assets/locales/angular/nl.js!@angular/common/locales/nl.js","!file-loader?name=assets/locales/angular/nmg.js!@angular/common/locales/nmg.js","!file-loader?name=assets/locales/angular/nn.js!@angular/common/locales/nn.js","!file-loader?name=assets/locales/angular/nnh.js!@angular/common/locales/nnh.js","!file-loader?name=assets/locales/angular/nus.js!@angular/common/locales/nus.js","!file-loader?name=assets/locales/angular/nyn.js!@angular/common/locales/nyn.js","!file-loader?name=assets/locales/angular/om-KE.js!@angular/common/locales/om-KE.js","!file-loader?name=assets/locales/angular/om.js!@angular/common/locales/om.js","!file-loader?name=assets/locales/angular/or.js!@angular/common/locales/or.js","!file-loader?name=assets/locales/angular/os-RU.js!@angular/common/locales/os-RU.js","!file-loader?name=assets/locales/angular/os.js!@angular/common/locales/os.js","!file-loader?name=assets/locales/angular/pa-Arab.js!@angular/common/locales/pa-Arab.js","!file-loader?name=assets/locales/angular/pa-Guru.js!@angular/common/locales/pa-Guru.js","!file-loader?name=assets/locales/angular/pa.js!@angular/common/locales/pa.js","!file-loader?name=assets/locales/angular/pl.js!@angular/common/locales/pl.js","!file-loader?name=assets/locales/angular/prg.js!@angular/common/locales/prg.js","!file-loader?name=assets/locales/angular/ps.js!@angular/common/locales/ps.js","!file-loader?name=assets/locales/angular/pt-AO.js!@angular/common/locales/pt-AO.js","!file-loader?name=assets/locales/angular/pt-CH.js!@angular/common/locales/pt-CH.js","!file-loader?name=assets/locales/angular/pt-CV.js!@angular/common/locales/pt-CV.js","!file-loader?name=assets/locales/angular/pt-GQ.js!@angular/common/locales/pt-GQ.js","!file-loader?name=assets/locales/angular/pt-GW.js!@angular/common/locales/pt-GW.js","!file-loader?name=assets/locales/angular/pt-LU.js!@angular/common/locales/pt-LU.js","!file-loader?name=assets/locales/angular/pt-MO.js!@angular/common/locales/pt-MO.js","!file-loader?name=assets/locales/angular/pt-MZ.js!@angular/common/locales/pt-MZ.js","!file-loader?name=assets/locales/angular/pt-PT.js!@angular/common/locales/pt-PT.js","!file-loader?name=assets/locales/angular/pt-ST.js!@angular/common/locales/pt-ST.js","!file-loader?name=assets/locales/angular/pt-TL.js!@angular/common/locales/pt-TL.js","!file-loader?name=assets/locales/angular/pt.js!@angular/common/locales/pt.js","!file-loader?name=assets/locales/angular/qu-BO.js!@angular/common/locales/qu-BO.js","!file-loader?name=assets/locales/angular/qu-EC.js!@angular/common/locales/qu-EC.js","!file-loader?name=assets/locales/angular/qu.js!@angular/common/locales/qu.js","!file-loader?name=assets/locales/angular/rm.js!@angular/common/locales/rm.js","!file-loader?name=assets/locales/angular/rn.js!@angular/common/locales/rn.js","!file-loader?name=assets/locales/angular/ro-MD.js!@angular/common/locales/ro-MD.js","!file-loader?name=assets/locales/angular/ro.js!@angular/common/locales/ro.js","!file-loader?name=assets/locales/angular/rof.js!@angular/common/locales/rof.js","!file-loader?name=assets/locales/angular/root.js!@angular/common/locales/root.js","!file-loader?name=assets/locales/angular/ru-BY.js!@angular/common/locales/ru-BY.js","!file-loader?name=assets/locales/angular/ru-KG.js!@angular/common/locales/ru-KG.js","!file-loader?name=assets/locales/angular/ru-KZ.js!@angular/common/locales/ru-KZ.js","!file-loader?name=assets/locales/angular/ru-MD.js!@angular/common/locales/ru-MD.js","!file-loader?name=assets/locales/angular/ru-UA.js!@angular/common/locales/ru-UA.js","!file-loader?name=assets/locales/angular/ru.js!@angular/common/locales/ru.js","!file-loader?name=assets/locales/angular/rw.js!@angular/common/locales/rw.js","!file-loader?name=assets/locales/angular/rwk.js!@angular/common/locales/rwk.js","!file-loader?name=assets/locales/angular/sah.js!@angular/common/locales/sah.js","!file-loader?name=assets/locales/angular/saq.js!@angular/common/locales/saq.js","!file-loader?name=assets/locales/angular/sbp.js!@angular/common/locales/sbp.js","!file-loader?name=assets/locales/angular/sd.js!@angular/common/locales/sd.js","!file-loader?name=assets/locales/angular/se-FI.js!@angular/common/locales/se-FI.js","!file-loader?name=assets/locales/angular/se-SE.js!@angular/common/locales/se-SE.js","!file-loader?name=assets/locales/angular/se.js!@angular/common/locales/se.js","!file-loader?name=assets/locales/angular/seh.js!@angular/common/locales/seh.js","!file-loader?name=assets/locales/angular/ses.js!@angular/common/locales/ses.js","!file-loader?name=assets/locales/angular/sg.js!@angular/common/locales/sg.js","!file-loader?name=assets/locales/angular/shi-Latn.js!@angular/common/locales/shi-Latn.js","!file-loader?name=assets/locales/angular/shi-Tfng.js!@angular/common/locales/shi-Tfng.js","!file-loader?name=assets/locales/angular/shi.js!@angular/common/locales/shi.js","!file-loader?name=assets/locales/angular/si.js!@angular/common/locales/si.js","!file-loader?name=assets/locales/angular/sk.js!@angular/common/locales/sk.js","!file-loader?name=assets/locales/angular/sl.js!@angular/common/locales/sl.js","!file-loader?name=assets/locales/angular/smn.js!@angular/common/locales/smn.js","!file-loader?name=assets/locales/angular/sn.js!@angular/common/locales/sn.js","!file-loader?name=assets/locales/angular/so-DJ.js!@angular/common/locales/so-DJ.js","!file-loader?name=assets/locales/angular/so-ET.js!@angular/common/locales/so-ET.js","!file-loader?name=assets/locales/angular/so-KE.js!@angular/common/locales/so-KE.js","!file-loader?name=assets/locales/angular/so.js!@angular/common/locales/so.js","!file-loader?name=assets/locales/angular/sq-MK.js!@angular/common/locales/sq-MK.js","!file-loader?name=assets/locales/angular/sq-XK.js!@angular/common/locales/sq-XK.js","!file-loader?name=assets/locales/angular/sq.js!@angular/common/locales/sq.js","!file-loader?name=assets/locales/angular/sr-Cyrl-BA.js!@angular/common/locales/sr-Cyrl-BA.js","!file-loader?name=assets/locales/angular/sr-Cyrl-ME.js!@angular/common/locales/sr-Cyrl-ME.js","!file-loader?name=assets/locales/angular/sr-Cyrl-XK.js!@angular/common/locales/sr-Cyrl-XK.js","!file-loader?name=assets/locales/angular/sr-Cyrl.js!@angular/common/locales/sr-Cyrl.js","!file-loader?name=assets/locales/angular/sr-Latn-BA.js!@angular/common/locales/sr-Latn-BA.js","!file-loader?name=assets/locales/angular/sr-Latn-ME.js!@angular/common/locales/sr-Latn-ME.js","!file-loader?name=assets/locales/angular/sr-Latn-XK.js!@angular/common/locales/sr-Latn-XK.js","!file-loader?name=assets/locales/angular/sr-Latn.js!@angular/common/locales/sr-Latn.js","!file-loader?name=assets/locales/angular/sr.js!@angular/common/locales/sr.js","!file-loader?name=assets/locales/angular/sv-AX.js!@angular/common/locales/sv-AX.js","!file-loader?name=assets/locales/angular/sv-FI.js!@angular/common/locales/sv-FI.js","!file-loader?name=assets/locales/angular/sv.js!@angular/common/locales/sv.js","!file-loader?name=assets/locales/angular/sw-CD.js!@angular/common/locales/sw-CD.js","!file-loader?name=assets/locales/angular/sw-KE.js!@angular/common/locales/sw-KE.js","!file-loader?name=assets/locales/angular/sw-UG.js!@angular/common/locales/sw-UG.js","!file-loader?name=assets/locales/angular/sw.js!@angular/common/locales/sw.js","!file-loader?name=assets/locales/angular/ta-LK.js!@angular/common/locales/ta-LK.js","!file-loader?name=assets/locales/angular/ta-MY.js!@angular/common/locales/ta-MY.js","!file-loader?name=assets/locales/angular/ta-SG.js!@angular/common/locales/ta-SG.js","!file-loader?name=assets/locales/angular/ta.js!@angular/common/locales/ta.js","!file-loader?name=assets/locales/angular/te.js!@angular/common/locales/te.js","!file-loader?name=assets/locales/angular/teo-KE.js!@angular/common/locales/teo-KE.js","!file-loader?name=assets/locales/angular/teo.js!@angular/common/locales/teo.js","!file-loader?name=assets/locales/angular/tg.js!@angular/common/locales/tg.js","!file-loader?name=assets/locales/angular/th.js!@angular/common/locales/th.js","!file-loader?name=assets/locales/angular/ti-ER.js!@angular/common/locales/ti-ER.js","!file-loader?name=assets/locales/angular/ti.js!@angular/common/locales/ti.js","!file-loader?name=assets/locales/angular/tk.js!@angular/common/locales/tk.js","!file-loader?name=assets/locales/angular/to.js!@angular/common/locales/to.js","!file-loader?name=assets/locales/angular/tr-CY.js!@angular/common/locales/tr-CY.js","!file-loader?name=assets/locales/angular/tr.js!@angular/common/locales/tr.js","!file-loader?name=assets/locales/angular/tt.js!@angular/common/locales/tt.js","!file-loader?name=assets/locales/angular/twq.js!@angular/common/locales/twq.js","!file-loader?name=assets/locales/angular/tzm.js!@angular/common/locales/tzm.js","!file-loader?name=assets/locales/angular/ug.js!@angular/common/locales/ug.js","!file-loader?name=assets/locales/angular/uk.js!@angular/common/locales/uk.js","!file-loader?name=assets/locales/angular/ur-IN.js!@angular/common/locales/ur-IN.js","!file-loader?name=assets/locales/angular/ur.js!@angular/common/locales/ur.js","!file-loader?name=assets/locales/angular/uz-Arab.js!@angular/common/locales/uz-Arab.js","!file-loader?name=assets/locales/angular/uz-Cyrl.js!@angular/common/locales/uz-Cyrl.js","!file-loader?name=assets/locales/angular/uz-Latn.js!@angular/common/locales/uz-Latn.js","!file-loader?name=assets/locales/angular/uz.js!@angular/common/locales/uz.js","!file-loader?name=assets/locales/angular/vai-Latn.js!@angular/common/locales/vai-Latn.js","!file-loader?name=assets/locales/angular/vai-Vaii.js!@angular/common/locales/vai-Vaii.js","!file-loader?name=assets/locales/angular/vai.js!@angular/common/locales/vai.js","!file-loader?name=assets/locales/angular/vi.js!@angular/common/locales/vi.js","!file-loader?name=assets/locales/angular/vo.js!@angular/common/locales/vo.js","!file-loader?name=assets/locales/angular/vun.js!@angular/common/locales/vun.js","!file-loader?name=assets/locales/angular/wae.js!@angular/common/locales/wae.js","!file-loader?name=assets/locales/angular/wo.js!@angular/common/locales/wo.js","!file-loader?name=assets/locales/angular/xog.js!@angular/common/locales/xog.js","!file-loader?name=assets/locales/angular/yav.js!@angular/common/locales/yav.js","!file-loader?name=assets/locales/angular/yi.js!@angular/common/locales/yi.js","!file-loader?name=assets/locales/angular/yo-BJ.js!@angular/common/locales/yo-BJ.js","!file-loader?name=assets/locales/angular/yo.js!@angular/common/locales/yo.js","!file-loader?name=assets/locales/angular/yue-Hans.js!@angular/common/locales/yue-Hans.js","!file-loader?name=assets/locales/angular/yue-Hant.js!@angular/common/locales/yue-Hant.js","!file-loader?name=assets/locales/angular/yue.js!@angular/common/locales/yue.js","!file-loader?name=assets/locales/angular/zgh.js!@angular/common/locales/zgh.js","!file-loader?name=assets/locales/angular/zh-Hans-HK.js!@angular/common/locales/zh-Hans-HK.js","!file-loader?name=assets/locales/angular/zh-Hans-MO.js!@angular/common/locales/zh-Hans-MO.js","!file-loader?name=assets/locales/angular/zh-Hans-SG.js!@angular/common/locales/zh-Hans-SG.js","!file-loader?name=assets/locales/angular/zh-Hans.js!@angular/common/locales/zh-Hans.js","!file-loader?name=assets/locales/angular/zh-Hant-HK.js!@angular/common/locales/zh-Hant-HK.js","!file-loader?name=assets/locales/angular/zh-Hant-MO.js!@angular/common/locales/zh-Hant-MO.js","!file-loader?name=assets/locales/angular/zh-Hant.js!@angular/common/locales/zh-Hant.js","!file-loader?name=assets/locales/angular/zh.js!@angular/common/locales/zh.js","!file-loader?name=assets/locales/angular/zu.js!@angular/common/locales/zu.js","ngx-bootstrap/collapse","ngx-bootstrap/dropdown","ngx-bootstrap/tooltip","@angular/forms","@angular/platform-browser","ngx-bootstrap/modal","ngx-bootstrap/popover","libphonenumber-js/max","@angular/upgrade/static","angularx-qrcode","@angular/cdk/table","@angular/cdk/drag-drop","ngx-bootstrap/pagination","@angular/cdk/stepper"],t):t(((e=e||self).c8y=e.c8y||{},e.c8y["ngx-components"]={}),e.ng.core,e.ng.router,e.rxjs,e.rxjs.operators,e.lodashEs,e.c8y["ngx-components"].api,e.client,e.core$1,e.lodash,e.ng.common,e.ng.common.http,e.afNA_js,e.af_js,e.agq_js,e.ak_js,e.am_js,e.arAE_js,e.arBH_js,e.arDJ_js,e.arDZ_js,e.arEG_js,e.arEH_js,e.arER_js,e.arIL_js,e.arIQ_js,e.arJO_js,e.arKM_js,e.arKW_js,e.arLB_js,e.arLY_js,e.arMA_js,e.arMR_js,e.arOM_js,e.arPS_js,e.arQA_js,e.arSA_js,e.arSD_js,e.arSO_js,e.arSS_js,e.arSY_js,e.arTD_js,e.arTN_js,e.arYE_js,e.ar_js,e.as_js,e.asa_js,e.ast_js,e.azCyrl_js,e.azLatn_js,e.az_js,e.bas_js,e.be_js,e.bem_js,e.bez_js,e.bg_js,e.bm_js,e.bnIN_js,e.bn_js,e.boIN_js,e.bo_js,e.br_js,e.brx_js,e.bsCyrl_js,e.bsLatn_js,e.bs_js,e.caAD_js,e.caESVALENCIA_js,e.caFR_js,e.caIT_js,e.ca_js,e.ccpIN_js,e.ccp_js,e.ce_js,e.cgg_js,e.chr_js,e.ckbIR_js,e.ckb_js,e.cs_js,e.cu_js,e.cy_js,e.daGL_js,e.da_js,e.dav_js,e.deAT_js,e.deBE_js,e.deCH_js,e.deIT_js,e.deLI_js,e.deLU_js,e.de_js,e.dje_js,e.dsb_js,e.dua_js,e.dyo_js,e.dz_js,e.ebu_js,e.eeTG_js,e.ee_js,e.elCY_js,e.el_js,e.en001_js,e.en150_js,e.enAG_js,e.enAI_js,e.enAS_js,e.enAT_js,e.enAU_js,e.enBB_js,e.enBE_js,e.enBI_js,e.enBM_js,e.enBS_js,e.enBW_js,e.enBZ_js,e.enCA_js,e.enCC_js,e.enCH_js,e.enCK_js,e.enCM_js,e.enCX_js,e.enCY_js,e.enDE_js,e.enDG_js,e.enDK_js,e.enDM_js,e.enER_js,e.enFI_js,e.enFJ_js,e.enFK_js,e.enFM_js,e.enGB_js,e.enGD_js,e.enGG_js,e.enGH_js,e.enGI_js,e.enGM_js,e.enGU_js,e.enGY_js,e.enHK_js,e.enIE_js,e.enIL_js,e.enIM_js,e.enIN_js,e.enIO_js,e.enJE_js,e.enJM_js,e.enKE_js,e.enKI_js,e.enKN_js,e.enKY_js,e.enLC_js,e.enLR_js,e.enLS_js,e.enMG_js,e.enMH_js,e.enMO_js,e.enMP_js,e.enMS_js,e.enMT_js,e.enMU_js,e.enMW_js,e.enMY_js,e.enNA_js,e.enNF_js,e.enNG_js,e.enNL_js,e.enNR_js,e.enNU_js,e.enNZ_js,e.enPG_js,e.enPH_js,e.enPK_js,e.enPN_js,e.enPR_js,e.enPW_js,e.enRW_js,e.enSB_js,e.enSC_js,e.enSD_js,e.enSE_js,e.enSG_js,e.enSH_js,e.enSI_js,e.enSL_js,e.enSS_js,e.enSX_js,e.enSZ_js,e.enTC_js,e.enTK_js,e.enTO_js,e.enTT_js,e.enTV_js,e.enTZ_js,e.enUG_js,e.enUM_js,e.enUSPOSIX_js,e.enVC_js,e.enVG_js,e.enVI_js,e.enVU_js,e.enWS_js,e.enZA_js,e.enZM_js,e.enZW_js,e.en_js,e.eo_js,e.es419_js,e.esAR_js,e.esBO_js,e.esBR_js,e.esBZ_js,e.esCL_js,e.esCO_js,e.esCR_js,e.esCU_js,e.esDO_js,e.esEA_js,e.esEC_js,e.esGQ_js,e.esGT_js,e.esHN_js,e.esIC_js,e.esMX_js,e.esNI_js,e.esPA_js,e.esPE_js,e.esPH_js,e.esPR_js,e.esPY_js,e.esSV_js,e.esUS_js,e.esUY_js,e.esVE_js,e.es_js,e.et_js,e.eu_js,e.ewo_js,e.faAF_js,e.fa_js,e.ffCM_js,e.ffGN_js,e.ffMR_js,e.ff_js,e.fi_js,e.fil_js,e.foDK_js,e.fo_js,e.frBE_js,e.frBF_js,e.frBI_js,e.frBJ_js,e.frBL_js,e.frCA_js,e.frCD_js,e.frCF_js,e.frCG_js,e.frCH_js,e.frCI_js,e.frCM_js,e.frDJ_js,e.frDZ_js,e.frGA_js,e.frGF_js,e.frGN_js,e.frGP_js,e.frGQ_js,e.frHT_js,e.frKM_js,e.frLU_js,e.frMA_js,e.frMC_js,e.frMF_js,e.frMG_js,e.frML_js,e.frMQ_js,e.frMR_js,e.frMU_js,e.frNC_js,e.frNE_js,e.frPF_js,e.frPM_js,e.frRE_js,e.frRW_js,e.frSC_js,e.frSN_js,e.frSY_js,e.frTD_js,e.frTG_js,e.frTN_js,e.frVU_js,e.frWF_js,e.frYT_js,e.fr_js,e.fur_js,e.fy_js,e.ga_js,e.gd_js,e.gl_js,e.gswFR_js,e.gswLI_js,e.gsw_js,e.gu_js,e.guz_js,e.gv_js,e.haGH_js,e.haNE_js,e.ha_js,e.haw_js,e.he_js,e.hi_js,e.hrBA_js,e.hr_js,e.hsb_js,e.hu_js,e.hy_js,e.id_js,e.ig_js,e.ii_js,e.is_js,e.itCH_js,e.itSM_js,e.itVA_js,e.it_js,e.ja_js,e.jgo_js,e.jmc_js,e.ka_js,e.kab_js,e.kam_js,e.kde_js,e.kea_js,e.khq_js,e.ki_js,e.kk_js,e.kkj_js,e.kl_js,e.kln_js,e.km_js,e.kn_js,e.koKP_js,e.ko_js,e.kok_js,e.ks_js,e.ksb_js,e.ksf_js,e.ksh_js,e.kw_js,e.ky_js,e.lag_js,e.lb_js,e.lg_js,e.lkt_js,e.lnAO_js,e.lnCF_js,e.lnCG_js,e.ln_js,e.lo_js,e.lrcIQ_js,e.lrc_js,e.lt_js,e.lu_js,e.luo_js,e.luy_js,e.lv_js,e.masTZ_js,e.mas_js,e.mer_js,e.mfe_js,e.mg_js,e.mgh_js,e.mgo_js,e.mk_js,e.ml_js,e.mn_js,e.mr_js,e.msBN_js,e.msSG_js,e.ms_js,e.mt_js,e.mua_js,e.my_js,e.mzn_js,e.naq_js,e.nbSJ_js,e.nb_js,e.nd_js,e.ndsNL_js,e.nds_js,e.neIN_js,e.ne_js,e.nlAW_js,e.nlBE_js,e.nlBQ_js,e.nlCW_js,e.nlSR_js,e.nlSX_js,e.nl_js,e.nmg_js,e.nn_js,e.nnh_js,e.nus_js,e.nyn_js,e.omKE_js,e.om_js,e.or_js,e.osRU_js,e.os_js,e.paArab_js,e.paGuru_js,e.pa_js,e.pl_js,e.prg_js,e.ps_js,e.ptAO_js,e.ptCH_js,e.ptCV_js,e.ptGQ_js,e.ptGW_js,e.ptLU_js,e.ptMO_js,e.ptMZ_js,e.ptPT_js,e.ptST_js,e.ptTL_js,e.pt_js,e.quBO_js,e.quEC_js,e.qu_js,e.rm_js,e.rn_js,e.roMD_js,e.ro_js,e.rof_js,e.root_js,e.ruBY_js,e.ruKG_js,e.ruKZ_js,e.ruMD_js,e.ruUA_js,e.ru_js,e.rw_js,e.rwk_js,e.sah_js,e.saq_js,e.sbp_js,e.sd_js,e.seFI_js,e.seSE_js,e.se_js,e.seh_js,e.ses_js,e.sg_js,e.shiLatn_js,e.shiTfng_js,e.shi_js,e.si_js,e.sk_js,e.sl_js,e.smn_js,e.sn_js,e.soDJ_js,e.soET_js,e.soKE_js,e.so_js,e.sqMK_js,e.sqXK_js,e.sq_js,e.srCyrlBA_js,e.srCyrlME_js,e.srCyrlXK_js,e.srCyrl_js,e.srLatnBA_js,e.srLatnME_js,e.srLatnXK_js,e.srLatn_js,e.sr_js,e.svAX_js,e.svFI_js,e.sv_js,e.swCD_js,e.swKE_js,e.swUG_js,e.sw_js,e.taLK_js,e.taMY_js,e.taSG_js,e.ta_js,e.te_js,e.teoKE_js,e.teo_js,e.tg_js,e.th_js,e.tiER_js,e.ti_js,e.tk_js,e.to_js,e.trCY_js,e.tr_js,e.tt_js,e.twq_js,e.tzm_js,e.ug_js,e.uk_js,e.urIN_js,e.ur_js,e.uzArab_js,e.uzCyrl_js,e.uzLatn_js,e.uz_js,e.vaiLatn_js,e.vaiVaii_js,e.vai_js,e.vi_js,e.vo_js,e.vun_js,e.wae_js,e.wo_js,e.xog_js,e.yav_js,e.yi_js,e.yoBJ_js,e.yo_js,e.yueHans_js,e.yueHant_js,e.yue_js,e.zgh_js,e.zhHansHK_js,e.zhHansMO_js,e.zhHansSG_js,e.zhHans_js,e.zhHantHK_js,e.zhHantMO_js,e.zhHant_js,e.zh_js,e.zu_js,e.collapse,e.dropdown,e.tooltip,e.ng.forms,e.ng.platformBrowser,e.modal,e.popover,e.max,e.ng.upgrade.static,e.angularxQrcode,e.ng.cdk.table,e.ng.cdk["drag-drop"],e.pagination,e.ng.cdk.stepper)}(this,(function(e,t,n,a,s,o,r,l,i,c,u,d,p,m,g,f,h,y,v,j,b,w,S,C,I,P,O,_,x,E,k,A,T,D,N,M,q,L,R,$,F,U,G,B,z,H,V,K,W,Y,Z,J,X,Q,ee,te,ne,ae,se,oe,re,le,ie,ce,ue,de,pe,me,ge,fe,he,ye,ve,je,be,we,Se,Ce,Ie,Pe,Oe,_e,xe,Ee,ke,Ae,Te,De,Ne,Me,qe,Le,Re,$e,Fe,Ue,Ge,Be,ze,He,Ve,Ke,We,Ye,Ze,Je,Xe,Qe,et,tt,nt,at,st,ot,rt,lt,it,ct,ut,dt,pt,mt,gt,ft,ht,yt,vt,jt,bt,wt,St,Ct,It,Pt,Ot,_t,xt,Et,kt,At,Tt,Dt,Nt,Mt,qt,Lt,Rt,$t,Ft,Ut,Gt,Bt,zt,Ht,Vt,Kt,Wt,Yt,Zt,Jt,Xt,Qt,en,tn,nn,an,sn,on,rn,ln,cn,un,dn,pn,mn,gn,fn,hn,yn,vn,jn,bn,wn,Sn,Cn,In,Pn,On,_n,xn,En,kn,An,Tn,Dn,Nn,Mn,qn,Ln,Rn,$n,Fn,Un,Gn,Bn,zn,Hn,Vn,Kn,Wn,Yn,Zn,Jn,Xn,Qn,ea,ta,na,aa,sa,oa,ra,la,ia,ca,ua,da,pa,ma,ga,fa,ha,ya,va,ja,ba,wa,Sa,Ca,Ia,Pa,Oa,_a,xa,Ea,ka,Aa,Ta,Da,Na,Ma,qa,La,Ra,$a,Fa,Ua,Ga,Ba,za,Ha,Va,Ka,Wa,Ya,Za,Ja,Xa,Qa,es,ts,ns,as,ss,os,rs,ls,is,cs,us,ds,ps,ms,gs,fs,hs,ys,vs,js,bs,ws,Ss,Cs,Is,Ps,Os,_s,xs,Es,ks,As,Ts,Ds,Ns,Ms,qs,Ls,Rs,$s,Fs,Us,Gs,Bs,zs,Hs,Vs,Ks,Ws,Ys,Zs,Js,Xs,Qs,eo,to,no,ao,so,oo,ro,lo,io,co,uo,po,mo,go,fo,ho,yo,vo,jo,bo,wo,So,Co,Io,Po,Oo,_o,xo,Eo,ko,Ao,To,Do,No,Mo,qo,Lo,Ro,$o,Fo,Uo,Go,Bo,zo,Ho,Vo,Ko,Wo,Yo,Zo,Jo,Xo,Qo,er,tr,nr,ar,sr,or,rr,lr,ir,cr,ur,dr,pr,mr,gr,fr,hr,yr,vr,jr,br,wr,Sr,Cr,Ir,Pr,Or,_r,xr,Er,kr,Ar,Tr,Dr,Nr,Mr,qr,Lr,Rr,$r,Fr,Ur,Gr,Br,zr,Hr,Vr,Kr,Wr,Yr,Zr,Jr,Xr,Qr,el,tl,nl,al,sl,ol,rl,ll,il,cl,ul,dl,pl,ml,gl,fl,hl,yl,vl,jl,bl,wl,Sl,Cl,Il,Pl,Ol,_l,xl,El,kl,Al,Tl,Dl,Nl,Ml,ql,Ll,Rl,$l,Fl,Ul,Gl,Bl,zl,Hl,Vl,Kl,Wl,Yl,Zl,Jl,Xl,Ql,ei,ti,ni,ai,si,oi,ri,li,ii,ci,ui,di,pi,mi,gi,fi,hi,yi,vi,ji,bi,wi,Si,Ci,Ii,Pi,Oi,_i,xi,Ei,ki,Ai,Ti,Di,Ni,Mi,qi,Li,Ri,$i,Fi,Ui,Gi,Bi,zi,Hi,Vi,Ki,Wi,Yi,Zi,Ji,Xi,Qi,ec,tc,nc,ac,sc,oc,rc,lc,ic,cc,uc,dc){"use strict";p=p&&p.hasOwnProperty("default")?p.default:p,m=m&&m.hasOwnProperty("default")?m.default:m,g=g&&g.hasOwnProperty("default")?g.default:g,f=f&&f.hasOwnProperty("default")?f.default:f,h=h&&h.hasOwnProperty("default")?h.default:h,y=y&&y.hasOwnProperty("default")?y.default:y,v=v&&v.hasOwnProperty("default")?v.default:v,j=j&&j.hasOwnProperty("default")?j.default:j,b=b&&b.hasOwnProperty("default")?b.default:b,w=w&&w.hasOwnProperty("default")?w.default:w,S=S&&S.hasOwnProperty("default")?S.default:S,C=C&&C.hasOwnProperty("default")?C.default:C,I=I&&I.hasOwnProperty("default")?I.default:I,P=P&&P.hasOwnProperty("default")?P.default:P,O=O&&O.hasOwnProperty("default")?O.default:O,_=_&&_.hasOwnProperty("default")?_.default:_,x=x&&x.hasOwnProperty("default")?x.default:x,E=E&&E.hasOwnProperty("default")?E.default:E,k=k&&k.hasOwnProperty("default")?k.default:k,A=A&&A.hasOwnProperty("default")?A.default:A,T=T&&T.hasOwnProperty("default")?T.default:T,D=D&&D.hasOwnProperty("default")?D.default:D,N=N&&N.hasOwnProperty("default")?N.default:N,M=M&&M.hasOwnProperty("default")?M.default:M,q=q&&q.hasOwnProperty("default")?q.default:q,L=L&&L.hasOwnProperty("default")?L.default:L,R=R&&R.hasOwnProperty("default")?R.default:R,$=$&&$.hasOwnProperty("default")?$.default:$,F=F&&F.hasOwnProperty("default")?F.default:F,U=U&&U.hasOwnProperty("default")?U.default:U,G=G&&G.hasOwnProperty("default")?G.default:G,B=B&&B.hasOwnProperty("default")?B.default:B,z=z&&z.hasOwnProperty("default")?z.default:z,H=H&&H.hasOwnProperty("default")?H.default:H,V=V&&V.hasOwnProperty("default")?V.default:V,K=K&&K.hasOwnProperty("default")?K.default:K,W=W&&W.hasOwnProperty("default")?W.default:W,Y=Y&&Y.hasOwnProperty("default")?Y.default:Y,Z=Z&&Z.hasOwnProperty("default")?Z.default:Z,J=J&&J.hasOwnProperty("default")?J.default:J,X=X&&X.hasOwnProperty("default")?X.default:X,Q=Q&&Q.hasOwnProperty("default")?Q.default:Q,ee=ee&&ee.hasOwnProperty("default")?ee.default:ee,te=te&&te.hasOwnProperty("default")?te.default:te,ne=ne&&ne.hasOwnProperty("default")?ne.default:ne,ae=ae&&ae.hasOwnProperty("default")?ae.default:ae,se=se&&se.hasOwnProperty("default")?se.default:se,oe=oe&&oe.hasOwnProperty("default")?oe.default:oe,re=re&&re.hasOwnProperty("default")?re.default:re,le=le&&le.hasOwnProperty("default")?le.default:le,ie=ie&&ie.hasOwnProperty("default")?ie.default:ie,ce=ce&&ce.hasOwnProperty("default")?ce.default:ce,ue=ue&&ue.hasOwnProperty("default")?ue.default:ue,de=de&&de.hasOwnProperty("default")?de.default:de,pe=pe&&pe.hasOwnProperty("default")?pe.default:pe,me=me&&me.hasOwnProperty("default")?me.default:me,ge=ge&&ge.hasOwnProperty("default")?ge.default:ge,fe=fe&&fe.hasOwnProperty("default")?fe.default:fe,he=he&&he.hasOwnProperty("default")?he.default:he,ye=ye&&ye.hasOwnProperty("default")?ye.default:ye,ve=ve&&ve.hasOwnProperty("default")?ve.default:ve,je=je&&je.hasOwnProperty("default")?je.default:je,be=be&&be.hasOwnProperty("default")?be.default:be,we=we&&we.hasOwnProperty("default")?we.default:we,Se=Se&&Se.hasOwnProperty("default")?Se.default:Se,Ce=Ce&&Ce.hasOwnProperty("default")?Ce.default:Ce,Ie=Ie&&Ie.hasOwnProperty("default")?Ie.default:Ie,Pe=Pe&&Pe.hasOwnProperty("default")?Pe.default:Pe,Oe=Oe&&Oe.hasOwnProperty("default")?Oe.default:Oe,_e=_e&&_e.hasOwnProperty("default")?_e.default:_e,xe=xe&&xe.hasOwnProperty("default")?xe.default:xe,Ee=Ee&&Ee.hasOwnProperty("default")?Ee.default:Ee,ke=ke&&ke.hasOwnProperty("default")?ke.default:ke,Ae=Ae&&Ae.hasOwnProperty("default")?Ae.default:Ae,Te=Te&&Te.hasOwnProperty("default")?Te.default:Te,De=De&&De.hasOwnProperty("default")?De.default:De,Ne=Ne&&Ne.hasOwnProperty("default")?Ne.default:Ne,Me=Me&&Me.hasOwnProperty("default")?Me.default:Me,qe=qe&&qe.hasOwnProperty("default")?qe.default:qe,Le=Le&&Le.hasOwnProperty("default")?Le.default:Le,Re=Re&&Re.hasOwnProperty("default")?Re.default:Re,$e=$e&&$e.hasOwnProperty("default")?$e.default:$e,Fe=Fe&&Fe.hasOwnProperty("default")?Fe.default:Fe,Ue=Ue&&Ue.hasOwnProperty("default")?Ue.default:Ue,Ge=Ge&&Ge.hasOwnProperty("default")?Ge.default:Ge,Be=Be&&Be.hasOwnProperty("default")?Be.default:Be,ze=ze&&ze.hasOwnProperty("default")?ze.default:ze,He=He&&He.hasOwnProperty("default")?He.default:He,Ve=Ve&&Ve.hasOwnProperty("default")?Ve.default:Ve,Ke=Ke&&Ke.hasOwnProperty("default")?Ke.default:Ke,We=We&&We.hasOwnProperty("default")?We.default:We,Ye=Ye&&Ye.hasOwnProperty("default")?Ye.default:Ye,Ze=Ze&&Ze.hasOwnProperty("default")?Ze.default:Ze,Je=Je&&Je.hasOwnProperty("default")?Je.default:Je,Xe=Xe&&Xe.hasOwnProperty("default")?Xe.default:Xe,Qe=Qe&&Qe.hasOwnProperty("default")?Qe.default:Qe,et=et&&et.hasOwnProperty("default")?et.default:et,tt=tt&&tt.hasOwnProperty("default")?tt.default:tt,nt=nt&&nt.hasOwnProperty("default")?nt.default:nt,at=at&&at.hasOwnProperty("default")?at.default:at,st=st&&st.hasOwnProperty("default")?st.default:st,ot=ot&&ot.hasOwnProperty("default")?ot.default:ot,rt=rt&&rt.hasOwnProperty("default")?rt.default:rt,lt=lt&<.hasOwnProperty("default")?lt.default:lt,it=it&&it.hasOwnProperty("default")?it.default:it,ct=ct&&ct.hasOwnProperty("default")?ct.default:ct,ut=ut&&ut.hasOwnProperty("default")?ut.default:ut,dt=dt&&dt.hasOwnProperty("default")?dt.default:dt,pt=pt&&pt.hasOwnProperty("default")?pt.default:pt,mt=mt&&mt.hasOwnProperty("default")?mt.default:mt,gt=gt&>.hasOwnProperty("default")?gt.default:gt,ft=ft&&ft.hasOwnProperty("default")?ft.default:ft,ht=ht&&ht.hasOwnProperty("default")?ht.default:ht,yt=yt&&yt.hasOwnProperty("default")?yt.default:yt,vt=vt&&vt.hasOwnProperty("default")?vt.default:vt,jt=jt&&jt.hasOwnProperty("default")?jt.default:jt,bt=bt&&bt.hasOwnProperty("default")?bt.default:bt,wt=wt&&wt.hasOwnProperty("default")?wt.default:wt,St=St&&St.hasOwnProperty("default")?St.default:St,Ct=Ct&&Ct.hasOwnProperty("default")?Ct.default:Ct,It=It&&It.hasOwnProperty("default")?It.default:It,Pt=Pt&&Pt.hasOwnProperty("default")?Pt.default:Pt,Ot=Ot&&Ot.hasOwnProperty("default")?Ot.default:Ot,_t=_t&&_t.hasOwnProperty("default")?_t.default:_t,xt=xt&&xt.hasOwnProperty("default")?xt.default:xt,Et=Et&&Et.hasOwnProperty("default")?Et.default:Et,kt=kt&&kt.hasOwnProperty("default")?kt.default:kt,At=At&&At.hasOwnProperty("default")?At.default:At,Tt=Tt&&Tt.hasOwnProperty("default")?Tt.default:Tt,Dt=Dt&&Dt.hasOwnProperty("default")?Dt.default:Dt,Nt=Nt&&Nt.hasOwnProperty("default")?Nt.default:Nt,Mt=Mt&&Mt.hasOwnProperty("default")?Mt.default:Mt,qt=qt&&qt.hasOwnProperty("default")?qt.default:qt,Lt=Lt&&Lt.hasOwnProperty("default")?Lt.default:Lt,Rt=Rt&&Rt.hasOwnProperty("default")?Rt.default:Rt,$t=$t&&$t.hasOwnProperty("default")?$t.default:$t,Ft=Ft&&Ft.hasOwnProperty("default")?Ft.default:Ft,Ut=Ut&&Ut.hasOwnProperty("default")?Ut.default:Ut,Gt=Gt&&Gt.hasOwnProperty("default")?Gt.default:Gt,Bt=Bt&&Bt.hasOwnProperty("default")?Bt.default:Bt,zt=zt&&zt.hasOwnProperty("default")?zt.default:zt,Ht=Ht&&Ht.hasOwnProperty("default")?Ht.default:Ht,Vt=Vt&&Vt.hasOwnProperty("default")?Vt.default:Vt,Kt=Kt&&Kt.hasOwnProperty("default")?Kt.default:Kt,Wt=Wt&&Wt.hasOwnProperty("default")?Wt.default:Wt,Yt=Yt&&Yt.hasOwnProperty("default")?Yt.default:Yt,Zt=Zt&&Zt.hasOwnProperty("default")?Zt.default:Zt,Jt=Jt&&Jt.hasOwnProperty("default")?Jt.default:Jt,Xt=Xt&&Xt.hasOwnProperty("default")?Xt.default:Xt,Qt=Qt&&Qt.hasOwnProperty("default")?Qt.default:Qt,en=en&&en.hasOwnProperty("default")?en.default:en,tn=tn&&tn.hasOwnProperty("default")?tn.default:tn,nn=nn&&nn.hasOwnProperty("default")?nn.default:nn,an=an&&an.hasOwnProperty("default")?an.default:an,sn=sn&&sn.hasOwnProperty("default")?sn.default:sn,on=on&&on.hasOwnProperty("default")?on.default:on,rn=rn&&rn.hasOwnProperty("default")?rn.default:rn,ln=ln&&ln.hasOwnProperty("default")?ln.default:ln,cn=cn&&cn.hasOwnProperty("default")?cn.default:cn,un=un&&un.hasOwnProperty("default")?un.default:un,dn=dn&&dn.hasOwnProperty("default")?dn.default:dn,pn=pn&&pn.hasOwnProperty("default")?pn.default:pn,mn=mn&&mn.hasOwnProperty("default")?mn.default:mn,gn=gn&&gn.hasOwnProperty("default")?gn.default:gn,fn=fn&&fn.hasOwnProperty("default")?fn.default:fn,hn=hn&&hn.hasOwnProperty("default")?hn.default:hn,yn=yn&&yn.hasOwnProperty("default")?yn.default:yn,vn=vn&&vn.hasOwnProperty("default")?vn.default:vn,jn=jn&&jn.hasOwnProperty("default")?jn.default:jn,bn=bn&&bn.hasOwnProperty("default")?bn.default:bn,wn=wn&&wn.hasOwnProperty("default")?wn.default:wn,Sn=Sn&&Sn.hasOwnProperty("default")?Sn.default:Sn,Cn=Cn&&Cn.hasOwnProperty("default")?Cn.default:Cn,In=In&&In.hasOwnProperty("default")?In.default:In,Pn=Pn&&Pn.hasOwnProperty("default")?Pn.default:Pn,On=On&&On.hasOwnProperty("default")?On.default:On,_n=_n&&_n.hasOwnProperty("default")?_n.default:_n,xn=xn&&xn.hasOwnProperty("default")?xn.default:xn,En=En&&En.hasOwnProperty("default")?En.default:En,kn=kn&&kn.hasOwnProperty("default")?kn.default:kn,An=An&&An.hasOwnProperty("default")?An.default:An,Tn=Tn&&Tn.hasOwnProperty("default")?Tn.default:Tn,Dn=Dn&&Dn.hasOwnProperty("default")?Dn.default:Dn,Nn=Nn&&Nn.hasOwnProperty("default")?Nn.default:Nn,Mn=Mn&&Mn.hasOwnProperty("default")?Mn.default:Mn,qn=qn&&qn.hasOwnProperty("default")?qn.default:qn,Ln=Ln&&Ln.hasOwnProperty("default")?Ln.default:Ln,Rn=Rn&&Rn.hasOwnProperty("default")?Rn.default:Rn,$n=$n&&$n.hasOwnProperty("default")?$n.default:$n,Fn=Fn&&Fn.hasOwnProperty("default")?Fn.default:Fn,Un=Un&&Un.hasOwnProperty("default")?Un.default:Un,Gn=Gn&&Gn.hasOwnProperty("default")?Gn.default:Gn,Bn=Bn&&Bn.hasOwnProperty("default")?Bn.default:Bn,zn=zn&&zn.hasOwnProperty("default")?zn.default:zn,Hn=Hn&&Hn.hasOwnProperty("default")?Hn.default:Hn,Vn=Vn&&Vn.hasOwnProperty("default")?Vn.default:Vn,Kn=Kn&&Kn.hasOwnProperty("default")?Kn.default:Kn,Wn=Wn&&Wn.hasOwnProperty("default")?Wn.default:Wn,Yn=Yn&&Yn.hasOwnProperty("default")?Yn.default:Yn,Zn=Zn&&Zn.hasOwnProperty("default")?Zn.default:Zn,Jn=Jn&&Jn.hasOwnProperty("default")?Jn.default:Jn,Xn=Xn&&Xn.hasOwnProperty("default")?Xn.default:Xn,Qn=Qn&&Qn.hasOwnProperty("default")?Qn.default:Qn,ea=ea&&ea.hasOwnProperty("default")?ea.default:ea,ta=ta&&ta.hasOwnProperty("default")?ta.default:ta,na=na&&na.hasOwnProperty("default")?na.default:na,aa=aa&&aa.hasOwnProperty("default")?aa.default:aa,sa=sa&&sa.hasOwnProperty("default")?sa.default:sa,oa=oa&&oa.hasOwnProperty("default")?oa.default:oa,ra=ra&&ra.hasOwnProperty("default")?ra.default:ra,la=la&&la.hasOwnProperty("default")?la.default:la,ia=ia&&ia.hasOwnProperty("default")?ia.default:ia,ca=ca&&ca.hasOwnProperty("default")?ca.default:ca,ua=ua&&ua.hasOwnProperty("default")?ua.default:ua,da=da&&da.hasOwnProperty("default")?da.default:da,pa=pa&&pa.hasOwnProperty("default")?pa.default:pa,ma=ma&&ma.hasOwnProperty("default")?ma.default:ma,ga=ga&&ga.hasOwnProperty("default")?ga.default:ga,fa=fa&&fa.hasOwnProperty("default")?fa.default:fa,ha=ha&&ha.hasOwnProperty("default")?ha.default:ha,ya=ya&&ya.hasOwnProperty("default")?ya.default:ya,va=va&&va.hasOwnProperty("default")?va.default:va,ja=ja&&ja.hasOwnProperty("default")?ja.default:ja,ba=ba&&ba.hasOwnProperty("default")?ba.default:ba,wa=wa&&wa.hasOwnProperty("default")?wa.default:wa,Sa=Sa&&Sa.hasOwnProperty("default")?Sa.default:Sa,Ca=Ca&&Ca.hasOwnProperty("default")?Ca.default:Ca,Ia=Ia&&Ia.hasOwnProperty("default")?Ia.default:Ia,Pa=Pa&&Pa.hasOwnProperty("default")?Pa.default:Pa,Oa=Oa&&Oa.hasOwnProperty("default")?Oa.default:Oa,_a=_a&&_a.hasOwnProperty("default")?_a.default:_a,xa=xa&&xa.hasOwnProperty("default")?xa.default:xa,Ea=Ea&&Ea.hasOwnProperty("default")?Ea.default:Ea,ka=ka&&ka.hasOwnProperty("default")?ka.default:ka,Aa=Aa&&Aa.hasOwnProperty("default")?Aa.default:Aa,Ta=Ta&&Ta.hasOwnProperty("default")?Ta.default:Ta,Da=Da&&Da.hasOwnProperty("default")?Da.default:Da,Na=Na&&Na.hasOwnProperty("default")?Na.default:Na,Ma=Ma&&Ma.hasOwnProperty("default")?Ma.default:Ma,qa=qa&&qa.hasOwnProperty("default")?qa.default:qa,La=La&&La.hasOwnProperty("default")?La.default:La,Ra=Ra&&Ra.hasOwnProperty("default")?Ra.default:Ra,$a=$a&&$a.hasOwnProperty("default")?$a.default:$a,Fa=Fa&&Fa.hasOwnProperty("default")?Fa.default:Fa,Ua=Ua&&Ua.hasOwnProperty("default")?Ua.default:Ua,Ga=Ga&&Ga.hasOwnProperty("default")?Ga.default:Ga,Ba=Ba&&Ba.hasOwnProperty("default")?Ba.default:Ba,za=za&&za.hasOwnProperty("default")?za.default:za,Ha=Ha&&Ha.hasOwnProperty("default")?Ha.default:Ha,Va=Va&&Va.hasOwnProperty("default")?Va.default:Va,Ka=Ka&&Ka.hasOwnProperty("default")?Ka.default:Ka,Wa=Wa&&Wa.hasOwnProperty("default")?Wa.default:Wa,Ya=Ya&&Ya.hasOwnProperty("default")?Ya.default:Ya,Za=Za&&Za.hasOwnProperty("default")?Za.default:Za,Ja=Ja&&Ja.hasOwnProperty("default")?Ja.default:Ja,Xa=Xa&&Xa.hasOwnProperty("default")?Xa.default:Xa,Qa=Qa&&Qa.hasOwnProperty("default")?Qa.default:Qa,es=es&&es.hasOwnProperty("default")?es.default:es,ts=ts&&ts.hasOwnProperty("default")?ts.default:ts,ns=ns&&ns.hasOwnProperty("default")?ns.default:ns,as=as&&as.hasOwnProperty("default")?as.default:as,ss=ss&&ss.hasOwnProperty("default")?ss.default:ss,os=os&&os.hasOwnProperty("default")?os.default:os,rs=rs&&rs.hasOwnProperty("default")?rs.default:rs,ls=ls&&ls.hasOwnProperty("default")?ls.default:ls,is=is&&is.hasOwnProperty("default")?is.default:is,cs=cs&&cs.hasOwnProperty("default")?cs.default:cs,us=us&&us.hasOwnProperty("default")?us.default:us,ds=ds&&ds.hasOwnProperty("default")?ds.default:ds,ps=ps&&ps.hasOwnProperty("default")?ps.default:ps,ms=ms&&ms.hasOwnProperty("default")?ms.default:ms,gs=gs&&gs.hasOwnProperty("default")?gs.default:gs,fs=fs&&fs.hasOwnProperty("default")?fs.default:fs,hs=hs&&hs.hasOwnProperty("default")?hs.default:hs,ys=ys&&ys.hasOwnProperty("default")?ys.default:ys,vs=vs&&vs.hasOwnProperty("default")?vs.default:vs,js=js&&js.hasOwnProperty("default")?js.default:js,bs=bs&&bs.hasOwnProperty("default")?bs.default:bs,ws=ws&&ws.hasOwnProperty("default")?ws.default:ws,Ss=Ss&&Ss.hasOwnProperty("default")?Ss.default:Ss,Cs=Cs&&Cs.hasOwnProperty("default")?Cs.default:Cs,Is=Is&&Is.hasOwnProperty("default")?Is.default:Is,Ps=Ps&&Ps.hasOwnProperty("default")?Ps.default:Ps,Os=Os&&Os.hasOwnProperty("default")?Os.default:Os,_s=_s&&_s.hasOwnProperty("default")?_s.default:_s,xs=xs&&xs.hasOwnProperty("default")?xs.default:xs,Es=Es&&Es.hasOwnProperty("default")?Es.default:Es,ks=ks&&ks.hasOwnProperty("default")?ks.default:ks,As=As&&As.hasOwnProperty("default")?As.default:As,Ts=Ts&&Ts.hasOwnProperty("default")?Ts.default:Ts,Ds=Ds&&Ds.hasOwnProperty("default")?Ds.default:Ds,Ns=Ns&&Ns.hasOwnProperty("default")?Ns.default:Ns,Ms=Ms&&Ms.hasOwnProperty("default")?Ms.default:Ms,qs=qs&&qs.hasOwnProperty("default")?qs.default:qs,Ls=Ls&&Ls.hasOwnProperty("default")?Ls.default:Ls,Rs=Rs&&Rs.hasOwnProperty("default")?Rs.default:Rs,$s=$s&&$s.hasOwnProperty("default")?$s.default:$s,Fs=Fs&&Fs.hasOwnProperty("default")?Fs.default:Fs,Us=Us&&Us.hasOwnProperty("default")?Us.default:Us,Gs=Gs&&Gs.hasOwnProperty("default")?Gs.default:Gs,Bs=Bs&&Bs.hasOwnProperty("default")?Bs.default:Bs,zs=zs&&zs.hasOwnProperty("default")?zs.default:zs,Hs=Hs&&Hs.hasOwnProperty("default")?Hs.default:Hs,Vs=Vs&&Vs.hasOwnProperty("default")?Vs.default:Vs,Ks=Ks&&Ks.hasOwnProperty("default")?Ks.default:Ks,Ws=Ws&&Ws.hasOwnProperty("default")?Ws.default:Ws,Ys=Ys&&Ys.hasOwnProperty("default")?Ys.default:Ys,Zs=Zs&&Zs.hasOwnProperty("default")?Zs.default:Zs,Js=Js&&Js.hasOwnProperty("default")?Js.default:Js,Xs=Xs&&Xs.hasOwnProperty("default")?Xs.default:Xs,Qs=Qs&&Qs.hasOwnProperty("default")?Qs.default:Qs,eo=eo&&eo.hasOwnProperty("default")?eo.default:eo,to=to&&to.hasOwnProperty("default")?to.default:to,no=no&&no.hasOwnProperty("default")?no.default:no,ao=ao&&ao.hasOwnProperty("default")?ao.default:ao,so=so&&so.hasOwnProperty("default")?so.default:so,oo=oo&&oo.hasOwnProperty("default")?oo.default:oo,ro=ro&&ro.hasOwnProperty("default")?ro.default:ro,lo=lo&&lo.hasOwnProperty("default")?lo.default:lo,io=io&&io.hasOwnProperty("default")?io.default:io,co=co&&co.hasOwnProperty("default")?co.default:co,uo=uo&&uo.hasOwnProperty("default")?uo.default:uo,po=po&&po.hasOwnProperty("default")?po.default:po,mo=mo&&mo.hasOwnProperty("default")?mo.default:mo,go=go&&go.hasOwnProperty("default")?go.default:go,fo=fo&&fo.hasOwnProperty("default")?fo.default:fo,ho=ho&&ho.hasOwnProperty("default")?ho.default:ho,yo=yo&&yo.hasOwnProperty("default")?yo.default:yo,vo=vo&&vo.hasOwnProperty("default")?vo.default:vo,jo=jo&&jo.hasOwnProperty("default")?jo.default:jo,bo=bo&&bo.hasOwnProperty("default")?bo.default:bo,wo=wo&&wo.hasOwnProperty("default")?wo.default:wo,So=So&&So.hasOwnProperty("default")?So.default:So,Co=Co&&Co.hasOwnProperty("default")?Co.default:Co,Io=Io&&Io.hasOwnProperty("default")?Io.default:Io,Po=Po&&Po.hasOwnProperty("default")?Po.default:Po,Oo=Oo&&Oo.hasOwnProperty("default")?Oo.default:Oo,_o=_o&&_o.hasOwnProperty("default")?_o.default:_o,xo=xo&&xo.hasOwnProperty("default")?xo.default:xo,Eo=Eo&&Eo.hasOwnProperty("default")?Eo.default:Eo,ko=ko&&ko.hasOwnProperty("default")?ko.default:ko,Ao=Ao&&Ao.hasOwnProperty("default")?Ao.default:Ao,To=To&&To.hasOwnProperty("default")?To.default:To,Do=Do&&Do.hasOwnProperty("default")?Do.default:Do,No=No&&No.hasOwnProperty("default")?No.default:No,Mo=Mo&&Mo.hasOwnProperty("default")?Mo.default:Mo,qo=qo&&qo.hasOwnProperty("default")?qo.default:qo,Lo=Lo&&Lo.hasOwnProperty("default")?Lo.default:Lo,Ro=Ro&&Ro.hasOwnProperty("default")?Ro.default:Ro,$o=$o&&$o.hasOwnProperty("default")?$o.default:$o,Fo=Fo&&Fo.hasOwnProperty("default")?Fo.default:Fo,Uo=Uo&&Uo.hasOwnProperty("default")?Uo.default:Uo,Go=Go&&Go.hasOwnProperty("default")?Go.default:Go,Bo=Bo&&Bo.hasOwnProperty("default")?Bo.default:Bo,zo=zo&&zo.hasOwnProperty("default")?zo.default:zo,Ho=Ho&&Ho.hasOwnProperty("default")?Ho.default:Ho,Vo=Vo&&Vo.hasOwnProperty("default")?Vo.default:Vo,Ko=Ko&&Ko.hasOwnProperty("default")?Ko.default:Ko,Wo=Wo&&Wo.hasOwnProperty("default")?Wo.default:Wo,Yo=Yo&&Yo.hasOwnProperty("default")?Yo.default:Yo,Zo=Zo&&Zo.hasOwnProperty("default")?Zo.default:Zo,Jo=Jo&&Jo.hasOwnProperty("default")?Jo.default:Jo,Xo=Xo&&Xo.hasOwnProperty("default")?Xo.default:Xo,Qo=Qo&&Qo.hasOwnProperty("default")?Qo.default:Qo,er=er&&er.hasOwnProperty("default")?er.default:er,tr=tr&&tr.hasOwnProperty("default")?tr.default:tr,nr=nr&&nr.hasOwnProperty("default")?nr.default:nr,ar=ar&&ar.hasOwnProperty("default")?ar.default:ar,sr=sr&&sr.hasOwnProperty("default")?sr.default:sr,or=or&&or.hasOwnProperty("default")?or.default:or,rr=rr&&rr.hasOwnProperty("default")?rr.default:rr,lr=lr&&lr.hasOwnProperty("default")?lr.default:lr,ir=ir&&ir.hasOwnProperty("default")?ir.default:ir,cr=cr&&cr.hasOwnProperty("default")?cr.default:cr,ur=ur&&ur.hasOwnProperty("default")?ur.default:ur,dr=dr&&dr.hasOwnProperty("default")?dr.default:dr,pr=pr&&pr.hasOwnProperty("default")?pr.default:pr,mr=mr&&mr.hasOwnProperty("default")?mr.default:mr,gr=gr&&gr.hasOwnProperty("default")?gr.default:gr,fr=fr&&fr.hasOwnProperty("default")?fr.default:fr,hr=hr&&hr.hasOwnProperty("default")?hr.default:hr,yr=yr&&yr.hasOwnProperty("default")?yr.default:yr,vr=vr&&vr.hasOwnProperty("default")?vr.default:vr,jr=jr&&jr.hasOwnProperty("default")?jr.default:jr,br=br&&br.hasOwnProperty("default")?br.default:br,wr=wr&&wr.hasOwnProperty("default")?wr.default:wr,Sr=Sr&&Sr.hasOwnProperty("default")?Sr.default:Sr,Cr=Cr&&Cr.hasOwnProperty("default")?Cr.default:Cr,Ir=Ir&&Ir.hasOwnProperty("default")?Ir.default:Ir,Pr=Pr&&Pr.hasOwnProperty("default")?Pr.default:Pr,Or=Or&&Or.hasOwnProperty("default")?Or.default:Or,_r=_r&&_r.hasOwnProperty("default")?_r.default:_r,xr=xr&&xr.hasOwnProperty("default")?xr.default:xr,Er=Er&&Er.hasOwnProperty("default")?Er.default:Er,kr=kr&&kr.hasOwnProperty("default")?kr.default:kr,Ar=Ar&&Ar.hasOwnProperty("default")?Ar.default:Ar,Tr=Tr&&Tr.hasOwnProperty("default")?Tr.default:Tr,Dr=Dr&&Dr.hasOwnProperty("default")?Dr.default:Dr,Nr=Nr&&Nr.hasOwnProperty("default")?Nr.default:Nr,Mr=Mr&&Mr.hasOwnProperty("default")?Mr.default:Mr,qr=qr&&qr.hasOwnProperty("default")?qr.default:qr,Lr=Lr&&Lr.hasOwnProperty("default")?Lr.default:Lr,Rr=Rr&&Rr.hasOwnProperty("default")?Rr.default:Rr,$r=$r&&$r.hasOwnProperty("default")?$r.default:$r,Fr=Fr&&Fr.hasOwnProperty("default")?Fr.default:Fr,Ur=Ur&&Ur.hasOwnProperty("default")?Ur.default:Ur,Gr=Gr&&Gr.hasOwnProperty("default")?Gr.default:Gr,Br=Br&&Br.hasOwnProperty("default")?Br.default:Br,zr=zr&&zr.hasOwnProperty("default")?zr.default:zr,Hr=Hr&&Hr.hasOwnProperty("default")?Hr.default:Hr,Vr=Vr&&Vr.hasOwnProperty("default")?Vr.default:Vr,Kr=Kr&&Kr.hasOwnProperty("default")?Kr.default:Kr,Wr=Wr&&Wr.hasOwnProperty("default")?Wr.default:Wr,Yr=Yr&&Yr.hasOwnProperty("default")?Yr.default:Yr,Zr=Zr&&Zr.hasOwnProperty("default")?Zr.default:Zr,Jr=Jr&&Jr.hasOwnProperty("default")?Jr.default:Jr,Xr=Xr&&Xr.hasOwnProperty("default")?Xr.default:Xr,Qr=Qr&&Qr.hasOwnProperty("default")?Qr.default:Qr,el=el&&el.hasOwnProperty("default")?el.default:el,tl=tl&&tl.hasOwnProperty("default")?tl.default:tl,nl=nl&&nl.hasOwnProperty("default")?nl.default:nl,al=al&&al.hasOwnProperty("default")?al.default:al,sl=sl&&sl.hasOwnProperty("default")?sl.default:sl,ol=ol&&ol.hasOwnProperty("default")?ol.default:ol,rl=rl&&rl.hasOwnProperty("default")?rl.default:rl,ll=ll&&ll.hasOwnProperty("default")?ll.default:ll,il=il&&il.hasOwnProperty("default")?il.default:il,cl=cl&&cl.hasOwnProperty("default")?cl.default:cl,ul=ul&&ul.hasOwnProperty("default")?ul.default:ul,dl=dl&&dl.hasOwnProperty("default")?dl.default:dl,pl=pl&&pl.hasOwnProperty("default")?pl.default:pl,ml=ml&&ml.hasOwnProperty("default")?ml.default:ml,gl=gl&&gl.hasOwnProperty("default")?gl.default:gl,fl=fl&&fl.hasOwnProperty("default")?fl.default:fl,hl=hl&&hl.hasOwnProperty("default")?hl.default:hl,yl=yl&&yl.hasOwnProperty("default")?yl.default:yl,vl=vl&&vl.hasOwnProperty("default")?vl.default:vl,jl=jl&&jl.hasOwnProperty("default")?jl.default:jl,bl=bl&&bl.hasOwnProperty("default")?bl.default:bl,wl=wl&&wl.hasOwnProperty("default")?wl.default:wl,Sl=Sl&&Sl.hasOwnProperty("default")?Sl.default:Sl,Cl=Cl&&Cl.hasOwnProperty("default")?Cl.default:Cl,Il=Il&&Il.hasOwnProperty("default")?Il.default:Il,Pl=Pl&&Pl.hasOwnProperty("default")?Pl.default:Pl,Ol=Ol&&Ol.hasOwnProperty("default")?Ol.default:Ol,_l=_l&&_l.hasOwnProperty("default")?_l.default:_l,xl=xl&&xl.hasOwnProperty("default")?xl.default:xl,El=El&&El.hasOwnProperty("default")?El.default:El,kl=kl&&kl.hasOwnProperty("default")?kl.default:kl,Al=Al&&Al.hasOwnProperty("default")?Al.default:Al,Tl=Tl&&Tl.hasOwnProperty("default")?Tl.default:Tl,Dl=Dl&&Dl.hasOwnProperty("default")?Dl.default:Dl,Nl=Nl&&Nl.hasOwnProperty("default")?Nl.default:Nl,Ml=Ml&&Ml.hasOwnProperty("default")?Ml.default:Ml,ql=ql&&ql.hasOwnProperty("default")?ql.default:ql,Ll=Ll&&Ll.hasOwnProperty("default")?Ll.default:Ll,Rl=Rl&&Rl.hasOwnProperty("default")?Rl.default:Rl,$l=$l&&$l.hasOwnProperty("default")?$l.default:$l,Fl=Fl&&Fl.hasOwnProperty("default")?Fl.default:Fl,Ul=Ul&&Ul.hasOwnProperty("default")?Ul.default:Ul,Gl=Gl&&Gl.hasOwnProperty("default")?Gl.default:Gl,Bl=Bl&&Bl.hasOwnProperty("default")?Bl.default:Bl,zl=zl&&zl.hasOwnProperty("default")?zl.default:zl,Hl=Hl&&Hl.hasOwnProperty("default")?Hl.default:Hl,Vl=Vl&&Vl.hasOwnProperty("default")?Vl.default:Vl,Kl=Kl&&Kl.hasOwnProperty("default")?Kl.default:Kl,Wl=Wl&&Wl.hasOwnProperty("default")?Wl.default:Wl,Yl=Yl&&Yl.hasOwnProperty("default")?Yl.default:Yl,Zl=Zl&&Zl.hasOwnProperty("default")?Zl.default:Zl,Jl=Jl&&Jl.hasOwnProperty("default")?Jl.default:Jl,Xl=Xl&&Xl.hasOwnProperty("default")?Xl.default:Xl,Ql=Ql&&Ql.hasOwnProperty("default")?Ql.default:Ql,ei=ei&&ei.hasOwnProperty("default")?ei.default:ei,ti=ti&&ti.hasOwnProperty("default")?ti.default:ti,ni=ni&&ni.hasOwnProperty("default")?ni.default:ni,ai=ai&&ai.hasOwnProperty("default")?ai.default:ai,si=si&&si.hasOwnProperty("default")?si.default:si,oi=oi&&oi.hasOwnProperty("default")?oi.default:oi,ri=ri&&ri.hasOwnProperty("default")?ri.default:ri,li=li&&li.hasOwnProperty("default")?li.default:li,ii=ii&&ii.hasOwnProperty("default")?ii.default:ii,ci=ci&&ci.hasOwnProperty("default")?ci.default:ci,ui=ui&&ui.hasOwnProperty("default")?ui.default:ui,di=di&&di.hasOwnProperty("default")?di.default:di,pi=pi&&pi.hasOwnProperty("default")?pi.default:pi,mi=mi&&mi.hasOwnProperty("default")?mi.default:mi,gi=gi&&gi.hasOwnProperty("default")?gi.default:gi,fi=fi&&fi.hasOwnProperty("default")?fi.default:fi,hi=hi&&hi.hasOwnProperty("default")?hi.default:hi,yi=yi&&yi.hasOwnProperty("default")?yi.default:yi,vi=vi&&vi.hasOwnProperty("default")?vi.default:vi,ji=ji&&ji.hasOwnProperty("default")?ji.default:ji,bi=bi&&bi.hasOwnProperty("default")?bi.default:bi,wi=wi&&wi.hasOwnProperty("default")?wi.default:wi,Si=Si&&Si.hasOwnProperty("default")?Si.default:Si,Ci=Ci&&Ci.hasOwnProperty("default")?Ci.default:Ci,Ii=Ii&&Ii.hasOwnProperty("default")?Ii.default:Ii,Pi=Pi&&Pi.hasOwnProperty("default")?Pi.default:Pi,Oi=Oi&&Oi.hasOwnProperty("default")?Oi.default:Oi,_i=_i&&_i.hasOwnProperty("default")?_i.default:_i,xi=xi&&xi.hasOwnProperty("default")?xi.default:xi,Ei=Ei&&Ei.hasOwnProperty("default")?Ei.default:Ei,ki=ki&&ki.hasOwnProperty("default")?ki.default:ki,Ai=Ai&&Ai.hasOwnProperty("default")?Ai.default:Ai,Ti=Ti&&Ti.hasOwnProperty("default")?Ti.default:Ti,Di=Di&&Di.hasOwnProperty("default")?Di.default:Di,Ni=Ni&&Ni.hasOwnProperty("default")?Ni.default:Ni,Mi=Mi&&Mi.hasOwnProperty("default")?Mi.default:Mi,qi=qi&&qi.hasOwnProperty("default")?qi.default:qi,Li=Li&&Li.hasOwnProperty("default")?Li.default:Li,Ri=Ri&&Ri.hasOwnProperty("default")?Ri.default:Ri,$i=$i&&$i.hasOwnProperty("default")?$i.default:$i,Fi=Fi&&Fi.hasOwnProperty("default")?Fi.default:Fi,Ui=Ui&&Ui.hasOwnProperty("default")?Ui.default:Ui,Gi=Gi&&Gi.hasOwnProperty("default")?Gi.default:Gi,Bi=Bi&&Bi.hasOwnProperty("default")?Bi.default:Bi,zi=zi&&zi.hasOwnProperty("default")?zi.default:zi,Hi=Hi&&Hi.hasOwnProperty("default")?Hi.default:Hi,Vi=Vi&&Vi.hasOwnProperty("default")?Vi.default:Vi,Ki=Ki&&Ki.hasOwnProperty("default")?Ki.default:Ki,Wi=Wi&&Wi.hasOwnProperty("default")?Wi.default:Wi,Yi=Yi&&Yi.hasOwnProperty("default")?Yi.default:Yi,Zi=Zi&&Zi.hasOwnProperty("default")?Zi.default:Zi,Ji=Ji&&Ji.hasOwnProperty("default")?Ji.default:Ji;
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
4
4
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
See the Apache Version 2.0 License for specific language governing permissions
|
|
14
14
|
and limitations under the License.
|
|
15
15
|
***************************************************************************** */
|
|
16
|
-
var pc=function(e,t){return(pc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function mc(e,t){function n(){this.constructor=e}pc(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var gc=function(){return(gc=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var s in t=arguments[n])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function fc(e,t,n,a){var s,o=arguments.length,r=o<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,a);else for(var l=e.length-1;l>=0;l--)(s=e[l])&&(r=(o<3?s(r):o>3?s(t,n,r):s(t,n))||r);return o>3&&r&&Object.defineProperty(t,n,r),r}function hc(e,t){return function(n,a){t(n,a,e)}}function yc(e,t,n,a){return new(n||(n=Promise))((function(s,o){function r(e){try{i(a.next(e))}catch(e){o(e)}}function l(e){try{i(a.throw(e))}catch(e){o(e)}}function i(e){e.done?s(e.value):new n((function(t){t(e.value)})).then(r,l)}i((a=a.apply(e,t||[])).next())}))}function vc(e,t){var n,a,s,o,r={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(s=2&o[0]?a.return:o[0]?a.throw||((s=a.return)&&s.call(a),0):a.next)&&!(s=s.call(a,o[1])).done)return s;switch(a=0,s&&(o=[2&o[0],s.value]),o[0]){case 0:case 1:s=o;break;case 4:return r.label++,{value:o[1],done:!1};case 5:r.label++,a=o[1],o=[0];continue;case 7:o=r.ops.pop(),r.trys.pop();continue;default:if(!(s=(s=r.trys).length>0&&s[s.length-1])&&(6===o[0]||2===o[0])){r=0;continue}if(3===o[0]&&(!s||o[1]>s[0]&&o[1]<s[3])){r.label=o[1];break}if(6===o[0]&&r.label<s[1]){r.label=s[1],s=o;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(o);break}s[2]&&r.ops.pop(),r.trys.pop();continue}o=t.call(e,r)}catch(e){o=[6,e],a=0}finally{n=s=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}function jc(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,s,o=n.call(e),r=[];try{for(;(void 0===t||t-- >0)&&!(a=o.next()).done;)r.push(a.value)}catch(e){s={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(s)throw s.error}}return r}function bc(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(jc(arguments[t]));return e}function wc(e,t,a){return e.events.pipe(s.filter((function(e){return e instanceof n.NavigationEnd})),s.merge(t),s.startWith(1),s.switchMap((function(){return Sc(a,e)})))}function Sc(e,t,n){return void 0===n&&(n=!0),!Array.isArray(e)||e.length<1?a.of([]):a.defer((function(){var r=Cc(e).map((function(e){return function(e,t){var n;if(!e)return a.of([]);if("function"==typeof e.then||a.isObservable(e))if(t){var o=a.from(e),r=o.pipe(s.startWith([]));n=a.race(o,r)}else n=a.from(e);else n=a.of(e);return n.pipe(s.map((function(e){return(Array.isArray(e)?e:[e]).filter((function(e){return!!e}))})))}(Array.isArray(e)?e:e&&o.isFunction(e.get)?e.get(Oc(t)):[e],n)}));return a.combineLatest.apply(void 0,bc(r))})).pipe(s.map((function(e){return Pc([].concat.apply([],bc(e)))})))}function Cc(e){return o.flatten(e.map((function(e){return o.isFunction(e)?e():[e]})))}function Ic(e){var t=e.pipe(s.map((function(e){return Array.from(e)})));return{get:function(){return t}}}function Pc(e){return o.sortBy(e,"priority")}function Oc(e){if(e&&e.routerState&&e.routerState.root){for(var t=e.routerState.root;t.firstChild;)t=t.firstChild;return t}}var _c=function(){function e(){}return e.prototype.map=function(e){return this.state$.pipe(s.map(e),s.distinctUntilChanged())},e.prototype.emitNewState=function(){this.state$.next(this.state)},e}(),xc=new t.InjectionToken("ActionBarFactory"),Ec=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(xc,[])},Ic(o.state$)]).pipe(s.map((function(e){return Pc(e)})),s.shareReplay(1)),o}return mc(o,e),Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.refresh=function(){this.refreshTrigger.next()},o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),kc=new t.InjectionToken("ActionFactory"),Tc=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(kc,[])},Ic(o.state$)]).pipe(s.map((function(e){return Pc(e)})),s.shareReplay(1)),o}return mc(o,e),o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c);function Ac(e){return e}var Dc,Nc,Mc,qc,Lc,Rc,$c=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.state$=new a.BehaviorSubject([]),t.MAX_ALERTS=3,t.ALERT_TIMEOUT=3e3,t}return mc(n,e),Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),n.prototype.add=function(e){this.addAlert(e)},n.prototype.addByText=function(e,t,n){this.addAlert({text:t,type:e,detailedData:n})},n.prototype.list=function(){return this.state},n.prototype.remove=function(e){var t=this;this.changeAlerts(this.state.filter((function(n){return!t.areSame(e,n)})))},n.prototype.removeLastDanger=function(){var e=this.state.reverse().find((function(e){return"danger"===e.type}));this.changeAlerts(this.state.filter((function(t){return t!==e})))},n.prototype.saveSuccess=function(e){var t=this;return function(){var n=e+" saved successfully";t.addByText("success",n)}},n.prototype.createSuccess=function(e){var t=this;return function(){var n=e+" created successfully";t.addByText("success",n)}},n.prototype.clearAll=function(){this.changeAlerts([])},n.prototype.success=function(e,t){this.addByText("success",e,t)},n.prototype.danger=function(e,t){this.addByText("danger",e,t)},n.prototype.info=function(e,t){this.addByText("info",e,t)},n.prototype.warning=function(e,t){this.addByText("warning",e,t)},n.prototype.addServerFailure=function(e,t){void 0===t&&(t="danger");var n,a=e.data,s=e.res,o=a&&a.message?a.message:null;a&&("object"==typeof a?n=a.exceptionMessage:"string"==typeof a&&(n=a));var r=!(!o&&!n);o||(o="A server error occurred."),r||(n={status:s.status,statusText:s.statusText,url:s.url}),this.addAlert({type:t,text:o,detailedData:n})},n.prototype.areSame=function(e,t){return e.text===t.text&&e.type===t.type&&e.detailedData===t.detailedData&&e.onClose===t.onClose&&e.onDetail===t.onDetail},n.prototype.changeAlerts=function(e){this.state$.next(e)},n.prototype.addAlert=function(e){var t=this;if(!e.text&&!e.type)throw new Error("Cannot add empty alert");this.state.find((function(n){return t.areSame(e,n)}))||(this.changeAlerts(bc(this.state,[e])),this.hideAutomaticallyIfNeeded(e),this.removeOldestIfMax())},n.prototype.hideAutomaticallyIfNeeded=function(e){var t=this,n="success"===e.type,a=!e.detailedData,s=n&&a?this.ALERT_TIMEOUT:0;void 0!==e.timeout&&(s=e.timeout),s&&setTimeout((function(){return t.remove(e)}),s)},n.prototype.removeOldestIfMax=function(){if(this.state.length>this.MAX_ALERTS){var e=jc(this.state).slice(1);this.changeAlerts(e)}},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(_c),Fc=function(){},Uc=new t.InjectionToken("App options"),Gc=function(e){function n(t,n,a){var s=e.call(this)||this;return s.systemOptionsService=n,s.tenantOptionService=a,s.setupOptions(t),s}return mc(n,e),n.prototype.get=function(e,t){var n=this[e];return void 0===n&&(n=this[o.camelCase(e)]),void 0!==n?n:t},n.prototype.set=function(e,t){this[o.camelCase(e)]=t},n.prototype.getSupportUrl=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return o.isUndefined(this.supportUrl)?(e=this,[4,this.getTenantOption("configuration","system.support.url")]):[3,2];case 1:e.supportUrl=t.sent(),t.label=2;case 2:return[2,!o.isUndefined(this.supportUrl)&&this.supportUrl]}}))}))},n.prototype.getActivateSupportUser=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return[4,this.getSystemOption("support-user","enabled",!0)];case 1:return[2,!e.sent()]}}))}))},n.prototype.getSystemOption=function(e,t,n){return yc(this,void 0,void 0,(function(){return vc(this,(function(a){return[2,this.getOptionFromService(e,t,this.systemOptionsService,n)]}))}))},n.prototype.getTenantOption=function(e,t,n){return yc(this,void 0,void 0,(function(){return vc(this,(function(a){return[2,this.getOptionFromService(e,t,this.tenantOptionService,n)]}))}))},n.prototype.setupOptions=function(e){var t=this;e&&(Array.isArray(e)||(e=[e]),e.forEach((function(e){e&&Object.keys(e).forEach((function(n){t[o.camelCase(n)]=e[n]}))})))},n.prototype.getOptionFromService=function(e,t,n,a){return yc(this,void 0,void 0,(function(){var s;return vc(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,n.detail({category:e,key:t})];case 1:return s=o.sent().data,[2,this.parseOptionRawValue(s.value,a)];case 2:return o.sent(),[2,a];case 3:return[2]}}))}))},n.prototype.parseOptionRawValue=function(e,t){var n;try{n=JSON.parse(e)}catch(a){n=o.isUndefined(e)?t:e}return n},n.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[Uc]}]},{type:r.SystemOptionsService},{type:r.TenantOptionsService}]},n=fc([t.Injectable(),hc(0,t.Optional()),hc(0,t.Inject(Uc))],n)}(Fc),Bc=function(e){function n(t,n,o,r){var l=e.call(this)||this;return l.applicationService=t,l.apiService=n,l.options=o,l.fetchClient=r,l.state$=new a.BehaviorSubject({app:{name:l.options.name,contextPath:l.getCurrentContextPath()||l.options.contextPath},supportUrl:l.options.supportUrl,lang:l.options.get("defaultLanguage","en"),langs:l.getLangs(),langsDetail:l.options.languages,loginOptions:l.options.loginOptions,activateSupportUserAvailable:void 0,versions:{backend:void 0,ui:l.options.versions||{ngx:void 0}},hidePowered:l.options.hidePowered,isLoading:!1,showRightDrawer:l.options.rightDrawer,loginExtraLink:l.options.get("login_extra_link"),newsletter:l.options.newsletter}),l.currentSupportUserName=new a.BehaviorSubject(null),l.currentUser=new a.BehaviorSubject(null),l.currentTenant=new a.BehaviorSubject(null),l.apiService.calls.pipe(s.filter((function(e){var t=e.url;return!/cep\/realtime/.test(t)})),s.map((function(e){return"start"===e.phase?1:-1})),s.scan((function(e,t){return e+t}),0),s.map((function(e){return e>0})),s.distinctUntilChanged()).subscribe((function(e){return l.state.isLoading=e})),l.assignApplicationKeyToDefaultHeaders(),l}return mc(n,e),n.prototype.assignApplicationKeyToDefaultHeaders=function(){t.isDevMode()||(this.fetchClient.defaultHeaders=gc({},this.fetchClient.defaultHeaders||{},{"X-Cumulocity-Application-Key":this.options.key}))},Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),n.prototype.getLangs=function(){var e=this.options.languages;return e?o.keys(e).filter((function(t){return e[t]})):[]},Object.defineProperty(n.prototype,"uiVersion",{get:function(){var e=this.state.versions.ui;return e.ngx||e.ng1},enumerable:!0,configurable:!0}),n.prototype.loadManifest=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.applicationService.detail(this.state.app.contextPath+"/manifest")];case 1:return e=t.sent().data.application,this.state.app.manifest=e,this.loadDefaultOptions(),[3,3];case 2:throw t.sent();case 3:return[2]}}))}))},n.prototype.isApplicationAvailable=function(e){return yc(this,void 0,void 0,(function(){return vc(this,(function(t){switch(t.label){case 0:return[4,this.applicationService.listByUser(void 0,{pageSize:100})];case 1:return[2,t.sent().data.some((function(t){return t.name===e}))]}}))}))},n.prototype.setUser=function(e){this.currentSupportUserName.next(e.supportUserName||null),this.currentUser.next(e.user)},n.prototype.getCurrentContextPath=function(){var e=window.location.pathname.match(/\/apps\/(public\/){0,1}(.+?)(\/|\?|#|$)/);return e&&e[2]},n.prototype.loadDefaultOptions=function(){return yc(this,void 0,void 0,(function(){var e,t,n;return vc(this,(function(a){switch(a.label){case 0:return e=this.state,[4,this.options.getSupportUrl()];case 1:return e.supportUrl=a.sent(),t=this.state,[4,this.options.getActivateSupportUser()];case 2:return t.activateSupportUserAvailable=a.sent(),n=this.state.versions,[4,this.options.getSystemOption("system","version")];case 3:n.backend=a.sent();try{this.showIncompatibleVersionsError()}catch(e){}return this.emitNewState(),[2]}}))}))},n.prototype.showIncompatibleVersionsError=function(){var e=this.state.versions.ui.ngx,t=this.state.versions.backend,n=e.replace(/[^\d.]/g,"").split(".").map(Number),a=t.replace(/[^\d.]/g,"").split(".").map(Number),s=Math.pow(10,Math.ceil(Math.log10(Math.max.apply(Math,bc(n,a))+1))),o=function(e,t){return e+t},r=function(e,t){return e*(s/Math.pow(10,t))};if(n.map(r).reduce(o)>a.map(r).reduce(o)){var l="You are running version "+e+" of the UI and version "+t+" of backend!";console.log("%c "+l,"font-weight: bold; font-size: 30px; color: red;")}},n.ctorParameters=function(){return[{type:l.ApplicationService},{type:r.ApiService},{type:Gc},{type:l.FetchClient}]},n=fc([t.Injectable()],n)}(_c),zc=function(){function e(e){this.children=[],this.parents=[],this.routerLinkExact=!0,this.open=!1,this.hidden=!1,this.draggable=!1,this.droppable=!1,this.dragged=!1,this.draggedHover=!1,this.confirm=void 0,this._priority=0,this.update(e)}return Object.defineProperty(e.prototype,"hasChildren",{get:function(){return this.children.length>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"priority",{get:function(){if(this._priority)return this._priority;var e=this.children.map((function(e){return e.priority||0}));return e.length&&e.length?Math.max.apply(Math,bc(e)):0},set:function(e){this._priority=e},enumerable:!0,configurable:!0}),e.prototype.openOnStart=function(e){return!1},e.prototype.add=function(e){if(e===this)throw new Error("Adding node to itself");-1===this.children.indexOf(e)&&this.children.push(e),-1===e.parents.indexOf(this)&&e.parents.push(this),this.updateChildren()},e.prototype.remove=function(e){var t=this.children.indexOf(e),n=e.parents.indexOf(this);t>-1&&this.children.splice(t,1),n>-1&&e.parents.splice(n,1),this.updateChildren()},e.prototype.update=function(e){e&&(Object.assign(this,e),void 0!==e.hidden&&this.parents.forEach((function(e){e.updateHidden()})))},e.prototype.find=function(e){if("string"==typeof e){var t=e.toLocaleLowerCase();e=function(e){var n=e.label;return t===n.toLowerCase()}}if("object"==typeof e&&(e=o.matches(e)),"function"!=typeof e)throw new Error("Invalid search predicate");return this.children.reduce((function(t,n){return t||n.find(e)}),this.children.find(e))},e.prototype.empty=function(){this.children.length=0},e.prototype.click=function(e){void 0===e&&(e={})},e.prototype.drop=function(e){e.stopPropagation(),clearTimeout(this.expandDragTimeout)},e.prototype.dragStart=function(e){e.stopPropagation(),e.dataTransfer.setData("node","node"),this.dragged=!0},e.prototype.dragEnd=function(e){e.stopPropagation(),this.dragged=!1,e.dataTransfer.clearData()},Object.defineProperty(e.prototype,"canDrop",{get:function(){return this.droppable},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canNavigate",{get:function(){return void 0!==this.path},enumerable:!0,configurable:!0}),e.prototype.dragEnter=function(e){var t=this;e.preventDefault(),e.stopPropagation(),this.draggedHover=!0,this.open||(this.expandDragTimeout=setTimeout((function(){return t.expand()}),1e3))},e.prototype.dragLeave=function(e){e.preventDefault(),e.stopPropagation(),this.draggedHover=!1,clearTimeout(this.expandDragTimeout)},e.prototype.expand=function(){this.open||(this.open=!0,this.click({open:!0,expander:!0}))},e.prototype.traverse=function(e){this.children&&this.children.forEach((function(t){e(t),t.traverse(e)}))},e.prototype.destroy=function(){},e.prototype.updateChildren=function(){this.sort(),this.updateHidden()},e.prototype.sort=function(){this.children.sort((function(e,t){return e.priority>t.priority?-1:e.priority<t.priority?1:(e.label||"").toLowerCase()<(t.label||"").toLowerCase()?-1:(e.label||"").toLowerCase()>(t.label||"").toLowerCase()?1:0}))},e.prototype.updateHidden=function(){void 0===this.path&&(this.hidden=!this.children.some((function(e){return!e.hidden})))},e}(),Hc=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return mc(t,e),t.prototype.addRoot=function(e){var t,n=e.parent,a=this.createNode(e);return n&&("object"==typeof n?(t=this.find(n.label))&&t.update(n):"string"!=typeof n&&"function"!=typeof n||(t=this.find(n)),t||(t=this.createNode(n),this.find((function(e){return t===e}))||this.add(t))),(t||this).add(a),a},t.prototype.createNode=function(e){if(e instanceof zc)return e;if("string"==typeof e)return new zc({label:e});if("object"==typeof e)return new zc(gc({},e,{parent:void 0}));throw new Error("Wrong type of node data")},t}(zc),Vc=new t.InjectionToken("NavigatorNodesFactory"),Kc=function(e){function o(t,n){var o=e.call(this)||this;o.injector=t,o.router=n,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.firstUrl=!0;var r=new Hc;return o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(Vc,[])},Ic(o.state$)]).pipe(s.map((function(e){var t=e.filter((function(e){return!e.parent})),n=e.filter((function(e){return e.parent})),a=Pc(t).concat(Pc(n));return r.empty(),a.forEach((function(e){return r.addRoot(e)})),r.children})),s.shareReplay(1)),o}return mc(o,e),o.prototype.openOnFirstUrl=function(e){return!(!this.firstUrl||!e.path)&&(this.router.isActive(e.path,e.routerLinkExact)||e.openOnStart(this.router.url))},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.refresh=function(){this.refreshTrigger.next(1)},o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),Wc=function(e){function n(t,n){var o=e.call(this)||this;o.navigatorService=t,o.options=n,o.hasItemsInNavigator$=o.navigatorService.items$.pipe(s.map((function(e){return!!e.length})),s.distinctUntilChanged()),o.state$=new a.BehaviorSubject({title:void 0,nav:{open:!1}}),o.title=void 0,o.header$=o.map((function(e){return e})),o.navigatorOpen$=o.map((function(e){return e.nav.open})).pipe(s.combineLatest(o.hasItemsInNavigator$),s.map((function(e){var t=jc(e,2),n=t[0],a=t[1];return n&&a})));var r=document.querySelector("title");return o.title={elementRef:r,originalValue:r&&r.innerText},o}return mc(n,e),Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"navigatorHiddenOnStartup",{get:function(){return this.options.hideNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"largeWidth",{get:function(){return document.documentElement.clientWidth>1200},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"shouldToggle",{get:function(){return this.largeWidth&&!this.navigatorHiddenOnStartup&&!this.state.nav.open},enumerable:!0,configurable:!0}),n.prototype.toggleNavigator=function(){this.state.nav.open=!this.state.nav.open,this.emitNewState()},n.prototype.closeNavigator=function(){this.state.nav.open=!1,this.emitNewState()},n.prototype.configNavigator=function(e){void 0===e&&(e={}),this.state.nav=Object.assign(this.state.nav,e),this.emitNewState()},n.prototype.changeTitle=function(e){this.state.title=e,this.emitNewState()},n.prototype.changePageTitle=function(e){this.title.elementRef.innerText=e?e+" / "+this.title.originalValue:""+this.title.originalValue},n.prototype.verifyIfNavOpen=function(){var e=this;this.hasItemsInNavigator$.pipe(s.debounceTime(300)).subscribe((function(t){return t&&e.shouldToggle&&e.toggleNavigator()}))},n.prototype.shouldShowBreadcrumbs=function(){return this.options.breadcrumbs},n.ctorParameters=function(){return[{type:Kc},{type:Gc}]},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n(t.ɵɵinject(Kc),t.ɵɵinject(Gc))},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(_c),Yc=new t.InjectionToken("TabsFactory"),Zc=function(e){function o(t,n,o,r){var l=e.call(this)||this;return l.injector=t,l.translateService=o,l.options=r,l.refreshTrigger=new a.Subject,l.state$=new a.BehaviorSubject(new Set),l.items$=wc(n,l.refreshTrigger,[function(){return l.injector.get(Yc,[])},Ic(l.state$)]).pipe(s.map((function(e){return l.prepareTabs(e)})),s.shareReplay(1),s.distinctUntilChanged()),l.orientation$=l.items$.pipe(s.map((function(e){var t=e.find((function(e){return e.orientation}));return t?t.orientation:l.options.tabsHorizontal?"horizontal":"vertical"})),s.distinctUntilChanged()),l}return mc(o,e),o.prototype.prepareTabs=function(e){return this.sortTabs(e.map((function(e){return gc({},e,{template:e.template instanceof t.ViewContainerRef?e.template:void 0})})).filter((function(e,t,n){return t===n.findIndex((function(t){return t.path===e.path}))})))},o.prototype.sortTabs=function(e){var t=this;return e.sort((function(e,n){var a=(n.priority||0)-(e.priority||0),s=t.translateService.instant(e.label),o=t.translateService.instant(n.label),r=s.localeCompare(o);return a||r}))},o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},Object.defineProperty(o.prototype,"firstTab$",{get:function(){return this.items$.pipe(s.map((function(e){return e[0]})),s.filter(Boolean),s.first())},enumerable:!0,configurable:!0}),o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router},{type:i.TranslateService},{type:Gc}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router),t.ɵɵinject(i.TranslateService),t.ɵɵinject(Gc))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),Jc=function(){function e(e,t,n,a,o,r){var l=this;this.tabs=e,this.ui=t,this.navigator=n,this.actionBar=a,this.options=o,this.headerService=r,this.noAppsMargin$=this.headerService.map((function(e){var t=e.nav;return!t.open&&t.hiddenOnStartup})),this.tabsOrientation=this.options.tabsHorizontal?"horizontal":"vertical",this.ui.map((function(e){return e.lang})).pipe(s.distinctUntilChanged()).subscribe((function(){l.actionBar.refresh(),l.localeUpdating=!0,setTimeout((function(){l.localeUpdating=!1}),10)}))}return Object.defineProperty(e.prototype,"showPoweredBy",{get:function(){return!this.options.get("hidePowered")},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:Zc},{type:Bc},{type:Kc},{type:Ec},{type:Gc},{type:Wc}]},e=fc([t.Component({selector:"c8y-bootstrap",template:'<c8y-login *ngIf="!(ui.currentUser | async)"></c8y-login>\n\n<div *ngIf="(ui.currentUser | async) && !localeUpdating" [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 \x3c!-- legacy ng-view, will not be migrated atm --\x3e\n </div>\n </div>\n</div>\n<c8y-cookie-banner></c8y-cookie-banner>\n'})],e)}(),Xc=new t.InjectionToken("BreadcrumbFactory"),Qc=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(Xc,[])},Ic(o.state$)]).pipe(s.map((function(e){return o.sortByPreferredPath(e)})),s.shareReplay(1)),o}return mc(o,e),Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.prototype.refresh=function(){this.refreshTrigger.next(1)},o.prototype.selectPreferredByPath=function(e){this.preferredPath=e,this.refresh()},o.prototype.sortByPreferredPath=function(e){var t=this;return this.preferredPath?e.sort((function(e){return e.items.find((function(e){return!!e.path.match(t.preferredPath)}))?-1:1})):e},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c);(Rc=e.Status||(e.Status={})).SUCCESS="success",Rc.WARNING="warning",Rc.DANGER="danger",Rc.INFO="info";var eu=((Dc={})[e.Status.SUCCESS]="check-circle",Dc[e.Status.WARNING]="exclamation-triangle",Dc[e.Status.DANGER]="exclamation-circle",Dc[e.Status.INFO]="info-circle",Dc),tu=((Nc={})[e.Status.SUCCESS]="text-"+e.Status.SUCCESS,Nc[e.Status.WARNING]="text-"+e.Status.WARNING,Nc[e.Status.DANGER]="text-"+e.Status.DANGER,Nc[e.Status.INFO]="text-"+e.Status.INFO,Nc),nu=((Mc={})[e.Status.SUCCESS]="alert-"+e.Status.SUCCESS,Mc[e.Status.WARNING]="alert-"+e.Status.WARNING,Mc[e.Status.DANGER]="alert-"+e.Status.DANGER,Mc[e.Status.INFO]="alert-"+e.Status.INFO,Mc),au=((qc={})[l.OperationStatus.PENDING]="clock-o",qc[l.OperationStatus.EXECUTING]="refresh",qc[l.OperationStatus.SUCCESSFUL]="check-circle",qc[l.OperationStatus.FAILED]="exclamation-circle",qc),su=((Lc={})[l.OperationStatus.PENDING]="",Lc[l.OperationStatus.EXECUTING]="text-info",Lc[l.OperationStatus.SUCCESSFUL]="text-success",Lc[l.OperationStatus.FAILED]="text-danger",Lc),ou=function(){function e(){}var n;return n=e,e.humanize=function(e){return void 0===e&&(e=""),e=e.replace(/\./g," ").replace(/c8y[\s,_]*/gi,"").replace(/_/g," ").replace(/([A-Z][a-z])/g," $1").replace(/^\$\.?/,"").replace(/^\s*/,"").replace(/\s*$/,"").replace(/\s+/g," "),o.upperFirst(e)},e.prototype.transform=function(e){return n.humanize(e)},e=n=fc([t.Pipe({name:"humanize"})],e)}(),ru=function(){function e(e){this.translateService=e,this.internalApps={administration:"Administration",cockpit:"Cockpit",devicemanagement:"Device management"}}return e.prototype.transform=function(e){void 0===e&&(e="Cumulocity");var t,n=this.getAppName(e);return t=this.isPublicApp(e)?"{{ appName | translate }} (public)":n,this.translateService.get(t,{appName:n})},e.prototype.getAppName=function(e){var t=this.getFirstDefined([c.get(e,"name"),c.get(e,"contextPath"),e])||"";return this.internalApps[t]||t},e.prototype.getFirstDefined=function(e){return c.find(e,c.negate(c.isUndefined))},e.prototype.isPublicApp=function(e){return Boolean(c.get(e,"public"))},e.ctorParameters=function(){return[{type:i.TranslateService}]},e=fc([t.Pipe({name:"humanizeAppName"})],e)}(),lu=new t.InjectionToken("Languages"),iu=new t.InjectionToken("Locale path"),cu=new t.InjectionToken("Pattern Messages"),uu=function(){function e(e){var t=this;this.patterns={},this.pipes={absoluteDate:function(e){return u.formatDate(e,"medium",t.translateService.currentLang)},translate:function(e){return t.translateService.instant(e)}},o.each(e,(function(e){Object.assign(t.patterns,e)}))}return e.prototype.translate=function(e){var t=this.translateWithPatterns(e);return t!==e?t:""},e.prototype.translateWithPatterns=function(e,t){var n=this;void 0===t&&(t=this.patterns);var a=e;return o.each(t,(function(e,t){var s,r=new RegExp(t,"g");if(r.test(a)){r.test(""),s=r.exec(a);for(var l=function(){var l=jc(s,1)[0],i=o.mapValues(e.placeholders,(function(e){var a=e.capture||e,s=l.replace(new RegExp(t,"g"),a);return e.translate&&(s=n.translateWithPatterns(s,e.translate)),s}));a=a.replace(l,n.translateWithParams(e,i)),s=r.exec(a)};null!==s;)l()}})),a},e.prototype.translateWithParams=function(e,t){void 0===t&&(t={});var n=this.translateService,a=n.defaultLang,s=n.currentLang,o=n.compiler,r=this.translateService.store.translations[s],l=this.translateService.store.translations[a],i=e.gettext,c=i;r&&(r[i]?c=r[i]:l&&l[i]&&(c=l[i]));for(var u,d=i,p=c,m=gc({},t,{noPatternMessages:!0}),g=RegExp("{{\\s*([^\\s]+)\\s*\\|\\s*([^\\s]+)\\s*}}","g");null!==(u=g.exec(i));){var f=jc(u,3),h=f[0],y=f[1],v=f[2];this.pipes[v]&&(d=d.replace(h,"{{"+y+"}}"),p=p.replace(h,"{{"+y+"}}"),m[y]=this.pipes[v](t[y]))}return r&&(r[d]=o.compile(p,s)),this.translateService.instant(d,m)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[cu]}]}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(cu))},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"}),hc(0,t.Inject(cu))],e)}(),du=function(){function e(e,t){this.parser=e,this.patternMessagesService=t,this.cache={}}return e.prototype.handle=function(e){var t=e.key,n=e.interpolateParams,a=e.translateService;this.translateService=a;var s=this.getFromCache(t,n);if(!s){var o=this.getPatternMessageTranslation(t,n);s=o||this.parser.interpolate(t,n),this.addToCache(t,n,s)}return s},e.prototype.getFromCache=function(e,t){var n=this.translateService.currentLang;return(this.cache[n]||{})[this.getCacheKey(e,t)]},e.prototype.addToCache=function(e,t,n){var a=this.translateService.currentLang;(this.cache[a]=this.cache[a]||{})[this.getCacheKey(e,t)]=n},e.prototype.getCacheKey=function(e,t){return t?e+" "+JSON.stringify(t):e},e.prototype.getPatternMessageTranslation=function(e,t){if(!t||!t.noPatternMessages)return this.patternMessagesService.translateService||(this.patternMessagesService.translateService=this.translateService),this.patternMessagesService.translate(e)},e.ctorParameters=function(){return[{type:i.TranslateParser},{type:uu}]},e=fc([t.Injectable()],e)}(),pu={"^Access is denied$":{gettext:"Access denied."},"^Alarm created$":{gettext:"Alarm created"},"^Alarm updated$":{gettext:"Alarm updated"},"^API is not available with the new domain$":{gettext:"Could not activate custom domain. DNS setup is incorrect."},"^Application with given name already exist$":{gettext:"Application with given name already exists."},"^Application with id (.+?) is already assigned to the tenant (.+?)$":{gettext:'This application is already assigned to tenant "{{tenant}}".',placeholders:{tenant:"$2"}},"^(.+)pplication for tenant (.+) with properties \\( (.+?) \\) already exists$":{gettext:'Application for tenant "{{tenant}}" with the following values ({{valuesList}}) already exists.',placeholders:{tenant:"$2",valuesList:"$3"}},"^Authentication failed! : User account is locked$":{gettext:"Authentication failed due to: user account is locked."},"^Availability monitoring record$":{gettext:"Availability monitoring record"},"^Can not activate a certificate which is either expired or not yet valid$":{gettext:"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:"Could not add certificate. Certificate with {{fingerprint}} fingerprint already exists.",placeholders:{fingerprint:"$1"}},"^Cannot change password. : Provided token does not exist.$":{gettext:"Cannot change password: provided token is invalid."},"^Cannot deploy module (.*)$":{gettext:'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:'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:'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:'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:'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:'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:'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:"Could not parse X.509 certificate: {{ failureReason | translate }}.",placeholders:{failureReason:"$1"}},"^Cannot reschedule bulk operation. All its operations are successful$":{gettext:"Cannot reschedule bulk operation. All its operations are already successful."},"^Cannot reset user password : Cannot find user with such email.$":{gettext:"Cannot reset password for user with such email: email not found."},"^Cannot update/delete application binary via this endpoint$":{gettext:"Cannot update/delete application binary via this endpoint"},"^Can't delete user because it is used by another managed object$":{gettext:"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:"CEP module created"},"^Cep module updated$":{gettext:"CEP module updated"},"^Cep module deleted$":{gettext:"CEP module deleted"},'^Cep module "(.+?)" created$':{gettext:'CEP module "{{name}}" created',placeholders:{name:"$1"}},'^Cep module "(.+?)" updated$':{gettext:'CEP module "{{name}}" updated',placeholders:{name:"$1"}},'^Cep module "(.+?)" deleted$':{gettext:'CEP module "{{name}}" deleted',placeholders:{name:"$1"}},"^Command state is invalid: (.+)$":{gettext:"Command state is invalid: {{violations}}",placeholders:{violations:{capture:"$1",translate:{"(\\w+?) - may not be null":{gettext:'"{{field}}" must not be null',placeholders:{field:"$1"}}}}}},"^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:'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:'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:'Could not recognize "Host key" format'},"Could not recognize key-pair format":{gettext:'Could not recognize the format of "Public key" or "Private key"'}}}}},"^Could not update user. : Error persisting user (.+?)!$":{gettext:'Could not update user "{{username}}".',placeholders:{username:"$1"}},"^Creation ramp must be greater than (\\d+?)$":{gettext:"Bulk operation delay must be greater than {{minSeconds}} seconds.",placeholders:{minSeconds:"$1"}},"^Created container$":{gettext:"Container created."},"^Created pod: (.+)$":{gettext:'Pod "{{imageName}}" created.',placeholders:{imageName:"$1"}},"^CSV file contained empty dataset$":{gettext:"No entries found in uploaded CSV file."},"^Cycle detected for route (.+?)!$":{gettext:"Cycle detected for route {{route}}.",placeholders:{route:"$1"}},"^Data broker processing is currently overloaded and may stop forwarding your data\\. Please contact support\\.$":{gettext:"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:"Data broker processing is not able to connect to destination tenant, thus data forwarding is not working. Please contact support."},"^Device id '(.+?)' contains '(.+?)' character which is not permitted.$":{gettext:'ID "{{deviceId}}" contains invalid character: "{{invalidCharacter}}".',placeholders:{deviceId:"$1",invalidCharacter:"$2"}},"^Device name: '(.+?)', alarm text: '(.+?)'$":{gettext:'Device name: "{{deviceName}}", alarm text: "{{alarmText | translate}}"',placeholders:{deviceName:"$1",alarmText:"$2"}},"^Display name$":{gettext:"Login alias"},"^Domain name in uploaded certificate differs from the one in use$":{gettext:"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:"Domain name is already used by another tenant."},"^Duplicated connector for instanceUrl (.+?)!$":{gettext:"Target URL {{targetUrl}} already used by another connector.",placeholders:{targetUrl:"$1"}},"^Duplicated connector for name (.+?)!$":{gettext:'Connector name "{{name}}" already used by another connector.',placeholders:{name:"$1"}},"^Entry is outside of the target dir: (.+)$":{gettext:'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:"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:"This password has already been used earlier. Use a different one."},"^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$":{gettext:'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:'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:"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:"Unable to find option by given key: sigfox-agent/provider.token"},"^Failed to delete application. : Cannot remove application assigned to other tenants.$":{gettext:"Could not delete application assigned to other tenants."},"^Failed to extract certificate from PKCS12$":{gettext:"Failed to extract certificate from PKCS12."},"^Failed to update domain at the platform$":{gettext:"Failed to update domain at the platform."},"^Finding device data from database failed : No managedObject for id '(.+?)'!$":{gettext:'Could not find managed object with ID "{{deviceId}}".',placeholders:{deviceId:"$1"}},"^Following mandatory fields should be included: (.+?)$":{gettext:"Following mandatory fields should be included: {{fields}}",placeholders:{fields:"$1"}},"^Global Role updated$":{gettext:"Global role updated"},"^Global Role (.+?) updated$":{gettext:'Global role "{{name}}" updated',placeholders:{name:"$1"}},"^Global Role (.+?) updated: (.+)$":{gettext:'Global role "{{name}}" updated: {{updatesList}}',placeholders:{name:"$1",updatesList:{capture:"$2",translate:{"applications \\[([^\\]]+?)\\] added":{gettext:"applications {{list}} added",placeholders:{list:"$1"}},"applications \\[([^\\]]+?)\\] removed":{gettext:"applications {{list}} removed",placeholders:{list:"$1"}},"roles \\[([^\\]]+?)\\] added":{gettext:"roles {{list}} added",placeholders:{list:"$1"}},"roles \\[([^\\]]+?)\\] removed":{gettext:"roles {{list}} removed",placeholders:{list:"$1"}}}}}},"^Global Roles$":{gettext:"Global roles"},"^Operation updated: (.+)$":{gettext:"Operation updated: {{updatesList}}",placeholders:{updatesList:{capture:"$1",translate:{"status='(.+?)'":{gettext:'status="{{status | translate}}"',placeholders:{status:"$1"}},"description='(.+?)'":{gettext:'description="{{description | translate}}"',placeholders:{description:"$1"}},"device name='(.+?)'":{gettext:'device name="{{deviceName}}"',placeholders:{deviceName:"$1"}},"failure reason='(.+?)'":{gettext:'failure reason="{{failureReason | translate}}"',placeholders:{failureReason:"$1"}}}}}},"^ID \\[type=(.+?), value=(.+?)\\] was already bound to different Global ID.$":{gettext:'External ID "{{value}}" of the type "{{type}}" already exists.',placeholders:{type:"$1",value:"$2"}},"^Invalid credentials! : Bad credentials$":{gettext:"Invalid credentials."},"^Invalid credentials! : No phone number provided$":{gettext:"Log into the management tenant first and enter your phone number."},"^Inventory Role removed$":{gettext:"Inventory role removed"},"^Inventory Role (.+?) removed":{gettext:'Inventory role "{{name}}" deleted.',placeholders:{name:"$1"}},"^Inventory Role updated$":{gettext:"Inventory role updated"},"^Inventory Role (.+?) updated":{gettext:'Inventory role "{{name}}" updated.',placeholders:{name:"$1"}},"^I/O error: Connection refused; nested exception is Connection refused : Connection refused":{gettext:"Connection refused"},"^I/O error: Read timed out; nested exception is Read timed out : Read timed out":{gettext:"Read timed out"},"^Log file requested$":{gettext:"Log file requested."},"^Managed object deleted$":{gettext:"Managed object deleted"},'^Managed object "(.+?)" deleted$':{gettext:'Managed object "{{name}}" deleted',placeholders:{name:"$1"}},"^Maximum file size exceeded$":{gettext:"Maximum file size exceeded."},"^Message with ID (.+?) doesn't exist in smart rest template (.+?)$":{gettext:'Message with ID "{{messageId}}" doesn\'t exist in SmartREST template with ID "{{templateId}}"',placeholders:{messageId:"$1",templateId:"$2"}},"^NewDeviceRequest for id = (.+?) already exists.$":{gettext:"Device registration request with ID {{id}} already exists.",placeholders:{id:"$1"}},"^No communication with device since (.+?)$":{gettext:"No communication with device since {{timestamp | absoluteDate}}.",placeholders:{timestamp:"$1"}},"^No data received from device within required interval.$":{gettext:"No data received from device within required interval."},"^No LoRa provider settings are found. Please configure the connectivity settings.$":{gettext:"No LoRa provider settings are found. Please configure the connectivity settings."},"^Not within any context!$":{gettext:"A problem occurred with microservice subscription."},"^Maximum age cannot be bigger than 10 years.$":{gettext:"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:"Microservice application name is incorrect: only lower case letters, digits and dashes allowed. Maximum length: {{maxLength}}.",placeholders:{maxLength:"$1"}},"^Microservice not available.*$":{gettext:"Microservice is not available."},"^Operation created$":{gettext:"Operation created."},"^Operation updated$":{gettext:"Operation updated."},"^Operation created: status='(.+?)'.":{gettext:'Operation created: status="{{status | translate}}".',placeholders:{status:"$1"}},"^Option created$":{gettext:"Option created."},'^Option "(.+?)" created$':{gettext:'Option "{{option}}" created.',placeholders:{option:"$1"}},"^Option deleted$":{gettext:"Option deleted."},'^Option "(.+?)" deleted$':{gettext:'Option "{{option}}" deleted.',placeholders:{option:"$1"}},"^Owner field error. : Cannot introduce cyclic dependency.":{gettext:"Could not introduce cyclic ownership dependency."},"^Password change is temporary blocked.$":{gettext:"Password change is temporarily blocked."},"^Password cipher does not match":{gettext:"Password cipher does not match."},"^Platform application cannot be added to, nor removed from any tenant.$":{gettext:"Platform application cannot be added to, nor removed from any tenant."},"^Private key must be provided in KEY_PAIR credentials$":{gettext:'Private key must be provided when "Public / private keys" option is selected.'},"^Private key cipher does not match":{gettext:"Private key cipher does not match"},'^Protocol "(.+?)" does not support "(.+?)" credentials type$':{gettext:'Protocol "{{protocol}}" does not support "{{credentialsType}}" credentials type.',placeholders:{protocol:"$1",credentialsType:"$2"}},'^pulling image "(.+)"$':{gettext:'Pulling image: "{{imageName}}".',placeholders:{imageName:"$1"}},"^Real-time event processing is currently overloaded and may stop processing your events\\. Please contact support\\.$":{gettext:"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:'Could not find the resource with ID "{{id}}".',placeholders:{id:"$1"}},"^Scaled up replica set (.+) to (\\d+)$":{gettext:'Replica set "{{replicaSetName}}" scaled up to "{{scaleNumber}}".',placeholders:{replicaSetName:"$1",scaleNumber:"$2"}},"^Simulator state is invalid: (.+)$":{gettext:"Simulator state is invalid: {{violations}}",placeholders:{violations:{capture:"$1",translate:{"(\\w+?) - may not be null":{gettext:'"{{field}}" should not be null',placeholders:{field:"$1"}},"(\\w+?) - must be less than or equal to (\\d+)":{gettext:'"{{field}}" must be less than or equal to {{maxValue}}',placeholders:{field:"$1",maxValue:"$2"}},"(\\w+?) - should not contain null values":{gettext:'"{{field}}" should not contain null values',placeholders:{field:"$1"}}}}}},"^Smart rest template (.+?) doesn't exist$":{gettext:'SmartREST template with id "{{templateId}}" doesn\'t exist',placeholders:{templateId:"$1"}},"^Smart rule created$":{gettext:"Smart rule created."},"^Smart rule updated$":{gettext:"Smart rule updated."},"^Smart rule enabled$":{gettext:"Smart rule activated."},"^Smart rule disabled$":{gettext:"Smart rule deactivated."},"^Smart rule deleted$":{gettext:"Smart rule deleted."},'^Smart rule "(.+?)" created$':{gettext:'Smart rule "{{name}}" created.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" updated$':{gettext:'Smart rule "{{name}}" updated.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" enabled$':{gettext:'Smart rule "{{name}}" activated.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" disabled$':{gettext:'Smart rule "{{name}}" deactivated.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" deleted$':{gettext:'Smart rule "{{name}}" deleted.',placeholders:{name:"$1"}},"^Started container$":{gettext:"Container started."},"^Successfully assigned (.+) to (.+)$":{gettext:'"{{imageName}}" assigned to "{{address}}".',placeholders:{imageName:"$1",address:"$2"}},'^Successfully pulled image "(.+)"$':{gettext:'Image "{{imageName}}" pulled.',placeholders:{imageName:"$1"}},"^Tenant creation failed. : Tenant with given id already exists.$":{gettext:"Could not create a tenant. Tenant with given domain/URL already exists."},'^Tenant id cannot be a reserved sql keyword "(.+?)".$':{gettext:'Could not use a reserved SQL keyword "{{tenantId}}" as a domain name.',placeholders:{tenantId:"$1"}},'^Tenant "(.+?)" activated$':{gettext:'Tenant "{{tenant}}" activated.',placeholders:{tenant:"$1"}},"^Tenant (.+?) has sub-tenants, please remove them first!$":{gettext:'Could not remove tenant "{{tenant}}". Remove its subtenants first.',placeholders:{tenant:"$1"}},"^Tenant activated$":{gettext:"Tenant activated"},'^Tenant "(.+?)" created$':{gettext:'Tenant "{{tenant}}" created.',placeholders:{tenant:"$1"}},"^Tenant created$":{gettext:"Tenant created"},'^Tenant "(.+?)" deleted$':{gettext:'Tenant "{{tenant}}" deleted.',placeholders:{tenant:"$1"}},"^Tenant deleted$":{gettext:"Tenant deleted"},'^Tenant "(.+?)" suspended$':{gettext:'Tenant "{{tenant}}" suspended.',placeholders:{tenant:"$1"}},"^Tenant suspended$":{gettext:"Tenant suspended"},'^Tenant "(.+?)" updated: (.+?)$':{gettext:'Tenant "{{tenant}}" updated: {{properties}}.',placeholders:{tenant:"$1",properties:"$2"}},"^Tenant updated$":{gettext:"Tenant updated"},"^Too Many Requests$":{gettext:"Too many requests. Try again later."},"^User alias equals username '(.+)'$":{gettext:"Username and login alias must be different."},"^User created$":{gettext:"User created"},"^User (.+?) created$":{gettext:'User "{{name}}" created',placeholders:{name:"$1"}},"^User deleted$":{gettext:"User deleted"},"^User (.+?) deleted$":{gettext:'User "{{name}}" deleted',placeholders:{name:"$1"}},"^User updated$":{gettext:"User updated"},"^User (.+?) updated: (.+)$":{gettext:'User "{{name}}" updated: {{updatesList}}',placeholders:{name:"$1",updatesList:{capture:"$2",translate:{"delegatedBy='(.+?)'":{gettext:'delegated by: "{{delegate}}"',placeholders:{delegate:"$1"}},"owner='(.+?)'":{gettext:'owner: "{{owner}}"',placeholders:{owner:"$1"}},"inventory assignment \\[(.+?)\\] added":{gettext:"inventory assignment [{{inventoryAssignment}}] added",placeholders:{inventoryAssignment:"$1"}},"inventory assignment \\[(.+?)\\] removed":{gettext:"inventory assignment [{{inventoryAssignment}}] removed",placeholders:{inventoryAssignment:"$1"}},"applications \\[(.+?)\\] added$":{gettext:"applications [{{applicationsList}}] added",placeholders:{applicationsList:"$1"}},"applications \\[(.+?)\\] removed$":{gettext:"applications [{{applicationsList}}] removed",placeholders:{applicationsList:"$1"}},"global roles \\[(.+?)\\] added$":{gettext:"global roles [{{globalRolesList}}] added",placeholders:{globalRolesList:"$1"}},"global roles \\[(.+?)\\] removed$":{gettext:"global roles [{{globalRolesList}}] removed",placeholders:{globalRolesList:"$1"}}}}}},"^User with username '(.+?)' already exists! : Duplicated: (.+?)$":{gettext:'User "{{username}}" already exists.',placeholders:{username:"$1"}},"^User with username or alias '(.+)' already exists! : Duplicated: (.+)$":{gettext:'User with username or login alias "{{usernameOrAlias}}" already exists.',placeholders:{usernameOrAlias:"$1"}},"^User with email '(.+?)' already exists! : Duplicated: (.+?)$":{gettext:'User with email "{{email}}" already exists.',placeholders:{email:"$1"}},"^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$":{gettext:'Unable to get tenant option: "{{option}}".',placeholders:{option:"$2"}},"^unable to find option with given key (.+?) : There is no system property for key (.+?)$":{gettext:'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:"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:"The chosen name is too long. Please try a shorter one."},"^You have reached devices limit. No more devices can be registered.$":{gettext:"You reached devices limit. No more devices can be registered."},'^(.+) succeeded for volume "(.+)"':{gettext:'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:'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:"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:"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:"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:"Pod synchronization error."},"^Failed create pod sandbox.$":{gettext:"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:'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:'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:'Added new child device to "{{parentDeviceName}}" (ID: {{parentDeviceId}}).',placeholders:{parentDeviceName:"$1",parentDeviceId:"$2"}},'^Updated child device of "(.+)" \\(ID: (.+)\\).$':{gettext:'Updated child device of "{{parentDeviceName}}" (ID: {{parentDeviceId}}).',placeholders:{parentDeviceName:"$1",parentDeviceId:"$2"}},'^Added child device "(.+)" \\(ID: (.+)\\).$':{gettext:'Added child device "{{name}}" (ID: {{id}}).',placeholders:{name:"$1",id:"$2"}},'^Removed child device "(.+)" \\(ID: (.+)\\).$':{gettext:'Removed child device "{{name}}" (ID: {{id}}).',placeholders:{name:"$1",id:"$2"}},'^Change value of "(.+)" to (.+) (.+).$':{gettext:'Change value of "{{name}}" to {{value}}{{unit}}.',placeholders:{name:"$1",value:"$2",unit:"$3"}},'^Change value of "(.+)" to (.+).$':{gettext:'Change value of "{{name}}" to {{value}}.',placeholders:{name:"$1",value:"$2"}},'^Change status of "(.+)" to "(.+)".$':{gettext:'Change status of "{{name}}" to "{{label}}".',placeholders:{name:"$1",label:"$2"}},'^Send message "(.+)".$':{gettext:'Send message "{{str}}".',placeholders:{str:"$1"}},"^Close relay (.+).$":{gettext:"Close relay {{number}}.",placeholders:{number:"$1"}},"^Open relay (.+).$":{gettext:"Open relay {{number}}.",placeholders:{number:"$1"}},"^Change trace status to (.+).$":{gettext:"Change trace status to {{state | translate}}.",placeholders:{state:"$1"}},"^Change relay status to (.+).$":{gettext:"Change relay status to {{status | translate}}.",placeholders:{status:"$1"}},"^Closing relay (.+).$":{gettext:"Closing relay {{number}}.",placeholders:{number:"$1"}},"^Opening relay (.+).$":{gettext:"Opening relay {{number}}.",placeholders:{number:"$1"}},"^Update firmware to: (.+) \\(version: (.+)\\).$":{gettext:"Update firmware to: {{name}} (version: {{version}}).",placeholders:{name:"$1",version:"$2"}},"^Execute generic command: (.+).$":{gettext:"Execute generic command: {{command}}.",placeholders:{command:"$1"}},"^Failed to refresh application. : Cannot refresh non local-hosted application.$":{gettext:"Could not reactivate the application as it is not hosted locally."},"^Failed to refresh application. : Cannot refresh application without active version id.$":{gettext:"Could not reactivate the application as it has no active version."},"^Scaled down replica set (.+) to (\\d+)$":{gettext:'Replica set "{{replicaSetName}}" scaled down to "{{scaleNumber}}".',placeholders:{replicaSetName:"$1",scaleNumber:"$2"}},"^Deleted pod: (.+)$":{gettext:'Pod "{{imageName}}" deleted.',placeholders:{imageName:"$1"}},'^Container image "(.+)" already present on machine$':{gettext:'Container image "{{imageName}}" already exists.',placeholders:{imageName:"$1"}},"^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$":{gettext:"This login mode was already set by other admin, please refresh page to update data"}},mu=function(){function e(){this.cachedDictionary={}}return e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"})],e)}(),gu=function(){function e(e,t,n,a,s){void 0===a&&(a=null),void 0===s&&(s=null),this.http=e,this.optionsService=t,this.cachedLocaleDictionaryService=n,this.path=a,this.languages=s}return e.prototype.getTranslation=function(e){var t=this,n=""+(this.path||"")+e+".json";return this.languages&&this.languages[e]&&this.languages[e].url&&(n=this.languages[e].url),this.http.get(n).pipe(s.map((function(n){return t.optionsService.langsDetails&&t.optionsService.langsDetails[e]?gc({},n[e],t.optionsService.langsDetails[e]):n[e]})),s.tap((function(n){t.cachedLocaleDictionaryService.cachedDictionary[e]=n})),s.map((function(e){return t.getDictionaryWithTrimmedKeys(e)})),s.catchError((function(){return a.of({})})))},e.prototype.getDictionaryWithTrimmedKeys=function(e){return o.mapKeys(e,(function(e,t){return fu(t)}))},e.ctorParameters=function(){return[{type:d.HttpClient},{type:Gc},{type:mu},{type:String,decorators:[{type:t.Inject,args:[iu]}]},{type:void 0,decorators:[{type:t.Inject,args:[lu]}]}]},e=fc([t.Injectable(),hc(3,t.Inject(iu)),hc(4,t.Inject(lu))],e)}();function fu(e){return e.replace(/(\r\n|\n|\r)/gm,"").replace(/\s{2,}/g," ").trim()}var hu=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return mc(n,e),n.prototype.getValue=function(e,t){var n=fu(t),a=o.get(e,[n]);a||t.split(".").length>1&&(a=o.get(e,t));return a},n=fc([t.Injectable()],n)}(i.TranslateDefaultParser);try{require("@c8y/ngx-components/locales/de.po"),require("@c8y/ngx-components/locales/en.po"),require("@c8y/ngx-components/locales/es.po"),require("@c8y/ngx-components/locales/fr.po"),require("@c8y/ngx-components/locales/ja_JP.po")}catch(e){}function yu(e,t,n,a,s){return new gu(e,t,n,a,s)}function vu(e){return e.localePath}function ju(e){return e.languages}function bu(e){return{get lang(){return e.state.lang||"en"},toLowerCase:function(){return this.lang},toString:function(){return this.lang}}}var wu=function(){function e(){}var n;return n=e,e.providers=function(){return[{provide:t.LOCALE_ID,useFactory:bu,deps:[Bc]},{provide:cu,useValue:pu,multi:!0},{provide:iu,useFactory:vu,deps:[Gc]},{provide:lu,useFactory:ju,deps:[Gc]},{provide:i.TranslateLoader,useFactory:yu,deps:[d.HttpClient,Gc,mu,iu,lu]},{provide:i.TranslateCompiler,useClass:i.TranslateFakeCompiler},{provide:i.TranslateParser,useClass:hu},{provide:i.MissingTranslationHandler,useClass:du},i.TranslateStore,i.TranslateService,{provide:i.USE_STORE,useValue:void 0},{provide:i.USE_DEFAULT_LANG,useValue:void 0},{provide:i.USE_EXTEND,useValue:!1},{provide:i.DEFAULT_LANGUAGE,useValue:void 0}]},e.forRoot=function(){return{ngModule:n,providers:n.providers()}},e=n=fc([t.NgModule({exports:[i.TranslateModule],imports:[d.HttpClientModule]})],e)}(),Su=function(){function e(e,t){this.el=e,this.renderer=t,this.c8yMatch=/^c8y-/,this.klasses=[],this.currentClasses=""}return Object.defineProperty(e.prototype,"c8yIcon",{set:function(e){this.updateIcon(e)},enumerable:!0,configurable:!0}),e.prototype.isC8y=function(e){return this.c8yMatch.test(e)},e.prototype.getClasses=function(e){void 0===e&&(e="");var t="";if(e){var n=e.trim(),a=this.isC8y(n);t=(a?"c8y-icon":"fa fw")+" "+(a?n.replace(this.c8yMatch,"c8y-icon-"):"fa-"+n)}return t},e.prototype.updateIcon=function(e){var t=this,n=this.getClasses(e);n!==this.currentClasses&&(this.currentClasses.split(/\s/).filter((function(e){return e})).forEach((function(e){t.renderer.removeClass(t.el.nativeElement,e)})),n.split(/\s/).filter((function(e){return e})).forEach((function(e){t.renderer.addClass(t.el.nativeElement,e)})),this.currentClasses=n)},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2}]},fc([t.Input()],e.prototype,"c8yIcon",null),e=fc([t.Directive({selector:"[c8yIcon]"})],e)}(),Cu=["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"],Iu=function(){function e(e,t,n,a){this.viewContainer=e,this.resolver=t,this.renderer=n,this.el=a,this.properties={}}return Object.defineProperty(e.prototype,"c8yOutlet",{set:function(e){if(e)if(this._element instanceof Element&&this.renderer.removeChild(this._element.parentElement,this._element),this.viewContainer.clear(),e instanceof t.TemplateRef)this.viewContainer.createEmbeddedView(e);else if(e instanceof Element){var n=this.renderer.parentNode(this.el.nativeElement);this.destroy(),this._element=e,this.renderer.insertBefore(n,this._element,this.el.nativeElement)}else{var a=this.resolver.resolveComponentFactory(e),s=this.viewContainer.createComponent(a);o.assign(s.instance,this.properties)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yOutletProperties",{set:function(e){this.properties=e},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.destroy()},e.prototype.destroy=function(){if(this._element){var e=this.renderer.parentNode(this._element);this.renderer.removeChild(e,this._element)}},e.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.ComponentFactoryResolver},{type:t.Renderer2},{type:t.ElementRef}]},fc([t.Input()],e.prototype,"c8yOutlet",null),fc([t.Input()],e.prototype,"c8yOutletProperties",null),e=fc([t.Directive({selector:"[c8yOutlet]"})],e)}(),Pu=function(){function e(){this.LOCAL_STORAGE_KEY="userPreferences",this.store={};try{var e=window.localStorage.getItem(this.LOCAL_STORAGE_KEY);e&&(this.store=JSON.parse(e)||{})}catch(e){}}return e.prototype.get=function(e){return a.of(this.store[e])},e.prototype.set=function(e,t){return this.store[e]=t,this.saveJsonStore()},e.prototype.saveJsonStore=function(){return window.localStorage.setItem(this.LOCAL_STORAGE_KEY,JSON.stringify(this.store))},e}(),Ou=function(){function e(e){this.inventory=e,this.TYPE="c8y_UserPreference"}return e.prototype.get=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return[4,this.inventory.list({fragmentType:e})];case 1:return[2,(t=n.sent().data).length?t[0][e]:void 0]}}))}))},e.prototype.set=function(e,t){return yc(this,void 0,void 0,(function(){var n,a,s,o;return vc(this,(function(r){switch(r.label){case 0:return[4,this.inventory.list({fragmentType:e})];case 1:return n=r.sent().data,(o={})[e]=t,o.type=this.TYPE,a=o,n.length?(a.id=n[0].id,s=this.inventory.update(a)):s=this.inventory.create(a),[2,s]}}))}))},e}(),_u=function(){function e(e,t,n){this.user=e,this.inventory=t,this.appState=n,this.LOCAL_STORAGE_KEY="userPreferences",this.storage={local:new Pu,inventory:new Ou(this.inventory)},this.currentUser=this.appState.currentUser}return e.prototype.get=function(e){var t=this;return this.currentUser.pipe(s.first(),s.switchMap((function(n){return t.getForUser(e,n)})))},e.prototype.set=function(e,t){var n=this;return new Promise((function(a,o){n.currentUser.pipe(s.first()).subscribe((function(s){a(n.setForUser(e,t,s))}),o)}))},e.prototype.getForUser=function(e,t){var n=this.getRawKey(e,t),s=this.getStorage(t);return a.from(s.get(n))},e.prototype.setForUser=function(e,t,n){var a=this.getRawKey(e,n),s=this.getStorage(n);return Promise.resolve(s.set(a,t))},e.prototype.getRawKey=function(e,t){return""+e+t.userName.replace(/\./g,"__")},e.prototype.getStorage=function(e){return this.user.hasAllRoles(e,["ROLE_INVENTORY_READ","ROLE_INVENTORY_ADMIN"])?this.storage.inventory:this.storage.local},e.ctorParameters=function(){return[{type:l.UserService},{type:l.InventoryService},{type:Bc}]},e=fc([t.Injectable()],e)}();var xu=new Map;function Eu(e){return new Promise((function(t,n){xu.has(e)?t(xu.get(e)):fetch("assets/locales/angular/"+e+".js").then((function(e){return e.text()})).then((function(n){var a=function(e){var t=e.split(/\n/).map((function(e){return e.trim()})).filter(Boolean).filter((function(e){return!e.match(/^\/?\*/)&&!e.match(/^\/\//)})).join("\n");return new Function("var exports = {};\nvar module = { exports: exports };\n"+t+"\nreturn exports;")()}(n);xu.set(e,a),t(a)})).catch(n)}))}var ku=function(){function e(e,t,n){var a=this;this.ngxTranslate=e,this.ui=t,this.options=n,this.langsDetail=this.options.get("languages",{}),this.langs=o.keys(this.langsDetail).filter((function(e){return a.langsDetail[e]})),this.DEFAULT_SEPARATOR="_";var s=this.queryStringLang();s&&this.saveInLocalStorage(s)}var n;return n=e,e.defaultLang=function(){return window.localStorage.getItem(n.SAVE_LANGUAGE_KEY)},e.prototype.switchToLanguage=function(e){return yc(this,void 0,void 0,(function(){var t,n,a;return vc(this,(function(s){switch(s.label){case 0:t=e.replace("_","-"),s.label=1;case 1:return s.trys.push([1,3,,7]),[4,this.loadLocales(t)];case 2:return s.sent(),[3,7];case 3:return n=s.sent(),(a=t.split("-").shift())===t?[3,5]:[4,this.loadLocales(a)];case 4:return s.sent(),[3,6];case 5:throw n;case 6:return[3,7];case 7:return this.setLanguage(e),[2]}}))}))},e.prototype.loadLocales=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return[4,Eu(e)];case 1:return t=n.sent(),u.registerLocaleData(t.default),[2]}}))}))},e.prototype.setLanguage=function(e){var t=this;this.ngxTranslate.setDefaultLang(this.options.get("defaultLanguage","en")),this.ngxTranslate.use(e).subscribe((function(){t.ui.state$.next(gc({},t.ui.state,{lang:e}))}))},e.prototype.firstSupportedLanguage=function(){var e=this,t=[this.queryStringLang(),this.localStorageLang()].concat([this.options.get("defaultLanguage")]).concat(this.browserLangs()).concat(["en"]).filter(Boolean).find((function(t){return e.getSupported(t)}));return this.getSupported(t)},e.prototype.convertToLanguageCodePO=function(e){var t=e.indexOf("-")>-1?"-":this.DEFAULT_SEPARATOR,n=jc(e.split(t),2),a=n[0],s=n[1];return""+a+(s?""+this.DEFAULT_SEPARATOR+s:"")},e.prototype.getNativeLanguage=function(e){return((this.langsDetail||{})[e]||{}).nativeName||e},e.prototype.saveInLocalStorage=function(e){window.localStorage.setItem(n.SAVE_LANGUAGE_KEY,e)},e.prototype.getSupported=function(e){return this.langs.find((function(t){return t===e}))||this.langs.find((function(t){return t.startsWith(e)}))},e.prototype.queryStringLang=function(){return this.getQueryParameter("lang")},e.prototype.localStorageLang=function(){return window.localStorage.getItem(n.SAVE_LANGUAGE_KEY)},e.prototype.browserLangs=function(){var e=window.navigator;return["languages","language","browserLanguage","systemLanguage","userLanguage"].reduce((function(t,n){var a=e[n];return"string"==typeof a?t.push(a):Array.isArray(a)&&(t=t.concat(a)),t}),[])},e.prototype.getQueryParameter=function(e){var t;return window.location.search.substring(1).split("&").find((function(n){var a=jc(n.split("="),2),s=a[0],o=a[1];return s===e&&(t=o),t})),t},e.SAVE_LANGUAGE_KEY="c8y_language",e.ctorParameters=function(){return[{type:i.TranslateService},{type:Bc},{type:Gc}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(i.TranslateService),t.ɵɵinject(Bc),t.ɵɵinject(Gc))},token:e,providedIn:"root"}),e=n=fc([t.Injectable({providedIn:"root"})],e)}(),Tu=function(){function e(){}return e.prototype.transform=function(e){var t=e.firstName,n=void 0===t?"":t,a=e.lastName,s=void 0===a?"":a,o=e.userName,r=void 0===o?"":o,l=n.trim().split(/\s+/).shift().substr(0,1),i=s.trim().split(/\s+/).pop();return(l=i?l?l+". ":"":n.split(/\s+/).shift())||i?l+i:r},e=fc([t.Pipe({name:"shortenUserName"})],e)}(),Au=function(){function e(e){this.element=e,this.useIntersection=!0,this.hidden=!1,this.class="c8y-list__item bg-transparent",this.maxIterations=10,this.onLoad=new t.EventEmitter,this.isLoading=!1,this.counter=0,this.showNoMoreDataHint=!1,this.LOAD_SAME_PAGE_THRESHOLD=50}return Object.defineProperty(e.prototype,"hostClass",{get:function(){return this.hidden||!this.hasMore&&!this.showNoMoreDataHint?"":this.class},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasMore",{get:function(){return this.paging&&this.paging.totalPages>this.paging.currentPage},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this.useIntersection&&"IntersectionObserver"in window&&(this.intersectionObserver=new IntersectionObserver((function(t){return e.buttonInView(t[0])}),{root:this.container?this.container.nativeElement:null}),this.intersectionObserver.observe(this.element.nativeElement)),this.showNoMoreDataHint=this.shouldShowNoMoreDataHint()},e.prototype.ngOnDestroy=function(){this.intersectionObserver&&this.intersectionObserver.disconnect()},e.prototype.loadMore=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return this.isLoading=!0,e&&e.stopPropagation(),this.hasMore?[4,this.paging.next()]:[3,2];case 1:return t=n.sent(),this.counter++,this.paging=t.paging,this.onLoad.emit(t.data),this.intersectionLoading(),this.showNoMoreDataHint=this.shouldShowNoMoreDataHint(),[3,3];case 2:this.counter=0,this.isLoading=!1,n.label=3;case 3:return[2]}}))}))},e.prototype.intersectionLoading=function(){var e=this;this.useIntersection&&this.hasMore&&null!==this.loadUntilIntersected?(this.loadUntilIntersected=setTimeout((function(){return e.loadMore()}),this.getLoadingThreshold()),this.useIntersection=this.shouldSwitchMode()):(this.isLoading=!1,this.loadUntilIntersected=void 0)},e.prototype.getLoadingThreshold=function(){return this.LOAD_SAME_PAGE_THRESHOLD*this.counter},e.prototype.shouldShowNoMoreDataHint=function(){return(0!==this.counter||this.noMoreDataHint)&&!this.hasMore&&!this.hidden},e.prototype.shouldSwitchMode=function(){return this.counter<this.maxIterations||this.hidden},e.prototype.buttonInView=function(e){e.isIntersecting?this.loadMore():this.loadUntilIntersected?(clearTimeout(this.loadUntilIntersected),this.loadUntilIntersected=null,this.isLoading=!1):this.loadUntilIntersected=null},e.ctorParameters=function(){return[{type:t.ElementRef}]},fc([t.Input()],e.prototype,"paging",void 0),fc([t.Input()],e.prototype,"useIntersection",void 0),fc([t.Input()],e.prototype,"hidden",void 0),fc([t.Input()],e.prototype,"container",void 0),fc([t.Input()],e.prototype,"class",void 0),fc([t.Input()],e.prototype,"maxIterations",void 0),fc([t.Input()],e.prototype,"noMoreDataHint",void 0),fc([t.Output()],e.prototype,"onLoad",void 0),fc([t.HostBinding("class")],e.prototype,"hostClass",null),e=fc([t.Component({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 <span\n *ngIf="!isLoading"\n translate\n ngNonBindable\n [translateParams]="{ pageNo: paging.currentPage + 1 }"\n >\n Load page {{ pageNo }}</span\n >\n <span\n *ngIf="isLoading"\n translate\n ngNonBindable\n [translateParams]="{ pageNo: paging.currentPage + 1 }"\n >\n Page {{ pageNo }} is loading…\n </span>\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\'" title="{{ \'No more data found.\' | translate }}"></i>\n </div>\n</ng-template>\n'})],e)}(),Du=function(){function e(e,t,n){this.tpl=e,this.vcr=t,this.componentFactoryResolver=n,this.cachedData=[],this.loadMoreMode="auto",this.dataPipe=a.pipe(s.tap()),this.maxIterations=10}return Object.defineProperty(e.prototype,"shouldUseLoadMoreButton",{get:function(){return"auto"===this.loadMoreMode||"show"===this.loadMoreMode||"hidden"===this.loadMoreMode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasMoreData",{get:function(){return this.loadMore&&this.loadMore.hasMore},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this.cachedData.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForOf",{set:function(e){var t=this;e&&(this.obs$=(a.isObservable(e)?e:a.of(e)).pipe(s.map((function(e){var n=e.paging,a=e.data;return t.paging=n,a}))))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForLoadMore",{set:function(e){this.loadMoreMode=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForPipe",{set:function(e){e&&(this.dataPipe=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForNotFound",{set:function(e){this.notFoundTemplate=e,this.loadMore&&(this.loadMore.noMoreDataHint=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForMaxIterations",{set:function(e){this.maxIterations=e},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){var t=this;if(this.obs$&&(e.c8yForPipe||e.c8yForOf)){this.unsubscribePaging();var n=!this.hasMoreData&&!!e.c8yForPipe&&!e.c8yForOf;n&&(this.obs$=a.of(this.cachedData)),this.pagingSub=this.obs$.pipe(s.tap((function(e){n||(t.cachedData=e)}))).pipe((function(e){return t.dataPipe(e)})).subscribe((function(e){t.render(e,n)}))}},e.prototype.ngOnDestroy=function(){this.unsubscribePaging()},e.prototype.render=function(e,t){var n=this;void 0===t&&(t=!1),this.vcr.clear(),e.forEach((function(e,t){var a={$implicit:e,index:t,length:n.length,hasMore:n.hasMoreData};n.vcr.createEmbeddedView(n.tpl,a)})),this.shouldUseLoadMoreButton&&(this.loadMore=this.createLoadMoreButtonComponent(t))},e.prototype.append=function(e){var t=this;e.forEach((function(e){var n=t.shouldUseLoadMoreButton?t.vcr.length-1:t.vcr.length,a={$implicit:e,index:n,length:t.length,hasMore:t.hasMoreData};t.vcr.createEmbeddedView(t.tpl,a,n)}))},e.prototype.loadMoreData=function(e){e.length>0&&this.append(e)},e.prototype.createLoadMoreButtonComponent=function(e){var t=this,n=this.componentFactoryResolver.resolveComponentFactory(Au),a=this.vcr.createComponent(n).instance;return a.paging=this.paging,a.useIntersection="auto"===this.loadMoreMode||"hidden"===this.loadMoreMode,a.hidden="hidden"===this.loadMoreMode,a.maxIterations=this.maxIterations,a.noMoreDataHint=this.notFoundTemplate,this.pagingSub=a.onLoad.pipe(s.tap((function(e){t.cachedData=t.cachedData.concat(e)}))).pipe((function(e){return t.dataPipe(e)})).subscribe((function(e){return t.loadMoreData(e)})),e&&o.assign(a,this.loadMore),a},e.prototype.unsubscribePaging=function(){this.pagingSub&&this.pagingSub.unsubscribe()},e.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.ViewContainerRef},{type:t.ComponentFactoryResolver}]},fc([t.Input()],e.prototype,"c8yForOf",null),fc([t.Input()],e.prototype,"c8yForLoadMore",null),fc([t.Input()],e.prototype,"c8yForPipe",null),fc([t.Input()],e.prototype,"c8yForNotFound",null),fc([t.Input()],e.prototype,"c8yForMaxIterations",null),e=fc([t.Directive({selector:"[c8yFor]"})],e)}(),Nu=function(){function e(){}return e.prototype.transform=function(e,t,n){return t.apply(n||this,Array.isArray(e)?e:[e])},e=fc([t.Pipe({name:"map"})],e)}(),Mu=function(){function e(){this.message="Loading…",this.progress=null}return fc([t.Input()],e.prototype,"message",void 0),fc([t.Input()],e.prototype,"progress",void 0),e=fc([t.Component({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'})],e)}(),qu=function(){function e(e,t,n){this.appState=e,this.inventory=t,this.user=n}return e.prototype.canEdit=function(e,t){return this.checkIfCanEdit(e,t)},e.prototype.hasRole=function(e){var t=this.appState.currentUser.value;if(!t)throw new Error("Roles can only be requested if the user is logged in.");return this.user.hasRole(t,e)},e.prototype.hasAllRoles=function(e){var t=this.appState.currentUser.value;if(!t)throw new Error("Roles can only be requested if the user is logged in.");return this.user.hasAllRoles(t,e)},e.prototype.hasAnyRole=function(e){var t=this.appState.currentUser.value;if(!t)throw new Error("Roles can only be requested if the user is logged in.");return this.user.hasAnyRole(t,e)},e.prototype.checkIfOwner=function(e){return yc(this,void 0,void 0,(function(){var t,n,a;return vc(this,(function(s){switch(s.label){case 0:return[4,this.appState.currentUser.value.userName];case 1:return t=s.sent(),[4,this.inventory.detail(e.id)];case 2:return n=s.sent(),a=n.data,n.res,[2,t===a.owner]}}))}))},e.prototype.checkWithRequest=function(e){var t=e.name,n={id:e.id,name:t};return this.inventory.update(n).then((function(e){return!0})).catch((function(e){return!1}))},e.prototype.checkIfCanEdit=function(e,t){return yc(this,void 0,void 0,(function(){return vc(this,(function(n){switch(n.label){case 0:return[4,this.hasAnyRole(e)];case 1:return n.sent()?[2,!0]:[3,2];case 2:return[4,this.checkIfOwner(t)];case 3:return n.sent()?[2,!0]:[3,4];case 4:return[4,this.checkWithRequest(t)];case 5:if(n.sent())return[2,!0];n.label=6;case 6:return[2,!1]}}))}))},e.ctorParameters=function(){return[{type:Bc},{type:l.InventoryService},{type:l.UserService}]},e=fc([t.Injectable()],e)}();function Lu(e,t,n){return function(){var a=e.queryStringLang(),o=e.firstSupportedLanguage();a&&e.getSupported(a)?e.switchToLanguage(a):t.currentUser.pipe(s.map((function(e){return e&&e.userName})),s.filter((function(e){return!!e})),s.distinctUntilChanged(),s.switchMap((function(){return n.get("language")})),s.startWith(o),s.filter((function(e){return!!e})),s.distinctUntilChanged()).subscribe((function(t){e.switchToLanguage(t)}))}}var Ru,$u=new t.InjectionToken("iconList"),Fu=function(){function e(){}var n;return n=e,e.providers=function(){return bc(r.DataModule.providers(),[{provide:Uc,useValue:window.C8Y_APP||{},multi:!0},{provide:t.APP_INITIALIZER,useFactory:Lu,deps:[ku,Bc,_u],multi:!0},{provide:$u,useValue:Cu,multi:!1}],wu.providers(),[_u,Gc,Bc,qu])},e.forRoot=function(){return{ngModule:n,providers:n.providers()}},e=n=fc([t.NgModule({imports:[u.CommonModule,wu],exports:[Su,Iu,wu,u.CommonModule,ru,ou,Tu,Du,Au,Nu,Mu],declarations:[Su,Iu,ou,ru,Tu,Du,Au,Nu,Mu],entryComponents:[Au]})],e)}(),Uu=function(){function e(e){this.actionBarService=e,this.placement="left",this.priority=0,this.itemClass=""}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.actionBarService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.actionBarService.remove(this)},e.ctorParameters=function(){return[{type:Ec}]},fc([t.Input()],e.prototype,"placement",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.Input()],e.prototype,"itemClass",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-action-bar-item",template:'<ng-template #template>\n <li class="{{itemClass}}">\n <ng-content></ng-content>\n </li>\n</ng-template>'})],e)}(),Gu=function(){function e(){this.navigatorOpen=!1,this.hasTabs=!1,this.isTabsHorizontal=!1,this.isPageToolbarExpanded=!1,this.uiActionBar=!0,this.items=[]}return Object.defineProperty(e.prototype,"hidden",{get:function(){return!(this.items&&this.items.length)},enumerable:!0,configurable:!0}),e.prototype.getSortedItems=function(e){return o.sortBy(o.filter(this.items,{placement:e}),this.byPriority)},e.prototype.byPriority=function(e){return-e.priority},fc([t.Input(),t.HostBinding("class.navigator-open")],e.prototype,"navigatorOpen",void 0),fc([t.Input(),t.HostBinding("class.has-tabs")],e.prototype,"hasTabs",void 0),fc([t.Input(),t.HostBinding("class.horizontal-tabs")],e.prototype,"isTabsHorizontal",void 0),fc([t.HostBinding("class.c8y-ui-action-bar")],e.prototype,"uiActionBar",void 0),fc([t.Input()],e.prototype,"items",void 0),fc([t.HostBinding()],e.prototype,"hidden",null),e=fc([t.Component({selector:"c8y-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',host:{class:"c8y-ui-action-bar"}})],e)}(),Bu=function(){function e(){}return e=fc([t.NgModule({declarations:[Gu,Uu],imports:[Qi.BsDropdownModule,Fu,Xi.CollapseModule,n.RouterModule.forChild([])],exports:[Gu,Uu]})],e)}(),zu=function(){function e(){this.isPageToolbarExpanded=!1,this.items=[]}return e.prototype.getByPriority=function(){return o.sortBy(this.items,this.byPriority)},e.prototype.invoke=function(e){e.action&&e.action.call()},e.prototype.byPriority=function(e){return-e.priority},fc([t.Input()],e.prototype,"items",void 0),e=fc([t.Component({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'})],e)}(),Hu=function(){function e(e){this.actionService=e,this.disabled=!1,this.priority=0}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.actionService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.actionService.remove(this)},e.ctorParameters=function(){return[{type:Tc}]},fc([t.Input()],e.prototype,"disabled",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-action",template:"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>"})],e)}(),Vu=function(){function e(){}return e=fc([t.NgModule({declarations:[zu,Hu],imports:[Fu,Qi.BsDropdownModule,n.RouterModule.forChild([])],exports:[zu,Hu]})],e)}(),Ku=function(){function e(){}return e=fc([t.Component({selector:"c8y-alert-details",template:"<ng-content></ng-content>"})],e)}(),Wu=function(){function e(e,t){this.position=e,this.alertService=t,this.detailDisplayedAlert={},this.isStatic=!1,this.isStatic="static"===this.position}return Object.defineProperty(e.prototype,"alerts",{get:function(){return this.alertService.state$},enumerable:!0,configurable:!0}),e.prototype.getClass=function(e){var t=[];return"danger"!==e.type&&t.push("interact"),t.push("alert-"+e.type),t.join(" ")},e.prototype.close=function(e){e.onClose&&e.onClose(),this.alertService.remove(e)},e.prototype.showDetails=function(e){if(e.onDetail)return e.onDetail();this.detailDisplayedAlert=Object.assign({},e),this.detailDisplayedAlert.mode="raw",this.setDetailsContent(e)},e.prototype.setDetailsContent=function(e){this.isTemplateRef(e.detailedData)||"string"==typeof e.detailedData?this.detailDisplayedAlert.contents=e.detailedData:this.detailDisplayedAlert.contents=JSON.stringify(e.detailedData,null,2)},e.prototype.hasDetails=function(e){return e.detailedData||e.onDetail},e.prototype.closeDetails=function(){this.detailDisplayedAlert={}},e.prototype.isDetailsShow=function(e){return this.alertService.areSame(e,this.detailDisplayedAlert)},e.prototype.isTemplateRef=function(e){return e instanceof t.TemplateRef},e.prototype.template=function(e){return this.isTemplateRef(e)?e:void 0},e.ctorParameters=function(){return[{type:String,decorators:[{type:t.Attribute,args:["position"]}]},{type:$c}]},fc([t.HostBinding("class.static")],e.prototype,"isStatic",void 0),e=fc([t.Component({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'}),hc(0,t.Attribute("position"))],e)}(),Yu=function(){function e(){}return e=fc([t.Component({selector:"c8y-alert-text",template:"<ng-content></ng-content>"})],e)}(),Zu=function(){function e(e){this.alertService=e}return e.prototype.ngAfterViewInit=function(){var e=this;this.containDetailsComponent||(this.detailedData=null),this.viewInitTimeout=setTimeout((function(){return e.alertService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.alertService.remove(this)},e.ctorParameters=function(){return[{type:$c}]},fc([t.Input()],e.prototype,"type",void 0),fc([t.Input()],e.prototype,"onDetail",void 0),fc([t.Input()],e.prototype,"onClose",void 0),fc([t.ViewChild("detailedData",{static:!1})],e.prototype,"detailedData",void 0),fc([t.ViewChild("text",{static:!1})],e.prototype,"text",void 0),fc([t.ContentChild(Ku,{static:!1})],e.prototype,"containDetailsComponent",void 0),e=fc([t.Component({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>'})],e)}(),Ju=function(){function e(){}return e=fc([t.NgModule({imports:[Fu],exports:[Wu,Zu,Ku,Yu],declarations:[Wu,Zu,Ku,Yu]})],e)}(),Xu=function(){function e(){}return fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"translate",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"path",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-breadcrumb-item",template:"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"})],e)}(),Qu=function(){function e(){this.showAll=!1,this.breadcrumbs=[]}return e.prototype.normalizePath=function(e){return e.replace(/^#\/?/,"")},fc([t.Input()],e.prototype,"breadcrumbs",void 0),e=fc([t.Component({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'})],e)}(),ed=function(){function e(e){this.breadcrumbService=e}return e.prototype.ngAfterViewInit=function(){var e=this;this.items=this.contentChildItems.toArray(),this.viewInitTimeout=setTimeout((function(){return e.breadcrumbService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.breadcrumbService.remove(this)},e.ctorParameters=function(){return[{type:Qc}]},fc([t.ContentChildren(Xu)],e.prototype,"contentChildItems",void 0),e=fc([t.Component({selector:"c8y-breadcrumb",template:"<ng-template>\n <ng-content></ng-content>\n</ng-template>"})],e)}(),td=function(){function e(){}return e=fc([t.NgModule({declarations:[ed,Xu,Qu],imports:[n.RouterModule.forChild([]),Fu,ec.TooltipModule.forRoot()],exports:[ed,Xu,Qu]})],e)}(),nd=function(){function e(e){this.alertService=e,this.search=[]}return e.prototype.openSearch=function(){var e=this;setTimeout((function(){return e.focusInputBox()}),100)},e.prototype.getByPriority=function(){return c.sortBy(this.search,this.byPriority)},e.prototype.closeDropdown=function(e){e.hide()},e.prototype.verifyNotEmpty=function(e){e&&""!==e||this.alertService.add({text:"Type something to execute a search.",type:"warning"})},e.prototype.byPriority=function(e){return-e.priority},e.prototype.focusInputBox=function(){var e=document.querySelector("#search-header-menu input");e&&e.focus()},e.ctorParameters=function(){return[{type:$c}]},fc([t.Input()],e.prototype,"search",void 0),e=fc([t.Component({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'})],e)}(),ad=new t.InjectionToken("SearchFactory"),sd=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(ad,[])},Ic(o.state$)]).pipe(s.map((function(e){return Pc(e)})),s.shareReplay(1)),o}return mc(o,e),o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),od=function(){function e(e){this.searchService=e,this.icon="search",this.priority=0,this.search=new t.EventEmitter,this.term=""}return e.prototype.onSearch=function(){this.search.emit(this)},e.prototype.ngAfterViewInit=function(){var e=this;this.template=void 0,this.viewInitTimeout=setTimeout((function(){return e.searchService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.searchService.remove(this)},e.ctorParameters=function(){return[{type:sd}]},fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),fc([t.Output()],e.prototype,"search",void 0),fc([t.Input()],e.prototype,"term",void 0),e=fc([t.Component({selector:"c8y-search",template:"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"})],e)}(),rd=function(){function e(e){this.domSanitizer=e,this.pattern="",this.text="",this.elementClass="text-info",this.highlightedText=""}return e.prototype.ngOnChanges=function(){var e=this.text;this.pattern&&""!==this.pattern&&(e=this.text.replace(new RegExp(this.pattern,"i"),'<strong class="'+this.elementClass+'">$&</strong>')),this.highlightedText=this.domSanitizer.sanitize(t.SecurityContext.HTML,e)},e.ctorParameters=function(){return[{type:nc.DomSanitizer}]},fc([t.ViewChild("text",{read:t.ElementRef,static:!0})],e.prototype,"container",void 0),fc([t.Input()],e.prototype,"pattern",void 0),fc([t.Input()],e.prototype,"text",void 0),fc([t.Input()],e.prototype,"elementClass",void 0),e=fc([t.Component({selector:"c8y-highlight",template:'<span [innerHTML]="highlightedText"></span>'})],e)}(),ld=function(){function e(){}return e=fc([t.NgModule({declarations:[nd,od,rd],imports:[tc.FormsModule,Qi.BsDropdownModule,Fu,n.RouterModule.forChild([])],exports:[nd,od,rd]})],e)}(),id=function(){function n(t){var n=this;this.modal=t,this.status=e.Status.INFO,this._labels={ok:"OK",cancel:"Cancel"},this.result=new Promise((function(e,t){n.dismiss=function(){t(),n.modal.hide()},n.close=function(){e(!0),n.modal.hide()}}))}return Object.defineProperty(n.prototype,"labels",{get:function(){return this._labels},set:function(e){var t=e||{},n=t.ok,a=void 0===n?"OK":n,s=t.cancel,o=void 0===s?"Cancel":s;this._labels={ok:a,cancel:o}},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"classIcon",{get:function(){return"fa-"+eu[this.status]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"classAlert",{get:function(){return nu[this.status]},enumerable:!0,configurable:!0}),n.prototype.ngOnDestroy=function(){this.dismiss()},n.ctorParameters=function(){return[{type:ac.BsModalRef}]},fc([t.Input()],n.prototype,"title",void 0),fc([t.Input()],n.prototype,"body",void 0),fc([t.Input()],n.prototype,"status",void 0),fc([t.Input()],n.prototype,"labels",null),n=fc([t.Component({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'})],n)}(),cd=function(){function e(e){this.modal=e,this.onDismiss=new t.EventEmitter,this.onClose=new t.EventEmitter,this.disabled=!1,this.customFooter=!1,this._labels={ok:"OK",cancel:"Cancel"}}return Object.defineProperty(e.prototype,"labels",{get:function(){return this._labels},set:function(e){var t=e.ok,n=e.cancel;this._labels={ok:t,cancel:n}},enumerable:!0,configurable:!0}),e.prototype._dismiss=function(){var e=this,t=this.dismiss;!t&&this.modal&&(t=function(){return e.modal.hide()}),t&&t(),this.onDismiss.emit(!0)},e.prototype._close=function(){var e=this,t=this.close;!t&&this.modal&&(t=function(){return e.modal.hide()}),t&&t(),this.onClose.emit(!0)},e.prototype.onEnterKeyDown=function(e){var t=c.isEmpty(this.labels.ok)!==c.isEmpty(this.labels.cancel),n=!this.customFooter&&this.labels.cancel,a=!this.customFooter&&!this.disabled&&this.labels.ok;t&&n&&this._dismiss(),t&&a&&this._close()},e.ctorParameters=function(){return[{type:ac.BsModalRef,decorators:[{type:t.Optional}]}]},fc([t.Output()],e.prototype,"onDismiss",void 0),fc([t.Output()],e.prototype,"onClose",void 0),fc([t.Input()],e.prototype,"disabled",void 0),fc([t.Input()],e.prototype,"close",void 0),fc([t.Input()],e.prototype,"dismiss",void 0),fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"body",void 0),fc([t.Input()],e.prototype,"customFooter",void 0),fc([t.Input()],e.prototype,"labels",null),fc([t.HostListener("document:keydown.enter",["$event"])],e.prototype,"onEnterKeyDown",null),e=fc([t.Component({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'}),hc(0,t.Optional())],e)}(),ud=function(){function n(e){this.modalService=e}return n.prototype.confirm=function(t,n,a,s){return void 0===a&&(a=e.Status.INFO),void 0===s&&(s={}),yc(this,void 0,void 0,(function(){var e;return vc(this,(function(o){switch(o.label){case 0:return e={ok:s.ok||"Confirm",cancel:s.cancel||"Cancel"},[4,this.modalService.show(id,{initialState:{title:t,body:n,labels:e,status:a}}).content.result];case 1:return[2,o.sent()]}}))}))},n.prototype.acknowledge=function(t,n,a,s){return void 0===a&&(a=e.Status.INFO),void 0===s&&(s="Confirm"),yc(this,void 0,void 0,(function(){var e;return vc(this,(function(o){switch(o.label){case 0:return e={ok:s,cancel:null},[4,this.modalService.show(id,{initialState:{title:t,body:n,labels:e,status:a}}).content.result];case 1:return[2,o.sent()]}}))}))},n.ctorParameters=function(){return[{type:ac.BsModalService}]},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n(t.ɵɵinject(ac.BsModalService))},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(),dd=function(){function e(){this.buttons=[{label:"cancel",action:function(){return Promise.reject()}}],this.isOpen=!1,this.containerClass="",this.placement="right",this.outsideClick=!1}return e.prototype.show=function(e){return yc(this,void 0,void 0,(function(){var t,n=this;return vc(this,(function(a){switch(a.label){case 0:this.buttons=e||this.buttons,this.isOpen=!0,a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,new Promise((function(e,t){return n.click=function(n){return n().then(e).catch(t)}}))];case 2:return t=a.sent(),[3,5];case 3:throw a.sent();case 4:return this.isOpen=!1,[7];case 5:return[2,t]}}))}))},e.prototype.buttonStatus=function(e){return e?"btn-"+e:"btn-link btn-clean"},e.prototype.handleOutsideClick=function(){this.click((function(){return Promise.reject()}))},fc([t.ViewChild(sc.PopoverDirective,{static:!1})],e.prototype,"popover",void 0),fc([t.Input()],e.prototype,"buttons",void 0),fc([t.Input()],e.prototype,"message",void 0),fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"isOpen",void 0),fc([t.Input()],e.prototype,"containerClass",void 0),fc([t.Input()],e.prototype,"placement",void 0),fc([t.Input()],e.prototype,"outsideClick",void 0),e=fc([t.Component({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'})],e)}(),pd=function(){function e(){}return e=fc([t.NgModule({imports:[ac.ModalModule.forRoot(),Fu,sc.PopoverModule.forRoot()],exports:[id,cd,dd],declarations:[id,cd,dd],providers:[ud],entryComponents:[id]})],e)}(),md=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.state$=new a.BehaviorSubject({userMenuItems:new Set}),t}return mc(n,e),Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),n.prototype.add=function(e){this.state.userMenuItems.add(e),this.emitNewState()},n.prototype.remove=function(e){this.state.userMenuItems.delete(e),this.emitNewState()},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(_c),gd=function(){function e(e){this.userService=e,this.priority=0,this.click=new t.EventEmitter}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.userService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.userService.remove(this)},e.prototype.onClick=function(){this.click.emit(this)},e.ctorParameters=function(){return[{type:md}]},fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"link",void 0),fc([t.Input()],e.prototype,"target",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),fc([t.Output()],e.prototype,"click",void 0),e=fc([t.Component({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>'})],e)}(),fd=function(){function e(e,t,n,a,o,r,l,i,c){var u=this;this.modal=e,this.user=t,this.ui=n,this.auth=a,this.client=o,this.alert=r,this.translate=l,this.userPreferences=i,this.modalService=c,this.loading=!1,this.lang=this.ui.state.lang,this.modalService.onHide.pipe(s.take(1)).subscribe((function(e){null!==e&&void 0!==u.changedLang&&u.translate.switchToLanguage(u.lang)}))}return e.prototype.onDismiss=function(){void 0!==this.changedLang&&this.translate.switchToLanguage(this.lang),this.modal.hide()},e.prototype.onLanguage=function(e){this.changedLang=e,this.translate.switchToLanguage(this.changedLang)},e.prototype.updateAndClose=function(e){return yc(this,void 0,void 0,(function(){var t,n;return vc(this,(function(a){switch(a.label){case 0:this.loading=!0,a.label=1;case 1:return a.trys.push([1,6,7,8]),[4,this.user.updateCurrent(e)];case 2:return a.sent(),e.password&&this.updateCredentials(e.password),[4,this.user.current()];case 3:return t=a.sent(),this.ui.currentUser.next(t.data),this.changedLang&&this.changedLang!==this.lang?[4,this.persistLanguage(this.changedLang)]:[3,5];case 4:a.sent(),a.label=5;case 5:return this.modal.hide(),this.alert.success("User saved."),[3,8];case 6:return n=a.sent(),this.alert.addServerFailure(n),[3,8];case 7:return this.loading=!1,[7];case 8:return[2]}}))}))},e.prototype.persistLanguage=function(e){return yc(this,void 0,void 0,(function(){return vc(this,(function(t){return this.translate.saveInLocalStorage(e),this.userPreferences.set("language",e),[2]}))}))},e.prototype.updateCredentials=function(e){var t={password:e,user:this.ui.currentUser.value.id,tenant:this.client.tenant};this.auth.updateCredentials(t)},e.ctorParameters=function(){return[{type:ac.BsModalRef},{type:l.UserService},{type:Bc},{type:l.BasicAuth},{type:l.FetchClient},{type:$c},{type:ku},{type:_u},{type:ac.BsModalService}]},e=fc([t.Component({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>'})],e)}();(Ru=e.LoginViews||(e.LoginViews={}))[Ru.None=0]="None",Ru[Ru.Credentials=1]="Credentials",Ru[Ru.RecoverPassword=2]="RecoverPassword",Ru[Ru.SmsChallenge=3]="SmsChallenge",Ru[Ru.ChangePassword=4]="ChangePassword",Ru[Ru.TotpChallenge=5]="TotpChallenge",Ru[Ru.TotpSetup=6]="TotpSetup",Ru[Ru.ProvidePhoneNumber=7]="ProvidePhoneNumber";var hd,yd=function(){function e(e,t,n,a,s,o,r,l,i,c,u){this.client=e,this.basicAuth=t,this.cookieAuth=n,this.ui=a,this.user=s,this.tenant=o,this.realtime=r,this.alert=l,this.api=i,this.tenantLoginOptionsService=c,this.location=u,this.rememberMe=!1,this.TOKEN_KEY="_tcy8",this.TFATOKEN_KEY="TFAToken",this.OAUTH2_INTERNAL_TYPE="OAUTH2_INTERNAL",this.isFirstLogin=!0,this.GREEN_MIN_LENGTH_DEFAULT=8,this.ERROR_MESSAGES={minlength:"Password must have at least 8 characters and no more than 32.",password_missmatch:"Password confirmation does not match.",maxlength:"Password must have at least 8 characters and no more than 32.",password_strength:"Your password is not strong enough. Please include numbers, lower and upper case characters",remote_error:"Server error occurred.",email:"Invalid email address.",password_change:"Your password is expired. Please set a new password.",password_reset_token_expired:"Password reset link expired. Please enter your email address to receive a new one.",tfa_pin_invalid:"The code you entered is invalid. Please try again.",pattern_phonenumber:'Invalid phone number format. Only digits, spaces, slashes ("/") and dashes ("-") allowed.',pattern_newPassword:"Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:'\",.<>{}[]\\/",international_number_required:"International phone number required, in the format +49 9 876 543 210.",phone_number_error:"Could not update phone number.",pinAlreadySent:"The verification code was already sent. For a new verification code, please click on the link above.",passwordConfirm:"Password confirmation does not match.",tfaExpired:"Two-factor authentication token expired."},this.SUCCESS_MESSAGES={password_changed:"Password changed. You can now log in using new password.",password_reset_requested:"Password reset request has been sent. Please check your email.",resend_sms:"Verification code SMS resent.",send_sms:"Verification code SMS sent."},this.passwordStrengthSetting={enforcePasswordStrength:!1,greenMinLength:this.GREEN_MIN_LENGTH_DEFAULT},this.localhostRegExp=new RegExp("localhost"),this.localhostIpRegExp=new RegExp("127.0.0.1"),this.showTenantRegExp=new RegExp("showTenant"),this.autoLogout(),this.initLoginOptions()}return e.prototype.getTenant=function(){return this.client.tenant},e.prototype.initLoginOptions=function(){var e=this.ui.state.loginOptions||[],t=function(e){var t=e.type,n=e.grantType;return"OAUTH2"===t&&"AUTHORIZATION_CODE"===n};this.loginMode=e.find((function(e){return"OAUTH2_INTERNAL"===e.type}))||e.find((function(e){return"BASIC"===e.type}))||e.find(t)||{type:"BASIC"},this.oauthOptions=e.find(t)||{}},e.prototype.redirectToOauth=function(){var e=this.oauthOptions.initRequest,t=(this.location?this.location._platformLocation:window).location.href,n=encodeURIComponent(t),a=(e.includes("?")?"&":"?")+"originUri="+n;window.location.href=""+e+a},e.prototype.autoLogout=function(){var e=this,t=/invalid\scredentials.*pin.*generate/i,n=function(e){return e&&"string"==typeof e.message&&t.test(e.message)};this.ui.currentUser.pipe(s.switchMap((function(t){return t?e.api.hookResponse((function(e){return 401===e.response.status})):a.EMPTY}))).subscribe((function(t){return yc(e,void 0,void 0,(function(){var e,a,s,o=this;return vc(this,(function(r){switch(r.label){case 0:return e=t.response,a=!1,n(e.data)?(a=!0,[3,3]):[3,1];case 1:return"function"!=typeof e.json?[3,3]:[4,e.clone().json()];case 2:s=r.sent(),n(s)&&(a=!0),r.label=3;case 3:return a&&(this.logout(!1),setTimeout((function(){return o.alert.danger(o.ERROR_MESSAGES.tfaExpired)}),500)),[2]}}))}))}))},e.prototype.getGreenMinLength=function(){var e=this.getLoginOption(),t=Number(o.get(e,"greenMinLength"));return this.passwordStrengthSetting.greenMinLength=isNaN(t)?this.GREEN_MIN_LENGTH_DEFAULT:t,this.passwordStrengthSetting.greenMinLength},e.prototype.getEnforcePasswordStrength=function(){var e=this.getLoginOption();return this.passwordStrengthSetting.enforcePasswordStrength="true"===o.get(e,"enforceStrength","false"),this.passwordStrengthSetting.enforcePasswordStrength},e.prototype.cleanMessages=function(){this.alert.clearAll()},e.prototype.addSuccessMessage=function(e){var t=this.SUCCESS_MESSAGES[e];t&&this.alert.add({text:t,type:"success",timeout:0})},e.prototype.getAuthStrategy=function(){var e=this.cookieAuth,t=this.getStoredToken(),n=this.getStoredTfaToken();return t&&(e=this.basicAuth,this.setCredentials({token:t,tfa:n},this.basicAuth)),e},e.prototype.useBasicAuth=function(e){return this.setCredentials(e,this.basicAuth),this.basicAuth},e.prototype.login=function(e,t){return void 0===e&&(e=this.getAuthStrategy()),yc(this,void 0,void 0,(function(){var n,a,s,o,r,l;return vc(this,(function(i){switch(i.label){case 0:return this.client.setAuth(e),[4,this.tenant.current()];case 1:return n=i.sent(),a=n.data,[4,this.switchLoginMode(t)];case 2:return i.sent()&&(e=this.cookieAuth),[4,this.user.current()];case 3:return s=i.sent(),o=s.data,[4,this.verifyAppAccess()];case 4:return i.sent(),r=this.getSupportUserName(t),(l=this.setCredentials({tenant:a.name,user:(r?r+"$":"")+o.userName},e))&&this.storeBasicAuthToken(l),[4,this.authFulfilled(a,o,r)];case 5:return i.sent(),[2]}}))}))},e.prototype.authFulfilled=function(e,t,n){return yc(this,void 0,void 0,(function(){var a;return vc(this,(function(s){switch(s.label){case 0:return e?[3,2]:[4,this.tenant.current()];case 1:a=s.sent().data,e=a,this.client.tenant=e.name,s.label=2;case 2:return t?[3,4]:[4,this.user.current()];case 3:a=s.sent().data,t=a,s.label=4;case 4:return n||(n=null),this.ui.setUser({user:t,supportUserName:n}),this.ui.currentTenant.next(e),[2]}}))}))},e.prototype.switchLoginMode=function(e){return yc(this,void 0,void 0,(function(){var t,n,a,s;return vc(this,(function(o){switch(o.label){case 0:return(t=this.isPasswordGrantLogin(e))&&e?(n=new URLSearchParams({grant_type:"PASSWORD",username:e.user,password:e.password,tfa_code:e.tfa}),a=new URLSearchParams(this.loginMode.initRequest.split("?").pop()),e.tenant=a.get("tenant_id"),[4,this.client.fetch("tenant/oauth?"+a.toString(),{method:"POST",body:n.toString(),headers:{"content-type":"application/x-www-form-urlencoded;charset=UTF-8"}})]):[3,2];case 1:if(!(s=o.sent()).ok)throw{res:s};this.client.setAuth(this.cookieAuth),this.cleanLocalStorage(),this.basicAuth.logout(),o.label=2;case 2:return[2,t]}}))}))},e.prototype.isPasswordGrantLogin=function(e){return!(e&&e.user.includes("$")||!this.loginMode||this.loginMode.type!==this.OAUTH2_INTERNAL_TYPE)},e.prototype.showTenant=function(){return!this.ui.state.loginOptions||this.isLocal()||this.isShowTenant()},e.prototype.logout=function(e){return void 0===e&&(e=!0),yc(this,void 0,void 0,(function(){var t,n;return vc(this,(function(a){switch(a.label){case 0:t=null,a.label=1;case 1:return a.trys.push([1,4,5,6]),[4,this.reset()];case 2:return n=jc.apply(void 0,[a.sent(),2]),n[0],[4,n[1].json()];case 3:return t=a.sent(),[3,6];case 4:return a.sent(),this.alert.removeLastDanger(),[3,6];case 5:return t&&t.url?this.redirect(t.url):e&&window.location.reload(),[7];case 6:return[2]}}))}))},e.prototype.reset=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){return this.cleanLocalStorage(),this.cleanSessionStorage(),this.realtime.disconnect(),this.ui.currentUser.next(null),[2,Promise.all([this.basicAuth.logout(),this.cookieAuth.logout()])]}))}))},e.prototype.saveTFAToken=function(e,t){t.setItem(this.TFATOKEN_KEY,e)},e.prototype.verifyAppAccess=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.ui.loadManifest()];case 1:return t.sent(),[3,3];case 2:if(!(e=t.sent()).res||404!==e.res.status||!this.isLocal())throw e;return[3,3];case 3:return[2]}}))}))},e.prototype.setCredentials=function(e,t){e.tenant&&(this.client.tenant=e.tenant);var n=this.basicAuth.updateCredentials({tenant:e.tenant,user:e.user}),a=gc({token:n},e);return t.updateCredentials(a)},e.prototype.isLocal=function(){var e=window.location.hostname;return this.localhostIpRegExp.test(e)||this.localhostRegExp.test(e)},e.prototype.saveToken=function(e,t){t.setItem(this.TOKEN_KEY,e)},e.prototype.storeBasicAuthToken=function(e){this.saveToken(e,sessionStorage),this.rememberMe&&this.saveToken(e,localStorage)},e.prototype.cleanLocalStorage=function(){localStorage.removeItem(this.TOKEN_KEY),localStorage.removeItem(this.TFATOKEN_KEY)},e.prototype.cleanSessionStorage=function(){sessionStorage.removeItem(this.TOKEN_KEY),sessionStorage.removeItem(this.TFATOKEN_KEY)},e.prototype.isShowTenant=function(){return this.showTenantRegExp.test(window.location.href)},e.prototype.redirect=function(e){window.location.href=e},e.prototype.getLoginOption=function(){return jc(this.ui.state.loginOptions||[],1)[0]},e.prototype.getSupportUserName=function(e){return void 0===e&&(e=this.getStoredCredentials()),e?e.user.match(/^(.+\/)?((.+)\$)?(.+)?$/)[3]:null},e.prototype.getStoredCredentials=function(){var e=this.getStoredToken();return e?this.decodeToken(e):null},e.prototype.getStoredToken=function(){return localStorage.getItem(this.TOKEN_KEY)||sessionStorage.getItem(this.TOKEN_KEY)},e.prototype.getStoredTfaToken=function(){return localStorage.getItem(this.TFATOKEN_KEY)||sessionStorage.getItem(this.TFATOKEN_KEY)},e.prototype.decodeToken=function(e){var t=decodeURIComponent(escape(window.atob(e))).match(/(([^/]*)\/)?([^/:]+):(.+)/);return{tenant:t[2],user:t[3],password:t[4]}},e.ctorParameters=function(){return[{type:l.FetchClient},{type:l.BasicAuth},{type:l.CookieAuth},{type:Bc},{type:l.UserService},{type:l.TenantService},{type:l.Realtime},{type:$c},{type:r.ApiService},{type:l.TenantLoginOptionsService},{type:u.LocationStrategy,decorators:[{type:t.Optional}]}]},e=fc([t.Injectable(),hc(10,t.Optional())],e)}(),vd=function(){function e(e,n,a,s,o){this.user=e,this.ui=n,this.client=a,this.alert=s,this.loginService=o,this.passwordConfirmedEmitter=new t.EventEmitter,this.loading=!1}return e.prototype.passwordConfirm=function(){return yc(this,void 0,void 0,(function(){var e,t,n,a,s;return vc(this,(function(r){switch(r.label){case 0:if(!this.password)return[3,5];e=this.ui.currentSupportUserName.value,t=this.ui.currentUser.value.id,n={password:this.password,user:(e?e+"$":"")+t,tenant:this.client.tenant},r.label=1;case 1:return r.trys.push([1,3,4,5]),this.loading=!0,a=o.clone(this.loginService.useBasicAuth({})),delete n.tfa,a.updateCredentials(n),[4,this.createNewClient(a,this.client.baseUrl).user.current()];case 2:return r.sent(),this.emitSuccessAndClose(),[3,5];case 3:return(s=r.sent()).res&&401===s.res.status&&s.data&&/pin|totp/i.test(s.data.message)?this.emitSuccessAndClose():this.alert.danger("Provided password doesn't match your current one."),[3,5];case 4:return this.loading=!1,[7];case 5:return[2]}}))}))},e.prototype.cancel=function(){this.passwordConfirmedEmitter.emit(!1),this.modal._dismiss()},e.prototype.createNewClient=function(e,t){return new l.Client(e,t)},e.prototype.emitSuccessAndClose=function(){this.passwordConfirmedEmitter.emit(!0),this.modal._dismiss()},e.ctorParameters=function(){return[{type:l.UserService},{type:Bc},{type:l.FetchClient},{type:$c},{type:yd}]},fc([t.Output()],e.prototype,"passwordConfirmedEmitter",void 0),fc([t.ViewChild("modal",{static:!1})],e.prototype,"modal",void 0),e=fc([t.Component({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'})],e)}(),jd=function(){function e(e){this.modalService=e,this.GREEN={colorName:"green",color:"rgb(0, 128, 0)",description:"strong",passwordStrength:l.PasswordStrength.GREEN},this.YELLOW={colorName:"yellow",color:"rgb(255, 204, 51)",description:"medium",passwordStrength:l.PasswordStrength.YELLOW},this.RED={colorName:"red",color:"rgb(170, 0, 51)",description:"weak",passwordStrength:l.PasswordStrength.RED}}return e.prototype.confirmPassword=function(){return this.modalService.show(vd).content.passwordConfirmedEmitter.pipe(s.take(1))},e.prototype.hasLowerCase=function(e){return-1!==e.search(/[a-z]/)},e.prototype.hasUpperCase=function(e){return-1!==e.search(/[A-Z]/)},e.prototype.hasNumbers=function(e){return-1!==e.search(/[0-9]/)},e.prototype.hasSpecialChars=function(e){return-1!==e.search(/[^0-9a-zA-Z]+/)},e.prototype.getStrengthColor=function(e){var t=o.filter([this.hasLowerCase(e),this.hasUpperCase(e),this.hasNumbers(e),this.hasSpecialChars(e)]).length;return t>2?this.GREEN:t>=2?this.YELLOW:this.RED},e.ctorParameters=function(){return[{type:ac.BsModalService}]},e=fc([t.Injectable()],e)}(),bd=function(){function n(e,t,n,a){this.user=e,this.modalService=t,this.modal=n,this.loginService=a}return n.prototype.totpSetupVerified=function(t){return yc(this,void 0,void 0,(function(){return vc(this,(function(t){switch(t.label){case 0:return[4,this.user.activateTotp()];case 1:t.sent(),this.modal.hide(),t.label=2;case 2:return t.trys.push([2,5,,6]),[4,this.modalService.acknowledge("Logout required","You must log out in order to apply your changes",e.Status.WARNING,"Log out")];case 3:return t.sent(),[4,this.loginService.logout()];case 4:return t.sent(),[3,6];case 5:return t.sent(),[3,6];case 6:return[2]}}))}))},n.prototype.close=function(){this.modal.hide()},n.ctorParameters=function(){return[{type:l.UserService},{type:ud},{type:ac.BsModalRef},{type:yd}]},n=fc([t.Component({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'})],n)}(),wd=function(){function e(e,n,a,s,o,r,l,i){this.state=e,this.translate=n,this.passwordService=a,this.modalConfirmService=s,this.bsModalService=o,this.alert=r,this.userService=l,this.tenantLoginOptionsService=i,this.loading=!1,this.onUser=new t.EventEmitter,this.onLanguage=new t.EventEmitter,this.onCancel=new t.EventEmitter,this.userHasActiveTotp=!1,this.userCanSetupTotp=!1}return Object.defineProperty(e.prototype,"user",{get:function(){return this._user},set:function(e){this._user=o.clone(e),this.userIsExternal="OAUTH2"===e.customProperties.userOrigin},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return[4,this.initializeTotpSettings()];case 1:return e.sent(),[2]}}))}))},Object.defineProperty(e.prototype,"langs",{get:function(){return this.state.state.langs},enumerable:!0,configurable:!0}),e.prototype.setupTotp=function(){this.bsModalService.show(bd,{class:"modal-sm"}),this.cancel()},e.prototype.cancel=function(){this.onCancel.emit()},e.prototype.save=function(){this.loading||(this._user.password?this.saveAfterPasswordConfirmation():this.onUser.emit(this._user))},e.prototype.onNewPasswordChanged=function(e){this._user.password=e.password},e.prototype.initializeTotpSettings=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),e=this,[4,this.canUserSetupTotp()];case 1:return e.userCanSetupTotp=n.sent(),this.userCanSetupTotp?[4,this.userService.getActivityTotp()]:[3,3];case 2:t=n.sent().data,this.userHasActiveTotp=t.isActive,n.label=3;case 3:return[3,5];case 4:return n.sent(),this.alert.removeLastDanger(),[3,5];case 5:return[2]}}))}))},e.prototype.canUserSetupTotp=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return[4,this.tenantLoginOptionsService.detail()];case 1:return[2,e.sent().data.loginOptions.some((function(e){var t=e.tfaStrategy;return"totp"===(void 0===t?"":t).toLowerCase()}))]}}))}))},e.prototype.saveAfterPasswordConfirmation=function(){var e=this;this.passwordService.confirmPassword().subscribe((function(t){t&&e.onUser.emit(e._user)}))},e.ctorParameters=function(){return[{type:Bc},{type:ku},{type:jd},{type:ud},{type:ac.BsModalService},{type:$c},{type:l.UserService},{type:l.TenantLoginOptionsService}]},fc([t.Input()],e.prototype,"lang",void 0),fc([t.Input()],e.prototype,"loading",void 0),fc([t.Input()],e.prototype,"user",null),fc([t.Output()],e.prototype,"onUser",void 0),fc([t.Output()],e.prototype,"onLanguage",void 0),fc([t.Output()],e.prototype,"onCancel",void 0),e=fc([t.Component({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 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]="user.twoFactorAuthenticationEnabled"\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"\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'})],e)}(),Sd=function(){function n(e,t,n,a,s,o,r,l,i){this.ui=e,this.bsModalService=t,this.modalService=n,this.loginService=a,this.translateService=s,this.tenantService=o,this.alertService=r,this.user=l,this.optionsService=i}return n.prototype.copyIt=function(e){var t,n={handleEvent:function(t){t.clipboardData.setData("text/plain",e),t.preventDefault()}};document.addEventListener("copy",n);try{t=document.execCommand("copy")}catch(e){t=!1}t?this.alertService.addByText("success","Copied to clipboard."):this.alertService.addByText("danger","Could not copy to clipboard."),document.removeEventListener("copy",n)},n.prototype.editUser=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){return this.bsModalService.show(fd),[2]}))}))},n.prototype.logout=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return[4,this.loginService.logout()];case 1:return e.sent(),[2]}}))}))},n.prototype.activateSupportAccess=function(){return yc(this,void 0,void 0,(function(){var t,n,a,s,o;return vc(this,(function(r){switch(r.label){case 0:t="Activate support user access",n=this.optionsService.get("companyName","Cumulocity"),"You are about to allow a support user from {{companyName}} to access your tenant to help you with your issue.","You are about to allow a support user to access your tenant to help you with your issue.","Do you want to proceed?",a=[this.translateService.instant(n?"You are about to allow a support user from {{companyName}} to access your tenant to help you with your issue.":"You are about to allow a support user to access your tenant to help you with your issue.",{companyName:n}),this.translateService.instant("Do you want to proceed?")].join(" "),s={ok:"Activate access",cancel:"Cancel"},o="Support user access activated.",r.label=1;case 1:return r.trys.push([1,5,,6]),[4,this.modalService.confirm(t,a,e.Status.DANGER,s)];case 2:return r.sent(),[4,this.tenantService.enableSupportUser()];case 3:return r.sent(),[4,this.refreshCurrentUser()];case 4:return r.sent(),this.alertService.success(o),[3,6];case 5:return r.sent(),[3,6];case 6:return[2]}}))}))},n.prototype.deactivateSupportAccess=function(){return yc(this,void 0,void 0,(function(){var t,n,a,s,o,r,l,i,c;return vc(this,(function(u){switch(u.label){case 0:return t="Deactivate support user access",n=this.optionsService.get("companyName","Cumulocity"),a="You are about to block a support user from {{companyName}} from accessing your tenant to help you with your issue.",s="You are about to block a support user from accessing your tenant to help you with your issue.",[4,this.user.current()];case 1:return o=u.sent().data,[4,this.user.hasRole(o,"ROLE_TENANT_ADMIN")];case 2:r=u.sent(),"Deactivating support access as tenant admin will disable all other support requests on your tenant.","Do you want to proceed?",l=[this.translateService.instant(n?a:s,{companyName:n}),r?this.translateService.instant("Deactivating support access as tenant admin will disable all other support requests on your tenant."):"",this.translateService.instant("Do you want to proceed?")].filter(Boolean).join(" "),i={ok:"Deactivate access",cancel:"Cancel"},c="Support user access deactivated.",u.label=3;case 3:return u.trys.push([3,7,,8]),[4,this.modalService.confirm(t,l,e.Status.DANGER,i)];case 4:return u.sent(),[4,this.tenantService.disableSupportUser()];case 5:return u.sent(),[4,this.refreshCurrentUser()];case 6:return u.sent(),this.alertService.success(c),[3,8];case 7:return u.sent(),[3,8];case 8:return[2]}}))}))},n.prototype.getSortedItems=function(){return o.sortBy(Array.from(this.items),this.byPriority)},n.prototype.refreshCurrentUser=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return[4,this.user.current()];case 1:return e=t.sent(),this.ui.currentUser.next(e.data),[2]}}))}))},n.prototype.byPriority=function(e){return-e.priority},n.ctorParameters=function(){return[{type:Bc},{type:ac.BsModalService},{type:ud},{type:yd},{type:i.TranslateService},{type:l.TenantService},{type:$c},{type:l.UserService},{type:Gc}]},fc([t.Input()],n.prototype,"items",void 0),n=fc([t.Component({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\x3c!-- the default items --\x3e\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'})],n)}(),Cd=function(){function e(e,t){var n=this;this.loginService=e,this.passwordStrengthChecker=t,this.minGreenLength=0,this.checklist=[{label:"Include lowercase characters (e.g. abcdef)",check:this.passwordStrengthChecker.hasLowerCase,icon:"",contextualColor:""},{label:"Include uppercase characters (e.g. ABCDEF)",check:this.passwordStrengthChecker.hasUpperCase,icon:"",contextualColor:""},{label:"Include numbers (e.g. 123456)",check:this.passwordStrengthChecker.hasNumbers,icon:"",contextualColor:""},{label:"Include symbols (e.g. !@#$%^)",check:this.passwordStrengthChecker.hasSpecialChars,icon:"",contextualColor:""},{label:"Must have at least {{length}} characters",check:function(e){return e.length>=n.minGreenLength},icon:"",contextualColor:""}]}return Object.defineProperty(e.prototype,"password",{set:function(e){"string"==typeof e&&this.onPasswordChange(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.minGreenLength=this.loginService.getGreenMinLength()},Object.defineProperty(e.prototype,"translateParams",{get:function(){return{length:this.minGreenLength}},enumerable:!0,configurable:!0}),e.prototype.onPasswordChange=function(e){this.checklist=o.map(this.checklist,(function(t){var n=t.check(e);return o.assign(t,{icon:n?"check":"",contextualColor:n?"":"text-muted"}),t}))},e.ctorParameters=function(){return[{type:yd},{type:jd}]},fc([t.Input("password")],e.prototype,"password",null),e=fc([t.Component({selector:"c8y-password-check-list",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'})],e)}(),Id=function(){function e(e){this.passwordConfirm=e}var n;return n=e,e.prototype.validate=function(e){var t=e.value,n=e.root.get(this.passwordConfirm);return n&&t!==n.value?{passwordConfirm:!0}:null},e.ctorParameters=function(){return[{type:String,decorators:[{type:t.Attribute,args:["passwordConfirm"]}]}]},e=n=fc([t.Directive({selector:"[passwordConfirm]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]}),hc(0,t.Attribute("passwordConfirm"))],e)}(),Pd=function(){function e(){this.GREEN={colorName:"green",color:"rgb(0, 128, 0)",description:"strong",passwordStrength:l.PasswordStrength.GREEN},this.YELLOW={colorName:"yellow",color:"rgb(255, 204, 51)",description:"medium",passwordStrength:l.PasswordStrength.YELLOW},this.RED={colorName:"red",color:"rgb(170, 0, 51)",description:"weak",passwordStrength:l.PasswordStrength.RED}}return e.prototype.hasLowerCase=function(e){return-1!==e.search(/[a-z]/)},e.prototype.hasUpperCase=function(e){return-1!==e.search(/[A-Z]/)},e.prototype.hasNumbers=function(e){return-1!==e.search(/[0-9]/)},e.prototype.hasSpecialChars=function(e){return-1!==e.search(/[^0-9a-zA-Z]+/)},e.prototype.getStrengthColor=function(e){var t=o.filter([this.hasLowerCase(e),this.hasUpperCase(e),this.hasNumbers(e),this.hasSpecialChars(e)]).length;return t>2?this.GREEN:t>=2?this.YELLOW:this.RED},e=fc([t.Injectable()],e)}(),Od=function(){function e(e){this.passwordStrengthCheckerService=e,this.strength=new t.EventEmitter,this.password=""}return Object.defineProperty(e.prototype,"password",{set:function(e){"string"==typeof e&&(this.model=this.passwordStrengthCheckerService.getStrengthColor(e),this.strength.emit(this.model))},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:jd}]},fc([t.Input("password")],e.prototype,"password",null),fc([t.Output()],e.prototype,"strength",void 0),e=fc([t.Component({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>'})],e)}(),_d=function(){function e(e){this.systemOptions=e,this.password=new t.EventEmitter,this.model={},this.enforcePasswordStrength=!1,this.changePassword=!1}return e.prototype.ngOnInit=function(){this.loadEnforcePasswordStrength()},e.prototype.newPasswordChanged=function(){this.password.emit({password:this.model.newPassword,passwordStrength:this.model.strength})},e.prototype.loadEnforcePasswordStrength=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.systemOptions.detail({category:"password",key:"enforce.strength"})];case 1:return e=t.sent().data,this.enforcePasswordStrength="true"===e.value,[3,3];case 2:return t.sent(),[3,3];case 3:return[2]}}))}))},e.prototype.toggleChangePassword=function(){this.changePassword=!this.changePassword,this.changePassword||(this.password.emit({}),this.model={})},e.ctorParameters=function(){return[{type:l.SystemOptionsService}]},fc([t.Output()],e.prototype,"password",void 0),e=fc([t.Component({selector:"c8y-new-password",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]="!model.newPassword"\n (strength)="model.strength = $event"\n ></c8y-password-strength>\n\n <c8y-password-check-list\n [password]="model.newPassword"\n [hidden]="!enforcePasswordStrength"\n ></c8y-password-check-list>\n</div>\n',viewProviders:[{provide:tc.ControlContainer,useExisting:tc.NgForm}]})],e)}(),xd=function(){function e(){}var n;return n=e,e.prototype.validate=function(e){return this.validateInternationalPhoneNumber(e)?null:{internationalPhoneNumber:!0}},e.prototype.validateInternationalPhoneNumber=function(e){var t;try{var n=oc.parsePhoneNumberFromString(e.value);(t=n.isValid())&&e.value!==n.format("E.164")&&e.setValue(n.format("E.164"),{emitEvent:!1,emitModelToViewChange:!1})}catch(n){t=!e.value}return t},e=n=fc([t.Directive({selector:"[c8yPhoneValidation]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),Ed=function(){function e(){}return e.get=function(e){return this.rules[e]},e.messages={deviceId:'Device ID must not contain spaces or slashes ("/").',domain:"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:"Invalid email address.",internationalPhoneNumber:"International phone number required, in the format +49 9 876 543 210.",loginAlias:'Login alias must not contain slashes ("/", "\\") nor ("+"), (":"), ("$") signs.',max:"Max value: {{ value }}",min:"Min value: {{ value }}",opcuaBrowsePath:"Invalid OPC UA URI.",password:"Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:'\",.<>{}[]\\/",passwordConfirm:"Passwords do not match.",phoneNumber:'Invalid phone number format. Only digits, spaces, slashes ("/") and dashes ("-") allowed.',required:"This field is required.",tenantId:"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:"Slash, single or double dots and white space not allowed",user:'Username must not contain spaces nor slashes ("/", "\\") nor ("+"), (":"), ("$") signs.'},e.rules={deviceId:{pattern:/^[^\s/]*$/},domain:{pattern:/^[a-z]+[a-z0-9_-]*[a-z0-9]+\.{1}.+$/},groupName:{maxLength:254},hostname:{pattern:/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/},ip:{pattern:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/},opcuaBrowsePath:{pattern:/^(opc.tcp|http|https):\/\/[^ "]+$/},password:{pattern:/^[a-zA-Z0-9`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]{8,32}$/},phoneNumber:{pattern:/^$|^(\+|0{2})[\d\s/-]{1,30}$/},tenantId:{pattern:/^[a-z]+[a-z0-9_-]*[a-z0-9]+$/},user:{pattern:/^[^\\/\s$:+]*$/},urlSegment:{pattern:/^(([.]{1,2})|([/])+|(([/]*)([.]{1,2})([/]*))|((.*)([/]|[ ]+)(.*))|(\s+))$/},loginAlias:{pattern:/^[^\\/$:+]*$/}},e}(),kd=function(){function e(){this.c8yDefaultValidation=""}var n;return n=e,e.prototype.validate=function(e){var t;if(!e.value)return null;var n=Ed.get(this.c8yDefaultValidation);if(!n)throw new Error("Pattern "+this.c8yDefaultValidation+" not found.");var a=!0;return n.pattern&&(a=n.pattern.test(e.value)),n.maxLength&&(a=e.value.length<n.maxLength),n.minLength&&(a=e.value.length>=n.minLength),a?null:((t={})[this.c8yDefaultValidation]=!0,t)},fc([t.Input()],e.prototype,"c8yDefaultValidation",void 0),e=n=fc([t.Directive({selector:"[c8yDefaultValidation]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),Td=function(){function e(){this.min=""}var n;return n=e,e.prototype.validate=function(e){var t=parseInt(this.min,10);if(o.isUndefined(e.value)||!this.min)return null;return!(e.value<t)?null:{min:{value:t}}},fc([t.Input()],e.prototype,"min",void 0),e=n=fc([t.Directive({selector:"[min]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),Ad=function(){function e(){this.max=""}var n;return n=e,e.prototype.validate=function(e){var t=parseInt(this.max,10);if(o.isUndefined(e.value)||!this.max)return null;return!(e.value>t)?null:{max:{value:t}}},fc([t.Input()],e.prototype,"max",void 0),e=n=fc([t.Directive({selector:"[max]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),Dd=function(){function e(){}return fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"text",void 0),e=fc([t.Directive({selector:"c8y-message"})],e)}(),Nd=function(){function e(e){this.translateService=e,this.show={},this.defaults=Ed.messages,this.messages=[],this.messageMap={}}return e.prototype.ngAfterContentInit=function(){this.messageMap=Object.assign({},this.defaults,this.customMessages.reduce((function(e,t){return e[t.name]=t.text,e}),{}))},e.prototype.changVisibility=function(e){this.show=e,this.ngOnChanges()},e.prototype.ngOnChanges=function(){var e=this;this.show?this.messages=Object.keys(this.show).map((function(t){return e.toMessage(t,e.show[t])})):this.messages=[]},e.prototype.toMessage=function(e,t){return this.translateService.instant(this.messageMap[e],t)},e.ctorParameters=function(){return[{type:i.TranslateService}]},fc([t.Input()],e.prototype,"show",void 0),fc([t.Input()],e.prototype,"defaults",void 0),fc([t.ContentChildren(Dd)],e.prototype,"customMessages",void 0),e=fc([t.Component({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'})],e)}(),Md=function(){function e(){this.hasError=!1,this.hasWarning=!1,this.hasSuccess=!1,this.novalidation=!1,this.VALIDATION_DEBOUNCE_MS=1e3}return Object.defineProperty(e.prototype,"error",{get:function(){return"error"===this.status||this.hasError},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"warning",{get:function(){return"warning"===this.status||this.hasWarning},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"success",{get:function(){return"success"===this.status||this.hasSuccess},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this.initNgModel()},e.prototype.initNgModel=function(){var e=this;this.model&&(this.subscription=this.model.valueChanges.pipe(s.filter((function(){return e.model.dirty&&!e.novalidation})),s.debounce((function(){return e.hasError?a.timer(10):a.timer(e.VALIDATION_DEBOUNCE_MS)}))).subscribe((function(){return e.update()})))},e.prototype.update=function(){this.hasError=!this.model.valid,this.customErrorMessage?this.customErrorMessage.changVisibility(this.model.errors):this.errors=this.model.errors},e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},fc([t.Input()],e.prototype,"hasError",void 0),fc([t.Input()],e.prototype,"hasWarning",void 0),fc([t.Input()],e.prototype,"hasSuccess",void 0),fc([t.Input()],e.prototype,"novalidation",void 0),fc([t.Input()],e.prototype,"status",void 0),fc([t.HostBinding("class.has-error")],e.prototype,"error",null),fc([t.HostBinding("class.has-warning")],e.prototype,"warning",null),fc([t.HostBinding("class.has-success")],e.prototype,"success",null),fc([t.ContentChild(Nd,{static:!1})],e.prototype,"customErrorMessage",void 0),fc([t.ContentChild(tc.NgModel,{static:!0})],e.prototype,"model",void 0),e=fc([t.Component({selector:"c8y-form-group",template:'<ng-content></ng-content>\n<c8y-messages *ngIf="!customErrorMessage" [show]="errors"></c8y-messages>\n',host:{class:"form-group"}})],e)}(),qd=function(){function e(){this.plus=!0,this.minus=!0,this.onRemove=new t.EventEmitter,this.onAdd=new t.EventEmitter}return e.prototype.add=function(){this.onAdd.emit(this.index)},e.prototype.remove=function(){this.onRemove.emit(this.index)},fc([t.Input()],e.prototype,"plus",void 0),fc([t.Input()],e.prototype,"minus",void 0),fc([t.Input()],e.prototype,"index",void 0),fc([t.Output()],e.prototype,"onRemove",void 0),fc([t.Output()],e.prototype,"onAdd",void 0),e=fc([t.Component({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'})],e)}(),Ld=function(){function e(){}return e.prototype.ngAfterContentInit=function(){var e=this;this.listProjections.map((function(t){t!==e.listProjections.last&&setTimeout((function(){t.plus=!1}))})),this.listProjections.changes.subscribe((function(e){1!==e.length?e.map((function(t){setTimeout((function(){t.minus=!0})),t!==e.last&&setTimeout((function(){t.plus=!1})),t===e.last&&setTimeout((function(){t.plus=!0}))})):setTimeout((function(){e.first.plus=!0,e.first.minus=!1}))}))},fc([t.ContentChildren(qd)],e.prototype,"listProjections",void 0),e=fc([t.Directive({selector:"[c8yInputGroupListContainer]"})],e)}(),Rd=function(){function e(e){this.invalidJSON=new t.EventEmitter,this.message="Must be a valid JSON object.",this.debounceTimeInMs=1e3,this.abstractCtrl=e.control}return e.prototype.ngOnInit=function(){var e=this;this.subscription=this.abstractCtrl.valueChanges.pipe(s.tap((function(){return e.clearValidationMessage()})),s.debounceTime(this.debounceTimeInMs),s.distinctUntilChanged()).subscribe((function(t){e.validateInputAndPrettify(t)}))},e.prototype.ngOnDestroy=function(){this.subscription&&!this.subscription.closed&&this.subscription.unsubscribe()},e.prototype.validateInputAndPrettify=function(e){if(e)try{var t=JSON.parse(e),n=JSON.stringify(t,void 0,2);this.abstractCtrl.setValue(n)}catch(e){this.setErrorAndValidationMessage()}},e.prototype.setErrorAndValidationMessage=function(){this.abstractCtrl.setErrors({invalidBodyTemplate:!0}),this.invalidJSON.emit(this.message)},e.prototype.clearValidationMessage=function(){this.invalidJSON.emit(void 0)},e.ctorParameters=function(){return[{type:tc.NgControl}]},fc([t.Output()],e.prototype,"invalidJSON",void 0),e=fc([t.Directive({selector:"textarea[prettyValidJson]"})],e)}(),$d=function(){function e(e,t){this.elem=e,this.renderer=t,this.rows=1,this.minHeightPerRow=20}return e.prototype.ngAfterViewInit=function(){var e=Number(this.heightPerRow);this.heightPerRow&&e&&e>this.minHeightPerRow?this.setHeight(this.rows*e+"px"):this.setHeight(this.rows*this.minHeightPerRow+"px")},e.prototype.setHeight=function(e){this.renderer.setStyle(this.elem.nativeElement,"height",e)},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2}]},fc([t.Input(),t.HostBinding("rows")],e.prototype,"rows",void 0),fc([t.Input("heightPerRow")],e.prototype,"heightPerRow",void 0),e=fc([t.Directive({selector:"textarea[heightPerRow]"})],e)}(),Fd=function(){function e(e,t,n){this.el=e,this.renderer=t,this.translationService=n,this.shouldSkipRequiredHint=!1,this.shouldSkipRequiredHint=!!this.el.nativeElement.closest("[placeholder-no-required-hint]")}return e.prototype.ngAfterContentChecked=function(){if(this.el&&this.el.nativeElement&&void 0!==this.el.nativeElement.required){var e=this.el.nativeElement.required&&!this.shouldSkipRequiredHint,t=this.el.nativeElement.placeholder;this.placeholder===t&&this.req===e||this.updatePlaceholder(this.getTextForPlaceholder(t,e))}},e.prototype.getTextForPlaceholder=function(e,t){void 0===e&&(e=""),void 0===t&&(t=!1),this.req=t;var n="("+this.translationService.instant("required")+")",a=e.lastIndexOf(n);return a>0&&(e=e.slice(0,a-1)),0===a&&(e=""),t?e.trim()?e+" "+n:n:e},e.prototype.updatePlaceholder=function(e){this.renderer.setAttribute(this.el.nativeElement,"placeholder",e),this.placeholder=e},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:i.TranslateService}]},e=fc([t.Directive({selector:"input[required]"})],e)}(),Ud=function(){function e(){}return Object.defineProperty(e.prototype,"data",{get:function(){return this.ipRangeList},set:function(e){this.ipRangeList=e,0===this.ipRangeList.length&&this.add()},enumerable:!0,configurable:!0}),e.prototype.add=function(){this.ipRangeList.push({ip:"",cidr:void 0})},e.prototype.remove=function(e){this.ipRangeList.splice(e,1)},fc([t.Input()],e.prototype,"data",null),e=fc([t.Component({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'})],e)}(),Gd=function(e){function n(t,n){return e.call(this,"c8ySchemaForm",t,n)||this}return mc(n,e),n.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Injector}]},fc([t.Input()],n.prototype,"schema",void 0),fc([t.Input()],n.prototype,"model",void 0),fc([t.Input("form")],n.prototype,"inputForm",void 0),fc([t.Input("options")],n.prototype,"inputOptions",void 0),n=fc([t.Directive({selector:"c8y-schema-form"})],n)}(rc.UpgradeComponent),Bd=function(){function e(){this.onSearch=new t.EventEmitter,this.filterChange$=new a.Subject,this.filterTerm="",this.CARRIAGE_RETURN_KEY=13,this.CARRIAGE_RETURN_CODE="Enter"}return e.prototype.ngOnInit=function(){var e=this;this.reset(),this.filterChange$.pipe(s.debounce((function(t){return t.code===e.CARRIAGE_RETURN_CODE||t.keyCode===e.CARRIAGE_RETURN_KEY?a.timer(10):a.timer(300)})),s.map((function(e){return e.target.value})),s.distinctUntilChanged()).subscribe((function(t){e.filterTerm=t,e.onSearch.emit(t)}))},e.prototype.reset=function(){this.filterTerm="",this.onSearch.emit("")},e.prototype.ngOnDestroy=function(){this.filterChange$.complete()},fc([t.Input()],e.prototype,"icon",void 0),fc([t.Output()],e.prototype,"onSearch",void 0),e=fc([t.Component({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'})],e)}(),zd=function(){function e(){}return e=fc([t.NgModule({imports:[Fu,tc.FormsModule],exports:[xd,kd,Td,Ad,tc.FormsModule,Md,Dd,Nd,qd,Ld,Rd,$d,Fd,Ud,Gd,Bd],declarations:[xd,kd,Td,Ad,Md,Dd,Nd,qd,Ld,Rd,$d,Fd,Ud,Gd,Bd]})],e)}(),Hd=function(){function e(e,n,a){this.loginService=e,this.users=n,this.alert=a,this.verify=!0,this.onSuccess=new t.EventEmitter,this.model={token:""},this.loading=!1,this.hasError=!1}return e.prototype.verifyCode=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return e.trys.push([0,3,,4]),this.loading=!0,this.hasError=!1,this.verify?[4,this.users.verifyTotpCode(this.model.token)]:[3,2];case 1:e.sent(),e.label=2;case 2:return this.onSuccess.emit(this.model.token),[3,4];case 3:return e.sent(),this.hasError=!0,this.alert.removeLastDanger(),this.loading=!1,[3,4];case 4:return[2]}}))}))},e.ctorParameters=function(){return[{type:yd},{type:l.UserService},{type:$c}]},fc([t.Input()],e.prototype,"verify",void 0),fc([t.Output()],e.prototype,"onSuccess",void 0),fc([t.Input()],e.prototype,"loading",void 0),fc([t.Input()],e.prototype,"hasError",void 0),e=fc([t.Component({selector:"c8y-totp-challenge",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',viewProviders:[{provide:tc.ControlContainer,useExisting:tc.NgForm}]})],e)}(),Vd=function(){function e(e,n,a){this.loginService=e,this.users=n,this.alert=a,this.onCancel=new t.EventEmitter,this.model={smsToken:""},this.isLoading=!1,this.resendTfa="0"}return e.prototype.verifyTFACode=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return this.isLoading=!0,this.useOAuthInternal()?[4,this.verifyCodeWithOauth()]:[3,2];case 1:return e.sent(),[3,4];case 2:return[4,this.verifyCodeWithBasicAuth()];case 3:e.sent(),e.label=4;case 4:return this.isLoading=!1,[2]}}))}))},e.prototype.resendTFASms=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,3,4]),this.isLoading=!0,[4,this.users.verifyTFACode(this.resendTfa)];case 1:return t.sent(),[3,4];case 2:return 403===(e=t.sent()).res.status?(this.loginService.cleanMessages(),this.loginService.addSuccessMessage("resend_sms")):this.alert.addServerFailure(e),[3,4];case 3:return this.isLoading=!1,[7];case 4:return[2]}}))}))},e.prototype.useOAuthInternal=function(){return this.loginService.isPasswordGrantLogin(this.credentials)},e.prototype.verifyCodeWithOauth=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),e=this.credentials,[4,this.loginService.switchLoginMode(gc({},e,{tfa:this.model.smsToken}))];case 1:return n.sent(),[4,this.loginService.verifyAppAccess()];case 2:return n.sent(),[4,this.loginService.authFulfilled()];case 3:return n.sent(),[3,5];case 4:return t=n.sent(),401===(t.res&&t.res.status)?this.alert.danger("Invalid code"):this.alert.addServerFailure(t),[3,5];case 5:return[2]}}))}))},e.prototype.verifyCodeWithBasicAuth=function(){return yc(this,void 0,void 0,(function(){var e,t,n;return vc(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,this.users.verifyTFACode(this.model.smsToken)];case 1:return e=a.sent().res,t=e.headers.get("tfatoken"),this.credentials.tfa=t,this.loginWithTFA(t),[3,3];case 2:return n=a.sent(),403===(n.res&&n.res.status)?this.alert.danger("Invalid code"):this.alert.addServerFailure(n),[3,3];case 3:return[2]}}))}))},e.prototype.loginWithTFA=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.loginService.login(this.loginService.useBasicAuth({tfa:e}),this.credentials)];case 1:return n.sent(),this.loginService.saveTFAToken(e,sessionStorage),this.loginService.rememberMe&&this.loginService.saveTFAToken(e,localStorage),[3,3];case 2:return t=n.sent(),this.alert.addServerFailure(t),[3,3];case 3:return[2]}}))}))},e.ctorParameters=function(){return[{type:yd},{type:l.UserService},{type:$c}]},fc([t.Input()],e.prototype,"credentials",void 0),fc([t.Output()],e.prototype,"onCancel",void 0),e=fc([t.Component({selector:"c8y-sms-challenge",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'})],e)}(),Kd=function(){function e(e,t){this.user=e,this.alert=t}return Object.defineProperty(e.prototype,"qrCodeImage",{get:function(){return this.totpSecret?this.totpSecret.secretQrUrl:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"secret",{get:function(){return this.totpSecret?this.totpSecret.rawSecret:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"qrData",{get:function(){var e=this.qrCodeImage.split("chl=")[1];return e?decodeURIComponent(e):(this.alert.danger("Failed to generate a QR code."),"")},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.user.generateTotpSecret()];case 1:return e=n.sent().data,this.totpSecret=e,[3,3];case 2:return t=n.sent(),this.alert.addServerFailure(t),[3,3];case 3:return[2]}}))}))},e.ctorParameters=function(){return[{type:l.UserService},{type:$c}]},e=fc([t.Component({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'})],e)}(),Wd=function(){function n(e,n,a){this.loginService=e,this.alert=n,this.userService=a,this.onCancel=new t.EventEmitter,this.onChangeView=new t.EventEmitter,this.requestInProgress=!1,this.sendTfa="0"}return n.prototype.sendTFASms=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.userService.verifyTFACode(this.sendTfa)];case 1:return t.sent(),[3,3];case 2:if(403!==(e=t.sent()).res.status)throw e;return this.loginService.cleanMessages(),this.loginService.addSuccessMessage("send_sms"),[3,3];case 3:return[2]}}))}))},n.prototype.save=function(){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,4,5]),this.requestInProgress=!0,[4,this.userService.savePhoneNumber(this.phoneNumber)];case 1:return n.sent(),[4,this.sendTFASms()];case 2:return n.sent(),this.onChangeView.emit({view:e.LoginViews.SmsChallenge,credentials:this.credentials}),[3,5];case 3:return t=n.sent(),this.alert.addServerFailure(t),[3,5];case 4:return this.requestInProgress=!1,[7];case 5:return[2]}}))}))},n.ctorParameters=function(){return[{type:yd},{type:$c},{type:l.UserService}]},fc([t.Input()],n.prototype,"credentials",void 0),fc([t.Output()],n.prototype,"onCancel",void 0),fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({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'})],n)}(),Yd=function(){function e(){}return e=fc([t.NgModule({declarations:[Hd,Id,Od,Cd,_d,vd,Vd,Kd,Wd],imports:[zd,ec.TooltipModule,Fu,pd,lc.QRCodeModule],exports:[Hd,Od,Cd,Id,_d,vd,Vd,Kd,Wd],entryComponents:[vd],providers:[Pd,jd]})],e)}(),Zd=function(){function e(e,n){this.users=e,this.alert=n,this.revokeEmitter=new t.EventEmitter}return e.prototype.revoke=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.users.totpRevokeSecret(this.user)];case 1:return t.sent(),this.alert.success("User TOTP secret revoked."),this.revokeEmitter.next(),[3,3];case 2:return e=t.sent(),this.alert.addServerFailure(e),[3,3];case 3:return[2]}}))}))},e.ctorParameters=function(){return[{type:l.UserService},{type:$c}]},fc([t.Input()],e.prototype,"user",void 0),fc([t.Output("revoke")],e.prototype,"revokeEmitter",void 0),e=fc([t.Component({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'})],e)}(),Jd=function(){function e(){}return e=fc([t.NgModule({declarations:[Sd,wd,fd,gd,bd,Zd],imports:[zd,Fu,pd,Qi.BsDropdownModule,Yd,Ju,n.RouterModule,ec.TooltipModule.forRoot(),sc.PopoverModule],exports:[Sd,gd,wd,fd,bd,Zd],entryComponents:[fd,bd,Zd]})],e)}(),Xd=function(){function e(e){this.options=e,this.name="",this.model={appIcon:"",showIcon:!0,iconClass:["c8y-icon"],appNameAbbr:"",iconStyle:{}},this.c8yAppIconsList={analyticsbuilder:"analytics-builder","analytics-builder":"analytics-builder",cockpit:"cockpit",devicemanagement:"device-management",administration:"administration",apamaepl:"apama-epl"},this.white=!1,this.defaultIconStyle={"background-repeat":"no-repeat","background-size":"contain",height:"36px",width:"36px"}}return e.prototype.ngOnChanges=function(e){this.model.appIcon=this.iconFromAppDefinition()||this.findStaticIcon();var t=this.iconUrlFromAppDefinition();t&&(this.model.iconStyle=o.assign(this.defaultIconStyle,{"background-image":t})),this.model.showIcon=!!this.model.appIcon||!o.isEmpty(this.model.iconStyle),this.model.iconClass=["c8y-icon",this.model.appIcon,this.white?"c8y-icon-white":"c8y-icon-duocolor"].filter((function(e){return!!e})),this.model.appNameAbbr=this.name.substr(0,2)},e.prototype.findStaticIcon=function(){var e=this.contextPath||this.name,t=o.find(o.keys(this.c8yAppIconsList),(function(t){return e.indexOf(t)>-1})),n=this.c8yAppIconsList[t];return n?"c8y-icon-"+n:void 0},e.prototype.iconFromAppDefinition=function(){var e=this.app||this.options,t=["icon","class"];return o.get(e,t)||o.get(e,bc(["manifest"],t))},e.prototype.iconUrlFromAppDefinition=function(){var e=this.app||this.options,t=["icon","url"];return o.get(e,t)||o.get(e,bc(["manifest"],t))},e.ctorParameters=function(){return[{type:Gc}]},fc([t.Input()],e.prototype,"contextPath",void 0),fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"app",void 0),e=fc([t.Component({selector:"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',host:{class:"c8y-app-icon"}})],e)}(),Qd=function(){function e(e,t){var n=this;this.ui=e,this.applications=t;var o=this.ui,r=o.currentUser,l=o.currentTenant;a.combineLatest(r,l).pipe(s.first()).subscribe((function(e){var t=jc(e,2),a=t[0],s=t[1];n.tenant=s,n.listAppsForUser(a)}))}return Object.defineProperty(e.prototype,"hideCloudApps",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype.isActive=function(e){return e.contextPath===this.ui.state.app.contextPath},e.prototype.getHref=function(e){return this.applications.getHref(e)},e.prototype.listAppsForUser=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return e?[4,this.applications.listByUser(e,{pageSize:1e3})]:[3,2];case 1:t=n.sent().data,this.apps=this.orderApps(this.filterApps(t)),n.label=2;case 2:return[2]}}))}))},e.prototype.filterApps=function(e){return e=this.filterVisible(e),e=this.filterCloud(e),e=this.filterDuplicates(e)},e.prototype.filterVisible=function(e){var t=["HOSTED","EXTERNAL"];return e.filter((function(e){return o.includes(t,e.type)&&!e.noAppSwitcher&&!o.get(e,"manifest.noAppSwitcher")}))},e.prototype.filterCloud=function(e){var t=this.hideCloudApps,n=function(e){return!!e.cloud};return t||(this.oneCloudApps=this.orderApps(e.filter(n))),e.filter((function(e){return!n(e)}))},e.prototype.filterDuplicates=function(e){var t=this;return e.filter((function(n){return!e.some((function(e){return n!==e&&n.contextPath&&n.contextPath===e.contextPath&&n.owner.tenant.id!==t.tenant.name}))}))},e.prototype.orderApps=function(e){return o.orderBy(e,(function(e){return e.name.toLowerCase()}))},e.ctorParameters=function(){return[{type:Bc},{type:l.ApplicationService}]},e=fc([t.Component({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'})],e)}(),ep=[{icon:"c8y-c8y-data",label:"Concepts guide`KEEP_ORIGINAL`",url:"/concepts/introduction",type:"doc"},{icon:"c8y-user",label:"User guide`KEEP_ORIGINAL`",url:"/users-guide/getting-started",type:"doc"},{icon:"c8y-device-management",label:"Device guides`KEEP_ORIGINAL`",url:"/devices/overview",type:"doc"},{icon:"c8y-book",label:"Cumulocity IoT Edge`KEEP_ORIGINAL`",url:"/edge/overview",type:"doc"},{icon:"c8y-tools",label:"Microservice SDK guide`KEEP_ORIGINAL`",url:"/microservice-sdk/introduction",type:"doc"},{icon:"c8y-tools",label:"Device SDK guide`KEEP_ORIGINAL`",url:"/device-sdk/introduction",type:"doc"},{icon:"c8y-smart-rest",label:"Web SDK guide`KEEP_ORIGINAL`",url:"/web/introduction",type:"doc"},{icon:"c8y-data-explorer",label:"Streaming analytics guide`KEEP_ORIGINAL`",url:"/apama/introduction",type:"doc"},{icon:"c8y-bookmark",label:"Reference guide`KEEP_ORIGINAL`",url:"/reference/rest-implementation",type:"doc"},{icon:"gavel",label:"Legal notices",url:"https://documentation.softwareag.com/legal/",type:"doc"}],tp=new t.InjectionToken("Hook docs"),np=function(){function e(e,t,n,a){void 0===n&&(n=[]),this.options=e,this.app=t,n||(n=[]),n.push(this);var o=this.app.map((function(e){return e.supportUrl}));this.items$=wc(a,o,n).pipe(s.startWith([]),s.shareReplay(1))}return e.prototype.getBaseUrl=function(){return this.options.get("docsBaseUrl","https://www.cumulocity.com/guides")},Object.defineProperty(e.prototype,"templateStr",{get:function(){return this.options.get("guideHrefTemplate","${docsBaseUrl}${partialUrl}")},enumerable:!0,configurable:!0}),e.prototype.getUserGuideLink=function(e){return/^https?:/.test(e)?e:null===this.getBaseUrl?null:this.getLink(this.templateStr,e)},e.prototype.list=function(){return this.items$.pipe(s.filter((function(e){return!!e.length})),s.first()).toPromise()},e.prototype.refresh=function(){},e.prototype.get=function(){var e=this,t=this.options.get("docs",{}),n=t.links,a=t.noDefault,s=t.excludeDefault,r=void 0===s?[]:s,l=this.app.state.supportUrl,i=a?[]:ep.map((function(t){return gc({},t,{url:e.getUserGuideLink(t.url)})})).filter((function(e){var t=e.url;return!r.some((function(e){return new RegExp(e).test(t)}))}));return n&&(n.map((function(e){if(o.isUndefined(e.type))return e.type="doc",e})),i=i.concat(n)),l&&i.push({icon:"comments",label:"Forum support",url:l,type:"doc"}),i},e.prototype.getLink=function(e,t){if(e)return e.replace(/\${docsBaseUrl}/,this.getBaseUrl()).replace(/\${partialUrl}/,this.prefixWithSlash(t))},e.prototype.prefixWithSlash=function(e){return void 0===e&&(e=""),""+(!(e&&/^\//.test(e))?"/":"")+e},e.ctorParameters=function(){return[{type:Gc},{type:Bc},{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[tp]}]},{type:n.Router}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(Gc),t.ɵɵinject(Bc),t.ɵɵinject(tp,8),t.ɵɵinject(n.Router))},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"}),hc(2,t.Optional()),hc(2,t.Inject(tp))],e)}(),ap=function(){function e(e,t,n,a,s,o,r){this.headerService=e,this.actionService=t,this.breadcrumbService=n,this.searchService=a,this.appState=s,this.userMenuService=o,this.docs=r,this.canToggle$=this.headerService.hasItemsInNavigator$,this.appState$=this.appState.state$,this.drawerOpen=!1,this.headerOpen=!1}return e.prototype.ngAfterViewInit=function(){this.headerService.verifyIfNavOpen()},e.prototype.toggle=function(){this.headerOpen=!this.headerOpen},e.ctorParameters=function(){return[{type:Wc},{type:Tc},{type:Qc},{type:sd},{type:Bc},{type:md},{type:np}]},e=fc([t.Component({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 *ngIf="headerService.shouldShowBreadcrumbs()"\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'})],e)}(),sp=function(){function e(e,t,n){var a=this;this.headerService=e,this.element=t,this.zone=n,this.title=void 0;var o=this.headerService.map((function(e){return e.title}));o.subscribe((function(e){return a.title=e})),this.zone.runOutsideAngular((function(){o.pipe(s.debounceTime(100),s.map((function(){return a.element.nativeElement.querySelector("h1")})),s.filter((function(e){return null!==e})),s.map((function(e){return e.innerText})),s.filter(Boolean)).subscribe((function(t){return e.changePageTitle(t)}))}))}return e.ctorParameters=function(){return[{type:Wc},{type:t.ElementRef},{type:t.NgZone}]},e=fc([t.Component({selector:"c8y-title-outlet",template:'<div class="c8y-ui-title">\n <div class="title" *c8yOutlet="title"></div>\n</div>\n'})],e)}(),op=function(){function e(e){this.headerService=e}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.headerService.changeTitle(e.template)}))},e.prototype.ngOnDestroy=function(){this.headerService.state.title===this.template&&(clearTimeout(this.viewInitTimeout),this.headerService.changeTitle())},e.ctorParameters=function(){return[{type:Wc}]},fc([t.ViewChild("template",{static:!0})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-title",template:'<ng-template #template>\n <h1 class="text-truncate">\n <ng-content></ng-content>\n </h1>\n</ng-template>\n\n'})],e)}(),rp=function(){function e(e){this.service=e,this.priority=0,this.nodeData=new zc}return e.prototype.ngOnInit=function(){var e=this;this.ngOnChanges(),setTimeout((function(){return e.service.add(e.nodeData)}))},e.prototype.ngOnChanges=function(){this.nodeData.icon=this.icon,this.nodeData.label=this.label,this.nodeData.path=this.path,this.nodeData.priority=this.priority,this.nodeData.iconTemplate=this.icon?void 0:this.template,this.nodeData.icon=this.icon},e.prototype.ngOnDestroy=function(){this.service.remove(this.nodeData)},e.ctorParameters=function(){return[{type:Kc}]},fc([t.ViewChild("iconTpl",{static:!0})],e.prototype,"template",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"path",void 0),fc([t.Input()],e.prototype,"priority",void 0),e=fc([t.Component({selector:"c8y-navigator-item",template:"<ng-template #iconTpl><ng-content></ng-content></ng-template>"})],e)}(),lp=function(){function e(){}return Object.defineProperty(e.prototype,"icon",{get:function(){return this.node.icon||"cog"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconClass",{get:function(){return"fa-"+this.icon},enumerable:!0,configurable:!0}),fc([t.Input()],e.prototype,"node",void 0),e=fc([t.Component({selector:"c8y-navigator-icon",template:'<i class="icon" [c8yIcon]="icon"></i>'})],e)}(),ip=function(){function e(e,n){this.componentFactoryResolver=e,this.navigator=n,this.nodeClick=new t.EventEmitter}var a;return a=e,e.prototype.ngAfterViewInit=function(){var e=this;this.childrenNodes.forEach((function(t){return t.parentNode=e})),this.viewInitTimeout=setTimeout((function(){e.updateIcon(),e.openOnFirstUrl(),e.expandParentIfActive(),e.node.confirm=e.confirm}))},e.prototype.openOnFirstUrl=function(){this.navigator.openOnFirstUrl(this.node)&&!this.node.open&&this.expandCollapse(!0)},Object.defineProperty(e.prototype,"expandTitle",{get:function(){return this.node.open?"Collapse":"Expand"},enumerable:!0,configurable:!0}),e.prototype.click=function(e,t){var n,a;void 0===e&&(e="link"),"expander"===e?(t&&(t.stopPropagation(),t.preventDefault()),a=!this.node.open):a=!(!this.routerLinkActive||!this.routerLinkActive.isActive)||!this.node.open,a!==this.node.open&&this.expandCollapse(a,!1,((n={})[e]=!0,n.$event=t,n)),this.nodeClick.emit(e)},e.prototype.expandCollapse=function(e,t,n){void 0===n&&(n={}),this.node.open=e,t&&this.childrenNodes.forEach((function(n){return n.expandCollapse(e,t)})),n.open=e,this.node.click(n)},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.node.destroy()},e.prototype.expandParentIfActive=function(){this.routerLinkActive&&this.routerLinkActive.isActive&&this.parentNode&&this.parentNode.expandCollapse(!0)},e.prototype.updateIcon=function(){this.node.iconTemplate?this.updateIconTemplate():this.updateIconComponent()},e.prototype.updateIconComponent=function(){var e=lp;this.node&&this.node.iconComponent&&(e=this.node.iconComponent),this.iconSlot.clear();var t=this.componentFactoryResolver.resolveComponentFactory(e);this.iconSlot.createComponent(t).instance.node=this.node},e.prototype.updateIconTemplate=function(){this.iconSlot.clear(),this.iconSlot.createEmbeddedView(this.node.iconTemplate)},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:Kc}]},fc([t.ViewChild("icon",{read:t.ViewContainerRef,static:!1})],e.prototype,"iconSlot",void 0),fc([t.Input()],e.prototype,"node",void 0),fc([t.Input()],e.prototype,"isRoot",void 0),fc([t.ViewChild(n.RouterLinkActive,{static:!1})],e.prototype,"routerLinkActive",void 0),fc([t.ViewChildren(a)],e.prototype,"childrenNodes",void 0),fc([t.Output()],e.prototype,"nodeClick",void 0),fc([t.ViewChild(dd,{static:!1})],e.prototype,"confirm",void 0),e=a=fc([t.Component({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 [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 \x3c!-- loader --\x3e\n <i\n class="fa-spin loadingIndicator"\n [c8yIcon]="\'circle-o-notch\'"\n *ngIf="node.loading && !isRoot"\n >\n </i>\n\n \x3c!-- icon --\x3e\n <div (click)="click(\'icon\', $event)">\n <ng-container #icon></ng-container>\n </div>\n\n \x3c!--title --\x3e\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'})],e)}(),cp=function(){function e(e){this.headerService=e,this.open=!0}return e.prototype.collapseNavigator=function(e){"link"!==e||this.headerService.largeWidth||this.headerService.closeNavigator()},e.prototype.trackByPathOrLabel=function(e,t){return t.path?t.path:t.label},e.ctorParameters=function(){return[{type:Wc}]},fc([t.Input()],e.prototype,"nodes",void 0),fc([t.Input()],e.prototype,"open",void 0),e=fc([t.Component({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'})],e)}(),up=function(){function e(){}return e=fc([t.NgModule({declarations:[cp,ip,rp,lp],imports:[n.RouterModule,Xi.CollapseModule.forRoot(),Fu,pd],exports:[cp,rp],entryComponents:[lp]})],e)}(),dp=function(){function e(){this.quickLinks=[],this.helpAndSupport=[]}return Object.defineProperty(e.prototype,"_quickLinks",{set:function(e){e&&(this.quickLinks=e.filter((function(e){return"quicklink"===e.type})))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_helpAndSupport",{set:function(e){e&&(this.helpAndSupport=e.filter((function(e){return"doc"===e.type})))},enumerable:!0,configurable:!0}),fc([t.Input("quickLinks")],e.prototype,"_quickLinks",null),fc([t.Input("helpAndSupport")],e.prototype,"_helpAndSupport",null),fc([t.Input()],e.prototype,"app",void 0),e=fc([t.Component({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'})],e)}(),pp=function(){function e(){}return e=fc([t.NgModule({declarations:[op,ap,sp,Xd,Qd,dp],imports:[Qi.BsDropdownModule,Jd,ld,Fu,Vu,td,up],exports:[ap,op,sp,Xd,Qd,dp]})],e)}(),mp=function(){function n(e,n,a,s,o){this.loginService=e,this.users=n,this.passwordStrengthCheckerService=a,this.options=s,this.alert=o,this.onChangeView=new t.EventEmitter,this.passwordPattern=/^[a-zA-Z0-9`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]{8,32}$/,this.isLoading=!1,this.model={tenantId:"",email:"",newPassword:"",newPasswordConfirm:""},this.enforcePasswordStrength=!1,this.emailReadOnly=!1,this.TOKEN_PARAM="token",this.EMAIL_PARAM="email"}return n.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){return this.model.tenantId=this.loginService.getTenant(),this.model.email=this.options.get(this.EMAIL_PARAM,""),this.emailReadOnly=!!this.model.email,this.enforcePasswordStrength=this.loginService.getEnforcePasswordStrength(),[2]}))}))},n.prototype.changePassword=function(){return yc(this,void 0,void 0,(function(){var t,n,a;return vc(this,(function(s){switch(s.label){case 0:t=this.passwordStrengthCheckerService.getStrengthColor(this.model.newPassword),n={token:this.credentials.token,email:this.model.email,newPassword:this.model.newPassword,passwordStrength:t.passwordStrength},s.label=1;case 1:return s.trys.push([1,3,4,5]),this.isLoading=!0,[4,this.users.resetPassword(n,this.model.tenantId)];case 2:return 200===s.sent().res.status&&(this.loginService.addSuccessMessage("password_changed"),this.credentials.token=void 0,this.options.set(this.TOKEN_PARAM,void 0),this.onChangeView.emit({view:e.LoginViews.Credentials})),[3,5];case 3:return a=s.sent(),this.alert.addServerFailure(a),[3,5];case 4:return this.loginService.reset(),this.isLoading=!1,[7];case 5:return[2]}}))}))},n.ctorParameters=function(){return[{type:yd},{type:l.UserService},{type:jd},{type:Gc},{type:$c}]},fc([t.Input()],n.prototype,"credentials",void 0),fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({selector:"c8y-change-password",template:'<form\n role="form"\n class="loginForm"\n (ngSubmit)="changePassword()"\n #changePasswordForm="ngForm"\n novalidate\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 <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 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\n <c8y-password-strength\n [password]="model.newPassword"\n [hidden]="!model.newPassword"\n ></c8y-password-strength>\n <c8y-password-check-list\n [password]="model.newPassword"\n [hidden]="!model.newPassword || !enforcePasswordStrength"\n ></c8y-password-check-list>\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'})],n)}(),gp=function(){function n(n,a,s){this.loginService=n,this.alert=a,this.ui=s,this.onChangeView=new t.EventEmitter,this.LOGIN_VIEWS=e.LoginViews,this.model={},this.isLoading=!1,this.showLoginForm=!1,this.showBasicAuth=!1,this.oauthOptions={},this.PASSWORD_RESET_HEADER_NAME="passwordresettoken",this.NO_PHONE_HEADER_NAME="NoPhoneHeader"}return n.prototype.ngOnInit=function(){var e=this.loginService,t=e.oauthOptions,n=e.loginMode;this.model.tenant=this.loginService.getTenant(),this.showLoginForm=void 0===n.visibleOnLoginPage||n.visibleOnLoginPage,this.showBasicAuth="BASIC"===n.type,this.oauthOptions=t},n.prototype.redirectToOauth=function(){this.loginService.redirectToOauth()},n.prototype.login=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,3,4]),this.isLoading=!0,e=this.loginService.useBasicAuth(this.model),[4,this.loginService.login(e,this.model)];case 1:return n.sent(),[3,4];case 2:return(t=n.sent()).res&&t.res.headers&&t.res.headers.get(this.PASSWORD_RESET_HEADER_NAME)?this.handlePasswordReset(t.res):t.res&&401===t.res.status&&/pin/i.test(t.data.message)?this.handleSmsChallenge(t.data.message):t.res&&401===t.res.status&&/TOTP/i.test(t.data.message)?this.handleTotpChallenge(t.data.message):t.res&&t.res.headers&&t.res.headers.get(this.NO_PHONE_HEADER_NAME)&&!this.model.user.includes("$")?this.handleNoPhoneNumberProvided():(this.loginService.reset(),this.alert.addServerFailure(t)),[3,4];case 3:return this.isLoading=!1,[7];case 4:return[2]}}))}))},n.prototype.handlePasswordReset=function(t){this.alert.removeLastDanger(),this.model.token=t.headers.get(this.PASSWORD_RESET_HEADER_NAME),this.onChangeView.emit({view:e.LoginViews.ChangePassword,credentials:this.model})},n.prototype.handleTotpChallenge=function(t){/TOTP setup required/i.test(t)?this.onChangeView.emit({view:e.LoginViews.TotpSetup,credentials:this.model}):this.onChangeView.emit({view:e.LoginViews.TotpChallenge,credentials:this.model})},n.prototype.handleSmsChallenge=function(t){/pin has already been generated/i.test(t)&&this.alert.warning("The verification code was already sent. For a new verification code, please click on the link above."),this.alert.removeLastDanger(),this.onChangeView.emit({view:e.LoginViews.SmsChallenge,credentials:this.model})},n.prototype.handleNoPhoneNumberProvided=function(){this.onChangeView.emit({view:e.LoginViews.ProvidePhoneNumber,credentials:this.model}),this.alert.warning("Two-factor authentication has been turned on for this account. Please provide your phone number above to save it in your user profile and start receiving verification codes via SMS.")},n.ctorParameters=function(){return[{type:yd},{type:$c},{type:Bc}]},fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({selector:"c8y-credentials",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'})],n)}(),fp=function(){function n(t,n,a){this.loginService=t,this.options=n,this.alert=a,this.currentView=e.LoginViews.None,this.LOGIN_VIEWS=e.LoginViews,this.disabled=!1,this.credentials={},this.displayAlerts=!1,this.TOKEN_PARAM="token"}return n.prototype.ngOnInit=function(){var e=this.getResetPasswordToken();this.loginService.isFirstLogin&&(e?(this.credentials.token=e,this.reset()):this.loginAutomatically()),this.loginService.isFirstLogin=!1},n.prototype.handleLoginTemplate=function(e){this.currentView=e.view,this.credentials=e.credentials||{}},n.prototype.onkeyup=function(e){"Enter"!==e.key&&this.loginService.cleanMessages()},n.prototype.reset=function(){this.loginService.reset(),this.setView(),this.loginService.cleanMessages()},n.prototype.loginAutomatically=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.loginService.login()];case 1:return n.sent(),[3,3];case 2:return e=n.sent(),"OAUTH2"===(t=this.loginService.loginMode.type)?this.loginService.redirectToOauth():(this.reset(),"OAUTH2_INTERNAL"===t&&"https:"!==window.location.protocol?this.alert.danger("Current login mode only supports HTTPS."):e.res&&403===e.res.status&&this.alert.addServerFailure(e)),[3,3];case 3:return[2]}}))}))},n.prototype.setView=function(){this.credentials&&this.credentials.token?this.handleLoginTemplate({view:e.LoginViews.ChangePassword,credentials:this.credentials}):this.handleLoginTemplate({view:e.LoginViews.Credentials})},n.prototype.getResetPasswordToken=function(){var e=this.options.get(this.TOKEN_PARAM);return e&&this.options.set(this.TOKEN_PARAM,void 0),e},n.ctorParameters=function(){return[{type:yd},{type:Gc},{type:$c}]},fc([t.Input()],n.prototype,"name",void 0),fc([t.HostListener("keyup",["$event"])],n.prototype,"onkeyup",null),n=fc([t.Component({selector:"c8y-login",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 <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'})],n)}(),hp=function(){function n(n,a){this.users=n,this.loginService=a,this.onChangeView=new t.EventEmitter,this.LOGIN_VIEWS=e.LoginViews,this.isLoading=!1,this.model={email:"",tenantId:""}}return n.prototype.ngOnInit=function(){this.model.tenantId=this.loginService.getTenant()},n.prototype.resetPassword=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return e.trys.push([0,,2,3]),this.isLoading=!0,[4,this.users.sendPasswordResetMail(this.model.email,this.model.tenantId)];case 1:return 200===e.sent().res.status&&this.loginService.addSuccessMessage("password_reset_requested"),[3,3];case 2:return this.loginService.reset(),this.isLoading=!1,[7];case 3:return[2]}}))}))},n.ctorParameters=function(){return[{type:l.UserService},{type:yd}]},fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({selector:"c8y-recover-password",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'})],n)}(),yp=function(){function n(n,a,s){this.loginService=n,this.userService=a,this.alert=s,this.onCancel=new t.EventEmitter,this.LOGIN_VIEWS=e.LoginViews,this.loading=!1,this.hasError=!1}return Object.defineProperty(n.prototype,"isSetup",{get:function(){return this.view===e.LoginViews.TotpSetup},enumerable:!0,configurable:!0}),n.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return this.view!==this.LOGIN_VIEWS.TotpSetup?[3,2]:[4,this.loginService.switchLoginMode(this.credentials)];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},n.prototype.onTotpSuccess=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,6,7,8]),this.loading=!0,this.hasError=!1,this.credentials.tfa=e,this.isSetup?[4,this.userService.activateTotp()]:[3,2];case 1:n.sent(),n.label=2;case 2:return[4,this.loginService.switchLoginMode(this.credentials)];case 3:return n.sent(),[4,this.loginService.verifyAppAccess()];case 4:return n.sent(),[4,this.loginService.authFulfilled()];case 5:return n.sent(),[3,8];case 6:return t=n.sent(),this.alert.removeLastDanger(),t.data&&"Access is denied"===t.data.message?this.alert.addServerFailure(t):this.hasError=!0,[3,8];case 7:return this.loading=!1,[7];case 8:return[2]}}))}))},n.ctorParameters=function(){return[{type:yd},{type:l.UserService},{type:$c}]},fc([t.Input()],n.prototype,"credentials",void 0),fc([t.Input()],n.prototype,"view",void 0),fc([t.Output()],n.prototype,"onCancel",void 0),n=fc([t.Component({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'})],n)}(),vp=function(){function e(){}var n;return n=e,e.forRoot=function(){return{ngModule:n,providers:n.providers()}},e.providers=function(){return[yd]},e=n=fc([t.NgModule({declarations:[fp,hp,mp,gp,yp],imports:[tc.FormsModule,ec.TooltipModule,Fu,Yd,Ju,zd],exports:[fp]})],e)}(),jp=function(){function e(e){this.tabs=e,this.label=""}return e.prototype.ngAfterContentInit=function(){var e=this;setTimeout((function(){return e.tabs.add(e)}))},e.prototype.ngOnDestroy=function(){this.tabs.remove(this)},e.ctorParameters=function(){return[{type:Zc}]},fc([t.ViewChild("tpl",{static:!1})],e.prototype,"template",void 0),fc([t.Input()],e.prototype,"path",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.Input()],e.prototype,"orientation",void 0),e=fc([t.Component({selector:"c8y-tab",template:"<ng-template #tpl><ng-content></ng-content></ng-template>"})],e)}(),bp=function(){function e(e,t,n){this.router=e,this.renderer=t,this.el=n,this.tabs=[],this.orientation="vertical",this.navigatorOpen=!1,this.showLeft=!1,this.showRight=!1}return Object.defineProperty(e.prototype,"isNavigatorOpen",{get:function(){return this.navigatorOpen},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTabs",{get:function(){return this.tabs&&this.tabs.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHorizontal",{get:function(){return"horizontal"===this.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVertical",{get:function(){return"horizontal"!==this.orientation},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.scrollSubscription&&this.scrollSubscription.unsubscribe()},e.prototype.ngAfterContentInit=function(){"horizontal"===this.orientation&&this.scrollSubscribe()},e.prototype.isActive=function(e){return!(!e||!e.path)&&this.router.isActive(e.path,!1)},e.prototype.navigateTo=function(e){this.router.navigate([e])},e.prototype.scroll=function(e){void 0===e&&(e="right");var t=this.getDimensions(),n=t.widthScroll,a=t.width,s=t.scrollLeft+a*("left"===e?-1:1);s<0&&(s=0),s>n-a&&(s=n-a),this.container.nativeElement.scrollLeft=s},e.prototype.scrollSubscribe=function(){var e,t=this;this.scrollSubscription=a.merge(a.fromEvent(this.container.nativeElement,"scroll"),a.fromEventPattern((function(n){e=t.renderer.listen("window","resize",n)}),(function(){return e()}))).pipe(s.debounceTime(250)).subscribe((function(){return t.updateScroll()}))},e.prototype.updateScroll=function(){var e=this.getDimensions(),t=e.widthScroll,n=e.width,a=e.scrollLeft;this.showLeft=!!a,this.showRight=t>n+a},e.prototype.getDimensions=function(){var e=this.tabsContainer.nativeElement,t=this.container.nativeElement;return{widthScroll:e.scrollWidth,width:t.clientWidth,scrollLeft:t.scrollLeft}},e.ctorParameters=function(){return[{type:n.Router},{type:t.Renderer2},{type:t.ElementRef}]},fc([t.Input()],e.prototype,"tabs",void 0),fc([t.Input()],e.prototype,"orientation",void 0),fc([t.Input()],e.prototype,"navigatorOpen",void 0),fc([t.HostBinding("class.navigator-open")],e.prototype,"isNavigatorOpen",null),fc([t.HostBinding("class.page-tabs")],e.prototype,"hasTabs",null),fc([t.HostBinding("class.page-tabs-horizontal")],e.prototype,"isHorizontal",null),fc([t.HostBinding("class.page-tabs-vertical")],e.prototype,"isVertical",null),fc([t.ViewChild("container",{read:t.ElementRef,static:!0})],e.prototype,"container",void 0),fc([t.ViewChild("left",{read:t.ElementRef,static:!1})],e.prototype,"leftBtn",void 0),fc([t.ViewChild("right",{read:t.ElementRef,static:!1})],e.prototype,"rightBtn",void 0),fc([t.ViewChild("tabsContainer",{read:t.ElementRef,static:!1})],e.prototype,"tabsContainer",void 0),e=fc([t.Component({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'})],e)}(),wp=function(){function e(){}return e=fc([t.NgModule({declarations:[bp,jp],imports:[Fu,n.RouterModule.forChild([])],exports:[bp,jp]})],e)}(),Sp=function(){function e(e){this.options=e,this.storageKey="acceptCookieNotice",this.acceptValue="1"}return e.prototype.ngOnInit=function(){this.settings=this.options.get("cookieBanner"),this.settings&&this.settings.cookieBannerText&&!localStorage.getItem(this.storageKey)&&(this.showBanner=!0)},e.prototype.acceptCookies=function(){localStorage.setItem(this.storageKey,this.acceptValue),this.showBanner=!1},e.ctorParameters=function(){return[{type:Gc}]},e=fc([t.Component({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-3" *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-2">\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>\n'})],e)}(),Cp=function(){function e(){}return e=fc([t.NgModule({declarations:[Jc,Sp],imports:[Fu,pp,vp,n.RouterModule,wp,Bu,Ju,up,ec.TooltipModule],exports:[Jc],entryComponents:[Jc]})],e)}(),Ip=function(){},Pp=function(){function e(e){this.template=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},e=fc([t.Directive({selector:"[c8yCellRendererDef]"})],e)}(),Op=function(){function e(e){this.template=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},e=fc([t.Directive({selector:"[c8yHeaderCellRendererDef]"})],e)}(),_p=function(){},xp=function(){function e(e){this.template=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},e=fc([t.Directive({selector:"[c8yFilteringFormRendererDef]"})],e)}(),Ep=function(){function e(){}return fc([t.Input()],e.prototype,"name",void 0),fc([t.ContentChild(Pp,{static:!1})],e.prototype,"cellRendererDef",void 0),fc([t.ContentChild(Op,{static:!1})],e.prototype,"headerCellRendererDef",void 0),fc([t.ContentChild(xp,{static:!1})],e.prototype,"filteringFormRendererDef",void 0),e=fc([t.Directive({selector:"c8y-column"})],e)}(),kp={icon:1,numeric:1,"text-short":1.67,"text-long":3.33};(hd=e.FilteringActionType||(e.FilteringActionType={})).ApplyFilter="APPLY_FILTER",hd.ResetFilter="RESET_FILTER";var Tp=function(){function e(){this.loadingSubject=new a.BehaviorSubject(!1),this.dataSourceSubject=new a.BehaviorSubject([]),this.dataStatsSubject=new a.BehaviorSubject({size:0,filteredSize:0,currentPage:0,currentPageSize:0,firstPageSize:0}),this.dataSelectionSubject=new a.BehaviorSubject({filteredDataIds:[]}),this.loading$=this.loadingSubject.asObservable(),this.data$=this.dataSourceSubject.asObservable(),this.stats$=this.dataStatsSubject.asObservable(),this.selection$=this.dataSelectionSubject.asObservable()}return e.prototype.connect=function(e){return this.data$},e.prototype.disconnect=function(e){this.loadingSubject.complete(),this.dataSourceSubject.complete(),this.dataStatsSubject.complete(),this.dataSelectionSubject.complete()},e.prototype.loadData=function(e){var t=this,n=e.rows,r=e.columns,l=e.pagination,i=e.searchText,c=e.serverSideDataCallback,u=e.selectable,d=e.selectionPrimaryKey,p=this.toObservable(n).pipe(s.map((function(e){var n=0,a=[],s=o.flow((function(e){return t.doClientSideSearch({data:e,columns:r,searchText:i})}),(function(e){return t.doClientSideFiltering({data:e,columns:r})}),(function(e){return t.doClientSideSorting({data:e,columns:r})}),(function(e){return n=e.length,a=u?e.map((function(e){return e[d]})):a,e}),(function(e){return t.doClientSidePagination({data:e,pagination:l})}))(e);return t.dataStatsSubject.next({size:e.length,filteredSize:n,currentPage:l.currentPage,currentPageSize:s.length,firstPageSize:l.pageSize}),t.dataSelectionSubject.next({filteredDataIds:a}),s}))),m=a.defer((function(){return t.toObservable(c({columns:r,searchText:i,pagination:l,selection:{enabled:u,primaryKey:d}}))})).pipe(s.map((function(e){var n=e.data,a=e.paging,s=e.size,o=e.filteredSize,r=e.filteredDataIds;return t.dataStatsSubject.next({size:s,filteredSize:o,currentPage:a.currentPage,currentPageSize:n.length,firstPageSize:a.pageSize}),t.dataSelectionSubject.next({filteredDataIds:r||[]}),n}))),g="function"==typeof c?m:p;a.of([]).pipe(s.tap((function(){return t.loadingSubject.next(!0)})),s.switchMap((function(){return g})),s.catchError((function(e){return t.dataStatsSubject.next({size:0,filteredSize:0,currentPage:0,currentPageSize:0,firstPageSize:0}),t.dataSelectionSubject.next({filteredDataIds:[]}),a.of([])})),s.finalize((function(){return t.loadingSubject.next(!1)}))).subscribe((function(e){t.dataSourceSubject.next(e)}))},e.prototype.resolveValue=function(e,t){return o.get(e,t)},e.prototype.resolveFunction=function(e){return"function"==typeof e?e():e},e.prototype.normalizeNil=function(e){return o.isNil(e)?"":e},e.prototype.doClientSideFiltering=function(e){var t=this,n=e.data;return e.columns.reduce((function(e,n){var a=n.filterPredicate;return"string"==typeof a?t.doClientSideSearch({data:e,columns:[n],searchText:a}):"function"==typeof a?e.filter((function(e){return a(e,n.path)})):e}),n)},e.prototype.doClientSideSearch=function(e){var t=this,n=e.data,a=e.columns,s=e.searchText,r=a.map((function(e){return e.path})).filter((function(e){return!o.isNil(e)})),l=this.createRegexSearch(s);return n.filter((function(e){var n=o.flow((function(e){return o.pick(e,r)}),(function(e){return o.mapValues(e,t.resolveFunction)}),(function(e){return o.omitBy(e,o.isNil)}))(e);return Object.values(n).some((function(e){return l.test(e.toString())}))}))},e.prototype.doClientSideSorting=function(e){var t=e.data,n=e.columns.filter((function(e){return!!e.sortOrder})),a={paths:n.map((function(e){return e.path})),orders:n.map((function(e){return e.sortOrder}))};return o.orderBy(t,a.paths,a.orders)},e.prototype.doClientSidePagination=function(e){var t=e.data,n=e.pagination;return n?o.get(o.chunk(t,n.pageSize),n.currentPage-1,[]):t},e.prototype.createRegexSearch=function(e){return RegExp(function(e){void 0===e&&(e="");return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(e),"i")},e.prototype.toObservable=function(e){return a.isObservable(e)?e:e instanceof Promise?a.from(e):a.of(e)},e}();var Ap,Dp,Np=function(){function n(e,n,s){this.sanitizer=e,this.hostRef=n,this.cd=s,this.title="Items",this.loadingItemsLabel="Loading items…",this.noMatchingItemsLabel="No matching items.",this.dataSource=new Tp,this.filteringLabelsParams={filteredItemsCount:0,allItemsCount:0},this.paginationLabelParams={pageFirstItemIdx:0,pageLastItemIdx:0,itemsTotal:0},this.possiblePageSizes=[10,15,20,30,50],this.minPossiblePageSize=Math.min.apply(Math,bc(this.possiblePageSizes)),this.selectable=!1,this.selectionPrimaryKey="id",this.displayOptions={striped:!0,bordered:!1,gridHeader:!0},this.rowMouseOver=new t.EventEmitter,this.rowMouseLeave=new t.EventEmitter,this.rowClick=new t.EventEmitter,this.itemsSelect=new t.EventEmitter,this.columnNames=[],this.styles={tableCursor:"auto",gridTemplateColumns:void 0},this.searchText$=new t.EventEmitter,this.searchText="",this.filteringApplied=!1,this.totalPagesCount=1/0,this.selectedItemIds=[],this.currentPageSelectionState={allSelected:!1,allDeselected:!0},this.builtInActionType={Edit:"EDIT",Delete:"DELETE",Export:"EXPORT"},this.resizeHandleMouseDown$=new t.EventEmitter,this.resizeHandleContainerMouseMove$=new t.EventEmitter,this.resizeHandleContainerMouseUp$=new t.EventEmitter,this.unsubscribe$=new a.Subject}return Object.defineProperty(n.prototype,"_columns",{set:function(e){this.columns=e||[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_rows",{set:function(e){this.rows=e||[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_pagination",{set:function(e){this.pagination=e;var t=o.get(this.pagination,"pageSize");t&&!this.possiblePageSizes.find((function(e){return e===t}))&&(this.pagination=gc({},this.pagination,{pageSize:10}))},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_serverSideDataCallback",{set:function(e){this.serverSideDataCallback=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_selectable",{set:function(e){this.selectable=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_selectionPrimaryKey",{set:function(e){this.selectionPrimaryKey=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_displayOptions",{set:function(e){this.displayOptions=gc({},this.displayOptions,e)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_actionControls",{set:function(e){this.actionControls=e||[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||[]},enumerable:!0,configurable:!0}),n.prototype.ngOnInit=function(){var e=this;this.searchText$.pipe(s.takeUntil(this.unsubscribe$),s.debounceTime(300),s.distinctUntilChanged(),s.tap((function(t){e.searchText=t}))).subscribe((function(){e.reload()})),this.selectable&&a.combineLatest(this.dataSource.data$,this.itemsSelect.asObservable()).pipe(s.takeUntil(this.unsubscribe$)).subscribe((function(t){var n=jc(t,1)[0],a=0===n.length;e.currentPageSelectionState={allSelected:!a&&n.every((function(t){return e.isItemSelected(t)})),allDeselected:!!a||n.every((function(t){return!e.isItemSelected(t)}))}}))},n.prototype.ngOnChanges=function(){this.updateColumns(),this.loadData()},n.prototype.ngAfterViewInit=function(){this.updateGridColumnsSize(),this.thEls=this.thRefs.toArray().map((function(e){return e.nativeElement})),this.setupResizeHandle()},n.prototype.ngOnDestroy=function(){this.unsubscribe$.next(),this.unsubscribe$.complete()},n.prototype.trackByName=function(e,t){return t.name},n.prototype.resolveCellValue=function(e,t){var n=this;return o.flow([function(e){return n.dataSource.resolveValue(e,t)},this.dataSource.resolveFunction,this.dataSource.normalizeNil])(e)},n.prototype.changeSortOrder=function(e){var t=this.columns.find((function(t){return t.name===e}));if(t){var n=t.sortOrder;n?"asc"===n?this.updateSorting([e],"desc"):this.updateSorting([e],""):this.updateSorting([e],"asc")}},n.prototype.updateSorting=function(e,t){this.columns=this.columns.map((function(n){return e.includes(n.name)?gc({},n,{sortOrder:t}):n})),this.reload()},n.prototype.applyFilter=function(t,n,a){this.updateFiltering([t],{type:e.FilteringActionType.ApplyFilter,payload:{filteringModifier:a}}),n.hide()},n.prototype.resetFilter=function(t,n){this.updateFiltering([t],{type:e.FilteringActionType.ResetFilter}),n.hide()},n.prototype.clearFilters=function(){this.updateFiltering(this.columns.map((function(e){return e.name})),{type:e.FilteringActionType.ResetFilter})},n.prototype.updateFiltering=function(t,n){this.columns=this.columns.map((function(a){return t.includes(a.name)?gc({},a,n.type===e.FilteringActionType.ApplyFilter?n.payload.filteringModifier:{filterPredicate:void 0,externalFilterQuery:void 0}):a})),this.updateFilteringApplied(),this.reload()},n.prototype.updateFilteringApplied=function(){this.filteringApplied=this.columns.some(this.isColumnFilteringApplied)},n.prototype.isColumnFilteringApplied=function(e){var t=e.filterable,n=e.filterPredicate,a=e.externalFilterQuery;return!(!t||!n&&!a)},n.prototype.updatePagination=function(e){var t=e.itemsPerPage,n=e.page;this.pagination=gc({},this.pagination,{pageSize:t,currentPage:n}),this.loadData()},n.prototype.reload=function(){this.pagination=gc({},this.pagination,{currentPage:1}),this.loadData()},n.prototype.getCellRendererSpec=function(e){var t=e.value,n=e.row,a=e.columnName;return this._getCellRendererSpec({type:"CELL",value:t,row:n,columnName:a})},n.prototype.getHeaderCellRendererSpec=function(e){var t=e.value,n=e.columnName;return this._getCellRendererSpec({type:"HEADER",value:t,row:void 0,columnName:n})},n.prototype.getFilteringFormRendererSpec=function(e){var t=e.column,n=e.dropdown;return{renderer:o.get(this.getColumnRenderer(t),"filteringFormRendererDef.template")||t.filteringFormRendererComponent,context:{property:t,applyFilter:this.applyFilter.bind(this,t.name,n),resetFilter:this.resetFilter.bind(this,t.name,n)}}},n.prototype.setAllItemsSelected=function(e){var t=this;this.dataSource.selection$.pipe(s.first()).subscribe((function(n){var a=n.filteredDataIds;return t.setItemsSelected(a,e)}))},n.prototype.setAllItemsInCurrentPageSelected=function(e){var t=this;this.dataSource.data$.pipe(s.first()).subscribe((function(n){return t.setItemsSelected(n,e)}))},n.prototype.setItemsSelected=function(e,t){var n=this,a=e.map((function(e){return"object"==typeof e?e[n.selectionPrimaryKey]:e}));this.selectedItemIds=t?o.union(this.selectedItemIds,a):o.without.apply(void 0,bc([this.selectedItemIds],a)),this.itemsSelect.emit(this.selectedItemIds)},n.prototype.isItemSelected=function(e){return this.selectedItemIds.includes(e[this.selectionPrimaryKey])},n.prototype.onColumnDrop=function(e){var t=e.previousIndex,n=e.currentIndex;if(t!==n){var a=this.columns.splice(t,1);this.columns.splice(n,0,a[0])}this.updateColumnNames(),this.updateGridColumnsSize()},n.prototype.updateGridColumnsSize=function(){this.styles=gc({},this.styles,{gridTemplateColumns:this.sanitizer.bypassSecurityTrustStyle(this.columns.filter((function(e){return e.visible})).map((function(e){return e.gridTrackSize})).join(" "))})},n.prototype.updateColumns=function(){var e={gridTrackSize:"42px",sortable:!1,positionFixed:!0};this.columns=bc([this.selectable?gc({},e,{name:"checkbox"}):void 0],this.columns,[this.actionControls.length>0?gc({},e,{name:"actions"}):void 0]).filter(Boolean).map(this.withColumnDefaults),this.updateColumnNames(),this.updateGridColumnsSize(),this.updateFilteringApplied()},n.prototype.withColumnDefaults=function(e){var t=e.dataType||"text-short",n=e.headerCSSClassName,a=e.cellCSSClassName;return gc({visible:!0,positionFixed:!1,sortable:!0,sortOrder:"",filterable:!1},e,{dataType:t,gridTrackSize:e.gridTrackSize||"minmax(80px, "+kp[t]+"fr)",headerCSSClassName:("string"==typeof n?n.split(" "):n)||[],cellCSSClassName:("string"==typeof a?a.split(" "):a)||[]})},n.prototype.updateColumnNames=function(){this.columnNames=this.columns.map((function(e){return e.name}))},n.prototype.setupResizeHandle=function(){var e=this;this.resizeHandleMouseDown$.pipe(s.takeUntil(this.unsubscribe$),s.tap((function(){return e.clearMouseHighlights()})),s.mergeMap((function(t){var n=t.event,a=t.targetColumnName;return e.columns=e.columns.map((function(e){return e.name===a?gc({},e,{headerCSSClassName:o.union(e.headerCSSClassName,["header--being-resized"])}):e})),e.headerBeingResized={columnName:a,el:n.target.parentNode},e.styles=gc({},e.styles,{tableCursor:"col-resize"}),e.resizeHandleContainerMouseMove$.pipe(s.tap((function(){return e.clearMouseHighlights()})),s.takeUntil(e.resizeHandleContainerMouseUp$))}))).subscribe((function(t){requestAnimationFrame((function(){e.columns=e.columns.map((function(n,a){if(n.name===e.headerBeingResized.columnName){var s=e.hostRef.nativeElement,r=s.getBoundingClientRect().left,l=s.scrollLeft-r+t.clientX-(e.headerBeingResized.el.offsetLeft||0);return gc({},n,{gridTrackSize:Math.max(80,l)+"px"})}return n.gridTrackSize.startsWith("minmax")?gc({},n,{gridTrackSize:o.parseInt(e.thEls[a].clientWidth)+"px"}):n})),e.updateGridColumnsSize()}))})),this.resizeHandleContainerMouseUp$.pipe(s.takeUntil(this.unsubscribe$)).subscribe((function(){e.headerBeingResized&&(e.columns=e.columns.map((function(t){return t.name===e.headerBeingResized.columnName?gc({},t,{headerCSSClassName:o.without(t.headerCSSClassName,"header--being-resized")}):t})),e.headerBeingResized=void 0,e.styles=gc({},e.styles,{tableCursor:"auto"}))}))},n.prototype.clearMouseHighlights=function(){window.getSelection&&window.getSelection().removeAllRanges()},n.prototype._getCellRendererSpec=function(e){var t=e.type,n=e.value,a=e.row,s=e.columnName,r=this.columns.find((function(e){return e.name===s})),l=this.getColumnRenderer(r),i=o.get(l,("HEADER"===t?"headerCellRendererDef":"cellRendererDef")+".template"),c=r.cellRendererComponent,u=r.headerCellRendererComponent;return{renderer:i||("HEADER"===t?u:c),context:{value:n,item:a,property:r}}},n.prototype.getColumnRenderer=function(e){return this.columnRenderers.toArray().find((function(t){return t.name===e.name}))},n.prototype.loadData=function(){var e=this,t=this,n=t.rows,a=t.columns,s=t.pagination,o=t.searchText,r=t.serverSideDataCallback,l=t.selectable,i=t.selectionPrimaryKey;this.dataSource.loadData({rows:n,columns:a,pagination:s,searchText:o,serverSideDataCallback:r,selectable:l,selectionPrimaryKey:i}),this.dataSource.stats$.subscribe((function(t){e.updateFilteringLabelsParams(t),e.updatePaginationLabelParams(t)}))},n.prototype.updateFilteringLabelsParams=function(e){this.filteringLabelsParams={filteredItemsCount:e.filteredSize,allItemsCount:e.size}},n.prototype.updatePaginationLabelParams=function(e){var t=(e.currentPage-1)*e.firstPageSize+1;this.paginationLabelParams={pageFirstItemIdx:t,pageLastItemIdx:t+(e.currentPageSize-1),itemsTotal:e.filteredSize}},n.ctorParameters=function(){return[{type:nc.DomSanitizer},{type:t.ElementRef},{type:t.ChangeDetectorRef}]},fc([t.Input()],n.prototype,"title",void 0),fc([t.Input()],n.prototype,"loadingItemsLabel",void 0),fc([t.Input()],n.prototype,"noMatchingItemsLabel",void 0),fc([t.Input("columns")],n.prototype,"_columns",null),fc([t.Input("rows")],n.prototype,"_rows",null),fc([t.Input("pagination")],n.prototype,"_pagination",null),fc([t.Input("serverSideDataCallback")],n.prototype,"_serverSideDataCallback",null),fc([t.Input("selectable")],n.prototype,"_selectable",null),fc([t.Input("selectionPrimaryKey")],n.prototype,"_selectionPrimaryKey",null),fc([t.Input("displayOptions")],n.prototype,"_displayOptions",null),fc([t.Input("actionControls")],n.prototype,"_actionControls",null),fc([t.Input("bulkActionControls")],n.prototype,"_bulkActionControls",null),fc([t.Output()],n.prototype,"rowMouseOver",void 0),fc([t.Output()],n.prototype,"rowMouseLeave",void 0),fc([t.Output()],n.prototype,"rowClick",void 0),fc([t.Output()],n.prototype,"itemsSelect",void 0),fc([t.ContentChildren(Ep)],n.prototype,"columnRenderers",void 0),fc([t.ViewChildren(ic.CdkHeaderCell,{read:t.ElementRef})],n.prototype,"thRefs",void 0),n=fc([t.Component({selector:"c8y-data-grid",template:'<div class="table-data-grid-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 class="m-r-4" ngNonBindable translate [translateParams]="filteringLabelsParams"\n >{{ filteredItemsCount }} of {{ allItemsCount }} items</small\n >\n </span>\n <span *ngIf="filteringApplied">\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 <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 dropdown-menu-right"\n (click)="$event.stopPropagation()"\n >\n <li class="">\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\n <div\n *ngIf="column.filterable"\n class="dropdown"\n dropdown\n #dropdown="bs-dropdown"\n container="body"\n [insideClick]="true"\n >\n <button\n class="btn-header c8y-dropdown"\n dropdownToggle\n [title]="(column.header | translate) || column.name"\n >\n <ng-container\n *ngIf="\n (\n [{\n columnName: column.name, \n value: ((column.header | translate) || column.name) \n }]\n | map:getHeaderCellRendererSpec:this\n ) as cellRendererSpec\n "\n >\n <c8y-cell-renderer [spec]="cellRendererSpec"></c8y-cell-renderer>\n </ng-container>\n <i c8yIcon="filter"></i>\n </button>\n\n <ul *dropdownMenu class="dropdown-menu" (click)="$event.stopPropagation()">\n <li class="dropdown-form">\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 <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 </table>\n\n <div *ngIf="dataSource.loading$ | async" 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" 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'})],n)}(),Mp=function(){function e(e,t){this.injector=e,this.cd=t}return Object.defineProperty(e.prototype,"_spec",{set:function(e){this.spec=e},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this.prevSpec||(this.prevSpec=this.spec);var e=this.spec.renderer;e instanceof t.TemplateRef?this.rendererType="TEMPLATE":e instanceof t.Type&&(this.rendererType="COMPONENT",this.rendererInjector=t.Injector.create({providers:[{provide:Ip,useValue:this.spec.context}],parent:this.injector}))},e.prototype.ngDoCheck=function(){!this.spec.context.value===this.prevSpec.context.value&&(this.prevSpec=this.spec,this.cd.markForCheck())},e.ctorParameters=function(){return[{type:t.Injector},{type:t.ChangeDetectorRef}]},fc([t.Input("spec")],e.prototype,"_spec",null),e=fc([t.Component({selector:"c8y-cell-renderer",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',changeDetection:t.ChangeDetectionStrategy.OnPush})],e)}(),qp=function(){function e(e,t){this.injector=e,this.cd=t,this.defaultRendererFilterText=""}return Object.defineProperty(e.prototype,"_spec",{set:function(e){this.spec=e},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){var e=this.spec,n=e.renderer,a=e.context;n instanceof t.TemplateRef?this.rendererType="TEMPLATE":n instanceof t.Type&&(this.rendererType="COMPONENT",this.rendererInjector=t.Injector.create({providers:[{provide:_p,useValue:this.spec.context}],parent:this.injector}));var s=a.property.filterPredicate;"string"==typeof s&&(this.defaultRendererFilterText=s)},e.ctorParameters=function(){return[{type:t.Injector},{type:t.ChangeDetectorRef}]},fc([t.Input("spec")],e.prototype,"_spec",null),e=fc([t.Component({selector:"c8y-filtering-form-renderer",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',changeDetection:t.ChangeDetectionStrategy.OnPush})],e)}(),Lp=function(){function e(){}return e=fc([t.NgModule({imports:[u.CommonModule,ic.CdkTableModule,cc.DragDropModule,tc.FormsModule,tc.ReactiveFormsModule,Fu,Qi.BsDropdownModule.forRoot(),sc.PopoverModule.forRoot(),uc.PaginationModule.forRoot()],declarations:[Pp,Op,Mp,xp,qp,Ep,Np],exports:[Pp,Op,xp,Ep,Np],entryComponents:[Np]})],e)}(),Rp=function(){},$p=function(){function e(e){this.context=e}return e.ctorParameters=function(){return[{type:Ip}]},e=fc([t.Component({template:'\n <device-status [mo]="context.item"></device-status>\n '})],e)}(),Fp=function(e){function t(){var t=e.call(this)||this;return t.name="status",t.header="Status",t.dataType="icon",t.cellRendererComponent=$p,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{sendOnline:{type:"boolean"},sendOffline:{type:"boolean"},sendUnknown:{type:"boolean"},sendNotMonitored:{type:"boolean"},pushOnline:{type:"boolean"},pushOffline:{type:"boolean"},pushUnknown:{type:"boolean"},maintenance:{type:"boolean"}}},form:[{type:"template",template:"<label><span translate>Show devices with send status</span>:</label>"},{key:"sendOnline",title:"Online"},{key:"sendOffline",title:"Offline"},{key:"sendUnknown",title:"Unknown"},{key:"sendNotMonitored",title:"Not monitored"},{type:"template",template:"<label><span translate>Show devices with push status</span>:</label>"},{key:"pushOnline",title:"Online"},{key:"pushOffline",title:"Offline"},{key:"pushUnknown",title:"Not monitored"},{type:"template",template:"<label><span translate>Show devices with maintenance status</span>:</label>"},{key:"maintenance",title:"Under maintenance"}],getFilter:function(e){var t,n,a={},s=[],o=[],r=[];return e&&(e.sendOnline&&o.push("AVAILABLE"),e.maintenance&&o.push("MAINTENANCE"),e.sendOffline&&o.push("UNAVAILABLE"),e.sendUnknown&&s.push({__and:[{__not:{__has:"c8y_Availability.status"}},{__has:"c8y_RequiredAvailability"}]}),e.sendNotMonitored&&s.push({__and:[{__not:{__has:"c8y_Availability.status"}},{__not:{__has:"c8y_RequiredAvailability"}}]}),e.pushOnline&&r.push("CONNECTED"),e.pushOffline&&r.push("DISCONNECTED"),e.pushUnknown&&s.push({__not:{__has:"c8y_Connection.status"}}),o.length&&s.push(((t={})["c8y_Availability.status"]={__in:o},t)),r.length&&s.push(((n={})["c8y_Connection.status"]={__in:r},n)),s.length&&(a.__or=s)),a}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_Availability.status"}]},t}return mc(t,e),t}(Rp),Up=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:Ip},{type:tm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return tm}))]}]}]},e=fc([t.Component({template:'\n <a\n [href]="deviceGridService.getDeviceHref(context.item)"\n title="{{ deviceGridService.getProperName(context.item) }}"\n class="interact"\n >\n {{ deviceGridService.getProperName(context.item) }}\n </a>\n '}),hc(1,t.Inject(t.forwardRef((function(){return tm}))))],e)}(),Gp=function(e){function t(){var t=e.call(this)||this;return t.name="name",t.path="name",t.header="Name",t.cellCSSClassName="data-record-header",t.cellRendererComponent=Up,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{names:{type:"array",items:{type:"string"}}}},form:[{key:"names",title:"Show devices with name",add:"Or",items:[{key:"names[]",notitle:!0,placeholder:"e.g. My Device, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.names.length&&(t.name={__in:e.names}),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path}]},t}return mc(t,e),t}(Rp),Bp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:Ip},{type:tm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return tm}))]}]}]},e=fc([t.Component({template:"\n {{ deviceGridService.getModel(context.item) }}\n "}),hc(1,t.Inject(t.forwardRef((function(){return tm}))))],e)}(),zp=function(e){function t(){var t=e.call(this)||this,n="com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.model";return t.name="model",t.header="Model",t.cellRendererComponent=Bp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{models:{type:"array",items:{type:"string"}}}},form:[{key:"models",title:"Show devices with model",add:"Or",items:[{key:"models[]",notitle:!0,placeholder:"e.g. ModelName, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t,a={};return e.models.length&&(a.__or=((t={})["c8y_Hardware.model"]={__in:e.models},t[n]={__in:e.models},t)),a}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_Hardware.model"},{path:n}]},t}return mc(t,e),t}(Rp),Hp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:Ip},{type:tm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return tm}))]}]}]},e=fc([t.Component({template:"\n {{ deviceGridService.getSerialNumber(context.item) }}\n "}),hc(1,t.Inject(t.forwardRef((function(){return tm}))))],e)}(),Vp=function(e){function t(){var t=e.call(this)||this;return t.name="serialNumber",t.header="Serial number",t.cellRendererComponent=Hp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{serialNumbers:{type:"array",items:{type:"string"}}}},form:[{key:"serialNumbers",title:"Show devices with serial number",add:"Or",items:[{key:"serialNumbers[]",notitle:!0,placeholder:"e.g. 54321-123, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t,n={};return e.serialNumbers.length&&(n.__or=((t={})["c8y_Hardware.serialNumber"]={__in:e.serialNumbers},t["com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.serial"]={__in:e.serialNumbers},t)),n}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_Hardware.serialNumber"},{path:"com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.serial"}]},t}return mc(t,e),t}(Rp),Kp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:Ip},{type:tm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return tm}))]}]}]},e=fc([t.Component({template:'<span\n title="{{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}"\n class="text-truncate"\n>\n {{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}\n</span>\n'}),hc(1,t.Inject(t.forwardRef((function(){return tm}))))],e)}(),Wp=function(e){function t(){var t=e.call(this)||this;return t.name="group",t.header="Group",t.cellRendererComponent=Kp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{deviceGroupId:{type:"integer",format:"deviceGroupId"}}},form:[{key:"deviceGroupId",title:"Show devices in group"}],getFilter:function(e){var t={};return e.deviceGroupId&&(t.__bygroupid=e.deviceGroupId),t}},t.sortable=!1,t}return mc(t,e),t}(Rp),Yp=function(){function e(e){this.context=e}return e.ctorParameters=function(){return[{type:Ip}]},e=fc([t.Component({template:"\n {{ context.value | date: 'medium' }}\n "})],e)}(),Zp=function(e){function t(){var t=e.call(this)||this,n=t;return t.path="creationTime",t.name="registrationDate",t.header="Registration date",t.cellRendererComponent=Yp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{registrationDate:{type:"object",properties:{after:{type:"string",format:"datetime"},before:{type:"string",format:"datetime"}}}}},form:[{key:"registrationDate.after",title:"Show devices registered after",maxDateKey:"registrationDate.before"},{key:"registrationDate.before",title:"And before`date`",minDateKey:"registrationDate.after"}],getFilter:function(e){var t,a,s={},o=e&&e.registrationDate;if(o&&(o.after||o.before)){if(s.__and=[],o.after){var r=n.formatDate(o.after);s.__and.push({__or:(t={},t[n.path]={__gt:r},t[n.path+".date"]={__gt:r},t)})}if(o.before){var l=n.formatDate(o.before);s.__and.push({__or:(a={},a[n.path]={__lt:l},a[n.path+".date"]={__lt:l},a)})}}return s}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path+".date"},{path:t.path}]},t}return mc(t,e),t.prototype.formatDate=function(e){return new Date(e).toISOString()},t}(Rp),Jp=function(e){function t(){var t=e.call(this)||this,n=t;return t.path="id",t.name="systemId",t.header="System ID",t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{ids:{type:"array",items:{type:"string"}}}},form:[{key:"ids",title:"Show devices with system ID",add:"Or",items:[{key:"ids[]",notitle:!0,placeholder:"e.g. 10300, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.ids.length&&(t[n.path]={__in:e.ids}),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path}]},t}return mc(t,e),t}(Rp),Xp=function(e){function t(){var t=e.call(this)||this,n=t;return t.path="c8y_Mobile.imei",t.name="imei",t.header="IMEI",t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{imeis:{type:"array",items:{type:"string"}}}},form:[{key:"imeis",title:"Show devices with IMEI",add:"Or",items:[{key:"imeis[]",notitle:!0,placeholder:"e.g. 46543432321, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.imeis.length&&(t[n.path]={__in:e.imeis}),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path}]},t}return mc(t,e),t}(Rp),Qp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:Ip},{type:tm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return tm}))]}]}]},e=fc([t.Component({template:'<a [href]="deviceGridService.getAlarmsHref(context.item)" class="listLink">\n <small\n class="status critical"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.critical"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.critical }} <i [c8yIcon]="\'warning\'"></i>\n </small>\n <small\n class="status major"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.major"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.major }}\n <i [c8yIcon]="\'exclamation-circle\'"></i>\n </small>\n <small\n class="status minor"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.minor"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.minor }}\n <i [c8yIcon]="\'exclamation-circle\'"></i>\n </small>\n <small\n class="status warning"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.warning"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.warning }} <i [c8yIcon]="\'circle\'"></i>\n </small>\n</a>\n'}),hc(1,t.Inject(t.forwardRef((function(){return tm}))))],e)}(),em=function(e){function t(){var t=e.call(this)||this;return t.name="alarms",t.header="Alarms",t.cellRendererComponent=Qp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{critical:{type:"boolean"},major:{type:"boolean"},minor:{type:"boolean"},warning:{type:"boolean"},none:{type:"boolean"}}},form:[{type:"template",template:"<label><span translate>Show devices with active</span>:</label>"},{key:"critical",title:"Critical alarms"},{key:"major",title:"Major alarms"},{key:"minor",title:"Minor alarms"},{key:"warning",title:"Warnings"},{key:"none",title:"No alarms"}],getFilter:function(e){var t={},n=[];return e.critical&&n.push({"c8y_ActiveAlarmsStatus.critical":{__gt:0}}),e.major&&n.push({"c8y_ActiveAlarmsStatus.major":{__gt:0}}),e.minor&&n.push({"c8y_ActiveAlarmsStatus.minor":{__gt:0}}),e.warning&&n.push({"c8y_ActiveAlarmsStatus.warning":{__gt:0}}),e.none&&(n.push({__not:{__has:"c8y_ActiveAlarmsStatus"}}),n.push({__and:o.map(["critical","major","minor","warning"],(function(e){var t={},n={__not:{__has:void 0}},a="c8y_ActiveAlarmsStatus."+e;return t[a]=0,n.__not.__has=a,{__or:[t,n]}}))})),n.length&&(t.__or=n),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_ActiveAlarmsStatus.critical"},{path:"c8y_ActiveAlarmsStatus.major"},{path:"c8y_ActiveAlarmsStatus.minor"},{path:"c8y_ActiveAlarmsStatus.warning"}]},t}return mc(t,e),t}(Rp),tm=function(){function e(e,t){this.inventoryService=e,this.translateService=t,this.queriesUtil=new l.QueriesUtil}return e.prototype.getDefaultColumns=function(){return[new Fp,new Gp,new zp,new Vp,new Wp,new Zp,new Jp,new Xp,new em]},e.prototype.getDefaultPagination=function(){return{pageSize:10,currentPage:1}},e.prototype.getDefaultActionControls=function(){var e=this;return[{type:"DELETE",callback:function(t){return e.delete(t)}}]},e.prototype.getDefaultBulkActionControls=function(){return[]},e.prototype.getProperName=function(e){var t=e.id,n=e.name;return n||this.translateService.instant("Device {{id}}",{id:t})},e.prototype.getModel=function(e){var t=this.getHardware(e);return t&&t.model},e.prototype.getSerialNumber=function(e){var t=this.getHardware(e),n=this.isVendme(e)?"serial":"serialNumber";return t&&t[n]},e.prototype.getParentsNames=function(e,t){var n=e.assetParents.references,a=o.map(n,"managedObject"),s=o.sortBy(a,["name"]),r=o.remove(s,{id:t}).concat(s);return o.map(r,"name").join(", ")},e.prototype.getDeviceHref=function(e){return"#/device/"+e.id},e.prototype.getAlarmsHref=function(e){return this.getDeviceHref(e)+"/alarms"},e.prototype.delete=function(e){console.log("should delete",e)},e.prototype.getDevices=function(e,t){return yc(this,void 0,void 0,(function(){var n;return vc(this,(function(a){return n=gc({},this.getDevicesFilters(e,t),{withParents:!0}),[2,this.inventoryService.list(n)]}))}))},e.prototype.getDevicesCount=function(e,t){return yc(this,void 0,void 0,(function(){var n;return vc(this,(function(a){switch(a.label){case 0:return n=gc({},this.getDevicesFilters(e,t),{pageSize:1,currentPage:1}),[4,this.inventoryService.list(n)];case 1:return[2,a.sent().paging.totalPages]}}))}))},e.prototype.getDevicesTotal=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return e={q:"",pageSize:1,withTotalPages:!0},[4,this.inventoryService.list(e)];case 1:return[2,t.sent().paging.totalPages]}}))}))},e.prototype.getDeviceQueryString=function(e){return this.queriesUtil.buildQuery(this.getQueryObj(e))},e.prototype.getHardware=function(e){var t=this.isVendme(e)?"com_nsn_startups_vendme_fragments_VendingMachineTypeInfo":"c8y_Hardware";return e&&e[t]},e.prototype.isVendme=function(e){return"com_nsn_startups_vendme_VendingMachine"===e.type},e.prototype.getDevicesFilters=function(e,t){return{q:this.getDeviceQueryString(e),pageSize:t.pageSize,currentPage:t.currentPage,withTotalPages:!0}},e.prototype.getQueryObj=function(e){var t=this;return o.transform(e,(function(e,n){return t.extendQueryByColumn(e,n)}),{__filter:{},__orderby:[]})},e.prototype.extendQueryByColumn=function(e,t){if(t.filterable&&t.externalFilterQuery){var n=(t.filteringConfig.getFilter||o.identity)(t.externalFilterQuery);n.__or?(e.__filter.__and=e.__filter.__and||[],e.__filter.__and.push(n)):n.__and&&o.get(e,"__filter.__and")?n.__and.map((function(t){return e.__filter.__and.push(t)})):o.assign(e.__filter,n)}if(t.sortable&&t.sortOrder){var a={};o.forEach(t.sortingConfig.pathSortingConfigs,(function(e){a[e.path]=("asc"===t.sortOrder?1:-1)*(e.sortOrderModifier||1)})),e.__orderby.push(a)}return e},e.ctorParameters=function(){return[{type:l.InventoryService},{type:i.TranslateService}]},e=fc([t.Injectable()],e)}(),nm=function(){function e(e){this.deviceGridService=e,this.title="Devices",this.loadingItemsLabel="Loading devices…",this.noMatchingItemsLabel="No matching devices.",this.selectable=!1,this.onColumnsChange=new t.EventEmitter,this.onDeviceQueryStringChange=new t.EventEmitter,this.columns=this.deviceGridService.getDefaultColumns(),this.pagination=this.deviceGridService.getDefaultPagination(),this.actionControls=this.deviceGridService.getDefaultActionControls(),this.bulkActionControls=this.deviceGridService.getDefaultBulkActionControls(),this.serverSideDataCallback=this.onDataSourceModifier.bind(this)}return Object.defineProperty(e.prototype,"_columns",{set:function(e){this.columns=e||this.deviceGridService.getDefaultColumns()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_pagination",{set:function(e){this.pagination=e||this.deviceGridService.getDefaultPagination()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_actionControls",{set:function(e){this.actionControls=e||this.deviceGridService.getDefaultActionControls()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||this.deviceGridService.getDefaultBulkActionControls()},enumerable:!0,configurable:!0}),e.prototype.trackByName=function(e,t){return t.name},e.prototype.onDataSourceModifier=function(e){return yc(this,void 0,void 0,(function(){var t,n,a,s,o,r;return vc(this,(function(l){switch(l.label){case 0:return[4,this.deviceGridService.getDevices(e.columns,e.pagination)];case 1:return t=l.sent(),n=t.res,a=t.data,s=t.paging,[4,this.deviceGridService.getDevicesCount(e.columns,e.pagination)];case 2:return o=l.sent(),[4,this.deviceGridService.getDevicesTotal()];case 3:return r=l.sent(),this.onColumnsChange.emit(e.columns),this.onDeviceQueryStringChange.emit(this.deviceGridService.getDeviceQueryString(e.columns)),[2,{res:n,data:a,paging:s,filteredSize:o,size:r}]}}))}))},e.ctorParameters=function(){return[{type:tm}]},fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"loadingItemsLabel",void 0),fc([t.Input()],e.prototype,"noMatchingItemsLabel",void 0),fc([t.Input("columns")],e.prototype,"_columns",null),fc([t.Input("pagination")],e.prototype,"_pagination",null),fc([t.Input("actionControls")],e.prototype,"_actionControls",null),fc([t.Input()],e.prototype,"selectable",void 0),fc([t.Input("bulkActionControls")],e.prototype,"_bulkActionControls",null),fc([t.Output()],e.prototype,"onColumnsChange",void 0),fc([t.Output()],e.prototype,"onDeviceQueryStringChange",void 0),e=fc([t.Component({selector:"c8y-device-grid",template:'<c8y-data-grid\n [title]="title"\n [loadingItemsLabel]="loadingItemsLabel"\n [noMatchingItemsLabel]="noMatchingItemsLabel"\n [columns]="columns"\n [pagination]="pagination"\n [actionControls]="actionControls"\n [selectable]="selectable"\n [bulkActionControls]="bulkActionControls"\n [serverSideDataCallback]="serverSideDataCallback"\n>\n <ng-container *ngFor="let column of columns; trackBy: trackByName">\n <c8y-column [name]="column.name">\n <ng-container *ngIf="column.filteringConfig">\n <ng-container *c8yFilteringFormRendererDef="let context">\n <c8y-filtering-form [context]="context"></c8y-filtering-form>\n </ng-container>\n </ng-container>\n </c8y-column>\n </ng-container>\n</c8y-data-grid>\n'})],e)}(),am={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"}}},sm=function(e,t){var n=u.formatDate(new Date(e),"medium",t.currentLang);return t.instant("Device last request:\n{{date}}",{date:n})},om={sendStatusConnected:sm,sendStatusDisconnected:"Connection not monitored",pushStatusConnected:"Connection to device established",pushStatusDisconnected:"Connection to device not established (not supported by device or no connectivity)",maintenance:"Under maintenance"};(Ap=e.PushStatusLabels||(e.PushStatusLabels={}))[Ap.CONNECTED="Push connection: active"]="CONNECTED",Ap[Ap.DISCONNECTED="Push connection: inactive"]="DISCONNECTED",Ap[Ap.UNKNOWN="Push connection: inactive"]="UNKNOWN",(Dp=e.SendStatusLabels||(e.SendStatusLabels={}))[Dp.AVAILABLE="Send connection: online"]="AVAILABLE",Dp[Dp.NOT_MONITORED="Send connection: not monitored"]="NOT_MONITORED",Dp[Dp.UNAVAILABLE="Send connection: offline"]="UNAVAILABLE",Dp[Dp.UNKNOWN="Send connection status unknown"]="UNKNOWN",Dp[Dp.MAINTENANCE="Under maintenance"]="MAINTENANCE";var rm,lm=function(){function n(e){this.translateService=e}return Object.defineProperty(n.prototype,"node",{set:function(e){this._mo=e.mo||e},enumerable:!0,configurable:!0}),n.prototype.get=function(){return this._mo},n.prototype.ngAfterContentInit=function(){this.requiredAvailability=o.get(this._mo,"c8y_RequiredAvailability"),this.availabilityStatus=o.get(this._mo,"c8y_Availability.status"),this.pushStatus=o.get(this._mo,"c8y_Connection.status")||"UNKNOWN",this.sendStatus=this.availabilityStatus||(this.requiredAvailability?"UNKNOWN":"NOT_MONITORED")},n.prototype.status=function(){return"MAINTENANCE"===this.availabilityStatus||"MAINTENANCE"===this.pushStatus?this.getMaintenanceStatus():this.getSendPushStatus()},n.prototype.getMaintenanceStatus=function(){return{sendStatus:!1,pushStatus:!1,maintenanceStatus:{icon:am.device.MAINTENANCE.icon,class:am.device.MAINTENANCE.class,tooltip:om.maintenance}}},n.prototype.getSendPushStatus=function(){return{sendStatus:{icon:am.sendData[this.sendStatus].icon,class:am.sendData[this.sendStatus].class,status:this.sendStatus,label:e.SendStatusLabels[this.sendStatus],tooltip:this.getSendStatusTooltip(this._mo)},pushStatus:{icon:am.push[this.pushStatus].icon,class:am.push[this.pushStatus].class,status:this.pushStatus,label:e.PushStatusLabels[this.pushStatus],tooltip:this.getPushStatusTooltip("CONNECTED"===this.pushStatus)},maintenanceStatus:!1}},n.prototype.getSendStatusTooltip=function(e){var t=e&&e.c8y_Availability,n=t&&t.lastMessage;return n?om.sendStatusConnected(n,this.translateService):om.sendStatusDisconnected},n.prototype.getPushStatusTooltip=function(e){return e?om.pushStatusConnected:om.pushStatusDisconnected},n.ctorParameters=function(){return[{type:i.TranslateService}]},fc([t.Input("mo")],n.prototype,"node",null),n=fc([t.Component({selector:"device-status",template:'\x3c!-- ATTENTION: keep text format in `tooltip` attribute --\x3e\n<div class="statusContainer"\n tooltip="{{status().sendStatus.tooltip | translate}}\n{{status().pushStatus.tooltip | translate}}"\n container="body"\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'})],n)}(),im=function(){function e(){}return e=fc([t.NgModule({imports:[Fu,ec.TooltipModule],exports:[lm],declarations:[lm]})],e)}(),cm=function(){function e(){}return e.prototype.ngOnInit=function(){var e=this.context.property;this.schema=o.cloneDeep(e.filteringConfig.schema),this.form=o.cloneDeep(e.filteringConfig.form),this.model=o.cloneDeep(e.externalFilterQuery||{}),this.options={formDefaults:{ngModelOptions:{debounce:100}}}},e.prototype.canApply=function(){return o.get(this.schemaFormComponent,"$componentScope.vm.ngForm.$invalid")},e.prototype.applyFilter=function(){this.context.applyFilter({externalFilterQuery:this.model})},e.prototype.resetFilter=function(){this.context.resetFilter()},fc([t.Input()],e.prototype,"context",void 0),fc([t.ViewChild(t.forwardRef((function(){return Gd})),{static:!1})],e.prototype,"schemaFormComponent",void 0),e=fc([t.Component({selector:"c8y-filtering-form",template:'<c8y-schema-form\n [schema]="schema"\n [form]="form"\n [model]="model"\n [options]="options"\n></c8y-schema-form>\n<div class="flex-row p-t-16">\n <button\n class="btn btn-default btn-sm m-r-8 flex-grow"\n (click)="resetFilter()"\n title="{{ \'Reset\' | translate }}"\n translate\n >\n Reset\n </button>\n\n <button\n class="btn btn-primary btn-sm flex-grow"\n (click)="applyFilter()"\n [disabled]="canApply()"\n title="{{ \'Apply\' | translate }}"\n translate\n >\n Apply\n </button>\n</div>\n'})],e)}(),um=function(){function e(){}return e=fc([t.NgModule({imports:[Fu,zd,im,Lp],declarations:[nm,cm,$p,Up,Bp,Hp,Kp,Yp,Qp],exports:[nm,cm,$p,Up,Bp,Hp,Kp,Yp,Qp],entryComponents:[nm,cm,$p,Up,Bp,Hp,Kp,Yp,Qp],providers:[tm]})],e)}(),dm=function(){function e(){this.title="Upload file",this.message="Drop file here",this.icon="plus-square",this.loadingMessage="Uploading ...",this.alwaysShow=!1,this.clickToOpen=!0,this.loading=!1,this.progress=-1,this.dropped=new t.EventEmitter,this.isOver=!1,this.fileIsEmpty=!1}return e.prototype.ngOnInit=function(){this.alwaysShow=this.alwaysShow||0===this.area.nativeElement.children.length},e.prototype.toggle=function(e){this.zone.nativeElement.style.height=this.area.nativeElement.offsetHeight+"px",this.onOver()},e.prototype.showPicker=function(e){this.preventDefault(e),this.picker.nativeElement.value="",this.picker.nativeElement.click()},e.prototype.onOver=function(){this.isOver||(this.isOver=!0,document.addEventListener("dragover",this.preventDefault),document.addEventListener("drop",this.preventDefault))},e.prototype.onPick=function(e){this.fileIsEmpty=!1,this.preventDefault(e),this.onFilesSelected(e.target.files)},e.prototype.onDrop=function(e){this.preventDefault(e),this.onFilesSelected(e.dataTransfer.files),this.stopDragging()},e.prototype.onFilesSelected=function(e){this.fileIsEmpty=!1,e&&e.length>0&&(this.isAnyFileEmpty(e)?(this.fileIsEmpty=!0,this.dropped.emit([])):this.dropped.emit(this.compose(e)))},e.prototype.isAnyFileEmpty=function(e){return o.some(Array.from(e),["size",0])},e.prototype.stopDragging=function(){document.removeEventListener("dragover",this.preventDefault),document.removeEventListener("drop",this.preventDefault),this.isOver=!1},e.prototype.preventDefault=function(e){e&&e.preventDefault()},e.prototype.compose=function(e){var t=this;return Array.from(e).map((function(e){return{file:e,readAsJson:function(){return yc(t,void 0,void 0,(function(){var t,n;return vc(this,(function(a){switch(a.label){case 0:return n=(t=JSON).parse,[4,this.read(e,rm.TEXT)];case 1:return[2,n.apply(t,[a.sent()])]}}))}))},readAsText:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,rm.TEXT)]}))}))},readAsArrayBuffer:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,rm.ARRAY_BUFFER)]}))}))},readAsBinaryString:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,rm.BINARY_STRING)]}))}))},readAsDataURL:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,rm.DATA_URL)]}))}))}}}))},e.prototype.read=function(e,t){return yc(this,void 0,void 0,(function(){var n=this;return vc(this,(function(a){return[2,new Promise((function(a,s){var o=new FileReader;switch(t){case rm.TEXT:o.readAsText(e);break;case rm.ARRAY_BUFFER:o.readAsArrayBuffer(e);break;case rm.BINARY_STRING:o.readAsBinaryString(e);break;case rm.DATA_URL:o.readAsDataURL(e)}o.onload=function(){return n.onLoad(o,a,s)}}))]}))}))},e.prototype.onLoad=function(e,t,n){2===e.readyState&&(e.error&&n(e.error),t(e.result))},fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"message",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"loadingMessage",void 0),fc([t.Input()],e.prototype,"alwaysShow",void 0),fc([t.Input()],e.prototype,"clickToOpen",void 0),fc([t.Input()],e.prototype,"loading",void 0),fc([t.Input()],e.prototype,"progress",void 0),fc([t.Output()],e.prototype,"dropped",void 0),fc([t.ViewChild("area",{static:!0})],e.prototype,"area",void 0),fc([t.ViewChild("zone",{static:!1})],e.prototype,"zone",void 0),fc([t.ViewChild("picker",{static:!1})],e.prototype,"picker",void 0),e=fc([t.Component({selector:"c8y-drop-area",template:'<div [ngClass]="{\'form-group\': true,\'has-error\': fileIsEmpty }">\n <small class="form-control-feedback-message">\n <span *ngIf="fileIsEmpty" translate>\n File must not be empty, select another one.\n </span>\n </small>\n</div>\n<div class="drop-zone" [style.pointerEvents]="loading ? \'none\' : \'auto\'" #zone style="padding-bottom: 0px; height: auto; min-height: 120px; max-height: 80vh;"\n (dragleave)="stopDragging()" (drop)="onDrop($event)" (dragover)="onOver()" [style.display]="isOver || alwaysShow || loading ? \'block\' : \'none\'"\n (click)="showPicker($event)">\n <div class="file-placeholder" style="pointer-events: none;" [ngClass]="{ \'drag-over\': isOver }">\n\n <div *ngIf="loading" class="hint-placeholder" style="width: 300px;">\n <p>\n {{loadingMessage}}\n </p>\n <div class="progress progress-striped active" *ngIf="progress !== -1">\n <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" [style.width]="progress + \'%\'"></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">\n <i class="fa fw fa-{{icon}}"></i>\n <p>\n <span>{{title}}</span>\n </p>\n <p>\n <b>{{message}}</b>\n <br>\n <span *ngIf="alwaysShow && clickToOpen" translate>or click to browse your computer.</span>\n </p>\n </div>\n\n </div>\n</div>\n<input #picker *ngIf="clickToOpen" (change)="onPick($event)" multiple type="file" style="opacity: 0; filter: alpha(opacity = 0); height: 0px">\n<div #area [hidden]="isOver || loading" (dragover)="toggle($event)">\n <ng-content></ng-content>\n</div>\n'})],e)}();!function(e){e[e.TEXT=0]="TEXT",e[e.DATA_URL=1]="DATA_URL",e[e.ARRAY_BUFFER=2]="ARRAY_BUFFER",e[e.BINARY_STRING=3]="BINARY_STRING"}(rm||(rm={}));var pm=function(){function e(){}return e=fc([t.NgModule({imports:[Fu],exports:[dm],declarations:[dm]})],e)}(),mm=function(){function e(){this.placeholder="Select item",this.applyLabel="Apply",this.onChange=new t.EventEmitter,this.textFilter="",this.labelText="",this.isOpen=!1,this.filteredItems=[],this.sizeToShowFilter=5,this.itemsSelected=new Set,this.stopClicks=!1}return e.prototype.preventClick=function(e){this.stopClicks&&e.stopPropagation(),this.stopClicks=this.isOpen},e.prototype.isOpenChange=function(e){this.isOpen=e,e?this.updateSelected():this.stopClicks=!1},e.prototype.outterSelected=function(e){var t=this.selected,n=(this.itemsSelected,this.items,function(){return!1});return"function"==typeof t?n=t:Array.isArray(t)&&(n=function(e){return t.indexOf(e)>-1}),n(e)},e.prototype.isSelected=function(e){return this.itemsSelected.has(e)},e.prototype.applyChanges=function(){var e=Array.from(this.itemsSelected.values());this.onChange.emit(e),this.dropdown.hide()},e.prototype.selectAll=function(e){var t=this;this.filteredItems.forEach((function(n){return t.onChangeItem(e,n)}))},e.prototype.allSelected=function(){return this.filteredItems.length===this.itemsSelected.size},e.prototype.onChangeItem=function(e,t){e?this.itemsSelected.add(t):this.itemsSelected.delete(t)},e.prototype.updateFiltered=function(e){if(e){var t=new RegExp(e,"i");this.filteredItems=this.items.filter((function(e){var n=e.name;return t.test(n)}))}else this.filteredItems=this.items},e.prototype.ngOnChanges=function(e){this.isOpen||(e.items||e.selected||e.applyLabel)&&(this.updateSelected(),this.updateLabel())},e.prototype.updateLabel=function(){var e=this,t=this.items.filter((function(t){return e.outterSelected(t)}));"string"==typeof this.selectedLabel?this.labelText=this.selectedLabel:"function"==typeof this.selectedLabel?this.labelText=this.selectedLabel(t):this.labelText=t.map((function(e){return e.name})).join(", ")},e.prototype.updateSelected=function(){var e=this,t=this.itemsSelected,n=this.items;t.clear(),n.forEach((function(n){e.outterSelected(n)&&t.add(n)})),this.filteredItems=n},fc([t.Input()],e.prototype,"placeholder",void 0),fc([t.Input()],e.prototype,"selectedLabel",void 0),fc([t.Input()],e.prototype,"applyLabel",void 0),fc([t.Input()],e.prototype,"items",void 0),fc([t.Input()],e.prototype,"selected",void 0),fc([t.Output()],e.prototype,"onChange",void 0),fc([t.ViewChild(Qi.BsDropdownDirective,{static:!1})],e.prototype,"dropdown",void 0),fc([t.HostListener("click",["$event"])],e.prototype,"preventClick",null),e=fc([t.Component({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">{{ labelText | translate }}</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 />\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="{{ \'All\' | translate }}"\n class="c8y-checkbox input-sm"\n ng-click="vm.toggleSelectAll(); $event.preventDefault()"\n >\n <input\n type="checkbox"\n [checked]="allSelected()"\n (change)="selectAll($event.target.checked)"\n style="margin-top:0;"\n /><span></span> <span span class="label-text " translate>All</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'})],e)}(),gm=function(){function e(){this.click=new t.EventEmitter}return fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Output()],e.prototype,"click",void 0),e=fc([t.Component({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'})],e)}(),fm=function(){function e(){}return fc([t.Input()],e.prototype,"item",void 0),e=fc([t.Component({selector:"c8y-list-item-collapse, c8y-li-collapse",template:"<ng-content></ng-content>\n"})],e)}(),hm=function(){function e(){}return fc([t.Input()],e.prototype,"footer",void 0),e=fc([t.Component({selector:"c8y-list-item-footer, c8y-li-footer",template:'<span *ngIf="footer">{{footer}}</span>\n<ng-content></ng-content>\n'})],e)}(),ym=function(){function e(e){this.element=e,this.active=!1,this.collapsed=!0,this.showFooter=!1,this.showActions=!1,this.showCollapse=!1,this.dropdownUp=!1,this.ACTION_ITEM_HEIGHT=40}return e.prototype.ngAfterContentChecked=function(){this.actions=this.itemActions.toArray(),this.showFooter=null!=this.itemFooter,this.showActions=this.itemActions.length>0,this.showCollapse=null!=this.itemCollapse},e.prototype.showDropdownUp=function(){var e=this.element.nativeElement.getBoundingClientRect();this.dropdownUp=e.bottom+this.itemActions.length*this.ACTION_ITEM_HEIGHT>window.innerHeight},e.ctorParameters=function(){return[{type:t.ElementRef}]},fc([t.Input(),t.HostBinding("class.active")],e.prototype,"active",void 0),fc([t.Input()],e.prototype,"collapsed",void 0),fc([t.ContentChild(hm,{static:!1})],e.prototype,"itemFooter",void 0),fc([t.ContentChildren(gm)],e.prototype,"itemActions",void 0),fc([t.ContentChild(fm,{static:!1})],e.prototype,"itemCollapse",void 0),e=fc([t.Component({selector:"c8y-list-item, c8y-li",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)="collapsed = !collapsed"\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="{{ \'Options\' | 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',host:{class:"c8y-list__item"}})],e)}(),vm=function(){function e(){var e;this.required=!1,this.displayProperty="name",this.name=this.displayProperty,this.selected=((e={id:null})[this.displayProperty]="",e),this.selectedChange=new t.EventEmitter,this.onSearch=new t.EventEmitter,this.KEYCODE_UP=38,this.KEYCODE_DOWN=40,this.KEYCODE_TAB=9,this.KEYCODE_ENTER=13,this.KEYCODE_ESC=27}return e.prototype.onShown=function(){this.searchControl.nativeElement.focus()},e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},e.prototype.ngAfterViewInit=function(){var e=this;this.subscription=a.fromEvent(this.searchControl.nativeElement,"keydown").pipe(s.map((function(t){return e.handleKeyboard(t)})),s.filter((function(e){return e})),s.debounceTime(200),s.map((function(e){return e.target.value})),s.distinctUntilChanged()).subscribe((function(t){var n;e.selectedChange.emit(((n={id:null})[e.displayProperty]=t,n)),e.onSearch.emit(t)}))},e.prototype.handleKeyboard=function(e){var t=e.keyCode;if(![this.KEYCODE_ENTER,this.KEYCODE_DOWN,this.KEYCODE_TAB,this.KEYCODE_UP].includes(t))return t===this.KEYCODE_ESC?(e.stopPropagation(),this.dropdown.hide(),void this.searchControl.nativeElement.blur()):(this.dropdown.show(),e);var n=this.list.toArray(),a=o.findIndex(n,(function(e){return e.active}));if(t===this.KEYCODE_ENTER||t===this.KEYCODE_TAB)a>-1&&(e.preventDefault(),n[a].element.nativeElement.click()),this.dropdown.hide(),this.searchControl.nativeElement.blur();else{this.dropdown.show();var s=t===this.KEYCODE_DOWN?1:-1;a>-1&&(n[a].active=!1),n[a+s]&&(n[a+s].active=!0)}},fc([t.ViewChild("searchControl",{static:!1})],e.prototype,"searchControl",void 0),fc([t.ViewChild("dropdown",{static:!1})],e.prototype,"dropdown",void 0),fc([t.ContentChildren(ym)],e.prototype,"list",void 0),fc([t.Input()],e.prototype,"required",void 0),fc([t.Input()],e.prototype,"placeholder",void 0),fc([t.Input()],e.prototype,"displayProperty",void 0),fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"selected",void 0),fc([t.Output()],e.prototype,"selectedChange",void 0),fc([t.Output()],e.prototype,"onSearch",void 0),e=fc([t.Component({selector:"c8y-typeahead",template:'<div\n class="c8y-child-assets-selector dropdown"\n dropdown\n #dropdown="bs-dropdown"\n [autoClose]="true"\n (onShown)="onShown()"\n>\n <div class="input-group input-group-dropdown" dropdownToggle>\n <input\n #searchControl\n type="text"\n class="form-control"\n [required]="required"\n [ngModel]="selected ? selected[displayProperty] : \'\'"\n [value]="selected ? selected[displayProperty] : \'\'"\n [placeholder]="placeholder | translate"\n [name]="name"\n />\n\n <span\n class="label label-info"\n style="position: absolute; right: 40px; top: 10px; z-index: 10;"\n translate\n *ngIf="selected ? selected.id === null && selected[displayProperty].length > 0 : false"\n >New</span\n >\n\n <span class="input-group-btn">\n <button type="button" class="btn btn-clean">\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',viewProviders:[{provide:tc.ControlContainer,useExisting:tc.NgForm}]})],e)}(),jm=function(){function e(){}return e=fc([t.Component({selector:"c8y-list-group",template:"<ng-content></ng-content>\n\n",host:{class:"c8y-list__group"}})],e)}(),bm=function(){function e(){}return fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"status",void 0),e=fc([t.Component({selector:"c8y-list-item-icon, c8y-li-icon",template:'<i [c8yIcon]="icon" [ngClass]="status" *ngIf="icon"></i>\n<ng-content></ng-content>',host:{class:"c8y-list__item__icon"}})],e)}(),wm=function(){function e(){}return fc([t.Input()],e.prototype,"body",void 0),e=fc([t.Component({selector:"c8y-list-item-body, c8y-li-body",template:'<span *ngIf="body">{{body}}</span>\n<ng-content></ng-content>\n'})],e)}(),Sm=function(){function e(){this.selected=!1,this.onSelect=new t.EventEmitter}return e.prototype.ngOnChanges=function(e){e.selected&&!e.selected.firstChange&&this.onSelect.emit(e.selected.currentValue)},fc([t.Input()],e.prototype,"selected",void 0),fc([t.Output()],e.prototype,"onSelect",void 0),e=fc([t.Component({selector:"c8y-list-item-checkbox, c8y-li-checkbox",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',host:{class:"c8y-list__item__check"}})],e)}(),Cm=function(){function e(){this.selected=!1,this.name="list_item_radio",this.onSelect=new t.EventEmitter}return e.prototype.ngOnChanges=function(e){e.selected&&!e.selected.firstChange&&this.onSelect.emit(e.selected.currentValue)},fc([t.Input()],e.prototype,"selected",void 0),fc([t.Input()],e.prototype,"name",void 0),fc([t.Output()],e.prototype,"onSelect",void 0),e=fc([t.Component({selector:"c8y-list-item-radio, c8y-li-radio",template:'<label class="c8y-checkbox">\n <input\n type="radio"\n [name]="name"\n [checked]="selected"\n (change)="onSelect.emit($event.target.checked); (false)"\n />\n <span></span>\n</label>\n<ng-content></ng-content>\n',host:{class:"c8y-list__item__radio"}})],e)}(),Im=function(){function e(){}return e=fc([t.NgModule({imports:[Fu,Xi.CollapseModule.forRoot(),Qi.BsDropdownModule],declarations:[jm,ym,bm,wm,hm,gm,fm,Sm,Cm],exports:[jm,ym,bm,wm,hm,gm,fm,Sm,Cm]})],e)}(),Pm=function(){function e(){}return e=fc([t.NgModule({imports:[Qi.BsDropdownModule.forRoot(),Fu,Im,zd],exports:[mm,vm],declarations:[mm,vm]})],e)}(),Om=function(){function e(e){this.elementRef=e,this.htmlAnchor=this.elementRef.nativeElement,this.htmlAnchor.hasAttribute("target")||this.htmlAnchor.setAttribute("target","_blank")}return Object.defineProperty(e.prototype,"baseHref",{set:function(e){this.htmlAnchor.href=e+"/"+this.c8yGuideHref},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:t.ElementRef}]},fc([t.Input("c8y-guide-href")],e.prototype,"c8yGuideHref",void 0),e=fc([t.Directive({selector:"[c8y-guide-href]"})],e)}(),_m=function(){function e(e){this.docs=e}return e.prototype.ngOnInit=function(){this.baseUrl=this.docs.getBaseUrl()},e.prototype.ngAfterViewInit=function(){var e=this;this.links.forEach((function(t){t.baseHref=e.baseUrl}))},e.ctorParameters=function(){return[{type:np}]},fc([t.ContentChildren(Om,{descendants:!0})],e.prototype,"links",void 0),e=fc([t.Component({selector:"[c8y-guide-docs]",template:'<ng-container *ngIf="!!baseUrl">\n <ng-content></ng-content>\n</ng-container>\n'})],e)}(),xm=function(){function e(){}return e=fc([t.NgModule({declarations:[Om,_m],imports:[u.CommonModule],exports:[Om,_m],providers:[np]})],e)}(),Em=new t.InjectionToken("Hook Dynamic Component"),km=new t.InjectionToken("Hook Dynamic Component @deprecated"),Tm=function(e){function o(t,n){var s=e.call(this)||this;return s.injector=t,s.refreshTrigger=new a.Subject,s.state$=new a.BehaviorSubject(new Set),s.items$=Sc([function(){return s.injector.get(Em,[])},function(){return s.getComponentsViaDeprecatedHook()}],n,!1),s.items$.subscribe((function(e){e.forEach((function(e){s.state.add(e)})),s.emitNewState()})),s}return mc(o,e),o.prototype.getComponentsViaDeprecatedHook=function(){var e=this.injector.get(km,[]);return e&&e.length&&"production"!==__MODE__&&console.warn("HOOK_COMPONENT is now deprecated. Use HOOK_COMPONENTS instead."),e},o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.getById$=function(e){return this.state$.pipe(s.filter((function(e){return e.size>0})),s.mergeMap((function(t){return a.of(Array.from(t).find((function(t){return t.id===e})))})),s.take(1))},o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),Am=function(){function e(e,t){this.componentFactoryResolver=e,this.dynamicComponentService=t,this.mode="component",this.notFoundError=!0,this.expandErrorDetails=!1}return e.prototype.ngOnChanges=function(){var e=this;this.dynamicComponentService.getById$(this.componentId).subscribe((function(t){return e.loadComponent(t)}))},e.prototype.loadComponent=function(e){try{this.error=void 0;var t=this.componentFactoryResolver.resolveComponentFactory("component"===this.mode?e.component:e.configComponent);this.host.clear(),this.host.createComponent(t).instance.config=this.config}catch(e){this.error=e}},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:Tm}]},fc([t.Input()],e.prototype,"componentId",void 0),fc([t.Input()],e.prototype,"config",void 0),fc([t.Input()],e.prototype,"mode",void 0),fc([t.Input()],e.prototype,"notFoundError",void 0),fc([t.ViewChild("host",{read:t.ViewContainerRef,static:!0})],e.prototype,"host",void 0),e=fc([t.Component({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'})],e)}(),Dm=function(){function e(){}return e=fc([t.NgModule({declarations:[Am],imports:[u.CommonModule,Xi.CollapseModule,n.RouterModule.forChild([]),wu],exports:[Am],providers:[Tm]})],e)}(),Nm=function(){function e(){}return fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-dashboard-child-action",template:"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>\n"})],e)}(),Mm=function(){function e(){}return e=fc([t.Component({selector:"c8y-dashboard-child-title",template:'<div class="card-title">\n <ng-content></ng-content>\n</div>\n'})],e)}(),qm=function(){function e(e,n){this.element=e,this.sanitizer=n,this.columns=12,this.gap=12,this.rows="auto",this.dashboardChange=new t.EventEmitter,this.lastRow=1,this.DEFAULT_ROW_SIZE=68}return Object.defineProperty(e.prototype,"columnSize",{get:function(){return this.dashboardRect.width/this.columns},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rowSize",{get:function(){return"auto"===this.rows?this.DEFAULT_ROW_SIZE:this.calculateRowSize()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inlineStyle",{get:function(){return this.sanitizer.bypassSecurityTrustStyle("\n -ms-grid-columns: (1fr)["+this.columns+"];\n grid-template-columns: repeat("+this.columns+", 1fr);\n "+("auto"!==this.rows?"grid-template-rows: repeat("+this.rows+", 1fr);":"")+"\n grid-auto-rows: "+(this.rowSize+this.gap)+"px;\n -ms-grid-rows: ("+(this.rowSize+this.gap)+"px)["+("auto"===this.rows?this.lastRow:this.rows)+"];\n margin: -"+this.gap+"px;\n ")},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this.onResize(),this.getLastRow()},e.prototype.onResize=function(){this.updateRectSize()},e.prototype.getLastRow=function(){var e=1;this.children.forEach((function(t){e<t.y+t.width&&(e=t.y+t.width)})),this.lastRow=e+1},e.prototype.updateRectSize=function(){var e=this.element.nativeElement;this.dashboardRect=e.getBoundingClientRect()},e.prototype.emitChange=function(e){this.dashboardChange.emit({source:e,children:this.children.toArray()})},e.prototype.calculateRowSize=function(){return this.dashboardRect.height/this.rows},e.ctorParameters=function(){return[{type:t.ElementRef},{type:nc.DomSanitizer}]},fc([t.ContentChildren(t.forwardRef((function(){return Rm})))],e.prototype,"children",void 0),fc([t.Input()],e.prototype,"columns",void 0),fc([t.Input()],e.prototype,"gap",void 0),fc([t.Input()],e.prototype,"rows",void 0),fc([t.Output()],e.prototype,"dashboardChange",void 0),fc([t.HostBinding("attr.style")],e.prototype,"inlineStyle",null),fc([t.HostListener("window:resize")],e.prototype,"onResize",null),e=fc([t.Component({selector:"c8y-dashboard",template:"<ng-content></ng-content>\n",host:{class:"c8y-grid-dashboard dashboard-grid"},changeDetection:t.ChangeDetectionStrategy.OnPush})],e)}(),Lm=function(){function e(e){this.MIN_WIDTH=2,this.MIN_HEIGHT=1,this.PIXEL_SIZE_THRESHOLD=10,this.diffX=0,this.diffY=0,this.dashboard=e.dashboard,this.children=e.dashboard.children?e.dashboard.children.filter((function(t){return e!==t})):[],this.child=e}return Object.defineProperty(e.prototype,"resize$",{get:function(){var e=this;return this.child.dragSource.moved.pipe(s.map((function(t){return e.getPixelSize(t)})),s.tap((function(t){return e.setPixelSize(t)})),s.map((function(t){return e.getDimensionSize(t)})),s.distinctUntilChanged((function(e,t){return e.width===t.width&&e.height===t.height})),s.map((function(t){return e.setDimension(t)})),this.arrangePipe())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"drag$",{get:function(){var e=this;return this.child.dragSource.moved.pipe(s.map((function(t){return e.getDimensionPosition(t)})),s.filter((function(t){return t.x>=0&&t.x<=e.dashboard.columns-e.child.width&&t.y>=0})),s.distinctUntilChanged((function(e,t){return e.x===t.x&&e.y===t.y})),this.arrangePipe())},enumerable:!0,configurable:!0}),e.prototype.findFreeDimension=function(){var e=-1,t=0,n=!1,a=this.child,s=a.width,o=a.height;if(s>this.dashboard.columns)throw new Error("The child does not fit on the current dashboard.");do{for(t=0,e++;t+s<=this.dashboard.columns;){if(0===this.getCollided({x:t,y:e,width:s,height:o}).length){n=!0;break}t++}}while(!n);return{x:t,y:e,width:s,height:o}},e.prototype.collapseUpAll=function(){return o.sortBy(bc([this.child],this.children),["y"]).forEach((function(t){var n=new e(t),a=n.collapseUp(t);n.setDimension(a)}))},e.prototype.arrangeAll=function(t){var n=t.current,a=t.scan,s=t.spacing,r=t.origin;return this.getCollided(n,o.sortBy(a,["y"])).map((function(t){return new e(t).setDimension(gc({},t,{y:s})),{current:t,scan:a.filter((function(e){return e!==t})),spacing:t.y+t.height,origin:r}}))},e.prototype.arrangePipe=function(){var e=this;return a.pipe(s.map((function(t){return{current:t,scan:e.children,spacing:t.y+t.height,origin:gc({},t)}})),s.expand((function(t){return e.arrangeAll(t)})),s.map((function(e){return e.origin})),s.map((function(t){return e.setDimension(t,!0)})),s.tap((function(){return e.collapseUpAll()})),s.tap((function(){return e.dashboard.getLastRow()})))},e.prototype.collapseUp=function(e){for(var t=e.y;t>0&&0===this.getCollided(gc({},e,{y:t-1})).length;)t--;return gc({},e,{y:t})},e.prototype.setDimension=function(e,t){if(void 0===t&&(t=!1),!(t&&this.getCollided(e).length>0))return this.child.x=e.x,this.child.y=e.y,e.width>=this.MIN_WIDTH&&e.x+e.width<=this.dashboard.columns?this.child.width=e.width:e.width<this.MIN_WIDTH?e.width=this.MIN_WIDTH:e.width=this.dashboard.columns-e.x,e.height>=this.MIN_HEIGHT?this.child.height=e.height:e.height=this.MIN_WIDTH,e},e.prototype.setPixelSize=function(e){var t=e.width,n=e.height;t>=this.dashboard.columnSize*this.MIN_WIDTH-this.dashboard.gap&&(this.child.pxWidth=t+this.PIXEL_SIZE_THRESHOLD),n>=this.dashboard.rowSize*this.MIN_HEIGHT-this.dashboard.gap&&(this.child.pxHeight=n+this.PIXEL_SIZE_THRESHOLD)},e.prototype.getPixelSize=function(e){var t=e.source.element.nativeElement.parentNode;if(!this.diffX){var n=t.getBoundingClientRect();this.diffX=n.left,this.diffY=n.top}var a=e.pointerPosition,s=a.x,o=a.y;return{width:Math.round(s-this.diffX),height:Math.round(o-this.diffY),pointer:{x:s,y:o}}},e.prototype.getDimensionSize=function(e){var t=this.child,n=t.x,a=t.y,s=this.dashboard.dashboardRect,o=this.dashboard.columnSize,r=this.dashboard.rowSize+this.dashboard.gap;return{x:n,y:a,width:Math.round((e.pointer.x-s.left+this.dashboard.gap)/o)-n,height:Math.round((e.pointer.y-s.top+this.dashboard.gap)/r)-a}},e.prototype.getDimensionPosition=function(e){var t=e.source.element.nativeElement.nextElementSibling;if(!this.diffX){var n=t.getBoundingClientRect();this.diffX=e.pointerPosition.x-n.left,this.diffY=e.pointerPosition.y-n.top}var a=e.pointerPosition.x-this.diffX,s=e.pointerPosition.y-this.diffY,o=this.child,r=o.width,l=o.height,i=this.dashboard.dashboardRect,c=this.dashboard.columnSize,u=this.dashboard.rowSize+this.dashboard.gap/2;return{x:Math.round((a-i.left)/c),y:Math.round((s-i.top)/u),width:r,height:l}},e.prototype.doesCollide=function(e,t){return void 0!==t.x&&!(e.y+e.height-1<t.y||e.y>t.y+t.height-1||e.x+e.width-1<t.x||e.x>t.x+t.width-1)},e.prototype.getCollided=function(e,t){var n=this;return void 0===t&&(t=this.children),t.filter((function(t){return n.doesCollide(e,t)}))},e}(),Rm=function(){function e(e,n,a){this.dashboard=e,this.sanitizer=n,this.element=a,this.actions=[],this.isResize=!1,this.isDragging=!1,this.klasses={},this._pxWidth="100%",this._pxHeight="100%",this.width=1,this.height=1,this.margin=12,this.isFrozen=!1,this.useIntersection=!1,this.changeStart=new t.EventEmitter,this.changeEnd=new t.EventEmitter,this.class={},this.intersected=!1}return Object.defineProperty(e.prototype,"pxWidth",{set:function(e){this._pxWidth=e+"px"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pxHeight",{set:function(e){this._pxHeight=e+"px"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inlineStyle",{get:function(){return this.sanitizer.bypassSecurityTrustStyle("\n grid-column-start: "+(this.x+1)+";\n -ms-grid-column: "+(this.x+1)+";\n grid-row-start: "+(this.y+1)+";\n -ms-grid-row: "+(this.y+1)+";\n grid-column-end: span "+this.width+";\n -ms-grid-column-span: "+this.width+";\n grid-row-end: span "+this.height+";\n -ms-grid-row-span: "+this.height+";\n display: block;\n margin: "+(this.margin||12)+"px;\n ")},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this.klasses=gc({card:!0,"card-dashboard":!0,disabled:this.isFrozen,"on-resize":this.isResize},this.class)},e.prototype.ngOnInit=function(){var e=this;if(void 0!==this.x&&void 0!==this.y||setTimeout((function(){return e.setDynamicDimension()})),this.useIntersection&&"IntersectionObserver"in window){var t=new IntersectionObserver((function(n){return e.intersected=e.childInView(n[0],t)}));t.observe(this.element.nativeElement)}else this.intersected=!0},e.prototype.setDynamicDimension=function(){var e=new Lm(this).findFreeDimension(),t=e.x,n=e.y;this.x=t,this.y=n},e.prototype.resizeStarted=function(e){this.isResize=!0,this.dashboard.updateRectSize(),this.dragSource=e.source;var t=new Lm(this);this.changeSubscription=t.resize$.subscribe(),this.changeStart.emit(this),this.ngOnChanges()},e.prototype.dragStarted=function(e){this.isDragging=!0,this.dashboard.updateRectSize(),this.dragSource=e.source;var t=new Lm(this);this.changeSubscription=t.drag$.subscribe(),this.changeStart.emit(this)},e.prototype.reset=function(e){this.isResize=!1,this.isDragging=!1,this._pxWidth="100%",this._pxHeight="100%",this.ngOnChanges(),e&&e.source.reset(),this.changeSubscription&&(this.changeSubscription.unsubscribe(),this.dashboard.emitChange(this),this.changeEnd.emit(this))},e.prototype.childInView=function(e,t){return!!e.isIntersecting&&(t.unobserve(e.target),!0)},e.ctorParameters=function(){return[{type:qm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return qm}))]}]},{type:nc.DomSanitizer},{type:t.ElementRef}]},fc([t.ContentChildren(Nm)],e.prototype,"actions",void 0),fc([t.Input()],e.prototype,"x",void 0),fc([t.Input()],e.prototype,"y",void 0),fc([t.Input()],e.prototype,"width",void 0),fc([t.Input()],e.prototype,"height",void 0),fc([t.Input()],e.prototype,"data",void 0),fc([t.Input()],e.prototype,"margin",void 0),fc([t.Input()],e.prototype,"isFrozen",void 0),fc([t.Input()],e.prototype,"useIntersection",void 0),fc([t.Output()],e.prototype,"changeStart",void 0),fc([t.Output()],e.prototype,"changeEnd",void 0),fc([t.Input()],e.prototype,"class",void 0),fc([t.HostBinding("attr.style")],e.prototype,"inlineStyle",null),e=fc([t.Component({selector:"c8y-dashboard-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',host:{class:"dashboard-grid-child"}}),hc(0,t.Inject(t.forwardRef((function(){return qm}))))],e)}(),$m=function(){function e(){this.settings={isFrozen:!1,isDisabled:!1,widgetMargin:12,translateWidgetTitle:!1,defaultHeight:4,defaultWidth:4,allowFullscreen:!1,canDelete:!0,isLoading:!1},this.onAddWidget=new t.EventEmitter,this.onEditWidget=new t.EventEmitter,this.onDeleteWidget=new t.EventEmitter,this.onChangeDashboard=new t.EventEmitter,this.onEditDashboard=new t.EventEmitter,this.onDeleteDashboard=new t.EventEmitter,this.onFreeze=new t.EventEmitter,this.onChangeStart=new t.EventEmitter,this.onChangeEnd=new t.EventEmitter}return Object.defineProperty(e.prototype,"_settings",{set:function(e){this.settings=gc({},this.settings,e)},enumerable:!0,configurable:!0}),e.prototype.toggleFullscreen=function(){var e=document.body,t=document;this.fullScreen()?t.exitFullscreen?t.exitFullscreen():t.msExitFullscreen?t.msExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.webkitExitFullscreen&&t.webkitExitFullscreen():e.requestFullscreen?e.requestFullscreen():e.msRequestFullscreen?e.msRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen&&e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)},e.prototype.fullScreen=function(){var e=document;return!!(e.fullscreenElement||e.mozFullScreenElement||e.webkitFullscreenElement||e.msFullscreenElement)},fc([t.Input()],e.prototype,"widgets",void 0),fc([t.Input()],e.prototype,"context",void 0),fc([t.Input()],e.prototype,"contextDashboard",void 0),fc([t.Input("settings")],e.prototype,"_settings",null),fc([t.Output()],e.prototype,"onAddWidget",void 0),fc([t.Output()],e.prototype,"onEditWidget",void 0),fc([t.Output()],e.prototype,"onDeleteWidget",void 0),fc([t.Output()],e.prototype,"onChangeDashboard",void 0),fc([t.Output()],e.prototype,"onEditDashboard",void 0),fc([t.Output()],e.prototype,"onDeleteDashboard",void 0),fc([t.Output()],e.prototype,"onFreeze",void 0),fc([t.Output()],e.prototype,"onChangeStart",void 0),fc([t.Output()],e.prototype,"onChangeEnd",void 0),e=fc([t.Component({selector:"c8y-widgets-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\x3c!-- empty state --\x3e\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 translate\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\x3c!-- /.empty settings --\x3e\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',host:{style:"\n display: block;\n ",class:"dashboard c8y-grid-dashboard"}})],e)}(),Fm=function(){function e(){}return e=fc([t.NgModule({declarations:[Rm,qm,Mm,Nm,$m],imports:[Fu,Bu,Dm,cc.DragDropModule,Qi.BsDropdownModule.forRoot(),pp,xm],exports:[qm,Rm,Mm,Nm,$m]})],e)}(),Um=function(){function e(e){this.templateRef=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},fc([t.Input("c8yStepperIcon")],e.prototype,"name",void 0),e=fc([t.Directive({selector:"ng-template[c8yStepperIcon]"})],e)}(),Gm=function(e){function n(){var n=null!==e&&e.apply(this,arguments)||this;return n.disableDefaultIcons={edit:!0,done:!0},n.onStepChange=new t.EventEmitter,n._iconOverrides={},n._stepIndex=new a.Subject,n}var s;return mc(n,e),s=n,n.prototype.ngAfterContentInit=function(){var e=this;this._icons.forEach((function(t){var n=t.name,a=t.templateRef;return e._iconOverrides[n]=a})),this._stepIndexSubscription=this._stepIndex.subscribe((function(t){return e.onStepChange.emit(t)}))},n.prototype.ngOnDestroy=function(){this._stepIndexSubscription&&!this._stepIndexSubscription.closed&&this._stepIndexSubscription.unsubscribe()},n.prototype.getIndicatorType=function(e,t){var n=t;switch(this._getIndicatorType(e,t)){case dc.STEP_STATE.EDIT:this.disableDefaultIcons.edit||(n=dc.STEP_STATE.EDIT);break;case dc.STEP_STATE.DONE:n=this.disableDefaultIcons.done?"_done":dc.STEP_STATE.DONE}return n},n.prototype.setIndex=function(e){this._stepIndex.next(e)},fc([t.Input()],n.prototype,"disableDefaultIcons",void 0),fc([t.Input()],n.prototype,"customClasses",void 0),fc([t.Output()],n.prototype,"onStepChange",void 0),fc([t.ContentChildren(Um,{descendants:!0})],n.prototype,"_icons",void 0),n=s=fc([t.Component({selector:"c8y-stepper",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 tooltip="{{ step.label | translate }}"\n placement="bottom"\n container="body"\n >\n </c8y-stepper-progress>\n </li>\n</ul>\n<ng-container [ngTemplateOutlet]="selected.content"></ng-container>\n',providers:[{provide:dc.CdkStepper,useExisting:s}]})],n)}(dc.CdkStepper),Bm=function(){function e(){this.onStepClicked=new t.EventEmitter}return e.prototype.stepSelected=function(){this.onStepClicked.emit(this.index)},fc([t.Input()],e.prototype,"iconOverrides",void 0),fc([t.Input()],e.prototype,"index",void 0),fc([t.Input()],e.prototype,"selected",void 0),fc([t.Input()],e.prototype,"state",void 0),fc([t.Output()],e.prototype,"onStepClicked",void 0),e=fc([t.Component({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'})],e)}(),zm=function(){function e(e,n){this.stepper=e,this.step=n,this.pending=!1,this.onCancel=new t.EventEmitter,this.onNext=new t.EventEmitter,this.onBack=new t.EventEmitter,this.showBtns={cancel:!1,back:!1,next:!1},this.disabled=!1}return e.prototype.ngAfterContentInit=function(){var e=this;this.showBtns.cancel=this.onCancel.observers.length>0,this.stepper&&this.stepper.steps&&this.step&&(this.showBtns.back=this.stepper.steps.first!==this.step,this.showBtns.next=this.stepper.steps.last!==this.step),this.step&&this.step.stepControl&&(this.disabled=this.step.stepControl.invalid,this.statusChangeSubscription=this.step.stepControl.statusChanges.subscribe((function(t){e.disabled=e.step.stepControl.invalid})))},e.prototype.ngOnChanges=function(e){e&&e.pending&&(this.disabled=e.pending.currentValue)},e.prototype.ngOnDestroy=function(){this.statusChangeSubscription&&!this.statusChangeSubscription.closed&&this.statusChangeSubscription.unsubscribe()},e.prototype.cancel=function(){this.onCancel.emit()},e.prototype.next=function(){this.onNext.observers.length>0?this.onNext.emit({stepper:this.stepper,step:this.step}):this.stepper.next()},e.prototype.back=function(){this.onBack.observers.length>0?this.onBack.emit({stepper:this.stepper,step:this.step}):this.stepper.previous()},e.ctorParameters=function(){return[{type:Gm,decorators:[{type:t.Host}]},{type:dc.CdkStep,decorators:[{type:t.Host}]}]},fc([t.Input()],e.prototype,"labels",void 0),fc([t.Input()],e.prototype,"pending",void 0),fc([t.Output()],e.prototype,"onCancel",void 0),fc([t.Output()],e.prototype,"onNext",void 0),fc([t.Output()],e.prototype,"onBack",void 0),e=fc([t.Component({selector:"c8y-stepper-buttons",template:'<div class="text-center">\n <button *ngIf="showBtns.cancel" (click)="cancel()" type="button" class="btn btn-default">\n <span>{{labels?.cancel || \'Cancel\' | translate}}</span>\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>{{ labels?.back || \'Back\' | translate }}</span>\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>{{labels?.next || \'Next\' | translate }}</span>\n </button>\n</div>\n'}),hc(0,t.Host()),hc(1,t.Host())],e)}(),Hm={displayDefaultIndicatorType:!1},Vm=function(){function e(){}return e=fc([t.NgModule({imports:[Fu,dc.CdkStepperModule,ec.TooltipModule],declarations:[Gm,Um,Bm,zm],exports:[Gm,dc.CdkStep,Um,zm],providers:[{provide:dc.STEPPER_GLOBAL_OPTIONS,useValue:Hm}]})],e)}();try{require("ngx-bootstrap/datepicker/bs-datepicker.css")}catch(e){}var Km,Wm=function(){function e(){}var n;return n=e,e.forRoot=function(){return{ngModule:n,providers:bc(Fu.providers(),vp.providers())}},e=n=fc([t.NgModule({exports:[Bu,Vu,Ju,Cp,td,Fu,Lp,um,pm,pp,vp,pd,up,Yd,ld,Pm,wp,Jd,zd,im,xm,Vm,Dm,Fm,Im]})],e)}(),Ym=new t.InjectionToken("RouteFactory"),Zm=function(){function e(e,t){var n=this;this.router=t,Sc(e).subscribe((function(e){n.addRoute(e)}))}return e.prototype.addRoute=function(e){this.addRoutes(Array.isArray(e)?e:[e])},e.prototype.addRoutes=function(e){var t=this,n=this.router.config.find((function(e){return"**"===e.path}));this.router.resetConfig(bc(this.router.config.filter((function(e){return"**"!==e.path})),e.map((function(e){return t.convertRoute(t.router.config,e)})),[n]).filter(Boolean))},e.prototype.convertRoute=function(e,t){if(!t.context)return t;e.forEach((function(e){e.data&&e.data.context===t.context&&(e.children=bc([t],e.children||[]))}))},e.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[Ym]}]},{type:n.Router}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(Ym,8),t.ɵɵinject(n.Router))},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"}),hc(0,t.Optional()),hc(0,t.Inject(Ym))],e)}(),Jm=function(){function e(e,t){this.injector=e,this.router=t}return Object.defineProperty(e.prototype,"routerStateSnapshot",{get:function(){return this.router.routerState.snapshot},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){var t=this;return a.from(e.routeConfig.children||[]).pipe(s.mergeMap((function(n){return a.from(t.getGuards(n)).pipe(s.map((function(n){return n.canActivate(e,t.routerStateSnapshot)})),s.mergeMap((function(e){return a.isObservable(e)?e:e&&"function"==typeof e.then?a.from(e):a.of(e)})),s.tap((function(e){Array.isArray(e)&&(n.tabs=e)})),s.every((function(e){return!!e})),s.filter((function(e){return e})),s.mergeMap((function(){return Array.isArray(n.tabs)?a.from(n.tabs):a.of(n)})),s.map((function(t){return t.label?{label:t.label,icon:t.icon,path:e.url.join("/")+"/"+t.path,priority:t.priority}:void 0})))})),s.filter((function(e){return!!e})),s.toArray())},e.prototype.getGuards=function(e){var t=this,n=(e.canActivate||[]).map((function(e){return t.injector.get(e)}));return e.data&&e.data.showIf&&n.push({canActivate:e.data.showIf}),n},e.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},e=fc([t.Injectable()],e)}();(Km=e.ViewContext||(e.ViewContext={})).Device="device/:id",Km.Group="group/:id",Km.User="users/:id",Km.Application="applications/:id",Km.SubscribedApplications="subscribedApplications/:id",Km.Tenant="tenants/:id";var Xm=function(){function t(){}return t.contextToService=function(e){return t.services.get(e)},t.services=new Map([[e.ViewContext.Device,l.InventoryService],[e.ViewContext.Group,l.InventoryService],[e.ViewContext.User,l.UserService],[e.ViewContext.Application,l.ApplicationService],[e.ViewContext.SubscribedApplications,l.ApplicationService],[e.ViewContext.Tenant,l.TenantService]]),t}(),Qm=function(){function e(e,t,n,s,o,r){this.tabsResolver=e,this.tabsService=t,this.route=n,this.router=s,this.apiService=o,this.injector=r,this.lastAddedTabs=[],this.refreshTrigger=new a.Subject}return e.prototype.ngOnInit=function(){var e=this;this.routerSubscription=this.router.events.pipe(s.filter((function(e){return e instanceof n.NavigationEnd}))).subscribe((function(){return e.redirectToFirstTab()}));var t=this.refreshTrigger.pipe(s.merge(this.updatedContext()),s.switchMap((function(){return e.tabsResolver.resolve(e.route.snapshot)})));this.dataSubscription=this.route.data.pipe(s.map((function(e){return e.tabs})),s.merge(t)).subscribe((function(t){return e.updateTabs(t)}))},e.prototype.ngOnDestroy=function(){var e=this;this.dataSubscription.unsubscribe(),this.routerSubscription.unsubscribe(),this.lastAddedTabs.forEach((function(t){return e.tabsService.remove(t)}))},e.prototype.refreshTabs=function(){this.refreshTrigger.next()},e.prototype.updatedContext=function(){var e=this.route.snapshot.data,t=Xm.contextToService(e.context);if(t){var n=this.injector.get(t).getDetailUrl(e.contextData).replace(/\d+/g,"?\\d*"),s=new RegExp(n,"i"),o=new RegExp(n+"/child","i");return this.apiService.hookResponse((function(e){var t=e.url,n=e.method,a=s.test(t)&&["POST","PUT"].includes(n),r=o.test(t)&&["POST","DELETE"].includes(n);return a||r}))}return a.NEVER},e.prototype.updateTabs=function(e){var t=this;void 0===e&&(e=[]),this.lastAddedTabs.forEach((function(e){return t.tabsService.remove(e)})),this.lastAddedTabs=e,e.forEach((function(e){return t.tabsService.add(e)})),this.redirectToFirstTab()},e.prototype.redirectToFirstTab=function(){var e=this;this.needsRedirect()&&this.tabsService.firstTab$.subscribe((function(t){t&&e.router.navigateByUrl(t.path,{replaceUrl:!0})}))},e.prototype.needsRedirect=function(){return 2===this.router.parseUrl(this.router.url).root.children[n.PRIMARY_OUTLET].segments.length},e.ctorParameters=function(){return[{type:Jm},{type:Zc},{type:n.ActivatedRoute},{type:n.Router},{type:r.ApiService},{type:t.Injector}]},e=fc([t.Component({selector:"c8y-context-route",template:"<router-outlet></router-outlet>\n"})],e)}(),eg=function(){function e(e){this.injector=e,this.caches=new Map}return e.prototype.canActivate=function(e){var t=e.paramMap.get("id"),n=this.service(e);return this.clearDetailCached(n,t),this.detailCached(n,t).pipe(s.tap((function(t){return e.data=gc({},e.data,{contextData:t})})),s.map((function(){return!0})),s.catchError((function(e){return a.of(!1)})))},e.prototype.service=function(e){var t=Xm.contextToService(e.data.context);return this.injector.get(t)},e.prototype.detailCached=function(e,t){var n=this.getCache(e),o=n[t];return o||(o=a.from(e.detail(t)).pipe(s.map((function(e){return e.data})),s.shareReplay(1)),n[t]=o),o},e.prototype.clearDetailCached=function(e,t){delete this.getCache(e)[t]},e.prototype.getCache=function(e){var t=this.caches.get(e);return t||(t={},this.caches.set(e,t)),t},e.ctorParameters=function(){return[{type:t.Injector}]},e=fc([t.Injectable()],e)}(),tg=function(){function e(){}return e=fc([t.Component({selector:"empty",template:""})],e)}(),ng=[{path:"users/new",component:tg},{path:"tenants/new",component:tg}];for(var ag in e.ViewContext){var sg=e.ViewContext[ag];ng.push({path:sg,component:Qm,canActivate:[eg],data:{context:sg,contextData:{}},resolve:{tabs:Jm}})}var og=function(){function e(e){}var a;return a=e,e.providers=function(){return[eg,Jm,Zm]},e.forRoot=function(){return{ngModule:a,providers:a.providers()}},e.ctorParameters=function(){return[{type:Zm}]},e=a=fc([t.NgModule({declarations:[Qm,tg],imports:[n.RouterModule.forRoot(ng),pp,Fu],entryComponents:[Qm,tg]})],e)}(),rg=function(){function e(){}return fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"label",void 0),e=fc([t.Component({selector:"c8y-quick-link",template:'<div class="card-block text-center" 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'})],e)}(),lg=function(){function e(){}return e=fc([t.NgModule({declarations:[rg],imports:[Wm],exports:[rg],providers:[]})],e)}(),ig=function(e){function t(){var t=e.call(this)||this,n=t;return t.name="custom",t.header="Custom",t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{exists:{type:"boolean",default:!1,title:"Only rows where value is defined"},equals:{type:"array",items:{type:"string"}}}},form:[{key:"exists"},{key:"equals",title:"Only rows where value equals to:",add:"Or",items:[{key:"equals[]",notitle:!0,placeholder:"e.g. value, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.exists&&(t.__has=n.path),e.equals&&(t[n.path]={__in:e.equals}),t}},t.sortable=!0,t}return mc(t,e),Object.defineProperty(t.prototype,"sortingConfig",{get:function(){return{pathSortingConfigs:[{path:this.path}]}},enumerable:!0,configurable:!0}),t}(Rp);e.ActionBarService=Ec,e.ActionService=Tc,e.AlarmsDeviceGridColumn=em,e.AlertService=$c,e.AppStateService=Bc,e.AuthenticationModule=Yd,e.BaseDeviceGridColumn=Rp,e.BootstrapComponent=Jc,e.BreadcrumbService=Qc,e.C8yStepper=Gm,e.C8yStepperButtons=zm,e.CachedLocaleDictionaryService=mu,e.CellRendererContext=Ip,e.CellRendererDefDirective=Pp,e.CommonModule=Fu,e.ConfirmModalComponent=id,e.ContextRouteComponent=Qm,e.CoreModule=Wm,e.CustomDeviceGridColumn=ig,e.DashboardChildActionComponent=Nm,e.DashboardChildChange=Lm,e.DashboardChildComponent=Rm,e.DashboardChildTitleComponent=Mm,e.DashboardComponent=qm,e.DashboardModule=Fm,e.DataGridComponent=Np,e.DataGridModule=Lp,e.DefaultValidationDirective=kd,e.DeviceGridComponent=nm,e.DeviceGridModule=um,e.DeviceGridService=tm,e.DeviceStatusComponent=lm,e.DeviceStatusModule=im,e.DocsModule=xm,e.DocsService=np,e.DropAreaComponent=dm,e.DropAreaModule=pm,e.DynamicComponentComponent=Am,e.DynamicComponentModule=Dm,e.DynamicComponentService=Tm,e.EmptyComponent=tg,e.FormGroupComponent=Md,e.FormsModule=zd,e.GroupDeviceGridColumn=Wp,e.GuideDocsComponent=_m,e.GuideHrefDirective=Om,e.HOOK_ACTION=kc,e.HOOK_ACTION_BAR=xc,e.HOOK_BREADCRUMB=Xc,e.HOOK_COMPONENT=km,e.HOOK_COMPONENTS=Em,e.HOOK_DOCS=tp,e.HOOK_NAVIGATOR_NODES=Vc,e.HOOK_ONCE_ROUTE=Ym,e.HOOK_OPTIONS=Uc,e.HOOK_PATTERN_MESSAGES=cu,e.HOOK_SEARCH=ad,e.HOOK_TABS=Yc,e.HeaderBarComponent=ap,e.HeaderCellRendererDefDirective=Op,e.HeaderModule=pp,e.HeaderService=Wc,e.HighlightComponent=rd,e.HumanizeAppNamePipe=ru,e.HumanizePipe=ou,e.ICON_LIST=$u,e.ImeiDeviceGridColumn=Xp,e.InputGroupListComponent=qd,e.JsonValidationPrettifierDirective=Rd,e.ListGroupComponent=jm,e.ListGroupModule=Im,e.LoginService=yd,e.MaxValidationDirective=Ad,e.MessageDirective=Dd,e.MessagesComponent=Nd,e.MinValidationDirective=Td,e.ModalModule=pd,e.ModalService=ud,e.ModelDeviceGridColumn=zp,e.NameDeviceGridColumn=Gp,e.NavigatorIconComponent=lp,e.NavigatorItemComponent=rp,e.NavigatorNode=zc,e.NavigatorNodeRoot=Hc,e.NavigatorService=Kc,e.NewPasswordComponent=_d,e.OptionsService=Gc,e.PasswordCheckListComponent=Cd,e.PasswordConfirm=Id,e.PasswordConfirmModalComponent=vd,e.PasswordService=jd,e.PasswordStrengthCheckerService=Pd,e.PasswordStrengthComponent=Od,e.Permissions=qu,e.PhoneValidationDirective=xd,e.PopoverConfirmComponent=dd,e.ProvidePhoneNumberComponent=Wd,e.QuickLinkModule=lg,e.RegistrationDateDeviceGridColumn=Zp,e.RouterModule=og,e.RouterService=Zm,e.SchemaFormComponent=Gd,e.SearchModule=ld,e.SearchService=sd,e.SelectComponent=mm,e.SelectModule=Pm,e.SerialNumberDeviceGridColumn=Vp,e.SmsChallengeComponent=Vd,e.StateService=_c,e.StatusDeviceGridColumn=Fp,e.StepperModule=Vm,e.SystemIdDeviceGridColumn=Jp,e.TabsService=Zc,e.TextAreaRowHeightDirective=$d,e.TitleComponent=op,e.TotpChallengeComponent=Hd,e.TotpSetupComponent=Kd,e.TranslateService=ku,e.TypeaheadComponent=vm,e.UserMenuService=md,e.UserTotpRevokeComponent=Zd,e.ValidationPattern=Ed,e.WidgetsDashboardComponent=$m,e._=function(e){return e},e.deviceAvailabilityIconMap=am,e.fromFactories=Sc,e.fromTrigger=wc,e.getActivatedRoute=Oc,e.gettext=Ac,e.initializeServices=Lu,e.minColumnGridTrackSize=80,e.operationStatusClasses=su,e.operationStatusIcons=au,e.ratiosByColumnTypes=kp,e.resolveInjectedFactories=Cc,e.routes=ng,e.sortByPriority=Pc,e.stateToFactory=Ic,e.statusAlert=nu,e.statusClasses=tu,e.statusIcons=eu,e.tooltips=om,e.ɵ0=sm,e.ɵa=Fc,e.ɵb=yu,e.ɵba=zu,e.ɵbb=Hu,e.ɵbc=Ju,e.ɵbd=Wu,e.ɵbe=Zu,e.ɵbf=Ku,e.ɵbg=Yu,e.ɵbh=Cp,e.ɵbi=Sp,e.ɵbj=sp,e.ɵbk=Xd,e.ɵbl=Qd,e.ɵbm=dp,e.ɵbn=Jd,e.ɵbo=Sd,e.ɵbp=wd,e.ɵbq=fd,e.ɵbr=gd,e.ɵbs=bd,e.ɵbt=Ld,e.ɵbu=Fd,e.ɵbv=Ud,e.ɵbw=Bd,e.ɵbx=cd,e.ɵby=nd,e.ɵbz=od,e.ɵc=vu,e.ɵca=td,e.ɵcb=ed,e.ɵcc=Xu,e.ɵcd=Qu,e.ɵce=up,e.ɵcf=cp,e.ɵcg=ip,e.ɵch=vp,e.ɵci=fp,e.ɵcj=hp,e.ɵck=mp,e.ɵcl=gp,e.ɵcm=yp,e.ɵcn=wp,e.ɵco=bp,e.ɵcp=jp,e.ɵcq=Mp,e.ɵcr=xp,e.ɵcs=qp,e.ɵct=Ep,e.ɵcu=cm,e.ɵcv=$p,e.ɵcw=Up,e.ɵcx=Bp,e.ɵcy=Hp,e.ɵcz=Kp,e.ɵd=ju,e.ɵda=Yp,e.ɵdb=Qp,e.ɵdc=ym,e.ɵdd=hm,e.ɵde=gm,e.ɵdf=fm,e.ɵdg=bm,e.ɵdh=wm,e.ɵdi=Sm,e.ɵdj=Cm,e.ɵdk=Um,e.ɵdl=Bm,e.ɵdn=Jm,e.ɵdo=eg,e.ɵdp=rg,e.ɵe=bu,e.ɵf=wu,e.ɵg=pu,e.ɵh=iu,e.ɵi=lu,e.ɵj=gu,e.ɵk=hu,e.ɵl=du,e.ɵm=uu,e.ɵn=Su,e.ɵo=Cu,e.ɵp=Iu,e.ɵq=Tu,e.ɵr=Du,e.ɵs=Au,e.ɵt=Nu,e.ɵu=Mu,e.ɵv=_u,e.ɵw=Bu,e.ɵx=Gu,e.ɵy=Uu,e.ɵz=Vu,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
|
+
var pc=function(e,t){return(pc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function mc(e,t){function n(){this.constructor=e}pc(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var gc=function(){return(gc=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var s in t=arguments[n])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)};function fc(e,t,n,a){var s,o=arguments.length,r=o<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,a);else for(var l=e.length-1;l>=0;l--)(s=e[l])&&(r=(o<3?s(r):o>3?s(t,n,r):s(t,n))||r);return o>3&&r&&Object.defineProperty(t,n,r),r}function hc(e,t){return function(n,a){t(n,a,e)}}function yc(e,t,n,a){return new(n||(n=Promise))((function(s,o){function r(e){try{i(a.next(e))}catch(e){o(e)}}function l(e){try{i(a.throw(e))}catch(e){o(e)}}function i(e){e.done?s(e.value):new n((function(t){t(e.value)})).then(r,l)}i((a=a.apply(e,t||[])).next())}))}function vc(e,t){var n,a,s,o,r={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]};return o={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function l(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(s=2&o[0]?a.return:o[0]?a.throw||((s=a.return)&&s.call(a),0):a.next)&&!(s=s.call(a,o[1])).done)return s;switch(a=0,s&&(o=[2&o[0],s.value]),o[0]){case 0:case 1:s=o;break;case 4:return r.label++,{value:o[1],done:!1};case 5:r.label++,a=o[1],o=[0];continue;case 7:o=r.ops.pop(),r.trys.pop();continue;default:if(!(s=(s=r.trys).length>0&&s[s.length-1])&&(6===o[0]||2===o[0])){r=0;continue}if(3===o[0]&&(!s||o[1]>s[0]&&o[1]<s[3])){r.label=o[1];break}if(6===o[0]&&r.label<s[1]){r.label=s[1],s=o;break}if(s&&r.label<s[2]){r.label=s[2],r.ops.push(o);break}s[2]&&r.ops.pop(),r.trys.pop();continue}o=t.call(e,r)}catch(e){o=[6,e],a=0}finally{n=s=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}function jc(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,s,o=n.call(e),r=[];try{for(;(void 0===t||t-- >0)&&!(a=o.next()).done;)r.push(a.value)}catch(e){s={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(s)throw s.error}}return r}function bc(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(jc(arguments[t]));return e}function wc(e,t,a){return e.events.pipe(s.filter((function(e){return e instanceof n.NavigationEnd})),s.merge(t),s.startWith(1),s.switchMap((function(){return Sc(a,e)})))}function Sc(e,t,n){return void 0===n&&(n=!0),!Array.isArray(e)||e.length<1?a.of([]):a.defer((function(){var r=Cc(e).map((function(e){return function(e,t){var n;if(!e)return a.of([]);if("function"==typeof e.then||a.isObservable(e))if(t){var o=a.from(e),r=o.pipe(s.startWith([]));n=a.race(o,r)}else n=a.from(e);else n=a.of(e);return n.pipe(s.map((function(e){return(Array.isArray(e)?e:[e]).filter((function(e){return!!e}))})))}(Array.isArray(e)?e:e&&o.isFunction(e.get)?e.get(Oc(t)):[e],n)}));return a.combineLatest.apply(void 0,bc(r))})).pipe(s.map((function(e){return Pc([].concat.apply([],bc(e)))})))}function Cc(e){return o.flatten(e.map((function(e){return o.isFunction(e)?e():[e]})))}function Ic(e){var t=e.pipe(s.map((function(e){return Array.from(e)})));return{get:function(){return t}}}function Pc(e){return o.sortBy(e,"priority")}function Oc(e){if(e&&e.routerState&&e.routerState.root){for(var t=e.routerState.root;t.firstChild;)t=t.firstChild;return t}}var _c=function(){function e(){}return e.prototype.map=function(e){return this.state$.pipe(s.map(e),s.distinctUntilChanged())},e.prototype.emitNewState=function(){this.state$.next(this.state)},e}(),xc=new t.InjectionToken("ActionBarFactory"),Ec=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(xc,[])},Ic(o.state$)]).pipe(s.map((function(e){return Pc(e)})),s.shareReplay(1)),o}return mc(o,e),Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.refresh=function(){this.refreshTrigger.next()},o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),kc=new t.InjectionToken("ActionFactory"),Ac=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(kc,[])},Ic(o.state$)]).pipe(s.map((function(e){return Pc(e)})),s.shareReplay(1)),o}return mc(o,e),o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c);function Tc(e){return e}var Dc,Nc,Mc,qc,Lc,Rc,$c=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.state$=new a.BehaviorSubject([]),t.MAX_ALERTS=3,t.ALERT_TIMEOUT=3e3,t}return mc(n,e),Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),n.prototype.add=function(e){this.addAlert(e)},n.prototype.addByText=function(e,t,n){this.addAlert({text:t,type:e,detailedData:n})},n.prototype.list=function(){return this.state},n.prototype.remove=function(e){var t=this;this.changeAlerts(this.state.filter((function(n){return!t.areSame(e,n)})))},n.prototype.removeLastDanger=function(){var e=this.state.reverse().find((function(e){return"danger"===e.type}));this.changeAlerts(this.state.filter((function(t){return t!==e})))},n.prototype.saveSuccess=function(e){var t=this;return function(){var n=e+" saved successfully";t.addByText("success",n)}},n.prototype.createSuccess=function(e){var t=this;return function(){var n=e+" created successfully";t.addByText("success",n)}},n.prototype.clearAll=function(){this.changeAlerts([])},n.prototype.success=function(e,t){this.addByText("success",e,t)},n.prototype.danger=function(e,t){this.addByText("danger",e,t)},n.prototype.info=function(e,t){this.addByText("info",e,t)},n.prototype.warning=function(e,t){this.addByText("warning",e,t)},n.prototype.addServerFailure=function(e,t){void 0===t&&(t="danger");var n,a=e.data,s=e.res,o=a&&a.message?a.message:null;a&&("object"==typeof a?n=a.exceptionMessage:"string"==typeof a&&(n=a));var r=!(!o&&!n);o||(o="A server error occurred."),r||(n={status:s.status,statusText:s.statusText,url:s.url}),this.addAlert({type:t,text:o,detailedData:n})},n.prototype.areSame=function(e,t){return e.text===t.text&&e.type===t.type&&e.detailedData===t.detailedData&&e.onClose===t.onClose&&e.onDetail===t.onDetail},n.prototype.changeAlerts=function(e){this.state$.next(e)},n.prototype.addAlert=function(e){var t=this;if(!e.text&&!e.type)throw new Error("Cannot add empty alert");this.state.find((function(n){return t.areSame(e,n)}))||(this.changeAlerts(bc(this.state,[e])),this.hideAutomaticallyIfNeeded(e),this.removeOldestIfMax())},n.prototype.hideAutomaticallyIfNeeded=function(e){var t=this,n="success"===e.type,a=!e.detailedData,s=n&&a?this.ALERT_TIMEOUT:0;void 0!==e.timeout&&(s=e.timeout),s&&setTimeout((function(){return t.remove(e)}),s)},n.prototype.removeOldestIfMax=function(){if(this.state.length>this.MAX_ALERTS){var e=jc(this.state).slice(1);this.changeAlerts(e)}},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(_c),Fc=function(){},Uc=new t.InjectionToken("App options"),Gc=function(e){function n(t,n,a){var s=e.call(this)||this;return s.systemOptionsService=n,s.tenantOptionService=a,s.setupOptions(t),s}return mc(n,e),n.prototype.get=function(e,t){var n=this[e];return void 0===n&&(n=this[o.camelCase(e)]),void 0!==n?n:t},n.prototype.set=function(e,t){this[o.camelCase(e)]=t},n.prototype.getSupportUrl=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return o.isUndefined(this.supportUrl)?(e=this,[4,this.getTenantOption("configuration","system.support.url")]):[3,2];case 1:e.supportUrl=t.sent(),t.label=2;case 2:return[2,!o.isUndefined(this.supportUrl)&&this.supportUrl]}}))}))},n.prototype.getActivateSupportUser=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return[4,this.getSystemOption("support-user","enabled",!0)];case 1:return[2,!e.sent()]}}))}))},n.prototype.getSystemOption=function(e,t,n){return yc(this,void 0,void 0,(function(){return vc(this,(function(a){return[2,this.getOptionFromService(e,t,this.systemOptionsService,n)]}))}))},n.prototype.getTenantOption=function(e,t,n){return yc(this,void 0,void 0,(function(){return vc(this,(function(a){return[2,this.getOptionFromService(e,t,this.tenantOptionService,n)]}))}))},n.prototype.setupOptions=function(e){var t=this;e&&(Array.isArray(e)||(e=[e]),e.forEach((function(e){e&&Object.keys(e).forEach((function(n){t[o.camelCase(n)]=e[n]}))})))},n.prototype.getOptionFromService=function(e,t,n,a){return yc(this,void 0,void 0,(function(){var s;return vc(this,(function(o){switch(o.label){case 0:return o.trys.push([0,2,,3]),[4,n.detail({category:e,key:t})];case 1:return s=o.sent().data,[2,this.parseOptionRawValue(s.value,a)];case 2:return o.sent(),[2,a];case 3:return[2]}}))}))},n.prototype.parseOptionRawValue=function(e,t){var n;try{n=JSON.parse(e)}catch(a){n=o.isUndefined(e)?t:e}return n},n.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[Uc]}]},{type:r.SystemOptionsService},{type:r.TenantOptionsService}]},n=fc([t.Injectable(),hc(0,t.Optional()),hc(0,t.Inject(Uc))],n)}(Fc),Bc=function(e){function n(t,n,o,r){var l=e.call(this)||this;return l.applicationService=t,l.apiService=n,l.options=o,l.fetchClient=r,l.state$=new a.BehaviorSubject({app:{name:l.options.name,contextPath:l.getCurrentContextPath()||l.options.contextPath},supportUrl:l.options.supportUrl,lang:l.options.get("defaultLanguage","en"),langs:l.getLangs(),langsDetail:l.options.languages,loginOptions:l.options.loginOptions,activateSupportUserAvailable:void 0,versions:{backend:void 0,ui:l.options.versions||{ngx:void 0}},hidePowered:l.options.hidePowered,isLoading:!1,showRightDrawer:l.options.rightDrawer,loginExtraLink:l.options.get("login_extra_link"),newsletter:l.options.newsletter}),l.currentSupportUserName=new a.BehaviorSubject(null),l.currentUser=new a.BehaviorSubject(null),l.currentTenant=new a.BehaviorSubject(null),l.apiService.calls.pipe(s.filter((function(e){var t=e.url;return!/cep\/realtime/.test(t)})),s.map((function(e){return"start"===e.phase?1:-1})),s.scan((function(e,t){return e+t}),0),s.map((function(e){return e>0})),s.distinctUntilChanged()).subscribe((function(e){return l.state.isLoading=e})),l.assignApplicationKeyToDefaultHeaders(),l}return mc(n,e),n.prototype.assignApplicationKeyToDefaultHeaders=function(){t.isDevMode()||(this.fetchClient.defaultHeaders=gc({},this.fetchClient.defaultHeaders||{},{"X-Cumulocity-Application-Key":this.options.key}))},Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),n.prototype.getLangs=function(){var e=this.options.languages;return e?o.keys(e).filter((function(t){return e[t]})):[]},Object.defineProperty(n.prototype,"uiVersion",{get:function(){var e=this.state.versions.ui;return e.ngx||e.ng1},enumerable:!0,configurable:!0}),n.prototype.loadManifest=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.applicationService.detail(this.state.app.contextPath+"/manifest")];case 1:return e=t.sent().data.application,this.state.app.manifest=e,this.loadDefaultOptions(),[3,3];case 2:throw t.sent();case 3:return[2]}}))}))},n.prototype.isApplicationAvailable=function(e){return yc(this,void 0,void 0,(function(){return vc(this,(function(t){switch(t.label){case 0:return[4,this.applicationService.listByUser(void 0,{pageSize:100})];case 1:return[2,t.sent().data.some((function(t){return t.name===e}))]}}))}))},n.prototype.setUser=function(e){this.currentSupportUserName.next(e.supportUserName||null),this.currentUser.next(e.user)},n.prototype.getCurrentContextPath=function(){var e=window.location.pathname.match(/\/apps\/(public\/){0,1}(.+?)(\/|\?|#|$)/);return e&&e[2]},n.prototype.loadDefaultOptions=function(){return yc(this,void 0,void 0,(function(){var e,t,n;return vc(this,(function(a){switch(a.label){case 0:return e=this.state,[4,this.options.getSupportUrl()];case 1:return e.supportUrl=a.sent(),t=this.state,[4,this.options.getActivateSupportUser()];case 2:return t.activateSupportUserAvailable=a.sent(),n=this.state.versions,[4,this.options.getSystemOption("system","version")];case 3:n.backend=a.sent();try{this.showIncompatibleVersionsError()}catch(e){}return this.emitNewState(),[2]}}))}))},n.prototype.showIncompatibleVersionsError=function(){var e=this.state.versions.ui.ngx,t=this.state.versions.backend,n=e.replace(/[^\d.]/g,"").split(".").map(Number),a=t.replace(/[^\d.]/g,"").split(".").map(Number),s=Math.pow(10,Math.ceil(Math.log10(Math.max.apply(Math,bc(n,a))+1))),o=function(e,t){return e+t},r=function(e,t){return e*(s/Math.pow(10,t))};if(n.map(r).reduce(o)>a.map(r).reduce(o)){var l="You are running version "+e+" of the UI and version "+t+" of backend!";console.log("%c "+l,"font-weight: bold; font-size: 30px; color: red;")}},n.ctorParameters=function(){return[{type:l.ApplicationService},{type:r.ApiService},{type:Gc},{type:l.FetchClient}]},n=fc([t.Injectable()],n)}(_c),zc=function(){function e(e){this.children=[],this.parents=[],this.routerLinkExact=!0,this.open=!1,this.hidden=!1,this.draggable=!1,this.droppable=!1,this.dragged=!1,this.draggedHover=!1,this.confirm=void 0,this._priority=0,this.update(e)}return Object.defineProperty(e.prototype,"hasChildren",{get:function(){return this.children.length>0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"priority",{get:function(){if(this._priority)return this._priority;var e=this.children.map((function(e){return e.priority||0}));return e.length&&e.length?Math.max.apply(Math,bc(e)):0},set:function(e){this._priority=e},enumerable:!0,configurable:!0}),e.prototype.openOnStart=function(e){return!1},e.prototype.add=function(e){if(e===this)throw new Error("Adding node to itself");-1===this.children.indexOf(e)&&this.children.push(e),-1===e.parents.indexOf(this)&&e.parents.push(this),this.updateChildren()},e.prototype.remove=function(e){var t=this.children.indexOf(e),n=e.parents.indexOf(this);t>-1&&this.children.splice(t,1),n>-1&&e.parents.splice(n,1),this.updateChildren()},e.prototype.update=function(e){e&&(Object.assign(this,e),void 0!==e.hidden&&this.parents.forEach((function(e){e.updateHidden()})))},e.prototype.find=function(e){if("string"==typeof e){var t=e.toLocaleLowerCase();e=function(e){var n=e.label;return t===n.toLowerCase()}}if("object"==typeof e&&(e=o.matches(e)),"function"!=typeof e)throw new Error("Invalid search predicate");return this.children.reduce((function(t,n){return t||n.find(e)}),this.children.find(e))},e.prototype.empty=function(){this.children.length=0},e.prototype.click=function(e){void 0===e&&(e={})},e.prototype.drop=function(e){e.stopPropagation(),clearTimeout(this.expandDragTimeout)},e.prototype.dragStart=function(e){e.stopPropagation(),e.dataTransfer.setData("node","node"),this.dragged=!0},e.prototype.dragEnd=function(e){e.stopPropagation(),this.dragged=!1,e.dataTransfer.clearData()},Object.defineProperty(e.prototype,"canDrop",{get:function(){return this.droppable},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"canNavigate",{get:function(){return void 0!==this.path},enumerable:!0,configurable:!0}),e.prototype.dragEnter=function(e){var t=this;e.preventDefault(),e.stopPropagation(),this.draggedHover=!0,this.open||(this.expandDragTimeout=setTimeout((function(){return t.expand()}),1e3))},e.prototype.dragLeave=function(e){e.preventDefault(),e.stopPropagation(),this.draggedHover=!1,clearTimeout(this.expandDragTimeout)},e.prototype.expand=function(){this.open||(this.open=!0,this.click({open:!0,expander:!0}))},e.prototype.traverse=function(e){this.children&&this.children.forEach((function(t){e(t),t.traverse(e)}))},e.prototype.destroy=function(){},e.prototype.updateChildren=function(){this.sort(),this.updateHidden()},e.prototype.sort=function(){this.children.sort((function(e,t){return e.priority>t.priority?-1:e.priority<t.priority?1:(e.label||"").toLowerCase()<(t.label||"").toLowerCase()?-1:(e.label||"").toLowerCase()>(t.label||"").toLowerCase()?1:0}))},e.prototype.updateHidden=function(){void 0===this.path&&(this.hidden=!this.children.some((function(e){return!e.hidden})))},e}(),Hc=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return mc(t,e),t.prototype.addRoot=function(e){var t,n=e.parent,a=this.createNode(e);return n&&("object"==typeof n?(t=this.find(n.label))&&t.update(n):"string"!=typeof n&&"function"!=typeof n||(t=this.find(n)),t||(t=this.createNode(n),this.find((function(e){return t===e}))||this.add(t))),(t||this).add(a),a},t.prototype.createNode=function(e){if(e instanceof zc)return e;if("string"==typeof e)return new zc({label:e});if("object"==typeof e)return new zc(gc({},e,{parent:void 0}));throw new Error("Wrong type of node data")},t}(zc),Vc=new t.InjectionToken("NavigatorNodesFactory"),Kc=function(e){function o(t,n){var o=e.call(this)||this;o.injector=t,o.router=n,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.firstUrl=!0;var r=new Hc;return o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(Vc,[])},Ic(o.state$)]).pipe(s.map((function(e){var t=e.filter((function(e){return!e.parent})),n=e.filter((function(e){return e.parent})),a=Pc(t).concat(Pc(n));return r.empty(),a.forEach((function(e){return r.addRoot(e)})),r.children})),s.shareReplay(1)),o}return mc(o,e),o.prototype.openOnFirstUrl=function(e){return!(!this.firstUrl||!e.path)&&(this.router.isActive(e.path,e.routerLinkExact)||e.openOnStart(this.router.url))},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.refresh=function(){this.refreshTrigger.next(1)},o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),Wc=function(e){function n(t,n){var o=e.call(this)||this;o.navigatorService=t,o.options=n,o.hasItemsInNavigator$=o.navigatorService.items$.pipe(s.map((function(e){return!!e.length})),s.distinctUntilChanged()),o.state$=new a.BehaviorSubject({title:void 0,nav:{open:!1}}),o.title=void 0,o.header$=o.map((function(e){return e})),o.navigatorOpen$=o.map((function(e){return e.nav.open})).pipe(s.combineLatest(o.hasItemsInNavigator$),s.map((function(e){var t=jc(e,2),n=t[0],a=t[1];return n&&a})));var r=document.querySelector("title");return o.title={elementRef:r,originalValue:r&&r.innerText},o}return mc(n,e),Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"navigatorHiddenOnStartup",{get:function(){return this.options.hideNavigator},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"largeWidth",{get:function(){return document.documentElement.clientWidth>1200},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"shouldToggle",{get:function(){return this.largeWidth&&!this.navigatorHiddenOnStartup&&!this.state.nav.open},enumerable:!0,configurable:!0}),n.prototype.toggleNavigator=function(){this.state.nav.open=!this.state.nav.open,this.emitNewState()},n.prototype.closeNavigator=function(){this.state.nav.open=!1,this.emitNewState()},n.prototype.configNavigator=function(e){void 0===e&&(e={}),this.state.nav=Object.assign(this.state.nav,e),this.emitNewState()},n.prototype.changeTitle=function(e){this.state.title=e,this.emitNewState()},n.prototype.changePageTitle=function(e){this.title.elementRef.innerText=e?e+" / "+this.title.originalValue:""+this.title.originalValue},n.prototype.verifyIfNavOpen=function(){var e=this;this.hasItemsInNavigator$.pipe(s.debounceTime(300)).subscribe((function(t){return t&&e.shouldToggle&&e.toggleNavigator()}))},n.prototype.shouldShowBreadcrumbs=function(){return this.options.breadcrumbs},n.ctorParameters=function(){return[{type:Kc},{type:Gc}]},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n(t.ɵɵinject(Kc),t.ɵɵinject(Gc))},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(_c),Yc=new t.InjectionToken("TabsFactory"),Zc=function(e){function o(t,n,o,r){var l=e.call(this)||this;return l.injector=t,l.translateService=o,l.options=r,l.refreshTrigger=new a.Subject,l.state$=new a.BehaviorSubject(new Set),l.items$=wc(n,l.refreshTrigger,[function(){return l.injector.get(Yc,[])},Ic(l.state$)]).pipe(s.map((function(e){return l.prepareTabs(e)})),s.shareReplay(1),s.distinctUntilChanged()),l.orientation$=l.items$.pipe(s.map((function(e){var t=e.find((function(e){return e.orientation}));return t?t.orientation:l.options.tabsHorizontal?"horizontal":"vertical"})),s.distinctUntilChanged()),l}return mc(o,e),o.prototype.prepareTabs=function(e){return this.sortTabs(e.map((function(e){return gc({},e,{template:e.template instanceof t.ViewContainerRef?e.template:void 0})})).filter((function(e,t,n){return t===n.findIndex((function(t){return t.path===e.path}))})))},o.prototype.sortTabs=function(e){var t=this;return e.sort((function(e,n){var a=(n.priority||0)-(e.priority||0),s=t.translateService.instant(e.label),o=t.translateService.instant(n.label),r=s.localeCompare(o);return a||r}))},o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},Object.defineProperty(o.prototype,"firstTab$",{get:function(){return this.items$.pipe(s.map((function(e){return e[0]})),s.filter(Boolean),s.first())},enumerable:!0,configurable:!0}),o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router},{type:i.TranslateService},{type:Gc}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router),t.ɵɵinject(i.TranslateService),t.ɵɵinject(Gc))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),Jc=function(){function e(e,t,n,a,o,r){var l=this;this.tabs=e,this.ui=t,this.navigator=n,this.actionBar=a,this.options=o,this.headerService=r,this.noAppsMargin$=this.headerService.map((function(e){var t=e.nav;return!t.open&&t.hiddenOnStartup})),this.tabsOrientation=this.options.tabsHorizontal?"horizontal":"vertical",this.ui.map((function(e){return e.lang})).pipe(s.distinctUntilChanged()).subscribe((function(){l.actionBar.refresh(),l.localeUpdating=!0,setTimeout((function(){l.localeUpdating=!1}),10)}))}return Object.defineProperty(e.prototype,"showPoweredBy",{get:function(){return!this.options.get("hidePowered")},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:Zc},{type:Bc},{type:Kc},{type:Ec},{type:Gc},{type:Wc}]},e=fc([t.Component({selector:"c8y-bootstrap",template:'<c8y-login *ngIf="!(ui.currentUser | async)"></c8y-login>\n\n<div *ngIf="(ui.currentUser | async) && !localeUpdating" [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 \x3c!-- legacy ng-view, will not be migrated atm --\x3e\n </div>\n </div>\n</div>\n<c8y-cookie-banner></c8y-cookie-banner>\n'})],e)}(),Xc=new t.InjectionToken("BreadcrumbFactory"),Qc=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(Xc,[])},Ic(o.state$)]).pipe(s.map((function(e){return o.sortByPreferredPath(e)})),s.shareReplay(1)),o}return mc(o,e),Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.prototype.refresh=function(){this.refreshTrigger.next(1)},o.prototype.selectPreferredByPath=function(e){this.preferredPath=e,this.refresh()},o.prototype.sortByPreferredPath=function(e){var t=this;return this.preferredPath?e.sort((function(e){return e.items.find((function(e){return!!e.path.match(t.preferredPath)}))?-1:1})):e},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c);(Rc=e.Status||(e.Status={})).SUCCESS="success",Rc.WARNING="warning",Rc.DANGER="danger",Rc.INFO="info";var eu=((Dc={})[e.Status.SUCCESS]="check-circle",Dc[e.Status.WARNING]="exclamation-triangle",Dc[e.Status.DANGER]="exclamation-circle",Dc[e.Status.INFO]="info-circle",Dc),tu=((Nc={})[e.Status.SUCCESS]="text-"+e.Status.SUCCESS,Nc[e.Status.WARNING]="text-"+e.Status.WARNING,Nc[e.Status.DANGER]="text-"+e.Status.DANGER,Nc[e.Status.INFO]="text-"+e.Status.INFO,Nc),nu=((Mc={})[e.Status.SUCCESS]="alert-"+e.Status.SUCCESS,Mc[e.Status.WARNING]="alert-"+e.Status.WARNING,Mc[e.Status.DANGER]="alert-"+e.Status.DANGER,Mc[e.Status.INFO]="alert-"+e.Status.INFO,Mc),au=((qc={})[l.OperationStatus.PENDING]="clock-o",qc[l.OperationStatus.EXECUTING]="refresh",qc[l.OperationStatus.SUCCESSFUL]="check-circle",qc[l.OperationStatus.FAILED]="exclamation-circle",qc),su=((Lc={})[l.OperationStatus.PENDING]="",Lc[l.OperationStatus.EXECUTING]="text-info",Lc[l.OperationStatus.SUCCESSFUL]="text-success",Lc[l.OperationStatus.FAILED]="text-danger",Lc),ou=function(){function e(){}var n;return n=e,e.humanize=function(e){return void 0===e&&(e=""),e=e.replace(/\./g," ").replace(/c8y[\s,_]*/gi,"").replace(/_/g," ").replace(/([A-Z][a-z])/g," $1").replace(/^\$\.?/,"").replace(/^\s*/,"").replace(/\s*$/,"").replace(/\s+/g," "),o.upperFirst(e)},e.prototype.transform=function(e){return n.humanize(e)},e=n=fc([t.Pipe({name:"humanize"})],e)}(),ru=function(){function e(e){this.translateService=e,this.internalApps={administration:"Administration",cockpit:"Cockpit",devicemanagement:"Device management"}}return e.prototype.transform=function(e){void 0===e&&(e="Cumulocity");var t,n=this.getAppName(e);return t=this.isPublicApp(e)?"{{ appName | translate }} (public)":n,this.translateService.get(t,{appName:n})},e.prototype.getAppName=function(e){var t=this.getFirstDefined([c.get(e,"name"),c.get(e,"contextPath"),e])||"";return this.internalApps[t]||t},e.prototype.getFirstDefined=function(e){return c.find(e,c.negate(c.isUndefined))},e.prototype.isPublicApp=function(e){return Boolean(c.get(e,"public"))},e.ctorParameters=function(){return[{type:i.TranslateService}]},e=fc([t.Pipe({name:"humanizeAppName"})],e)}(),lu=new t.InjectionToken("Languages"),iu=new t.InjectionToken("Locale path"),cu=new t.InjectionToken("Pattern Messages"),uu=function(){function e(e){var t=this;this.patterns={},this.pipes={absoluteDate:function(e){return u.formatDate(e,"medium",t.translateService.currentLang)},translate:function(e){return t.translateService.instant(e)}},o.each(e,(function(e){Object.assign(t.patterns,e)}))}return e.prototype.translate=function(e){var t=this.translateWithPatterns(e);return t!==e?t:""},e.prototype.translateWithPatterns=function(e,t){var n=this;void 0===t&&(t=this.patterns);var a=e;return o.each(t,(function(e,t){var s,r=new RegExp(t,"g");if(r.test(a)){r.test(""),s=r.exec(a);for(var l=function(){var l=jc(s,1)[0],i=o.mapValues(e.placeholders,(function(e){var a=e.capture||e,s=l.replace(new RegExp(t,"g"),a);return e.translate&&(s=n.translateWithPatterns(s,e.translate)),s}));a=a.replace(l,n.translateWithParams(e,i)),s=r.exec(a)};null!==s;)l()}})),a},e.prototype.translateWithParams=function(e,t){void 0===t&&(t={});var n=this.translateService,a=n.defaultLang,s=n.currentLang,o=n.compiler,r=this.translateService.store.translations[s],l=this.translateService.store.translations[a],i=e.gettext,c=i;r&&(r[i]?c=r[i]:l&&l[i]&&(c=l[i]));for(var u,d=i,p=c,m=gc({},t,{noPatternMessages:!0}),g=RegExp("{{\\s*([^\\s]+)\\s*\\|\\s*([^\\s]+)\\s*}}","g");null!==(u=g.exec(i));){var f=jc(u,3),h=f[0],y=f[1],v=f[2];this.pipes[v]&&(d=d.replace(h,"{{"+y+"}}"),p=p.replace(h,"{{"+y+"}}"),m[y]=this.pipes[v](t[y]))}return r&&(r[d]=o.compile(p,s)),this.translateService.instant(d,m)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[cu]}]}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(cu))},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"}),hc(0,t.Inject(cu))],e)}(),du=function(){function e(e,t){this.parser=e,this.patternMessagesService=t,this.cache={}}return e.prototype.handle=function(e){var t=e.key,n=e.interpolateParams,a=e.translateService;this.translateService=a;var s=this.getFromCache(t,n);if(!s){var o=this.getPatternMessageTranslation(t,n);s=o||this.parser.interpolate(t,n),this.addToCache(t,n,s)}return s},e.prototype.getFromCache=function(e,t){var n=this.translateService.currentLang;return(this.cache[n]||{})[this.getCacheKey(e,t)]},e.prototype.addToCache=function(e,t,n){var a=this.translateService.currentLang;(this.cache[a]=this.cache[a]||{})[this.getCacheKey(e,t)]=n},e.prototype.getCacheKey=function(e,t){return t?e+" "+JSON.stringify(t):e},e.prototype.getPatternMessageTranslation=function(e,t){if(!t||!t.noPatternMessages)return this.patternMessagesService.translateService||(this.patternMessagesService.translateService=this.translateService),this.patternMessagesService.translate(e)},e.ctorParameters=function(){return[{type:i.TranslateParser},{type:uu}]},e=fc([t.Injectable()],e)}(),pu={"^Access is denied$":{gettext:"Access denied."},"^Alarm created$":{gettext:"Alarm created"},"^Alarm updated$":{gettext:"Alarm updated"},"^API is not available with the new domain$":{gettext:"Could not activate custom domain. DNS setup is incorrect."},"^Application with given name already exist$":{gettext:"Application with given name already exists."},"^Application with id (.+?) is already assigned to the tenant (.+?)$":{gettext:'This application is already assigned to tenant "{{tenant}}".',placeholders:{tenant:"$2"}},"^(.+)pplication for tenant (.+) with properties \\( (.+?) \\) already exists$":{gettext:'Application for tenant "{{tenant}}" with the following values ({{valuesList}}) already exists.',placeholders:{tenant:"$2",valuesList:"$3"}},"^Authentication failed! : User account is locked$":{gettext:"Authentication failed due to: user account is locked."},"^Availability monitoring record$":{gettext:"Availability monitoring record"},"^Can not activate a certificate which is either expired or not yet valid$":{gettext:"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:"Could not add certificate. Certificate with {{fingerprint}} fingerprint already exists.",placeholders:{fingerprint:"$1"}},"^Cannot change password. : Provided token does not exist.$":{gettext:"Cannot change password: provided token is invalid."},"^Cannot deploy module (.*)$":{gettext:'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:'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:'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:'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:'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:'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:'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:"Could not parse X.509 certificate: {{ failureReason | translate }}.",placeholders:{failureReason:"$1"}},"^Cannot reschedule bulk operation. All its operations are successful$":{gettext:"Cannot reschedule bulk operation. All its operations are already successful."},"^Cannot reset user password : Cannot find user with such email.$":{gettext:"Cannot reset password for user with such email: email not found."},"^Cannot update/delete application binary via this endpoint$":{gettext:"Cannot update/delete application binary via this endpoint"},"^Can't delete user because it is used by another managed object$":{gettext:"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:"CEP module created"},"^Cep module updated$":{gettext:"CEP module updated"},"^Cep module deleted$":{gettext:"CEP module deleted"},'^Cep module "(.+?)" created$':{gettext:'CEP module "{{name}}" created',placeholders:{name:"$1"}},'^Cep module "(.+?)" updated$':{gettext:'CEP module "{{name}}" updated',placeholders:{name:"$1"}},'^Cep module "(.+?)" deleted$':{gettext:'CEP module "{{name}}" deleted',placeholders:{name:"$1"}},"^Command state is invalid: (.+)$":{gettext:"Command state is invalid: {{violations}}",placeholders:{violations:{capture:"$1",translate:{"(\\w+?) - may not be null":{gettext:'"{{field}}" must not be null',placeholders:{field:"$1"}}}}}},"^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:'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:'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:'Could not recognize "Host key" format'},"Could not recognize key-pair format":{gettext:'Could not recognize the format of "Public key" or "Private key"'}}}}},"^Could not update user. : Error persisting user (.+?)!$":{gettext:'Could not update user "{{username}}".',placeholders:{username:"$1"}},"^Creation ramp must be greater than (\\d+?)$":{gettext:"Bulk operation delay must be greater than {{minSeconds}} seconds.",placeholders:{minSeconds:"$1"}},"^Created container$":{gettext:"Container created."},"^Created pod: (.+)$":{gettext:'Pod "{{imageName}}" created.',placeholders:{imageName:"$1"}},"^CSV file contained empty dataset$":{gettext:"No entries found in uploaded CSV file."},"^Cycle detected for route (.+?)!$":{gettext:"Cycle detected for route {{route}}.",placeholders:{route:"$1"}},"^Data broker processing is currently overloaded and may stop forwarding your data\\. Please contact support\\.$":{gettext:"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:"Data broker processing is not able to connect to destination tenant, thus data forwarding is not working. Please contact support."},"^Device id '(.+?)' contains '(.+?)' character which is not permitted.$":{gettext:'ID "{{deviceId}}" contains invalid character: "{{invalidCharacter}}".',placeholders:{deviceId:"$1",invalidCharacter:"$2"}},"^Device name: '(.+?)', alarm text: '(.+?)'$":{gettext:'Device name: "{{deviceName}}", alarm text: "{{alarmText | translate}}"',placeholders:{deviceName:"$1",alarmText:"$2"}},"^Display name$":{gettext:"Login alias"},"^Domain name in uploaded certificate differs from the one in use$":{gettext:"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:"Domain name is already used by another tenant."},"^Duplicated connector for instanceUrl (.+?)!$":{gettext:"Target URL {{targetUrl}} already used by another connector.",placeholders:{targetUrl:"$1"}},"^Duplicated connector for name (.+?)!$":{gettext:'Connector name "{{name}}" already used by another connector.',placeholders:{name:"$1"}},"^Entry is outside of the target dir: (.+)$":{gettext:'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:"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:"This password has already been used earlier. Use a different one."},"^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\[([\\S\\s]+?)\\]$":{gettext:'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:'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:"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:"Unable to find option by given key: sigfox-agent/provider.token"},"^Failed to delete application. : Cannot remove application assigned to other tenants.$":{gettext:"Could not delete application assigned to other tenants."},"^Failed to extract certificate from PKCS12$":{gettext:"Failed to extract certificate from PKCS12."},"^Failed to update domain at the platform$":{gettext:"Failed to update domain at the platform."},"^Finding device data from database failed : No managedObject for id '(.+?)'!$":{gettext:'Could not find managed object with ID "{{deviceId}}".',placeholders:{deviceId:"$1"}},"^Following mandatory fields should be included: (.+?)$":{gettext:"Following mandatory fields should be included: {{fields}}",placeholders:{fields:"$1"}},"^Global Role updated$":{gettext:"Global role updated"},"^Global Role (.+?) updated$":{gettext:'Global role "{{name}}" updated',placeholders:{name:"$1"}},"^Global Role (.+?) updated: (.+)$":{gettext:'Global role "{{name}}" updated: {{updatesList}}',placeholders:{name:"$1",updatesList:{capture:"$2",translate:{"applications \\[([^\\]]+?)\\] added":{gettext:"applications {{list}} added",placeholders:{list:"$1"}},"applications \\[([^\\]]+?)\\] removed":{gettext:"applications {{list}} removed",placeholders:{list:"$1"}},"roles \\[([^\\]]+?)\\] added":{gettext:"roles {{list}} added",placeholders:{list:"$1"}},"roles \\[([^\\]]+?)\\] removed":{gettext:"roles {{list}} removed",placeholders:{list:"$1"}}}}}},"^Global Roles$":{gettext:"Global roles"},"^Operation updated: (.+)$":{gettext:"Operation updated: {{updatesList}}",placeholders:{updatesList:{capture:"$1",translate:{"status='(.+?)'":{gettext:'status="{{status | translate}}"',placeholders:{status:"$1"}},"description='(.+?)'":{gettext:'description="{{description | translate}}"',placeholders:{description:"$1"}},"device name='(.+?)'":{gettext:'device name="{{deviceName}}"',placeholders:{deviceName:"$1"}},"failure reason='(.+?)'":{gettext:'failure reason="{{failureReason | translate}}"',placeholders:{failureReason:"$1"}}}}}},"^ID \\[type=(.+?), value=(.+?)\\] was already bound to different Global ID.$":{gettext:'External ID "{{value}}" of the type "{{type}}" already exists.',placeholders:{type:"$1",value:"$2"}},"^Invalid credentials! : Bad credentials$":{gettext:"Invalid credentials."},"^Invalid credentials! : No phone number provided$":{gettext:"Log into the management tenant first and enter your phone number."},"^Inventory Role removed$":{gettext:"Inventory role removed"},"^Inventory Role (.+?) removed":{gettext:'Inventory role "{{name}}" deleted.',placeholders:{name:"$1"}},"^Inventory Role updated$":{gettext:"Inventory role updated"},"^Inventory Role (.+?) updated":{gettext:'Inventory role "{{name}}" updated.',placeholders:{name:"$1"}},"^I/O error: Connection refused; nested exception is Connection refused : Connection refused":{gettext:"Connection refused"},"^I/O error: Read timed out; nested exception is Read timed out : Read timed out":{gettext:"Read timed out"},"^Log file requested$":{gettext:"Log file requested."},"^Managed object deleted$":{gettext:"Managed object deleted"},'^Managed object "(.+?)" deleted$':{gettext:'Managed object "{{name}}" deleted',placeholders:{name:"$1"}},"^Maximum file size exceeded$":{gettext:"Maximum file size exceeded."},"^Message with ID (.+?) doesn't exist in smart rest template (.+?)$":{gettext:'Message with ID "{{messageId}}" doesn\'t exist in SmartREST template with ID "{{templateId}}"',placeholders:{messageId:"$1",templateId:"$2"}},"^NewDeviceRequest for id = (.+?) already exists.$":{gettext:"Device registration request with ID {{id}} already exists.",placeholders:{id:"$1"}},"^No communication with device since (.+?)$":{gettext:"No communication with device since {{timestamp | absoluteDate}}.",placeholders:{timestamp:"$1"}},"^No data received from device within required interval.$":{gettext:"No data received from device within required interval."},"^No LoRa provider settings are found. Please configure the connectivity settings.$":{gettext:"No LoRa provider settings are found. Please configure the connectivity settings."},"^Not within any context!$":{gettext:"A problem occurred with microservice subscription."},"^Maximum age cannot be bigger than 10 years.$":{gettext:"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:"Microservice application name is incorrect: only lower case letters, digits and dashes allowed. Maximum length: {{maxLength}}.",placeholders:{maxLength:"$1"}},"^Microservice not available.*$":{gettext:"Microservice is not available."},"^Operation created$":{gettext:"Operation created."},"^Operation updated$":{gettext:"Operation updated."},"^Operation created: status='(.+?)'.":{gettext:'Operation created: status="{{status | translate}}".',placeholders:{status:"$1"}},"^Option created$":{gettext:"Option created."},'^Option "(.+?)" created$':{gettext:'Option "{{option}}" created.',placeholders:{option:"$1"}},"^Option deleted$":{gettext:"Option deleted."},'^Option "(.+?)" deleted$':{gettext:'Option "{{option}}" deleted.',placeholders:{option:"$1"}},"^Owner field error. : Cannot introduce cyclic dependency.":{gettext:"Could not introduce cyclic ownership dependency."},"^Password change is temporary blocked.$":{gettext:"Password change is temporarily blocked."},"^Password cipher does not match":{gettext:"Password cipher does not match."},"^Platform application cannot be added to, nor removed from any tenant.$":{gettext:"Platform application cannot be added to, nor removed from any tenant."},"^Private key must be provided in KEY_PAIR credentials$":{gettext:'Private key must be provided when "Public / private keys" option is selected.'},"^Private key cipher does not match":{gettext:"Private key cipher does not match"},'^Protocol "(.+?)" does not support "(.+?)" credentials type$':{gettext:'Protocol "{{protocol}}" does not support "{{credentialsType}}" credentials type.',placeholders:{protocol:"$1",credentialsType:"$2"}},'^pulling image "(.+)"$':{gettext:'Pulling image: "{{imageName}}".',placeholders:{imageName:"$1"}},"^Real-time event processing is currently overloaded and may stop processing your events\\. Please contact support\\.$":{gettext:"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:'Could not find the resource with ID "{{id}}".',placeholders:{id:"$1"}},"^Scaled up replica set (.+) to (\\d+)$":{gettext:'Replica set "{{replicaSetName}}" scaled up to "{{scaleNumber}}".',placeholders:{replicaSetName:"$1",scaleNumber:"$2"}},"^Simulator state is invalid: (.+)$":{gettext:"Simulator state is invalid: {{violations}}",placeholders:{violations:{capture:"$1",translate:{"(\\w+?) - may not be null":{gettext:'"{{field}}" should not be null',placeholders:{field:"$1"}},"(\\w+?) - must be less than or equal to (\\d+)":{gettext:'"{{field}}" must be less than or equal to {{maxValue}}',placeholders:{field:"$1",maxValue:"$2"}},"(\\w+?) - should not contain null values":{gettext:'"{{field}}" should not contain null values',placeholders:{field:"$1"}}}}}},"^Smart rest template (.+?) doesn't exist$":{gettext:'SmartREST template with id "{{templateId}}" doesn\'t exist',placeholders:{templateId:"$1"}},"^Smart rule created$":{gettext:"Smart rule created."},"^Smart rule updated$":{gettext:"Smart rule updated."},"^Smart rule enabled$":{gettext:"Smart rule activated."},"^Smart rule disabled$":{gettext:"Smart rule deactivated."},"^Smart rule deleted$":{gettext:"Smart rule deleted."},'^Smart rule "(.+?)" created$':{gettext:'Smart rule "{{name}}" created.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" updated$':{gettext:'Smart rule "{{name}}" updated.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" enabled$':{gettext:'Smart rule "{{name}}" activated.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" disabled$':{gettext:'Smart rule "{{name}}" deactivated.',placeholders:{name:"$1"}},'^Smart rule "(.+?)" deleted$':{gettext:'Smart rule "{{name}}" deleted.',placeholders:{name:"$1"}},"^Started container$":{gettext:"Container started."},"^Successfully assigned (.+) to (.+)$":{gettext:'"{{imageName}}" assigned to "{{address}}".',placeholders:{imageName:"$1",address:"$2"}},'^Successfully pulled image "(.+)"$':{gettext:'Image "{{imageName}}" pulled.',placeholders:{imageName:"$1"}},"^Tenant creation failed. : Tenant with given id already exists.$":{gettext:"Could not create a tenant. Tenant with given domain/URL already exists."},'^Tenant id cannot be a reserved sql keyword "(.+?)".$':{gettext:'Could not use a reserved SQL keyword "{{tenantId}}" as a domain name.',placeholders:{tenantId:"$1"}},'^Tenant "(.+?)" activated$':{gettext:'Tenant "{{tenant}}" activated.',placeholders:{tenant:"$1"}},"^Tenant (.+?) has sub-tenants, please remove them first!$":{gettext:'Could not remove tenant "{{tenant}}". Remove its subtenants first.',placeholders:{tenant:"$1"}},"^Tenant activated$":{gettext:"Tenant activated"},'^Tenant "(.+?)" created$':{gettext:'Tenant "{{tenant}}" created.',placeholders:{tenant:"$1"}},"^Tenant created$":{gettext:"Tenant created"},'^Tenant "(.+?)" deleted$':{gettext:'Tenant "{{tenant}}" deleted.',placeholders:{tenant:"$1"}},"^Tenant deleted$":{gettext:"Tenant deleted"},'^Tenant "(.+?)" suspended$':{gettext:'Tenant "{{tenant}}" suspended.',placeholders:{tenant:"$1"}},"^Tenant suspended$":{gettext:"Tenant suspended"},'^Tenant "(.+?)" updated: (.+?)$':{gettext:'Tenant "{{tenant}}" updated: {{properties}}.',placeholders:{tenant:"$1",properties:"$2"}},"^Tenant updated$":{gettext:"Tenant updated"},"^Too Many Requests$":{gettext:"Too many requests. Try again later."},"^User alias equals username '(.+)'$":{gettext:"Username and login alias must be different."},"^User created$":{gettext:"User created"},"^User (.+?) created$":{gettext:'User "{{name}}" created',placeholders:{name:"$1"}},"^User deleted$":{gettext:"User deleted"},"^User (.+?) deleted$":{gettext:'User "{{name}}" deleted',placeholders:{name:"$1"}},"^User updated$":{gettext:"User updated"},"^User (.+?) updated: (.+)$":{gettext:'User "{{name}}" updated: {{updatesList}}',placeholders:{name:"$1",updatesList:{capture:"$2",translate:{"delegatedBy='(.+?)'":{gettext:'delegated by: "{{delegate}}"',placeholders:{delegate:"$1"}},"owner='(.+?)'":{gettext:'owner: "{{owner}}"',placeholders:{owner:"$1"}},"inventory assignment \\[(.+?)\\] added":{gettext:"inventory assignment [{{inventoryAssignment}}] added",placeholders:{inventoryAssignment:"$1"}},"inventory assignment \\[(.+?)\\] removed":{gettext:"inventory assignment [{{inventoryAssignment}}] removed",placeholders:{inventoryAssignment:"$1"}},"applications \\[(.+?)\\] added$":{gettext:"applications [{{applicationsList}}] added",placeholders:{applicationsList:"$1"}},"applications \\[(.+?)\\] removed$":{gettext:"applications [{{applicationsList}}] removed",placeholders:{applicationsList:"$1"}},"global roles \\[(.+?)\\] added$":{gettext:"global roles [{{globalRolesList}}] added",placeholders:{globalRolesList:"$1"}},"global roles \\[(.+?)\\] removed$":{gettext:"global roles [{{globalRolesList}}] removed",placeholders:{globalRolesList:"$1"}}}}}},"^User with username '(.+?)' already exists! : Duplicated: (.+?)$":{gettext:'User "{{username}}" already exists.',placeholders:{username:"$1"}},"^User with username or alias '(.+)' already exists! : Duplicated: (.+)$":{gettext:'User with username or login alias "{{usernameOrAlias}}" already exists.',placeholders:{usernameOrAlias:"$1"}},"^User with email '(.+?)' already exists! : Duplicated: (.+?)$":{gettext:'User with email "{{email}}" already exists.',placeholders:{email:"$1"}},"^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$":{gettext:'Unable to get tenant option: "{{option}}".',placeholders:{option:"$2"}},"^unable to find option with given key (.+?) : There is no system property for key (.+?)$":{gettext:'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:"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:"The chosen name is too long. Please try a shorter one."},"^You have reached devices limit. No more devices can be registered.$":{gettext:"You reached devices limit. No more devices can be registered."},'^(.+) succeeded for volume "(.+)"':{gettext:'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:'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:"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:"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:"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:"Pod synchronization error."},"^Failed create pod sandbox.$":{gettext:"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:'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:'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:'Added new child device to "{{parentDeviceName}}" (ID: {{parentDeviceId}}).',placeholders:{parentDeviceName:"$1",parentDeviceId:"$2"}},'^Updated child device of "(.+)" \\(ID: (.+)\\).$':{gettext:'Updated child device of "{{parentDeviceName}}" (ID: {{parentDeviceId}}).',placeholders:{parentDeviceName:"$1",parentDeviceId:"$2"}},'^Added child device "(.+)" \\(ID: (.+)\\).$':{gettext:'Added child device "{{name}}" (ID: {{id}}).',placeholders:{name:"$1",id:"$2"}},'^Removed child device "(.+)" \\(ID: (.+)\\).$':{gettext:'Removed child device "{{name}}" (ID: {{id}}).',placeholders:{name:"$1",id:"$2"}},'^Change value of "(.+)" to (.+) (.+).$':{gettext:'Change value of "{{name}}" to {{value}}{{unit}}.',placeholders:{name:"$1",value:"$2",unit:"$3"}},'^Change value of "(.+)" to (.+).$':{gettext:'Change value of "{{name}}" to {{value}}.',placeholders:{name:"$1",value:"$2"}},'^Change status of "(.+)" to "(.+)".$':{gettext:'Change status of "{{name}}" to "{{label}}".',placeholders:{name:"$1",label:"$2"}},'^Send message "(.+)".$':{gettext:'Send message "{{str}}".',placeholders:{str:"$1"}},"^Close relay (.+).$":{gettext:"Close relay {{number}}.",placeholders:{number:"$1"}},"^Open relay (.+).$":{gettext:"Open relay {{number}}.",placeholders:{number:"$1"}},"^Change trace status to (.+).$":{gettext:"Change trace status to {{state | translate}}.",placeholders:{state:"$1"}},"^Change relay status to (.+).$":{gettext:"Change relay status to {{status | translate}}.",placeholders:{status:"$1"}},"^Closing relay (.+).$":{gettext:"Closing relay {{number}}.",placeholders:{number:"$1"}},"^Opening relay (.+).$":{gettext:"Opening relay {{number}}.",placeholders:{number:"$1"}},"^Update firmware to: (.+) \\(version: (.+)\\).$":{gettext:"Update firmware to: {{name}} (version: {{version}}).",placeholders:{name:"$1",version:"$2"}},"^Execute generic command: (.+).$":{gettext:"Execute generic command: {{command}}.",placeholders:{command:"$1"}},"^Failed to refresh application. : Cannot refresh non local-hosted application.$":{gettext:"Could not reactivate the application as it is not hosted locally."},"^Failed to refresh application. : Cannot refresh application without active version id.$":{gettext:"Could not reactivate the application as it has no active version."},"^Scaled down replica set (.+) to (\\d+)$":{gettext:'Replica set "{{replicaSetName}}" scaled down to "{{scaleNumber}}".',placeholders:{replicaSetName:"$1",scaleNumber:"$2"}},"^Deleted pod: (.+)$":{gettext:'Pod "{{imageName}}" deleted.',placeholders:{imageName:"$1"}},'^Container image "(.+)" already present on machine$':{gettext:'Container image "{{imageName}}" already exists.',placeholders:{imageName:"$1"}},"^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$":{gettext:"This login mode was already set by another administrator. Refresh the page to update the data."}},mu=function(){function e(){this.cachedDictionary={}}return e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"})],e)}(),gu=function(){function e(e,t,n,a,s){void 0===a&&(a=null),void 0===s&&(s=null),this.http=e,this.optionsService=t,this.cachedLocaleDictionaryService=n,this.path=a,this.languages=s}return e.prototype.getTranslation=function(e){var t=this,n=""+(this.path||"")+e+".json";return this.languages&&this.languages[e]&&this.languages[e].url&&(n=this.languages[e].url),this.http.get(n).pipe(s.map((function(n){return t.optionsService.langsDetails&&t.optionsService.langsDetails[e]?gc({},n[e],t.optionsService.langsDetails[e]):n[e]})),s.tap((function(n){t.cachedLocaleDictionaryService.cachedDictionary[e]=n})),s.map((function(e){return t.getDictionaryWithTrimmedKeys(e)})),s.catchError((function(){return a.of({})})))},e.prototype.getDictionaryWithTrimmedKeys=function(e){return o.mapKeys(e,(function(e,t){return fu(t)}))},e.ctorParameters=function(){return[{type:d.HttpClient},{type:Gc},{type:mu},{type:String,decorators:[{type:t.Inject,args:[iu]}]},{type:void 0,decorators:[{type:t.Inject,args:[lu]}]}]},e=fc([t.Injectable(),hc(3,t.Inject(iu)),hc(4,t.Inject(lu))],e)}();function fu(e){return e.replace(/(\r\n|\n|\r)/gm,"").replace(/\s{2,}/g," ").trim()}var hu=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return mc(n,e),n.prototype.getValue=function(e,t){var n=fu(t),a=o.get(e,[n]);a||t.split(".").length>1&&(a=o.get(e,t));return a},n=fc([t.Injectable()],n)}(i.TranslateDefaultParser),yu=function(){function e(e,n,a){var s=this;this.translateService=e,this.element=n,this._ref=a,this.htmlUpdateEvent=new t.EventEmitter,this.onTranslationChangeSub||(this.onTranslationChangeSub=this.translateService.onTranslationChange.subscribe((function(e){e.lang===s.translateService.currentLang&&s.checkNodes()}))),this.onLangChangeSub||(this.onLangChangeSub=this.translateService.onLangChange.subscribe((function(e){s.checkNodes()}))),this.onDefaultLangChangeSub||(this.onDefaultLangChangeSub=this.translateService.onDefaultLangChange.subscribe((function(e){s.checkNodes()})))}return Object.defineProperty(e.prototype,"translateParams",{set:function(e){o.isEqual(this.currentParams,e)||(this.currentParams=e,this.checkNodes())},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewChecked=function(){this.checkNodes()},e.prototype.checkNodes=function(){this.isLookupKeyMissing()&&(this.element.nativeElement.lookupKey=this.getLookupKey()),this.translateAndUpdateHtmlContent(),this.htmlUpdateEvent.emit()},e.prototype.ngOnDestroy=function(){this.onLangChangeSub&&this.onLangChangeSub.unsubscribe(),this.onDefaultLangChangeSub&&this.onDefaultLangChangeSub.unsubscribe(),this.onTranslationChangeSub&&this.onTranslationChangeSub.unsubscribe(),this.htmlUpdateEvent.complete()},e.prototype.getLookupKey=function(){return this.element.nativeElement.innerHTML.replace(/<!--.*?-->/gs,"").trim()},e.prototype.isLookupKeyMissing=function(){return!this.element.nativeElement.lookupKey},e.prototype.lookupKeyExist=function(){return this.element.nativeElement.lookupKey},e.prototype.translateAndUpdateHtmlContent=function(){this.lookupKeyExist()&&(this.element.nativeElement.innerHTML=this.translateService.instant(this.element.nativeElement.lookupKey,this.currentParams||{}))},e.ctorParameters=function(){return[{type:i.TranslateService},{type:t.ElementRef},{type:t.ChangeDetectorRef}]},fc([t.Input()],e.prototype,"translateParams",null),e=fc([t.Directive({selector:"[forceHtmlTranslate]"})],e)}();try{require("@c8y/ngx-components/locales/de.po"),require("@c8y/ngx-components/locales/en.po"),require("@c8y/ngx-components/locales/es.po"),require("@c8y/ngx-components/locales/fr.po"),require("@c8y/ngx-components/locales/ja_JP.po")}catch(e){}function vu(e,t,n,a,s){return new gu(e,t,n,a,s)}function ju(e){return e.localePath}function bu(e){return e.languages}function wu(e){return{get lang(){return e.state.lang||"en"},toLowerCase:function(){return this.lang},toString:function(){return this.lang}}}var Su=function(){function e(){}var n;return n=e,e.providers=function(){return[{provide:t.LOCALE_ID,useFactory:wu,deps:[Bc]},{provide:cu,useValue:pu,multi:!0},{provide:iu,useFactory:ju,deps:[Gc]},{provide:lu,useFactory:bu,deps:[Gc]},{provide:i.TranslateLoader,useFactory:vu,deps:[d.HttpClient,Gc,mu,iu,lu]},{provide:i.TranslateCompiler,useClass:i.TranslateFakeCompiler},{provide:i.TranslateParser,useClass:hu},{provide:i.MissingTranslationHandler,useClass:du},i.TranslateStore,i.TranslateService,{provide:i.USE_STORE,useValue:void 0},{provide:i.USE_DEFAULT_LANG,useValue:void 0},{provide:i.USE_EXTEND,useValue:!1},{provide:i.DEFAULT_LANGUAGE,useValue:void 0}]},e.forRoot=function(){return{ngModule:n,providers:n.providers()}},e=n=fc([t.NgModule({exports:[i.TranslateModule,yu],imports:[d.HttpClientModule],declarations:[yu]})],e)}(),Cu=function(){function e(e,t){this.el=e,this.renderer=t,this.c8yMatch=/^c8y-/,this.klasses=[],this.currentClasses=""}return Object.defineProperty(e.prototype,"c8yIcon",{set:function(e){this.updateIcon(e)},enumerable:!0,configurable:!0}),e.prototype.isC8y=function(e){return this.c8yMatch.test(e)},e.prototype.getClasses=function(e){void 0===e&&(e="");var t="";if(e){var n=e.trim(),a=this.isC8y(n);t=(a?"c8y-icon":"fa fw")+" "+(a?n.replace(this.c8yMatch,"c8y-icon-"):"fa-"+n)}return t},e.prototype.updateIcon=function(e){var t=this,n=this.getClasses(e);n!==this.currentClasses&&(this.currentClasses.split(/\s/).filter((function(e){return e})).forEach((function(e){t.renderer.removeClass(t.el.nativeElement,e)})),n.split(/\s/).filter((function(e){return e})).forEach((function(e){t.renderer.addClass(t.el.nativeElement,e)})),this.currentClasses=n)},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2}]},fc([t.Input()],e.prototype,"c8yIcon",null),e=fc([t.Directive({selector:"[c8yIcon]"})],e)}(),Iu=["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"],Pu=function(){function e(e,t,n,a){this.viewContainer=e,this.resolver=t,this.renderer=n,this.el=a,this.properties={}}return Object.defineProperty(e.prototype,"c8yOutlet",{set:function(e){if(e)if(this._element instanceof Element&&this.renderer.removeChild(this._element.parentElement,this._element),this.viewContainer.clear(),e instanceof t.TemplateRef)this.viewContainer.createEmbeddedView(e);else if(e instanceof Element){var n=this.renderer.parentNode(this.el.nativeElement);this.destroy(),this._element=e,this.renderer.insertBefore(n,this._element,this.el.nativeElement)}else{var a=this.resolver.resolveComponentFactory(e),s=this.viewContainer.createComponent(a);o.assign(s.instance,this.properties)}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yOutletProperties",{set:function(e){this.properties=e},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.destroy()},e.prototype.destroy=function(){if(this._element){var e=this.renderer.parentNode(this._element);this.renderer.removeChild(e,this._element)}},e.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:t.ComponentFactoryResolver},{type:t.Renderer2},{type:t.ElementRef}]},fc([t.Input()],e.prototype,"c8yOutlet",null),fc([t.Input()],e.prototype,"c8yOutletProperties",null),e=fc([t.Directive({selector:"[c8yOutlet]"})],e)}(),Ou=function(){function e(){this.LOCAL_STORAGE_KEY="userPreferences",this.store={};try{var e=window.localStorage.getItem(this.LOCAL_STORAGE_KEY);e&&(this.store=JSON.parse(e)||{})}catch(e){}}return e.prototype.get=function(e){return a.of(this.store[e])},e.prototype.set=function(e,t){return this.store[e]=t,this.saveJsonStore()},e.prototype.saveJsonStore=function(){return window.localStorage.setItem(this.LOCAL_STORAGE_KEY,JSON.stringify(this.store))},e}(),_u=function(){function e(e){this.inventory=e,this.TYPE="c8y_UserPreference"}return e.prototype.get=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return[4,this.inventory.list({fragmentType:e})];case 1:return[2,(t=n.sent().data).length?t[0][e]:void 0]}}))}))},e.prototype.set=function(e,t){return yc(this,void 0,void 0,(function(){var n,a,s,o;return vc(this,(function(r){switch(r.label){case 0:return[4,this.inventory.list({fragmentType:e})];case 1:return n=r.sent().data,(o={})[e]=t,o.type=this.TYPE,a=o,n.length?(a.id=n[0].id,s=this.inventory.update(a)):s=this.inventory.create(a),[2,s]}}))}))},e}(),xu=function(){function e(e,t,n){this.user=e,this.inventory=t,this.appState=n,this.LOCAL_STORAGE_KEY="userPreferences",this.storage={local:new Ou,inventory:new _u(this.inventory)},this.currentUser=this.appState.currentUser}return e.prototype.get=function(e){var t=this;return this.currentUser.pipe(s.first(),s.switchMap((function(n){return t.getForUser(e,n)})))},e.prototype.set=function(e,t){var n=this;return new Promise((function(a,o){n.currentUser.pipe(s.first()).subscribe((function(s){a(n.setForUser(e,t,s))}),o)}))},e.prototype.getForUser=function(e,t){var n=this.getRawKey(e,t),s=this.getStorage(t);return a.from(s.get(n))},e.prototype.setForUser=function(e,t,n){var a=this.getRawKey(e,n),s=this.getStorage(n);return Promise.resolve(s.set(a,t))},e.prototype.getRawKey=function(e,t){return""+e+t.userName.replace(/\./g,"__")},e.prototype.getStorage=function(e){return this.user.hasAllRoles(e,["ROLE_INVENTORY_READ","ROLE_INVENTORY_ADMIN"])?this.storage.inventory:this.storage.local},e.ctorParameters=function(){return[{type:l.UserService},{type:l.InventoryService},{type:Bc}]},e=fc([t.Injectable()],e)}();var Eu=new Map;function ku(e){return new Promise((function(t,n){Eu.has(e)?t(Eu.get(e)):fetch("assets/locales/angular/"+e+".js").then((function(e){return e.text()})).then((function(n){var a=function(e){var t=e.split(/\n/).map((function(e){return e.trim()})).filter(Boolean).filter((function(e){return!e.match(/^\/?\*/)&&!e.match(/^\/\//)})).join("\n");return new Function("var exports = {};\nvar module = { exports: exports };\n"+t+"\nreturn exports;")()}(n);Eu.set(e,a),t(a)})).catch(n)}))}var Au=function(){function e(e,t,n){var a=this;this.ngxTranslate=e,this.ui=t,this.options=n,this.langsDetail=this.options.get("languages",{}),this.langs=o.keys(this.langsDetail).filter((function(e){return a.langsDetail[e]})),this.DEFAULT_SEPARATOR="_";var s=this.queryStringLang();s&&this.saveInLocalStorage(s)}var n;return n=e,e.defaultLang=function(){return window.localStorage.getItem(n.SAVE_LANGUAGE_KEY)},e.prototype.switchToLanguage=function(e){return yc(this,void 0,void 0,(function(){var t,n,a;return vc(this,(function(s){switch(s.label){case 0:t=e.replace("_","-"),s.label=1;case 1:return s.trys.push([1,3,,7]),[4,this.loadLocales(t)];case 2:return s.sent(),[3,7];case 3:return n=s.sent(),(a=t.split("-").shift())===t?[3,5]:[4,this.loadLocales(a)];case 4:return s.sent(),[3,6];case 5:throw n;case 6:return[3,7];case 7:return this.setLanguage(e),[2]}}))}))},e.prototype.loadLocales=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return[4,ku(e)];case 1:return t=n.sent(),u.registerLocaleData(t.default),[2]}}))}))},e.prototype.setLanguage=function(e){var t=this;this.ngxTranslate.setDefaultLang(this.options.get("defaultLanguage","en")),this.ngxTranslate.use(e).subscribe((function(){t.ui.state$.next(gc({},t.ui.state,{lang:e}))}))},e.prototype.firstSupportedLanguage=function(){var e=this,t=[this.queryStringLang(),this.localStorageLang()].concat([this.options.get("defaultLanguage")]).concat(this.browserLangs()).concat(["en"]).filter(Boolean).find((function(t){return e.getSupported(t)}));return this.getSupported(t)},e.prototype.convertToLanguageCodePO=function(e){var t=e.indexOf("-")>-1?"-":this.DEFAULT_SEPARATOR,n=jc(e.split(t),2),a=n[0],s=n[1];return""+a+(s?""+this.DEFAULT_SEPARATOR+s:"")},e.prototype.getNativeLanguage=function(e){return((this.langsDetail||{})[e]||{}).nativeName||e},e.prototype.saveInLocalStorage=function(e){window.localStorage.setItem(n.SAVE_LANGUAGE_KEY,e)},e.prototype.getSupported=function(e){return this.langs.find((function(t){return t===e}))||this.langs.find((function(t){return t.startsWith(e)}))},e.prototype.queryStringLang=function(){return this.getQueryParameter("lang")},e.prototype.localStorageLang=function(){return window.localStorage.getItem(n.SAVE_LANGUAGE_KEY)},e.prototype.browserLangs=function(){var e=window.navigator;return["languages","language","browserLanguage","systemLanguage","userLanguage"].reduce((function(t,n){var a=e[n];return"string"==typeof a?t.push(a):Array.isArray(a)&&(t=t.concat(a)),t}),[])},e.prototype.getQueryParameter=function(e){var t;return window.location.search.substring(1).split("&").find((function(n){var a=jc(n.split("="),2),s=a[0],o=a[1];return s===e&&(t=o),t})),t},e.SAVE_LANGUAGE_KEY="c8y_language",e.ctorParameters=function(){return[{type:i.TranslateService},{type:Bc},{type:Gc}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(i.TranslateService),t.ɵɵinject(Bc),t.ɵɵinject(Gc))},token:e,providedIn:"root"}),e=n=fc([t.Injectable({providedIn:"root"})],e)}(),Tu=function(){function e(){}return e.prototype.transform=function(e){var t=e.firstName,n=void 0===t?"":t,a=e.lastName,s=void 0===a?"":a,o=e.userName,r=void 0===o?"":o,l=n.trim().split(/\s+/).shift().substr(0,1),i=s.trim().split(/\s+/).pop();return(l=i?l?l+". ":"":n.split(/\s+/).shift())||i?l+i:r},e=fc([t.Pipe({name:"shortenUserName"})],e)}(),Du=function(){function e(e){this.element=e,this.useIntersection=!0,this.hidden=!1,this.class="c8y-list__item bg-transparent",this.maxIterations=10,this.onLoad=new t.EventEmitter,this.isLoading=!1,this.counter=0,this.showNoMoreDataHint=!1,this.LOAD_SAME_PAGE_THRESHOLD=50}return Object.defineProperty(e.prototype,"hostClass",{get:function(){return this.hidden||!this.hasMore&&!this.showNoMoreDataHint?"":this.class},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasMore",{get:function(){return this.paging&&this.paging.totalPages>this.paging.currentPage},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this.useIntersection&&"IntersectionObserver"in window&&(this.intersectionObserver=new IntersectionObserver((function(t){return e.buttonInView(t[0])}),{root:this.container?this.container.nativeElement:null}),this.intersectionObserver.observe(this.element.nativeElement)),this.showNoMoreDataHint=this.shouldShowNoMoreDataHint()},e.prototype.ngOnDestroy=function(){this.intersectionObserver&&this.intersectionObserver.disconnect()},e.prototype.loadMore=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return this.isLoading=!0,e&&e.stopPropagation(),this.hasMore?[4,this.paging.next()]:[3,2];case 1:return t=n.sent(),this.counter++,this.paging=t.paging,this.onLoad.emit(t.data),this.intersectionLoading(),this.showNoMoreDataHint=this.shouldShowNoMoreDataHint(),[3,3];case 2:this.counter=0,this.isLoading=!1,n.label=3;case 3:return[2]}}))}))},e.prototype.intersectionLoading=function(){var e=this;this.useIntersection&&this.hasMore&&null!==this.loadUntilIntersected?(this.loadUntilIntersected=setTimeout((function(){return e.loadMore()}),this.getLoadingThreshold()),this.useIntersection=this.shouldSwitchMode()):(this.isLoading=!1,this.loadUntilIntersected=void 0)},e.prototype.getLoadingThreshold=function(){return this.LOAD_SAME_PAGE_THRESHOLD*this.counter},e.prototype.shouldShowNoMoreDataHint=function(){return(0!==this.counter||this.noMoreDataHint)&&!this.hasMore&&!this.hidden},e.prototype.shouldSwitchMode=function(){return this.counter<this.maxIterations||this.hidden},e.prototype.buttonInView=function(e){e.isIntersecting?this.loadMore():this.loadUntilIntersected?(clearTimeout(this.loadUntilIntersected),this.loadUntilIntersected=null,this.isLoading=!1):this.loadUntilIntersected=null},e.ctorParameters=function(){return[{type:t.ElementRef}]},fc([t.Input()],e.prototype,"paging",void 0),fc([t.Input()],e.prototype,"useIntersection",void 0),fc([t.Input()],e.prototype,"hidden",void 0),fc([t.Input()],e.prototype,"container",void 0),fc([t.Input()],e.prototype,"class",void 0),fc([t.Input()],e.prototype,"maxIterations",void 0),fc([t.Input()],e.prototype,"noMoreDataHint",void 0),fc([t.Output()],e.prototype,"onLoad",void 0),fc([t.HostBinding("class")],e.prototype,"hostClass",null),e=fc([t.Component({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 <span\n *ngIf="!isLoading"\n translate\n ngNonBindable\n [translateParams]="{ pageNo: paging.currentPage + 1 }"\n >\n Load page {{ pageNo }}</span\n >\n <span\n *ngIf="isLoading"\n translate\n ngNonBindable\n [translateParams]="{ pageNo: paging.currentPage + 1 }"\n >\n Page {{ pageNo }} is loading…\n </span>\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\'" title="{{ \'No more data found.\' | translate }}"></i>\n </div>\n</ng-template>\n'})],e)}(),Nu=function(){function e(e,t,n){this.tpl=e,this.vcr=t,this.componentFactoryResolver=n,this.cachedData=[],this.loadMoreMode="auto",this.dataPipe=a.pipe(s.tap()),this.maxIterations=10}return Object.defineProperty(e.prototype,"shouldUseLoadMoreButton",{get:function(){return"auto"===this.loadMoreMode||"show"===this.loadMoreMode||"hidden"===this.loadMoreMode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasMoreData",{get:function(){return this.loadMore&&this.loadMore.hasMore},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this.cachedData.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForOf",{set:function(e){var t=this;e&&(this.obs$=(a.isObservable(e)?e:a.of(e)).pipe(s.map((function(e){var n=e.paging,a=e.data;return t.paging=n,a}))))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForLoadMore",{set:function(e){this.loadMoreMode=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForPipe",{set:function(e){e&&(this.dataPipe=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForNotFound",{set:function(e){this.notFoundTemplate=e,this.loadMore&&(this.loadMore.noMoreDataHint=e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"c8yForMaxIterations",{set:function(e){this.maxIterations=e},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(e){var t=this;if(this.obs$&&(e.c8yForPipe||e.c8yForOf)){this.unsubscribePaging();var n=!this.hasMoreData&&!!e.c8yForPipe&&!e.c8yForOf;n&&(this.obs$=a.of(this.cachedData)),this.pagingSub=this.obs$.pipe(s.tap((function(e){n||(t.cachedData=e)}))).pipe((function(e){return t.dataPipe(e)})).subscribe((function(e){t.render(e,n)}))}},e.prototype.ngOnDestroy=function(){this.unsubscribePaging()},e.prototype.render=function(e,t){var n=this;void 0===t&&(t=!1),this.vcr.clear(),e.forEach((function(e,t){var a={$implicit:e,index:t,length:n.length,hasMore:n.hasMoreData};n.vcr.createEmbeddedView(n.tpl,a)})),this.shouldUseLoadMoreButton&&(this.loadMore=this.createLoadMoreButtonComponent(t))},e.prototype.append=function(e){var t=this;e.forEach((function(e){var n=t.shouldUseLoadMoreButton?t.vcr.length-1:t.vcr.length,a={$implicit:e,index:n,length:t.length,hasMore:t.hasMoreData};t.vcr.createEmbeddedView(t.tpl,a,n)}))},e.prototype.loadMoreData=function(e){e.length>0&&this.append(e)},e.prototype.createLoadMoreButtonComponent=function(e){var t=this,n=this.componentFactoryResolver.resolveComponentFactory(Du),a=this.vcr.createComponent(n).instance;return a.paging=this.paging,a.useIntersection="auto"===this.loadMoreMode||"hidden"===this.loadMoreMode,a.hidden="hidden"===this.loadMoreMode,a.maxIterations=this.maxIterations,a.noMoreDataHint=this.notFoundTemplate,this.pagingSub=a.onLoad.pipe(s.tap((function(e){t.cachedData=t.cachedData.concat(e)}))).pipe((function(e){return t.dataPipe(e)})).subscribe((function(e){return t.loadMoreData(e)})),e&&o.assign(a,this.loadMore),a},e.prototype.unsubscribePaging=function(){this.pagingSub&&this.pagingSub.unsubscribe()},e.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.ViewContainerRef},{type:t.ComponentFactoryResolver}]},fc([t.Input()],e.prototype,"c8yForOf",null),fc([t.Input()],e.prototype,"c8yForLoadMore",null),fc([t.Input()],e.prototype,"c8yForPipe",null),fc([t.Input()],e.prototype,"c8yForNotFound",null),fc([t.Input()],e.prototype,"c8yForMaxIterations",null),e=fc([t.Directive({selector:"[c8yFor]"})],e)}(),Mu=function(){function e(){}return e.prototype.transform=function(e,t,n){return t.apply(n||this,Array.isArray(e)?e:[e])},e=fc([t.Pipe({name:"map"})],e)}(),qu=function(){function e(){this.message="Loading…",this.progress=null}return fc([t.Input()],e.prototype,"message",void 0),fc([t.Input()],e.prototype,"progress",void 0),e=fc([t.Component({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'})],e)}(),Lu=function(){function e(e,t,n){this.appState=e,this.inventory=t,this.user=n}return e.prototype.canEdit=function(e,t){return this.checkIfCanEdit(e,t)},e.prototype.hasRole=function(e){var t=this.appState.currentUser.value;if(!t)throw new Error("Roles can only be requested if the user is logged in.");return this.user.hasRole(t,e)},e.prototype.hasAllRoles=function(e){var t=this.appState.currentUser.value;if(!t)throw new Error("Roles can only be requested if the user is logged in.");return this.user.hasAllRoles(t,e)},e.prototype.hasAnyRole=function(e){var t=this.appState.currentUser.value;if(!t)throw new Error("Roles can only be requested if the user is logged in.");return this.user.hasAnyRole(t,e)},e.prototype.checkIfOwner=function(e){return yc(this,void 0,void 0,(function(){var t,n,a;return vc(this,(function(s){switch(s.label){case 0:return[4,this.appState.currentUser.value.userName];case 1:return t=s.sent(),[4,this.inventory.detail(e.id)];case 2:return n=s.sent(),a=n.data,n.res,[2,t===a.owner]}}))}))},e.prototype.checkWithRequest=function(e){var t=e.name,n={id:e.id,name:t};return this.inventory.update(n).then((function(e){return!0})).catch((function(e){return!1}))},e.prototype.checkIfCanEdit=function(e,t){return yc(this,void 0,void 0,(function(){return vc(this,(function(n){switch(n.label){case 0:return[4,this.hasAnyRole(e)];case 1:return n.sent()?[2,!0]:[3,2];case 2:return[4,this.checkIfOwner(t)];case 3:return n.sent()?[2,!0]:[3,4];case 4:return[4,this.checkWithRequest(t)];case 5:if(n.sent())return[2,!0];n.label=6;case 6:return[2,!1]}}))}))},e.ctorParameters=function(){return[{type:Bc},{type:l.InventoryService},{type:l.UserService}]},e=fc([t.Injectable()],e)}();function Ru(e,t,n){return function(){var a=e.queryStringLang(),o=e.firstSupportedLanguage();a&&e.getSupported(a)?e.switchToLanguage(a):t.currentUser.pipe(s.map((function(e){return e&&e.userName})),s.filter((function(e){return!!e})),s.distinctUntilChanged(),s.switchMap((function(){return n.get("language")})),s.startWith(o),s.filter((function(e){return!!e})),s.distinctUntilChanged()).subscribe((function(t){e.switchToLanguage(t)}))}}var $u,Fu=new t.InjectionToken("iconList"),Uu=function(){function e(){}var n;return n=e,e.providers=function(){return bc(r.DataModule.providers(),[{provide:Uc,useValue:window.C8Y_APP||{},multi:!0},{provide:t.APP_INITIALIZER,useFactory:Ru,deps:[Au,Bc,xu],multi:!0},{provide:Fu,useValue:Iu,multi:!1}],Su.providers(),[xu,Gc,Bc,Lu])},e.forRoot=function(){return{ngModule:n,providers:n.providers()}},e=n=fc([t.NgModule({imports:[u.CommonModule,Su],exports:[Cu,Pu,Su,u.CommonModule,ru,ou,Tu,Nu,Du,Mu,qu],declarations:[Cu,Pu,ou,ru,Tu,Nu,Du,Mu,qu],entryComponents:[Du]})],e)}(),Gu=function(){function e(e){this.actionBarService=e,this.placement="left",this.priority=0,this.itemClass=""}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.actionBarService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.actionBarService.remove(this)},e.ctorParameters=function(){return[{type:Ec}]},fc([t.Input()],e.prototype,"placement",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.Input()],e.prototype,"itemClass",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-action-bar-item",template:'<ng-template #template>\n <li class="{{itemClass}}">\n <ng-content></ng-content>\n </li>\n</ng-template>'})],e)}(),Bu=function(){function e(){this.navigatorOpen=!1,this.hasTabs=!1,this.isTabsHorizontal=!1,this.isPageToolbarExpanded=!1,this.uiActionBar=!0,this.items=[]}return Object.defineProperty(e.prototype,"hidden",{get:function(){return!(this.items&&this.items.length)},enumerable:!0,configurable:!0}),e.prototype.getSortedItems=function(e){return o.sortBy(o.filter(this.items,{placement:e}),this.byPriority)},e.prototype.byPriority=function(e){return-e.priority},fc([t.Input(),t.HostBinding("class.navigator-open")],e.prototype,"navigatorOpen",void 0),fc([t.Input(),t.HostBinding("class.has-tabs")],e.prototype,"hasTabs",void 0),fc([t.Input(),t.HostBinding("class.horizontal-tabs")],e.prototype,"isTabsHorizontal",void 0),fc([t.HostBinding("class.c8y-ui-action-bar")],e.prototype,"uiActionBar",void 0),fc([t.Input()],e.prototype,"items",void 0),fc([t.HostBinding()],e.prototype,"hidden",null),e=fc([t.Component({selector:"c8y-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',host:{class:"c8y-ui-action-bar"}})],e)}(),zu=function(){function e(){}return e=fc([t.NgModule({declarations:[Bu,Gu],imports:[Qi.BsDropdownModule,Uu,Xi.CollapseModule,n.RouterModule.forChild([])],exports:[Bu,Gu]})],e)}(),Hu=function(){function e(){this.isPageToolbarExpanded=!1,this.items=[]}return e.prototype.getByPriority=function(){return o.sortBy(this.items,this.byPriority)},e.prototype.invoke=function(e){e.action&&e.action.call()},e.prototype.byPriority=function(e){return-e.priority},fc([t.Input()],e.prototype,"items",void 0),e=fc([t.Component({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'})],e)}(),Vu=function(){function e(e){this.actionService=e,this.disabled=!1,this.priority=0}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.actionService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.actionService.remove(this)},e.ctorParameters=function(){return[{type:Ac}]},fc([t.Input()],e.prototype,"disabled",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-action",template:"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>"})],e)}(),Ku=function(){function e(){}return e=fc([t.NgModule({declarations:[Hu,Vu],imports:[Uu,Qi.BsDropdownModule,n.RouterModule.forChild([])],exports:[Hu,Vu]})],e)}(),Wu=function(){function e(){}return e=fc([t.Component({selector:"c8y-alert-details",template:"<ng-content></ng-content>"})],e)}(),Yu=function(){function e(e,t){this.position=e,this.alertService=t,this.detailDisplayedAlert={},this.isStatic=!1,this.isStatic="static"===this.position}return Object.defineProperty(e.prototype,"alerts",{get:function(){return this.alertService.state$},enumerable:!0,configurable:!0}),e.prototype.getClass=function(e){var t=[];return"danger"!==e.type&&t.push("interact"),t.push("alert-"+e.type),t.join(" ")},e.prototype.close=function(e){e.onClose&&e.onClose(),this.alertService.remove(e)},e.prototype.showDetails=function(e){if(e.onDetail)return e.onDetail();this.detailDisplayedAlert=Object.assign({},e),this.detailDisplayedAlert.mode="raw",this.setDetailsContent(e)},e.prototype.setDetailsContent=function(e){this.isTemplateRef(e.detailedData)||"string"==typeof e.detailedData?this.detailDisplayedAlert.contents=e.detailedData:this.detailDisplayedAlert.contents=JSON.stringify(e.detailedData,null,2)},e.prototype.hasDetails=function(e){return e.detailedData||e.onDetail},e.prototype.closeDetails=function(){this.detailDisplayedAlert={}},e.prototype.isDetailsShow=function(e){return this.alertService.areSame(e,this.detailDisplayedAlert)},e.prototype.isTemplateRef=function(e){return e instanceof t.TemplateRef},e.prototype.template=function(e){return this.isTemplateRef(e)?e:void 0},e.ctorParameters=function(){return[{type:String,decorators:[{type:t.Attribute,args:["position"]}]},{type:$c}]},fc([t.HostBinding("class.static")],e.prototype,"isStatic",void 0),e=fc([t.Component({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'}),hc(0,t.Attribute("position"))],e)}(),Zu=function(){function e(){}return e=fc([t.Component({selector:"c8y-alert-text",template:"<ng-content></ng-content>"})],e)}(),Ju=function(){function e(e){this.alertService=e}return e.prototype.ngAfterViewInit=function(){var e=this;this.containDetailsComponent||(this.detailedData=null),this.viewInitTimeout=setTimeout((function(){return e.alertService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.alertService.remove(this)},e.ctorParameters=function(){return[{type:$c}]},fc([t.Input()],e.prototype,"type",void 0),fc([t.Input()],e.prototype,"onDetail",void 0),fc([t.Input()],e.prototype,"onClose",void 0),fc([t.ViewChild("detailedData",{static:!1})],e.prototype,"detailedData",void 0),fc([t.ViewChild("text",{static:!1})],e.prototype,"text",void 0),fc([t.ContentChild(Wu,{static:!1})],e.prototype,"containDetailsComponent",void 0),e=fc([t.Component({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>'})],e)}(),Xu=function(){function e(){}return e=fc([t.NgModule({imports:[Uu],exports:[Yu,Ju,Wu,Zu],declarations:[Yu,Ju,Wu,Zu]})],e)}(),Qu=function(){function e(){}return fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"translate",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"path",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-breadcrumb-item",template:"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"})],e)}(),ed=function(){function e(){this.showAll=!1,this.breadcrumbs=[]}return e.prototype.normalizePath=function(e){return e.replace(/^#\/?/,"")},fc([t.Input()],e.prototype,"breadcrumbs",void 0),e=fc([t.Component({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'})],e)}(),td=function(){function e(e){this.breadcrumbService=e}return e.prototype.ngAfterViewInit=function(){var e=this;this.items=this.contentChildItems.toArray(),this.viewInitTimeout=setTimeout((function(){return e.breadcrumbService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.breadcrumbService.remove(this)},e.ctorParameters=function(){return[{type:Qc}]},fc([t.ContentChildren(Qu)],e.prototype,"contentChildItems",void 0),e=fc([t.Component({selector:"c8y-breadcrumb",template:"<ng-template>\n <ng-content></ng-content>\n</ng-template>"})],e)}(),nd=function(){function e(){}return e=fc([t.NgModule({declarations:[td,Qu,ed],imports:[n.RouterModule.forChild([]),Uu,ec.TooltipModule.forRoot()],exports:[td,Qu,ed]})],e)}(),ad=function(){function e(e){this.alertService=e,this.search=[]}return e.prototype.openSearch=function(){var e=this;setTimeout((function(){return e.focusInputBox()}),100)},e.prototype.getByPriority=function(){return c.sortBy(this.search,this.byPriority)},e.prototype.closeDropdown=function(e){e.hide()},e.prototype.verifyNotEmpty=function(e){e&&""!==e||this.alertService.add({text:"Type something to execute a search.",type:"warning"})},e.prototype.byPriority=function(e){return-e.priority},e.prototype.focusInputBox=function(){var e=document.querySelector("#search-header-menu input");e&&e.focus()},e.ctorParameters=function(){return[{type:$c}]},fc([t.Input()],e.prototype,"search",void 0),e=fc([t.Component({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'})],e)}(),sd=new t.InjectionToken("SearchFactory"),od=function(e){function o(t,n){var o=e.call(this)||this;return o.injector=t,o.refreshTrigger=new a.Subject,o.state$=new a.BehaviorSubject(new Set),o.items$=wc(n,o.refreshTrigger,[function(){return o.injector.get(sd,[])},Ic(o.state$)]).pipe(s.map((function(e){return Pc(e)})),s.shareReplay(1)),o}return mc(o,e),o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),rd=function(){function e(e){this.searchService=e,this.icon="search",this.priority=0,this.search=new t.EventEmitter,this.term=""}return e.prototype.onSearch=function(){this.search.emit(this)},e.prototype.ngAfterViewInit=function(){var e=this;this.template=void 0,this.viewInitTimeout=setTimeout((function(){return e.searchService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.searchService.remove(this)},e.ctorParameters=function(){return[{type:od}]},fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),fc([t.Output()],e.prototype,"search",void 0),fc([t.Input()],e.prototype,"term",void 0),e=fc([t.Component({selector:"c8y-search",template:"<ng-template #template>\n <ng-content></ng-content>\n</ng-template>"})],e)}(),ld=function(){function e(e){this.domSanitizer=e,this.pattern="",this.text="",this.elementClass="text-info",this.highlightedText=""}return e.prototype.ngOnChanges=function(){var e=this.text;this.pattern&&""!==this.pattern&&(e=this.text.replace(new RegExp(this.pattern,"i"),'<strong class="'+this.elementClass+'">$&</strong>')),this.highlightedText=this.domSanitizer.sanitize(t.SecurityContext.HTML,e)},e.ctorParameters=function(){return[{type:nc.DomSanitizer}]},fc([t.ViewChild("text",{read:t.ElementRef,static:!0})],e.prototype,"container",void 0),fc([t.Input()],e.prototype,"pattern",void 0),fc([t.Input()],e.prototype,"text",void 0),fc([t.Input()],e.prototype,"elementClass",void 0),e=fc([t.Component({selector:"c8y-highlight",template:'<span [innerHTML]="highlightedText"></span>'})],e)}(),id=function(){function e(){}return e=fc([t.NgModule({declarations:[ad,rd,ld],imports:[tc.FormsModule,Qi.BsDropdownModule,Uu,n.RouterModule.forChild([])],exports:[ad,rd,ld]})],e)}(),cd=function(){function n(t){var n=this;this.modal=t,this.status=e.Status.INFO,this._labels={ok:"OK",cancel:"Cancel"},this.result=new Promise((function(e,t){n.dismiss=function(){t(),n.modal.hide()},n.close=function(){e(!0),n.modal.hide()}}))}return Object.defineProperty(n.prototype,"labels",{get:function(){return this._labels},set:function(e){var t=e||{},n=t.ok,a=void 0===n?"OK":n,s=t.cancel,o=void 0===s?"Cancel":s;this._labels={ok:a,cancel:o}},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"classIcon",{get:function(){return"fa-"+eu[this.status]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"classAlert",{get:function(){return nu[this.status]},enumerable:!0,configurable:!0}),n.prototype.ngOnDestroy=function(){this.dismiss()},n.ctorParameters=function(){return[{type:ac.BsModalRef}]},fc([t.Input()],n.prototype,"title",void 0),fc([t.Input()],n.prototype,"body",void 0),fc([t.Input()],n.prototype,"status",void 0),fc([t.Input()],n.prototype,"labels",null),n=fc([t.Component({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'})],n)}(),ud=function(){function e(e){this.modal=e,this.onDismiss=new t.EventEmitter,this.onClose=new t.EventEmitter,this.disabled=!1,this.customFooter=!1,this._labels={ok:"OK",cancel:"Cancel"}}return Object.defineProperty(e.prototype,"labels",{get:function(){return this._labels},set:function(e){var t=e.ok,n=e.cancel;this._labels={ok:t,cancel:n}},enumerable:!0,configurable:!0}),e.prototype._dismiss=function(){var e=this,t=this.dismiss;!t&&this.modal&&(t=function(){return e.modal.hide()}),t&&t(),this.onDismiss.emit(!0)},e.prototype._close=function(){var e=this,t=this.close;!t&&this.modal&&(t=function(){return e.modal.hide()}),t&&t(),this.onClose.emit(!0)},e.prototype.onEnterKeyDown=function(e){var t=c.isEmpty(this.labels.ok)!==c.isEmpty(this.labels.cancel),n=!this.customFooter&&this.labels.cancel,a=!this.customFooter&&!this.disabled&&this.labels.ok;t&&n&&this._dismiss(),t&&a&&this._close()},e.ctorParameters=function(){return[{type:ac.BsModalRef,decorators:[{type:t.Optional}]}]},fc([t.Output()],e.prototype,"onDismiss",void 0),fc([t.Output()],e.prototype,"onClose",void 0),fc([t.Input()],e.prototype,"disabled",void 0),fc([t.Input()],e.prototype,"close",void 0),fc([t.Input()],e.prototype,"dismiss",void 0),fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"body",void 0),fc([t.Input()],e.prototype,"customFooter",void 0),fc([t.Input()],e.prototype,"labels",null),fc([t.HostListener("document:keydown.enter",["$event"])],e.prototype,"onEnterKeyDown",null),e=fc([t.Component({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'}),hc(0,t.Optional())],e)}(),dd=function(){function n(e){this.modalService=e}return n.prototype.confirm=function(t,n,a,s){return void 0===a&&(a=e.Status.INFO),void 0===s&&(s={}),yc(this,void 0,void 0,(function(){var e;return vc(this,(function(o){switch(o.label){case 0:return e={ok:s.ok||"Confirm",cancel:s.cancel||"Cancel"},[4,this.modalService.show(cd,{initialState:{title:t,body:n,labels:e,status:a}}).content.result];case 1:return[2,o.sent()]}}))}))},n.prototype.acknowledge=function(t,n,a,s){return void 0===a&&(a=e.Status.INFO),void 0===s&&(s="Confirm"),yc(this,void 0,void 0,(function(){var e;return vc(this,(function(o){switch(o.label){case 0:return e={ok:s,cancel:null},[4,this.modalService.show(cd,{initialState:{title:t,body:n,labels:e,status:a}}).content.result];case 1:return[2,o.sent()]}}))}))},n.ctorParameters=function(){return[{type:ac.BsModalService}]},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n(t.ɵɵinject(ac.BsModalService))},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(),pd=function(){function e(){this.buttons=[{label:"cancel",action:function(){return Promise.reject()}}],this.isOpen=!1,this.containerClass="",this.placement="right",this.outsideClick=!1}return e.prototype.show=function(e){return yc(this,void 0,void 0,(function(){var t,n=this;return vc(this,(function(a){switch(a.label){case 0:this.buttons=e||this.buttons,this.isOpen=!0,a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,new Promise((function(e,t){return n.click=function(n){return n().then(e).catch(t)}}))];case 2:return t=a.sent(),[3,5];case 3:throw a.sent();case 4:return this.isOpen=!1,[7];case 5:return[2,t]}}))}))},e.prototype.buttonStatus=function(e){return e?"btn-"+e:"btn-link btn-clean"},e.prototype.handleOutsideClick=function(){this.click((function(){return Promise.reject()}))},fc([t.ViewChild(sc.PopoverDirective,{static:!1})],e.prototype,"popover",void 0),fc([t.Input()],e.prototype,"buttons",void 0),fc([t.Input()],e.prototype,"message",void 0),fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"isOpen",void 0),fc([t.Input()],e.prototype,"containerClass",void 0),fc([t.Input()],e.prototype,"placement",void 0),fc([t.Input()],e.prototype,"outsideClick",void 0),e=fc([t.Component({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'})],e)}(),md=function(){function e(){}return e=fc([t.NgModule({imports:[ac.ModalModule.forRoot(),Uu,sc.PopoverModule.forRoot()],exports:[cd,ud,pd],declarations:[cd,ud,pd],providers:[dd],entryComponents:[cd]})],e)}(),gd=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.state$=new a.BehaviorSubject({userMenuItems:new Set}),t}return mc(n,e),Object.defineProperty(n.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),n.prototype.add=function(e){this.state.userMenuItems.add(e),this.emitNewState()},n.prototype.remove=function(e){this.state.userMenuItems.delete(e),this.emitNewState()},n.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new n},token:n,providedIn:"root"}),n=fc([t.Injectable({providedIn:"root"})],n)}(_c),fd=function(){function e(e){this.userService=e,this.priority=0,this.click=new t.EventEmitter}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.userService.add(e)}))},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.userService.remove(this)},e.prototype.onClick=function(){this.click.emit(this)},e.ctorParameters=function(){return[{type:gd}]},fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"link",void 0),fc([t.Input()],e.prototype,"target",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),fc([t.Output()],e.prototype,"click",void 0),e=fc([t.Component({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>'})],e)}(),hd=function(){function e(e,t,n,a,o,r,l,i,c){var u=this;this.modal=e,this.user=t,this.ui=n,this.auth=a,this.client=o,this.alert=r,this.translate=l,this.userPreferences=i,this.modalService=c,this.loading=!1,this.lang=this.ui.state.lang,this.modalService.onHide.pipe(s.take(1)).subscribe((function(e){null!==e&&void 0!==u.changedLang&&u.translate.switchToLanguage(u.lang)}))}return e.prototype.onDismiss=function(){void 0!==this.changedLang&&this.translate.switchToLanguage(this.lang),this.modal.hide()},e.prototype.onLanguage=function(e){this.changedLang=e,this.translate.switchToLanguage(this.changedLang)},e.prototype.updateAndClose=function(e){return yc(this,void 0,void 0,(function(){var t,n;return vc(this,(function(a){switch(a.label){case 0:this.loading=!0,a.label=1;case 1:return a.trys.push([1,6,7,8]),[4,this.user.updateCurrent(e)];case 2:return a.sent(),e.password&&this.updateCredentials(e.password),[4,this.user.current()];case 3:return t=a.sent(),this.ui.currentUser.next(t.data),this.changedLang&&this.changedLang!==this.lang?[4,this.persistLanguage(this.changedLang)]:[3,5];case 4:a.sent(),a.label=5;case 5:return this.modal.hide(),this.alert.success("User saved."),[3,8];case 6:return n=a.sent(),this.alert.addServerFailure(n),[3,8];case 7:return this.loading=!1,[7];case 8:return[2]}}))}))},e.prototype.persistLanguage=function(e){return yc(this,void 0,void 0,(function(){return vc(this,(function(t){return this.translate.saveInLocalStorage(e),this.userPreferences.set("language",e),[2]}))}))},e.prototype.updateCredentials=function(e){var t={password:e,user:this.ui.currentUser.value.id,tenant:this.client.tenant};this.auth.updateCredentials(t)},e.ctorParameters=function(){return[{type:ac.BsModalRef},{type:l.UserService},{type:Bc},{type:l.BasicAuth},{type:l.FetchClient},{type:$c},{type:Au},{type:xu},{type:ac.BsModalService}]},e=fc([t.Component({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>'})],e)}();($u=e.LoginViews||(e.LoginViews={}))[$u.None=0]="None",$u[$u.Credentials=1]="Credentials",$u[$u.RecoverPassword=2]="RecoverPassword",$u[$u.SmsChallenge=3]="SmsChallenge",$u[$u.ChangePassword=4]="ChangePassword",$u[$u.TotpChallenge=5]="TotpChallenge",$u[$u.TotpSetup=6]="TotpSetup",$u[$u.ProvidePhoneNumber=7]="ProvidePhoneNumber";var yd,vd=function(){function e(e,t,n,a,s,o,r,l,i,c,u){this.client=e,this.basicAuth=t,this.cookieAuth=n,this.ui=a,this.user=s,this.tenant=o,this.realtime=r,this.alert=l,this.api=i,this.tenantLoginOptionsService=c,this.location=u,this.rememberMe=!1,this.TOKEN_KEY="_tcy8",this.TFATOKEN_KEY="TFAToken",this.OAUTH2_INTERNAL_TYPE="OAUTH2_INTERNAL",this.isFirstLogin=!0,this.GREEN_MIN_LENGTH_DEFAULT=8,this.ERROR_MESSAGES={minlength:"Password must have at least 8 characters and no more than 32.",password_missmatch:"Password confirmation does not match.",maxlength:"Password must have at least 8 characters and no more than 32.",password_strength:"Your password is not strong enough. Please include numbers, lower and upper case characters",remote_error:"Server error occurred.",email:"Invalid email address.",password_change:"Your password is expired. Please set a new password.",password_reset_token_expired:"Password reset link expired. Please enter your email address to receive a new one.",tfa_pin_invalid:"The code you entered is invalid. Please try again.",pattern_phonenumber:'Invalid phone number format. Only digits, spaces, slashes ("/") and dashes ("-") allowed.',pattern_newPassword:"Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:'\",.<>{}[]\\/",international_number_required:"International phone number required, in the format +49 9 876 543 210.",phone_number_error:"Could not update phone number.",pinAlreadySent:"The verification code was already sent. For a new verification code, please click on the link above.",passwordConfirm:"Password confirmation does not match.",tfaExpired:"Two-factor authentication token expired."},this.SUCCESS_MESSAGES={password_changed:"Password changed. You can now log in using new password.",password_reset_requested:"Password reset request has been sent. Please check your email.",resend_sms:"Verification code SMS resent.",send_sms:"Verification code SMS sent."},this.passwordStrengthSetting={enforcePasswordStrength:!1,passwordStrengthValidity:!1,greenMinLength:this.GREEN_MIN_LENGTH_DEFAULT},this.localhostRegExp=new RegExp("localhost"),this.localhostIpRegExp=new RegExp("127.0.0.1"),this.showTenantRegExp=new RegExp("showTenant"),this.autoLogout(),this.initLoginOptions()}return e.prototype.getTenant=function(){return this.client.tenant},e.prototype.initLoginOptions=function(){var e=this.ui.state.loginOptions||[],t=function(e){var t=e.type,n=e.grantType;return"OAUTH2"===t&&"AUTHORIZATION_CODE"===n};this.loginMode=e.find((function(e){return"OAUTH2_INTERNAL"===e.type}))||e.find((function(e){return"BASIC"===e.type}))||e.find(t)||{type:"BASIC"},this.oauthOptions=e.find(t)||{}},e.prototype.redirectToOauth=function(){var e=this.oauthOptions.initRequest,t=(this.location?this.location._platformLocation:window).location.href,n=encodeURIComponent(t),a=(e.includes("?")?"&":"?")+"originUri="+n;window.location.href=""+e+a},e.prototype.autoLogout=function(){var e=this,t=/invalid\scredentials.*pin.*generate/i,n=function(e){return e&&"string"==typeof e.message&&t.test(e.message)};this.ui.currentUser.pipe(s.switchMap((function(t){return t?e.api.hookResponse((function(e){return 401===e.response.status})):a.EMPTY}))).subscribe((function(t){return yc(e,void 0,void 0,(function(){var e,a,s,o=this;return vc(this,(function(r){switch(r.label){case 0:return e=t.response,a=!1,n(e.data)?(a=!0,[3,3]):[3,1];case 1:return"function"!=typeof e.json?[3,3]:[4,e.clone().json()];case 2:s=r.sent(),n(s)&&(a=!0),r.label=3;case 3:return a&&(this.logout(!1),setTimeout((function(){return o.alert.danger(o.ERROR_MESSAGES.tfaExpired)}),500)),[2]}}))}))}))},e.prototype.getGreenMinLength=function(){var e=this.getLoginOption(),t=Number(o.get(e,"greenMinLength"));return this.passwordStrengthSetting.greenMinLength=isNaN(t)?this.GREEN_MIN_LENGTH_DEFAULT:t,this.passwordStrengthSetting.greenMinLength},e.prototype.getEnforcePasswordStrength=function(){var e=this.getLoginOption(),t=o.get(e,"enforceStrength");return o.isString(t)?this.passwordStrengthSetting.enforcePasswordStrength="true"===t:this.passwordStrengthSetting.enforcePasswordStrength=!!t,this.passwordStrengthSetting.enforcePasswordStrength},e.prototype.getPasswordStrengthValidity=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){return e=this.getLoginOption(),t=o.get(e,"strengthValidity"),o.isString(t)?this.passwordStrengthSetting.passwordStrengthValidity="true"===t:this.passwordStrengthSetting.passwordStrengthValidity=!!t,[2,this.passwordStrengthSetting.passwordStrengthValidity]}))}))},e.prototype.getPasswordStrengthEnforced=function(){return this.getEnforcePasswordStrength()||this.getPasswordStrengthValidity()},e.prototype.cleanMessages=function(){this.alert.clearAll()},e.prototype.addSuccessMessage=function(e){var t=this.SUCCESS_MESSAGES[e];t&&this.alert.add({text:t,type:"success",timeout:0})},e.prototype.getAuthStrategy=function(){var e=this.cookieAuth,t=this.getStoredToken(),n=this.getStoredTfaToken();return t&&(e=this.basicAuth,this.setCredentials({token:t,tfa:n},this.basicAuth)),e},e.prototype.useBasicAuth=function(e){return this.setCredentials(e,this.basicAuth),this.basicAuth},e.prototype.login=function(e,t){return void 0===e&&(e=this.getAuthStrategy()),yc(this,void 0,void 0,(function(){var n,a,s,o,r,l;return vc(this,(function(i){switch(i.label){case 0:return this.client.setAuth(e),[4,this.tenant.current()];case 1:return n=i.sent(),a=n.data,[4,this.switchLoginMode(t)];case 2:return i.sent()&&(e=this.cookieAuth),[4,this.user.current()];case 3:return s=i.sent(),o=s.data,[4,this.verifyAppAccess()];case 4:return i.sent(),r=this.getSupportUserName(t),(l=this.setCredentials({tenant:a.name,user:(r?r+"$":"")+o.userName},e))&&this.storeBasicAuthToken(l),[4,this.authFulfilled(a,o,r)];case 5:return i.sent(),[2]}}))}))},e.prototype.authFulfilled=function(e,t,n){return yc(this,void 0,void 0,(function(){var a;return vc(this,(function(s){switch(s.label){case 0:return e?[3,2]:[4,this.tenant.current()];case 1:a=s.sent().data,e=a,this.client.tenant=e.name,s.label=2;case 2:return t?[3,4]:[4,this.user.current()];case 3:a=s.sent().data,t=a,s.label=4;case 4:return n||(n=null),this.ui.setUser({user:t,supportUserName:n}),this.ui.currentTenant.next(e),[2]}}))}))},e.prototype.switchLoginMode=function(e){return yc(this,void 0,void 0,(function(){var t,n,a,s;return vc(this,(function(o){switch(o.label){case 0:return(t=this.isPasswordGrantLogin(e))&&e?(n=new URLSearchParams({grant_type:"PASSWORD",username:e.user,password:e.password,tfa_code:e.tfa}),a=new URLSearchParams(this.loginMode.initRequest.split("?").pop()),e.tenant=a.get("tenant_id"),[4,this.client.fetch("tenant/oauth?"+a.toString(),{method:"POST",body:n.toString(),headers:{"content-type":"application/x-www-form-urlencoded;charset=UTF-8"}})]):[3,2];case 1:if(!(s=o.sent()).ok)throw{res:s};this.client.setAuth(this.cookieAuth),this.cleanLocalStorage(),this.basicAuth.logout(),o.label=2;case 2:return[2,t]}}))}))},e.prototype.isPasswordGrantLogin=function(e){return!(e&&e.user.includes("$")||!this.loginMode||this.loginMode.type!==this.OAUTH2_INTERNAL_TYPE)},e.prototype.showTenant=function(){return!this.ui.state.loginOptions||this.isLocal()||this.isShowTenant()},e.prototype.logout=function(e){return void 0===e&&(e=!0),yc(this,void 0,void 0,(function(){var t,n;return vc(this,(function(a){switch(a.label){case 0:t=null,a.label=1;case 1:return a.trys.push([1,4,5,6]),[4,this.reset()];case 2:return n=jc.apply(void 0,[a.sent(),2]),n[0],[4,n[1].json()];case 3:return t=a.sent(),[3,6];case 4:return a.sent(),this.alert.removeLastDanger(),[3,6];case 5:return t&&t.url?this.redirect(t.url):e&&window.location.reload(),[7];case 6:return[2]}}))}))},e.prototype.reset=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){return this.cleanLocalStorage(),this.cleanSessionStorage(),this.realtime.disconnect(),this.ui.currentUser.next(null),[2,Promise.all([this.basicAuth.logout(),this.cookieAuth.logout()])]}))}))},e.prototype.saveTFAToken=function(e,t){t.setItem(this.TFATOKEN_KEY,e)},e.prototype.verifyAppAccess=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.ui.loadManifest()];case 1:return t.sent(),[3,3];case 2:if(!(e=t.sent()).res||404!==e.res.status||!this.isLocal())throw e;return[3,3];case 3:return[2]}}))}))},e.prototype.setCredentials=function(e,t){e.tenant&&(this.client.tenant=e.tenant);var n=this.basicAuth.updateCredentials({tenant:e.tenant,user:e.user}),a=gc({token:n},e);return t.updateCredentials(a)},e.prototype.isLocal=function(){var e=window.location.hostname;return this.localhostIpRegExp.test(e)||this.localhostRegExp.test(e)},e.prototype.saveToken=function(e,t){t.setItem(this.TOKEN_KEY,e)},e.prototype.storeBasicAuthToken=function(e){this.saveToken(e,sessionStorage),this.rememberMe&&this.saveToken(e,localStorage)},e.prototype.cleanLocalStorage=function(){localStorage.removeItem(this.TOKEN_KEY),localStorage.removeItem(this.TFATOKEN_KEY)},e.prototype.cleanSessionStorage=function(){sessionStorage.removeItem(this.TOKEN_KEY),sessionStorage.removeItem(this.TFATOKEN_KEY)},e.prototype.isShowTenant=function(){return this.showTenantRegExp.test(window.location.href)},e.prototype.redirect=function(e){window.location.href=e},e.prototype.getLoginOption=function(){return jc(this.ui.state.loginOptions||[],1)[0]},e.prototype.getSupportUserName=function(e){return void 0===e&&(e=this.getStoredCredentials()),e?e.user.match(/^(.+\/)?((.+)\$)?(.+)?$/)[3]:null},e.prototype.getStoredCredentials=function(){var e=this.getStoredToken();return e?this.decodeToken(e):null},e.prototype.getStoredToken=function(){return localStorage.getItem(this.TOKEN_KEY)||sessionStorage.getItem(this.TOKEN_KEY)},e.prototype.getStoredTfaToken=function(){return localStorage.getItem(this.TFATOKEN_KEY)||sessionStorage.getItem(this.TFATOKEN_KEY)},e.prototype.decodeToken=function(e){var t=decodeURIComponent(escape(window.atob(e))).match(/(([^/]*)\/)?([^/:]+):(.+)/);return{tenant:t[2],user:t[3],password:t[4]}},e.ctorParameters=function(){return[{type:l.FetchClient},{type:l.BasicAuth},{type:l.CookieAuth},{type:Bc},{type:l.UserService},{type:l.TenantService},{type:l.Realtime},{type:$c},{type:r.ApiService},{type:l.TenantLoginOptionsService},{type:u.LocationStrategy,decorators:[{type:t.Optional}]}]},e=fc([t.Injectable(),hc(10,t.Optional())],e)}(),jd=function(){function e(e,n,a,s,o){this.user=e,this.ui=n,this.client=a,this.alert=s,this.loginService=o,this.passwordConfirmedEmitter=new t.EventEmitter,this.loading=!1}return e.prototype.passwordConfirm=function(){return yc(this,void 0,void 0,(function(){var e,t,n,a,s;return vc(this,(function(r){switch(r.label){case 0:if(!this.password)return[3,5];e=this.ui.currentSupportUserName.value,t=this.ui.currentUser.value.id,n={password:this.password,user:(e?e+"$":"")+t,tenant:this.client.tenant},r.label=1;case 1:return r.trys.push([1,3,4,5]),this.loading=!0,a=o.clone(this.loginService.useBasicAuth({})),delete n.tfa,a.updateCredentials(n),[4,this.createNewClient(a,this.client.baseUrl).user.current()];case 2:return r.sent(),this.emitSuccessAndClose(),[3,5];case 3:return(s=r.sent()).res&&401===s.res.status&&s.data&&/pin|totp/i.test(s.data.message)?this.emitSuccessAndClose():this.alert.danger("Provided password doesn't match your current one."),[3,5];case 4:return this.loading=!1,[7];case 5:return[2]}}))}))},e.prototype.cancel=function(){this.passwordConfirmedEmitter.emit(!1),this.modal._dismiss()},e.prototype.createNewClient=function(e,t){return new l.Client(e,t)},e.prototype.emitSuccessAndClose=function(){this.passwordConfirmedEmitter.emit(!0),this.modal._dismiss()},e.ctorParameters=function(){return[{type:l.UserService},{type:Bc},{type:l.FetchClient},{type:$c},{type:vd}]},fc([t.Output()],e.prototype,"passwordConfirmedEmitter",void 0),fc([t.ViewChild("modal",{static:!1})],e.prototype,"modal",void 0),e=fc([t.Component({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'})],e)}(),bd=function(){function e(e){this.modalService=e,this.GREEN={colorName:"green",color:"rgb(0, 128, 0)",description:"strong",passwordStrength:l.PasswordStrength.GREEN},this.YELLOW={colorName:"yellow",color:"rgb(255, 204, 51)",description:"medium",passwordStrength:l.PasswordStrength.YELLOW},this.RED={colorName:"red",color:"rgb(170, 0, 51)",description:"weak",passwordStrength:l.PasswordStrength.RED}}return e.prototype.confirmPassword=function(){return this.modalService.show(jd).content.passwordConfirmedEmitter.pipe(s.take(1))},e.prototype.hasLowerCase=function(e){return-1!==e.search(/[a-z]/)},e.prototype.hasUpperCase=function(e){return-1!==e.search(/[A-Z]/)},e.prototype.hasNumbers=function(e){return-1!==e.search(/[0-9]/)},e.prototype.hasSpecialChars=function(e){return-1!==e.search(/[^0-9a-zA-Z]+/)},e.prototype.getStrengthColor=function(e){var t=o.filter([this.hasLowerCase(e),this.hasUpperCase(e),this.hasNumbers(e),this.hasSpecialChars(e)]).length;return t>2?this.GREEN:t>=2?this.YELLOW:this.RED},e.ctorParameters=function(){return[{type:ac.BsModalService}]},e=fc([t.Injectable()],e)}(),wd=function(){function n(e,t,n,a){this.user=e,this.modalService=t,this.modal=n,this.loginService=a}return n.prototype.totpSetupVerified=function(t){return yc(this,void 0,void 0,(function(){return vc(this,(function(t){switch(t.label){case 0:return[4,this.user.activateTotp()];case 1:t.sent(),this.modal.hide(),t.label=2;case 2:return t.trys.push([2,5,,6]),[4,this.modalService.acknowledge("Logout required","You must log out in order to apply your changes",e.Status.WARNING,"Log out")];case 3:return t.sent(),[4,this.loginService.logout()];case 4:return t.sent(),[3,6];case 5:return t.sent(),[3,6];case 6:return[2]}}))}))},n.prototype.close=function(){this.modal.hide()},n.ctorParameters=function(){return[{type:l.UserService},{type:dd},{type:ac.BsModalRef},{type:vd}]},n=fc([t.Component({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'})],n)}(),Sd=function(){function e(e,n,a,s,o,r,l,i,c){this.state=e,this.translate=n,this.passwordService=a,this.modalConfirmService=s,this.bsModalService=o,this.alert=r,this.userService=l,this.tenantLoginOptionsService=i,this.tenantService=c,this.loading=!1,this.onUser=new t.EventEmitter,this.onLanguage=new t.EventEmitter,this.onCancel=new t.EventEmitter,this.userHasActiveTotp=!1,this.userCanSetupTotp=!1}return Object.defineProperty(e.prototype,"user",{get:function(){return this._user},set:function(e){this._user=o.clone(e),this.userIsExternal="OAUTH2"===e.customProperties.userOrigin},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){var e,t,n,a;return vc(this,(function(s){switch(s.label){case 0:return[4,this.tenantService.current()];case 1:return e=s.sent().data,[4,this.tenantService.getTfaSettings(e)];case 2:return t=s.sent(),n=t.enabledOnSystemLevel,a=t.enabledOnTenantLevel,this.isTfaEnabled=n||a,[4,this.initializeTotpSettings()];case 3:return s.sent(),[2]}}))}))},Object.defineProperty(e.prototype,"langs",{get:function(){return this.state.state.langs},enumerable:!0,configurable:!0}),e.prototype.setupTotp=function(){this.bsModalService.show(wd,{class:"modal-sm"}),this.cancel()},e.prototype.cancel=function(){this.onCancel.emit()},e.prototype.save=function(){this.loading||(this._user.password?this.saveAfterPasswordConfirmation():this.onUser.emit(this._user))},e.prototype.onNewPasswordChanged=function(e){this._user.password=e.password},e.prototype.initializeTotpSettings=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),e=this,[4,this.canUserSetupTotp()];case 1:return e.userCanSetupTotp=n.sent(),this.userCanSetupTotp?[4,this.userService.getActivityTotp()]:[3,3];case 2:t=n.sent().data,this.userHasActiveTotp=t.isActive,n.label=3;case 3:return[3,5];case 4:return n.sent(),this.alert.removeLastDanger(),[3,5];case 5:return[2]}}))}))},e.prototype.canUserSetupTotp=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return[4,this.tenantLoginOptionsService.detail()];case 1:return[2,e.sent().data.loginOptions.some((function(e){var t=e.tfaStrategy;return"totp"===(void 0===t?"":t).toLowerCase()}))]}}))}))},e.prototype.saveAfterPasswordConfirmation=function(){var e=this;this.passwordService.confirmPassword().subscribe((function(t){t&&e.onUser.emit(e._user)}))},e.ctorParameters=function(){return[{type:Bc},{type:Au},{type:bd},{type:dd},{type:ac.BsModalService},{type:$c},{type:l.UserService},{type:l.TenantLoginOptionsService},{type:l.TenantService}]},fc([t.Input()],e.prototype,"lang",void 0),fc([t.Input()],e.prototype,"loading",void 0),fc([t.Input()],e.prototype,"user",null),fc([t.Output()],e.prototype,"onUser",void 0),fc([t.Output()],e.prototype,"onLanguage",void 0),fc([t.Output()],e.prototype,"onCancel",void 0),e=fc([t.Component({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 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]="user.twoFactorAuthenticationEnabled"\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'})],e)}(),Cd=function(){function n(e,t,n,a,s,o,r,l,i){this.ui=e,this.bsModalService=t,this.modalService=n,this.loginService=a,this.translateService=s,this.tenantService=o,this.alertService=r,this.user=l,this.optionsService=i}return n.prototype.copyIt=function(e){var t,n={handleEvent:function(t){t.clipboardData.setData("text/plain",e),t.preventDefault()}};document.addEventListener("copy",n);try{t=document.execCommand("copy")}catch(e){t=!1}t?this.alertService.addByText("success","Copied to clipboard."):this.alertService.addByText("danger","Could not copy to clipboard."),document.removeEventListener("copy",n)},n.prototype.editUser=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){return this.bsModalService.show(hd),[2]}))}))},n.prototype.logout=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return[4,this.loginService.logout()];case 1:return e.sent(),[2]}}))}))},n.prototype.activateSupportAccess=function(){return yc(this,void 0,void 0,(function(){var t,n,a,s,o;return vc(this,(function(r){switch(r.label){case 0:t="Activate support user access",n=this.optionsService.get("companyName","Cumulocity"),"You are about to allow a support user from {{companyName}} to access your tenant to help you with your issue.","You are about to allow a support user to access your tenant to help you with your issue.","Do you want to proceed?",a=[this.translateService.instant(n?"You are about to allow a support user from {{companyName}} to access your tenant to help you with your issue.":"You are about to allow a support user to access your tenant to help you with your issue.",{companyName:n}),this.translateService.instant("Do you want to proceed?")].join(" "),s={ok:"Activate access",cancel:"Cancel"},o="Support user access activated.",r.label=1;case 1:return r.trys.push([1,5,,6]),[4,this.modalService.confirm(t,a,e.Status.DANGER,s)];case 2:return r.sent(),[4,this.tenantService.enableSupportUser()];case 3:return r.sent(),[4,this.refreshCurrentUser()];case 4:return r.sent(),this.alertService.success(o),[3,6];case 5:return r.sent(),[3,6];case 6:return[2]}}))}))},n.prototype.deactivateSupportAccess=function(){return yc(this,void 0,void 0,(function(){var t,n,a,s,o,r,l,i,c;return vc(this,(function(u){switch(u.label){case 0:return t="Deactivate support user access",n=this.optionsService.get("companyName","Cumulocity"),a="You are about to block a support user from {{companyName}} from accessing your tenant to help you with your issue.",s="You are about to block a support user from accessing your tenant to help you with your issue.",[4,this.user.current()];case 1:return o=u.sent().data,[4,this.user.hasRole(o,"ROLE_TENANT_ADMIN")];case 2:r=u.sent(),"Deactivating support access as tenant admin will disable all other support requests on your tenant.","Do you want to proceed?",l=[this.translateService.instant(n?a:s,{companyName:n}),r?this.translateService.instant("Deactivating support access as tenant admin will disable all other support requests on your tenant."):"",this.translateService.instant("Do you want to proceed?")].filter(Boolean).join(" "),i={ok:"Deactivate access",cancel:"Cancel"},c="Support user access deactivated.",u.label=3;case 3:return u.trys.push([3,7,,8]),[4,this.modalService.confirm(t,l,e.Status.DANGER,i)];case 4:return u.sent(),[4,this.tenantService.disableSupportUser()];case 5:return u.sent(),[4,this.refreshCurrentUser()];case 6:return u.sent(),this.alertService.success(c),[3,8];case 7:return u.sent(),[3,8];case 8:return[2]}}))}))},n.prototype.getSortedItems=function(){return o.sortBy(Array.from(this.items),this.byPriority)},n.prototype.refreshCurrentUser=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return[4,this.user.current()];case 1:return e=t.sent(),this.ui.currentUser.next(e.data),[2]}}))}))},n.prototype.byPriority=function(e){return-e.priority},n.ctorParameters=function(){return[{type:Bc},{type:ac.BsModalService},{type:dd},{type:vd},{type:i.TranslateService},{type:l.TenantService},{type:$c},{type:l.UserService},{type:Gc}]},fc([t.Input()],n.prototype,"items",void 0),n=fc([t.Component({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\x3c!-- the default items --\x3e\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'})],n)}(),Id=function(){function e(e,t){var n=this;this.loginService=e,this.passwordStrengthChecker=t,this.minGreenLength=0,this.checklist=[{label:"Include lowercase characters (e.g. abcdef)",check:this.passwordStrengthChecker.hasLowerCase,icon:"",contextualColor:""},{label:"Include uppercase characters (e.g. ABCDEF)",check:this.passwordStrengthChecker.hasUpperCase,icon:"",contextualColor:""},{label:"Include numbers (e.g. 123456)",check:this.passwordStrengthChecker.hasNumbers,icon:"",contextualColor:""},{label:"Include symbols (e.g. !@#$%^)",check:this.passwordStrengthChecker.hasSpecialChars,icon:"",contextualColor:""},{label:"Must have at least {{length}} characters",check:function(e){return e.length>=n.minGreenLength},icon:"",contextualColor:""}]}return Object.defineProperty(e.prototype,"password",{set:function(e){"string"==typeof e&&this.onPasswordChange(e)},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.minGreenLength=this.loginService.getGreenMinLength()},Object.defineProperty(e.prototype,"translateParams",{get:function(){return{length:this.minGreenLength}},enumerable:!0,configurable:!0}),e.prototype.onPasswordChange=function(e){this.checklist=o.map(this.checklist,(function(t){var n=t.check(e);return o.assign(t,{icon:n?"check":"",contextualColor:n?"":"text-muted"}),t}))},e.ctorParameters=function(){return[{type:vd},{type:bd}]},fc([t.Input("password")],e.prototype,"password",null),e=fc([t.Component({selector:"c8y-password-check-list",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'})],e)}(),Pd=function(){function e(e){this.passwordConfirm=e}var n;return n=e,e.prototype.validate=function(e){var t=e.value,n=e.root.get(this.passwordConfirm);return n&&t!==n.value?{passwordConfirm:!0}:null},e.ctorParameters=function(){return[{type:String,decorators:[{type:t.Attribute,args:["passwordConfirm"]}]}]},e=n=fc([t.Directive({selector:"[passwordConfirm]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]}),hc(0,t.Attribute("passwordConfirm"))],e)}(),Od=function(){function e(){this.GREEN={colorName:"green",color:"rgb(0, 128, 0)",description:"strong",passwordStrength:l.PasswordStrength.GREEN},this.YELLOW={colorName:"yellow",color:"rgb(255, 204, 51)",description:"medium",passwordStrength:l.PasswordStrength.YELLOW},this.RED={colorName:"red",color:"rgb(170, 0, 51)",description:"weak",passwordStrength:l.PasswordStrength.RED}}return e.prototype.hasLowerCase=function(e){return-1!==e.search(/[a-z]/)},e.prototype.hasUpperCase=function(e){return-1!==e.search(/[A-Z]/)},e.prototype.hasNumbers=function(e){return-1!==e.search(/[0-9]/)},e.prototype.hasSpecialChars=function(e){return-1!==e.search(/[^0-9a-zA-Z]+/)},e.prototype.getStrengthColor=function(e){var t=o.filter([this.hasLowerCase(e),this.hasUpperCase(e),this.hasNumbers(e),this.hasSpecialChars(e)]).length;return t>2?this.GREEN:t>=2?this.YELLOW:this.RED},e=fc([t.Injectable()],e)}(),_d=function(){function e(e){this.passwordStrengthCheckerService=e,this.strength=new t.EventEmitter,this.password=""}return Object.defineProperty(e.prototype,"password",{set:function(e){"string"==typeof e&&(this.model=this.passwordStrengthCheckerService.getStrengthColor(e),this.strength.emit(this.model))},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:bd}]},fc([t.Input("password")],e.prototype,"password",null),fc([t.Output()],e.prototype,"strength",void 0),e=fc([t.Component({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>'})],e)}(),xd=function(){function e(e){this.loginService=e,this.password=new t.EventEmitter,this.model={},this.changePassword=!1,this.passwordEnforced=!1}return e.prototype.ngOnInit=function(){this.loadPasswordStrengthSettings(),this.minlength=this.loginService.getGreenMinLength()},e.prototype.newPasswordChanged=function(){this.password.emit({password:this.model.newPassword,passwordStrength:this.model.strength})},e.prototype.loadPasswordStrengthSettings=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return e=this,[4,this.loginService.getEnforcePasswordStrength()];case 1:return e.passwordEnforced=t.sent(),[2]}}))}))},e.prototype.showPasswordStrength=function(){return this.model.newPassword&&this.model.newPassword.length>=this.minlength},e.prototype.toggleChangePassword=function(){this.changePassword=!this.changePassword,this.changePassword||(this.password.emit({}),this.model={})},e.ctorParameters=function(){return[{type:vd}]},fc([t.Output()],e.prototype,"password",void 0),e=fc([t.Component({selector:"c8y-new-password",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',viewProviders:[{provide:tc.ControlContainer,useExisting:tc.NgForm}]})],e)}(),Ed=function(){function e(){}var n;return n=e,e.prototype.validate=function(e){return this.validateInternationalPhoneNumber(e)?null:{internationalPhoneNumber:!0}},e.prototype.validateInternationalPhoneNumber=function(e){var t;try{var n=oc.parsePhoneNumberFromString(e.value);(t=n.isValid())&&e.value!==n.format("E.164")&&e.setValue(n.format("E.164"),{emitEvent:!1,emitModelToViewChange:!1})}catch(n){t=!e.value}return t},e=n=fc([t.Directive({selector:"[c8yPhoneValidation]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),kd=function(){function e(){}return e.get=function(e){return this.rules[e]},e.messages={deviceId:'Device ID must not contain spaces or slashes ("/").',domain:"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:"Invalid email address.",internationalPhoneNumber:"International phone number required, in the format +49 9 876 543 210.",loginAlias:'Login alias must not contain slashes ("/", "\\") nor ("+"), (":"), ("$") signs.',max:"Max value: {{ value }}",min:"Min value: {{ value }}",opcuaBrowsePath:"Invalid OPC UA URI.",password:"Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:'\",.<>{}[]\\/",passwordConfirm:"Passwords do not match.",passwordStrength:"Password not good enough, password must be stronger (green).",phoneNumber:'Invalid phone number format. Only digits, spaces, slashes ("/") and dashes ("-") allowed.',required:"This field is required.",tenantId:"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:"Slash, single or double dots and white space not allowed",user:'Username must not contain spaces nor slashes ("/", "\\") nor ("+"), (":"), ("$") signs.'},e.rules={deviceId:{pattern:/^[^\s/]*$/},domain:{pattern:/^[a-z]+[a-z0-9_-]*[a-z0-9]+\.{1}.+$/},groupName:{maxLength:254},hostname:{pattern:/^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9])$/},ip:{pattern:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/},opcuaBrowsePath:{pattern:/^(opc.tcp|http|https):\/\/[^ "]+$/},password:{pattern:/^[a-zA-Z0-9`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]{8,32}$/},phoneNumber:{pattern:/^$|^(\+|0{2})[\d\s/-]{1,30}$/},tenantId:{pattern:/^[a-z]+[a-z0-9_-]*[a-z0-9]+$/},user:{pattern:/^[^\\/\s$:+]*$/},urlSegment:{pattern:/^(([.]{1,2})|([/])+|(([/]*)([.]{1,2})([/]*))|((.*)([/]|[ ]+)(.*))|(\s+))$/},loginAlias:{pattern:/^[^\\/$:+]*$/}},e}(),Ad=function(){function e(){this.c8yDefaultValidation=""}var n;return n=e,e.prototype.validate=function(e){var t;if(!e.value)return null;var n=kd.get(this.c8yDefaultValidation);if(!n)throw new Error("Pattern "+this.c8yDefaultValidation+" not found.");var a=!0;return n.pattern&&(a=n.pattern.test(e.value)),n.maxLength&&(a=e.value.length<n.maxLength),n.minLength&&(a=e.value.length>=n.minLength),a?null:((t={})[this.c8yDefaultValidation]=!0,t)},fc([t.Input()],e.prototype,"c8yDefaultValidation",void 0),e=n=fc([t.Directive({selector:"[c8yDefaultValidation]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),Td=function(){function e(){this.min=""}var n;return n=e,e.prototype.validate=function(e){var t=parseInt(this.min,10);if(o.isUndefined(e.value)||!this.min)return null;return!(e.value<t)?null:{min:{value:t}}},fc([t.Input()],e.prototype,"min",void 0),e=n=fc([t.Directive({selector:"[min]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),Dd=function(){function e(){this.max=""}var n;return n=e,e.prototype.validate=function(e){var t=parseInt(this.max,10);if(o.isUndefined(e.value)||!this.max)return null;return!(e.value>t)?null:{max:{value:t}}},fc([t.Input()],e.prototype,"max",void 0),e=n=fc([t.Directive({selector:"[max]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),Nd=function(){function e(){}return fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"text",void 0),e=fc([t.Directive({selector:"c8y-message"})],e)}(),Md=function(){function e(e){this.translateService=e,this.show={},this.defaults=kd.messages,this.messages=[],this.messageMap={}}return e.prototype.ngAfterContentInit=function(){this.messageMap=Object.assign({},this.defaults,this.customMessages.reduce((function(e,t){return e[t.name]=t.text,e}),{}))},e.prototype.changVisibility=function(e){this.show=e,this.ngOnChanges()},e.prototype.ngOnChanges=function(){var e=this;this.show?this.messages=Object.keys(this.show).map((function(t){return e.toMessage(t,e.show[t])})):this.messages=[]},e.prototype.toMessage=function(e,t){return this.translateService.instant(this.messageMap[e],t)},e.ctorParameters=function(){return[{type:i.TranslateService}]},fc([t.Input()],e.prototype,"show",void 0),fc([t.Input()],e.prototype,"defaults",void 0),fc([t.ContentChildren(Nd)],e.prototype,"customMessages",void 0),e=fc([t.Component({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'})],e)}(),qd=function(){function e(){this.hasError=!1,this.hasWarning=!1,this.hasSuccess=!1,this.novalidation=!1,this.VALIDATION_DEBOUNCE_MS=1e3}return Object.defineProperty(e.prototype,"error",{get:function(){return"error"===this.status||this.hasError},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"warning",{get:function(){return"warning"===this.status||this.hasWarning},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"success",{get:function(){return"success"===this.status||this.hasSuccess},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this.initNgModel()},e.prototype.initNgModel=function(){var e=this;this.model&&(this.subscription=this.model.valueChanges.pipe(s.filter((function(){return e.model.dirty&&!e.novalidation})),s.debounce((function(){return e.hasError?a.timer(10):a.timer(e.VALIDATION_DEBOUNCE_MS)}))).subscribe((function(){return e.update()})))},e.prototype.update=function(){this.hasError=!this.model.valid,this.customErrorMessage?this.customErrorMessage.changVisibility(this.model.errors):this.errors=this.model.errors},e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},fc([t.Input()],e.prototype,"hasError",void 0),fc([t.Input()],e.prototype,"hasWarning",void 0),fc([t.Input()],e.prototype,"hasSuccess",void 0),fc([t.Input()],e.prototype,"novalidation",void 0),fc([t.Input()],e.prototype,"status",void 0),fc([t.HostBinding("class.has-error")],e.prototype,"error",null),fc([t.HostBinding("class.has-warning")],e.prototype,"warning",null),fc([t.HostBinding("class.has-success")],e.prototype,"success",null),fc([t.ContentChild(Md,{static:!1})],e.prototype,"customErrorMessage",void 0),fc([t.ContentChild(tc.NgModel,{static:!0})],e.prototype,"model",void 0),e=fc([t.Component({selector:"c8y-form-group",template:'<ng-content></ng-content>\n<c8y-messages *ngIf="!customErrorMessage" [show]="errors"></c8y-messages>\n',host:{class:"form-group"}})],e)}(),Ld=function(){function e(){this.plus=!0,this.minus=!0,this.onRemove=new t.EventEmitter,this.onAdd=new t.EventEmitter}return e.prototype.add=function(){this.onAdd.emit(this.index)},e.prototype.remove=function(){this.onRemove.emit(this.index)},fc([t.Input()],e.prototype,"plus",void 0),fc([t.Input()],e.prototype,"minus",void 0),fc([t.Input()],e.prototype,"index",void 0),fc([t.Output()],e.prototype,"onRemove",void 0),fc([t.Output()],e.prototype,"onAdd",void 0),e=fc([t.Component({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'})],e)}(),Rd=function(){function e(){}return e.prototype.ngAfterContentInit=function(){var e=this;this.listProjections.map((function(t){t!==e.listProjections.last&&setTimeout((function(){t.plus=!1}))})),this.listProjections.changes.subscribe((function(e){1!==e.length?e.map((function(t){setTimeout((function(){t.minus=!0})),t!==e.last&&setTimeout((function(){t.plus=!1})),t===e.last&&setTimeout((function(){t.plus=!0}))})):setTimeout((function(){e.first.plus=!0,e.first.minus=!1}))}))},fc([t.ContentChildren(Ld)],e.prototype,"listProjections",void 0),e=fc([t.Directive({selector:"[c8yInputGroupListContainer]"})],e)}(),$d=function(){function e(e){this.invalidJSON=new t.EventEmitter,this.message="Must be a valid JSON object.",this.debounceTimeInMs=1e3,this.abstractCtrl=e.control}return e.prototype.ngOnInit=function(){var e=this;this.subscription=this.abstractCtrl.valueChanges.pipe(s.tap((function(){return e.clearValidationMessage()})),s.debounceTime(this.debounceTimeInMs),s.distinctUntilChanged()).subscribe((function(t){e.validateInputAndPrettify(t)}))},e.prototype.ngOnDestroy=function(){this.subscription&&!this.subscription.closed&&this.subscription.unsubscribe()},e.prototype.validateInputAndPrettify=function(e){if(e)try{var t=JSON.parse(e),n=JSON.stringify(t,void 0,2);this.abstractCtrl.setValue(n)}catch(e){this.setErrorAndValidationMessage()}},e.prototype.setErrorAndValidationMessage=function(){this.abstractCtrl.setErrors({invalidBodyTemplate:!0}),this.invalidJSON.emit(this.message)},e.prototype.clearValidationMessage=function(){this.invalidJSON.emit(void 0)},e.ctorParameters=function(){return[{type:tc.NgControl}]},fc([t.Output()],e.prototype,"invalidJSON",void 0),e=fc([t.Directive({selector:"textarea[prettyValidJson]"})],e)}(),Fd=function(){function e(e,t){this.elem=e,this.renderer=t,this.rows=1,this.minHeightPerRow=20}return e.prototype.ngAfterViewInit=function(){var e=Number(this.heightPerRow);this.heightPerRow&&e&&e>this.minHeightPerRow?this.setHeight(this.rows*e+"px"):this.setHeight(this.rows*this.minHeightPerRow+"px")},e.prototype.setHeight=function(e){this.renderer.setStyle(this.elem.nativeElement,"height",e)},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2}]},fc([t.Input(),t.HostBinding("rows")],e.prototype,"rows",void 0),fc([t.Input("heightPerRow")],e.prototype,"heightPerRow",void 0),e=fc([t.Directive({selector:"textarea[heightPerRow]"})],e)}(),Ud=function(){function e(e,t,n){this.el=e,this.renderer=t,this.translationService=n,this.shouldSkipRequiredHint=!1,this.shouldSkipRequiredHint=!!this.el.nativeElement.closest("[placeholder-no-required-hint]")}return e.prototype.ngAfterContentChecked=function(){if(this.el&&this.el.nativeElement&&void 0!==this.el.nativeElement.required){var e=this.el.nativeElement.required&&!this.shouldSkipRequiredHint,t=this.el.nativeElement.placeholder;this.placeholder===t&&this.req===e||this.updatePlaceholder(this.getTextForPlaceholder(t,e))}},e.prototype.getTextForPlaceholder=function(e,t){void 0===e&&(e=""),void 0===t&&(t=!1),this.req=t;var n="("+this.translationService.instant("required")+")",a=e.lastIndexOf(n);return a>0&&(e=e.slice(0,a-1)),0===a&&(e=""),t?e.trim()?e+" "+n:n:e},e.prototype.updatePlaceholder=function(e){this.renderer.setAttribute(this.el.nativeElement,"placeholder",e),this.placeholder=e},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Renderer2},{type:i.TranslateService}]},e=fc([t.Directive({selector:"input[required]"})],e)}(),Gd=function(){function e(){}return Object.defineProperty(e.prototype,"data",{get:function(){return this.ipRangeList},set:function(e){this.ipRangeList=e,0===this.ipRangeList.length&&this.add()},enumerable:!0,configurable:!0}),e.prototype.add=function(){this.ipRangeList.push({ip:"",cidr:void 0})},e.prototype.remove=function(e){this.ipRangeList.splice(e,1)},fc([t.Input()],e.prototype,"data",null),e=fc([t.Component({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'})],e)}(),Bd=function(e){function n(t,n){return e.call(this,"c8ySchemaForm",t,n)||this}return mc(n,e),n.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Injector}]},fc([t.Input()],n.prototype,"schema",void 0),fc([t.Input()],n.prototype,"model",void 0),fc([t.Input("form")],n.prototype,"inputForm",void 0),fc([t.Input("options")],n.prototype,"inputOptions",void 0),n=fc([t.Directive({selector:"c8y-schema-form"})],n)}(rc.UpgradeComponent),zd=function(){function e(){this.onSearch=new t.EventEmitter,this.filterChange$=new a.Subject,this.filterTerm="",this.CARRIAGE_RETURN_KEY=13,this.CARRIAGE_RETURN_CODE="Enter"}return e.prototype.ngOnInit=function(){var e=this;this.reset(),this.filterChange$.pipe(s.debounce((function(t){return t.code===e.CARRIAGE_RETURN_CODE||t.keyCode===e.CARRIAGE_RETURN_KEY?a.timer(10):a.timer(300)})),s.map((function(e){return e.target.value})),s.distinctUntilChanged()).subscribe((function(t){e.filterTerm=t,e.onSearch.emit(t)}))},e.prototype.reset=function(){this.filterTerm="",this.onSearch.emit("")},e.prototype.ngOnDestroy=function(){this.filterChange$.complete()},fc([t.Input()],e.prototype,"icon",void 0),fc([t.Output()],e.prototype,"onSearch",void 0),e=fc([t.Component({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'})],e)}(),Hd=function(){function e(){}return e=fc([t.NgModule({imports:[Uu,tc.FormsModule],exports:[Ed,Ad,Td,Dd,tc.FormsModule,qd,Nd,Md,Ld,Rd,$d,Fd,Ud,Gd,Bd,zd],declarations:[Ed,Ad,Td,Dd,qd,Nd,Md,Ld,Rd,$d,Fd,Ud,Gd,Bd,zd]})],e)}(),Vd=function(){function e(e,n,a){this.loginService=e,this.users=n,this.alert=a,this.verify=!0,this.onSuccess=new t.EventEmitter,this.model={token:""},this.loading=!1,this.hasError=!1}return e.prototype.verifyCode=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return e.trys.push([0,3,,4]),this.loading=!0,this.hasError=!1,this.verify?[4,this.users.verifyTotpCode(this.model.token)]:[3,2];case 1:e.sent(),e.label=2;case 2:return this.onSuccess.emit(this.model.token),[3,4];case 3:return e.sent(),this.hasError=!0,this.alert.removeLastDanger(),this.loading=!1,[3,4];case 4:return[2]}}))}))},e.ctorParameters=function(){return[{type:vd},{type:l.UserService},{type:$c}]},fc([t.Input()],e.prototype,"verify",void 0),fc([t.Output()],e.prototype,"onSuccess",void 0),fc([t.Input()],e.prototype,"loading",void 0),fc([t.Input()],e.prototype,"hasError",void 0),e=fc([t.Component({selector:"c8y-totp-challenge",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',viewProviders:[{provide:tc.ControlContainer,useExisting:tc.NgForm}]})],e)}(),Kd=function(){function e(e,n,a){this.loginService=e,this.users=n,this.alert=a,this.onCancel=new t.EventEmitter,this.model={smsToken:""},this.isLoading=!1,this.resendTfa="0"}return e.prototype.verifyTFACode=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return this.isLoading=!0,this.useOAuthInternal()?[4,this.verifyCodeWithOauth()]:[3,2];case 1:return e.sent(),[3,4];case 2:return[4,this.verifyCodeWithBasicAuth()];case 3:e.sent(),e.label=4;case 4:return this.isLoading=!1,[2]}}))}))},e.prototype.resendTFASms=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,3,4]),this.isLoading=!0,[4,this.users.verifyTFACode(this.resendTfa)];case 1:return t.sent(),[3,4];case 2:return 403===(e=t.sent()).res.status?(this.loginService.cleanMessages(),this.loginService.addSuccessMessage("resend_sms")):this.alert.addServerFailure(e),[3,4];case 3:return this.isLoading=!1,[7];case 4:return[2]}}))}))},e.prototype.useOAuthInternal=function(){return this.loginService.isPasswordGrantLogin(this.credentials)},e.prototype.verifyCodeWithOauth=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,4,,5]),e=this.credentials,[4,this.loginService.switchLoginMode(gc({},e,{tfa:this.model.smsToken}))];case 1:return n.sent(),[4,this.loginService.verifyAppAccess()];case 2:return n.sent(),[4,this.loginService.authFulfilled()];case 3:return n.sent(),[3,5];case 4:return t=n.sent(),401===(t.res&&t.res.status)?this.alert.danger("Invalid code"):this.alert.addServerFailure(t),[3,5];case 5:return[2]}}))}))},e.prototype.verifyCodeWithBasicAuth=function(){return yc(this,void 0,void 0,(function(){var e,t,n;return vc(this,(function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,this.users.verifyTFACode(this.model.smsToken)];case 1:return e=a.sent().res,t=e.headers.get("tfatoken"),this.credentials.tfa=t,this.loginWithTFA(t),[3,3];case 2:return n=a.sent(),403===(n.res&&n.res.status)?this.alert.danger("Invalid code"):this.alert.addServerFailure(n),[3,3];case 3:return[2]}}))}))},e.prototype.loginWithTFA=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.loginService.login(this.loginService.useBasicAuth({tfa:e}),this.credentials)];case 1:return n.sent(),this.loginService.saveTFAToken(e,sessionStorage),this.loginService.rememberMe&&this.loginService.saveTFAToken(e,localStorage),[3,3];case 2:return t=n.sent(),this.alert.addServerFailure(t),[3,3];case 3:return[2]}}))}))},e.ctorParameters=function(){return[{type:vd},{type:l.UserService},{type:$c}]},fc([t.Input()],e.prototype,"credentials",void 0),fc([t.Output()],e.prototype,"onCancel",void 0),e=fc([t.Component({selector:"c8y-sms-challenge",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'})],e)}(),Wd=function(){function e(e,t){this.user=e,this.alert=t}return Object.defineProperty(e.prototype,"qrCodeImage",{get:function(){return this.totpSecret?this.totpSecret.secretQrUrl:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"secret",{get:function(){return this.totpSecret?this.totpSecret.rawSecret:""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"qrData",{get:function(){var e=this.qrCodeImage.split("chl=")[1];return e?decodeURIComponent(e):(this.alert.danger("Failed to generate a QR code."),"")},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.user.generateTotpSecret()];case 1:return e=n.sent().data,this.totpSecret=e,[3,3];case 2:return t=n.sent(),this.alert.addServerFailure(t),[3,3];case 3:return[2]}}))}))},e.ctorParameters=function(){return[{type:l.UserService},{type:$c}]},e=fc([t.Component({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'})],e)}(),Yd=function(){function n(e,n,a){this.loginService=e,this.alert=n,this.userService=a,this.onCancel=new t.EventEmitter,this.onChangeView=new t.EventEmitter,this.requestInProgress=!1,this.sendTfa="0"}return n.prototype.sendTFASms=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.userService.verifyTFACode(this.sendTfa)];case 1:return t.sent(),[3,3];case 2:if(403!==(e=t.sent()).res.status)throw e;return this.loginService.cleanMessages(),this.loginService.addSuccessMessage("send_sms"),[3,3];case 3:return[2]}}))}))},n.prototype.save=function(){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,3,4,5]),this.requestInProgress=!0,[4,this.userService.savePhoneNumber(this.phoneNumber)];case 1:return n.sent(),[4,this.sendTFASms()];case 2:return n.sent(),this.onChangeView.emit({view:e.LoginViews.SmsChallenge,credentials:this.credentials}),[3,5];case 3:return t=n.sent(),this.alert.addServerFailure(t),[3,5];case 4:return this.requestInProgress=!1,[7];case 5:return[2]}}))}))},n.ctorParameters=function(){return[{type:vd},{type:$c},{type:l.UserService}]},fc([t.Input()],n.prototype,"credentials",void 0),fc([t.Output()],n.prototype,"onCancel",void 0),fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({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'})],n)}(),Zd=function(){function e(){}return e=fc([t.NgModule({declarations:[Vd,Pd,_d,Id,xd,jd,Kd,Wd,Yd],imports:[Hd,ec.TooltipModule,Uu,md,lc.QRCodeModule],exports:[Vd,_d,Id,Pd,xd,jd,Kd,Wd,Yd],entryComponents:[jd],providers:[Od,bd]})],e)}(),Jd=function(){function e(e,n){this.users=e,this.alert=n,this.revokeEmitter=new t.EventEmitter}return e.prototype.revoke=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,this.users.totpRevokeSecret(this.user)];case 1:return t.sent(),this.alert.success("User TOTP secret revoked."),this.revokeEmitter.next(),[3,3];case 2:return e=t.sent(),this.alert.addServerFailure(e),[3,3];case 3:return[2]}}))}))},e.ctorParameters=function(){return[{type:l.UserService},{type:$c}]},fc([t.Input()],e.prototype,"user",void 0),fc([t.Output("revoke")],e.prototype,"revokeEmitter",void 0),e=fc([t.Component({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'})],e)}(),Xd=function(){function e(){}return e=fc([t.NgModule({declarations:[Cd,Sd,hd,fd,wd,Jd],imports:[Hd,Uu,md,Qi.BsDropdownModule,Zd,Xu,n.RouterModule,ec.TooltipModule.forRoot(),sc.PopoverModule],exports:[Cd,fd,Sd,hd,wd,Jd],entryComponents:[hd,wd,Jd]})],e)}(),Qd=function(){function e(e){this.options=e,this.name="",this.model={appIcon:"",showIcon:!0,iconClass:["c8y-icon"],appNameAbbr:"",iconStyle:{}},this.c8yAppIconsList={analyticsbuilder:"analytics-builder","analytics-builder":"analytics-builder",cockpit:"cockpit",devicemanagement:"device-management",administration:"administration",apamaepl:"apama-epl"},this.white=!1,this.defaultIconStyle={"background-repeat":"no-repeat","background-size":"contain",height:"36px",width:"36px"}}return e.prototype.ngOnChanges=function(e){this.model.appIcon=this.iconFromAppDefinition()||this.findStaticIcon();var t=this.iconUrlFromAppDefinition();t&&(this.model.iconStyle=o.assign(this.defaultIconStyle,{"background-image":t})),this.model.showIcon=!!this.model.appIcon||!o.isEmpty(this.model.iconStyle),this.model.iconClass=["c8y-icon",this.model.appIcon,this.white?"c8y-icon-white":"c8y-icon-duocolor"].filter((function(e){return!!e})),this.model.appNameAbbr=this.name.substr(0,2)},e.prototype.findStaticIcon=function(){var e=this.contextPath||this.name,t=o.find(o.keys(this.c8yAppIconsList),(function(t){return e.indexOf(t)>-1})),n=this.c8yAppIconsList[t];return n?"c8y-icon-"+n:void 0},e.prototype.iconFromAppDefinition=function(){var e=this.app||this.options,t=["icon","class"];return o.get(e,t)||o.get(e,bc(["manifest"],t))},e.prototype.iconUrlFromAppDefinition=function(){var e=this.app||this.options,t=["icon","url"];return o.get(e,t)||o.get(e,bc(["manifest"],t))},e.ctorParameters=function(){return[{type:Gc}]},fc([t.Input()],e.prototype,"contextPath",void 0),fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"app",void 0),e=fc([t.Component({selector:"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',host:{class:"c8y-app-icon"}})],e)}(),ep=function(){function e(e,t){var n=this;this.ui=e,this.applications=t;var o=this.ui,r=o.currentUser,l=o.currentTenant;a.combineLatest(r,l).pipe(s.first()).subscribe((function(e){var t=jc(e,2),a=t[0],s=t[1];n.tenant=s,n.listAppsForUser(a)}))}return Object.defineProperty(e.prototype,"hideCloudApps",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype.isActive=function(e){return e.contextPath===this.ui.state.app.contextPath},e.prototype.getHref=function(e){return this.applications.getHref(e)},e.prototype.listAppsForUser=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return e?[4,this.applications.listByUser(e,{pageSize:1e3})]:[3,2];case 1:t=n.sent().data,this.apps=this.orderApps(this.filterApps(t)),n.label=2;case 2:return[2]}}))}))},e.prototype.filterApps=function(e){return e=this.filterVisible(e),e=this.filterCloud(e),e=this.filterDuplicates(e)},e.prototype.filterVisible=function(e){var t=["HOSTED","EXTERNAL"];return e.filter((function(e){return o.includes(t,e.type)&&!e.noAppSwitcher&&!o.get(e,"manifest.noAppSwitcher")}))},e.prototype.filterCloud=function(e){var t=this.hideCloudApps,n=function(e){return!!e.cloud};return t||(this.oneCloudApps=this.orderApps(e.filter(n))),e.filter((function(e){return!n(e)}))},e.prototype.filterDuplicates=function(e){var t=this;return e.filter((function(n){return!e.some((function(e){return n!==e&&n.contextPath&&n.contextPath===e.contextPath&&n.owner.tenant.id!==t.tenant.name}))}))},e.prototype.orderApps=function(e){return o.orderBy(e,(function(e){return e.name.toLowerCase()}))},e.ctorParameters=function(){return[{type:Bc},{type:l.ApplicationService}]},e=fc([t.Component({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'})],e)}(),tp=[{icon:"c8y-c8y-data",label:"Concepts guide`KEEP_ORIGINAL`",url:"/concepts/introduction",type:"doc"},{icon:"c8y-user",label:"User guide`KEEP_ORIGINAL`",url:"/users-guide/getting-started",type:"doc"},{icon:"c8y-device-management",label:"Device guides`KEEP_ORIGINAL`",url:"/devices/overview",type:"doc"},{icon:"c8y-book",label:"Cumulocity IoT Edge`KEEP_ORIGINAL`",url:"/edge/overview",type:"doc"},{icon:"c8y-tools",label:"Microservice SDK guide`KEEP_ORIGINAL`",url:"/microservice-sdk/introduction",type:"doc"},{icon:"c8y-tools",label:"Device SDK guide`KEEP_ORIGINAL`",url:"/device-sdk/introduction",type:"doc"},{icon:"c8y-smart-rest",label:"Web SDK guide`KEEP_ORIGINAL`",url:"/web/introduction",type:"doc"},{icon:"c8y-data-explorer",label:"Streaming analytics guide`KEEP_ORIGINAL`",url:"/apama/introduction",type:"doc"},{icon:"c8y-bookmark",label:"Reference guide`KEEP_ORIGINAL`",url:"/reference/rest-implementation",type:"doc"},{icon:"gavel",label:"Legal notices",url:"https://documentation.softwareag.com/legal/",type:"doc"}],np=new t.InjectionToken("Hook docs"),ap=function(){function e(e,t,n,a){void 0===n&&(n=[]),this.options=e,this.app=t,n||(n=[]),n.push(this);var o=this.app.map((function(e){return e.supportUrl}));this.items$=wc(a,o,n).pipe(s.startWith([]),s.shareReplay(1))}return e.prototype.getBaseUrl=function(){return this.options.get("docsBaseUrl","https://www.cumulocity.com/guides")},Object.defineProperty(e.prototype,"templateStr",{get:function(){return this.options.get("guideHrefTemplate","${docsBaseUrl}${partialUrl}")},enumerable:!0,configurable:!0}),e.prototype.getUserGuideLink=function(e){return/^https?:/.test(e)?e:null===this.getBaseUrl?null:this.getLink(this.templateStr,e)},e.prototype.list=function(){return this.items$.pipe(s.filter((function(e){return!!e.length})),s.first()).toPromise()},e.prototype.refresh=function(){},e.prototype.get=function(){var e=this,t=this.options.get("docs",{}),n=t.links,a=t.noDefault,s=t.excludeDefault,r=void 0===s?[]:s,l=this.app.state.supportUrl,i=a?[]:tp.map((function(t){return gc({},t,{url:e.getUserGuideLink(t.url)})})).filter((function(e){var t=e.url;return!r.some((function(e){return new RegExp(e).test(t)}))}));return n&&(n.map((function(e){if(o.isUndefined(e.type))return e.type="doc",e})),i=i.concat(n)),l&&i.push({icon:"comments",label:"Forum support",url:l,type:"doc"}),i},e.prototype.getLink=function(e,t){if(e)return e.replace(/\${docsBaseUrl}/,this.getBaseUrl()).replace(/\${partialUrl}/,this.prefixWithSlash(t))},e.prototype.prefixWithSlash=function(e){return void 0===e&&(e=""),""+(!(e&&/^\//.test(e))?"/":"")+e},e.ctorParameters=function(){return[{type:Gc},{type:Bc},{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[np]}]},{type:n.Router}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(Gc),t.ɵɵinject(Bc),t.ɵɵinject(np,8),t.ɵɵinject(n.Router))},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"}),hc(2,t.Optional()),hc(2,t.Inject(np))],e)}(),sp=function(){function e(e,t,n,a,s,o,r){this.headerService=e,this.actionService=t,this.breadcrumbService=n,this.searchService=a,this.appState=s,this.userMenuService=o,this.docs=r,this.canToggle$=this.headerService.hasItemsInNavigator$,this.appState$=this.appState.state$,this.drawerOpen=!1,this.headerOpen=!1}return e.prototype.ngAfterViewInit=function(){this.headerService.verifyIfNavOpen()},e.prototype.toggle=function(){this.headerOpen=!this.headerOpen},e.ctorParameters=function(){return[{type:Wc},{type:Ac},{type:Qc},{type:od},{type:Bc},{type:gd},{type:ap}]},e=fc([t.Component({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 *ngIf="headerService.shouldShowBreadcrumbs()"\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'})],e)}(),op=function(){function e(e,t,n){var a=this;this.headerService=e,this.element=t,this.zone=n,this.title=void 0;var o=this.headerService.map((function(e){return e.title}));o.subscribe((function(e){return a.title=e})),this.zone.runOutsideAngular((function(){o.pipe(s.debounceTime(100),s.map((function(){return a.element.nativeElement.querySelector("h1")})),s.filter((function(e){return null!==e})),s.map((function(e){return e.innerText})),s.filter(Boolean)).subscribe((function(t){return e.changePageTitle(t)}))}))}return e.ctorParameters=function(){return[{type:Wc},{type:t.ElementRef},{type:t.NgZone}]},e=fc([t.Component({selector:"c8y-title-outlet",template:'<div class="c8y-ui-title">\n <div class="title" *c8yOutlet="title"></div>\n</div>\n'})],e)}(),rp=function(){function e(e){this.headerService=e}return e.prototype.ngAfterViewInit=function(){var e=this;this.viewInitTimeout=setTimeout((function(){return e.headerService.changeTitle(e.template)}))},e.prototype.ngOnDestroy=function(){this.headerService.state.title===this.template&&(clearTimeout(this.viewInitTimeout),this.headerService.changeTitle())},e.ctorParameters=function(){return[{type:Wc}]},fc([t.ViewChild("template",{static:!0})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-title",template:'<ng-template #template>\n <h1 class="text-truncate">\n <ng-content></ng-content>\n </h1>\n</ng-template>\n\n'})],e)}(),lp=function(){function e(e){this.service=e,this.priority=0,this.nodeData=new zc}return e.prototype.ngOnInit=function(){var e=this;this.ngOnChanges(),setTimeout((function(){return e.service.add(e.nodeData)}))},e.prototype.ngOnChanges=function(){this.nodeData.icon=this.icon,this.nodeData.label=this.label,this.nodeData.path=this.path,this.nodeData.priority=this.priority,this.nodeData.iconTemplate=this.icon?void 0:this.template,this.nodeData.icon=this.icon},e.prototype.ngOnDestroy=function(){this.service.remove(this.nodeData)},e.ctorParameters=function(){return[{type:Kc}]},fc([t.ViewChild("iconTpl",{static:!0})],e.prototype,"template",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"path",void 0),fc([t.Input()],e.prototype,"priority",void 0),e=fc([t.Component({selector:"c8y-navigator-item",template:"<ng-template #iconTpl><ng-content></ng-content></ng-template>"})],e)}(),ip=function(){function e(){}return Object.defineProperty(e.prototype,"icon",{get:function(){return this.node.icon||"cog"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"iconClass",{get:function(){return"fa-"+this.icon},enumerable:!0,configurable:!0}),fc([t.Input()],e.prototype,"node",void 0),e=fc([t.Component({selector:"c8y-navigator-icon",template:'<i class="icon" [c8yIcon]="icon"></i>'})],e)}(),cp=function(){function e(e,n){this.componentFactoryResolver=e,this.navigator=n,this.nodeClick=new t.EventEmitter}var a;return a=e,e.prototype.ngAfterViewInit=function(){var e=this;this.childrenNodes.forEach((function(t){return t.parentNode=e})),this.viewInitTimeout=setTimeout((function(){e.updateIcon(),e.openOnFirstUrl(),e.expandParentIfActive(),e.node.confirm=e.confirm}))},e.prototype.openOnFirstUrl=function(){this.navigator.openOnFirstUrl(this.node)&&!this.node.open&&this.expandCollapse(!0)},Object.defineProperty(e.prototype,"expandTitle",{get:function(){return this.node.open?"Collapse":"Expand"},enumerable:!0,configurable:!0}),e.prototype.click=function(e,t){var n,a;void 0===e&&(e="link"),"expander"===e?(t&&(t.stopPropagation(),t.preventDefault()),a=!this.node.open):a=!(!this.routerLinkActive||!this.routerLinkActive.isActive)||!this.node.open,a!==this.node.open&&this.expandCollapse(a,!1,((n={})[e]=!0,n.$event=t,n)),this.nodeClick.emit(e)},e.prototype.expandCollapse=function(e,t,n){void 0===n&&(n={}),this.node.open=e,t&&this.childrenNodes.forEach((function(n){return n.expandCollapse(e,t)})),n.open=e,this.node.click(n)},e.prototype.ngOnDestroy=function(){clearTimeout(this.viewInitTimeout),this.node.destroy()},e.prototype.expandParentIfActive=function(){this.routerLinkActive&&this.routerLinkActive.isActive&&this.parentNode&&this.parentNode.expandCollapse(!0)},e.prototype.updateIcon=function(){this.node.iconTemplate?this.updateIconTemplate():this.updateIconComponent()},e.prototype.updateIconComponent=function(){var e=ip;this.node&&this.node.iconComponent&&(e=this.node.iconComponent),this.iconSlot.clear();var t=this.componentFactoryResolver.resolveComponentFactory(e);this.iconSlot.createComponent(t).instance.node=this.node},e.prototype.updateIconTemplate=function(){this.iconSlot.clear(),this.iconSlot.createEmbeddedView(this.node.iconTemplate)},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:Kc}]},fc([t.ViewChild("icon",{read:t.ViewContainerRef,static:!1})],e.prototype,"iconSlot",void 0),fc([t.Input()],e.prototype,"node",void 0),fc([t.Input()],e.prototype,"isRoot",void 0),fc([t.ViewChild(n.RouterLinkActive,{static:!1})],e.prototype,"routerLinkActive",void 0),fc([t.ViewChildren(a)],e.prototype,"childrenNodes",void 0),fc([t.Output()],e.prototype,"nodeClick",void 0),fc([t.ViewChild(pd,{static:!1})],e.prototype,"confirm",void 0),e=a=fc([t.Component({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 [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 \x3c!-- loader --\x3e\n <i\n class="fa-spin loadingIndicator"\n [c8yIcon]="\'circle-o-notch\'"\n *ngIf="node.loading && !isRoot"\n >\n </i>\n\n \x3c!-- icon --\x3e\n <div (click)="click(\'icon\', $event)">\n <ng-container #icon></ng-container>\n </div>\n\n \x3c!--title --\x3e\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'})],e)}(),up=function(){function e(e){this.headerService=e,this.open=!0}return e.prototype.collapseNavigator=function(e){"link"!==e||this.headerService.largeWidth||this.headerService.closeNavigator()},e.prototype.trackByPathOrLabel=function(e,t){return t.path?t.path:t.label},e.ctorParameters=function(){return[{type:Wc}]},fc([t.Input()],e.prototype,"nodes",void 0),fc([t.Input()],e.prototype,"open",void 0),e=fc([t.Component({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'})],e)}(),dp=function(){function e(){}return e=fc([t.NgModule({declarations:[up,cp,lp,ip],imports:[n.RouterModule,Xi.CollapseModule.forRoot(),Uu,md],exports:[up,lp],entryComponents:[ip]})],e)}(),pp=function(){function e(){this.quickLinks=[],this.helpAndSupport=[]}return Object.defineProperty(e.prototype,"_quickLinks",{set:function(e){e&&(this.quickLinks=e.filter((function(e){return"quicklink"===e.type})))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_helpAndSupport",{set:function(e){e&&(this.helpAndSupport=e.filter((function(e){return"doc"===e.type})))},enumerable:!0,configurable:!0}),fc([t.Input("quickLinks")],e.prototype,"_quickLinks",null),fc([t.Input("helpAndSupport")],e.prototype,"_helpAndSupport",null),fc([t.Input()],e.prototype,"app",void 0),e=fc([t.Component({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'})],e)}(),mp=function(){function e(){}return e=fc([t.NgModule({declarations:[rp,sp,op,Qd,ep,pp],imports:[Qi.BsDropdownModule,Xd,id,Uu,Ku,nd,dp],exports:[sp,rp,op,Qd,ep,pp]})],e)}(),gp=function(){function n(e,n,a,s,o){this.loginService=e,this.users=n,this.passwordStrengthCheckerService=a,this.options=s,this.alert=o,this.onChangeView=new t.EventEmitter,this.passwordPattern=/^[a-zA-Z0-9`~!@#$%^&*()_|+\-=?;:'",.<>{}[\]\\/]{8,32}$/,this.isLoading=!1,this.model={tenantId:"",email:"",newPassword:"",newPasswordConfirm:"",passwordStrengthEnforced:!1},this.emailReadOnly=!1,this.TOKEN_PARAM="token",this.EMAIL_PARAM="email"}return n.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){return this.model.tenantId=this.loginService.getTenant(),this.model.email=this.options.get(this.EMAIL_PARAM,""),this.emailReadOnly=!!this.model.email,this.model.passwordStrengthEnforced=this.loginService.getEnforcePasswordStrength(),[2]}))}))},n.prototype.changePassword=function(){return yc(this,void 0,void 0,(function(){var t,n,a;return vc(this,(function(s){switch(s.label){case 0:t=this.passwordStrengthCheckerService.getStrengthColor(this.model.newPassword),n={token:this.credentials.token,email:this.model.email,newPassword:this.model.newPassword,passwordStrength:t.passwordStrength},s.label=1;case 1:return s.trys.push([1,3,4,5]),this.isLoading=!0,[4,this.users.resetPassword(n,this.model.tenantId)];case 2:return 200===s.sent().res.status&&(this.loginService.addSuccessMessage("password_changed"),this.credentials.token=void 0,this.options.set(this.TOKEN_PARAM,void 0),this.onChangeView.emit({view:e.LoginViews.Credentials})),[3,5];case 3:return a=s.sent(),this.alert.addServerFailure(a),[3,5];case 4:return this.loginService.reset(),this.isLoading=!1,[7];case 5:return[2]}}))}))},n.ctorParameters=function(){return[{type:vd},{type:l.UserService},{type:bd},{type:Gc},{type:$c}]},fc([t.Input()],n.prototype,"credentials",void 0),fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({selector:"c8y-change-password",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'})],n)}(),fp=function(){function n(n,a,s){this.loginService=n,this.alert=a,this.ui=s,this.onChangeView=new t.EventEmitter,this.LOGIN_VIEWS=e.LoginViews,this.model={},this.isLoading=!1,this.showLoginForm=!1,this.showBasicAuth=!1,this.oauthOptions={},this.PASSWORD_RESET_HEADER_NAME="passwordresettoken",this.NO_PHONE_HEADER_NAME="NoPhoneHeader"}return n.prototype.ngOnInit=function(){var e=this.loginService,t=e.oauthOptions,n=e.loginMode;this.model.tenant=this.loginService.getTenant(),this.showLoginForm=void 0===n.visibleOnLoginPage||n.visibleOnLoginPage,this.showBasicAuth="BASIC"===n.type,this.oauthOptions=t},n.prototype.redirectToOauth=function(){this.loginService.redirectToOauth()},n.prototype.login=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,3,4]),this.isLoading=!0,e=this.loginService.useBasicAuth(this.model),[4,this.loginService.login(e,this.model)];case 1:return n.sent(),[3,4];case 2:return(t=n.sent()).res&&t.res.headers&&t.res.headers.get(this.PASSWORD_RESET_HEADER_NAME)?this.handlePasswordReset(t.res):t.res&&401===t.res.status&&/pin/i.test(t.data.message)?this.handleSmsChallenge(t.data.message):t.res&&401===t.res.status&&/TOTP/i.test(t.data.message)?this.handleTotpChallenge(t.data.message):t.res&&t.res.headers&&t.res.headers.get(this.NO_PHONE_HEADER_NAME)&&!this.model.user.includes("$")?this.handleNoPhoneNumberProvided():(this.loginService.reset(),this.alert.addServerFailure(t)),[3,4];case 3:return this.isLoading=!1,[7];case 4:return[2]}}))}))},n.prototype.handlePasswordReset=function(t){this.alert.removeLastDanger(),this.model.token=t.headers.get(this.PASSWORD_RESET_HEADER_NAME),this.onChangeView.emit({view:e.LoginViews.ChangePassword,credentials:this.model})},n.prototype.handleTotpChallenge=function(t){/TOTP setup required/i.test(t)?this.onChangeView.emit({view:e.LoginViews.TotpSetup,credentials:this.model}):this.onChangeView.emit({view:e.LoginViews.TotpChallenge,credentials:this.model})},n.prototype.handleSmsChallenge=function(t){/pin has already been generated/i.test(t)&&this.alert.warning("The verification code was already sent. For a new verification code, please click on the link above."),this.alert.removeLastDanger(),this.onChangeView.emit({view:e.LoginViews.SmsChallenge,credentials:this.model})},n.prototype.handleNoPhoneNumberProvided=function(){this.onChangeView.emit({view:e.LoginViews.ProvidePhoneNumber,credentials:this.model}),this.alert.warning("Two-factor authentication has been turned on for this account. Provide your phone number above to save it in your user profile and start receiving verification codes via SMS.")},n.ctorParameters=function(){return[{type:vd},{type:$c},{type:Bc}]},fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({selector:"c8y-credentials",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'})],n)}(),hp=function(){function n(t,n,a){this.loginService=t,this.options=n,this.alert=a,this.currentView=e.LoginViews.None,this.LOGIN_VIEWS=e.LoginViews,this.disabled=!1,this.credentials={},this.displayAlerts=!1,this.TOKEN_PARAM="token"}return n.prototype.ngOnInit=function(){var e=this.getResetPasswordToken();this.loginService.isFirstLogin&&(e?(this.credentials.token=e,this.reset()):this.loginAutomatically()),this.loginService.isFirstLogin=!1},n.prototype.handleLoginTemplate=function(e){this.currentView=e.view,this.credentials=e.credentials||{}},n.prototype.onkeyup=function(e){"Enter"!==e.key&&this.loginService.cleanMessages()},n.prototype.reset=function(){this.loginService.reset(),this.setView(),this.loginService.cleanMessages()},n.prototype.loginAutomatically=function(){return yc(this,void 0,void 0,(function(){var e,t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,2,,3]),[4,this.loginService.login()];case 1:return n.sent(),[3,3];case 2:return e=n.sent(),"OAUTH2"===(t=this.loginService.loginMode.type)?this.loginService.redirectToOauth():(this.reset(),"OAUTH2_INTERNAL"===t&&"https:"!==window.location.protocol?this.alert.danger("Current login mode only supports HTTPS."):e.res&&403===e.res.status&&this.alert.addServerFailure(e)),[3,3];case 3:return[2]}}))}))},n.prototype.setView=function(){this.credentials&&this.credentials.token?this.handleLoginTemplate({view:e.LoginViews.ChangePassword,credentials:this.credentials}):this.handleLoginTemplate({view:e.LoginViews.Credentials})},n.prototype.getResetPasswordToken=function(){var e=this.options.get(this.TOKEN_PARAM);return e&&this.options.set(this.TOKEN_PARAM,void 0),e},n.ctorParameters=function(){return[{type:vd},{type:Gc},{type:$c}]},fc([t.Input()],n.prototype,"name",void 0),fc([t.HostListener("keyup",["$event"])],n.prototype,"onkeyup",null),n=fc([t.Component({selector:"c8y-login",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 <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'})],n)}(),yp=function(){function n(n,a){this.users=n,this.loginService=a,this.onChangeView=new t.EventEmitter,this.LOGIN_VIEWS=e.LoginViews,this.isLoading=!1,this.model={email:"",tenantId:""}}return n.prototype.ngOnInit=function(){this.model.tenantId=this.loginService.getTenant()},n.prototype.resetPassword=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return e.trys.push([0,,2,3]),this.isLoading=!0,[4,this.users.sendPasswordResetMail(this.model.email,this.model.tenantId)];case 1:return 200===e.sent().res.status&&this.loginService.addSuccessMessage("password_reset_requested"),[3,3];case 2:return this.loginService.reset(),this.isLoading=!1,[7];case 3:return[2]}}))}))},n.ctorParameters=function(){return[{type:l.UserService},{type:vd}]},fc([t.Output()],n.prototype,"onChangeView",void 0),n=fc([t.Component({selector:"c8y-recover-password",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'})],n)}(),vp=function(){function n(n,a,s){this.loginService=n,this.userService=a,this.alert=s,this.onCancel=new t.EventEmitter,this.LOGIN_VIEWS=e.LoginViews,this.loading=!1,this.hasError=!1}return Object.defineProperty(n.prototype,"isSetup",{get:function(){return this.view===e.LoginViews.TotpSetup},enumerable:!0,configurable:!0}),n.prototype.ngOnInit=function(){return yc(this,void 0,void 0,(function(){return vc(this,(function(e){switch(e.label){case 0:return this.view!==this.LOGIN_VIEWS.TotpSetup?[3,2]:[4,this.loginService.switchLoginMode(this.credentials)];case 1:e.sent(),e.label=2;case 2:return[2]}}))}))},n.prototype.onTotpSuccess=function(e){return yc(this,void 0,void 0,(function(){var t;return vc(this,(function(n){switch(n.label){case 0:return n.trys.push([0,6,7,8]),this.loading=!0,this.hasError=!1,this.credentials.tfa=e,this.isSetup?[4,this.userService.activateTotp()]:[3,2];case 1:n.sent(),n.label=2;case 2:return[4,this.loginService.switchLoginMode(this.credentials)];case 3:return n.sent(),[4,this.loginService.verifyAppAccess()];case 4:return n.sent(),[4,this.loginService.authFulfilled()];case 5:return n.sent(),[3,8];case 6:return t=n.sent(),this.alert.removeLastDanger(),t.data&&"Access is denied"===t.data.message?this.alert.addServerFailure(t):this.hasError=!0,[3,8];case 7:return this.loading=!1,[7];case 8:return[2]}}))}))},n.ctorParameters=function(){return[{type:vd},{type:l.UserService},{type:$c}]},fc([t.Input()],n.prototype,"credentials",void 0),fc([t.Input()],n.prototype,"view",void 0),fc([t.Output()],n.prototype,"onCancel",void 0),n=fc([t.Component({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'})],n)}(),jp=function(){function e(e){this.passwordService=e}return e.prototype.isStrong=function(e){return this.isPasswordGreen(this.passwordService.getStrengthColor(e).passwordStrength)},e.prototype.isPasswordGreen=function(e){return e===l.PasswordStrength.GREEN},e.ctorParameters=function(){return[{type:bd}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(bd))},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"})],e)}(),bp=function(){function e(e){this.passwordService=e}var n;return n=e,Object.defineProperty(e.prototype,"passwordStrengthEnforced",{set:function(e){this.forced=e},enumerable:!0,configurable:!0}),e.prototype.validate=function(e){var t=this.passwordService.isStrong(e.value||"");return this.forced&&!t?{passwordStrength:!0}:null},e.ctorParameters=function(){return[{type:jp}]},fc([t.Input()],e.prototype,"passwordStrengthEnforced",null),e=n=fc([t.Directive({selector:"[passwordStrengthEnforced]",providers:[{provide:tc.NG_VALIDATORS,useExisting:n,multi:!0}]})],e)}(),wp=function(){function e(){}var n;return n=e,e.forRoot=function(){return{ngModule:n,providers:n.providers()}},e.providers=function(){return[vd]},e=n=fc([t.NgModule({declarations:[hp,yp,gp,fp,vp,bp],imports:[tc.FormsModule,ec.TooltipModule,Uu,Zd,Xu,Hd],exports:[hp]})],e)}(),Sp=function(){function e(e){this.tabs=e,this.label=""}return e.prototype.ngAfterContentInit=function(){var e=this;setTimeout((function(){return e.tabs.add(e)}))},e.prototype.ngOnDestroy=function(){this.tabs.remove(this)},e.ctorParameters=function(){return[{type:Zc}]},fc([t.ViewChild("tpl",{static:!1})],e.prototype,"template",void 0),fc([t.Input()],e.prototype,"path",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"priority",void 0),fc([t.Input()],e.prototype,"orientation",void 0),e=fc([t.Component({selector:"c8y-tab",template:"<ng-template #tpl><ng-content></ng-content></ng-template>"})],e)}(),Cp=function(){function e(e,t,n){this.router=e,this.renderer=t,this.el=n,this.tabs=[],this.orientation="vertical",this.navigatorOpen=!1,this.showLeft=!1,this.showRight=!1}return Object.defineProperty(e.prototype,"isNavigatorOpen",{get:function(){return this.navigatorOpen},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasTabs",{get:function(){return this.tabs&&this.tabs.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isHorizontal",{get:function(){return"horizontal"===this.orientation},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isVertical",{get:function(){return"horizontal"!==this.orientation},enumerable:!0,configurable:!0}),e.prototype.ngOnDestroy=function(){this.scrollSubscription&&this.scrollSubscription.unsubscribe()},e.prototype.ngAfterContentInit=function(){"horizontal"===this.orientation&&this.scrollSubscribe()},e.prototype.isActive=function(e){return!(!e||!e.path)&&this.router.isActive(e.path,!1)},e.prototype.navigateTo=function(e){this.router.navigate([e])},e.prototype.scroll=function(e){void 0===e&&(e="right");var t=this.getDimensions(),n=t.widthScroll,a=t.width,s=t.scrollLeft+a*("left"===e?-1:1);s<0&&(s=0),s>n-a&&(s=n-a),this.container.nativeElement.scrollLeft=s},e.prototype.scrollSubscribe=function(){var e,t=this;this.scrollSubscription=a.merge(a.fromEvent(this.container.nativeElement,"scroll"),a.fromEventPattern((function(n){e=t.renderer.listen("window","resize",n)}),(function(){return e()}))).pipe(s.debounceTime(250)).subscribe((function(){return t.updateScroll()}))},e.prototype.updateScroll=function(){var e=this.getDimensions(),t=e.widthScroll,n=e.width,a=e.scrollLeft;this.showLeft=!!a,this.showRight=t>n+a},e.prototype.getDimensions=function(){var e=this.tabsContainer.nativeElement,t=this.container.nativeElement;return{widthScroll:e.scrollWidth,width:t.clientWidth,scrollLeft:t.scrollLeft}},e.ctorParameters=function(){return[{type:n.Router},{type:t.Renderer2},{type:t.ElementRef}]},fc([t.Input()],e.prototype,"tabs",void 0),fc([t.Input()],e.prototype,"orientation",void 0),fc([t.Input()],e.prototype,"navigatorOpen",void 0),fc([t.HostBinding("class.navigator-open")],e.prototype,"isNavigatorOpen",null),fc([t.HostBinding("class.page-tabs")],e.prototype,"hasTabs",null),fc([t.HostBinding("class.page-tabs-horizontal")],e.prototype,"isHorizontal",null),fc([t.HostBinding("class.page-tabs-vertical")],e.prototype,"isVertical",null),fc([t.ViewChild("container",{read:t.ElementRef,static:!0})],e.prototype,"container",void 0),fc([t.ViewChild("left",{read:t.ElementRef,static:!1})],e.prototype,"leftBtn",void 0),fc([t.ViewChild("right",{read:t.ElementRef,static:!1})],e.prototype,"rightBtn",void 0),fc([t.ViewChild("tabsContainer",{read:t.ElementRef,static:!1})],e.prototype,"tabsContainer",void 0),e=fc([t.Component({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'})],e)}(),Ip=function(){function e(){}return e=fc([t.NgModule({declarations:[Cp,Sp],imports:[Uu,n.RouterModule.forChild([])],exports:[Cp,Sp]})],e)}(),Pp=function(){function e(e){this.options=e,this.storageKey="acceptCookieNotice",this.acceptValue="1"}return e.prototype.ngOnInit=function(){this.settings=this.options.get("cookieBanner"),this.settings&&this.settings.cookieBannerText&&!localStorage.getItem(this.storageKey)&&(this.showBanner=!0)},e.prototype.acceptCookies=function(){localStorage.setItem(this.storageKey,this.acceptValue),this.showBanner=!1},e.ctorParameters=function(){return[{type:Gc}]},e=fc([t.Component({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-3" *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-2">\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>\n'})],e)}(),Op=function(){function e(){}return e=fc([t.NgModule({declarations:[Jc,Pp],imports:[Uu,mp,wp,n.RouterModule,Ip,zu,Xu,dp,ec.TooltipModule],exports:[Jc],entryComponents:[Jc]})],e)}(),_p=function(){},xp=function(){function e(e){this.template=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},e=fc([t.Directive({selector:"[c8yCellRendererDef]"})],e)}(),Ep=function(){function e(e){this.template=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},e=fc([t.Directive({selector:"[c8yHeaderCellRendererDef]"})],e)}(),kp=function(){},Ap=function(){function e(e){this.template=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},e=fc([t.Directive({selector:"[c8yFilteringFormRendererDef]"})],e)}(),Tp=function(){function e(){}return fc([t.Input()],e.prototype,"name",void 0),fc([t.ContentChild(xp,{static:!1})],e.prototype,"cellRendererDef",void 0),fc([t.ContentChild(Ep,{static:!1})],e.prototype,"headerCellRendererDef",void 0),fc([t.ContentChild(Ap,{static:!1})],e.prototype,"filteringFormRendererDef",void 0),e=fc([t.Directive({selector:"c8y-column"})],e)}(),Dp={icon:1,numeric:1,"text-short":1.67,"text-long":3.33};(yd=e.FilteringActionType||(e.FilteringActionType={})).ApplyFilter="APPLY_FILTER",yd.ResetFilter="RESET_FILTER";var Np=function(){function e(){this.loadingSubject=new a.BehaviorSubject(!1),this.dataSourceSubject=new a.BehaviorSubject([]),this.dataStatsSubject=new a.BehaviorSubject({size:0,filteredSize:0,currentPage:0,currentPageSize:0,firstPageSize:0}),this.dataSelectionSubject=new a.BehaviorSubject({filteredDataIds:[]}),this.loading$=this.loadingSubject.asObservable(),this.data$=this.dataSourceSubject.asObservable(),this.stats$=this.dataStatsSubject.asObservable(),this.selection$=this.dataSelectionSubject.asObservable()}return e.prototype.connect=function(e){return this.data$},e.prototype.disconnect=function(e){this.loadingSubject.complete(),this.dataSourceSubject.complete(),this.dataStatsSubject.complete(),this.dataSelectionSubject.complete()},e.prototype.loadData=function(e){var t=this,n=e.rows,r=e.columns,l=e.pagination,i=e.searchText,c=e.serverSideDataCallback,u=e.selectable,d=e.selectionPrimaryKey,p=this.toObservable(n).pipe(s.map((function(e){var n=0,a=[],s=o.flow((function(e){return t.doClientSideSearch({data:e,columns:r,searchText:i})}),(function(e){return t.doClientSideFiltering({data:e,columns:r})}),(function(e){return t.doClientSideSorting({data:e,columns:r})}),(function(e){return n=e.length,a=u?e.map((function(e){return e[d]})):a,e}),(function(e){return t.doClientSidePagination({data:e,pagination:l})}))(e);return t.dataStatsSubject.next({size:e.length,filteredSize:n,currentPage:l.currentPage,currentPageSize:s.length,firstPageSize:l.pageSize}),t.dataSelectionSubject.next({filteredDataIds:a}),s}))),m=a.defer((function(){return t.toObservable(c({columns:r,searchText:i,pagination:l,selection:{enabled:u,primaryKey:d}}))})).pipe(s.map((function(e){var n=e.data,a=e.paging,s=e.size,o=e.filteredSize,r=e.filteredDataIds;return t.dataStatsSubject.next({size:s,filteredSize:o,currentPage:a.currentPage,currentPageSize:n.length,firstPageSize:a.pageSize}),t.dataSelectionSubject.next({filteredDataIds:r||[]}),n}))),g="function"==typeof c?m:p;a.of([]).pipe(s.tap((function(){return t.loadingSubject.next(!0)})),s.switchMap((function(){return g})),s.catchError((function(e){return t.dataStatsSubject.next({size:0,filteredSize:0,currentPage:0,currentPageSize:0,firstPageSize:0}),t.dataSelectionSubject.next({filteredDataIds:[]}),a.of([])})),s.finalize((function(){return t.loadingSubject.next(!1)}))).subscribe((function(e){t.dataSourceSubject.next(e)}))},e.prototype.resolveValue=function(e,t){return o.get(e,t)},e.prototype.resolveFunction=function(e){return"function"==typeof e?e():e},e.prototype.normalizeNil=function(e){return o.isNil(e)?"":e},e.prototype.doClientSideFiltering=function(e){var t=this,n=e.data;return e.columns.reduce((function(e,n){var a=n.filterPredicate;return"string"==typeof a?t.doClientSideSearch({data:e,columns:[n],searchText:a}):"function"==typeof a?e.filter((function(e){return a(e,n.path)})):e}),n)},e.prototype.doClientSideSearch=function(e){var t=this,n=e.data,a=e.columns,s=e.searchText,r=a.map((function(e){return e.path})).filter((function(e){return!o.isNil(e)})),l=this.createRegexSearch(s);return n.filter((function(e){var n=o.flow((function(e){return o.pick(e,r)}),(function(e){return o.mapValues(e,t.resolveFunction)}),(function(e){return o.omitBy(e,o.isNil)}))(e);return Object.values(n).some((function(e){return l.test(e.toString())}))}))},e.prototype.doClientSideSorting=function(e){var t=e.data,n=e.columns.filter((function(e){return!!e.sortOrder})),a={paths:n.map((function(e){return e.path})),orders:n.map((function(e){return e.sortOrder}))};return o.orderBy(t,a.paths,a.orders)},e.prototype.doClientSidePagination=function(e){var t=e.data,n=e.pagination;return n?o.get(o.chunk(t,n.pageSize),n.currentPage-1,[]):t},e.prototype.createRegexSearch=function(e){return RegExp(function(e){void 0===e&&(e="");return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(e),"i")},e.prototype.toObservable=function(e){return a.isObservable(e)?e:e instanceof Promise?a.from(e):a.of(e)},e}();var Mp,qp,Lp=function(){function n(e,n,s){this.sanitizer=e,this.hostRef=n,this.cd=s,this.title="Items",this.loadingItemsLabel="Loading items…",this.noMatchingItemsLabel="No matching items.",this.dataSource=new Np,this.filteringLabelsParams={filteredItemsCount:0,allItemsCount:0},this.paginationLabelParams={pageFirstItemIdx:0,pageLastItemIdx:0,itemsTotal:0},this.possiblePageSizes=[10,15,20,30,50],this.minPossiblePageSize=Math.min.apply(Math,bc(this.possiblePageSizes)),this.selectable=!1,this.selectionPrimaryKey="id",this.displayOptions={striped:!0,bordered:!1,gridHeader:!0},this.rowMouseOver=new t.EventEmitter,this.rowMouseLeave=new t.EventEmitter,this.rowClick=new t.EventEmitter,this.itemsSelect=new t.EventEmitter,this.columnNames=[],this.styles={tableCursor:"auto",gridTemplateColumns:void 0},this.searchText$=new t.EventEmitter,this.searchText="",this.filteringApplied=!1,this.totalPagesCount=1/0,this.selectedItemIds=[],this.currentPageSelectionState={allSelected:!1,allDeselected:!0},this.builtInActionType={Edit:"EDIT",Delete:"DELETE",Export:"EXPORT"},this.resizeHandleMouseDown$=new t.EventEmitter,this.resizeHandleContainerMouseMove$=new t.EventEmitter,this.resizeHandleContainerMouseUp$=new t.EventEmitter,this.unsubscribe$=new a.Subject}return Object.defineProperty(n.prototype,"_columns",{set:function(e){this.columns=e||[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_rows",{set:function(e){this.rows=e||[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_pagination",{set:function(e){this.pagination=e;var t=o.get(this.pagination,"pageSize");t&&!this.possiblePageSizes.find((function(e){return e===t}))&&(this.pagination=gc({},this.pagination,{pageSize:10}))},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_serverSideDataCallback",{set:function(e){this.serverSideDataCallback=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_selectable",{set:function(e){this.selectable=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_selectionPrimaryKey",{set:function(e){this.selectionPrimaryKey=e},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_displayOptions",{set:function(e){this.displayOptions=gc({},this.displayOptions,e)},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_actionControls",{set:function(e){this.actionControls=e||[]},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||[]},enumerable:!0,configurable:!0}),n.prototype.ngOnInit=function(){var e=this;this.searchText$.pipe(s.takeUntil(this.unsubscribe$),s.debounceTime(300),s.distinctUntilChanged(),s.tap((function(t){e.searchText=t}))).subscribe((function(){e.reload()})),this.selectable&&a.combineLatest(this.dataSource.data$,this.itemsSelect.asObservable()).pipe(s.takeUntil(this.unsubscribe$)).subscribe((function(t){var n=jc(t,1)[0],a=0===n.length;e.currentPageSelectionState={allSelected:!a&&n.every((function(t){return e.isItemSelected(t)})),allDeselected:!!a||n.every((function(t){return!e.isItemSelected(t)}))}}))},n.prototype.ngOnChanges=function(){this.updateColumns(),this.loadData()},n.prototype.ngAfterViewInit=function(){this.updateGridColumnsSize(),this.thEls=this.thRefs.toArray().map((function(e){return e.nativeElement})),this.setupResizeHandle()},n.prototype.ngOnDestroy=function(){this.unsubscribe$.next(),this.unsubscribe$.complete()},n.prototype.trackByName=function(e,t){return t.name},n.prototype.resolveCellValue=function(e,t){var n=this;return o.flow([function(e){return n.dataSource.resolveValue(e,t)},this.dataSource.resolveFunction,this.dataSource.normalizeNil])(e)},n.prototype.changeSortOrder=function(e){var t=this.columns.find((function(t){return t.name===e}));if(t){var n=t.sortOrder;n?"asc"===n?this.updateSorting([e],"desc"):this.updateSorting([e],""):this.updateSorting([e],"asc")}},n.prototype.updateSorting=function(e,t){this.columns=this.columns.map((function(n){return e.includes(n.name)?gc({},n,{sortOrder:t}):n})),this.reload()},n.prototype.applyFilter=function(t,n,a){this.updateFiltering([t],{type:e.FilteringActionType.ApplyFilter,payload:{filteringModifier:a}}),n.hide()},n.prototype.resetFilter=function(t,n){this.updateFiltering([t],{type:e.FilteringActionType.ResetFilter}),n.hide()},n.prototype.clearFilters=function(){this.updateFiltering(this.columns.map((function(e){return e.name})),{type:e.FilteringActionType.ResetFilter})},n.prototype.updateFiltering=function(t,n){this.columns=this.columns.map((function(a){return t.includes(a.name)?gc({},a,n.type===e.FilteringActionType.ApplyFilter?n.payload.filteringModifier:{filterPredicate:void 0,externalFilterQuery:void 0}):a})),this.updateFilteringApplied(),this.reload()},n.prototype.updateFilteringApplied=function(){this.filteringApplied=this.columns.some(this.isColumnFilteringApplied)},n.prototype.isColumnFilteringApplied=function(e){var t=e.filterable,n=e.filterPredicate,a=e.externalFilterQuery;return!(!t||!n&&!a)},n.prototype.updatePagination=function(e){var t=e.itemsPerPage,n=e.page;this.pagination=gc({},this.pagination,{pageSize:t,currentPage:n}),this.loadData()},n.prototype.reload=function(){this.pagination=gc({},this.pagination,{currentPage:1}),this.loadData()},n.prototype.getCellRendererSpec=function(e){var t=e.value,n=e.row,a=e.columnName;return this._getCellRendererSpec({type:"CELL",value:t,row:n,columnName:a})},n.prototype.getHeaderCellRendererSpec=function(e){var t=e.value,n=e.columnName;return this._getCellRendererSpec({type:"HEADER",value:t,row:void 0,columnName:n})},n.prototype.getFilteringFormRendererSpec=function(e){var t=e.column,n=e.dropdown;return{renderer:o.get(this.getColumnRenderer(t),"filteringFormRendererDef.template")||t.filteringFormRendererComponent,context:{property:t,applyFilter:this.applyFilter.bind(this,t.name,n),resetFilter:this.resetFilter.bind(this,t.name,n)}}},n.prototype.setAllItemsSelected=function(e){var t=this;this.dataSource.selection$.pipe(s.first()).subscribe((function(n){var a=n.filteredDataIds;return t.setItemsSelected(a,e)}))},n.prototype.setAllItemsInCurrentPageSelected=function(e){var t=this;this.dataSource.data$.pipe(s.first()).subscribe((function(n){return t.setItemsSelected(n,e)}))},n.prototype.setItemsSelected=function(e,t){var n=this,a=e.map((function(e){return"object"==typeof e?e[n.selectionPrimaryKey]:e}));this.selectedItemIds=t?o.union(this.selectedItemIds,a):o.without.apply(void 0,bc([this.selectedItemIds],a)),this.itemsSelect.emit(this.selectedItemIds)},n.prototype.isItemSelected=function(e){return this.selectedItemIds.includes(e[this.selectionPrimaryKey])},n.prototype.onColumnDrop=function(e){var t=e.previousIndex,n=e.currentIndex;if(t!==n){var a=this.columns.splice(t,1);this.columns.splice(n,0,a[0])}this.updateColumnNames(),this.updateGridColumnsSize()},n.prototype.updateGridColumnsSize=function(){this.styles=gc({},this.styles,{gridTemplateColumns:this.sanitizer.bypassSecurityTrustStyle(this.columns.filter((function(e){return e.visible})).map((function(e){return e.gridTrackSize})).join(" "))})},n.prototype.updateColumns=function(){var e={gridTrackSize:"42px",sortable:!1,positionFixed:!0};this.columns=bc([this.selectable?gc({},e,{name:"checkbox"}):void 0],this.columns,[this.actionControls.length>0?gc({},e,{name:"actions"}):void 0]).filter(Boolean).map(this.withColumnDefaults),this.updateColumnNames(),this.updateGridColumnsSize(),this.updateFilteringApplied()},n.prototype.withColumnDefaults=function(e){var t=e.dataType||"text-short",n=e.headerCSSClassName,a=e.cellCSSClassName;return gc({visible:!0,positionFixed:!1,sortable:!0,sortOrder:"",filterable:!1},e,{dataType:t,gridTrackSize:e.gridTrackSize||"minmax(80px, "+Dp[t]+"fr)",headerCSSClassName:("string"==typeof n?n.split(" "):n)||[],cellCSSClassName:("string"==typeof a?a.split(" "):a)||[]})},n.prototype.updateColumnNames=function(){this.columnNames=this.columns.map((function(e){return e.name}))},n.prototype.setupResizeHandle=function(){var e=this;this.resizeHandleMouseDown$.pipe(s.takeUntil(this.unsubscribe$),s.tap((function(){return e.clearMouseHighlights()})),s.mergeMap((function(t){var n=t.event,a=t.targetColumnName;return e.columns=e.columns.map((function(e){return e.name===a?gc({},e,{headerCSSClassName:o.union(e.headerCSSClassName,["header--being-resized"])}):e})),e.headerBeingResized={columnName:a,el:n.target.parentNode},e.styles=gc({},e.styles,{tableCursor:"col-resize"}),e.resizeHandleContainerMouseMove$.pipe(s.tap((function(){return e.clearMouseHighlights()})),s.takeUntil(e.resizeHandleContainerMouseUp$))}))).subscribe((function(t){requestAnimationFrame((function(){e.columns=e.columns.map((function(n,a){if(n.name===e.headerBeingResized.columnName){var s=e.hostRef.nativeElement,r=s.getBoundingClientRect().left,l=s.scrollLeft-r+t.clientX-(e.headerBeingResized.el.offsetLeft||0);return gc({},n,{gridTrackSize:Math.max(80,l)+"px"})}return n.gridTrackSize.startsWith("minmax")?gc({},n,{gridTrackSize:o.parseInt(e.thEls[a].clientWidth)+"px"}):n})),e.updateGridColumnsSize()}))})),this.resizeHandleContainerMouseUp$.pipe(s.takeUntil(this.unsubscribe$)).subscribe((function(){e.headerBeingResized&&(e.columns=e.columns.map((function(t){return t.name===e.headerBeingResized.columnName?gc({},t,{headerCSSClassName:o.without(t.headerCSSClassName,"header--being-resized")}):t})),e.headerBeingResized=void 0,e.styles=gc({},e.styles,{tableCursor:"auto"}))}))},n.prototype.clearMouseHighlights=function(){window.getSelection&&window.getSelection().removeAllRanges()},n.prototype._getCellRendererSpec=function(e){var t=e.type,n=e.value,a=e.row,s=e.columnName,r=this.columns.find((function(e){return e.name===s})),l=this.getColumnRenderer(r),i=o.get(l,("HEADER"===t?"headerCellRendererDef":"cellRendererDef")+".template"),c=r.cellRendererComponent,u=r.headerCellRendererComponent;return{renderer:i||("HEADER"===t?u:c),context:{value:n,item:a,property:r}}},n.prototype.getColumnRenderer=function(e){return this.columnRenderers.toArray().find((function(t){return t.name===e.name}))},n.prototype.loadData=function(){var e=this,t=this,n=t.rows,a=t.columns,s=t.pagination,o=t.searchText,r=t.serverSideDataCallback,l=t.selectable,i=t.selectionPrimaryKey;this.dataSource.loadData({rows:n,columns:a,pagination:s,searchText:o,serverSideDataCallback:r,selectable:l,selectionPrimaryKey:i}),this.dataSource.stats$.subscribe((function(t){e.updateFilteringLabelsParams(t),e.updatePaginationLabelParams(t)}))},n.prototype.updateFilteringLabelsParams=function(e){this.filteringLabelsParams={filteredItemsCount:e.filteredSize,allItemsCount:e.size}},n.prototype.updatePaginationLabelParams=function(e){var t=(e.currentPage-1)*e.firstPageSize+1;this.paginationLabelParams={pageFirstItemIdx:t,pageLastItemIdx:t+(e.currentPageSize-1),itemsTotal:e.filteredSize}},n.ctorParameters=function(){return[{type:nc.DomSanitizer},{type:t.ElementRef},{type:t.ChangeDetectorRef}]},fc([t.Input()],n.prototype,"title",void 0),fc([t.Input()],n.prototype,"loadingItemsLabel",void 0),fc([t.Input()],n.prototype,"noMatchingItemsLabel",void 0),fc([t.Input("columns")],n.prototype,"_columns",null),fc([t.Input("rows")],n.prototype,"_rows",null),fc([t.Input("pagination")],n.prototype,"_pagination",null),fc([t.Input("serverSideDataCallback")],n.prototype,"_serverSideDataCallback",null),fc([t.Input("selectable")],n.prototype,"_selectable",null),fc([t.Input("selectionPrimaryKey")],n.prototype,"_selectionPrimaryKey",null),fc([t.Input("displayOptions")],n.prototype,"_displayOptions",null),fc([t.Input("actionControls")],n.prototype,"_actionControls",null),fc([t.Input("bulkActionControls")],n.prototype,"_bulkActionControls",null),fc([t.Output()],n.prototype,"rowMouseOver",void 0),fc([t.Output()],n.prototype,"rowMouseLeave",void 0),fc([t.Output()],n.prototype,"rowClick",void 0),fc([t.Output()],n.prototype,"itemsSelect",void 0),fc([t.ContentChildren(Tp)],n.prototype,"columnRenderers",void 0),fc([t.ViewChildren(ic.CdkHeaderCell,{read:t.ElementRef})],n.prototype,"thRefs",void 0),n=fc([t.Component({selector:"c8y-data-grid",template:'<div class="table-data-grid-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 class="m-r-4" ngNonBindable translate [translateParams]="filteringLabelsParams"\n >{{ filteredItemsCount }} of {{ allItemsCount }} items</small\n >\n </span>\n <span *ngIf="filteringApplied">\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 <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 dropdown-menu-right"\n (click)="$event.stopPropagation()"\n >\n <li class="">\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\n <div\n *ngIf="column.filterable"\n class="dropdown"\n dropdown\n #dropdown="bs-dropdown"\n container="body"\n [insideClick]="true"\n >\n <button\n class="btn-header c8y-dropdown"\n dropdownToggle\n [title]="(column.header | translate) || column.name"\n >\n <ng-container\n *ngIf="\n (\n [{\n columnName: column.name, \n value: ((column.header | translate) || column.name) \n }]\n | map:getHeaderCellRendererSpec:this\n ) as cellRendererSpec\n "\n >\n <c8y-cell-renderer [spec]="cellRendererSpec"></c8y-cell-renderer>\n </ng-container>\n <i c8yIcon="filter"></i>\n </button>\n\n <ul *dropdownMenu class="dropdown-menu" (click)="$event.stopPropagation()">\n <li class="dropdown-form">\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 <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 </table>\n\n <div *ngIf="dataSource.loading$ | async" 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" 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'})],n)}(),Rp=function(){function e(e,t){this.injector=e,this.cd=t}return Object.defineProperty(e.prototype,"_spec",{set:function(e){this.spec=e},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this.prevSpec||(this.prevSpec=this.spec);var e=this.spec.renderer;e instanceof t.TemplateRef?this.rendererType="TEMPLATE":e instanceof t.Type&&(this.rendererType="COMPONENT",this.rendererInjector=t.Injector.create({providers:[{provide:_p,useValue:this.spec.context}],parent:this.injector}))},e.prototype.ngDoCheck=function(){!this.spec.context.value===this.prevSpec.context.value&&(this.prevSpec=this.spec,this.cd.markForCheck())},e.ctorParameters=function(){return[{type:t.Injector},{type:t.ChangeDetectorRef}]},fc([t.Input("spec")],e.prototype,"_spec",null),e=fc([t.Component({selector:"c8y-cell-renderer",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',changeDetection:t.ChangeDetectionStrategy.OnPush})],e)}(),$p=function(){function e(e,t){this.injector=e,this.cd=t,this.defaultRendererFilterText=""}return Object.defineProperty(e.prototype,"_spec",{set:function(e){this.spec=e},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){var e=this.spec,n=e.renderer,a=e.context;n instanceof t.TemplateRef?this.rendererType="TEMPLATE":n instanceof t.Type&&(this.rendererType="COMPONENT",this.rendererInjector=t.Injector.create({providers:[{provide:kp,useValue:this.spec.context}],parent:this.injector}));var s=a.property.filterPredicate;"string"==typeof s&&(this.defaultRendererFilterText=s)},e.ctorParameters=function(){return[{type:t.Injector},{type:t.ChangeDetectorRef}]},fc([t.Input("spec")],e.prototype,"_spec",null),e=fc([t.Component({selector:"c8y-filtering-form-renderer",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',changeDetection:t.ChangeDetectionStrategy.OnPush})],e)}(),Fp=function(){function e(){}return e=fc([t.NgModule({imports:[u.CommonModule,ic.CdkTableModule,cc.DragDropModule,tc.FormsModule,tc.ReactiveFormsModule,Uu,Qi.BsDropdownModule.forRoot(),sc.PopoverModule.forRoot(),uc.PaginationModule.forRoot()],declarations:[xp,Ep,Rp,Ap,$p,Tp,Lp],exports:[xp,Ep,Ap,Tp,Lp],entryComponents:[Lp]})],e)}(),Up=function(){},Gp=function(){function e(e){this.context=e}return e.ctorParameters=function(){return[{type:_p}]},e=fc([t.Component({template:'\n <device-status [mo]="context.item"></device-status>\n '})],e)}(),Bp=function(e){function t(){var t=e.call(this)||this;return t.name="status",t.header="Status",t.dataType="icon",t.cellRendererComponent=Gp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{sendOnline:{type:"boolean"},sendOffline:{type:"boolean"},sendUnknown:{type:"boolean"},sendNotMonitored:{type:"boolean"},pushOnline:{type:"boolean"},pushOffline:{type:"boolean"},pushUnknown:{type:"boolean"},maintenance:{type:"boolean"}}},form:[{type:"template",template:"<label><span translate>Show devices with send status</span>:</label>"},{key:"sendOnline",title:"Online"},{key:"sendOffline",title:"Offline"},{key:"sendUnknown",title:"Unknown"},{key:"sendNotMonitored",title:"Not monitored"},{type:"template",template:"<label><span translate>Show devices with push status</span>:</label>"},{key:"pushOnline",title:"Online"},{key:"pushOffline",title:"Offline"},{key:"pushUnknown",title:"Not monitored"},{type:"template",template:"<label><span translate>Show devices with maintenance status</span>:</label>"},{key:"maintenance",title:"Under maintenance"}],getFilter:function(e){var t,n,a={},s=[],o=[],r=[];return e&&(e.sendOnline&&o.push("AVAILABLE"),e.maintenance&&o.push("MAINTENANCE"),e.sendOffline&&o.push("UNAVAILABLE"),e.sendUnknown&&s.push({__and:[{__not:{__has:"c8y_Availability.status"}},{__has:"c8y_RequiredAvailability"}]}),e.sendNotMonitored&&s.push({__and:[{__not:{__has:"c8y_Availability.status"}},{__not:{__has:"c8y_RequiredAvailability"}}]}),e.pushOnline&&r.push("CONNECTED"),e.pushOffline&&r.push("DISCONNECTED"),e.pushUnknown&&s.push({__not:{__has:"c8y_Connection.status"}}),o.length&&s.push(((t={})["c8y_Availability.status"]={__in:o},t)),r.length&&s.push(((n={})["c8y_Connection.status"]={__in:r},n)),s.length&&(a.__or=s)),a}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_Availability.status"}]},t}return mc(t,e),t}(Up),zp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:_p},{type:sm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return sm}))]}]}]},e=fc([t.Component({template:'\n <a\n [href]="deviceGridService.getDeviceHref(context.item)"\n title="{{ deviceGridService.getProperName(context.item) }}"\n class="interact"\n >\n {{ deviceGridService.getProperName(context.item) }}\n </a>\n '}),hc(1,t.Inject(t.forwardRef((function(){return sm}))))],e)}(),Hp=function(e){function t(){var t=e.call(this)||this;return t.name="name",t.path="name",t.header="Name",t.cellCSSClassName="data-record-header",t.cellRendererComponent=zp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{names:{type:"array",items:{type:"string"}}}},form:[{key:"names",title:"Show devices with name",add:"Or",items:[{key:"names[]",notitle:!0,placeholder:"e.g. My Device, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.names.length&&(t.name={__in:e.names}),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path}]},t}return mc(t,e),t}(Up),Vp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:_p},{type:sm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return sm}))]}]}]},e=fc([t.Component({template:"\n {{ deviceGridService.getModel(context.item) }}\n "}),hc(1,t.Inject(t.forwardRef((function(){return sm}))))],e)}(),Kp=function(e){function t(){var t=e.call(this)||this,n="com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.model";return t.name="model",t.header="Model",t.cellRendererComponent=Vp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{models:{type:"array",items:{type:"string"}}}},form:[{key:"models",title:"Show devices with model",add:"Or",items:[{key:"models[]",notitle:!0,placeholder:"e.g. ModelName, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t,a={};return e.models.length&&(a.__or=((t={})["c8y_Hardware.model"]={__in:e.models},t[n]={__in:e.models},t)),a}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_Hardware.model"},{path:n}]},t}return mc(t,e),t}(Up),Wp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:_p},{type:sm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return sm}))]}]}]},e=fc([t.Component({template:"\n {{ deviceGridService.getSerialNumber(context.item) }}\n "}),hc(1,t.Inject(t.forwardRef((function(){return sm}))))],e)}(),Yp=function(e){function t(){var t=e.call(this)||this;return t.name="serialNumber",t.header="Serial number",t.cellRendererComponent=Wp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{serialNumbers:{type:"array",items:{type:"string"}}}},form:[{key:"serialNumbers",title:"Show devices with serial number",add:"Or",items:[{key:"serialNumbers[]",notitle:!0,placeholder:"e.g. 54321-123, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t,n={};return e.serialNumbers.length&&(n.__or=((t={})["c8y_Hardware.serialNumber"]={__in:e.serialNumbers},t["com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.serial"]={__in:e.serialNumbers},t)),n}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_Hardware.serialNumber"},{path:"com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.serial"}]},t}return mc(t,e),t}(Up),Zp=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:_p},{type:sm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return sm}))]}]}]},e=fc([t.Component({template:'<span\n title="{{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}"\n class="text-truncate"\n>\n {{\n deviceGridService.getParentsNames(\n context.item,\n context.property.externalFilterQuery?.deviceGroupId\n )\n }}\n</span>\n'}),hc(1,t.Inject(t.forwardRef((function(){return sm}))))],e)}(),Jp=function(e){function t(){var t=e.call(this)||this;return t.name="group",t.header="Group",t.cellRendererComponent=Zp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{deviceGroupId:{type:"integer",format:"deviceGroupId"}}},form:[{key:"deviceGroupId",title:"Show devices in group"}],getFilter:function(e){var t={};return e.deviceGroupId&&(t.__bygroupid=e.deviceGroupId),t}},t.sortable=!1,t}return mc(t,e),t}(Up),Xp=function(){function e(e){this.context=e}return e.ctorParameters=function(){return[{type:_p}]},e=fc([t.Component({template:"\n {{ context.value | date: 'medium' }}\n "})],e)}(),Qp=function(e){function t(){var t=e.call(this)||this,n=t;return t.path="creationTime",t.name="registrationDate",t.header="Registration date",t.cellRendererComponent=Xp,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{registrationDate:{type:"object",properties:{after:{type:"string",format:"datetime"},before:{type:"string",format:"datetime"}}}}},form:[{key:"registrationDate.after",title:"Show devices registered after",maxDateKey:"registrationDate.before"},{key:"registrationDate.before",title:"And before`date`",minDateKey:"registrationDate.after"}],getFilter:function(e){var t,a,s={},o=e&&e.registrationDate;if(o&&(o.after||o.before)){if(s.__and=[],o.after){var r=n.formatDate(o.after);s.__and.push({__or:(t={},t[n.path]={__gt:r},t[n.path+".date"]={__gt:r},t)})}if(o.before){var l=n.formatDate(o.before);s.__and.push({__or:(a={},a[n.path]={__lt:l},a[n.path+".date"]={__lt:l},a)})}}return s}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path+".date"},{path:t.path}]},t}return mc(t,e),t.prototype.formatDate=function(e){return new Date(e).toISOString()},t}(Up),em=function(e){function t(){var t=e.call(this)||this,n=t;return t.path="id",t.name="systemId",t.header="System ID",t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{ids:{type:"array",items:{type:"string"}}}},form:[{key:"ids",title:"Show devices with system ID",add:"Or",items:[{key:"ids[]",notitle:!0,placeholder:"e.g. 10300, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.ids.length&&(t[n.path]={__in:e.ids}),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path}]},t}return mc(t,e),t}(Up),tm=function(e){function t(){var t=e.call(this)||this,n=t;return t.path="c8y_Mobile.imei",t.name="imei",t.header="IMEI",t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{imeis:{type:"array",items:{type:"string"}}}},form:[{key:"imeis",title:"Show devices with IMEI",add:"Or",items:[{key:"imeis[]",notitle:!0,placeholder:"e.g. 46543432321, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.imeis.length&&(t[n.path]={__in:e.imeis}),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:t.path}]},t}return mc(t,e),t}(Up),nm=function(){function e(e,t){this.context=e,this.deviceGridService=t}return e.ctorParameters=function(){return[{type:_p},{type:sm,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return sm}))]}]}]},e=fc([t.Component({template:'<a [href]="deviceGridService.getAlarmsHref(context.item)" class="listLink">\n <small\n class="status critical"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.critical"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.critical }} <i [c8yIcon]="\'warning\'"></i>\n </small>\n <small\n class="status major"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.major"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.major }}\n <i [c8yIcon]="\'exclamation-circle\'"></i>\n </small>\n <small\n class="status minor"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.minor"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.minor }}\n <i [c8yIcon]="\'exclamation-circle\'"></i>\n </small>\n <small\n class="status warning"\n *ngIf="context.item.c8y_ActiveAlarmsStatus?.warning"\n style="white-space: nowrap;"\n >\n {{ context.item.c8y_ActiveAlarmsStatus?.warning }} <i [c8yIcon]="\'circle\'"></i>\n </small>\n</a>\n'}),hc(1,t.Inject(t.forwardRef((function(){return sm}))))],e)}(),am=function(e){function t(){var t=e.call(this)||this;return t.name="alarms",t.header="Alarms",t.cellRendererComponent=nm,t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{critical:{type:"boolean"},major:{type:"boolean"},minor:{type:"boolean"},warning:{type:"boolean"},none:{type:"boolean"}}},form:[{type:"template",template:"<label><span translate>Show devices with active</span>:</label>"},{key:"critical",title:"Critical alarms"},{key:"major",title:"Major alarms"},{key:"minor",title:"Minor alarms"},{key:"warning",title:"Warnings"},{key:"none",title:"No alarms"}],getFilter:function(e){var t={},n=[];return e.critical&&n.push({"c8y_ActiveAlarmsStatus.critical":{__gt:0}}),e.major&&n.push({"c8y_ActiveAlarmsStatus.major":{__gt:0}}),e.minor&&n.push({"c8y_ActiveAlarmsStatus.minor":{__gt:0}}),e.warning&&n.push({"c8y_ActiveAlarmsStatus.warning":{__gt:0}}),e.none&&(n.push({__not:{__has:"c8y_ActiveAlarmsStatus"}}),n.push({__and:o.map(["critical","major","minor","warning"],(function(e){var t={},n={__not:{__has:void 0}},a="c8y_ActiveAlarmsStatus."+e;return t[a]=0,n.__not.__has=a,{__or:[t,n]}}))})),n.length&&(t.__or=n),t}},t.sortable=!0,t.sortingConfig={pathSortingConfigs:[{path:"c8y_ActiveAlarmsStatus.critical"},{path:"c8y_ActiveAlarmsStatus.major"},{path:"c8y_ActiveAlarmsStatus.minor"},{path:"c8y_ActiveAlarmsStatus.warning"}]},t}return mc(t,e),t}(Up),sm=function(){function e(e,t){this.inventoryService=e,this.translateService=t,this.queriesUtil=new l.QueriesUtil}return e.prototype.getDefaultColumns=function(){return[new Bp,new Hp,new Kp,new Yp,new Jp,new Qp,new em,new tm,new am]},e.prototype.getDefaultPagination=function(){return{pageSize:10,currentPage:1}},e.prototype.getDefaultActionControls=function(){var e=this;return[{type:"DELETE",callback:function(t){return e.delete(t)}}]},e.prototype.getDefaultBulkActionControls=function(){return[]},e.prototype.getProperName=function(e){var t=e.id,n=e.name;return n||this.translateService.instant("Device {{id}}",{id:t})},e.prototype.getModel=function(e){var t=this.getHardware(e);return t&&t.model},e.prototype.getSerialNumber=function(e){var t=this.getHardware(e),n=this.isVendme(e)?"serial":"serialNumber";return t&&t[n]},e.prototype.getParentsNames=function(e,t){var n=e.assetParents.references,a=o.map(n,"managedObject"),s=o.sortBy(a,["name"]),r=o.remove(s,{id:t}).concat(s);return o.map(r,"name").join(", ")},e.prototype.getDeviceHref=function(e){return"#/device/"+e.id},e.prototype.getAlarmsHref=function(e){return this.getDeviceHref(e)+"/alarms"},e.prototype.delete=function(e){console.log("should delete",e)},e.prototype.getDevices=function(e,t){return yc(this,void 0,void 0,(function(){var n;return vc(this,(function(a){return n=gc({},this.getDevicesFilters(e,t),{withParents:!0}),[2,this.inventoryService.list(n)]}))}))},e.prototype.getDevicesCount=function(e,t){return yc(this,void 0,void 0,(function(){var n;return vc(this,(function(a){switch(a.label){case 0:return n=gc({},this.getDevicesFilters(e,t),{pageSize:1,currentPage:1}),[4,this.inventoryService.list(n)];case 1:return[2,a.sent().paging.totalPages]}}))}))},e.prototype.getDevicesTotal=function(){return yc(this,void 0,void 0,(function(){var e;return vc(this,(function(t){switch(t.label){case 0:return e={q:"",pageSize:1,withTotalPages:!0},[4,this.inventoryService.list(e)];case 1:return[2,t.sent().paging.totalPages]}}))}))},e.prototype.getDeviceQueryString=function(e){return this.queriesUtil.buildQuery(this.getQueryObj(e))},e.prototype.getHardware=function(e){var t=this.isVendme(e)?"com_nsn_startups_vendme_fragments_VendingMachineTypeInfo":"c8y_Hardware";return e&&e[t]},e.prototype.isVendme=function(e){return"com_nsn_startups_vendme_VendingMachine"===e.type},e.prototype.getDevicesFilters=function(e,t){return{q:this.getDeviceQueryString(e),pageSize:t.pageSize,currentPage:t.currentPage,withTotalPages:!0}},e.prototype.getQueryObj=function(e){var t=this;return o.transform(e,(function(e,n){return t.extendQueryByColumn(e,n)}),{__filter:{},__orderby:[]})},e.prototype.extendQueryByColumn=function(e,t){if(t.filterable&&t.externalFilterQuery){var n=(t.filteringConfig.getFilter||o.identity)(t.externalFilterQuery);n.__or?(e.__filter.__and=e.__filter.__and||[],e.__filter.__and.push(n)):n.__and&&o.get(e,"__filter.__and")?n.__and.map((function(t){return e.__filter.__and.push(t)})):o.assign(e.__filter,n)}if(t.sortable&&t.sortOrder){var a={};o.forEach(t.sortingConfig.pathSortingConfigs,(function(e){a[e.path]=("asc"===t.sortOrder?1:-1)*(e.sortOrderModifier||1)})),e.__orderby.push(a)}return e},e.ctorParameters=function(){return[{type:l.InventoryService},{type:i.TranslateService}]},e=fc([t.Injectable()],e)}(),om=function(){function e(e){this.deviceGridService=e,this.title="Devices",this.loadingItemsLabel="Loading devices…",this.noMatchingItemsLabel="No matching devices.",this.selectable=!1,this.onColumnsChange=new t.EventEmitter,this.onDeviceQueryStringChange=new t.EventEmitter,this.columns=this.deviceGridService.getDefaultColumns(),this.pagination=this.deviceGridService.getDefaultPagination(),this.actionControls=this.deviceGridService.getDefaultActionControls(),this.bulkActionControls=this.deviceGridService.getDefaultBulkActionControls(),this.serverSideDataCallback=this.onDataSourceModifier.bind(this)}return Object.defineProperty(e.prototype,"_columns",{set:function(e){this.columns=e||this.deviceGridService.getDefaultColumns()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_pagination",{set:function(e){this.pagination=e||this.deviceGridService.getDefaultPagination()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_actionControls",{set:function(e){this.actionControls=e||this.deviceGridService.getDefaultActionControls()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||this.deviceGridService.getDefaultBulkActionControls()},enumerable:!0,configurable:!0}),e.prototype.trackByName=function(e,t){return t.name},e.prototype.onDataSourceModifier=function(e){return yc(this,void 0,void 0,(function(){var t,n,a,s,o,r;return vc(this,(function(l){switch(l.label){case 0:return[4,this.deviceGridService.getDevices(e.columns,e.pagination)];case 1:return t=l.sent(),n=t.res,a=t.data,s=t.paging,[4,this.deviceGridService.getDevicesCount(e.columns,e.pagination)];case 2:return o=l.sent(),[4,this.deviceGridService.getDevicesTotal()];case 3:return r=l.sent(),this.onColumnsChange.emit(e.columns),this.onDeviceQueryStringChange.emit(this.deviceGridService.getDeviceQueryString(e.columns)),[2,{res:n,data:a,paging:s,filteredSize:o,size:r}]}}))}))},e.ctorParameters=function(){return[{type:sm}]},fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"loadingItemsLabel",void 0),fc([t.Input()],e.prototype,"noMatchingItemsLabel",void 0),fc([t.Input("columns")],e.prototype,"_columns",null),fc([t.Input("pagination")],e.prototype,"_pagination",null),fc([t.Input("actionControls")],e.prototype,"_actionControls",null),fc([t.Input()],e.prototype,"selectable",void 0),fc([t.Input("bulkActionControls")],e.prototype,"_bulkActionControls",null),fc([t.Output()],e.prototype,"onColumnsChange",void 0),fc([t.Output()],e.prototype,"onDeviceQueryStringChange",void 0),e=fc([t.Component({selector:"c8y-device-grid",template:'<c8y-data-grid\n [title]="title"\n [loadingItemsLabel]="loadingItemsLabel"\n [noMatchingItemsLabel]="noMatchingItemsLabel"\n [columns]="columns"\n [pagination]="pagination"\n [actionControls]="actionControls"\n [selectable]="selectable"\n [bulkActionControls]="bulkActionControls"\n [serverSideDataCallback]="serverSideDataCallback"\n>\n <ng-container *ngFor="let column of columns; trackBy: trackByName">\n <c8y-column [name]="column.name">\n <ng-container *ngIf="column.filteringConfig">\n <ng-container *c8yFilteringFormRendererDef="let context">\n <c8y-filtering-form [context]="context"></c8y-filtering-form>\n </ng-container>\n </ng-container>\n </c8y-column>\n </ng-container>\n</c8y-data-grid>\n'})],e)}(),rm={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"}}},lm=function(e,t){var n=u.formatDate(new Date(e),"medium",t.currentLang);return t.instant("Device last request:\n{{date}}",{date:n})},im={sendStatusConnected:lm,sendStatusDisconnected:"Connection not monitored",pushStatusConnected:"Connection to device established",pushStatusDisconnected:"Connection to device not established (not supported by device or no connectivity)",maintenance:"Under maintenance"};(Mp=e.PushStatusLabels||(e.PushStatusLabels={}))[Mp.CONNECTED="Push connection: active"]="CONNECTED",Mp[Mp.DISCONNECTED="Push connection: inactive"]="DISCONNECTED",Mp[Mp.UNKNOWN="Push connection: inactive"]="UNKNOWN",(qp=e.SendStatusLabels||(e.SendStatusLabels={}))[qp.AVAILABLE="Send connection: online"]="AVAILABLE",qp[qp.NOT_MONITORED="Send connection: not monitored"]="NOT_MONITORED",qp[qp.UNAVAILABLE="Send connection: offline"]="UNAVAILABLE",qp[qp.UNKNOWN="Send connection status unknown"]="UNKNOWN",qp[qp.MAINTENANCE="Under maintenance"]="MAINTENANCE";var cm,um=function(){function n(e){this.translateService=e}return Object.defineProperty(n.prototype,"node",{set:function(e){this._mo=e.mo||e},enumerable:!0,configurable:!0}),n.prototype.get=function(){return this._mo},n.prototype.ngAfterContentInit=function(){this.requiredAvailability=o.get(this._mo,"c8y_RequiredAvailability"),this.availabilityStatus=o.get(this._mo,"c8y_Availability.status"),this.pushStatus=o.get(this._mo,"c8y_Connection.status")||"UNKNOWN",this.sendStatus=this.availabilityStatus||(this.requiredAvailability?"UNKNOWN":"NOT_MONITORED")},n.prototype.status=function(){return"MAINTENANCE"===this.availabilityStatus||"MAINTENANCE"===this.pushStatus?this.getMaintenanceStatus():this.getSendPushStatus()},n.prototype.getMaintenanceStatus=function(){return{sendStatus:!1,pushStatus:!1,maintenanceStatus:{icon:rm.device.MAINTENANCE.icon,class:rm.device.MAINTENANCE.class,tooltip:im.maintenance}}},n.prototype.getSendPushStatus=function(){return{sendStatus:{icon:rm.sendData[this.sendStatus].icon,class:rm.sendData[this.sendStatus].class,status:this.sendStatus,label:e.SendStatusLabels[this.sendStatus],tooltip:this.getSendStatusTooltip(this._mo)},pushStatus:{icon:rm.push[this.pushStatus].icon,class:rm.push[this.pushStatus].class,status:this.pushStatus,label:e.PushStatusLabels[this.pushStatus],tooltip:this.getPushStatusTooltip("CONNECTED"===this.pushStatus)},maintenanceStatus:!1}},n.prototype.getSendStatusTooltip=function(e){var t=e&&e.c8y_Availability,n=t&&t.lastMessage;return n?im.sendStatusConnected(n,this.translateService):im.sendStatusDisconnected},n.prototype.getPushStatusTooltip=function(e){return e?im.pushStatusConnected:im.pushStatusDisconnected},n.ctorParameters=function(){return[{type:i.TranslateService}]},fc([t.Input("mo")],n.prototype,"node",null),n=fc([t.Component({selector:"device-status",template:'\x3c!-- ATTENTION: keep text format in `tooltip` attribute --\x3e\n<div class="statusContainer"\n tooltip="{{status().sendStatus.tooltip | translate}}\n{{status().pushStatus.tooltip | translate}}"\n container="body"\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'})],n)}(),dm=function(){function e(){}return e=fc([t.NgModule({imports:[Uu,ec.TooltipModule],exports:[um],declarations:[um]})],e)}(),pm=function(){function e(){}return e.prototype.ngOnInit=function(){var e=this.context.property;this.schema=o.cloneDeep(e.filteringConfig.schema),this.form=o.cloneDeep(e.filteringConfig.form),this.model=o.cloneDeep(e.externalFilterQuery||{}),this.options={formDefaults:{ngModelOptions:{debounce:100}}}},e.prototype.canApply=function(){return o.get(this.schemaFormComponent,"$componentScope.vm.ngForm.$invalid")},e.prototype.applyFilter=function(){this.context.applyFilter({externalFilterQuery:this.model})},e.prototype.resetFilter=function(){this.context.resetFilter()},fc([t.Input()],e.prototype,"context",void 0),fc([t.ViewChild(t.forwardRef((function(){return Bd})),{static:!1})],e.prototype,"schemaFormComponent",void 0),e=fc([t.Component({selector:"c8y-filtering-form",template:'<c8y-schema-form\n [schema]="schema"\n [form]="form"\n [model]="model"\n [options]="options"\n></c8y-schema-form>\n<div class="flex-row p-t-16">\n <button\n class="btn btn-default btn-sm m-r-8 flex-grow"\n (click)="resetFilter()"\n title="{{ \'Reset\' | translate }}"\n translate\n >\n Reset\n </button>\n\n <button\n class="btn btn-primary btn-sm flex-grow"\n (click)="applyFilter()"\n [disabled]="canApply()"\n title="{{ \'Apply\' | translate }}"\n translate\n >\n Apply\n </button>\n</div>\n'})],e)}(),mm=function(){function e(){}return e=fc([t.NgModule({imports:[Uu,Hd,dm,Fp],declarations:[om,pm,Gp,zp,Vp,Wp,Zp,Xp,nm],exports:[om,pm,Gp,zp,Vp,Wp,Zp,Xp,nm],entryComponents:[om,pm,Gp,zp,Vp,Wp,Zp,Xp,nm],providers:[sm]})],e)}(),gm=function(){function e(){this.title="Upload file",this.message="Drop file here",this.icon="plus-square",this.loadingMessage="Uploading ...",this.alwaysShow=!1,this.clickToOpen=!0,this.loading=!1,this.progress=-1,this.dropped=new t.EventEmitter,this.isOver=!1,this.fileIsEmpty=!1}return e.prototype.ngOnInit=function(){this.alwaysShow=this.alwaysShow||0===this.area.nativeElement.children.length},e.prototype.toggle=function(e){this.zone.nativeElement.style.height=this.area.nativeElement.offsetHeight+"px",this.onOver()},e.prototype.showPicker=function(e){this.preventDefault(e),this.picker.nativeElement.value="",this.picker.nativeElement.click()},e.prototype.onOver=function(){this.isOver||(this.isOver=!0,document.addEventListener("dragover",this.preventDefault),document.addEventListener("drop",this.preventDefault))},e.prototype.onPick=function(e){this.fileIsEmpty=!1,this.preventDefault(e),this.onFilesSelected(e.target.files)},e.prototype.onDrop=function(e){this.preventDefault(e),this.onFilesSelected(e.dataTransfer.files),this.stopDragging()},e.prototype.onFilesSelected=function(e){this.fileIsEmpty=!1,e&&e.length>0&&(this.isAnyFileEmpty(e)?(this.fileIsEmpty=!0,this.dropped.emit([])):this.dropped.emit(this.compose(e)))},e.prototype.isAnyFileEmpty=function(e){return o.some(Array.from(e),["size",0])},e.prototype.stopDragging=function(){document.removeEventListener("dragover",this.preventDefault),document.removeEventListener("drop",this.preventDefault),this.isOver=!1},e.prototype.preventDefault=function(e){e&&e.preventDefault()},e.prototype.compose=function(e){var t=this;return Array.from(e).map((function(e){return{file:e,readAsJson:function(){return yc(t,void 0,void 0,(function(){var t,n;return vc(this,(function(a){switch(a.label){case 0:return n=(t=JSON).parse,[4,this.read(e,cm.TEXT)];case 1:return[2,n.apply(t,[a.sent()])]}}))}))},readAsText:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,cm.TEXT)]}))}))},readAsArrayBuffer:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,cm.ARRAY_BUFFER)]}))}))},readAsBinaryString:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,cm.BINARY_STRING)]}))}))},readAsDataURL:function(){return yc(t,void 0,void 0,(function(){return vc(this,(function(t){return[2,this.read(e,cm.DATA_URL)]}))}))}}}))},e.prototype.read=function(e,t){return yc(this,void 0,void 0,(function(){var n=this;return vc(this,(function(a){return[2,new Promise((function(a,s){var o=new FileReader;switch(t){case cm.TEXT:o.readAsText(e);break;case cm.ARRAY_BUFFER:o.readAsArrayBuffer(e);break;case cm.BINARY_STRING:o.readAsBinaryString(e);break;case cm.DATA_URL:o.readAsDataURL(e)}o.onload=function(){return n.onLoad(o,a,s)}}))]}))}))},e.prototype.onLoad=function(e,t,n){2===e.readyState&&(e.error&&n(e.error),t(e.result))},fc([t.Input()],e.prototype,"title",void 0),fc([t.Input()],e.prototype,"message",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"loadingMessage",void 0),fc([t.Input()],e.prototype,"alwaysShow",void 0),fc([t.Input()],e.prototype,"clickToOpen",void 0),fc([t.Input()],e.prototype,"loading",void 0),fc([t.Input()],e.prototype,"progress",void 0),fc([t.Output()],e.prototype,"dropped",void 0),fc([t.ViewChild("area",{static:!0})],e.prototype,"area",void 0),fc([t.ViewChild("zone",{static:!1})],e.prototype,"zone",void 0),fc([t.ViewChild("picker",{static:!1})],e.prototype,"picker",void 0),e=fc([t.Component({selector:"c8y-drop-area",template:'<div [ngClass]="{\'form-group\': true,\'has-error\': fileIsEmpty }">\n <small class="form-control-feedback-message">\n <span *ngIf="fileIsEmpty" translate>\n File must not be empty, select another one.\n </span>\n </small>\n</div>\n<div class="drop-zone" [style.pointerEvents]="loading ? \'none\' : \'auto\'" #zone style="padding-bottom: 0px; height: auto; min-height: 120px; max-height: 80vh;"\n (dragleave)="stopDragging()" (drop)="onDrop($event)" (dragover)="onOver()" [style.display]="isOver || alwaysShow || loading ? \'block\' : \'none\'"\n (click)="showPicker($event)">\n <div class="file-placeholder" style="pointer-events: none;" [ngClass]="{ \'drag-over\': isOver }">\n\n <div *ngIf="loading" class="hint-placeholder" style="width: 300px;">\n <p>\n {{loadingMessage}}\n </p>\n <div class="progress progress-striped active" *ngIf="progress !== -1">\n <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" [style.width]="progress + \'%\'"></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">\n <i class="fa fw fa-{{icon}}"></i>\n <p>\n <span>{{title}}</span>\n </p>\n <p>\n <b>{{message}}</b>\n <br>\n <span *ngIf="alwaysShow && clickToOpen" translate>or click to browse your computer.</span>\n </p>\n </div>\n\n </div>\n</div>\n<input #picker *ngIf="clickToOpen" (change)="onPick($event)" multiple type="file" style="opacity: 0; filter: alpha(opacity = 0); height: 0px">\n<div #area [hidden]="isOver || loading" (dragover)="toggle($event)">\n <ng-content></ng-content>\n</div>\n'})],e)}();!function(e){e[e.TEXT=0]="TEXT",e[e.DATA_URL=1]="DATA_URL",e[e.ARRAY_BUFFER=2]="ARRAY_BUFFER",e[e.BINARY_STRING=3]="BINARY_STRING"}(cm||(cm={}));var fm=function(){function e(){}return e=fc([t.NgModule({imports:[Uu],exports:[gm],declarations:[gm]})],e)}(),hm=function(){function e(){this.placeholder="Select item",this.applyLabel="Apply",this.onChange=new t.EventEmitter,this.textFilter="",this.labelText="",this.isOpen=!1,this.filteredItems=[],this.sizeToShowFilter=5,this.itemsSelected=new Set,this.stopClicks=!1}return e.prototype.preventClick=function(e){this.stopClicks&&e.stopPropagation(),this.stopClicks=this.isOpen},e.prototype.isOpenChange=function(e){this.isOpen=e,e?this.updateSelected():this.stopClicks=!1},e.prototype.outterSelected=function(e){var t=this.selected,n=(this.itemsSelected,this.items,function(){return!1});return"function"==typeof t?n=t:Array.isArray(t)&&(n=function(e){return t.indexOf(e)>-1}),n(e)},e.prototype.isSelected=function(e){return this.itemsSelected.has(e)},e.prototype.applyChanges=function(){var e=Array.from(this.itemsSelected.values());this.onChange.emit(e),this.dropdown.hide()},e.prototype.selectAll=function(e){var t=this;this.filteredItems.forEach((function(n){return t.onChangeItem(e,n)}))},e.prototype.allSelected=function(){return this.filteredItems.length===this.itemsSelected.size},e.prototype.onChangeItem=function(e,t){e?this.itemsSelected.add(t):this.itemsSelected.delete(t)},e.prototype.updateFiltered=function(e){if(e){var t=new RegExp(e,"i");this.filteredItems=this.items.filter((function(e){var n=e.name;return t.test(n)}))}else this.filteredItems=this.items},e.prototype.ngOnChanges=function(e){this.isOpen||(e.items||e.selected||e.applyLabel)&&(this.updateSelected(),this.updateLabel())},e.prototype.updateLabel=function(){var e=this,t=this.items.filter((function(t){return e.outterSelected(t)}));"string"==typeof this.selectedLabel?this.labelText=this.selectedLabel:"function"==typeof this.selectedLabel?this.labelText=this.selectedLabel(t):this.labelText=t.map((function(e){return e.name})).join(", ")},e.prototype.updateSelected=function(){var e=this,t=this.itemsSelected,n=this.items;t.clear(),n.forEach((function(n){e.outterSelected(n)&&t.add(n)})),this.filteredItems=n},fc([t.Input()],e.prototype,"placeholder",void 0),fc([t.Input()],e.prototype,"selectedLabel",void 0),fc([t.Input()],e.prototype,"applyLabel",void 0),fc([t.Input()],e.prototype,"items",void 0),fc([t.Input()],e.prototype,"selected",void 0),fc([t.Output()],e.prototype,"onChange",void 0),fc([t.ViewChild(Qi.BsDropdownDirective,{static:!1})],e.prototype,"dropdown",void 0),fc([t.HostListener("click",["$event"])],e.prototype,"preventClick",null),e=fc([t.Component({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">{{ labelText | translate }}</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 />\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="{{ \'All\' | translate }}"\n class="c8y-checkbox input-sm"\n ng-click="vm.toggleSelectAll(); $event.preventDefault()"\n >\n <input\n type="checkbox"\n [checked]="allSelected()"\n (change)="selectAll($event.target.checked)"\n style="margin-top:0;"\n /><span></span> <span span class="label-text " translate>All</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'})],e)}(),ym=function(){function e(){this.click=new t.EventEmitter}return fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),fc([t.Input()],e.prototype,"label",void 0),fc([t.Input()],e.prototype,"icon",void 0),fc([t.Output()],e.prototype,"click",void 0),e=fc([t.Component({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'})],e)}(),vm=function(){function e(){}return fc([t.Input()],e.prototype,"item",void 0),e=fc([t.Component({selector:"c8y-list-item-collapse, c8y-li-collapse",template:"<ng-content></ng-content>\n"})],e)}(),jm=function(){function e(){}return fc([t.Input()],e.prototype,"footer",void 0),e=fc([t.Component({selector:"c8y-list-item-footer, c8y-li-footer",template:'<span *ngIf="footer">{{footer}}</span>\n<ng-content></ng-content>\n'})],e)}(),bm=function(){function e(e){this.element=e,this.active=!1,this.collapsed=!0,this.showFooter=!1,this.showActions=!1,this.showCollapse=!1,this.dropdownUp=!1,this.ACTION_ITEM_HEIGHT=40}return e.prototype.ngAfterContentChecked=function(){this.actions=this.itemActions.toArray(),this.showFooter=null!=this.itemFooter,this.showActions=this.itemActions.length>0,this.showCollapse=null!=this.itemCollapse},e.prototype.showDropdownUp=function(){var e=this.element.nativeElement.getBoundingClientRect();this.dropdownUp=e.bottom+this.itemActions.length*this.ACTION_ITEM_HEIGHT>window.innerHeight},e.ctorParameters=function(){return[{type:t.ElementRef}]},fc([t.Input(),t.HostBinding("class.active")],e.prototype,"active",void 0),fc([t.Input()],e.prototype,"collapsed",void 0),fc([t.ContentChild(jm,{static:!1})],e.prototype,"itemFooter",void 0),fc([t.ContentChildren(ym)],e.prototype,"itemActions",void 0),fc([t.ContentChild(vm,{static:!1})],e.prototype,"itemCollapse",void 0),e=fc([t.Component({selector:"c8y-list-item, c8y-li",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)="collapsed = !collapsed"\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="{{ \'Options\' | 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',host:{class:"c8y-list__item"}})],e)}(),wm=function(){function e(){var e;this.required=!1,this.displayProperty="name",this.name=this.displayProperty,this.selected=((e={id:null})[this.displayProperty]="",e),this.selectedChange=new t.EventEmitter,this.onSearch=new t.EventEmitter,this.KEYCODE_UP=38,this.KEYCODE_DOWN=40,this.KEYCODE_TAB=9,this.KEYCODE_ENTER=13,this.KEYCODE_ESC=27}return e.prototype.onShown=function(){this.searchControl.nativeElement.focus()},e.prototype.ngOnDestroy=function(){this.subscription&&this.subscription.unsubscribe()},e.prototype.ngAfterViewInit=function(){var e=this;this.subscription=a.fromEvent(this.searchControl.nativeElement,"keydown").pipe(s.map((function(t){return e.handleKeyboard(t)})),s.filter((function(e){return e})),s.debounceTime(200),s.map((function(e){return e.target.value})),s.distinctUntilChanged()).subscribe((function(t){var n;e.selectedChange.emit(((n={id:null})[e.displayProperty]=t,n)),e.onSearch.emit(t)}))},e.prototype.handleKeyboard=function(e){var t=e.keyCode;if(![this.KEYCODE_ENTER,this.KEYCODE_DOWN,this.KEYCODE_TAB,this.KEYCODE_UP].includes(t))return t===this.KEYCODE_ESC?(e.stopPropagation(),this.dropdown.hide(),void this.searchControl.nativeElement.blur()):(this.dropdown.show(),e);var n=this.list.toArray(),a=o.findIndex(n,(function(e){return e.active}));if(t===this.KEYCODE_ENTER||t===this.KEYCODE_TAB)a>-1&&(e.preventDefault(),n[a].element.nativeElement.click()),this.dropdown.hide(),this.searchControl.nativeElement.blur();else{this.dropdown.show();var s=t===this.KEYCODE_DOWN?1:-1;a>-1&&(n[a].active=!1),n[a+s]&&(n[a+s].active=!0)}},fc([t.ViewChild("searchControl",{static:!1})],e.prototype,"searchControl",void 0),fc([t.ViewChild("dropdown",{static:!1})],e.prototype,"dropdown",void 0),fc([t.ContentChildren(bm)],e.prototype,"list",void 0),fc([t.Input()],e.prototype,"required",void 0),fc([t.Input()],e.prototype,"placeholder",void 0),fc([t.Input()],e.prototype,"displayProperty",void 0),fc([t.Input()],e.prototype,"name",void 0),fc([t.Input()],e.prototype,"selected",void 0),fc([t.Output()],e.prototype,"selectedChange",void 0),fc([t.Output()],e.prototype,"onSearch",void 0),e=fc([t.Component({selector:"c8y-typeahead",template:'<div\n class="c8y-child-assets-selector dropdown"\n dropdown\n #dropdown="bs-dropdown"\n [autoClose]="true"\n (onShown)="onShown()"\n>\n <div class="input-group input-group-dropdown" dropdownToggle>\n <input\n #searchControl\n type="text"\n class="form-control"\n [required]="required"\n [ngModel]="selected ? selected[displayProperty] : \'\'"\n [value]="selected ? selected[displayProperty] : \'\'"\n [placeholder]="placeholder | translate"\n [name]="name"\n />\n\n <span\n class="label label-info"\n style="position: absolute; right: 40px; top: 10px; z-index: 10;"\n translate\n *ngIf="selected ? selected.id === null && selected[displayProperty].length > 0 : false"\n >New</span\n >\n\n <span class="input-group-btn">\n <button type="button" class="btn btn-clean">\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',viewProviders:[{provide:tc.ControlContainer,useExisting:tc.NgForm}]})],e)}(),Sm=function(){function e(){}return e=fc([t.Component({selector:"c8y-list-group",template:"<ng-content></ng-content>\n\n",host:{class:"c8y-list__group"}})],e)}(),Cm=function(){function e(){}return fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"status",void 0),e=fc([t.Component({selector:"c8y-list-item-icon, c8y-li-icon",template:'<i [c8yIcon]="icon" [ngClass]="status" *ngIf="icon"></i>\n<ng-content></ng-content>',host:{class:"c8y-list__item__icon"}})],e)}(),Im=function(){function e(){}return fc([t.Input()],e.prototype,"body",void 0),e=fc([t.Component({selector:"c8y-list-item-body, c8y-li-body",template:'<span *ngIf="body">{{body}}</span>\n<ng-content></ng-content>\n'})],e)}(),Pm=function(){function e(){this.selected=!1,this.onSelect=new t.EventEmitter}return e.prototype.ngOnChanges=function(e){e.selected&&!e.selected.firstChange&&this.onSelect.emit(e.selected.currentValue)},fc([t.Input()],e.prototype,"selected",void 0),fc([t.Output()],e.prototype,"onSelect",void 0),e=fc([t.Component({selector:"c8y-list-item-checkbox, c8y-li-checkbox",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',host:{class:"c8y-list__item__check"}})],e)}(),Om=function(){function e(){this.selected=!1,this.name="list_item_radio",this.onSelect=new t.EventEmitter}return e.prototype.ngOnChanges=function(e){e.selected&&!e.selected.firstChange&&this.onSelect.emit(e.selected.currentValue)},fc([t.Input()],e.prototype,"selected",void 0),fc([t.Input()],e.prototype,"name",void 0),fc([t.Output()],e.prototype,"onSelect",void 0),e=fc([t.Component({selector:"c8y-list-item-radio, c8y-li-radio",template:'<label class="c8y-checkbox">\n <input\n type="radio"\n [name]="name"\n [checked]="selected"\n (change)="onSelect.emit($event.target.checked); (false)"\n />\n <span></span>\n</label>\n<ng-content></ng-content>\n',host:{class:"c8y-list__item__radio"}})],e)}(),_m=function(){function e(){}return e=fc([t.NgModule({imports:[Uu,Xi.CollapseModule.forRoot(),Qi.BsDropdownModule],declarations:[Sm,bm,Cm,Im,jm,ym,vm,Pm,Om],exports:[Sm,bm,Cm,Im,jm,ym,vm,Pm,Om]})],e)}(),xm=function(){function e(){}return e=fc([t.NgModule({imports:[Qi.BsDropdownModule.forRoot(),Uu,_m,Hd],exports:[hm,wm],declarations:[hm,wm]})],e)}(),Em=function(){function e(e){this.elementRef=e,this.htmlAnchor=this.elementRef.nativeElement,this.htmlAnchor.hasAttribute("target")||this.htmlAnchor.setAttribute("target","_blank")}return Object.defineProperty(e.prototype,"baseHref",{set:function(e){this.htmlAnchor.href=e+"/"+this.c8yGuideHref},enumerable:!0,configurable:!0}),e.ctorParameters=function(){return[{type:t.ElementRef}]},fc([t.Input("c8y-guide-href")],e.prototype,"c8yGuideHref",void 0),e=fc([t.Directive({selector:"[c8y-guide-href]"})],e)}(),km=function(){function e(e,t,n){this.docs=e,this.el=t,this.renderer=n,this.destroyed$=new a.ReplaySubject(1)}return e.prototype.ngOnInit=function(){this.baseUrl=this.docs.getBaseUrl()},e.prototype.ngAfterContentInit=function(){var e=this;this.translateDirective?this.translateDirective.htmlUpdateEvent.pipe(s.takeUntil(this.destroyed$)).subscribe((function(){e.replaceAnchorAttributes()})):this.replaceAnchorAttributes()},e.prototype.replaceAnchorAttributes=function(){var e=this;this.findGuideAnchors(this.el.nativeElement).forEach((function(t){var n=e.baseUrl+"/"+t.getAttribute("c8y-guide-href");e.renderer.setAttribute(t,"href",n),t.hasAttribute("target")||e.renderer.setAttribute(t,"target","_blank")}))},e.prototype.findGuideAnchors=function(e){var t=this,n=[];return"A"===e.nodeName&&e.attributes.getNamedItem("c8y-guide-href")?n.push(e):e.childNodes&&e.childNodes.length>0&&e.childNodes.forEach((function(e){var a=t.findGuideAnchors(e);a&&(n=bc(n,a))})),n},e.prototype.ngAfterViewInit=function(){var e=this;this.links.forEach((function(t){t.baseHref=e.baseUrl}))},e.prototype.ngOnDestroy=function(){this.destroyed$.next(!0),this.destroyed$.complete()},e.ctorParameters=function(){return[{type:ap},{type:t.ElementRef},{type:t.Renderer2}]},fc([t.ContentChildren(Em,{descendants:!0})],e.prototype,"links",void 0),fc([t.ContentChild(yu,{static:!1})],e.prototype,"translateDirective",void 0),e=fc([t.Component({selector:"[c8y-guide-docs]",template:'<ng-container *ngIf="!!baseUrl">\n <ng-content></ng-content>\n</ng-container>\n'})],e)}(),Am=function(){function e(){}return e=fc([t.NgModule({declarations:[Em,km],imports:[u.CommonModule],exports:[Em,km],providers:[ap]})],e)}(),Tm=new t.InjectionToken("Hook Dynamic Component"),Dm=new t.InjectionToken("Hook Dynamic Component @deprecated"),Nm=function(e){function o(t,n){var s=e.call(this)||this;return s.injector=t,s.refreshTrigger=new a.Subject,s.state$=new a.BehaviorSubject(new Set),s.items$=Sc([function(){return s.injector.get(Tm,[])},function(){return s.getComponentsViaDeprecatedHook()}],n,!1),s.items$.subscribe((function(e){e.forEach((function(e){s.state.add(e)})),s.emitNewState()})),s}return mc(o,e),o.prototype.getComponentsViaDeprecatedHook=function(){var e=this.injector.get(Dm,[]);return e&&e.length&&"production"!==__MODE__&&console.warn("HOOK_COMPONENT is now deprecated. Use HOOK_COMPONENTS instead."),e},o.prototype.refresh=function(){this.refreshTrigger.next(1)},Object.defineProperty(o.prototype,"state",{get:function(){return this.state$.value},enumerable:!0,configurable:!0}),o.prototype.getById$=function(e){return this.state$.pipe(s.filter((function(e){return e.size>0})),s.mergeMap((function(t){return a.of(Array.from(t).find((function(t){return t.id===e})))})),s.take(1))},o.prototype.add=function(e){this.state.add(e),this.emitNewState()},o.prototype.remove=function(e){this.state.delete(e),this.emitNewState()},o.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},o.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new o(t.ɵɵinject(t.INJECTOR),t.ɵɵinject(n.Router))},token:o,providedIn:"root"}),o=fc([t.Injectable({providedIn:"root"})],o)}(_c),Mm=function(){function e(e,t){this.componentFactoryResolver=e,this.dynamicComponentService=t,this.mode="component",this.notFoundError=!0,this.expandErrorDetails=!1}return e.prototype.ngOnChanges=function(){var e=this;this.dynamicComponentService.getById$(this.componentId).subscribe((function(t){return e.loadComponent(t)}))},e.prototype.loadComponent=function(e){try{this.error=void 0;var t=this.componentFactoryResolver.resolveComponentFactory("component"===this.mode?e.component:e.configComponent);this.host.clear(),this.host.createComponent(t).instance.config=this.config}catch(e){this.error=e}},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:Nm}]},fc([t.Input()],e.prototype,"componentId",void 0),fc([t.Input()],e.prototype,"config",void 0),fc([t.Input()],e.prototype,"mode",void 0),fc([t.Input()],e.prototype,"notFoundError",void 0),fc([t.ViewChild("host",{read:t.ViewContainerRef,static:!0})],e.prototype,"host",void 0),e=fc([t.Component({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'})],e)}(),qm=function(){function e(){}return e=fc([t.NgModule({declarations:[Mm],imports:[u.CommonModule,Xi.CollapseModule,n.RouterModule.forChild([]),Su],exports:[Mm],providers:[Nm]})],e)}(),Lm=function(){function e(){}return fc([t.ViewChild("template",{static:!1})],e.prototype,"template",void 0),e=fc([t.Component({selector:"c8y-dashboard-child-action",template:"<ng-template #template>\n <li>\n <ng-content></ng-content>\n </li>\n</ng-template>\n"})],e)}(),Rm=function(){function e(){}return e=fc([t.Component({selector:"c8y-dashboard-child-title",template:'<div class="card-title">\n <ng-content></ng-content>\n</div>\n'})],e)}(),$m=function(){function e(e,n){this.element=e,this.sanitizer=n,this.columns=12,this.gap=12,this.rows="auto",this.dashboardChange=new t.EventEmitter,this.lastRow=1,this.DEFAULT_ROW_SIZE=68}return Object.defineProperty(e.prototype,"columnSize",{get:function(){return this.dashboardRect.width/this.columns},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"rowSize",{get:function(){return"auto"===this.rows?this.DEFAULT_ROW_SIZE:this.calculateRowSize()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inlineStyle",{get:function(){return this.sanitizer.bypassSecurityTrustStyle("\n -ms-grid-columns: (1fr)["+this.columns+"];\n grid-template-columns: repeat("+this.columns+", 1fr);\n "+("auto"!==this.rows?"grid-template-rows: repeat("+this.rows+", 1fr);":"")+"\n grid-auto-rows: "+(this.rowSize+this.gap)+"px;\n -ms-grid-rows: ("+(this.rowSize+this.gap)+"px)["+("auto"===this.rows?this.lastRow:this.rows)+"];\n margin: -"+this.gap+"px;\n ")},enumerable:!0,configurable:!0}),e.prototype.ngAfterContentInit=function(){this.onResize(),this.getLastRow()},e.prototype.onResize=function(){this.updateRectSize()},e.prototype.getLastRow=function(){var e=1;this.children.forEach((function(t){e<t.y+t.width&&(e=t.y+t.width)})),this.lastRow=e+1},e.prototype.updateRectSize=function(){var e=this.element.nativeElement;this.dashboardRect=e.getBoundingClientRect()},e.prototype.emitChange=function(e){this.dashboardChange.emit({source:e,children:this.children.toArray()})},e.prototype.calculateRowSize=function(){return this.dashboardRect.height/this.rows},e.ctorParameters=function(){return[{type:t.ElementRef},{type:nc.DomSanitizer}]},fc([t.ContentChildren(t.forwardRef((function(){return Um})))],e.prototype,"children",void 0),fc([t.Input()],e.prototype,"columns",void 0),fc([t.Input()],e.prototype,"gap",void 0),fc([t.Input()],e.prototype,"rows",void 0),fc([t.Output()],e.prototype,"dashboardChange",void 0),fc([t.HostBinding("attr.style")],e.prototype,"inlineStyle",null),fc([t.HostListener("window:resize")],e.prototype,"onResize",null),e=fc([t.Component({selector:"c8y-dashboard",template:"<ng-content></ng-content>\n",host:{class:"c8y-grid-dashboard dashboard-grid"},changeDetection:t.ChangeDetectionStrategy.OnPush})],e)}(),Fm=function(){function e(e){this.MIN_WIDTH=2,this.MIN_HEIGHT=1,this.PIXEL_SIZE_THRESHOLD=10,this.diffX=0,this.diffY=0,this.dashboard=e.dashboard,this.children=e.dashboard.children?e.dashboard.children.filter((function(t){return e!==t})):[],this.child=e}return Object.defineProperty(e.prototype,"resize$",{get:function(){var e=this;return this.child.dragSource.moved.pipe(s.map((function(t){return e.getPixelSize(t)})),s.tap((function(t){return e.setPixelSize(t)})),s.map((function(t){return e.getDimensionSize(t)})),s.distinctUntilChanged((function(e,t){return e.width===t.width&&e.height===t.height})),s.map((function(t){return e.setDimension(t)})),this.arrangePipe())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"drag$",{get:function(){var e=this;return this.child.dragSource.moved.pipe(s.map((function(t){return e.getDimensionPosition(t)})),s.filter((function(t){return t.x>=0&&t.x<=e.dashboard.columns-e.child.width&&t.y>=0})),s.distinctUntilChanged((function(e,t){return e.x===t.x&&e.y===t.y})),this.arrangePipe())},enumerable:!0,configurable:!0}),e.prototype.findFreeDimension=function(){var e=-1,t=0,n=!1,a=this.child,s=a.width,o=a.height;if(s>this.dashboard.columns)throw new Error("The child does not fit on the current dashboard.");do{for(t=0,e++;t+s<=this.dashboard.columns;){if(0===this.getCollided({x:t,y:e,width:s,height:o}).length){n=!0;break}t++}}while(!n);return{x:t,y:e,width:s,height:o}},e.prototype.collapseUpAll=function(){return o.sortBy(bc([this.child],this.children),["y"]).forEach((function(t){var n=new e(t),a=n.collapseUp(t);n.setDimension(a)}))},e.prototype.arrangeAll=function(t){var n=t.current,a=t.scan,s=t.spacing,r=t.origin;return this.getCollided(n,o.sortBy(a,["y"])).map((function(t){return new e(t).setDimension(gc({},t,{y:s})),{current:t,scan:a.filter((function(e){return e!==t})),spacing:t.y+t.height,origin:r}}))},e.prototype.arrangePipe=function(){var e=this;return a.pipe(s.map((function(t){return{current:t,scan:e.children,spacing:t.y+t.height,origin:gc({},t)}})),s.expand((function(t){return e.arrangeAll(t)})),s.map((function(e){return e.origin})),s.map((function(t){return e.setDimension(t,!0)})),s.tap((function(){return e.collapseUpAll()})),s.tap((function(){return e.dashboard.getLastRow()})))},e.prototype.collapseUp=function(e){for(var t=e.y;t>0&&0===this.getCollided(gc({},e,{y:t-1})).length;)t--;return gc({},e,{y:t})},e.prototype.setDimension=function(e,t){if(void 0===t&&(t=!1),!(t&&this.getCollided(e).length>0))return this.child.x=e.x,this.child.y=e.y,e.width>=this.MIN_WIDTH&&e.x+e.width<=this.dashboard.columns?this.child.width=e.width:e.width<this.MIN_WIDTH?e.width=this.MIN_WIDTH:e.width=this.dashboard.columns-e.x,e.height>=this.MIN_HEIGHT?this.child.height=e.height:e.height=this.MIN_WIDTH,e},e.prototype.setPixelSize=function(e){var t=e.width,n=e.height;t>=this.dashboard.columnSize*this.MIN_WIDTH-this.dashboard.gap&&(this.child.pxWidth=t+this.PIXEL_SIZE_THRESHOLD),n>=this.dashboard.rowSize*this.MIN_HEIGHT-this.dashboard.gap&&(this.child.pxHeight=n+this.PIXEL_SIZE_THRESHOLD)},e.prototype.getPixelSize=function(e){var t=e.source.element.nativeElement.parentNode;if(!this.diffX){var n=t.getBoundingClientRect();this.diffX=n.left,this.diffY=n.top}var a=e.pointerPosition,s=a.x,o=a.y;return{width:Math.round(s-this.diffX),height:Math.round(o-this.diffY),pointer:{x:s,y:o}}},e.prototype.getDimensionSize=function(e){var t=this.child,n=t.x,a=t.y,s=this.dashboard.dashboardRect,o=this.dashboard.columnSize,r=this.dashboard.rowSize+this.dashboard.gap;return{x:n,y:a,width:Math.round((e.pointer.x-s.left+this.dashboard.gap)/o)-n,height:Math.round((e.pointer.y-s.top+this.dashboard.gap)/r)-a}},e.prototype.getDimensionPosition=function(e){var t=e.source.element.nativeElement.nextElementSibling;if(!this.diffX){var n=t.getBoundingClientRect();this.diffX=e.pointerPosition.x-n.left,this.diffY=e.pointerPosition.y-n.top}var a=e.pointerPosition.x-this.diffX,s=e.pointerPosition.y-this.diffY,o=this.child,r=o.width,l=o.height,i=this.dashboard.dashboardRect,c=this.dashboard.columnSize,u=this.dashboard.rowSize+this.dashboard.gap/2;return{x:Math.round((a-i.left)/c),y:Math.round((s-i.top)/u),width:r,height:l}},e.prototype.doesCollide=function(e,t){return void 0!==t.x&&!(e.y+e.height-1<t.y||e.y>t.y+t.height-1||e.x+e.width-1<t.x||e.x>t.x+t.width-1)},e.prototype.getCollided=function(e,t){var n=this;return void 0===t&&(t=this.children),t.filter((function(t){return n.doesCollide(e,t)}))},e}(),Um=function(){function e(e,n,a){this.dashboard=e,this.sanitizer=n,this.element=a,this.actions=[],this.isResize=!1,this.isDragging=!1,this.klasses={},this._pxWidth="100%",this._pxHeight="100%",this.width=1,this.height=1,this.margin=12,this.isFrozen=!1,this.useIntersection=!1,this.changeStart=new t.EventEmitter,this.changeEnd=new t.EventEmitter,this.class={},this.intersected=!1}return Object.defineProperty(e.prototype,"pxWidth",{set:function(e){this._pxWidth=e+"px"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"pxHeight",{set:function(e){this._pxHeight=e+"px"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"inlineStyle",{get:function(){return this.sanitizer.bypassSecurityTrustStyle("\n grid-column-start: "+(this.x+1)+";\n -ms-grid-column: "+(this.x+1)+";\n grid-row-start: "+(this.y+1)+";\n -ms-grid-row: "+(this.y+1)+";\n grid-column-end: span "+this.width+";\n -ms-grid-column-span: "+this.width+";\n grid-row-end: span "+this.height+";\n -ms-grid-row-span: "+this.height+";\n display: block;\n margin: "+(this.margin||12)+"px;\n ")},enumerable:!0,configurable:!0}),e.prototype.ngOnChanges=function(){this.klasses=gc({card:!0,"card-dashboard":!0,disabled:this.isFrozen,"on-resize":this.isResize},this.class)},e.prototype.ngOnInit=function(){var e=this;if(void 0!==this.x&&void 0!==this.y||setTimeout((function(){return e.setDynamicDimension()})),this.useIntersection&&"IntersectionObserver"in window){var t=new IntersectionObserver((function(n){return e.intersected=e.childInView(n[0],t)}));t.observe(this.element.nativeElement)}else this.intersected=!0},e.prototype.setDynamicDimension=function(){var e=new Fm(this).findFreeDimension(),t=e.x,n=e.y;this.x=t,this.y=n},e.prototype.resizeStarted=function(e){this.isResize=!0,this.dashboard.updateRectSize(),this.dragSource=e.source;var t=new Fm(this);this.changeSubscription=t.resize$.subscribe(),this.changeStart.emit(this),this.ngOnChanges()},e.prototype.dragStarted=function(e){this.isDragging=!0,this.dashboard.updateRectSize(),this.dragSource=e.source;var t=new Fm(this);this.changeSubscription=t.drag$.subscribe(),this.changeStart.emit(this)},e.prototype.reset=function(e){this.isResize=!1,this.isDragging=!1,this._pxWidth="100%",this._pxHeight="100%",this.ngOnChanges(),e&&e.source.reset(),this.changeSubscription&&(this.changeSubscription.unsubscribe(),this.dashboard.emitChange(this),this.changeEnd.emit(this))},e.prototype.childInView=function(e,t){return!!e.isIntersecting&&(t.unobserve(e.target),!0)},e.ctorParameters=function(){return[{type:$m,decorators:[{type:t.Inject,args:[t.forwardRef((function(){return $m}))]}]},{type:nc.DomSanitizer},{type:t.ElementRef}]},fc([t.ContentChildren(Lm)],e.prototype,"actions",void 0),fc([t.Input()],e.prototype,"x",void 0),fc([t.Input()],e.prototype,"y",void 0),fc([t.Input()],e.prototype,"width",void 0),fc([t.Input()],e.prototype,"height",void 0),fc([t.Input()],e.prototype,"data",void 0),fc([t.Input()],e.prototype,"margin",void 0),fc([t.Input()],e.prototype,"isFrozen",void 0),fc([t.Input()],e.prototype,"useIntersection",void 0),fc([t.Output()],e.prototype,"changeStart",void 0),fc([t.Output()],e.prototype,"changeEnd",void 0),fc([t.Input()],e.prototype,"class",void 0),fc([t.HostBinding("attr.style")],e.prototype,"inlineStyle",null),e=fc([t.Component({selector:"c8y-dashboard-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',host:{class:"dashboard-grid-child"}}),hc(0,t.Inject(t.forwardRef((function(){return $m}))))],e)}(),Gm=function(){function e(){this.settings={isFrozen:!1,isDisabled:!1,widgetMargin:12,translateWidgetTitle:!1,defaultHeight:4,defaultWidth:4,allowFullscreen:!1,canDelete:!0,isLoading:!1},this.onAddWidget=new t.EventEmitter,this.onEditWidget=new t.EventEmitter,this.onDeleteWidget=new t.EventEmitter,this.onChangeDashboard=new t.EventEmitter,this.onEditDashboard=new t.EventEmitter,this.onDeleteDashboard=new t.EventEmitter,this.onFreeze=new t.EventEmitter,this.onChangeStart=new t.EventEmitter,this.onChangeEnd=new t.EventEmitter}return Object.defineProperty(e.prototype,"_settings",{set:function(e){this.settings=gc({},this.settings,e)},enumerable:!0,configurable:!0}),e.prototype.toggleFullscreen=function(){var e=document.body,t=document;this.fullScreen()?t.exitFullscreen?t.exitFullscreen():t.msExitFullscreen?t.msExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.webkitExitFullscreen&&t.webkitExitFullscreen():e.requestFullscreen?e.requestFullscreen():e.msRequestFullscreen?e.msRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen&&e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)},e.prototype.fullScreen=function(){var e=document;return!!(e.fullscreenElement||e.mozFullScreenElement||e.webkitFullscreenElement||e.msFullscreenElement)},fc([t.Input()],e.prototype,"widgets",void 0),fc([t.Input()],e.prototype,"context",void 0),fc([t.Input()],e.prototype,"contextDashboard",void 0),fc([t.Input("settings")],e.prototype,"_settings",null),fc([t.Output()],e.prototype,"onAddWidget",void 0),fc([t.Output()],e.prototype,"onEditWidget",void 0),fc([t.Output()],e.prototype,"onDeleteWidget",void 0),fc([t.Output()],e.prototype,"onChangeDashboard",void 0),fc([t.Output()],e.prototype,"onEditDashboard",void 0),fc([t.Output()],e.prototype,"onDeleteDashboard",void 0),fc([t.Output()],e.prototype,"onFreeze",void 0),fc([t.Output()],e.prototype,"onChangeStart",void 0),fc([t.Output()],e.prototype,"onChangeEnd",void 0),e=fc([t.Component({selector:"c8y-widgets-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\x3c!-- empty state --\x3e\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\x3c!-- /.empty settings --\x3e\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',host:{style:"\n display: block;\n ",class:"dashboard c8y-grid-dashboard"}})],e)}(),Bm=function(){function e(){}return e=fc([t.NgModule({declarations:[Um,$m,Rm,Lm,Gm],imports:[Uu,zu,qm,cc.DragDropModule,Qi.BsDropdownModule.forRoot(),mp,Am],exports:[$m,Um,Rm,Lm,Gm]})],e)}(),zm=function(){function e(e){this.templateRef=e}return e.ctorParameters=function(){return[{type:t.TemplateRef}]},fc([t.Input("c8yStepperIcon")],e.prototype,"name",void 0),e=fc([t.Directive({selector:"ng-template[c8yStepperIcon]"})],e)}(),Hm=function(e){function n(){var n=null!==e&&e.apply(this,arguments)||this;return n.disableDefaultIcons={edit:!0,done:!0},n.onStepChange=new t.EventEmitter,n._iconOverrides={},n._stepIndex=new a.Subject,n}var s;return mc(n,e),s=n,n.prototype.ngAfterContentInit=function(){var e=this;this._icons.forEach((function(t){var n=t.name,a=t.templateRef;return e._iconOverrides[n]=a})),this._stepIndexSubscription=this._stepIndex.subscribe((function(t){return e.onStepChange.emit(t)}))},n.prototype.ngOnDestroy=function(){this._stepIndexSubscription&&!this._stepIndexSubscription.closed&&this._stepIndexSubscription.unsubscribe()},n.prototype.getIndicatorType=function(e,t){var n=t;switch(this._getIndicatorType(e,t)){case dc.STEP_STATE.EDIT:this.disableDefaultIcons.edit||(n=dc.STEP_STATE.EDIT);break;case dc.STEP_STATE.DONE:n=this.disableDefaultIcons.done?"_done":dc.STEP_STATE.DONE}return n},n.prototype.setIndex=function(e){this._stepIndex.next(e)},fc([t.Input()],n.prototype,"disableDefaultIcons",void 0),fc([t.Input()],n.prototype,"customClasses",void 0),fc([t.Output()],n.prototype,"onStepChange",void 0),fc([t.ContentChildren(zm,{descendants:!0})],n.prototype,"_icons",void 0),n=s=fc([t.Component({selector:"c8y-stepper",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 tooltip="{{ step.label | translate }}"\n placement="bottom"\n container="body"\n >\n </c8y-stepper-progress>\n </li>\n</ul>\n<ng-container [ngTemplateOutlet]="selected.content"></ng-container>\n',providers:[{provide:dc.CdkStepper,useExisting:s}]})],n)}(dc.CdkStepper),Vm=function(){function e(){this.onStepClicked=new t.EventEmitter}return e.prototype.stepSelected=function(){this.onStepClicked.emit(this.index)},fc([t.Input()],e.prototype,"iconOverrides",void 0),fc([t.Input()],e.prototype,"index",void 0),fc([t.Input()],e.prototype,"selected",void 0),fc([t.Input()],e.prototype,"state",void 0),fc([t.Output()],e.prototype,"onStepClicked",void 0),e=fc([t.Component({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'})],e)}(),Km=function(){function e(e,n){this.stepper=e,this.step=n,this.pending=!1,this.onCancel=new t.EventEmitter,this.onNext=new t.EventEmitter,this.onBack=new t.EventEmitter,this.showBtns={cancel:!1,back:!1,next:!1},this.disabled=!1}return e.prototype.ngAfterContentInit=function(){var e=this;this.showBtns.cancel=this.onCancel.observers.length>0,this.stepper&&this.stepper.steps&&this.step&&(this.showBtns.back=this.stepper.steps.first!==this.step,this.showBtns.next=this.stepper.steps.last!==this.step),this.step&&this.step.stepControl&&(this.disabled=this.step.stepControl.invalid,this.statusChangeSubscription=this.step.stepControl.statusChanges.subscribe((function(t){e.disabled=e.step.stepControl.invalid})))},e.prototype.ngOnChanges=function(e){e&&e.pending&&(this.disabled=e.pending.currentValue)},e.prototype.ngOnDestroy=function(){this.statusChangeSubscription&&!this.statusChangeSubscription.closed&&this.statusChangeSubscription.unsubscribe()},e.prototype.cancel=function(){this.onCancel.emit()},e.prototype.next=function(){this.onNext.observers.length>0?this.onNext.emit({stepper:this.stepper,step:this.step}):this.stepper.next()},e.prototype.back=function(){this.onBack.observers.length>0?this.onBack.emit({stepper:this.stepper,step:this.step}):this.stepper.previous()},e.ctorParameters=function(){return[{type:Hm,decorators:[{type:t.Host}]},{type:dc.CdkStep,decorators:[{type:t.Host}]}]},fc([t.Input()],e.prototype,"labels",void 0),fc([t.Input()],e.prototype,"pending",void 0),fc([t.Output()],e.prototype,"onCancel",void 0),fc([t.Output()],e.prototype,"onNext",void 0),fc([t.Output()],e.prototype,"onBack",void 0),e=fc([t.Component({selector:"c8y-stepper-buttons",template:'<div class="text-center">\n <button *ngIf="showBtns.cancel" (click)="cancel()" type="button" class="btn btn-default">\n <span>{{labels?.cancel || \'Cancel\' | translate}}</span>\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>{{ labels?.back || \'Back\' | translate }}</span>\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>{{labels?.next || \'Next\' | translate }}</span>\n </button>\n</div>\n'}),hc(0,t.Host()),hc(1,t.Host())],e)}(),Wm={displayDefaultIndicatorType:!1},Ym=function(){function e(){}return e=fc([t.NgModule({imports:[Uu,dc.CdkStepperModule,ec.TooltipModule],declarations:[Hm,zm,Vm,Km],exports:[Hm,dc.CdkStep,zm,Km],providers:[{provide:dc.STEPPER_GLOBAL_OPTIONS,useValue:Wm}]})],e)}();try{require("ngx-bootstrap/datepicker/bs-datepicker.css")}catch(e){}var Zm,Jm=function(){function e(){}var n;return n=e,e.forRoot=function(){return{ngModule:n,providers:bc(Uu.providers(),wp.providers())}},e=n=fc([t.NgModule({exports:[zu,Ku,Xu,Op,nd,Uu,Fp,mm,fm,mp,wp,md,dp,Zd,id,xm,Ip,Xd,Hd,dm,Am,Ym,qm,Bm,_m]})],e)}(),Xm=new t.InjectionToken("RouteFactory"),Qm=function(){function e(e,t){var n=this;this.router=t,Sc(e).subscribe((function(e){n.addRoute(e)}))}return e.prototype.addRoute=function(e){this.addRoutes(Array.isArray(e)?e:[e])},e.prototype.addRoutes=function(e){var t=this,n=this.router.config.find((function(e){return"**"===e.path}));this.router.resetConfig(bc(this.router.config.filter((function(e){return"**"!==e.path})),e.map((function(e){return t.convertRoute(t.router.config,e)})),[n]).filter(Boolean))},e.prototype.convertRoute=function(e,t){if(!t.context)return t;e.forEach((function(e){e.data&&e.data.context===t.context&&(e.children=bc([t],e.children||[]))}))},e.ctorParameters=function(){return[{type:Array,decorators:[{type:t.Optional},{type:t.Inject,args:[Xm]}]},{type:n.Router}]},e.ngInjectableDef=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(Xm,8),t.ɵɵinject(n.Router))},token:e,providedIn:"root"}),e=fc([t.Injectable({providedIn:"root"}),hc(0,t.Optional()),hc(0,t.Inject(Xm))],e)}(),eg=function(){function e(e,t){this.injector=e,this.router=t}return Object.defineProperty(e.prototype,"routerStateSnapshot",{get:function(){return this.router.routerState.snapshot},enumerable:!0,configurable:!0}),e.prototype.resolve=function(e){var t=this;return a.from(e.routeConfig.children||[]).pipe(s.mergeMap((function(n){return a.from(t.getGuards(n)).pipe(s.map((function(n){return n.canActivate(e,t.routerStateSnapshot)})),s.mergeMap((function(e){return a.isObservable(e)?e:e&&"function"==typeof e.then?a.from(e):a.of(e)})),s.tap((function(e){Array.isArray(e)&&(n.tabs=e)})),s.every((function(e){return!!e})),s.filter((function(e){return e})),s.mergeMap((function(){return Array.isArray(n.tabs)?a.from(n.tabs):a.of(n)})),s.map((function(t){return t.label?{label:t.label,icon:t.icon,path:e.url.join("/")+"/"+t.path,priority:t.priority}:void 0})))})),s.filter((function(e){return!!e})),s.toArray())},e.prototype.getGuards=function(e){var t=this,n=(e.canActivate||[]).map((function(e){return t.injector.get(e)}));return e.data&&e.data.showIf&&n.push({canActivate:e.data.showIf}),n},e.ctorParameters=function(){return[{type:t.Injector},{type:n.Router}]},e=fc([t.Injectable()],e)}();(Zm=e.ViewContext||(e.ViewContext={})).Device="device/:id",Zm.Group="group/:id",Zm.User="users/:id",Zm.Application="applications/:id",Zm.SubscribedApplications="subscribedApplications/:id",Zm.Tenant="tenants/:id";var tg=function(){function t(){}return t.contextToService=function(e){return t.services.get(e)},t.services=new Map([[e.ViewContext.Device,l.InventoryService],[e.ViewContext.Group,l.InventoryService],[e.ViewContext.User,l.UserService],[e.ViewContext.Application,l.ApplicationService],[e.ViewContext.SubscribedApplications,l.ApplicationService],[e.ViewContext.Tenant,l.TenantService]]),t}(),ng=function(){function e(e,t,n,s,o,r){this.tabsResolver=e,this.tabsService=t,this.route=n,this.router=s,this.apiService=o,this.injector=r,this.lastAddedTabs=[],this.refreshTrigger=new a.Subject}return e.prototype.ngOnInit=function(){var e=this;this.routerSubscription=this.router.events.pipe(s.filter((function(e){return e instanceof n.NavigationEnd}))).subscribe((function(){return e.redirectToFirstTab()}));var t=this.refreshTrigger.pipe(s.merge(this.updatedContext()),s.switchMap((function(){return e.tabsResolver.resolve(e.route.snapshot)})));this.dataSubscription=this.route.data.pipe(s.map((function(e){return e.tabs})),s.merge(t)).subscribe((function(t){return e.updateTabs(t)}))},e.prototype.ngOnDestroy=function(){var e=this;this.dataSubscription.unsubscribe(),this.routerSubscription.unsubscribe(),this.lastAddedTabs.forEach((function(t){return e.tabsService.remove(t)}))},e.prototype.refreshTabs=function(){this.refreshTrigger.next()},e.prototype.updatedContext=function(){var e=this.route.snapshot.data,t=tg.contextToService(e.context);if(t){var n=this.injector.get(t).getDetailUrl(e.contextData).replace(/\d+/g,"?\\d*"),s=new RegExp(n,"i"),o=new RegExp(n+"/child","i");return this.apiService.hookResponse((function(e){var t=e.url,n=e.method,a=s.test(t)&&["POST","PUT"].includes(n),r=o.test(t)&&["POST","DELETE"].includes(n);return a||r}))}return a.NEVER},e.prototype.updateTabs=function(e){var t=this;void 0===e&&(e=[]),this.lastAddedTabs.forEach((function(e){return t.tabsService.remove(e)})),this.lastAddedTabs=e,e.forEach((function(e){return t.tabsService.add(e)})),this.redirectToFirstTab()},e.prototype.redirectToFirstTab=function(){var e=this;this.needsRedirect()&&this.tabsService.firstTab$.subscribe((function(t){t&&e.router.navigateByUrl(t.path,{replaceUrl:!0})}))},e.prototype.needsRedirect=function(){return 2===this.router.parseUrl(this.router.url).root.children[n.PRIMARY_OUTLET].segments.length},e.ctorParameters=function(){return[{type:eg},{type:Zc},{type:n.ActivatedRoute},{type:n.Router},{type:r.ApiService},{type:t.Injector}]},e=fc([t.Component({selector:"c8y-context-route",template:"<router-outlet></router-outlet>\n"})],e)}(),ag=function(){function e(e){this.injector=e,this.caches=new Map}return e.prototype.canActivate=function(e){var t=e.paramMap.get("id"),n=this.service(e);return this.clearDetailCached(n,t),this.detailCached(n,t).pipe(s.tap((function(t){return e.data=gc({},e.data,{contextData:t})})),s.map((function(){return!0})),s.catchError((function(e){return a.of(!1)})))},e.prototype.service=function(e){var t=tg.contextToService(e.data.context);return this.injector.get(t)},e.prototype.detailCached=function(e,t){var n=this.getCache(e),o=n[t];return o||(o=a.from(e.detail(t)).pipe(s.map((function(e){return e.data})),s.shareReplay(1)),n[t]=o),o},e.prototype.clearDetailCached=function(e,t){delete this.getCache(e)[t]},e.prototype.getCache=function(e){var t=this.caches.get(e);return t||(t={},this.caches.set(e,t)),t},e.ctorParameters=function(){return[{type:t.Injector}]},e=fc([t.Injectable()],e)}(),sg=function(){function e(){}return e=fc([t.Component({selector:"empty",template:""})],e)}(),og=[{path:"users/new",component:sg},{path:"tenants/new",component:sg}];for(var rg in e.ViewContext){var lg=e.ViewContext[rg];og.push({path:lg,component:ng,canActivate:[ag],data:{context:lg,contextData:{}},resolve:{tabs:eg}})}var ig=function(){function e(e){}var a;return a=e,e.providers=function(){return[ag,eg,Qm]},e.forRoot=function(){return{ngModule:a,providers:a.providers()}},e.ctorParameters=function(){return[{type:Qm}]},e=a=fc([t.NgModule({declarations:[ng,sg],imports:[n.RouterModule.forRoot(og),mp,Uu],entryComponents:[ng,sg]})],e)}(),cg=function(){function e(){}return fc([t.Input()],e.prototype,"icon",void 0),fc([t.Input()],e.prototype,"label",void 0),e=fc([t.Component({selector:"c8y-quick-link",template:'<div class="card-block text-center" 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'})],e)}(),ug=function(){function e(){}return e=fc([t.NgModule({declarations:[cg],imports:[Jm],exports:[cg],providers:[]})],e)}(),dg=function(e){function t(){var t=e.call(this)||this,n=t;return t.name="custom",t.header="Custom",t.filterable=!0,t.filteringConfig={schema:{type:"object",properties:{exists:{type:"boolean",default:!1,title:"Only rows where value is defined"},equals:{type:"array",items:{type:"string"}}}},form:[{key:"exists"},{key:"equals",title:"Only rows where value equals to:",add:"Or",items:[{key:"equals[]",notitle:!0,placeholder:"e.g. value, you can use an asterisk (*) as wildcard character"}]}],getFilter:function(e){var t={};return e.exists&&(t.__has=n.path),e.equals&&(t[n.path]={__in:e.equals}),t}},t.sortable=!0,t}return mc(t,e),Object.defineProperty(t.prototype,"sortingConfig",{get:function(){return{pathSortingConfigs:[{path:this.path}]}},enumerable:!0,configurable:!0}),t}(Up);e.ActionBarService=Ec,e.ActionService=Ac,e.AlarmsDeviceGridColumn=am,e.AlertService=$c,e.AppStateService=Bc,e.AuthenticationModule=Zd,e.BaseDeviceGridColumn=Up,e.BootstrapComponent=Jc,e.BreadcrumbService=Qc,e.C8yStepper=Hm,e.C8yStepperButtons=Km,e.CachedLocaleDictionaryService=mu,e.CellRendererContext=_p,e.CellRendererDefDirective=xp,e.CommonModule=Uu,e.ConfirmModalComponent=cd,e.ContextRouteComponent=ng,e.CoreModule=Jm,e.CustomDeviceGridColumn=dg,e.DashboardChildActionComponent=Lm,e.DashboardChildChange=Fm,e.DashboardChildComponent=Um,e.DashboardChildTitleComponent=Rm,e.DashboardComponent=$m,e.DashboardModule=Bm,e.DataGridComponent=Lp,e.DataGridModule=Fp,e.DefaultValidationDirective=Ad,e.DeviceGridComponent=om,e.DeviceGridModule=mm,e.DeviceGridService=sm,e.DeviceStatusComponent=um,e.DeviceStatusModule=dm,e.DocsModule=Am,e.DocsService=ap,e.DropAreaComponent=gm,e.DropAreaModule=fm,e.DynamicComponentComponent=Mm,e.DynamicComponentModule=qm,e.DynamicComponentService=Nm,e.EmptyComponent=sg,e.FormGroupComponent=qd,e.FormsModule=Hd,e.GroupDeviceGridColumn=Jp,e.GuideDocsComponent=km,e.GuideHrefDirective=Em,e.HOOK_ACTION=kc,e.HOOK_ACTION_BAR=xc,e.HOOK_BREADCRUMB=Xc,e.HOOK_COMPONENT=Dm,e.HOOK_COMPONENTS=Tm,e.HOOK_DOCS=np,e.HOOK_NAVIGATOR_NODES=Vc,e.HOOK_ONCE_ROUTE=Xm,e.HOOK_OPTIONS=Uc,e.HOOK_PATTERN_MESSAGES=cu,e.HOOK_SEARCH=sd,e.HOOK_TABS=Yc,e.HeaderBarComponent=sp,e.HeaderCellRendererDefDirective=Ep,e.HeaderModule=mp,e.HeaderService=Wc,e.HighlightComponent=ld,e.HumanizeAppNamePipe=ru,e.HumanizePipe=ou,e.ICON_LIST=Fu,e.ImeiDeviceGridColumn=tm,e.InputGroupListComponent=Ld,e.JsonValidationPrettifierDirective=$d,e.ListGroupComponent=Sm,e.ListGroupModule=_m,e.LoginService=vd,e.MaxValidationDirective=Dd,e.MessageDirective=Nd,e.MessagesComponent=Md,e.MinValidationDirective=Td,e.ModalModule=md,e.ModalService=dd,e.ModelDeviceGridColumn=Kp,e.NameDeviceGridColumn=Hp,e.NavigatorIconComponent=ip,e.NavigatorItemComponent=lp,e.NavigatorNode=zc,e.NavigatorNodeRoot=Hc,e.NavigatorService=Kc,e.NewPasswordComponent=xd,e.OptionsService=Gc,e.PasswordCheckListComponent=Id,e.PasswordConfirm=Pd,e.PasswordConfirmModalComponent=jd,e.PasswordService=bd,e.PasswordStrengthCheckerService=Od,e.PasswordStrengthComponent=_d,e.Permissions=Lu,e.PhoneValidationDirective=Ed,e.PopoverConfirmComponent=pd,e.ProvidePhoneNumberComponent=Yd,e.QuickLinkModule=ug,e.RegistrationDateDeviceGridColumn=Qp,e.RouterModule=ig,e.RouterService=Qm,e.SchemaFormComponent=Bd,e.SearchModule=id,e.SearchService=od,e.SelectComponent=hm,e.SelectModule=xm,e.SerialNumberDeviceGridColumn=Yp,e.SmsChallengeComponent=Kd,e.StateService=_c,e.StatusDeviceGridColumn=Bp,e.StepperModule=Ym,e.SystemIdDeviceGridColumn=em,e.TabsService=Zc,e.TextAreaRowHeightDirective=Fd,e.TitleComponent=rp,e.TotpChallengeComponent=Vd,e.TotpSetupComponent=Wd,e.TranslateService=Au,e.TypeaheadComponent=wm,e.UserMenuService=gd,e.UserTotpRevokeComponent=Jd,e.ValidationPattern=kd,e.WidgetsDashboardComponent=Gm,e._=function(e){return e},e.deviceAvailabilityIconMap=rm,e.fromFactories=Sc,e.fromTrigger=wc,e.getActivatedRoute=Oc,e.gettext=Tc,e.initializeServices=Ru,e.minColumnGridTrackSize=80,e.operationStatusClasses=su,e.operationStatusIcons=au,e.ratiosByColumnTypes=Dp,e.resolveInjectedFactories=Cc,e.routes=og,e.sortByPriority=Pc,e.stateToFactory=Ic,e.statusAlert=nu,e.statusClasses=tu,e.statusIcons=eu,e.tooltips=im,e.ɵ0=lm,e.ɵa=Fc,e.ɵb=vu,e.ɵba=Ku,e.ɵbb=Hu,e.ɵbc=Vu,e.ɵbd=Xu,e.ɵbe=Yu,e.ɵbf=Ju,e.ɵbg=Wu,e.ɵbh=Zu,e.ɵbi=Op,e.ɵbj=Pp,e.ɵbk=op,e.ɵbl=Qd,e.ɵbm=ep,e.ɵbn=pp,e.ɵbo=Xd,e.ɵbp=Cd,e.ɵbq=Sd,e.ɵbr=hd,e.ɵbs=fd,e.ɵbt=wd,e.ɵbu=Rd,e.ɵbv=Ud,e.ɵbw=Gd,e.ɵbx=zd,e.ɵby=ud,e.ɵbz=ad,e.ɵc=ju,e.ɵca=rd,e.ɵcb=nd,e.ɵcc=td,e.ɵcd=Qu,e.ɵce=ed,e.ɵcf=dp,e.ɵcg=up,e.ɵch=cp,e.ɵci=wp,e.ɵcj=hp,e.ɵck=yp,e.ɵcl=gp,e.ɵcm=fp,e.ɵcn=vp,e.ɵco=bp,e.ɵcp=jp,e.ɵcq=Ip,e.ɵcr=Cp,e.ɵcs=Sp,e.ɵct=Rp,e.ɵcu=Ap,e.ɵcv=$p,e.ɵcw=Tp,e.ɵcx=pm,e.ɵcy=Gp,e.ɵcz=zp,e.ɵd=bu,e.ɵda=Vp,e.ɵdb=Wp,e.ɵdc=Zp,e.ɵdd=Xp,e.ɵde=nm,e.ɵdf=bm,e.ɵdg=jm,e.ɵdh=ym,e.ɵdi=vm,e.ɵdj=Cm,e.ɵdk=Im,e.ɵdl=Pm,e.ɵdm=Om,e.ɵdn=zm,e.ɵdo=Vm,e.ɵdq=eg,e.ɵdr=ag,e.ɵds=cg,e.ɵe=wu,e.ɵf=Su,e.ɵg=yu,e.ɵh=pu,e.ɵi=iu,e.ɵj=lu,e.ɵk=gu,e.ɵl=hu,e.ɵm=du,e.ɵn=uu,e.ɵo=Cu,e.ɵp=Iu,e.ɵq=Pu,e.ɵr=Tu,e.ɵs=Nu,e.ɵt=Du,e.ɵu=Mu,e.ɵv=qu,e.ɵw=xu,e.ɵx=zu,e.ɵy=Bu,e.ɵz=Gu,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
17
17
|
//# sourceMappingURL=c8y-ngx-components.umd.min.js.map
|