@c8y/ngx-components 1007.0.43 → 1007.0.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@c8y/ngx-components/core/common/extension-hooks.ts","ng://@c8y/ngx-components/core/common/state-service.abstract.ts","ng://@c8y/ngx-components/core/action-bar/action-bar.service.ts","ng://@c8y/ngx-components/core/action/action.service.ts","ng://@c8y/ngx-components/core/i18n/gettext.ts","ng://@c8y/ngx-components/core/alert/alert.service.ts","ng://@c8y/ngx-components/core/common/ApplicationOptions.ts","ng://@c8y/ngx-components/core/common/options.service.ts","ng://@c8y/ngx-components/core/common/ui-state.service.ts","ng://@c8y/ngx-components/core/navigator/navigator-node.ts","ng://@c8y/ngx-components/core/navigator/navigator-node-root.ts","ng://@c8y/ngx-components/core/navigator/navigator.service.ts","ng://@c8y/ngx-components/core/header/header.service.ts","ng://@c8y/ngx-components/core/tabs/tabs.service.ts","ng://@c8y/ngx-components/core/bootstrap/bootstrap.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb.service.ts","ng://@c8y/ngx-components/core/i18n/languages.ts","ng://@c8y/ngx-components/core/i18n/locale.path.ts","ng://@c8y/ngx-components/core/i18n/patterns-message.hook.ts","ng://@c8y/ngx-components/core/i18n/pattern-messages.service.ts","ng://@c8y/ngx-components/core/i18n/missing-translation-custom.handler.ts","ng://@c8y/ngx-components/core/i18n/pattern-messages.data.ts","ng://@c8y/ngx-components/core/i18n/cached-locale-dictionary.service.ts","ng://@c8y/ngx-components/core/i18n/translate.loader.ts","ng://@c8y/ngx-components/core/i18n/translate.parser.ts","ng://@c8y/ngx-components/core/i18n/force-html-translate.directive.ts","ng://@c8y/ngx-components/core/i18n/i18n.module.ts","ng://@c8y/ngx-components/core/i18n/import-locales.ts","ng://@c8y/ngx-components/core/i18n/parse-module.ts","ng://@c8y/ngx-components/core/i18n/load-locale.ts","ng://@c8y/ngx-components/core/i18n/translate.service.ts","ng://@c8y/ngx-components/core/common/date.pipe.ts","ng://@c8y/ngx-components/core/common/load-more.component.ts","ng://@c8y/ngx-components/core/common/forOf.directive.ts","ng://@c8y/ngx-components/core/common/humanize-app-name.pipe.ts","ng://@c8y/ngx-components/core/common/humanize.pipe.ts","ng://@c8y/ngx-components/core/common/icon.directive.ts","ng://@c8y/ngx-components/core/common/map-function.pipe.ts","ng://@c8y/ngx-components/core/common/outlet.directive.ts","ng://@c8y/ngx-components/core/common/progress-bar.component.ts","ng://@c8y/ngx-components/core/common/shorten-user-name.pipe.ts","ng://@c8y/ngx-components/core/common/status.model.ts","ng://@c8y/ngx-components/core/common/single-operation.component.ts","ng://@c8y/ngx-components/core/common/user-preferences/user-preferences-storage-local.ts","ng://@c8y/ngx-components/core/common/user-preferences/user-preferences-store-inventory.ts","ng://@c8y/ngx-components/core/common/user-preferences/user-preferences.service.ts","ng://@c8y/ngx-components/core/common/memoize.decorator.ts","ng://@c8y/ngx-components/core/common/permissions.service.ts","ng://@c8y/ngx-components/core/common/common.module.ts","ng://@c8y/ngx-components/core/action-bar/action-bar-item.component.ts","ng://@c8y/ngx-components/core/action-bar/action-bar.component.ts","ng://@c8y/ngx-components/core/action-bar/action-bar.module.ts","ng://@c8y/ngx-components/core/action/action-outlet.component.ts","ng://@c8y/ngx-components/core/action/action.component.ts","ng://@c8y/ngx-components/core/action/action.module.ts","ng://@c8y/ngx-components/core/alert/alert-details.component.ts","ng://@c8y/ngx-components/core/alert/alert-outlet.component.ts","ng://@c8y/ngx-components/core/alert/alert-text.component.ts","ng://@c8y/ngx-components/core/alert/alert.component.ts","ng://@c8y/ngx-components/core/alert/alert.module.ts","ng://@c8y/ngx-components/core/audit-log/audit-log.component.ts","ng://@c8y/ngx-components/core/audit-log/audit-log.module.ts","ng://@c8y/ngx-components/core/login/login.model.ts","ng://@c8y/ngx-components/core/login/login.service.ts","ng://@c8y/ngx-components/core/authentication/password-confirm-modal.component.ts","ng://@c8y/ngx-components/core/authentication/password.service.ts","ng://@c8y/ngx-components/core/authentication/password-check-list.component.ts","ng://@c8y/ngx-components/core/authentication/password-confirm.directive.ts","ng://@c8y/ngx-components/core/authentication/password-strength-checker.service.ts","ng://@c8y/ngx-components/core/authentication/password-strength.component.ts","ng://@c8y/ngx-components/core/authentication/new-password.component.ts","ng://@c8y/ngx-components/core/modal/modal-confirm.component.ts","ng://@c8y/ngx-components/core/modal/modal.component.ts","ng://@c8y/ngx-components/core/modal/modal.service.ts","ng://@c8y/ngx-components/core/modal/popover-confirm.component.ts","ng://@c8y/ngx-components/core/modal/modal.module.ts","ng://@c8y/ngx-components/core/forms/phone-validation.directive.ts","ng://@c8y/ngx-components/core/forms/validation-pattern.ts","ng://@c8y/ngx-components/core/forms/default-validation.directive.ts","ng://@c8y/ngx-components/core/forms/min-validation.directive.ts","ng://@c8y/ngx-components/core/forms/max-validation.directive.ts","ng://@c8y/ngx-components/core/forms/message.directive.ts","ng://@c8y/ngx-components/core/forms/messages.component.ts","ng://@c8y/ngx-components/core/forms/form-group.component.ts","ng://@c8y/ngx-components/core/forms/input-group-list.component.ts","ng://@c8y/ngx-components/core/forms/input-group-list-container.directive.ts","ng://@c8y/ngx-components/core/forms/json-validation-prettifier.directive.ts","ng://@c8y/ngx-components/core/forms/text-area-row-height.directive.ts","ng://@c8y/ngx-components/core/forms/required-input-placeholder.directive.ts","ng://@c8y/ngx-components/core/forms/ip-range-input-list.component.ts","ng://@c8y/ngx-components/core/forms/filter-input.component.ts","ng://@c8y/ngx-components/core/forms/forms.module.ts","ng://@c8y/ngx-components/core/authentication/totp-challenge.component.ts","ng://@c8y/ngx-components/core/authentication/sms-challenge.component.ts","ng://@c8y/ngx-components/core/authentication/totp-setup.component.ts","ng://@c8y/ngx-components/core/authentication/provide-phone-number.component.ts","ng://@c8y/ngx-components/core/authentication/authentication.module.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb-item.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb-outlet.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb.module.ts","ng://@c8y/ngx-components/core/search/search-outlet.component.ts","ng://@c8y/ngx-components/core/search/search.service.ts","ng://@c8y/ngx-components/core/search/search.component.ts","ng://@c8y/ngx-components/core/search/highlight.component.ts","ng://@c8y/ngx-components/core/search/search-result-empty.component.ts","ng://@c8y/ngx-components/core/search/search.module.ts","ng://@c8y/ngx-components/core/user/user-menu.service.ts","ng://@c8y/ngx-components/core/user/user-menu-item.component.ts","ng://@c8y/ngx-components/core/user/user-edit-modal.component.ts","ng://@c8y/ngx-components/core/user/user-totp-setup.component.ts","ng://@c8y/ngx-components/core/user/user-edit.component.ts","ng://@c8y/ngx-components/core/user/user-menu-outlet.component.ts","ng://@c8y/ngx-components/core/user/user-totp-revoke.component.ts","ng://@c8y/ngx-components/core/user/user.module.ts","ng://@c8y/ngx-components/core/header/application/app-icon.component.ts","ng://@c8y/ngx-components/core/header/application/app-switcher.component.ts","ng://@c8y/ngx-components/core/docs/defaults.items.ts","ng://@c8y/ngx-components/core/docs/docs.models.ts","ng://@c8y/ngx-components/core/docs/docs.service.ts","ng://@c8y/ngx-components/core/header/header-bar/header-bar.component.ts","ng://@c8y/ngx-components/core/header/title/title-outlet.component.ts","ng://@c8y/ngx-components/core/header/title/title.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-entry.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-icon.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-node.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-outlet.component.ts","ng://@c8y/ngx-components/core/navigator/navigator.module.ts","ng://@c8y/ngx-components/core/header/right-drawer/right-drawer.component.ts","ng://@c8y/ngx-components/core/header/header.module.ts","ng://@c8y/ngx-components/core/login/change-password.component.ts","ng://@c8y/ngx-components/core/login/credentials.component.ts","ng://@c8y/ngx-components/core/login/login.component.ts","ng://@c8y/ngx-components/core/login/recover-password.component.ts","ng://@c8y/ngx-components/core/login/totp-auth.component.ts","ng://@c8y/ngx-components/core/login/strength-validator-service.ts","ng://@c8y/ngx-components/core/login/password-strength-validator.directive.ts","ng://@c8y/ngx-components/core/login/login.module.ts","ng://@c8y/ngx-components/core/tabs/tab.component.ts","ng://@c8y/ngx-components/core/tabs/tabs-outlet.component.ts","ng://@c8y/ngx-components/core/tabs/tabs.module.ts","ng://@c8y/ngx-components/core/bootstrap/cookie-banner/cookie-banner.component.ts","ng://@c8y/ngx-components/core/bootstrap/bootstrap.module.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.model.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.service.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.component.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.module.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child-action.component.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child-title.component.ts","ng://@c8y/ngx-components/core/dashboard/dashboard.component.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child-change.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child.component.ts","ng://@c8y/ngx-components/core/dashboard/widgets-dashboard.component.ts","ng://@c8y/ngx-components/core/docs/guide-href.directive.ts","ng://@c8y/ngx-components/core/docs/guide-docs.component.ts","ng://@c8y/ngx-components/core/docs/docs.module.ts","ng://@c8y/ngx-components/core/dashboard/dashboard.module.ts","ng://@c8y/ngx-components/core/data-grid/column/cell-renderer.ts","ng://@c8y/ngx-components/core/data-grid/column/filtering-form-renderer.ts","ng://@c8y/ngx-components/core/data-grid/column/column.directive.ts","ng://@c8y/ngx-components/core/data-grid/data-grid.model.ts","ng://@c8y/ngx-components/core/data-grid/grid-data-source.ts","ng://@c8y/ngx-components/core/data-grid/data-grid.component.ts","ng://@c8y/ngx-components/core/data-grid/column/cell-renderer.component.ts","ng://@c8y/ngx-components/core/data-grid/column/filtering-form-renderer.component.ts","ng://@c8y/ngx-components/core/data-grid/data-grid.module.ts","ng://@c8y/ngx-components/core/device-status/device-availability.ts","ng://@c8y/ngx-components/core/device-status/device-status.component.ts","ng://@c8y/ngx-components/core/device-status/device-status.module.ts","ng://@c8y/ngx-components/core/drop-area/drop-area.component.ts","ng://@c8y/ngx-components/core/drop-area/drop-area.module.ts","ng://@c8y/ngx-components/core/file-picker/file-picker.component.ts","ng://@c8y/ngx-components/core/file-picker/file-picker.module.ts","ng://@c8y/ngx-components/core/list-group/list-group.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-action.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-collapse.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-footer.component.ts","ng://@c8y/ngx-components/core/list-group/list-item.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-icon.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-body.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-checkbox.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-radio.component.ts","ng://@c8y/ngx-components/core/list-group/list-group.module.ts","ng://@c8y/ngx-components/core/realtime/realtime-button.component.ts","ng://@c8y/ngx-components/core/realtime/realtime.module.ts","ng://@c8y/ngx-components/core/select-modal/select-modal.model.ts","ng://@c8y/ngx-components/core/select-modal/select-modal.component.ts","ng://@c8y/ngx-components/core/select-modal/select-modal-filter.pipe.ts","ng://@c8y/ngx-components/core/select-modal/select-modal.module.ts","ng://@c8y/ngx-components/core/select/select.component.ts","ng://@c8y/ngx-components/core/select/typeahead.component.ts","ng://@c8y/ngx-components/core/select/select.module.ts","ng://@c8y/ngx-components/core/stepper/stepper-icon.directive.ts","ng://@c8y/ngx-components/core/stepper/stepper.component.ts","ng://@c8y/ngx-components/core/stepper/stepper-progress.component.ts","ng://@c8y/ngx-components/core/stepper/stepper-buttons.component.ts","ng://@c8y/ngx-components/core/stepper/stepper.module.ts","ng://@c8y/ngx-components/core/date-picker/date-picker.component.ts","ng://@c8y/ngx-components/core/date-picker/date-picker.module.ts","ng://@c8y/ngx-components/core/core.module.ts","ng://@c8y/ngx-components/core/router/router-tabs.resolver.ts","ng://@c8y/ngx-components/core/router/router.models.ts","ng://@c8y/ngx-components/core/router/view-context.service.ts","ng://@c8y/ngx-components/core/router/context-route.service.ts","ng://@c8y/ngx-components/core/router/router.service.ts","ng://@c8y/ngx-components/core/router/context-route.component.ts","ng://@c8y/ngx-components/api/api.service.ts","ng://@c8y/ngx-components/api/data.module.ts","ng://@c8y/ngx-components/core/router/context-route.guard.ts","ng://@c8y/ngx-components/core/router/empty.component.ts","ng://@c8y/ngx-components/core/router/router.module.ts","ng://@c8y/ngx-components/core/quicklink/quick-link.component.ts","ng://@c8y/ngx-components/core/quicklink/quick-link.module.ts","ng://@c8y/ngx-components/core/realtime/realtime.service.ts","ng://@c8y/ngx-components/core/realtime/operation-bulk-realtime.service.ts","ng://@c8y/ngx-components/core/realtime/managed-object-realtime.service.ts","ng://@c8y/ngx-components/core/realtime/realtime.model.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { flatten, isFunction, sortBy } from 'lodash-es';\nimport { combineLatest, defer, from, isObservable, Observable, of, race } from 'rxjs';\nimport { filter, map, merge, startWith, switchMap } from 'rxjs/operators';\n\nexport function fromTrigger(router, refresh, factories) {\n return router.events.pipe(\n filter(evt => evt instanceof NavigationEnd),\n merge(refresh),\n startWith(1),\n switchMap(() => fromFactories(factories, router))\n );\n}\nexport function fromFactories<T>(\n factories?,\n router?: Router,\n withFirstEmpty = true\n): Observable<T[]> {\n return !Array.isArray(factories) || factories.length < 1\n ? of([])\n : defer(() => {\n const factoryObservables = resolveInjectedFactories(factories).map(f => {\n return toObservable(\n Array.isArray(f) ? f : f && isFunction(f.get) ? f.get(getActivatedRoute(router)) : [f],\n withFirstEmpty\n );\n });\n return combineLatest(...factoryObservables);\n }).pipe(map(results => sortByPriority([].concat(...results))));\n}\n\nexport function resolveInjectedFactories(factories) {\n return flatten(factories.map(f => (isFunction(f) ? f() : [f])));\n}\n\nexport function stateToFactory<T>(componentsState): ExtensionFactory<T> {\n const components$ = componentsState.pipe(map((componentSet: Set<T>) => Array.from(componentSet)));\n return { get: () => components$ };\n}\n\nexport function sortByPriority(items) {\n return sortBy(items, 'priority');\n}\n\nfunction toObservable(factoryResult, withFirstEmpty) {\n let observable;\n if (!factoryResult) {\n return of([]);\n } else if (typeof factoryResult.then === 'function' || isObservable(factoryResult)) {\n if (withFirstEmpty) {\n const forceObservable = from(factoryResult);\n const withEmptyFirst = forceObservable.pipe(startWith([]));\n observable = race(forceObservable, withEmptyFirst);\n } else {\n observable = from(factoryResult);\n }\n } else {\n observable = of(factoryResult);\n }\n return observable.pipe(\n map(result => (Array.isArray(result) ? result : [result]).filter(item => !!item))\n );\n}\n\n/**\n * Allows to extend the existing applications from a module.\n */\nexport interface ExtensionFactory<T> {\n /**\n * Allows to resolve the data of an extension point.\n * The return value can be a Promise or Observable\n * (allowing for asynchronous data resolution).\n *\n * @param activatedRoute The current activated route (if possible to resolve).\n */\n get(activatedRoute?: ActivatedRoute): Observable<T[] | T> | Promise<T[] | T> | T[] | T;\n}\n\n/**\n * Extension points allow to extend the application from\n * any module\n */\nexport interface ExtensionPoint<T> {\n /**\n * Observable that emits of array of extensions active at any give time\n */\n readonly items$: Observable<T[]>;\n /**\n * Call the extension factories to refresh them.\n */\n refresh();\n}\n\n/**\n * Helper function to get the activated route in\n * a service (as ActivatedRoute injection only\n * works in components). Works as long as we only use\n * a tree and no child is active at the same time.\n *\n * @param router The current router\n */\nexport function getActivatedRoute(router: Router) {\n if (router && router.routerState && router.routerState.root) {\n let route = router.routerState.root;\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n }\n}\n","import { Observable, BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\n/**\n * A abstract state which should be included in each state.\n * @abstract\n */\nexport abstract class StateService {\n /**\n * Saves the state. Should not be accessible directly. Use map or the getter to access\n * the state. Use functions in the implementation to change the state.\n */\n protected abstract state$: BehaviorSubject<any> | any;\n\n /**\n * Should return the current state of this StateService\n */\n abstract get state();\n\n /**\n * Maps to a property and just returns that property.\n * @param mappedProperty The property to map to.\n */\n map(mappedProperty: (stateProperty) => any): Observable<any> {\n return this.state$.pipe(map(mappedProperty), distinctUntilChanged());\n }\n\n /**\n * Emits a new state.\n */\n protected emitNewState() {\n this.state$.next(this.state);\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport {\n ExtensionPoint,\n fromTrigger,\n sortByPriority,\n stateToFactory\n} from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { ActionBarItem } from './action-bar.model';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_ACTION_BAR = new InjectionToken('ActionBarFactory');\n\n/**\n * A service which defines action-bar items.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionBarService extends StateService implements ExtensionPoint<ActionBarItem> {\n items$: Observable<ActionBarItem[]>;\n readonly refreshTrigger = new Subject();\n protected state$ = new BehaviorSubject<Set<ActionBarItem>>(new Set<ActionBarItem>());\n\n constructor(private injector: Injector, router: Router) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_ACTION_BAR, []),\n stateToFactory(this.state$)\n ]).pipe(\n map((items: ActionBarItem[]) => sortByPriority(items)),\n shareReplay(1)\n );\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<ActionBarItem> {\n return this.state$.value;\n }\n\n refresh() {\n this.refreshTrigger.next();\n }\n\n /**\n * Adds a new item to the action bar in the header and emits a state change.\n * @param item The item to add.\n */\n add(item: ActionBarItem) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an action bar item from the header and emits a state change.\n * @param item The item to remove.\n */\n remove(item: ActionBarItem) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","import { Injector, Injectable, InjectionToken } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { StateService } from '../common/state-service.abstract';\nimport { Action, ActionFactory } from './action.model';\nimport {\n fromTrigger,\n ExtensionPoint,\n stateToFactory,\n sortByPriority\n} from '../common/extension-hooks';\nimport { map, shareReplay } from 'rxjs/operators';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_ACTION = new InjectionToken('ActionFactory');\n\n/**\n * A service which defines global actions.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionService extends StateService implements ExtensionPoint<Action> {\n items$: Observable<Action[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<Action>>(new Set<Action>());\n\n constructor(private injector: Injector, router: Router) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_ACTION, []),\n stateToFactory(this.state$)\n ]).pipe(\n map((items: Action[]) => sortByPriority(items)),\n shareReplay(1)\n );\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<Action> {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the actions in the header and emits a state change.\n * @param item The item to add.\n */\n add(item: Action) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an action from the header and emits a state change.\n * @param item The item to remove.\n */\n remove(item: Action) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","// Just for translation annotation\n// Note: Own file because of conflicts if put in barrel directly.\nexport const _ = (str) => str;\nexport function gettext(str) {\n return str;\n}\n","import { Alert } from './alert.model';\nimport { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { StateService } from '../common/state-service.abstract';\nimport { gettext } from '../i18n/gettext';\n\ntype alertType = 'success' | 'warning' | 'danger' | 'info' | 'system';\n/**\n * A service which allows to display alerts.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertService extends StateService {\n /**\n * Returns all alerts.\n * @readonly\n */\n get state() {\n return this.state$.value;\n }\n state$ = new BehaviorSubject<Alert[]>([]);\n\n private MAX_ALERTS = 3;\n private ALERT_TIMEOUT = 3000;\n\n /**\n * Adds a new alert to the current state.\n */\n add(alert: Alert) {\n this.addAlert(alert);\n }\n\n /**\n * Adds a alert by text.\n */\n addByText(type: alertType, txt: string, detailedData?: string): void {\n this.addAlert({ text: txt, type, detailedData });\n }\n\n /**\n * Returns all alerts.\n * @deprecated Use alertService.alerts instead.\n */\n list(): Alert[] {\n return this.state;\n }\n\n /**\n * Remove an alert from the current state.\n */\n remove(alert: Alert) {\n this.changeAlerts(this.state.filter(item => !this.areSame(alert, item)));\n }\n\n /**\n * Updates matching alert with provided values.\n */\n update(alert: Alert, fieldsToUpdate: Partial<Alert>) {\n this.changeAlerts(\n this.state.map(item => {\n if (this.areSame(alert, item)) {\n Object.assign(item, fieldsToUpdate);\n }\n return item;\n })\n );\n }\n\n /**\n * Removes last danger alert. Replacement for silentError.\n *\n * @example\n * ```typescript\n * try {\n * // something that might throw a danger server msg\n * } catch (ex) {\n * this.alarmService.removeLastDanger();\n * }\n * ```\n */\n removeLastDanger() {\n const firstDangerAlarm = this.state.reverse().find(({ type }) => type === 'danger');\n this.changeAlerts(this.state.filter(alarm => alarm !== firstDangerAlarm));\n }\n\n /**\n * Shorthand for a save successful alert.\n * @param savedObject The object which was saved.\n * @return A function that can be executed to show the msg.\n */\n saveSuccess(savedObject: string) {\n return () => {\n const text = `${savedObject} saved successfully`;\n this.addByText('success', text);\n };\n }\n\n /**\n * Shorthand for a create successful alert.\n * @param createdObject The object which was created.\n * @return A function that can be executed to show the msg.\n */\n createSuccess(createdObject) {\n return () => {\n const text = `${createdObject} created successfully`;\n this.addByText('success', text);\n };\n }\n\n /**\n * Clears all alerts.\n */\n clearAll() {\n this.changeAlerts([]);\n }\n\n /**\n * A shorthand to display a simple success message.\n * @param text The success text.\n * @param detailedData The text with additional information.\n */\n success(text: string, detailedData?: string) {\n this.addByText('success', text, detailedData);\n }\n\n /**\n * A shorthand to display a simple danger message.\n * @param text The danger text.\n * @param detailedData The text with additional information.\n */\n danger(text: string, detailedData?: string) {\n this.addByText('danger', text, detailedData);\n }\n\n /**\n * A shorthand to display a simple info message.\n * @param text The info text.\n * @param detailedData The text with additional information.\n */\n info(text: string, detailedData?: string) {\n this.addByText('info', text, detailedData);\n }\n\n /**\n * A shorthand to display a simple warning message.\n * @param text The warning text.\n * @param detailedData The text with additional information.\n */\n warning(text: string, detailedData?: string) {\n this.addByText('warning', text, detailedData);\n }\n\n addServerFailure(error: any, type: alertType = 'danger') {\n const { data, res } = error;\n let text = data && data.message ? data.message : null;\n let detailedData;\n if (data) {\n if (typeof data === 'object') {\n detailedData = data.exceptionMessage;\n } else if (typeof data === 'string') {\n detailedData = data;\n }\n }\n const hasRelevantMessage = !!(text || detailedData);\n if (!text) {\n text = gettext('A server error occurred.');\n }\n if (!hasRelevantMessage) {\n detailedData = {\n status: res.status,\n statusText: res.statusText,\n url: res.url\n };\n }\n\n this.addAlert({\n type,\n text,\n detailedData\n });\n }\n\n areSame(alert1: Alert, alert2: Alert) {\n return (\n alert1.text === alert2.text &&\n alert1.type === alert2.type &&\n alert1.detailedData === alert2.detailedData &&\n alert1.onClose === alert2.onClose &&\n alert1.onDetail === alert2.onDetail\n );\n }\n\n private changeAlerts(newAlerts: Alert[]) {\n this.state$.next(newAlerts);\n }\n\n private addAlert(alert: Alert): void {\n if (!alert.text && !alert.type) {\n throw new Error('Cannot add empty alert');\n }\n\n const alertAlreadyAdded = this.state.find(item => this.areSame(alert, item));\n if (alertAlreadyAdded) {\n return;\n }\n\n this.changeAlerts([...this.state, alert]);\n this.hideAutomaticallyIfNeeded(alert);\n this.removeOldestIfMax();\n }\n\n private hideAutomaticallyIfNeeded(alert: Alert) {\n const isSuccess = alert.type === 'success';\n const noDetails = !alert.detailedData;\n let alertTimeout = isSuccess && noDetails ? this.ALERT_TIMEOUT : 0;\n if (typeof alert.timeout !== 'undefined') {\n alertTimeout = alert.timeout;\n }\n if (alertTimeout) {\n setTimeout(() => this.remove(alert), alertTimeout);\n }\n }\n\n private removeOldestIfMax() {\n if (this.state.length > this.MAX_ALERTS) {\n const [, ...firstRemoved] = this.state;\n this.changeAlerts(firstRemoved);\n }\n }\n}\n","/*\n * -----------------------------WARNING---------------------------------\n * This file has an *exact* copy in packages/cli/src/webpack.\n * Any changes to this file must be reflected there, too.\n */\nexport class ApplicationOptions {\n /** Application name (saved to the server). */\n name: string;\n /** Application context path (saved to the server). */\n contextPath: string;\n /** Application key (saved to the server). */\n key: string;\n /** Set to `true` if the application is hybrid and uses Angular and AngularJS simultaneously. */\n upgrade?: boolean;\n /** Path to the branding entry file. */\n brandingEntry?: string;\n /** Path to tsccnfig.json file if TypeScript is used (default: ./tsconfig.json). */\n tsConfigPath?: string;\n /** Entry module for Angular compiler (only used with lazy loaded routes), e.g. `'app.module.ts#AppModule'`. */\n entryModule?: string;\n /** Path to custom index.html (otherwise default one will be used). */\n indexTemplate?: string;\n /** URL to dynamically fetched options. */\n dynamicOptionsUrl?: string;\n /** URL to favicon. */\n faviconUrl?: string;\n /** URL to *.css file which will replace default branding. */\n brandingUrl?: string;\n /** Object with properties that will be converted to CSS custom variables. */\n brandingCssVars?: {\n [key: string]: string;\n };\n /**\n * Allows for adding or overriding languages available in the application.\n *\n * Its keys are language codes and its values are objects with the following properties:\n *\n * - `name`: English name of the language,\n * - `nativeName`: native name of the language,\n * - `url`: full URL to JSON file with compiled translations;\n * if not defined, translations will be loaded from `${localePath}/${langCode}.json`.\n *\n * Example:\n * ```json\n * \"languages\": {\n * \"de\": {\n * \"name\": \"German\",\n * \"nativeName\": \"Deutsch\",\n * \"url\": \"/apps/public/ui-assets/de.json\"\n * }\n * }\n * ```\n */\n languages?: {\n [langCode: string]: {\n name: string;\n nativeName: string;\n url: string;\n };\n };\n /**\n * Allows for adding custom translations. It is an optional property.\n *\n * Its keys are language codes (https://cumulocity.com/guides/users-guide/getting-started/#a-name-languages-a-available-languages)\n * and its values are objects with key-value pairs, where the key is the original string in English and the value - its translation.\n *\n * - `Home`: \"Startseite\"\n *\n * For example you can add the translation of your custom cookie banner configured in the branding settings:\n * ```json\n * \"i18nExtra\": {\n * \"de\": {\n * \"About cookies on Cumulocity IoT\": \"Informationen zu Cookies in Cumulocity IoT\",\n * \"Click Agree and Proceed to accept cookies and go directly to the platform or click on Privacy Policy to see detailed descriptions of the used cookies.\": \"Klicken Sie auf Zustimmen und fortfahren, um Cookies zu akzeptieren und direkt zur Plattform zu gelangen, oder klicken Sie auf Datenschutzrichtlinie, um detaillierte Beschreibungen der verwendeten Cookies anzuzeigen.\"\n * }\n * }\n * ```\n */\n i18nExtra?: {\n [langCode: string]: {\n [key: string]: string;\n };\n };\n /** Path to the folder from which *.po files will be loaded. */\n localePath?: string;\n /** Array of URLs to additional *.css files to be loaded at runtime. */\n extraCssUrls?: string[];\n /** Documentation links settings. */\n docs?: {\n /** Hide default links to documentation. */\n noDefault: boolean;\n /** List of regex strings. Matching default docs URLs will be hidden. */\n excludeDefault: string[];\n /** Additional links to be displayed. */\n links: Array<{\n /** Icon classes with `c8y-icon`, e.g. `c8y-icon c8y-icon-add-user` or `c8y-icon c8y-icon-device-connect`. */\n icon: string;\n label: string;\n url: string;\n type: 'doc' | 'quicklink';\n }>;\n };\n /** Application icon to be displayed in app switcher and header bar. */\n icon?: {\n class?: string;\n url?: string;\n };\n\n // These are the old options\n /** Hide application in app switcher (saved to the server). */\n noAppSwitcher?: boolean;\n /** HTML page title. */\n globalTitle?: string;\n /** Hide \"powered by\" and version info at the bottom of the navigator and in the user menu. */\n hidePowered?: boolean;\n /** URL to support page (set to `false` to hide the link). */\n supportUrl?: boolean | string;\n /**\n * Replacement string for `user` field in audit logs for actions performed by a support user\n * (available placeholders: `{{support_user}}`, `{{supported_user}}`).\n */\n supportUserString?: string;\n /** Enable or disable the right drawer. */\n rightDrawer?: boolean;\n /** Enable or disable breadcrumbs in the header for groups and devices (default: false). */\n breadcrumbs?: boolean;\n /** Collapse navigator on initial load. */\n hideNavigator?: boolean;\n /** Show tabs horizontally or vertically. */\n tabsHorizontal?: boolean;\n /** Additional link to display on login screen. */\n loginExtraLink?: {\n url: string;\n label: string;\n };\n /** Enable or disable storage limitation feature. */\n storageLimitationFeatureEnabled?: boolean;\n /** Name of company handling support requests from app users (displayed in notification message). */\n companyName?: string;\n /** URL template for documentation links (default: `'${docsBaseUrl}${partialUrl}'`). */\n guideHrefTemplate?: string;\n /** Base URL for documentation links. */\n docsBaseUrl?: string;\n /** CSP string to be added to `index.html`. */\n contentSecurityPolicy?: string;\n /** Enables cloud sensor wizard */\n sensorPhone?: boolean;\n /** Legacy list of imported plugins. */\n imports?: string[];\n /** Show or hide a newsletter subscription checkbox in edit user modal. */\n newsletter?: boolean;\n /** Indicates whether the entry point is traversed from legacy cumulocity*.json app manifest. */\n legacy?: boolean;\n /** Path to the root node_modules dir (useful when working in monorepo setup, e.g. yarn workspaces). */\n rootNodeModulesPath?: string;\n /** Cookie Banner configuration */\n cookieBanner?: {\n cookieBannerTitle?: string;\n cookieBannerText?: string;\n policyUrl?: string;\n };\n /** A key for the product experience software Gainsight. */\n gainsightKey?: string;\n}\n","import { InjectionToken, Optional, Inject, Injectable } from '@angular/core';\nimport { camelCase, isUndefined } from 'lodash-es';\nimport { ApplicationOptions } from './ApplicationOptions';\nimport { ExtensionFactory } from './extension-hooks';\nimport { SystemOptionsService, TenantOptionsService } from '@c8y/ngx-components/api';\n\nexport const HOOK_OPTIONS = new InjectionToken<ExtensionFactory<ApplicationOptions>>('App options');\n\n/**\n * A service that allows to set or get application options\n * which configure the default behavior of the UI.\n */\n@Injectable()\nexport class OptionsService extends ApplicationOptions {\n [key: string]: any;\n constructor(\n @Optional() @Inject(HOOK_OPTIONS) options,\n private systemOptionsService: SystemOptionsService,\n private tenantOptionService: TenantOptionsService\n ) {\n super();\n this.setupOptions(options);\n }\n\n /**\n * Returns an application option used to configure the UI.\n * @param optionKey The application options key.\n * @param defaultValue A value to return if non is set.\n */\n get(optionKey: keyof OptionsService, defaultValue?: any) {\n let value = this[optionKey];\n if (typeof value === 'undefined') {\n value = this[camelCase(optionKey)];\n }\n return typeof value !== 'undefined' ? value : defaultValue;\n }\n\n /**\n * Sets an application option.\n * @param key The key to set.\n * @param value The value to set.\n */\n set(key: string, value: any) {\n this[camelCase(key)] = value;\n }\n\n /**\n * Gets support url from tenant options.\n * If response returns '404 not found' it gets the support url from application options.\n * If the support link within application options is not provided the UI will use the system options.\n * Is the support link explicitly set to false it will be hidden.\n * NOTE: The tenant option endpoint returns the system option setting if non is set on the tenant.\n *\n * @returns Returns support url or false.\n */\n async getSupportUrl() {\n if (isUndefined(this.supportUrl)) {\n this.supportUrl = await this.getTenantOption('configuration', 'system.support.url');\n }\n return isUndefined(this.supportUrl) ? false : this.supportUrl;\n }\n\n /**\n * Returns if the tenant allows to show the activate-support user menu entry.\n * Note: Only if system-level support-user/enabled is false we can activate it at tenant level.\n */\n async getActivateSupportUser() {\n const option = await this.getSystemOption('support-user', 'enabled', true);\n return !option;\n }\n\n /**\n * Gets a value from the system service and parses it.\n *\n * @param category The category for this option.\n * @param key The key for that option.\n * @param defaultValue The default if the option was not found.\n */\n async getSystemOption(category: string, key: string, defaultValue?: any) {\n return this.getOptionFromService(category, key, this.systemOptionsService, defaultValue);\n }\n\n /**\n * Gets a value from the tenant service and parses it.\n *\n * @param category The category for this option.\n * @param key The key for that option.\n * @param defaultValue The default if the option was not found.\n */\n async getTenantOption(category: string, key: string, defaultValue?: any) {\n return this.getOptionFromService(category, key, this.tenantOptionService, defaultValue);\n }\n\n private setupOptions(options: any[] | null) {\n if (options) {\n if (!Array.isArray(options)) {\n options = [options];\n }\n options.forEach(optionMap => {\n if (optionMap) {\n Object.keys(optionMap).forEach(key => {\n this[camelCase(key)] = optionMap[key];\n });\n }\n });\n }\n }\n\n private async getOptionFromService(category, key, service, defaultValue) {\n try {\n const { data } = await service.detail({ category, key });\n return this.parseOptionRawValue(data.value, defaultValue);\n } catch (ex) {\n return defaultValue;\n }\n }\n\n private parseOptionRawValue(rawValue, defaultValue) {\n let value;\n try {\n value = JSON.parse(rawValue);\n } catch (e) {\n value = isUndefined(rawValue) ? defaultValue : rawValue;\n }\n return value;\n }\n}\n","import { Injectable, isDevMode } from '@angular/core';\nimport { keys } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\nimport { scan, distinctUntilChanged, map, filter } from 'rxjs/operators';\nimport { StateService } from './state-service.abstract';\nimport { OptionsService } from './options.service';\nimport { FetchClient } from '@c8y/client';\n\nimport { ApplicationService, IUser, ICurrentTenant } from '@c8y/client';\nimport { ApiService } from '@c8y/ngx-components/api';\n\n@Injectable()\nexport class AppStateService extends StateService {\n state$: BehaviorSubject<any> = new BehaviorSubject<any>({\n app: {\n name: this.options.name,\n contextPath: this.getCurrentContextPath() || this.options.contextPath\n },\n supportUrl: this.options.supportUrl,\n lang: this.options.get('defaultLanguage', 'en'),\n langs: this.getLangs(),\n langsDetail: this.options.languages,\n loginOptions: this.options.loginOptions,\n activateSupportUserAvailable: undefined,\n versions: {\n backend: undefined,\n ui: this.options.versions || { ngx: undefined }\n },\n hidePowered: this.options.hidePowered,\n isLoading: false,\n showRightDrawer: this.options.rightDrawer,\n loginExtraLink: this.options.get('login_extra_link'),\n newsletter: this.options.newsletter\n });\n currentSupportUserName: BehaviorSubject<string | null> = new BehaviorSubject(null);\n currentUser: BehaviorSubject<IUser | null> = new BehaviorSubject(null);\n currentTenant: BehaviorSubject<ICurrentTenant | null> = new BehaviorSubject(null);\n\n constructor(\n private applicationService: ApplicationService,\n public apiService: ApiService,\n private options: OptionsService,\n private fetchClient: FetchClient\n ) {\n super();\n this.apiService.calls\n .pipe(\n filter(({ url }) => !/cep\\/realtime/.test(url)),\n map(({ phase }) => (phase === 'start' ? 1 : -1)),\n scan((count, item) => count + item, 0),\n map(count => count > 0),\n distinctUntilChanged()\n )\n .subscribe(isLoading => (this.state.isLoading = isLoading));\n\n this.assignApplicationKeyToDefaultHeaders();\n }\n\n assignApplicationKeyToDefaultHeaders() {\n if (!isDevMode()) {\n this.fetchClient.defaultHeaders = {\n ...(this.fetchClient.defaultHeaders || {}),\n 'X-Cumulocity-Application-Key': this.options.key\n };\n }\n }\n\n /**\n * Returns the current state.\n */\n get state() {\n return this.state$.value;\n }\n\n getLangs() {\n const { languages } = this.options;\n return languages ? keys(languages).filter(k => languages[k]) : [];\n }\n\n /**\n * Returns the correct UI version. In hybrid mode for angular and ngx.\n */\n get uiVersion() {\n const version = this.state.versions.ui;\n return version.ngx || version.ng1;\n }\n\n /**\n * Loads the app manifest. If no access -> throw an error to verify app access.\n */\n async loadManifest() {\n try {\n const { application } = (await this.applicationService.detail(\n `${this.state.app.contextPath}/manifest`\n )).data as any;\n this.state.app.manifest = application;\n this.loadDefaultOptions();\n } catch (ex) {\n throw ex;\n }\n }\n\n /**\n * Checks current users application list and matches it against given application name.\n * Returns true if application is in the list.\n * @param name application name\n */\n async isApplicationAvailable(name: string) {\n const { data } = await this.applicationService.listByUser(undefined, { pageSize: 100 });\n return data.some(app => app.name === name);\n }\n\n /**\n * Sets current user (including support user).\n * @param userInfo Info about current user and support user to be set.\n */\n setUser(userInfo: { user: IUser; supportUserName: string }) {\n this.currentSupportUserName.next(userInfo.supportUserName || null);\n this.currentUser.next(userInfo.user);\n }\n\n private getCurrentContextPath() {\n const match = window.location.pathname.match(/\\/apps\\/(public\\/){0,1}(.+?)(\\/|\\?|#|$)/);\n return match && match[2];\n }\n\n private async loadDefaultOptions() {\n this.state.supportUrl = await this.options.getSupportUrl();\n this.state.activateSupportUserAvailable = await this.options.getActivateSupportUser();\n this.state.versions.backend = await this.options.getSystemOption('system', 'version');\n try {\n this.showIncompatibleVersionsError();\n } catch (ex) {\n // ignore this\n }\n this.emitNewState();\n }\n\n private showIncompatibleVersionsError() {\n const uiVersion = this.state.versions.ui.ngx;\n const backendVersion = this.state.versions.backend;\n const uiVersionArray = uiVersion\n .replace(/[^\\d.]/g, '')\n .split('.')\n .map(Number);\n const beVersionArray = backendVersion\n .replace(/[^\\d.]/g, '')\n .split('.')\n .map(Number);\n const multiplier = Math.pow(\n 10,\n Math.ceil(Math.log10(Math.max(...uiVersionArray, ...beVersionArray) + 1))\n );\n const sumReducer = (acc, cur) => acc + cur;\n const calculateVersionMapper = (curr, idx) => curr * (multiplier / Math.pow(10, idx));\n const uiVersionNumber = uiVersionArray.map(calculateVersionMapper).reduce(sumReducer);\n const beVersionNumber = beVersionArray.map(calculateVersionMapper).reduce(sumReducer);\n const showError = uiVersionNumber > beVersionNumber;\n if (showError) {\n const errorContent = `You are running version ${uiVersion} of the UI and version ${backendVersion} of backend!`;\n console.log('%c ' + errorContent, 'font-weight: bold; font-size: 30px; color: red;');\n }\n }\n}\n","import { TemplateRef, Type } from '@angular/core';\nimport { matches, snakeCase } from 'lodash-es';\nimport { NavigatorNodeData } from './navigator-node-data';\nimport { PopoverConfirmComponent } from '../modal/popover-confirm.component';\n\nexport interface ClickOptions {\n icon?: boolean;\n expander?: boolean;\n open?: boolean;\n $event?: any; // TODO: add proper type\n}\n\nexport class NavigatorNode {\n icon: string;\n iconTemplate?: TemplateRef<any>;\n iconComponent?: Type<any>;\n children: NavigatorNode[] = [];\n label;\n path: string;\n parents: NavigatorNode[] = [];\n loading?: boolean;\n routerLinkExact: boolean = true;\n open: boolean = false;\n hidden: boolean = false;\n draggable: boolean = false;\n droppable: boolean = false;\n dragged = false;\n draggedHover = false;\n confirm: PopoverConfirmComponent = undefined;\n private _id;\n private _priority: number = 0;\n private expandDragTimeout;\n\n get hasChildren() {\n return this.children.length > 0;\n }\n\n get id() {\n return this._id || 'navigator_node_' + snakeCase(this.label);\n }\n\n set id(id) {\n this._id = id;\n }\n\n get priority() {\n if (this._priority) {\n return this._priority;\n } else {\n const childrenPriorities = this.children.map(({ priority }) => priority || 0);\n if (childrenPriorities.length) {\n return childrenPriorities.length ? Math.max(...childrenPriorities) : 0;\n }\n return 0;\n }\n }\n\n set priority(priority) {\n this._priority = priority;\n }\n\n constructor(data?: NavigatorNodeData) {\n this.update(data);\n }\n\n openOnStart(url: string) {\n return false;\n }\n\n add(node: NavigatorNode) {\n if (node === this) {\n throw new Error('Adding node to itself');\n }\n if (this.children.indexOf(node) === -1) {\n this.children.push(node);\n }\n if (node.parents.indexOf(this) === -1) {\n node.parents.push(this);\n }\n this.updateChildren();\n }\n\n remove(node: NavigatorNode) {\n const ix = this.children.indexOf(node);\n const pix = node.parents.indexOf(this);\n if (ix > -1) {\n this.children.splice(ix, 1);\n }\n if (pix > -1) {\n node.parents.splice(pix, 1);\n }\n this.updateChildren();\n }\n\n update(data?: NavigatorNodeData) {\n if (data) {\n Object.assign(this, data);\n if (data.hidden !== undefined) {\n this.parents.forEach(p => {\n p.updateHidden();\n });\n }\n }\n }\n\n find(predicate) {\n if (typeof predicate === 'string') {\n const compareLabel = predicate.toLocaleLowerCase();\n predicate = ({ label }) => compareLabel === label.toLowerCase();\n }\n if (typeof predicate === 'object') {\n predicate = matches(predicate);\n }\n if (typeof predicate !== 'function') {\n throw new Error('Invalid search predicate');\n }\n return this.children.reduce(\n (found, child) => found || child.find(predicate),\n this.children.find(predicate)\n );\n }\n\n empty() {\n this.children.length = 0;\n }\n\n click(options: ClickOptions = {}) {\n // do nothing\n }\n\n drop($event) {\n $event.stopPropagation();\n clearTimeout(this.expandDragTimeout);\n }\n\n dragStart($event) {\n $event.stopPropagation();\n // we can't pass a object to setData, so we do it via service\n // set data is still needed, to make the drag&drop work\n $event.dataTransfer.setData('node', 'node');\n this.dragged = true;\n }\n\n dragEnd($event) {\n $event.stopPropagation();\n this.dragged = false;\n $event.dataTransfer.clearData();\n }\n\n get canDrop() {\n return this.droppable;\n }\n\n get canNavigate() {\n return typeof this.path !== 'undefined';\n }\n\n dragEnter($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.draggedHover = true;\n if (!this.open) {\n this.expandDragTimeout = setTimeout(() => this.expand(), 1000);\n }\n }\n\n dragLeave($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.draggedHover = false;\n clearTimeout(this.expandDragTimeout);\n }\n\n expand() {\n if (!this.open) {\n this.open = true;\n this.click({ open: true, expander: true });\n }\n }\n\n traverse(callback) {\n if (this.children) {\n this.children.forEach(child => {\n callback(child);\n child.traverse(callback);\n });\n }\n }\n\n destroy() {\n // nothing todo here\n }\n\n protected updateChildren() {\n this.sort();\n this.updateHidden();\n }\n\n protected sort() {\n this.children.sort((a, b) => {\n if (a.priority > b.priority) {\n return -1;\n } else if (a.priority < b.priority) {\n return 1;\n } else if ((a.label || '').toLowerCase() < (b.label || '').toLowerCase()) {\n return -1;\n } else if ((a.label || '').toLowerCase() > (b.label || '').toLowerCase()) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n protected updateHidden() {\n if (typeof this.path === 'undefined') {\n this.hidden = !this.children.some(({ hidden }) => !hidden);\n }\n }\n}\n","import { NavigatorNode } from './navigator-node';\nimport { NavigatorNodeData } from './navigator-node-data';\nimport { assign } from 'lodash-es';\n\nexport class NavigatorNodeRoot extends NavigatorNode {\n addRoot(nodeData: Partial<NavigatorNodeData>) {\n const { parent } = nodeData;\n const node = this.createNode(nodeData);\n let localParent;\n\n if (parent) {\n if (typeof parent === 'object') {\n localParent = this.find(parent.label);\n if (localParent) {\n localParent.update(parent);\n }\n } else if (typeof parent === 'string' || typeof parent === 'function') {\n localParent = this.find(parent);\n }\n\n if (!localParent) {\n localParent = this.createNode(parent);\n if (!this.find((n) => localParent === n)) {\n this.add(localParent);\n }\n }\n }\n\n (localParent || this).add(node);\n return node;\n }\n\n createNode(nodeData) {\n if (nodeData instanceof NavigatorNode) {\n return nodeData;\n }\n if (typeof nodeData === 'string') {\n return new NavigatorNode({ label: nodeData });\n }\n if (typeof nodeData === 'object') {\n return new NavigatorNode({ ...nodeData, parent: undefined });\n }\n throw new Error('Wrong type of node data');\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ExtensionPoint, fromTrigger, sortByPriority, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { NavigatorNode } from './navigator-node';\nimport { NavigatorNodeData } from './navigator-node-data';\nimport { NavigatorNodeRoot } from './navigator-node-root';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_NAVIGATOR_NODES = new InjectionToken('NavigatorNodesFactory');\n\n/**\n * A service which defines the navigator.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigatorService extends StateService implements ExtensionPoint<NavigatorNode> {\n items$: Observable<NavigatorNode[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<NavigatorNode>>(new Set<NavigatorNode>());\n firstUrl = true;\n\n constructor(\n private injector: Injector,\n private router: Router\n ) {\n super();\n const rootNode = new NavigatorNodeRoot();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_NAVIGATOR_NODES, []),\n stateToFactory(this.state$),\n ]).pipe(\n map((nodes: Partial<NavigatorNodeData[]>) => {\n const noParent = nodes.filter(node => !node.parent);\n const withParent = nodes.filter(node => node.parent);\n\n // Based on the sortedNodes array, the nodes are sequentially created.\n // Nodes sorting is done in two steps to have the top-level nodes first.\n // This way, by the time we are adding a child node, the parent node is already present.\n const sortedNodes = sortByPriority(noParent).concat(sortByPriority(withParent));\n rootNode.empty();\n sortedNodes.forEach((node) => rootNode.addRoot(node));\n return rootNode.children;\n }),\n shareReplay(1)\n );\n }\n\n openOnFirstUrl(node: NavigatorNode) {\n if (this.firstUrl && !!node.path) {\n return this.router.isActive(node.path, node.routerLinkExact) || node.openOnStart(this.router.url);\n }\n return false;\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<NavigatorNode> {\n return this.state$.value;\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Adds a new node to the navigator.\n * @param nav The node to add.\n */\n add(item: NavigatorNode) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes a node from the navigator.\n * @param nav The node ro remove.\n */\n remove(item: NavigatorNode) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map, combineLatest, debounceTime } from 'rxjs/operators';\nimport { OptionsService } from '../common/options.service';\nimport { StateService } from '../common/state-service.abstract';\nimport { NavigatorService } from '../navigator/navigator.service';\nimport { Header } from './header.model';\n\n/**\n * A service which defines header functions.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class HeaderService extends StateService {\n header$: Observable<Header>;\n navigatorOpen$: Observable<boolean>;\n\n hasItemsInNavigator$ = this.navigatorService.items$.pipe(\n map(({ length }) => !!length),\n distinctUntilChanged()\n );\n\n state$: BehaviorSubject<Header> = new BehaviorSubject<Header>({\n title: undefined,\n nav: {\n open: false\n }\n });\n\n title = undefined;\n\n constructor(private navigatorService: NavigatorService, private options: OptionsService) {\n super();\n this.header$ = this.map((header: Header) => header);\n this.navigatorOpen$ = this.map(({ nav }) => nav.open).pipe(\n combineLatest(this.hasItemsInNavigator$),\n map(([open, hasItems]) => open && hasItems)\n );\n const titleReference = document.querySelector('title');\n this.title = {\n elementRef: titleReference,\n originalValue: titleReference && titleReference.innerText\n };\n }\n\n get state() {\n return this.state$.value;\n }\n\n get navigatorHiddenOnStartup() {\n return this.options.hideNavigator;\n }\n\n get largeWidth() {\n return document.documentElement.clientWidth > 1200;\n }\n\n get shouldToggle() {\n return this.largeWidth && !this.navigatorHiddenOnStartup && !this.state.nav.open;\n }\n\n /**\n * Toggles the navigator open status.\n */\n toggleNavigator() {\n this.state.nav.open = !this.state.nav.open;\n this.emitNewState();\n }\n\n /**\n * Force to close the navigator.\n */\n closeNavigator() {\n this.state.nav.open = false;\n this.emitNewState();\n }\n\n /**\n * Configures navigation options.\n * @param config Object with the properties:\n * - open: Boolean\n */\n configNavigator(config: any = {}) {\n this.state.nav = Object.assign(this.state.nav, config);\n this.emitNewState();\n }\n\n /**\n * Change the application title.\n * @param newTitle The new title of the application.\n */\n changeTitle(newTitle?: any) {\n this.state.title = newTitle;\n this.emitNewState();\n }\n\n /**\n * Change the page title.\n * @param newTitle The new title of the page.\n */\n changePageTitle(newTitle?: string) {\n this.title.elementRef.innerText = newTitle\n ? `${newTitle} / ${this.title.originalValue}`\n : `${this.title.originalValue}`;\n }\n\n /**\n * This methods checks if the navigator toggles on startup\n * or if an item is added to the navigator node.\n * Delay of 300ms is intended for animation purpose.\n */\n verifyIfNavOpen() {\n this.hasItemsInNavigator$\n .pipe(debounceTime(300))\n .subscribe(hasItems => hasItems && this.shouldToggle && this.toggleNavigator());\n }\n\n shouldShowBreadcrumbs() {\n return this.options.breadcrumbs;\n }\n}\n","import { Injectable, InjectionToken, Injector, ViewContainerRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, first, map, shareReplay } from 'rxjs/operators';\nimport { ExtensionPoint, fromTrigger, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { Tab } from './tab.model';\nimport { OptionsService } from '../common/options.service';\n\nexport const HOOK_TABS = new InjectionToken('TabsFactory');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TabsService extends StateService implements ExtensionPoint<Tab> {\n items$: Observable<Tab[]>;\n orientation$: Observable<string>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<Tab>>(new Set<Tab>());\n\n constructor(\n private injector: Injector,\n router: Router,\n private translateService: TranslateService,\n private options: OptionsService\n ) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_TABS, []),\n stateToFactory(this.state$)\n ]).pipe(\n map(tabs => this.prepareTabs(tabs)),\n shareReplay(1),\n distinctUntilChanged()\n );\n\n this.orientation$ = this.items$.pipe(\n map((tabs: Tab[]) => {\n const firstTabWithDefinedOrientation = tabs.find(tab => tab.orientation);\n if (firstTabWithDefinedOrientation) {\n return firstTabWithDefinedOrientation.orientation;\n }\n return this.options.tabsHorizontal ? 'horizontal' : 'vertical';\n }),\n distinctUntilChanged()\n );\n }\n\n prepareTabs(tabs) {\n return this.sortTabs(\n tabs\n .map(tab => ({\n ...tab,\n template: tab.template instanceof ViewContainerRef ? tab.template : undefined\n }))\n .filter((tab, index, self) => index === self.findIndex(t => t.path === tab.path))\n );\n }\n\n sortTabs(tabs) {\n return tabs.sort((a, b) => {\n const priorityOrder = (b.priority || 0) - (a.priority || 0);\n\n const aTranslatedLabel = this.translateService.instant(a.label);\n const bTranslatedLabel = this.translateService.instant(b.label);\n const translatedLabelOrder = aTranslatedLabel.localeCompare(bTranslatedLabel);\n\n return priorityOrder || translatedLabelOrder;\n });\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<Tab> {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to tabs and emits state change\n * @param item The item to add.\n */\n add(item: Tab) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes a tab and emits a state change.\n * @param item The item to remove.\n */\n remove(item: Tab) {\n this.state.delete(item);\n this.emitNewState();\n }\n\n get firstTab$() {\n return this.items$.pipe(\n map(tabs => tabs[0]),\n filter(Boolean),\n first()\n );\n }\n}\n","import { combineLatest, distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { ActionBarService } from '../action-bar/action-bar.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { Component } from '@angular/core';\nimport { HeaderService } from '../header/header.service';\nimport { NavigatorService } from '../navigator/navigator.service';\nimport { Observable } from 'rxjs';\nimport { OptionsService } from '../common/options.service';\nimport { TabsService } from '../tabs/tabs.service';\n\n@Component({\n selector: 'c8y-bootstrap',\n templateUrl: './bootstrap.template.html'\n})\nexport class BootstrapComponent {\n navigatorOpen$: Observable<boolean>;\n noAppsMargin$: Observable<boolean>;\n tabsOrientation: string;\n\n get showPoweredBy() {\n return !this.options.get('hidePowered');\n }\n\n constructor(\n public tabs: TabsService,\n public ui: AppStateService,\n public navigator: NavigatorService,\n public actionBar: ActionBarService,\n private options: OptionsService,\n public headerService: HeaderService\n ) {\n this.noAppsMargin$ = this.headerService.map(({ nav }) => !nav.open && nav.hiddenOnStartup);\n this.tabsOrientation = this.options.tabsHorizontal ? 'horizontal' : 'vertical';\n this.ui.map(({ lang }) => lang).pipe(\n distinctUntilChanged(),\n ).subscribe(() => {\n this.actionBar.refresh();\n });\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { fromTrigger, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { Breadcrumb, BreadcrumbItem } from './breadcrumb.model';\n\nexport const HOOK_BREADCRUMB = new InjectionToken('BreadcrumbFactory');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreadcrumbService extends StateService {\n items$: Observable<Breadcrumb[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<Breadcrumb>>(new Set<Breadcrumb>());\n private preferredPath: string;\n\n constructor(private injector: Injector, router: Router) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_BREADCRUMB, []),\n stateToFactory(this.state$)\n ]).pipe(\n map(breadcrumbs => this.sortByPreferredPath(breadcrumbs)),\n shareReplay(1)\n );\n }\n\n get state() {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the action bar in the header.\n * @param item The item to add.\n */\n add(item: Breadcrumb) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an action bar item from the header.\n * @param item The item to remove.\n */\n remove(item: Breadcrumb) {\n this.state.delete(item);\n this.emitNewState();\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Sets the crumb that contains that path to the top.\n * @param path The path to prefer.\n */\n selectPreferredByPath(path: string) {\n this.preferredPath = path;\n this.refresh();\n }\n\n sortByPreferredPath(breadcrumbs) {\n if (this.preferredPath) {\n return breadcrumbs.sort(bc =>\n bc.items.find((item: BreadcrumbItem) => !!item.path.match(this.preferredPath)) ? -1 : 1\n );\n }\n return breadcrumbs;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LANGUAGES = new InjectionToken('Languages');\n","import { InjectionToken } from '@angular/core';\n\nexport const LOCALE_PATH = new InjectionToken('Locale path');\n","import { InjectionToken } from '@angular/core';\n\nexport const HOOK_PATTERN_MESSAGES = new InjectionToken('Pattern Messages');\n","import { Injectable, Inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { mapValues, each } from 'lodash-es';\nimport { HOOK_PATTERN_MESSAGES } from './patterns-message.hook';\nimport { formatDate } from '@angular/common';\n\n/**\n * A service to translate messages by using regexp patterns.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class PatternMessagesService {\n translateService: TranslateService;\n patterns: any = {};\n pipes = {\n absoluteDate: (date: string|number|Date) =>\n formatDate(date, 'medium', this.translateService.currentLang),\n translate: (key) =>\n this.translateService.instant(key)\n };\n\n constructor(\n @Inject(HOOK_PATTERN_MESSAGES) patterns\n ) {\n each(patterns, (pattern) => {\n Object.assign(this.patterns, pattern);\n });\n }\n\n translate(message: string) {\n const translation = this.translateWithPatterns(message);\n return (translation !== message) ? translation : '';\n }\n\n private translateWithPatterns(message, patterns = this.patterns) {\n let translatedMessage = message;\n\n each(patterns, (patternCfg, pattern) => {\n const globalRegExp = new RegExp(pattern, 'g');\n let globalMatch;\n\n if (!globalRegExp.test(translatedMessage)) {\n return;\n }\n globalRegExp.test(''); // reset the regexp\n globalMatch = globalRegExp.exec(translatedMessage);\n while (globalMatch !== null) {\n const [ localMatch ] = globalMatch;\n\n const placeholderValues = mapValues(patternCfg.placeholders, (placeholder) => {\n const expr = placeholder.capture || placeholder;\n let replacement = localMatch.replace(new RegExp(pattern, 'g'), expr);\n\n if (placeholder.translate) {\n replacement = this.translateWithPatterns(replacement, placeholder.translate);\n }\n\n return replacement;\n });\n translatedMessage = translatedMessage.replace(\n localMatch,\n this.translateWithParams(patternCfg, placeholderValues)\n );\n\n globalMatch = globalRegExp.exec(translatedMessage);\n }\n });\n return translatedMessage;\n }\n\n private translateWithParams(patternCfg: any, params: any = {}) {\n const { defaultLang, currentLang, compiler } = this.translateService;\n const translations = this.translateService.store.translations[currentLang];\n const defaultTranslations = this.translateService.store.translations[defaultLang];\n const originalKey = patternCfg.gettext;\n\n let originalValue = originalKey;\n if (translations) {\n if (translations[originalKey]) {\n originalValue = translations[originalKey];\n } else if (defaultTranslations) {\n if (defaultTranslations[originalKey]) {\n originalValue = defaultTranslations[originalKey];\n }\n }\n }\n\n let key = originalKey;\n let value = originalValue;\n const interpolateParams = {\n ...params,\n noPatternMessages: true\n };\n\n let match;\n const pipeRegex = RegExp('{{\\\\s*([^\\\\s]+)\\\\s*\\\\|\\\\s*([^\\\\s]+)\\\\s*}}', 'g');\n // tslint:disable-next-line:no-conditional-assignment\n while ((match = pipeRegex.exec(originalKey)) !== null) {\n const [placeholder, paramName, pipeName] = match;\n if (this.pipes[pipeName]) {\n key = key.replace(placeholder, `{{${paramName}}}`);\n value = value.replace(placeholder, `{{${paramName}}}`);\n interpolateParams[paramName] = this.pipes[pipeName](params[paramName]);\n }\n }\n\n if (translations) {\n translations[key] = compiler.compile(value, currentLang);\n }\n return this.translateService.instant(key, interpolateParams);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PatternMessagesService } from './pattern-messages.service';\nimport {\n MissingTranslationHandler,\n MissingTranslationHandlerParams,\n TranslateParser,\n TranslateService\n} from '@ngx-translate/core';\n\n@Injectable()\nexport class MissingTranslationCustomHandler implements MissingTranslationHandler {\n translateService: TranslateService;\n cache: any = {};\n\n constructor(\n private parser: TranslateParser,\n private patternMessagesService: PatternMessagesService\n ) {}\n\n handle(params: MissingTranslationHandlerParams) {\n const { key: messageKey, interpolateParams, translateService } = params;\n this.translateService = translateService;\n\n let translation = this.getFromCache(messageKey, interpolateParams);\n\n if (!translation) {\n const patternMessageTranslation = this.getPatternMessageTranslation(messageKey, interpolateParams);\n if (patternMessageTranslation) {\n translation = patternMessageTranslation;\n } else {\n translation = this.parser.interpolate(messageKey, interpolateParams);\n }\n\n this.addToCache(messageKey, interpolateParams, translation);\n }\n\n return translation;\n }\n\n private getFromCache(messageKey: string, interpolateParams: object): string {\n const { currentLang } = this.translateService;\n const currentCache = this.cache[currentLang] || {};\n const cacheKey = this.getCacheKey(messageKey, interpolateParams);\n return currentCache[cacheKey];\n }\n\n private addToCache(messageKey: string, interpolateParams: object, translation: string) {\n const { currentLang } = this.translateService;\n const currentCache = this.cache[currentLang] = this.cache[currentLang] || {};\n const cacheKey = this.getCacheKey(messageKey, interpolateParams);\n currentCache[cacheKey] = translation;\n }\n\n private getCacheKey(messageKey: string, interpolateParams: object): string {\n return interpolateParams ? `${messageKey} ${JSON.stringify(interpolateParams)}` : messageKey;\n }\n\n private getPatternMessageTranslation(messageKey: string, interpolateParams: object): string {\n const shouldTryPatternMessages = !interpolateParams || !((interpolateParams as any).noPatternMessages);\n\n if (shouldTryPatternMessages) {\n if (!this.patternMessagesService.translateService) {\n this.patternMessagesService.translateService = this.translateService;\n }\n return this.patternMessagesService.translate(messageKey);\n }\n\n return undefined;\n }\n}\n","/* tslint:disable:max-line-length */\nimport { gettext } from './gettext';\n\nconst bulkOperationAuditLogTextPlaceholders = {\n updatesList: {\n capture: '$1',\n translate: {\n \"status='(.+?)'\": {\n gettext: gettext('status=\"{{status | translate}}\"'),\n placeholders: {\n status: '$1'\n }\n },\n \"generalStatus='(.+?)'\": {\n gettext: gettext('generalStatus=\"{{generalStatus | translate}}\"'),\n placeholders: {\n generalStatus: '$1'\n }\n },\n \"progress='(.+?)'\": {\n gettext: gettext('progress=\"{{progress}}\"'),\n placeholders: {\n progress: '$1'\n }\n },\n 'note=(.+?)': {\n gettext: gettext('note=\"{{note}}\"'),\n placeholders: {\n note: '$1'\n }\n }\n }\n }\n};\n\nexport const MESSAGES = {\n '^Access is denied$': {\n gettext: gettext('Access denied.')\n },\n '^Alarm created$': {\n gettext: gettext('Alarm created')\n },\n '^Alarm updated$': {\n gettext: gettext('Alarm updated')\n },\n '^API is not available with the new domain$': {\n gettext: gettext('Could not activate custom domain. DNS setup is incorrect.')\n },\n '^Application with given name already exist$': {\n gettext: gettext('Application with given name already exists.')\n },\n '^Application with id (.+?) is already assigned to the tenant (.+?)$': {\n gettext: gettext('This application is already assigned to tenant \"{{tenant}}\".'),\n placeholders: {\n tenant: '$2'\n }\n },\n '^Apply software changes: (.+?)\\\\.?$': {\n gettext: gettext('Apply software changes: {{ softwareChanges }}'),\n placeholders: {\n softwareChanges: {\n capture: '$1',\n translate: {\n 'install \"(.+?)\" \\\\(version: (.+?)\\\\)': {\n gettext: gettext('install \"{{ softwareName }}\" (version: {{ softwareVersion }})'),\n placeholders: {\n softwareName: '$1',\n softwareVersion: '$2'\n }\n },\n 'install \"([^\"]+)\"(?! \\\\(version: .+?\\\\))': {\n gettext: gettext('install \"{{ softwareName }}\"'),\n placeholders: {\n softwareName: '$1'\n }\n },\n 'delete \"(.+?)\" \\\\(version: (.+?)\\\\)': {\n gettext: gettext('delete \"{{ softwareName }}\" (version: {{ softwareVersion }})'),\n placeholders: {\n softwareName: '$1',\n softwareVersion: '$2'\n }\n },\n 'delete \"([^\"]+)\"(?! \\\\(version: .+?\\\\))': {\n gettext: gettext('delete \"{{ softwareName }}\"'),\n placeholders: {\n softwareName: '$1'\n }\n }\n }\n }\n }\n },\n '^Assign device profile (.+?) to device (.+?)$': {\n gettext: gettext('Assign device profile {{profileName}} to device {{deviceName}}'),\n placeholders: {\n profileName: '$1',\n deviceName: '$2'\n }\n },\n '^(.+)pplication for tenant (.+) with properties \\\\( (.+?) \\\\) already exists$': {\n gettext: gettext(\n 'Application for tenant \"{{tenant}}\" with the following values ({{valuesList}}) already exists.'\n ),\n placeholders: {\n tenant: '$2',\n valuesList: '$3'\n }\n },\n '^Authentication failed! : User account is locked$': {\n gettext: gettext('Authentication failed due to: user account is locked.')\n },\n '^Availability monitoring record$': {\n gettext: gettext('Availability monitoring record')\n },\n '^Can not activate a certificate which is either expired or not yet valid$': {\n gettext: gettext('Cannot activate a certificate which is either expired or not yet valid.')\n },\n '^Cannot add certificate - certificate with (.+?) fingerprint already exists. : Certificate with (.+?) fingerprint already exists.': {\n gettext: gettext(\n 'Could not add certificate. Certificate with {{fingerprint}} fingerprint already exists.'\n ),\n placeholders: {\n fingerprint: '$1'\n }\n },\n '^Cannot change password. : Provided token does not exist.$': {\n gettext: gettext('Cannot change password: provided token is invalid.')\n },\n '^Cannot deploy module (.*)$': {\n gettext: gettext('Cannot deploy module due to error: \"{{ errorMessage | translate }}\".'),\n placeholders: {\n errorMessage: '$1'\n }\n },\n \"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\\\d+) column (\\\\d+) \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}.'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n incorrectExpression: '$4',\n line: '$5',\n column: '$6'\n }\n },\n \"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\\\d+) column (\\\\d+) near reserved keyword '(.+?)' \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}} near reserved keyword \"{{keyword}}\".'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n incorrectExpression: '$4',\n line: '$5',\n column: '$6',\n keyword: '$7'\n }\n },\n \"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\\\d+) column (\\\\d+), please check the where clause \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}, check \"where\" clause.'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n incorrectExpression: '$4',\n line: '$5',\n column: '$6'\n }\n },\n \"^Cannot deploy module (.+?)! : Deployment failed in module '(.+?)' in expression '(.+?)' : Exception compiling script '(.+?)' of dialect '(.+?)': missing (.+?) before statement \\\\((.+?)\\\\) \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": exception compiling script \"{{scriptName}}\" of dialect \"{{scriptDialect}}\": missing \"{{missingSyntax}}\" before statement \"{{affectedStatement}}\".'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n scriptName: '$4',\n scriptDialect: '$5',\n missingSyntax: '$6',\n affectedStatement: '$7'\n }\n },\n \"^Cannot execute bulk operation on empty group. Group with id='(\\\\d+?)' doesn't have child assets.$\": {\n gettext: gettext(\n 'Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets.'\n ),\n placeholders: {\n groupId: '$1'\n }\n },\n \"^Cannot execute bulk operation on empty group. DynamicGroup with id='(\\\\d+?)' doesn't have child assets$\": {\n gettext: gettext(\n 'Could not execute bulk operation on an empty group. Smart group with ID \"{{groupId}}\" has no child assets.'\n ),\n placeholders: {\n groupId: '$1'\n }\n },\n '^Cannot parse X509 certificate. : Could not parse certificate: (.+?)$': {\n gettext: gettext('Could not parse X.509 certificate: {{ failureReason | translate }}.'),\n placeholders: {\n failureReason: '$1'\n }\n },\n '^Cannot reschedule bulk operation. All its operations are successful$': {\n gettext: gettext('Cannot reschedule bulk operation. All its operations are already successful.')\n },\n '^Cannot reset user password : Cannot find user with such email.$': {\n gettext: gettext('Cannot reset password for user with such email: email not found.')\n },\n '^Cannot update/delete application binary via this endpoint$': {\n gettext: gettext('Cannot update/delete application binary via this endpoint')\n },\n \"^Can't delete user because it is used by another managed object$\": {\n gettext: gettext(\n 'Cannot delete device with associated device owner because this owner is still assigned to other device(s). Try to remove only the device.'\n )\n },\n '^Cep module created$': {\n gettext: gettext('CEP module created')\n },\n '^Cep module updated$': {\n gettext: gettext('CEP module updated')\n },\n '^Cep module deleted$': {\n gettext: gettext('CEP module deleted')\n },\n '^Cep module \"(.+?)\" created$': {\n gettext: gettext('CEP module \"{{name}}\" created'),\n placeholders: {\n name: '$1'\n }\n },\n '^Cep module \"(.+?)\" updated$': {\n gettext: gettext('CEP module \"{{name}}\" updated'),\n placeholders: {\n name: '$1'\n }\n },\n '^Cep module \"(.+?)\" deleted$': {\n gettext: gettext('CEP module \"{{name}}\" deleted'),\n placeholders: {\n name: '$1'\n }\n },\n '^Command state is invalid: (.+)$': {\n gettext: gettext('Command state is invalid: {{violations}}'),\n placeholders: {\n violations: {\n capture: '$1',\n translate: {\n '(\\\\w+?) - may not be null': {\n gettext: gettext('\"{{field}}\" must not be null'),\n placeholders: {\n field: '$1'\n }\n }\n }\n }\n }\n },\n '^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\\\\.$': {\n gettext: gettext(\n '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.'\n ),\n placeholders: {\n endpointName: '$1',\n keyType: '$2',\n fingerprint: '$3',\n host: '$4',\n port: '$5'\n }\n },\n '^Could not login to ssh server on endpoint \"(.+)\"\\\\. Provided credential for user \"(.+)\" is incorrect\\\\.$': {\n gettext: gettext(\n 'Could not access SSH server on endpoint \"{{endpointName}}\". Provided credentials for user \"{{userName}}\" are incorrect.'\n ),\n placeholders: {\n endpointName: '$1',\n userName: '$2'\n }\n },\n '^Could not save object remoteAccessUpdate: (.+)$': {\n gettext: '{{errorMessages}}',\n placeholders: {\n errorMessages: {\n capture: '$1',\n translate: {\n 'Could not recognize host-key format': {\n gettext: gettext('Could not recognize \"Host key\" format')\n },\n 'Could not recognize key-pair format': {\n gettext: gettext('Could not recognize the format of \"Public key\" or \"Private key\"')\n }\n }\n }\n }\n },\n '^Could not update user. : Error persisting user (.+?)!$': {\n gettext: gettext('Could not update user \"{{username}}\".'),\n placeholders: {\n username: '$1'\n }\n },\n 'ˆCreate bulk operation$': {\n gettext: gettext('Create bulk operation')\n },\n '^Create bulk operation: (.+)$': {\n gettext: gettext('Create bulk operation: {{updatesList}}'),\n placeholders: bulkOperationAuditLogTextPlaceholders\n },\n '^Creation ramp must be greater than (\\\\d+?)$': {\n gettext: gettext('Bulk operation delay must be greater than {{minSeconds}} seconds.'),\n placeholders: {\n minSeconds: '$1'\n }\n },\n '^Created container$': {\n gettext: gettext('Container created.')\n },\n '^Created pod: (.+)$': {\n gettext: gettext('Pod \"{{imageName}}\" created.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^CSV file contained empty dataset$': {\n gettext: gettext('No entries found in uploaded CSV file.')\n },\n '^Cycle detected for route (.+?)!$': {\n gettext: gettext('Cycle detected for route {{route}}.'),\n placeholders: {\n route: '$1'\n }\n },\n '^Data broker processing is currently overloaded and may stop forwarding your data\\\\. Please contact support\\\\.$': {\n gettext: gettext(\n 'Data broker processing is currently overloaded and may stop forwarding your data. Please contact support.'\n )\n },\n '^Data broker processing is not able to connect do destination tenant, thus data forwarding is not working\\\\. Please contact support\\\\.$': {\n gettext: gettext(\n 'Data broker processing is not able to connect to destination tenant, thus data forwarding is not working. Please contact support.'\n )\n },\n '^Delete bulk operation$': {\n gettext: gettext('Delete bulk operation')\n },\n '^Delete bulk operation: (.+)$': {\n gettext: gettext('Delete bulk operation: {{updatesList}}'),\n placeholders: bulkOperationAuditLogTextPlaceholders\n },\n \"^Device id '(.+?)' contains '(.+?)' character which is not permitted.$\": {\n gettext: gettext('ID \"{{deviceId}}\" contains invalid character: \"{{invalidCharacter}}\".'),\n placeholders: {\n deviceId: '$1',\n invalidCharacter: '$2'\n }\n },\n \"^Device name: '(.+?)', alarm text: '(.+?)'$\": {\n gettext: gettext('Device name: \"{{deviceName}}\", alarm text: \"{{alarmText | translate}}\"'),\n placeholders: {\n deviceName: '$1',\n alarmText: '$2'\n }\n },\n '^Display name$': {\n gettext: gettext('Login alias')\n },\n '^Domain name in uploaded certificate differs from the one in use$': {\n gettext: gettext(\n 'Domain name in uploaded certificate differs from the one in use. Please deactivate the custom domain before uploading new certificate.'\n )\n },\n '^Domain name is already in use by another tenant!$': {\n gettext: gettext('Domain name is already used by another tenant.')\n },\n '^Duplicated connector for instanceUrl (.+?)!$': {\n gettext: gettext('Target URL {{targetUrl}} already used by another connector.'),\n placeholders: {\n targetUrl: '$1'\n }\n },\n '^Duplicated connector for name (.+?)!$': {\n gettext: gettext('Connector name \"{{name}}\" already used by another connector.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Entry is outside of the target dir: (.+)$': {\n gettext: gettext('File entry outside of the target directory: \"{{path}}\".'),\n placeholders: {\n path: '$1'\n }\n },\n '^Error during password validation. : Password must have at least (\\\\d+?) characters and no more than (\\\\d+?) and must contain only Latin1 characters.$': {\n gettext: gettext(\n 'Password is invalid. It must have at least {{minCharactersCount}} and no more than {{maxCharactersCount}} characters.'\n ),\n placeholders: {\n minCharactersCount: '$1',\n maxCharactersCount: '$2'\n }\n },\n '^Error during password validation. : Your password has been used already. Choose another.$': {\n gettext: gettext('This password has already been used earlier. Use a different one.')\n },\n \"^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Error in statement {{moduleName}}:{{statementNumber}}. Incorrect syntax near expression \"{{expression}}\" near reserved keyword \"{{keyword}}\".'\n ),\n placeholders: {\n moduleName: '$1',\n statementNumber: '$2',\n expression: '$3',\n keyword: '$4'\n }\n },\n '^External id not found; external id = ID \\\\[type=(.+?), value=(.+?)\\\\]$': {\n gettext: gettext('External ID not found for type \"{{type}}\" and value \"{{value}}\".'),\n placeholders: {\n type: '$1',\n value: '$2'\n }\n },\n '^Error occurred when trying to find an Application for id ID (.+) : Could not find application by ID (\\\\d+)$': {\n gettext: gettext('Could not find application by ID {{applicationId}}.'),\n placeholders: {\n applicationId: '$2'\n }\n },\n '^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\"}': {\n gettext: gettext('Unable to find option by given key: sigfox-agent/provider.token')\n },\n '^Failed to delete application. : Cannot remove application assigned to other tenants.$': {\n gettext: gettext('Could not delete application assigned to other tenants.')\n },\n '^Failed to extract certificate from PKCS12$': {\n gettext: gettext('Failed to extract certificate from PKCS12.')\n },\n '^Failed to update domain at the platform$': {\n gettext: gettext('Failed to update domain at the platform.')\n },\n \"^Finding device data from database failed : No managedObject for id '(.+?)'!$\": {\n gettext: gettext('Could not find managed object with ID \"{{deviceId}}\".'),\n placeholders: {\n deviceId: '$1'\n }\n },\n '^Following mandatory fields should be included: (.+?)$': {\n gettext: gettext('Following mandatory fields should be included: {{fields}}'),\n placeholders: {\n fields: '$1'\n }\n },\n '^Global Role updated$': {\n gettext: gettext('Global role updated')\n },\n '^Global Role (.+?) updated$': {\n gettext: gettext('Global role \"{{name}}\" updated'),\n placeholders: {\n name: '$1'\n }\n },\n '^Global Role (.+?) updated: (.+)$': {\n gettext: gettext('Global role \"{{name}}\" updated: {{updatesList}}'),\n placeholders: {\n name: '$1',\n updatesList: {\n capture: '$2',\n translate: {\n 'applications \\\\[([^\\\\]]+?)\\\\] added': {\n gettext: gettext('applications {{list}} added'),\n placeholders: {\n list: '$1'\n }\n },\n 'applications \\\\[([^\\\\]]+?)\\\\] removed': {\n gettext: gettext('applications {{list}} removed'),\n placeholders: {\n list: '$1'\n }\n },\n 'roles \\\\[([^\\\\]]+?)\\\\] added': {\n gettext: gettext('roles {{list}} added'),\n placeholders: {\n list: '$1'\n }\n },\n 'roles \\\\[([^\\\\]]+?)\\\\] removed': {\n gettext: gettext('roles {{list}} removed'),\n placeholders: {\n list: '$1'\n }\n }\n }\n }\n }\n },\n '^Global Roles$': {\n gettext: gettext('Global roles')\n },\n '^Operation updated: (.+)$': {\n gettext: gettext('Operation updated: {{updatesList}}'),\n placeholders: {\n updatesList: {\n capture: '$1',\n translate: {\n \"status='(.+?)'\": {\n gettext: gettext('status=\"{{status | translate}}\"'),\n placeholders: {\n status: '$1'\n }\n },\n \"description='(.+?)'\": {\n gettext: gettext('description=\"{{description | translate}}\"'),\n placeholders: {\n description: '$1'\n }\n },\n \"device name='(.+?)'\": {\n gettext: gettext('device name=\"{{deviceName}}\"'),\n placeholders: {\n deviceName: '$1'\n }\n },\n \"failure reason='(.+?)'\": {\n gettext: gettext('failure reason=\"{{failureReason | translate}}\"'),\n placeholders: {\n failureReason: '$1'\n }\n }\n }\n }\n }\n },\n '^ID \\\\[type=(.+?), value=(.+?)\\\\] was already bound to different Global ID.$': {\n gettext: gettext('External ID \"{{value}}\" of the type \"{{type}}\" already exists.'),\n placeholders: {\n type: '$1',\n value: '$2'\n }\n },\n '^Invalid credentials! : Bad credentials$': {\n gettext: gettext('Invalid credentials.')\n },\n '^Invalid credentials! : No phone number provided$': {\n gettext: gettext('Log into the management tenant first and enter your phone number.')\n },\n '^Inventory Role removed$': {\n gettext: gettext('Inventory role removed')\n },\n '^Inventory Role (.+?) removed': {\n gettext: gettext('Inventory role \"{{name}}\" deleted.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Inventory Role updated$': {\n gettext: gettext('Inventory role updated')\n },\n '^Inventory Role (.+?) updated': {\n gettext: gettext('Inventory role \"{{name}}\" updated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^I/O error: Connection refused; nested exception is Connection refused : Connection refused': {\n gettext: gettext('Connection refused')\n },\n '^I/O error: Read timed out; nested exception is Read timed out : Read timed out': {\n gettext: gettext('Read timed out')\n },\n '^Log file requested$': {\n gettext: gettext('Log file requested.')\n },\n '^Managed object deleted$': {\n gettext: gettext('Managed object deleted')\n },\n '^Managed object \"(.+?)\" deleted$': {\n gettext: gettext('Managed object \"{{name}}\" deleted'),\n placeholders: {\n name: '$1'\n }\n },\n '^Maximum file size exceeded$': {\n gettext: gettext('Maximum file size exceeded.')\n },\n \"^Message with ID (.+?) doesn't exist in smart rest template (.+?)$\": {\n gettext: gettext(\n 'Message with ID \"{{messageId}}\" doesn\\'t exist in SmartREST template with ID \"{{templateId}}\"'\n ),\n placeholders: {\n messageId: '$1',\n templateId: '$2'\n }\n },\n '^NewDeviceRequest for id = (.+?) already exists.$': {\n gettext: gettext('Device registration request with ID {{id}} already exists.'),\n placeholders: {\n id: '$1'\n }\n },\n '^No communication with device since (.+?)$': {\n gettext: gettext('No communication with device since {{timestamp | absoluteDate}}.'),\n placeholders: {\n timestamp: '$1'\n }\n },\n '^No data received from device within required interval.$': {\n gettext: gettext('No data received from device within required interval.')\n },\n '^No LoRa provider settings are found. Please configure the connectivity settings.$': {\n gettext: gettext(\n 'No LoRa provider settings are found. Please configure the connectivity settings.'\n )\n },\n '^Not within any context!$': {\n gettext: gettext('A problem occurred with microservice subscription.')\n },\n '^Maximum age cannot be bigger than 10 years.$': {\n gettext: gettext('Maximum age cannot be bigger than 10 years.')\n },\n '^Microservice application name incorrect. Please use only lower-case letters, digits and dashes. Maximum length is (\\\\d+) characters.$': {\n gettext: gettext(\n 'Microservice application name is incorrect: only lower case letters, digits and dashes allowed. Maximum length: {{maxLength}}.'\n ),\n placeholders: {\n maxLength: '$1'\n }\n },\n '^Microservice not available.*$': {\n gettext: gettext('Microservice is not available.')\n },\n '^Operation created$': {\n gettext: gettext('Operation created.')\n },\n '^Operation updated$': {\n gettext: gettext('Operation updated.')\n },\n \"^Operation created: status='(.+?)'.\": {\n gettext: gettext('Operation created: status=\"{{status | translate}}\".'),\n placeholders: {\n status: '$1'\n }\n },\n '^Option created$': {\n gettext: gettext('Option created.')\n },\n '^Option \"(.+?)\" created$': {\n gettext: gettext('Option \"{{option}}\" created.'),\n placeholders: {\n option: '$1'\n }\n },\n '^Option deleted$': {\n gettext: gettext('Option deleted.')\n },\n '^Option \"(.+?)\" deleted$': {\n gettext: gettext('Option \"{{option}}\" deleted.'),\n placeholders: {\n option: '$1'\n }\n },\n '^Owner field error. : Cannot introduce cyclic dependency.': {\n gettext: gettext('Could not introduce cyclic ownership dependency.')\n },\n '^Password change is temporary blocked.$': {\n gettext: gettext('Password change is temporarily blocked.')\n },\n '^Password cipher does not match': {\n gettext: gettext('Password cipher does not match.')\n },\n '^Platform application cannot be added to, nor removed from any tenant.$': {\n gettext: gettext('Platform application cannot be added to, nor removed from any tenant.')\n },\n '^Private key must be provided in KEY_PAIR credentials$': {\n gettext: gettext(\n 'Private key must be provided when \"Public / private keys\" option is selected.'\n )\n },\n '^Private key cipher does not match': {\n gettext: gettext('Private key cipher does not match')\n },\n '^Protocol \"(.+?)\" does not support \"(.+?)\" credentials type$': {\n gettext: gettext(\n 'Protocol \"{{protocol}}\" does not support \"{{credentialsType}}\" credentials type.'\n ),\n placeholders: {\n protocol: '$1',\n credentialsType: '$2'\n }\n },\n '^pulling image \"(.+)\"$': {\n gettext: gettext('Pulling image: \"{{imageName}}\".'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Real-time event processing is currently overloaded and may stop processing your events\\\\. Please contact support\\\\.$': {\n gettext: gettext(\n 'Real-time event processing is currently overloaded and may stop processing your events. Please contact support.'\n )\n },\n '^Resource ID \\\\[type=com_cumulocity_model_idtype_GId, value=(.+?)\\\\] for this request not found.$': {\n gettext: gettext('Could not find the resource with ID \"{{id}}\".'),\n placeholders: {\n id: '$1'\n }\n },\n '^Retrieve configuration snapshot from device (.+?)': {\n gettext: gettext('Retrieve configuration snapshot from device {{deviceName}}'),\n placeholders: {\n deviceName: '$1'\n }\n },\n '^Retrieve (.+?) configuration snapshot from device (.+?)': {\n gettext: gettext(\n 'Retrieve {{configurationType}} configuration snapshot from device {{deviceName}}'\n ),\n placeholders: {\n configurationType: '$1',\n deviceName: '$2'\n }\n },\n '^Scaled up replica set (.+) to (\\\\d+)$': {\n gettext: gettext('Replica set \"{{replicaSetName}}\" scaled up to \"{{scaleNumber}}\".'),\n placeholders: {\n replicaSetName: '$1',\n scaleNumber: '$2'\n }\n },\n '^Send configuration snapshot (.+?) of configuration type (.+?) to device (.+?)': {\n gettext: gettext(\n 'Send configuration snapshot {{snapshotName}} of configuration type {{configurationType}} to device {{deviceName}}'\n ),\n placeholders: {\n snapshotName: '$1',\n configurationType: '$2',\n deviceName: '$3'\n }\n },\n '^Send configuration snapshot (.+?) to device (.+?)': {\n gettext: gettext('Send configuration snapshot {{snapshotName}} to device {{deviceName}}'),\n placeholders: {\n snapshotName: '$1',\n deviceName: '$2'\n }\n },\n '^Simulator state is invalid: (.+)$': {\n gettext: gettext('Simulator state is invalid: {{violations}}'),\n placeholders: {\n violations: {\n capture: '$1',\n translate: {\n '(\\\\w+?) - may not be null': {\n gettext: gettext('\"{{field}}\" should not be null'),\n placeholders: {\n field: '$1'\n }\n },\n '(\\\\w+?) - must be less than or equal to (\\\\d+)': {\n gettext: gettext('\"{{field}}\" must be less than or equal to {{maxValue}}'),\n placeholders: {\n field: '$1',\n maxValue: '$2'\n }\n },\n '(\\\\w+?) - should not contain null values': {\n gettext: gettext('\"{{field}}\" should not contain null values'),\n placeholders: {\n field: '$1'\n }\n }\n }\n }\n }\n },\n \"^Smart rest template (.+?) doesn't exist$\": {\n gettext: gettext('SmartREST template with id \"{{templateId}}\" doesn\\'t exist'),\n placeholders: {\n templateId: '$1'\n }\n },\n '^Smart rule created$': {\n gettext: gettext('Smart rule created.')\n },\n '^Smart rule updated$': {\n gettext: gettext('Smart rule updated.')\n },\n '^Smart rule enabled$': {\n gettext: gettext('Smart rule activated.')\n },\n '^Smart rule disabled$': {\n gettext: gettext('Smart rule deactivated.')\n },\n '^Smart rule deleted$': {\n gettext: gettext('Smart rule deleted.')\n },\n '^Smart rule \"(.+?)\" created$': {\n gettext: gettext('Smart rule \"{{name}}\" created.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" updated$': {\n gettext: gettext('Smart rule \"{{name}}\" updated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" enabled$': {\n gettext: gettext('Smart rule \"{{name}}\" activated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" disabled$': {\n gettext: gettext('Smart rule \"{{name}}\" deactivated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" deleted$': {\n gettext: gettext('Smart rule \"{{name}}\" deleted.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Started container$': {\n gettext: gettext('Container started.')\n },\n '^Successfully assigned (.+) to (.+)$': {\n gettext: gettext('\"{{imageName}}\" assigned to \"{{address}}\".'),\n placeholders: {\n imageName: '$1',\n address: '$2'\n }\n },\n '^Successfully pulled image \"(.+)\"$': {\n gettext: gettext('Image \"{{imageName}}\" pulled.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Tenant creation failed. : Tenant with given id already exists.$': {\n gettext: gettext('Could not create a tenant. Tenant with given domain/URL already exists.')\n },\n '^Tenant id cannot be a reserved sql keyword \"(.+?)\".$': {\n gettext: gettext('Could not use a reserved SQL keyword \"{{tenantId}}\" as a domain name.'),\n placeholders: {\n tenantId: '$1'\n }\n },\n '^Tenant \"(.+?)\" activated$': {\n gettext: gettext('Tenant \"{{tenant}}\" activated.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant (.+?) has sub-tenants, please remove them first!$': {\n gettext: gettext('Could not remove tenant \"{{tenant}}\". Remove its subtenants first.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant activated$': {\n gettext: gettext('Tenant activated')\n },\n '^Tenant \"(.+?)\" created$': {\n gettext: gettext('Tenant \"{{tenant}}\" created.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant created$': {\n gettext: gettext('Tenant created')\n },\n '^Tenant \"(.+?)\" deleted$': {\n gettext: gettext('Tenant \"{{tenant}}\" deleted.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant deleted$': {\n gettext: gettext('Tenant deleted')\n },\n '^Tenant \"(.+?)\" suspended$': {\n gettext: gettext('Tenant \"{{tenant}}\" suspended.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant suspended$': {\n gettext: gettext('Tenant suspended')\n },\n '^Tenant \"(.+?)\" updated: (.+?)$': {\n gettext: gettext('Tenant \"{{tenant}}\" updated: {{properties}}.'),\n placeholders: {\n tenant: '$1',\n properties: '$2'\n }\n },\n '^Tenant updated$': {\n gettext: gettext('Tenant updated')\n },\n '^Too Many Requests$': {\n gettext: gettext('Too many requests. Try again later.')\n },\n \"^User alias equals username '(.+)'$\": {\n gettext: gettext('Username and login alias must be different.')\n },\n '^User created$': {\n gettext: gettext('User created')\n },\n '^User (.+?) created$': {\n gettext: gettext('User \"{{name}}\" created'),\n placeholders: {\n name: '$1'\n }\n },\n '^User deleted$': {\n gettext: gettext('User deleted')\n },\n '^User (.+?) deleted$': {\n gettext: gettext('User \"{{name}}\" deleted'),\n placeholders: {\n name: '$1'\n }\n },\n '^User updated$': {\n gettext: gettext('User updated')\n },\n '^User (.+?) updated: (.+)$': {\n gettext: gettext('User \"{{name}}\" updated: {{updatesList}}'),\n placeholders: {\n name: '$1',\n updatesList: {\n capture: '$2',\n translate: {\n \"delegatedBy='(.+?)'\": {\n gettext: gettext('delegated by: \"{{delegate}}\"'),\n placeholders: {\n delegate: '$1'\n }\n },\n \"owner='(.+?)'\": {\n gettext: gettext('owner: \"{{owner}}\"'),\n placeholders: {\n owner: '$1'\n }\n },\n 'inventory assignment \\\\[(.+?)\\\\] added': {\n gettext: gettext('inventory assignment [{{inventoryAssignment}}] added'),\n placeholders: {\n inventoryAssignment: '$1'\n }\n },\n 'inventory assignment \\\\[(.+?)\\\\] removed': {\n gettext: gettext('inventory assignment [{{inventoryAssignment}}] removed'),\n placeholders: {\n inventoryAssignment: '$1'\n }\n },\n 'applications \\\\[(.+?)\\\\] added$': {\n gettext: gettext('applications [{{applicationsList}}] added'),\n placeholders: {\n applicationsList: '$1'\n }\n },\n 'applications \\\\[(.+?)\\\\] removed$': {\n gettext: gettext('applications [{{applicationsList}}] removed'),\n placeholders: {\n applicationsList: '$1'\n }\n },\n 'global roles \\\\[(.+?)\\\\] added$': {\n gettext: gettext('global roles [{{globalRolesList}}] added'),\n placeholders: {\n globalRolesList: '$1'\n }\n },\n 'global roles \\\\[(.+?)\\\\] removed$': {\n gettext: gettext('global roles [{{globalRolesList}}] removed'),\n placeholders: {\n globalRolesList: '$1'\n }\n }\n }\n }\n }\n },\n \"^User with username '(.+?)' already exists! : Duplicated: (.+?)$\": {\n gettext: gettext('User \"{{username}}\" already exists.'),\n placeholders: {\n username: '$1'\n }\n },\n \"^User with username or alias '(.+)' already exists! : Duplicated: (.+)$\": {\n gettext: gettext('User with username or login alias \"{{usernameOrAlias}}\" already exists.'),\n placeholders: {\n usernameOrAlias: '$1'\n }\n },\n \"^User with email '(.+?)' already exists! : Duplicated: (.+?)$\": {\n gettext: gettext('User with email \"{{email}}\" already exists.'),\n placeholders: {\n email: '$1'\n }\n },\n '^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$': {\n gettext: gettext('Unable to get tenant option: \"{{option}}\".'),\n placeholders: {\n option: '$2'\n }\n },\n '^unable to find option with given key (.+?) : There is no system property for key (.+?)$': {\n gettext: gettext('Unable to get system option: \"{{option}}\".'),\n placeholders: {\n option: '$2'\n }\n },\n '^Write failed with error code 16733 and error message \\'trying to index text where term list is too big, max is 4mb _id: \"(.+?)\"\\'$': {\n gettext: gettext('The uploaded image cannot be bigger than 4 MB. Please upload a smaller one.')\n },\n '^Write failed with error code 17280 and error message \\'WiredTigerIndex::insert: key too large to index, failing (.+?) { : \"(.+?)\" }\\'$': {\n gettext: gettext('The chosen name is too long. Please try a shorter one.')\n },\n '^You have reached devices limit. No more devices can be registered.$': {\n gettext: gettext('You reached devices limit. No more devices can be registered.')\n },\n '^(.+) succeeded for volume \"(.+)\"': {\n gettext: gettext('Operation \"{{operation}}\" succeeded for volume \"{{volume}}\".'),\n placeholders: {\n operation: '$1',\n volume: '$2'\n }\n },\n \"^Exception on tenant (.+) in statement '(.+)': Invocation exception when invoking method '(.+)' of class '(.+)' passing parameters \\\\[(.+)\\\\] for statement '(.+)': (.+) : (.+)$\": {\n gettext: gettext(\n 'Exception on tenant {{tenantId}} in statement \"{{moduleName}}\": Invocation exception when invoking method \"{{methodName}}\" of class \"{{classPath}}\" passing parameters [{{parameters}}] for statement \"{{statement}}\": {{exceptionType}} : {{exceptionMessage}}.'\n ),\n placeholders: {\n tenantId: '$1',\n moduleName: '$2',\n methodName: '$3',\n classPath: '$4',\n parameters: '$5',\n statement: '$6',\n exceptionType: '$7',\n exceptionMessage: '$8'\n }\n },\n '^No nodes are available that match all of the predicates: (.+).$': {\n gettext: gettext('No nodes are available that match all of the predicates: [{{predicates}}].'),\n placeholders: {\n predicates: '$1'\n }\n },\n '^Readiness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\\\(Client.Timeout exceeded while awaiting headers\\\\)$': {\n gettext: gettext(\n 'Readiness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).'\n ),\n placeholders: {\n requestMethod: '$1',\n uri: '$2',\n protocol: '$3'\n }\n },\n '^Liveness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\\\(Client.Timeout exceeded while awaiting headers\\\\)$': {\n gettext: gettext(\n 'Liveness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).'\n ),\n placeholders: {\n requestMethod: '$1',\n uri: '$2',\n protocol: '$3'\n }\n },\n '^Error syncing pod$': {\n gettext: gettext('Pod synchronization error.')\n },\n '^Failed create pod sandbox.$': {\n gettext: gettext('Pod sandbox creation failed.')\n },\n '^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\"\\\\}$': {\n gettext: gettext(\n 'Exception on tenant {{tenantId}} in statement \"{{statement}}\": HTTP status code: {{httpStatusCode}} : {{message | translate}}'\n ),\n placeholders: {\n tenantId: '$1',\n statement: '$2',\n httpStatusCode: '$3',\n message: '$4'\n }\n },\n \"^User '(.+)' is managed by a remote identity management service defined by an administrator, direct update is forbidden$\": {\n gettext: gettext(\n 'User \"{{userName}}\" is managed by a remote identity management service defined by an administrator, direct update is forbidden.'\n ),\n placeholders: {\n userName: '$1'\n }\n },\n '^Added new child device to \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Added new child device to \"{{parentDeviceName}}\" (ID: {{parentDeviceId}}).'),\n placeholders: {\n parentDeviceName: '$1',\n parentDeviceId: '$2'\n }\n },\n '^Updated child device of \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Updated child device of \"{{parentDeviceName}}\" (ID: {{parentDeviceId}}).'),\n placeholders: {\n parentDeviceName: '$1',\n parentDeviceId: '$2'\n }\n },\n '^Added child device \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Added child device \"{{name}}\" (ID: {{id}}).'),\n placeholders: {\n name: '$1',\n id: '$2'\n }\n },\n '^Removed child device \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Removed child device \"{{name}}\" (ID: {{id}}).'),\n placeholders: {\n name: '$1',\n id: '$2'\n }\n },\n '^Change value of \"(.+)\" to (.+) (.+).$': {\n gettext: gettext('Change value of \"{{name}}\" to {{value}}{{unit}}.'),\n placeholders: {\n name: '$1',\n value: '$2',\n unit: '$3'\n }\n },\n '^Change value of \"(.+)\" to (.+).$': {\n gettext: gettext('Change value of \"{{name}}\" to {{value}}.'),\n placeholders: {\n name: '$1',\n value: '$2'\n }\n },\n '^Change status of \"(.+)\" to \"(.+)\".$': {\n gettext: gettext('Change status of \"{{name}}\" to \"{{label}}\".'),\n placeholders: {\n name: '$1',\n label: '$2'\n }\n },\n '^Send message \"(.+)\".$': {\n gettext: gettext('Send message \"{{str}}\".'),\n placeholders: {\n str: '$1'\n }\n },\n '^Close relay (.+).$': {\n gettext: gettext('Close relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Open relay (.+).$': {\n gettext: gettext('Open relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Change trace status to (.+).$': {\n gettext: gettext('Change trace status to {{state | translate}}.'),\n placeholders: {\n state: '$1'\n }\n },\n '^Change relay status to (.+).$': {\n gettext: gettext('Change relay status to {{status | translate}}.'),\n placeholders: {\n status: '$1'\n }\n },\n '^Closing relay (.+).$': {\n gettext: gettext('Closing relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Opening relay (.+).$': {\n gettext: gettext('Opening relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Update bulk operation$': {\n gettext: gettext('Update bulk operation')\n },\n '^Update bulk operation: (.+)$': {\n gettext: gettext('Update bulk operation: {{updatesList}}'),\n placeholders: bulkOperationAuditLogTextPlaceholders\n },\n '^Update firmware to: \"?(.+?)\"? \\\\(version: (.+)\\\\)\\\\.?$': {\n gettext: gettext('Update firmware to: \"{{ name }}\" (version: {{ version }})'),\n placeholders: {\n name: '$1',\n version: '$2'\n }\n },\n '^Update firmware to: \"?(.+?)\"?\\\\.?$': {\n gettext: gettext('Update firmware to: \"{{ name }}\"'),\n placeholders: {\n name: '$1'\n }\n },\n '^Update configuration to (.+).$': {\n gettext: gettext('Update configuration to: {{ name }}.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Apply device profile: (.+).?$': {\n gettext: gettext('Apply device profile: {{ name }}'),\n placeholders: {\n name: '$1'\n }\n },\n '^Execute generic command: (.+).?$': {\n gettext: gettext('Execute generic command: {{command}}'),\n placeholders: {\n command: '$1'\n }\n },\n '^Failed to refresh application. : Cannot refresh non local-hosted application.$': {\n gettext: gettext('Could not reactivate the application as it is not hosted locally.')\n },\n '^Failed to refresh application. : Cannot refresh application without active version id.$': {\n gettext: gettext('Could not reactivate the application as it has no active version.')\n },\n // TODO: remove if we decide not to translate such messages:\n // '^Killing container with id (.+):Need to kill Pod$': {\n // gettext: gettext('Killing container with ID \"{{containerId}}\". Need to kill Pod.'),\n // placeholders: {\n // containerId: '$1'\n // }\n // },\n '^Scaled down replica set (.+) to (\\\\d+)$': {\n gettext: gettext('Replica set \"{{replicaSetName}}\" scaled down to \"{{scaleNumber}}\".'),\n placeholders: {\n replicaSetName: '$1',\n scaleNumber: '$2'\n }\n },\n '^Deleted pod: (.+)$': {\n gettext: gettext('Pod \"{{imageName}}\" deleted.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Container image \"(.+)\" already present on machine$': {\n gettext: gettext('Container image \"{{imageName}}\" already exists.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$': {\n gettext: gettext(\n 'This login mode was already set by another administrator. Refresh the page to update the data.'\n )\n }\n};\n","import { Injectable } from '@angular/core';\n\n/**\n * A service to provide unmodified, cached translations for angular.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class CachedLocaleDictionaryService {\n cachedDictionary = {};\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { Observable, of } from 'rxjs';\nimport { map, catchError, tap } from 'rxjs/operators';\nimport { Inject, Injectable } from '@angular/core';\nimport { LOCALE_PATH } from './locale.path';\nimport { LANGUAGES } from './languages';\nimport { OptionsService } from '../common/options.service';\nimport { mapKeys } from 'lodash-es';\nimport { CachedLocaleDictionaryService } from './cached-locale-dictionary.service';\n\n@Injectable()\nexport class TranslateCustomLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n private optionsService: OptionsService,\n private cachedLocaleDictionaryService: CachedLocaleDictionaryService,\n @Inject(LOCALE_PATH) private path: string = null,\n @Inject(LANGUAGES) private languages: any = null\n ) {}\n\n getTranslation(lang: string): Observable<any> {\n const path = this.path || '';\n let url = `${path}${lang}.json`;\n if (this.languages && this.languages[lang] && this.languages[lang].url) {\n url = this.languages[lang].url;\n }\n\n return this.http.get(url).pipe(\n map(d => {\n if (this.optionsService.langsDetails && this.optionsService.langsDetails[lang]) {\n return { ...d[lang], ...this.optionsService.langsDetails[lang] };\n }\n return d[lang];\n }),\n tap(dictionary => {\n this.cachedLocaleDictionaryService.cachedDictionary[lang] = dictionary;\n }),\n map(dictionary => this.getDictionaryWithTrimmedKeys(dictionary)),\n catchError(() => of({}))\n );\n }\n\n /**\n * We want to have translation keys unified, so they don't contain unnecessary spaces and line breaks.\n * This way we can dynamically build keys from HTML, and match them to extracted string, that might be HTML as well.\n */\n getDictionaryWithTrimmedKeys(dictionary: object) {\n return mapKeys(dictionary, (value, key) =>\n trimTranslationKey(key)\n );\n }\n\n}\n\nexport function trimTranslationKey(key) {\n return key.replace(/(\\r\\n|\\n|\\r)/gm, '').replace(/\\s{2,}/g, ' ').trim();\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateDefaultParser } from '@ngx-translate/core';\nimport { get } from 'lodash-es';\nimport { trimTranslationKey } from './translate.loader';\n\nfunction isDefined(value: any): boolean {\n return typeof value !== 'undefined' && value !== null;\n}\n\n@Injectable()\nexport class TranslateParserCustom extends TranslateDefaultParser {\n\n getValue(target: any, key: string): any {\n const trimmedKey = trimTranslationKey(key);\n let translated = get(target, [trimmedKey]);\n if (!translated) {\n const keys = key.split('.');\n if (keys.length > 1) {\n translated = get(target, key);\n }\n }\n return translated;\n }\n}\n","import {\n DefaultLangChangeEvent,\n LangChangeEvent,\n TranslateService,\n TranslationChangeEvent\n} from '@ngx-translate/core';\nimport {\n AfterViewChecked,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isEqual } from 'lodash-es';\n\n/**\n * This is temporary fallback directive that is used to handle HTML blocks translation on maintenance versions\n * in version 10.9.4 and later, this is replaced by default translate directive.\n */\n@Directive({\n selector: '[forceHtmlTranslate]'\n})\nexport class ForceHtmlTranslateDirective implements AfterViewChecked, OnDestroy {\n currentParams: any;\n onLangChangeSub: Subscription;\n onDefaultLangChangeSub: Subscription;\n onTranslationChangeSub: Subscription;\n\n /**\n * Used to trigger events when html is replaced by directive.\n */\n htmlUpdateEvent: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() set translateParams(params: any) {\n if (!isEqual(this.currentParams, params)) {\n this.currentParams = params;\n this.checkNodes();\n }\n }\n\n constructor(\n private translateService: TranslateService,\n private element: ElementRef,\n private _ref: ChangeDetectorRef\n ) {\n // subscribe to onTranslationChange event, in case the translations of the current lang change\n if (!this.onTranslationChangeSub) {\n this.onTranslationChangeSub = this.translateService.onTranslationChange.subscribe(\n (event: TranslationChangeEvent) => {\n if (event.lang === this.translateService.currentLang) {\n this.checkNodes();\n }\n }\n );\n }\n\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChangeSub) {\n this.onLangChangeSub = this.translateService.onLangChange.subscribe(\n (event: LangChangeEvent) => {\n this.checkNodes();\n }\n );\n }\n\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub = this.translateService.onDefaultLangChange.subscribe(\n (event: DefaultLangChangeEvent) => {\n this.checkNodes();\n }\n );\n }\n }\n\n ngAfterViewChecked() {\n this.checkNodes();\n }\n\n checkNodes() {\n if (this.isLookupKeyMissing()) {\n this.element.nativeElement.lookupKey = this.getLookupKey();\n }\n this.translateAndUpdateHtmlContent();\n this.htmlUpdateEvent.emit();\n }\n\n ngOnDestroy() {\n if (this.onLangChangeSub) {\n this.onLangChangeSub.unsubscribe();\n }\n\n if (this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub.unsubscribe();\n }\n\n if (this.onTranslationChangeSub) {\n this.onTranslationChangeSub.unsubscribe();\n }\n this.htmlUpdateEvent.complete();\n }\n\n /**\n * Builds lookup key from innerHTML, removes comments (that might be added by Angular) and trims it.\n */\n private getLookupKey() {\n return this.element.nativeElement.innerHTML.replace(/<!--.*?-->/gs, '').trim();\n }\n\n private isLookupKeyMissing(): boolean {\n return !this.element.nativeElement.lookupKey;\n }\n\n private lookupKeyExist(): boolean {\n return this.element.nativeElement.lookupKey;\n }\n\n private translateAndUpdateHtmlContent(): void {\n if (this.lookupKeyExist()) {\n this.element.nativeElement.innerHTML = this.translateService.instant(\n this.element.nativeElement.lookupKey,\n this.currentParams || {}\n );\n }\n }\n}\n","import { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { LOCALE_ID, NgModule } from '@angular/core';\nimport {\n MissingTranslationHandler,\n TranslateService as NgxTranslateService,\n TranslateCompiler,\n TranslateFakeCompiler,\n TranslateLoader,\n TranslateModule,\n TranslateParser,\n TranslateStore,\n USE_DEFAULT_LANG,\n USE_STORE,\n USE_EXTEND,\n DEFAULT_LANGUAGE\n} from '@ngx-translate/core';\nimport { OptionsService } from '../common/public-api';\nimport { AppStateService } from '../common/ui-state.service';\nimport { LANGUAGES } from './languages';\nimport { LOCALE_PATH } from './locale.path';\nimport { MissingTranslationCustomHandler } from './missing-translation-custom.handler';\nimport { MESSAGES } from './pattern-messages.data';\nimport { HOOK_PATTERN_MESSAGES } from './patterns-message.hook';\nimport { TranslateCustomLoader } from './translate.loader';\nimport { TranslateParserCustom } from './translate.parser';\nimport { CachedLocaleDictionaryService } from './cached-locale-dictionary.service';\nimport { ForceHtmlTranslateDirective } from './force-html-translate.directive';\n\n// Load these as a side effect\ntry {\n // tslint:disable:no-var-requires\n require('@c8y/ngx-components/locales/de.po');\n require('@c8y/ngx-components/locales/en.po');\n require('@c8y/ngx-components/locales/es.po');\n require('@c8y/ngx-components/locales/fr.po');\n require('@c8y/ngx-components/locales/ja_JP.po');\n // tslint:enable:no-var-requires\n} catch (e) {\n // empty block\n}\n\nconst angularLocalesLanguageMap = { en: 'en-GB', 'en-EN': 'en-GB' };\n\n// AoT requires an exported function for factories\nexport function translateLoaderFactory(\n httpClient: HttpClient,\n optionsService: OptionsService,\n cachedLocaleDictionaryService: CachedLocaleDictionaryService,\n localePath: string,\n languages: any\n) {\n return new TranslateCustomLoader(httpClient, optionsService, cachedLocaleDictionaryService, localePath, languages);\n}\n\nexport function localePathFactory(options: OptionsService) {\n return options.localePath;\n}\n\nexport function languagesFactory(options: OptionsService) {\n return options.languages;\n}\n\nexport function localeId(appStateService: AppStateService) {\n return {\n get lang() {\n return getAngularLocalesLanguageString(appStateService.state.lang || 'en');\n },\n toLowerCase() {\n return this.lang.toLowerCase();\n },\n toString() {\n return this.lang;\n }\n };\n}\n\nexport function getAngularLocalesLanguageString(language) {\n return angularLocalesLanguageMap[language] || language;\n}\n\n/**\n * The angular module definition for i18n (translation).\n * @exports I18nModule\n */\n@NgModule({\n exports: [TranslateModule, ForceHtmlTranslateDirective],\n imports: [HttpClientModule],\n declarations: [ForceHtmlTranslateDirective]\n})\nexport class I18nModule {\n static providers() {\n return [\n { provide: LOCALE_ID, useFactory: localeId, deps: [AppStateService] },\n { provide: HOOK_PATTERN_MESSAGES, useValue: MESSAGES, multi: true },\n { provide: LOCALE_PATH, useFactory: localePathFactory, deps: [OptionsService] },\n { provide: LANGUAGES, useFactory: languagesFactory, deps: [OptionsService] },\n\n // Extracted from projects/ngx-translate/core/src/public_api.ts\n {\n provide: TranslateLoader,\n useFactory: translateLoaderFactory,\n deps: [HttpClient, OptionsService, CachedLocaleDictionaryService, LOCALE_PATH, LANGUAGES]\n },\n { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\n { provide: TranslateParser, useClass: TranslateParserCustom },\n { provide: MissingTranslationHandler, useClass: MissingTranslationCustomHandler },\n TranslateStore,\n NgxTranslateService,\n { provide: USE_STORE, useValue: undefined },\n { provide: USE_DEFAULT_LANG, useValue: undefined },\n { provide: USE_EXTEND, useValue: false },\n { provide: DEFAULT_LANGUAGE, useValue: undefined }\n ];\n }\n static forRoot() {\n return {\n ngModule: I18nModule,\n providers: I18nModule.providers()\n };\n }\n}\n","/* tslint:disable */\nrequire('!file-loader?name=assets/locales/angular/af-NA.js!@angular/common/locales/af-NA.js');\nrequire('!file-loader?name=assets/locales/angular/af.js!@angular/common/locales/af.js');\nrequire('!file-loader?name=assets/locales/angular/agq.js!@angular/common/locales/agq.js');\nrequire('!file-loader?name=assets/locales/angular/ak.js!@angular/common/locales/ak.js');\nrequire('!file-loader?name=assets/locales/angular/am.js!@angular/common/locales/am.js');\nrequire('!file-loader?name=assets/locales/angular/ar-AE.js!@angular/common/locales/ar-AE.js');\nrequire('!file-loader?name=assets/locales/angular/ar-BH.js!@angular/common/locales/ar-BH.js');\nrequire('!file-loader?name=assets/locales/angular/ar-DJ.js!@angular/common/locales/ar-DJ.js');\nrequire('!file-loader?name=assets/locales/angular/ar-DZ.js!@angular/common/locales/ar-DZ.js');\nrequire('!file-loader?name=assets/locales/angular/ar-EG.js!@angular/common/locales/ar-EG.js');\nrequire('!file-loader?name=assets/locales/angular/ar-EH.js!@angular/common/locales/ar-EH.js');\nrequire('!file-loader?name=assets/locales/angular/ar-ER.js!@angular/common/locales/ar-ER.js');\nrequire('!file-loader?name=assets/locales/angular/ar-IL.js!@angular/common/locales/ar-IL.js');\nrequire('!file-loader?name=assets/locales/angular/ar-IQ.js!@angular/common/locales/ar-IQ.js');\nrequire('!file-loader?name=assets/locales/angular/ar-JO.js!@angular/common/locales/ar-JO.js');\nrequire('!file-loader?name=assets/locales/angular/ar-KM.js!@angular/common/locales/ar-KM.js');\nrequire('!file-loader?name=assets/locales/angular/ar-KW.js!@angular/common/locales/ar-KW.js');\nrequire('!file-loader?name=assets/locales/angular/ar-LB.js!@angular/common/locales/ar-LB.js');\nrequire('!file-loader?name=assets/locales/angular/ar-LY.js!@angular/common/locales/ar-LY.js');\nrequire('!file-loader?name=assets/locales/angular/ar-MA.js!@angular/common/locales/ar-MA.js');\nrequire('!file-loader?name=assets/locales/angular/ar-MR.js!@angular/common/locales/ar-MR.js');\nrequire('!file-loader?name=assets/locales/angular/ar-OM.js!@angular/common/locales/ar-OM.js');\nrequire('!file-loader?name=assets/locales/angular/ar-PS.js!@angular/common/locales/ar-PS.js');\nrequire('!file-loader?name=assets/locales/angular/ar-QA.js!@angular/common/locales/ar-QA.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SA.js!@angular/common/locales/ar-SA.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SD.js!@angular/common/locales/ar-SD.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SO.js!@angular/common/locales/ar-SO.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SS.js!@angular/common/locales/ar-SS.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SY.js!@angular/common/locales/ar-SY.js');\nrequire('!file-loader?name=assets/locales/angular/ar-TD.js!@angular/common/locales/ar-TD.js');\nrequire('!file-loader?name=assets/locales/angular/ar-TN.js!@angular/common/locales/ar-TN.js');\nrequire('!file-loader?name=assets/locales/angular/ar-YE.js!@angular/common/locales/ar-YE.js');\nrequire('!file-loader?name=assets/locales/angular/ar.js!@angular/common/locales/ar.js');\nrequire('!file-loader?name=assets/locales/angular/as.js!@angular/common/locales/as.js');\nrequire('!file-loader?name=assets/locales/angular/asa.js!@angular/common/locales/asa.js');\nrequire('!file-loader?name=assets/locales/angular/ast.js!@angular/common/locales/ast.js');\nrequire('!file-loader?name=assets/locales/angular/az-Cyrl.js!@angular/common/locales/az-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/az-Latn.js!@angular/common/locales/az-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/az.js!@angular/common/locales/az.js');\nrequire('!file-loader?name=assets/locales/angular/bas.js!@angular/common/locales/bas.js');\nrequire('!file-loader?name=assets/locales/angular/be.js!@angular/common/locales/be.js');\nrequire('!file-loader?name=assets/locales/angular/bem.js!@angular/common/locales/bem.js');\nrequire('!file-loader?name=assets/locales/angular/bez.js!@angular/common/locales/bez.js');\nrequire('!file-loader?name=assets/locales/angular/bg.js!@angular/common/locales/bg.js');\nrequire('!file-loader?name=assets/locales/angular/bm.js!@angular/common/locales/bm.js');\nrequire('!file-loader?name=assets/locales/angular/bn-IN.js!@angular/common/locales/bn-IN.js');\nrequire('!file-loader?name=assets/locales/angular/bn.js!@angular/common/locales/bn.js');\nrequire('!file-loader?name=assets/locales/angular/bo-IN.js!@angular/common/locales/bo-IN.js');\nrequire('!file-loader?name=assets/locales/angular/bo.js!@angular/common/locales/bo.js');\nrequire('!file-loader?name=assets/locales/angular/br.js!@angular/common/locales/br.js');\nrequire('!file-loader?name=assets/locales/angular/brx.js!@angular/common/locales/brx.js');\nrequire('!file-loader?name=assets/locales/angular/bs-Cyrl.js!@angular/common/locales/bs-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/bs-Latn.js!@angular/common/locales/bs-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/bs.js!@angular/common/locales/bs.js');\nrequire('!file-loader?name=assets/locales/angular/ca-AD.js!@angular/common/locales/ca-AD.js');\nrequire('!file-loader?name=assets/locales/angular/ca-ES-VALENCIA.js!@angular/common/locales/ca-ES-VALENCIA.js');\nrequire('!file-loader?name=assets/locales/angular/ca-FR.js!@angular/common/locales/ca-FR.js');\nrequire('!file-loader?name=assets/locales/angular/ca-IT.js!@angular/common/locales/ca-IT.js');\nrequire('!file-loader?name=assets/locales/angular/ca.js!@angular/common/locales/ca.js');\nrequire('!file-loader?name=assets/locales/angular/ccp-IN.js!@angular/common/locales/ccp-IN.js');\nrequire('!file-loader?name=assets/locales/angular/ccp.js!@angular/common/locales/ccp.js');\nrequire('!file-loader?name=assets/locales/angular/ce.js!@angular/common/locales/ce.js');\nrequire('!file-loader?name=assets/locales/angular/cgg.js!@angular/common/locales/cgg.js');\nrequire('!file-loader?name=assets/locales/angular/chr.js!@angular/common/locales/chr.js');\nrequire('!file-loader?name=assets/locales/angular/ckb-IR.js!@angular/common/locales/ckb-IR.js');\nrequire('!file-loader?name=assets/locales/angular/ckb.js!@angular/common/locales/ckb.js');\nrequire('!file-loader?name=assets/locales/angular/cs.js!@angular/common/locales/cs.js');\nrequire('!file-loader?name=assets/locales/angular/cu.js!@angular/common/locales/cu.js');\nrequire('!file-loader?name=assets/locales/angular/cy.js!@angular/common/locales/cy.js');\nrequire('!file-loader?name=assets/locales/angular/da-GL.js!@angular/common/locales/da-GL.js');\nrequire('!file-loader?name=assets/locales/angular/da.js!@angular/common/locales/da.js');\nrequire('!file-loader?name=assets/locales/angular/dav.js!@angular/common/locales/dav.js');\nrequire('!file-loader?name=assets/locales/angular/de-AT.js!@angular/common/locales/de-AT.js');\nrequire('!file-loader?name=assets/locales/angular/de-BE.js!@angular/common/locales/de-BE.js');\nrequire('!file-loader?name=assets/locales/angular/de-CH.js!@angular/common/locales/de-CH.js');\nrequire('!file-loader?name=assets/locales/angular/de-IT.js!@angular/common/locales/de-IT.js');\nrequire('!file-loader?name=assets/locales/angular/de-LI.js!@angular/common/locales/de-LI.js');\nrequire('!file-loader?name=assets/locales/angular/de-LU.js!@angular/common/locales/de-LU.js');\nrequire('!file-loader?name=assets/locales/angular/de.js!@angular/common/locales/de.js');\nrequire('!file-loader?name=assets/locales/angular/dje.js!@angular/common/locales/dje.js');\nrequire('!file-loader?name=assets/locales/angular/dsb.js!@angular/common/locales/dsb.js');\nrequire('!file-loader?name=assets/locales/angular/dua.js!@angular/common/locales/dua.js');\nrequire('!file-loader?name=assets/locales/angular/dyo.js!@angular/common/locales/dyo.js');\nrequire('!file-loader?name=assets/locales/angular/dz.js!@angular/common/locales/dz.js');\nrequire('!file-loader?name=assets/locales/angular/ebu.js!@angular/common/locales/ebu.js');\nrequire('!file-loader?name=assets/locales/angular/ee-TG.js!@angular/common/locales/ee-TG.js');\nrequire('!file-loader?name=assets/locales/angular/ee.js!@angular/common/locales/ee.js');\nrequire('!file-loader?name=assets/locales/angular/el-CY.js!@angular/common/locales/el-CY.js');\nrequire('!file-loader?name=assets/locales/angular/el.js!@angular/common/locales/el.js');\nrequire('!file-loader?name=assets/locales/angular/en-001.js!@angular/common/locales/en-001.js');\nrequire('!file-loader?name=assets/locales/angular/en-150.js!@angular/common/locales/en-150.js');\nrequire('!file-loader?name=assets/locales/angular/en-AG.js!@angular/common/locales/en-AG.js');\nrequire('!file-loader?name=assets/locales/angular/en-AI.js!@angular/common/locales/en-AI.js');\nrequire('!file-loader?name=assets/locales/angular/en-AS.js!@angular/common/locales/en-AS.js');\nrequire('!file-loader?name=assets/locales/angular/en-AT.js!@angular/common/locales/en-AT.js');\nrequire('!file-loader?name=assets/locales/angular/en-AU.js!@angular/common/locales/en-AU.js');\nrequire('!file-loader?name=assets/locales/angular/en-BB.js!@angular/common/locales/en-BB.js');\nrequire('!file-loader?name=assets/locales/angular/en-BE.js!@angular/common/locales/en-BE.js');\nrequire('!file-loader?name=assets/locales/angular/en-BI.js!@angular/common/locales/en-BI.js');\nrequire('!file-loader?name=assets/locales/angular/en-BM.js!@angular/common/locales/en-BM.js');\nrequire('!file-loader?name=assets/locales/angular/en-BS.js!@angular/common/locales/en-BS.js');\nrequire('!file-loader?name=assets/locales/angular/en-BW.js!@angular/common/locales/en-BW.js');\nrequire('!file-loader?name=assets/locales/angular/en-BZ.js!@angular/common/locales/en-BZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-CA.js!@angular/common/locales/en-CA.js');\nrequire('!file-loader?name=assets/locales/angular/en-CC.js!@angular/common/locales/en-CC.js');\nrequire('!file-loader?name=assets/locales/angular/en-CH.js!@angular/common/locales/en-CH.js');\nrequire('!file-loader?name=assets/locales/angular/en-CK.js!@angular/common/locales/en-CK.js');\nrequire('!file-loader?name=assets/locales/angular/en-CM.js!@angular/common/locales/en-CM.js');\nrequire('!file-loader?name=assets/locales/angular/en-CX.js!@angular/common/locales/en-CX.js');\nrequire('!file-loader?name=assets/locales/angular/en-CY.js!@angular/common/locales/en-CY.js');\nrequire('!file-loader?name=assets/locales/angular/en-DE.js!@angular/common/locales/en-DE.js');\nrequire('!file-loader?name=assets/locales/angular/en-DG.js!@angular/common/locales/en-DG.js');\nrequire('!file-loader?name=assets/locales/angular/en-DK.js!@angular/common/locales/en-DK.js');\nrequire('!file-loader?name=assets/locales/angular/en-DM.js!@angular/common/locales/en-DM.js');\nrequire('!file-loader?name=assets/locales/angular/en-ER.js!@angular/common/locales/en-ER.js');\nrequire('!file-loader?name=assets/locales/angular/en-FI.js!@angular/common/locales/en-FI.js');\nrequire('!file-loader?name=assets/locales/angular/en-FJ.js!@angular/common/locales/en-FJ.js');\nrequire('!file-loader?name=assets/locales/angular/en-FK.js!@angular/common/locales/en-FK.js');\nrequire('!file-loader?name=assets/locales/angular/en-FM.js!@angular/common/locales/en-FM.js');\nrequire('!file-loader?name=assets/locales/angular/en-GB.js!@angular/common/locales/en-GB.js');\nrequire('!file-loader?name=assets/locales/angular/en-GD.js!@angular/common/locales/en-GD.js');\nrequire('!file-loader?name=assets/locales/angular/en-GG.js!@angular/common/locales/en-GG.js');\nrequire('!file-loader?name=assets/locales/angular/en-GH.js!@angular/common/locales/en-GH.js');\nrequire('!file-loader?name=assets/locales/angular/en-GI.js!@angular/common/locales/en-GI.js');\nrequire('!file-loader?name=assets/locales/angular/en-GM.js!@angular/common/locales/en-GM.js');\nrequire('!file-loader?name=assets/locales/angular/en-GU.js!@angular/common/locales/en-GU.js');\nrequire('!file-loader?name=assets/locales/angular/en-GY.js!@angular/common/locales/en-GY.js');\nrequire('!file-loader?name=assets/locales/angular/en-HK.js!@angular/common/locales/en-HK.js');\nrequire('!file-loader?name=assets/locales/angular/en-IE.js!@angular/common/locales/en-IE.js');\nrequire('!file-loader?name=assets/locales/angular/en-IL.js!@angular/common/locales/en-IL.js');\nrequire('!file-loader?name=assets/locales/angular/en-IM.js!@angular/common/locales/en-IM.js');\nrequire('!file-loader?name=assets/locales/angular/en-IN.js!@angular/common/locales/en-IN.js');\nrequire('!file-loader?name=assets/locales/angular/en-IO.js!@angular/common/locales/en-IO.js');\nrequire('!file-loader?name=assets/locales/angular/en-JE.js!@angular/common/locales/en-JE.js');\nrequire('!file-loader?name=assets/locales/angular/en-JM.js!@angular/common/locales/en-JM.js');\nrequire('!file-loader?name=assets/locales/angular/en-KE.js!@angular/common/locales/en-KE.js');\nrequire('!file-loader?name=assets/locales/angular/en-KI.js!@angular/common/locales/en-KI.js');\nrequire('!file-loader?name=assets/locales/angular/en-KN.js!@angular/common/locales/en-KN.js');\nrequire('!file-loader?name=assets/locales/angular/en-KY.js!@angular/common/locales/en-KY.js');\nrequire('!file-loader?name=assets/locales/angular/en-LC.js!@angular/common/locales/en-LC.js');\nrequire('!file-loader?name=assets/locales/angular/en-LR.js!@angular/common/locales/en-LR.js');\nrequire('!file-loader?name=assets/locales/angular/en-LS.js!@angular/common/locales/en-LS.js');\nrequire('!file-loader?name=assets/locales/angular/en-MG.js!@angular/common/locales/en-MG.js');\nrequire('!file-loader?name=assets/locales/angular/en-MH.js!@angular/common/locales/en-MH.js');\nrequire('!file-loader?name=assets/locales/angular/en-MO.js!@angular/common/locales/en-MO.js');\nrequire('!file-loader?name=assets/locales/angular/en-MP.js!@angular/common/locales/en-MP.js');\nrequire('!file-loader?name=assets/locales/angular/en-MS.js!@angular/common/locales/en-MS.js');\nrequire('!file-loader?name=assets/locales/angular/en-MT.js!@angular/common/locales/en-MT.js');\nrequire('!file-loader?name=assets/locales/angular/en-MU.js!@angular/common/locales/en-MU.js');\nrequire('!file-loader?name=assets/locales/angular/en-MW.js!@angular/common/locales/en-MW.js');\nrequire('!file-loader?name=assets/locales/angular/en-MY.js!@angular/common/locales/en-MY.js');\nrequire('!file-loader?name=assets/locales/angular/en-NA.js!@angular/common/locales/en-NA.js');\nrequire('!file-loader?name=assets/locales/angular/en-NF.js!@angular/common/locales/en-NF.js');\nrequire('!file-loader?name=assets/locales/angular/en-NG.js!@angular/common/locales/en-NG.js');\nrequire('!file-loader?name=assets/locales/angular/en-NL.js!@angular/common/locales/en-NL.js');\nrequire('!file-loader?name=assets/locales/angular/en-NR.js!@angular/common/locales/en-NR.js');\nrequire('!file-loader?name=assets/locales/angular/en-NU.js!@angular/common/locales/en-NU.js');\nrequire('!file-loader?name=assets/locales/angular/en-NZ.js!@angular/common/locales/en-NZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-PG.js!@angular/common/locales/en-PG.js');\nrequire('!file-loader?name=assets/locales/angular/en-PH.js!@angular/common/locales/en-PH.js');\nrequire('!file-loader?name=assets/locales/angular/en-PK.js!@angular/common/locales/en-PK.js');\nrequire('!file-loader?name=assets/locales/angular/en-PN.js!@angular/common/locales/en-PN.js');\nrequire('!file-loader?name=assets/locales/angular/en-PR.js!@angular/common/locales/en-PR.js');\nrequire('!file-loader?name=assets/locales/angular/en-PW.js!@angular/common/locales/en-PW.js');\nrequire('!file-loader?name=assets/locales/angular/en-RW.js!@angular/common/locales/en-RW.js');\nrequire('!file-loader?name=assets/locales/angular/en-SB.js!@angular/common/locales/en-SB.js');\nrequire('!file-loader?name=assets/locales/angular/en-SC.js!@angular/common/locales/en-SC.js');\nrequire('!file-loader?name=assets/locales/angular/en-SD.js!@angular/common/locales/en-SD.js');\nrequire('!file-loader?name=assets/locales/angular/en-SE.js!@angular/common/locales/en-SE.js');\nrequire('!file-loader?name=assets/locales/angular/en-SG.js!@angular/common/locales/en-SG.js');\nrequire('!file-loader?name=assets/locales/angular/en-SH.js!@angular/common/locales/en-SH.js');\nrequire('!file-loader?name=assets/locales/angular/en-SI.js!@angular/common/locales/en-SI.js');\nrequire('!file-loader?name=assets/locales/angular/en-SL.js!@angular/common/locales/en-SL.js');\nrequire('!file-loader?name=assets/locales/angular/en-SS.js!@angular/common/locales/en-SS.js');\nrequire('!file-loader?name=assets/locales/angular/en-SX.js!@angular/common/locales/en-SX.js');\nrequire('!file-loader?name=assets/locales/angular/en-SZ.js!@angular/common/locales/en-SZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-TC.js!@angular/common/locales/en-TC.js');\nrequire('!file-loader?name=assets/locales/angular/en-TK.js!@angular/common/locales/en-TK.js');\nrequire('!file-loader?name=assets/locales/angular/en-TO.js!@angular/common/locales/en-TO.js');\nrequire('!file-loader?name=assets/locales/angular/en-TT.js!@angular/common/locales/en-TT.js');\nrequire('!file-loader?name=assets/locales/angular/en-TV.js!@angular/common/locales/en-TV.js');\nrequire('!file-loader?name=assets/locales/angular/en-TZ.js!@angular/common/locales/en-TZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-UG.js!@angular/common/locales/en-UG.js');\nrequire('!file-loader?name=assets/locales/angular/en-UM.js!@angular/common/locales/en-UM.js');\nrequire('!file-loader?name=assets/locales/angular/en-US-POSIX.js!@angular/common/locales/en-US-POSIX.js');\nrequire('!file-loader?name=assets/locales/angular/en-VC.js!@angular/common/locales/en-VC.js');\nrequire('!file-loader?name=assets/locales/angular/en-VG.js!@angular/common/locales/en-VG.js');\nrequire('!file-loader?name=assets/locales/angular/en-VI.js!@angular/common/locales/en-VI.js');\nrequire('!file-loader?name=assets/locales/angular/en-VU.js!@angular/common/locales/en-VU.js');\nrequire('!file-loader?name=assets/locales/angular/en-WS.js!@angular/common/locales/en-WS.js');\nrequire('!file-loader?name=assets/locales/angular/en-ZA.js!@angular/common/locales/en-ZA.js');\nrequire('!file-loader?name=assets/locales/angular/en-ZM.js!@angular/common/locales/en-ZM.js');\nrequire('!file-loader?name=assets/locales/angular/en-ZW.js!@angular/common/locales/en-ZW.js');\nrequire('!file-loader?name=assets/locales/angular/en.js!@angular/common/locales/en.js');\nrequire('!file-loader?name=assets/locales/angular/eo.js!@angular/common/locales/eo.js');\nrequire('!file-loader?name=assets/locales/angular/es-419.js!@angular/common/locales/es-419.js');\nrequire('!file-loader?name=assets/locales/angular/es-AR.js!@angular/common/locales/es-AR.js');\nrequire('!file-loader?name=assets/locales/angular/es-BO.js!@angular/common/locales/es-BO.js');\nrequire('!file-loader?name=assets/locales/angular/es-BR.js!@angular/common/locales/es-BR.js');\nrequire('!file-loader?name=assets/locales/angular/es-BZ.js!@angular/common/locales/es-BZ.js');\nrequire('!file-loader?name=assets/locales/angular/es-CL.js!@angular/common/locales/es-CL.js');\nrequire('!file-loader?name=assets/locales/angular/es-CO.js!@angular/common/locales/es-CO.js');\nrequire('!file-loader?name=assets/locales/angular/es-CR.js!@angular/common/locales/es-CR.js');\nrequire('!file-loader?name=assets/locales/angular/es-CU.js!@angular/common/locales/es-CU.js');\nrequire('!file-loader?name=assets/locales/angular/es-DO.js!@angular/common/locales/es-DO.js');\nrequire('!file-loader?name=assets/locales/angular/es-EA.js!@angular/common/locales/es-EA.js');\nrequire('!file-loader?name=assets/locales/angular/es-EC.js!@angular/common/locales/es-EC.js');\nrequire('!file-loader?name=assets/locales/angular/es-GQ.js!@angular/common/locales/es-GQ.js');\nrequire('!file-loader?name=assets/locales/angular/es-GT.js!@angular/common/locales/es-GT.js');\nrequire('!file-loader?name=assets/locales/angular/es-HN.js!@angular/common/locales/es-HN.js');\nrequire('!file-loader?name=assets/locales/angular/es-IC.js!@angular/common/locales/es-IC.js');\nrequire('!file-loader?name=assets/locales/angular/es-MX.js!@angular/common/locales/es-MX.js');\nrequire('!file-loader?name=assets/locales/angular/es-NI.js!@angular/common/locales/es-NI.js');\nrequire('!file-loader?name=assets/locales/angular/es-PA.js!@angular/common/locales/es-PA.js');\nrequire('!file-loader?name=assets/locales/angular/es-PE.js!@angular/common/locales/es-PE.js');\nrequire('!file-loader?name=assets/locales/angular/es-PH.js!@angular/common/locales/es-PH.js');\nrequire('!file-loader?name=assets/locales/angular/es-PR.js!@angular/common/locales/es-PR.js');\nrequire('!file-loader?name=assets/locales/angular/es-PY.js!@angular/common/locales/es-PY.js');\nrequire('!file-loader?name=assets/locales/angular/es-SV.js!@angular/common/locales/es-SV.js');\nrequire('!file-loader?name=assets/locales/angular/es-US.js!@angular/common/locales/es-US.js');\nrequire('!file-loader?name=assets/locales/angular/es-UY.js!@angular/common/locales/es-UY.js');\nrequire('!file-loader?name=assets/locales/angular/es-VE.js!@angular/common/locales/es-VE.js');\nrequire('!file-loader?name=assets/locales/angular/es.js!@angular/common/locales/es.js');\nrequire('!file-loader?name=assets/locales/angular/et.js!@angular/common/locales/et.js');\nrequire('!file-loader?name=assets/locales/angular/eu.js!@angular/common/locales/eu.js');\nrequire('!file-loader?name=assets/locales/angular/ewo.js!@angular/common/locales/ewo.js');\nrequire('!file-loader?name=assets/locales/angular/fa-AF.js!@angular/common/locales/fa-AF.js');\nrequire('!file-loader?name=assets/locales/angular/fa.js!@angular/common/locales/fa.js');\nrequire('!file-loader?name=assets/locales/angular/ff-CM.js!@angular/common/locales/ff-CM.js');\nrequire('!file-loader?name=assets/locales/angular/ff-GN.js!@angular/common/locales/ff-GN.js');\nrequire('!file-loader?name=assets/locales/angular/ff-MR.js!@angular/common/locales/ff-MR.js');\nrequire('!file-loader?name=assets/locales/angular/ff.js!@angular/common/locales/ff.js');\nrequire('!file-loader?name=assets/locales/angular/fi.js!@angular/common/locales/fi.js');\nrequire('!file-loader?name=assets/locales/angular/fil.js!@angular/common/locales/fil.js');\nrequire('!file-loader?name=assets/locales/angular/fo-DK.js!@angular/common/locales/fo-DK.js');\nrequire('!file-loader?name=assets/locales/angular/fo.js!@angular/common/locales/fo.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BE.js!@angular/common/locales/fr-BE.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BF.js!@angular/common/locales/fr-BF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BI.js!@angular/common/locales/fr-BI.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BJ.js!@angular/common/locales/fr-BJ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BL.js!@angular/common/locales/fr-BL.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CA.js!@angular/common/locales/fr-CA.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CD.js!@angular/common/locales/fr-CD.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CF.js!@angular/common/locales/fr-CF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CG.js!@angular/common/locales/fr-CG.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CH.js!@angular/common/locales/fr-CH.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CI.js!@angular/common/locales/fr-CI.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CM.js!@angular/common/locales/fr-CM.js');\nrequire('!file-loader?name=assets/locales/angular/fr-DJ.js!@angular/common/locales/fr-DJ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-DZ.js!@angular/common/locales/fr-DZ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GA.js!@angular/common/locales/fr-GA.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GF.js!@angular/common/locales/fr-GF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GN.js!@angular/common/locales/fr-GN.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GP.js!@angular/common/locales/fr-GP.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GQ.js!@angular/common/locales/fr-GQ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-HT.js!@angular/common/locales/fr-HT.js');\nrequire('!file-loader?name=assets/locales/angular/fr-KM.js!@angular/common/locales/fr-KM.js');\nrequire('!file-loader?name=assets/locales/angular/fr-LU.js!@angular/common/locales/fr-LU.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MA.js!@angular/common/locales/fr-MA.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MC.js!@angular/common/locales/fr-MC.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MF.js!@angular/common/locales/fr-MF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MG.js!@angular/common/locales/fr-MG.js');\nrequire('!file-loader?name=assets/locales/angular/fr-ML.js!@angular/common/locales/fr-ML.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MQ.js!@angular/common/locales/fr-MQ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MR.js!@angular/common/locales/fr-MR.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MU.js!@angular/common/locales/fr-MU.js');\nrequire('!file-loader?name=assets/locales/angular/fr-NC.js!@angular/common/locales/fr-NC.js');\nrequire('!file-loader?name=assets/locales/angular/fr-NE.js!@angular/common/locales/fr-NE.js');\nrequire('!file-loader?name=assets/locales/angular/fr-PF.js!@angular/common/locales/fr-PF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-PM.js!@angular/common/locales/fr-PM.js');\nrequire('!file-loader?name=assets/locales/angular/fr-RE.js!@angular/common/locales/fr-RE.js');\nrequire('!file-loader?name=assets/locales/angular/fr-RW.js!@angular/common/locales/fr-RW.js');\nrequire('!file-loader?name=assets/locales/angular/fr-SC.js!@angular/common/locales/fr-SC.js');\nrequire('!file-loader?name=assets/locales/angular/fr-SN.js!@angular/common/locales/fr-SN.js');\nrequire('!file-loader?name=assets/locales/angular/fr-SY.js!@angular/common/locales/fr-SY.js');\nrequire('!file-loader?name=assets/locales/angular/fr-TD.js!@angular/common/locales/fr-TD.js');\nrequire('!file-loader?name=assets/locales/angular/fr-TG.js!@angular/common/locales/fr-TG.js');\nrequire('!file-loader?name=assets/locales/angular/fr-TN.js!@angular/common/locales/fr-TN.js');\nrequire('!file-loader?name=assets/locales/angular/fr-VU.js!@angular/common/locales/fr-VU.js');\nrequire('!file-loader?name=assets/locales/angular/fr-WF.js!@angular/common/locales/fr-WF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-YT.js!@angular/common/locales/fr-YT.js');\nrequire('!file-loader?name=assets/locales/angular/fr.js!@angular/common/locales/fr.js');\nrequire('!file-loader?name=assets/locales/angular/fur.js!@angular/common/locales/fur.js');\nrequire('!file-loader?name=assets/locales/angular/fy.js!@angular/common/locales/fy.js');\nrequire('!file-loader?name=assets/locales/angular/ga.js!@angular/common/locales/ga.js');\nrequire('!file-loader?name=assets/locales/angular/gd.js!@angular/common/locales/gd.js');\nrequire('!file-loader?name=assets/locales/angular/gl.js!@angular/common/locales/gl.js');\nrequire('!file-loader?name=assets/locales/angular/gsw-FR.js!@angular/common/locales/gsw-FR.js');\nrequire('!file-loader?name=assets/locales/angular/gsw-LI.js!@angular/common/locales/gsw-LI.js');\nrequire('!file-loader?name=assets/locales/angular/gsw.js!@angular/common/locales/gsw.js');\nrequire('!file-loader?name=assets/locales/angular/gu.js!@angular/common/locales/gu.js');\nrequire('!file-loader?name=assets/locales/angular/guz.js!@angular/common/locales/guz.js');\nrequire('!file-loader?name=assets/locales/angular/gv.js!@angular/common/locales/gv.js');\nrequire('!file-loader?name=assets/locales/angular/ha-GH.js!@angular/common/locales/ha-GH.js');\nrequire('!file-loader?name=assets/locales/angular/ha-NE.js!@angular/common/locales/ha-NE.js');\nrequire('!file-loader?name=assets/locales/angular/ha.js!@angular/common/locales/ha.js');\nrequire('!file-loader?name=assets/locales/angular/haw.js!@angular/common/locales/haw.js');\nrequire('!file-loader?name=assets/locales/angular/he.js!@angular/common/locales/he.js');\nrequire('!file-loader?name=assets/locales/angular/hi.js!@angular/common/locales/hi.js');\nrequire('!file-loader?name=assets/locales/angular/hr-BA.js!@angular/common/locales/hr-BA.js');\nrequire('!file-loader?name=assets/locales/angular/hr.js!@angular/common/locales/hr.js');\nrequire('!file-loader?name=assets/locales/angular/hsb.js!@angular/common/locales/hsb.js');\nrequire('!file-loader?name=assets/locales/angular/hu.js!@angular/common/locales/hu.js');\nrequire('!file-loader?name=assets/locales/angular/hy.js!@angular/common/locales/hy.js');\nrequire('!file-loader?name=assets/locales/angular/id.js!@angular/common/locales/id.js');\nrequire('!file-loader?name=assets/locales/angular/ig.js!@angular/common/locales/ig.js');\nrequire('!file-loader?name=assets/locales/angular/ii.js!@angular/common/locales/ii.js');\nrequire('!file-loader?name=assets/locales/angular/is.js!@angular/common/locales/is.js');\nrequire('!file-loader?name=assets/locales/angular/it-CH.js!@angular/common/locales/it-CH.js');\nrequire('!file-loader?name=assets/locales/angular/it-SM.js!@angular/common/locales/it-SM.js');\nrequire('!file-loader?name=assets/locales/angular/it-VA.js!@angular/common/locales/it-VA.js');\nrequire('!file-loader?name=assets/locales/angular/it.js!@angular/common/locales/it.js');\nrequire('!file-loader?name=assets/locales/angular/ja.js!@angular/common/locales/ja.js');\nrequire('!file-loader?name=assets/locales/angular/jgo.js!@angular/common/locales/jgo.js');\nrequire('!file-loader?name=assets/locales/angular/jmc.js!@angular/common/locales/jmc.js');\nrequire('!file-loader?name=assets/locales/angular/ka.js!@angular/common/locales/ka.js');\nrequire('!file-loader?name=assets/locales/angular/kab.js!@angular/common/locales/kab.js');\nrequire('!file-loader?name=assets/locales/angular/kam.js!@angular/common/locales/kam.js');\nrequire('!file-loader?name=assets/locales/angular/kde.js!@angular/common/locales/kde.js');\nrequire('!file-loader?name=assets/locales/angular/kea.js!@angular/common/locales/kea.js');\nrequire('!file-loader?name=assets/locales/angular/khq.js!@angular/common/locales/khq.js');\nrequire('!file-loader?name=assets/locales/angular/ki.js!@angular/common/locales/ki.js');\nrequire('!file-loader?name=assets/locales/angular/kk.js!@angular/common/locales/kk.js');\nrequire('!file-loader?name=assets/locales/angular/kkj.js!@angular/common/locales/kkj.js');\nrequire('!file-loader?name=assets/locales/angular/kl.js!@angular/common/locales/kl.js');\nrequire('!file-loader?name=assets/locales/angular/kln.js!@angular/common/locales/kln.js');\nrequire('!file-loader?name=assets/locales/angular/km.js!@angular/common/locales/km.js');\nrequire('!file-loader?name=assets/locales/angular/kn.js!@angular/common/locales/kn.js');\nrequire('!file-loader?name=assets/locales/angular/ko-KP.js!@angular/common/locales/ko-KP.js');\nrequire('!file-loader?name=assets/locales/angular/ko.js!@angular/common/locales/ko.js');\nrequire('!file-loader?name=assets/locales/angular/kok.js!@angular/common/locales/kok.js');\nrequire('!file-loader?name=assets/locales/angular/ks.js!@angular/common/locales/ks.js');\nrequire('!file-loader?name=assets/locales/angular/ksb.js!@angular/common/locales/ksb.js');\nrequire('!file-loader?name=assets/locales/angular/ksf.js!@angular/common/locales/ksf.js');\nrequire('!file-loader?name=assets/locales/angular/ksh.js!@angular/common/locales/ksh.js');\nrequire('!file-loader?name=assets/locales/angular/kw.js!@angular/common/locales/kw.js');\nrequire('!file-loader?name=assets/locales/angular/ky.js!@angular/common/locales/ky.js');\nrequire('!file-loader?name=assets/locales/angular/lag.js!@angular/common/locales/lag.js');\nrequire('!file-loader?name=assets/locales/angular/lb.js!@angular/common/locales/lb.js');\nrequire('!file-loader?name=assets/locales/angular/lg.js!@angular/common/locales/lg.js');\nrequire('!file-loader?name=assets/locales/angular/lkt.js!@angular/common/locales/lkt.js');\nrequire('!file-loader?name=assets/locales/angular/ln-AO.js!@angular/common/locales/ln-AO.js');\nrequire('!file-loader?name=assets/locales/angular/ln-CF.js!@angular/common/locales/ln-CF.js');\nrequire('!file-loader?name=assets/locales/angular/ln-CG.js!@angular/common/locales/ln-CG.js');\nrequire('!file-loader?name=assets/locales/angular/ln.js!@angular/common/locales/ln.js');\nrequire('!file-loader?name=assets/locales/angular/lo.js!@angular/common/locales/lo.js');\nrequire('!file-loader?name=assets/locales/angular/lrc-IQ.js!@angular/common/locales/lrc-IQ.js');\nrequire('!file-loader?name=assets/locales/angular/lrc.js!@angular/common/locales/lrc.js');\nrequire('!file-loader?name=assets/locales/angular/lt.js!@angular/common/locales/lt.js');\nrequire('!file-loader?name=assets/locales/angular/lu.js!@angular/common/locales/lu.js');\nrequire('!file-loader?name=assets/locales/angular/luo.js!@angular/common/locales/luo.js');\nrequire('!file-loader?name=assets/locales/angular/luy.js!@angular/common/locales/luy.js');\nrequire('!file-loader?name=assets/locales/angular/lv.js!@angular/common/locales/lv.js');\nrequire('!file-loader?name=assets/locales/angular/mas-TZ.js!@angular/common/locales/mas-TZ.js');\nrequire('!file-loader?name=assets/locales/angular/mas.js!@angular/common/locales/mas.js');\nrequire('!file-loader?name=assets/locales/angular/mer.js!@angular/common/locales/mer.js');\nrequire('!file-loader?name=assets/locales/angular/mfe.js!@angular/common/locales/mfe.js');\nrequire('!file-loader?name=assets/locales/angular/mg.js!@angular/common/locales/mg.js');\nrequire('!file-loader?name=assets/locales/angular/mgh.js!@angular/common/locales/mgh.js');\nrequire('!file-loader?name=assets/locales/angular/mgo.js!@angular/common/locales/mgo.js');\nrequire('!file-loader?name=assets/locales/angular/mk.js!@angular/common/locales/mk.js');\nrequire('!file-loader?name=assets/locales/angular/ml.js!@angular/common/locales/ml.js');\nrequire('!file-loader?name=assets/locales/angular/mn.js!@angular/common/locales/mn.js');\nrequire('!file-loader?name=assets/locales/angular/mr.js!@angular/common/locales/mr.js');\nrequire('!file-loader?name=assets/locales/angular/ms-BN.js!@angular/common/locales/ms-BN.js');\nrequire('!file-loader?name=assets/locales/angular/ms-SG.js!@angular/common/locales/ms-SG.js');\nrequire('!file-loader?name=assets/locales/angular/ms.js!@angular/common/locales/ms.js');\nrequire('!file-loader?name=assets/locales/angular/mt.js!@angular/common/locales/mt.js');\nrequire('!file-loader?name=assets/locales/angular/mua.js!@angular/common/locales/mua.js');\nrequire('!file-loader?name=assets/locales/angular/my.js!@angular/common/locales/my.js');\nrequire('!file-loader?name=assets/locales/angular/mzn.js!@angular/common/locales/mzn.js');\nrequire('!file-loader?name=assets/locales/angular/naq.js!@angular/common/locales/naq.js');\nrequire('!file-loader?name=assets/locales/angular/nb-SJ.js!@angular/common/locales/nb-SJ.js');\nrequire('!file-loader?name=assets/locales/angular/nb.js!@angular/common/locales/nb.js');\nrequire('!file-loader?name=assets/locales/angular/nd.js!@angular/common/locales/nd.js');\nrequire('!file-loader?name=assets/locales/angular/nds-NL.js!@angular/common/locales/nds-NL.js');\nrequire('!file-loader?name=assets/locales/angular/nds.js!@angular/common/locales/nds.js');\nrequire('!file-loader?name=assets/locales/angular/ne-IN.js!@angular/common/locales/ne-IN.js');\nrequire('!file-loader?name=assets/locales/angular/ne.js!@angular/common/locales/ne.js');\nrequire('!file-loader?name=assets/locales/angular/nl-AW.js!@angular/common/locales/nl-AW.js');\nrequire('!file-loader?name=assets/locales/angular/nl-BE.js!@angular/common/locales/nl-BE.js');\nrequire('!file-loader?name=assets/locales/angular/nl-BQ.js!@angular/common/locales/nl-BQ.js');\nrequire('!file-loader?name=assets/locales/angular/nl-CW.js!@angular/common/locales/nl-CW.js');\nrequire('!file-loader?name=assets/locales/angular/nl-SR.js!@angular/common/locales/nl-SR.js');\nrequire('!file-loader?name=assets/locales/angular/nl-SX.js!@angular/common/locales/nl-SX.js');\nrequire('!file-loader?name=assets/locales/angular/nl.js!@angular/common/locales/nl.js');\nrequire('!file-loader?name=assets/locales/angular/nmg.js!@angular/common/locales/nmg.js');\nrequire('!file-loader?name=assets/locales/angular/nn.js!@angular/common/locales/nn.js');\nrequire('!file-loader?name=assets/locales/angular/nnh.js!@angular/common/locales/nnh.js');\nrequire('!file-loader?name=assets/locales/angular/nus.js!@angular/common/locales/nus.js');\nrequire('!file-loader?name=assets/locales/angular/nyn.js!@angular/common/locales/nyn.js');\nrequire('!file-loader?name=assets/locales/angular/om-KE.js!@angular/common/locales/om-KE.js');\nrequire('!file-loader?name=assets/locales/angular/om.js!@angular/common/locales/om.js');\nrequire('!file-loader?name=assets/locales/angular/or.js!@angular/common/locales/or.js');\nrequire('!file-loader?name=assets/locales/angular/os-RU.js!@angular/common/locales/os-RU.js');\nrequire('!file-loader?name=assets/locales/angular/os.js!@angular/common/locales/os.js');\nrequire('!file-loader?name=assets/locales/angular/pa-Arab.js!@angular/common/locales/pa-Arab.js');\nrequire('!file-loader?name=assets/locales/angular/pa-Guru.js!@angular/common/locales/pa-Guru.js');\nrequire('!file-loader?name=assets/locales/angular/pa.js!@angular/common/locales/pa.js');\nrequire('!file-loader?name=assets/locales/angular/pl.js!@angular/common/locales/pl.js');\nrequire('!file-loader?name=assets/locales/angular/prg.js!@angular/common/locales/prg.js');\nrequire('!file-loader?name=assets/locales/angular/ps.js!@angular/common/locales/ps.js');\nrequire('!file-loader?name=assets/locales/angular/pt-AO.js!@angular/common/locales/pt-AO.js');\nrequire('!file-loader?name=assets/locales/angular/pt-CH.js!@angular/common/locales/pt-CH.js');\nrequire('!file-loader?name=assets/locales/angular/pt-CV.js!@angular/common/locales/pt-CV.js');\nrequire('!file-loader?name=assets/locales/angular/pt-GQ.js!@angular/common/locales/pt-GQ.js');\nrequire('!file-loader?name=assets/locales/angular/pt-GW.js!@angular/common/locales/pt-GW.js');\nrequire('!file-loader?name=assets/locales/angular/pt-LU.js!@angular/common/locales/pt-LU.js');\nrequire('!file-loader?name=assets/locales/angular/pt-MO.js!@angular/common/locales/pt-MO.js');\nrequire('!file-loader?name=assets/locales/angular/pt-MZ.js!@angular/common/locales/pt-MZ.js');\nrequire('!file-loader?name=assets/locales/angular/pt-PT.js!@angular/common/locales/pt-PT.js');\nrequire('!file-loader?name=assets/locales/angular/pt-ST.js!@angular/common/locales/pt-ST.js');\nrequire('!file-loader?name=assets/locales/angular/pt-TL.js!@angular/common/locales/pt-TL.js');\nrequire('!file-loader?name=assets/locales/angular/pt.js!@angular/common/locales/pt.js');\nrequire('!file-loader?name=assets/locales/angular/qu-BO.js!@angular/common/locales/qu-BO.js');\nrequire('!file-loader?name=assets/locales/angular/qu-EC.js!@angular/common/locales/qu-EC.js');\nrequire('!file-loader?name=assets/locales/angular/qu.js!@angular/common/locales/qu.js');\nrequire('!file-loader?name=assets/locales/angular/rm.js!@angular/common/locales/rm.js');\nrequire('!file-loader?name=assets/locales/angular/rn.js!@angular/common/locales/rn.js');\nrequire('!file-loader?name=assets/locales/angular/ro-MD.js!@angular/common/locales/ro-MD.js');\nrequire('!file-loader?name=assets/locales/angular/ro.js!@angular/common/locales/ro.js');\nrequire('!file-loader?name=assets/locales/angular/rof.js!@angular/common/locales/rof.js');\nrequire('!file-loader?name=assets/locales/angular/root.js!@angular/common/locales/root.js');\nrequire('!file-loader?name=assets/locales/angular/ru-BY.js!@angular/common/locales/ru-BY.js');\nrequire('!file-loader?name=assets/locales/angular/ru-KG.js!@angular/common/locales/ru-KG.js');\nrequire('!file-loader?name=assets/locales/angular/ru-KZ.js!@angular/common/locales/ru-KZ.js');\nrequire('!file-loader?name=assets/locales/angular/ru-MD.js!@angular/common/locales/ru-MD.js');\nrequire('!file-loader?name=assets/locales/angular/ru-UA.js!@angular/common/locales/ru-UA.js');\nrequire('!file-loader?name=assets/locales/angular/ru.js!@angular/common/locales/ru.js');\nrequire('!file-loader?name=assets/locales/angular/rw.js!@angular/common/locales/rw.js');\nrequire('!file-loader?name=assets/locales/angular/rwk.js!@angular/common/locales/rwk.js');\nrequire('!file-loader?name=assets/locales/angular/sah.js!@angular/common/locales/sah.js');\nrequire('!file-loader?name=assets/locales/angular/saq.js!@angular/common/locales/saq.js');\nrequire('!file-loader?name=assets/locales/angular/sbp.js!@angular/common/locales/sbp.js');\nrequire('!file-loader?name=assets/locales/angular/sd.js!@angular/common/locales/sd.js');\nrequire('!file-loader?name=assets/locales/angular/se-FI.js!@angular/common/locales/se-FI.js');\nrequire('!file-loader?name=assets/locales/angular/se-SE.js!@angular/common/locales/se-SE.js');\nrequire('!file-loader?name=assets/locales/angular/se.js!@angular/common/locales/se.js');\nrequire('!file-loader?name=assets/locales/angular/seh.js!@angular/common/locales/seh.js');\nrequire('!file-loader?name=assets/locales/angular/ses.js!@angular/common/locales/ses.js');\nrequire('!file-loader?name=assets/locales/angular/sg.js!@angular/common/locales/sg.js');\nrequire('!file-loader?name=assets/locales/angular/shi-Latn.js!@angular/common/locales/shi-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/shi-Tfng.js!@angular/common/locales/shi-Tfng.js');\nrequire('!file-loader?name=assets/locales/angular/shi.js!@angular/common/locales/shi.js');\nrequire('!file-loader?name=assets/locales/angular/si.js!@angular/common/locales/si.js');\nrequire('!file-loader?name=assets/locales/angular/sk.js!@angular/common/locales/sk.js');\nrequire('!file-loader?name=assets/locales/angular/sl.js!@angular/common/locales/sl.js');\nrequire('!file-loader?name=assets/locales/angular/smn.js!@angular/common/locales/smn.js');\nrequire('!file-loader?name=assets/locales/angular/sn.js!@angular/common/locales/sn.js');\nrequire('!file-loader?name=assets/locales/angular/so-DJ.js!@angular/common/locales/so-DJ.js');\nrequire('!file-loader?name=assets/locales/angular/so-ET.js!@angular/common/locales/so-ET.js');\nrequire('!file-loader?name=assets/locales/angular/so-KE.js!@angular/common/locales/so-KE.js');\nrequire('!file-loader?name=assets/locales/angular/so.js!@angular/common/locales/so.js');\nrequire('!file-loader?name=assets/locales/angular/sq-MK.js!@angular/common/locales/sq-MK.js');\nrequire('!file-loader?name=assets/locales/angular/sq-XK.js!@angular/common/locales/sq-XK.js');\nrequire('!file-loader?name=assets/locales/angular/sq.js!@angular/common/locales/sq.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl-BA.js!@angular/common/locales/sr-Cyrl-BA.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl-ME.js!@angular/common/locales/sr-Cyrl-ME.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl-XK.js!@angular/common/locales/sr-Cyrl-XK.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl.js!@angular/common/locales/sr-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn-BA.js!@angular/common/locales/sr-Latn-BA.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn-ME.js!@angular/common/locales/sr-Latn-ME.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn-XK.js!@angular/common/locales/sr-Latn-XK.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn.js!@angular/common/locales/sr-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/sr.js!@angular/common/locales/sr.js');\nrequire('!file-loader?name=assets/locales/angular/sv-AX.js!@angular/common/locales/sv-AX.js');\nrequire('!file-loader?name=assets/locales/angular/sv-FI.js!@angular/common/locales/sv-FI.js');\nrequire('!file-loader?name=assets/locales/angular/sv.js!@angular/common/locales/sv.js');\nrequire('!file-loader?name=assets/locales/angular/sw-CD.js!@angular/common/locales/sw-CD.js');\nrequire('!file-loader?name=assets/locales/angular/sw-KE.js!@angular/common/locales/sw-KE.js');\nrequire('!file-loader?name=assets/locales/angular/sw-UG.js!@angular/common/locales/sw-UG.js');\nrequire('!file-loader?name=assets/locales/angular/sw.js!@angular/common/locales/sw.js');\nrequire('!file-loader?name=assets/locales/angular/ta-LK.js!@angular/common/locales/ta-LK.js');\nrequire('!file-loader?name=assets/locales/angular/ta-MY.js!@angular/common/locales/ta-MY.js');\nrequire('!file-loader?name=assets/locales/angular/ta-SG.js!@angular/common/locales/ta-SG.js');\nrequire('!file-loader?name=assets/locales/angular/ta.js!@angular/common/locales/ta.js');\nrequire('!file-loader?name=assets/locales/angular/te.js!@angular/common/locales/te.js');\nrequire('!file-loader?name=assets/locales/angular/teo-KE.js!@angular/common/locales/teo-KE.js');\nrequire('!file-loader?name=assets/locales/angular/teo.js!@angular/common/locales/teo.js');\nrequire('!file-loader?name=assets/locales/angular/tg.js!@angular/common/locales/tg.js');\nrequire('!file-loader?name=assets/locales/angular/th.js!@angular/common/locales/th.js');\nrequire('!file-loader?name=assets/locales/angular/ti-ER.js!@angular/common/locales/ti-ER.js');\nrequire('!file-loader?name=assets/locales/angular/ti.js!@angular/common/locales/ti.js');\nrequire('!file-loader?name=assets/locales/angular/tk.js!@angular/common/locales/tk.js');\nrequire('!file-loader?name=assets/locales/angular/to.js!@angular/common/locales/to.js');\nrequire('!file-loader?name=assets/locales/angular/tr-CY.js!@angular/common/locales/tr-CY.js');\nrequire('!file-loader?name=assets/locales/angular/tr.js!@angular/common/locales/tr.js');\nrequire('!file-loader?name=assets/locales/angular/tt.js!@angular/common/locales/tt.js');\nrequire('!file-loader?name=assets/locales/angular/twq.js!@angular/common/locales/twq.js');\nrequire('!file-loader?name=assets/locales/angular/tzm.js!@angular/common/locales/tzm.js');\nrequire('!file-loader?name=assets/locales/angular/ug.js!@angular/common/locales/ug.js');\nrequire('!file-loader?name=assets/locales/angular/uk.js!@angular/common/locales/uk.js');\nrequire('!file-loader?name=assets/locales/angular/ur-IN.js!@angular/common/locales/ur-IN.js');\nrequire('!file-loader?name=assets/locales/angular/ur.js!@angular/common/locales/ur.js');\nrequire('!file-loader?name=assets/locales/angular/uz-Arab.js!@angular/common/locales/uz-Arab.js');\nrequire('!file-loader?name=assets/locales/angular/uz-Cyrl.js!@angular/common/locales/uz-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/uz-Latn.js!@angular/common/locales/uz-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/uz.js!@angular/common/locales/uz.js');\nrequire('!file-loader?name=assets/locales/angular/vai-Latn.js!@angular/common/locales/vai-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/vai-Vaii.js!@angular/common/locales/vai-Vaii.js');\nrequire('!file-loader?name=assets/locales/angular/vai.js!@angular/common/locales/vai.js');\nrequire('!file-loader?name=assets/locales/angular/vi.js!@angular/common/locales/vi.js');\nrequire('!file-loader?name=assets/locales/angular/vo.js!@angular/common/locales/vo.js');\nrequire('!file-loader?name=assets/locales/angular/vun.js!@angular/common/locales/vun.js');\nrequire('!file-loader?name=assets/locales/angular/wae.js!@angular/common/locales/wae.js');\nrequire('!file-loader?name=assets/locales/angular/wo.js!@angular/common/locales/wo.js');\nrequire('!file-loader?name=assets/locales/angular/xog.js!@angular/common/locales/xog.js');\nrequire('!file-loader?name=assets/locales/angular/yav.js!@angular/common/locales/yav.js');\nrequire('!file-loader?name=assets/locales/angular/yi.js!@angular/common/locales/yi.js');\nrequire('!file-loader?name=assets/locales/angular/yo-BJ.js!@angular/common/locales/yo-BJ.js');\nrequire('!file-loader?name=assets/locales/angular/yo.js!@angular/common/locales/yo.js');\nrequire('!file-loader?name=assets/locales/angular/yue-Hans.js!@angular/common/locales/yue-Hans.js');\nrequire('!file-loader?name=assets/locales/angular/yue-Hant.js!@angular/common/locales/yue-Hant.js');\nrequire('!file-loader?name=assets/locales/angular/yue.js!@angular/common/locales/yue.js');\nrequire('!file-loader?name=assets/locales/angular/zgh.js!@angular/common/locales/zgh.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans-HK.js!@angular/common/locales/zh-Hans-HK.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans-MO.js!@angular/common/locales/zh-Hans-MO.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans-SG.js!@angular/common/locales/zh-Hans-SG.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans.js!@angular/common/locales/zh-Hans.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hant-HK.js!@angular/common/locales/zh-Hant-HK.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hant-MO.js!@angular/common/locales/zh-Hant-MO.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hant.js!@angular/common/locales/zh-Hant.js');\nrequire('!file-loader?name=assets/locales/angular/zh.js!@angular/common/locales/zh.js');\nrequire('!file-loader?name=assets/locales/angular/zu.js!@angular/common/locales/zu.js');\n","export function parse(moduleSrc) {\n const src = moduleSrc.split(/\\n/)\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !l.match(/^\\/?\\*/) && !l.match(/^\\/\\//))\n .join('\\n');\n const fn = new Function(`var exports = {};\nvar module = { exports: exports };\n${src}\nreturn exports;`);\n return fn();\n}\n","import './import-locales';\nimport { parse } from './parse-module';\nconst cache = new Map();\n/**\n * @ignore\n */\nexport function loadLocale(moduleLang) {\n return new Promise((resolve, reject) => {\n if (cache.has(moduleLang)) {\n resolve(cache.get(moduleLang));\n } else {\n fetch(`assets/locales/angular/${moduleLang}.js`)\n .then((res) => res.text())\n .then((src) => {\n const module = parse(src);\n cache.set(moduleLang, module);\n resolve(module);\n })\n .catch(reject);\n }\n });\n}\n","import { registerLocaleData } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { TranslateService as NgxTranslateService } from '@ngx-translate/core';\nimport { keys } from 'lodash-es';\nimport { OptionsService } from '../common/options.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { getAngularLocalesLanguageString } from './i18n.module';\nimport { loadLocale } from './load-locale';\n\n/**\n * A service to manage the language of the application.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class TranslateService {\n static SAVE_LANGUAGE_KEY = 'c8y_language';\n static defaultLang() {\n return window.localStorage.getItem(TranslateService.SAVE_LANGUAGE_KEY);\n }\n langsDetail: any = this.options.get('languages', {});\n langs: any = keys(this.langsDetail).filter(k => this.langsDetail[k]);\n private DEFAULT_SEPARATOR = '_';\n constructor(\n private ngxTranslate: NgxTranslateService,\n private ui: AppStateService,\n private options: OptionsService\n ) {\n const queryStringLang = this.queryStringLang();\n if (queryStringLang) {\n this.saveInLocalStorage(queryStringLang);\n }\n }\n\n /**\n * Switches to given language.\n * @param lang The language as two-letter code.\n */\n async switchToLanguage(lang: string) {\n const moduleLang = lang.replace('_', '-');\n\n try {\n await this.loadLocales(moduleLang);\n } catch (e) {\n const lessSpecificModuleLang = moduleLang.split('-').shift();\n if (lessSpecificModuleLang !== moduleLang) {\n await this.loadLocales(lessSpecificModuleLang);\n } else {\n throw e;\n }\n }\n\n this.setLanguage(lang);\n }\n\n async loadLocales(moduleLang) {\n const module: any = await loadLocale(getAngularLocalesLanguageString(moduleLang));\n registerLocaleData(module.default);\n }\n\n setLanguage(lang: string) {\n this.ngxTranslate.setDefaultLang(this.options.get('defaultLanguage', 'en'));\n this.ngxTranslate.use(lang).subscribe(() => {\n this.ui.state$.next({ ...this.ui.state, lang });\n });\n }\n\n /**\n * Finds the first supported language\n */\n firstSupportedLanguage() {\n const languages = [this.queryStringLang(), this.localStorageLang()]\n .concat([this.options.get('defaultLanguage')])\n .concat(this.browserLangs())\n .concat(['en'])\n .filter(Boolean);\n const preferredLanguage = languages.find(lang => this.getSupported(lang));\n return this.getSupported(preferredLanguage);\n }\n\n /**\n * Converts a iso language code to a PO language code (e.g. de-de gets de_de).\n * @param lang The iso language code.\n */\n convertToLanguageCodePO(lang: string): string {\n const sep = lang.indexOf('-') > -1 ? '-' : this.DEFAULT_SEPARATOR;\n const [langMain, langSpecific] = lang.split(sep);\n const langLast = langSpecific ? `${this.DEFAULT_SEPARATOR}${langSpecific}` : '';\n return `${langMain}${langLast}`;\n }\n\n /**\n * Returns the language in the native language.\n * @param lang The language two-letter code.\n * @return The native name.\n */\n getNativeLanguage(lang: string): string {\n const langData = (this.langsDetail || {})[lang] || {};\n return langData.nativeName || lang;\n }\n\n saveInLocalStorage(lang: string) {\n window.localStorage.setItem(TranslateService.SAVE_LANGUAGE_KEY, lang);\n }\n\n getSupported(lang: string) {\n return this.langs.find(l => l === lang) || this.langs.find(l => l.startsWith(lang));\n }\n\n /**\n * Gets the language from the query parameter.\n * @return The language two-letter code.\n */\n queryStringLang() {\n return this.getQueryParameter('lang');\n }\n\n /**\n * Gets the language from local storage.\n * @return The language two-letter code.\n */\n private localStorageLang() {\n return window.localStorage.getItem(TranslateService.SAVE_LANGUAGE_KEY);\n }\n\n /**\n * Determines which language is set in the browser.\n * @return The languages the browser supports as string array.\n */\n private browserLangs() {\n const { navigator } = window;\n const browserLanguagePropertyKeys = [\n 'languages',\n 'language',\n 'browserLanguage',\n 'systemLanguage',\n 'userLanguage'\n ];\n return browserLanguagePropertyKeys.reduce((languages, property) => {\n const propertyLanguages = navigator[property];\n if (typeof propertyLanguages === 'string') {\n languages.push(propertyLanguages);\n } else if (Array.isArray(propertyLanguages)) {\n languages = languages.concat(propertyLanguages);\n }\n return languages;\n }, []);\n }\n\n private getQueryParameter(queryKey) {\n // TODO: replace this with URLSearchParams, ie 11 still doesn't support :()\n const query = window.location.search.substring(1);\n let result;\n query.split('&').find(pair => {\n const [key, value] = pair.split('=');\n if (key === queryKey) {\n result = value;\n }\n return result;\n });\n return result;\n }\n}\n","import { DatePipe as NgDatePipe } from '@angular/common';\nimport { Inject, LOCALE_ID, Pipe } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { gettext } from '../i18n/gettext';\n\n/**\n * The range of times supported by ECMAScript Date objects in milliseconds.\n * @see http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.1\n */\nexport const ES_MAX_TIME_MILLISECONDS: number = 8640000000000000;\n\n/**\n * @description\n * Formats a date value according to locale rules. If no other format specified it defaults to `medium`\n * used as standard date/time format.\n *\n * Extends Angular's DatePipe in a way so that date values exceeding the range supported by ECMAScript\n * are displayed as earliest/latest supported point in time printed in the desired format pre- or postfixed\n * by the word `before` ot `after`, respectively.\n * In all other cases the pipe behaves as the standard `DatePipe`.\n *\n * @see\n * `DatePipe`\n */\n@Pipe({ name: 'c8yDate' })\nexport class DatePipe extends NgDatePipe {\n constructor(@Inject(LOCALE_ID) locale: string, private translateService: TranslateService) {\n super(locale);\n }\n\n transform(value: any, format: string = 'medium', timezone?: string, locale?: string): string | null {\n let valueInBounds = value;\n let valueBefore: boolean = false;\n let valueBeyond: boolean = false;\n\n if (typeof value === 'number' && !isNaN(value)) {\n valueInBounds = Math.min(value, ES_MAX_TIME_MILLISECONDS);\n valueInBounds = Math.max(valueInBounds, -ES_MAX_TIME_MILLISECONDS);\n\n valueBefore = value < -ES_MAX_TIME_MILLISECONDS;\n valueBeyond = value > ES_MAX_TIME_MILLISECONDS;\n }\n let result: string = super.transform(valueInBounds, format, timezone, locale);\n\n if (valueBefore) {\n result = this.translateService.instant(gettext(`before {{date}}`), { date: result });\n } else if (valueBeyond) {\n result = this.translateService.instant(gettext(`after {{date}}`), { date: result });\n }\n\n return result;\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { IIdentified, Paging } from '@c8y/client';\n\n@Component({\n selector: 'c8y-load-more',\n templateUrl: './load-more.component.html'\n})\nexport class LoadMoreComponent {\n @Input()\n paging: Paging<any>;\n @Input()\n useIntersection = true;\n @Input()\n hidden = false;\n @Input()\n container: ElementRef;\n @Input()\n class: string = 'c8y-list__item bg-transparent';\n @Input()\n maxIterations = 10;\n @Input()\n noMoreDataHint: TemplateRef<any>;\n @Input()\n loadNextLabel: string;\n @Input()\n loadingLabel: string;\n @Output()\n onLoad = new EventEmitter<IIdentified>();\n\n isLoading = false;\n counter = 0;\n showNoMoreDataHint = false;\n private loadUntilIntersected;\n private readonly LOAD_SAME_PAGE_THRESHOLD = 50;\n private intersectionObserver: IntersectionObserver;\n\n @HostBinding('class')\n get hostClass() {\n return this.hidden || (!this.hasMore && !this.showNoMoreDataHint) ? '' : this.class;\n }\n\n get hasMore() {\n return (\n this.paging && (this.paging.totalPages > this.paging.currentPage || !!this.paging.nextPage)\n );\n }\n\n constructor(private element: ElementRef) {}\n\n ngAfterContentInit(): void {\n if (this.useIntersection && 'IntersectionObserver' in window) {\n this.intersectionObserver = new IntersectionObserver(event => this.buttonInView(event[0]), {\n root: this.container ? this.container.nativeElement : null\n });\n this.intersectionObserver.observe(this.element.nativeElement);\n }\n this.showNoMoreDataHint = this.shouldShowNoMoreDataHint();\n }\n\n ngOnDestroy(): void {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n }\n }\n\n async loadMore(event?) {\n this.isLoading = true;\n if (event) {\n event.stopPropagation();\n }\n if (this.hasMore) {\n const result = await this.paging.next();\n this.counter++;\n this.paging = result.paging;\n this.onLoad.emit(result.data);\n this.intersectionLoading();\n this.showNoMoreDataHint = this.shouldShowNoMoreDataHint();\n } else {\n this.counter = 0;\n this.isLoading = false;\n }\n }\n\n private intersectionLoading() {\n if (this.useIntersection && this.hasMore && this.loadUntilIntersected !== null) {\n this.loadUntilIntersected = setTimeout(() => this.loadMore(), this.getLoadingThreshold());\n this.useIntersection = this.shouldSwitchMode();\n } else {\n this.isLoading = false;\n this.loadUntilIntersected = undefined;\n }\n }\n\n private getLoadingThreshold(): number {\n return this.LOAD_SAME_PAGE_THRESHOLD * this.counter;\n }\n\n private shouldShowNoMoreDataHint() {\n return (this.counter !== 0 || this.noMoreDataHint) && !this.hasMore && !this.hidden;\n }\n\n private shouldSwitchMode() {\n return this.counter < this.maxIterations || this.hidden;\n }\n\n private buttonInView(event) {\n if (event.isIntersecting) {\n this.loadMore();\n } else if (this.loadUntilIntersected) {\n clearTimeout(this.loadUntilIntersected);\n this.loadUntilIntersected = null;\n this.isLoading = false;\n } else {\n // avoiding a race condition when timeout is faster\n // cleared then set\n this.loadUntilIntersected = null;\n }\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n EmbeddedViewRef,\n Input,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n ViewRef\n} from '@angular/core';\nimport { IIdentified, IResultList, Paging } from '@c8y/client';\nimport { assign, get } from 'lodash-es';\nimport { isObservable, Observable, of, pipe, Subject, Subscription } from 'rxjs';\nimport { map, takeUntil, tap } from 'rxjs/operators';\nimport { RealtimeService } from '../realtime/public-api';\nimport { LoadMoreComponent } from './load-more.component';\nimport { LoadMoreMode } from './load-more.model';\n\n/**\n * A directive to iterate over IResultList<T> data from @c8y/client.\n * Depending on the [c8yForLoadMore] a load more button is:\n * - auto: Tries to automatically load more data (default maximum 10 iterations; can be\n * change with maxIterations settings).\n * - show: Shows a load more button for the user to decide\n * - none: Doesn't perform any load more action.\n * - hidden: Loads more data automatically but with no visible button for the user.\n *\n * Additional, any rxjs operator pipe can be applied to the [c8yForPipe] input, e.g. to\n * filter the data displayed currently as well as the data loaded by subsequent requests.\n *\n * Example:\n * ```html\n * <div *c8yFor=\"let device of devices; loadMore: 'auto'; let i = index; pipe: filterPipe;\">\n * {{ i + 1 }}. {{device.name}}\n * </div>\n * ```\n * The above example will list all entities that are applied to `devices`:\n * ```typescript\n * this.devices = this.inventoryService.list({ pageSize: 10, fragmentType: 'c8y_IsDevice' })\n * ```\n * It will display the first 10 items, if there is more space left on the screen, and there are more\n * than 10 devices, it will automatically load up to 10 pages more. If it still can't fit the screen\n * it will stop and switch to `show` mode.\n *\n * A pipe can be applied e.g. for filtering or grouping. This pipe is attached to every follow up\n * request done by the load more component:\n * ```typescript\n * this.filterPipe = pipe(\n * map((data: []) => {\n * return data.filter(\n * (mo: any) => mo.name && mo.name.toLowerCase().indexOf(value.toLowerCase()) > -1\n * );\n * })\n * );\n * ```\n * The pipe must be an rxjs pipe and can take any operator.\n */\n@Directive({\n selector: '[c8yFor]'\n})\nexport class ForOfDirective {\n private cachedData: IIdentified[] = [];\n private paging: Paging<IIdentified>;\n private loadMoreMode: LoadMoreMode = 'auto';\n private dataPipe = pipe(tap());\n private pagingSub: Subscription;\n private obs$: Observable<IIdentified[]>;\n private loadMore: LoadMoreComponent;\n private maxIterations = 10;\n private notFoundTemplate: TemplateRef<any>;\n private realtime: RealtimeService<any>;\n private comparator: (itemA: object, itemB: object) => number;\n private unsubscribe$: Subject<void> = new Subject();\n\n private get shouldUseLoadMoreButton() {\n return (\n this.loadMoreMode === 'auto' || this.loadMoreMode === 'show' || this.loadMoreMode === 'hidden'\n );\n }\n\n private get hasMoreData() {\n return this.loadMore && this.loadMore.hasMore;\n }\n\n private get length() {\n return this.cachedData.length;\n }\n\n /**\n * The data setter. Must be a response from @c8y/data or an observable.\n * You can pass an observable with null to explicitly clear the list.\n */\n @Input()\n set c8yForOf(fetchData: IResultList<IIdentified> | Observable<IResultList<IIdentified>>) {\n if (fetchData) {\n this.obs$ = (isObservable(fetchData) ? fetchData : of(fetchData)).pipe(\n map(result => {\n if (result === null) {\n this.paging = null;\n return [];\n }\n const { paging, data } = result;\n this.paging = paging;\n return data;\n })\n );\n }\n }\n\n /**\n * The mode setter:\n * - auto: Tries to automatically load more data (default maximum 10 iterations; can be\n * change with maxIterations settings).\n * - show: Shows a load more button for the user to decide\n * - none: Doesn't perform any load more action.\n * - hidden: Loads more data automatically but with no visible button for the user.\n */\n @Input()\n set c8yForLoadMore(type: LoadMoreMode) {\n this.loadMoreMode = type;\n }\n\n /**\n * The pipe setter to attach any rxjs pipe to the current and more loaded data.\n */\n @Input()\n set c8yForPipe(dataPipe) {\n if (dataPipe) {\n this.dataPipe = dataPipe;\n }\n }\n\n /**\n * A template to use if no data is found at all (e.g. if you apply a filter pipe).\n */\n @Input()\n set c8yForNotFound(notFoundTemplate: TemplateRef<any>) {\n this.notFoundTemplate = notFoundTemplate;\n if (this.loadMore) {\n this.loadMore.noMoreDataHint = notFoundTemplate;\n }\n }\n\n /**\n * The maximum numbers of iterations to call data from the api.\n */\n @Input()\n set c8yForMaxIterations(maxIterations: number) {\n this.maxIterations = maxIterations;\n }\n\n /**\n * A RealtimeService instance.\n */\n @Input()\n set c8yForRealtime(source: RealtimeService<any>) {\n this.realtime = source;\n }\n\n /**\n * A comparator function for comparing list items. Used to determine\n * the position at which a new element should be added to the list.\n */\n @Input()\n set c8yForComparator(comparator: (itemA: object, itemB: object) => number) {\n this.comparator = comparator;\n }\n\n constructor(\n private tpl: TemplateRef<any>,\n private vcr: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n ngOnInit(): void {\n this.handleRealtime();\n }\n\n private ngOnChanges(changes: SimpleChanges): void {\n if (this.obs$ && (changes.c8yForPipe || changes.c8yForOf)) {\n this.unsubscribePaging();\n\n // only re-rendering on filtering if all data is already loaded\n // from the backend\n const reRender = !this.hasMoreData && !!changes.c8yForPipe && !changes.c8yForOf;\n\n if (reRender) {\n this.obs$ = of(this.cachedData);\n }\n this.pagingSub = this.obs$\n .pipe(\n tap(data => {\n if (!reRender) {\n this.cachedData = data;\n }\n })\n )\n .pipe(src => this.dataPipe(src))\n .subscribe((data: []) => {\n this.render(data, reRender);\n });\n }\n }\n\n private ngOnDestroy(): void {\n this.unsubscribePaging();\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n private handleRealtime() {\n if (this.realtime) {\n this.realtime\n .onCreate$()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(item => this.insert(item));\n this.realtime\n .onUpdate$()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(item => this.update(item));\n this.realtime\n .onDelete$()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(id => this.remove(coerceNumberProperty(id)));\n }\n }\n\n private render(data, reRender = false): void {\n this.vcr.clear();\n\n data.forEach((item, index) => {\n const context = {\n $implicit: item,\n index,\n length: this.length,\n hasMore: this.hasMoreData\n };\n this.vcr.createEmbeddedView(this.tpl, context);\n });\n\n if (this.shouldUseLoadMoreButton) {\n this.loadMore = this.createLoadMoreButtonComponent(reRender);\n }\n }\n\n private append(data) {\n data.forEach(item => {\n const index = this.shouldUseLoadMoreButton ? this.vcr.length - 1 : this.vcr.length;\n const context = {\n $implicit: item,\n index,\n length: this.length,\n hasMore: this.hasMoreData\n };\n this.vcr.createEmbeddedView(this.tpl, context, index);\n });\n }\n\n private loadMoreData(data) {\n if (data.length > 0) {\n this.append(data);\n }\n }\n\n private createLoadMoreButtonComponent(reRender) {\n const componentFactory: ComponentFactory<\n any\n > = this.componentFactoryResolver.resolveComponentFactory(LoadMoreComponent);\n const componentRef = this.vcr.createComponent(componentFactory);\n const instance = componentRef.instance as LoadMoreComponent;\n instance.paging = this.paging;\n instance.useIntersection = this.loadMoreMode === 'auto' || this.loadMoreMode === 'hidden';\n instance.hidden = this.loadMoreMode === 'hidden';\n instance.maxIterations = this.maxIterations;\n instance.noMoreDataHint = this.notFoundTemplate;\n this.pagingSub = instance.onLoad\n .pipe(\n map((data: []) => this.checkForDuplicates(data)),\n tap((data: []) => {\n this.cachedData = this.cachedData.concat(data);\n })\n )\n .pipe(src => this.dataPipe(src))\n .subscribe(data => this.loadMoreData(data));\n if (reRender) {\n assign(instance, this.loadMore);\n }\n return instance;\n }\n\n private insert(item) {\n let index: number = 0;\n\n if (this.comparator && this.cachedData.length) {\n let comparisionResult: number;\n do {\n const view: EmbeddedViewRef<any> = this.vcr.get(index) as EmbeddedViewRef<any>;\n const itemB = get(view, 'context.$implicit');\n comparisionResult = item && itemB ? this.comparator(item, itemB) : 0;\n if (comparisionResult <= 0) {\n index++;\n }\n } while (comparisionResult <= 0 && index < this.cachedData.length);\n }\n\n // Do not append elements after the last one currently loaded,\n // as it may belong further down there on the list and will\n // be eventually loaded with one of the next pages.\n if (index < this.cachedData.length || this.cachedData.length === 0) {\n const context = {\n $implicit: item,\n index,\n length: this.length,\n hasMore: this.hasMoreData\n };\n\n this.cachedData.splice(index, 0, item);\n const viewRef: ViewRef = this.tpl.createEmbeddedView(context);\n this.vcr.insert(viewRef, index);\n }\n }\n\n private update(updatedItem) {\n this.forMatchingEmbeddedViewRef(\n (item: IIdentified) => item && updatedItem && item.id === updatedItem.id,\n (view: EmbeddedViewRef<any>) => {\n view.context.$implicit = updatedItem;\n view.markForCheck();\n }\n );\n }\n\n private remove(idToRemove) {\n this.forMatchingEmbeddedViewRef(\n (item: IIdentified) => item && coerceNumberProperty(item.id, NaN) === idToRemove,\n (view: EmbeddedViewRef<any>) => view.destroy()\n );\n }\n\n private forMatchingEmbeddedViewRef(\n filter: (item: IIdentified) => boolean,\n callback: (view: EmbeddedViewRef<any>) => void\n ) {\n for (let i = 0; i < this.vcr.length; i++) {\n const view: EmbeddedViewRef<any> = this.vcr.get(i) as EmbeddedViewRef<any>;\n const item: IIdentified = get(view, 'context.$implicit');\n if (filter(item)) {\n callback(view);\n }\n }\n }\n\n private checkForDuplicates(data: IIdentified[]): IIdentified[] {\n return this.realtime\n ? data.filter(item => !this.cachedData.some(cached => cached.id === item.id))\n : data;\n }\n\n private unsubscribePaging() {\n if (this.pagingSub) {\n this.pagingSub.unsubscribe();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { gettext } from '../i18n/gettext';\nimport { get, find, negate, isUndefined } from 'lodash';\nimport { HumanizePipe } from './humanize.pipe';\n\n/*\n * Humanize an application name and translates it.\n * Usage:\n * appNameOrApp | humanizeAppName | async\n*/\n@Pipe({ name: 'humanizeAppName' })\nexport class HumanizeAppNamePipe implements PipeTransform {\n\n private internalApps = {\n administration: 'Administration',\n cockpit: 'Cockpit',\n devicemanagement: 'Device management'\n };\n\n constructor(private translateService: TranslateService) {}\n\n transform(appNameOrApp: any = 'Cumulocity'): Observable<string> {\n const appName = this.getAppName(appNameOrApp);\n\n let text;\n if (this.isPublicApp(appNameOrApp)) {\n text = gettext('{{ appName | translate }} (public)');\n } else {\n text = appName;\n }\n return this.translateService.get(text, { appName });\n }\n\n private getAppName(appNameOrApp) {\n const appName = this.getFirstDefined([\n get(appNameOrApp, 'name'),\n get(appNameOrApp, 'contextPath'),\n appNameOrApp\n ]) || '';\n return this.internalApps[appName] || appName;\n }\n\n private getFirstDefined(values) {\n return find(values, negate(isUndefined));\n }\n\n private isPublicApp(appNameOrApp) {\n return Boolean(get(appNameOrApp, 'public'));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { upperFirst } from 'lodash-es';\n\n/*\n * Humanize any string\n * Usage:\n * 'something' | humanize\n*/\n@Pipe({ name: 'humanize' })\nexport class HumanizePipe implements PipeTransform {\n static humanize(str: string = ''): string {\n str = str\n .replace(/\\./g, ' ')\n .replace(/c8y[\\s,_]*/gi, '')\n .replace(/_/g, ' ')\n .replace(/([A-Z][a-z])/g, ' $1')\n .replace(/^\\$\\.?/, '')\n .replace(/^\\s*/, '')\n .replace(/\\s*$/, '')\n .replace(/\\s+/g, ' ');\n\n return upperFirst(str);\n }\n\n transform(str: string): string {\n return HumanizePipe.humanize(str);\n }\n}\n","import { Directive, Renderer2, Input, ElementRef } from '@angular/core';\n\n/**\n * Allows to set a icon. Switches between c8y default icons\n * and font awesome icons\n * @example <i [c8yIcon]=\"'rocket'\">\n */\n@Directive({\n selector: '[c8yIcon]',\n})\nexport class IconDirective {\n\n @Input()\n set c8yIcon(icon: string) {\n this.updateIcon(icon);\n }\n private c8yMatch = /^c8y-/;\n private klasses = [];\n private currentClasses = '';\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n private isC8y(icon) {\n return this.c8yMatch.test(icon);\n }\n\n private getClasses(icon: string = '') {\n let classes = '';\n if (icon) {\n const _icon = icon.trim();\n const isC8y = this.isC8y(_icon);\n const iconClass = isC8y ? _icon.replace(this.c8yMatch, 'c8y-icon-') : `fa-${_icon}`;\n classes = `${isC8y ? 'c8y-icon' : 'fa fw'} ${iconClass}`;\n }\n return classes;\n }\n\n private updateIcon(icon: string) {\n const newClasses = this.getClasses(icon);\n if (newClasses !== this.currentClasses) {\n this.currentClasses.split(/\\s/).filter((c) => c).forEach((klass) => {\n this.renderer.removeClass(this.el.nativeElement, klass);\n });\n newClasses.split(/\\s/).filter((c) => c).forEach((klass) => {\n this.renderer.addClass(this.el.nativeElement, klass);\n });\n this.currentClasses = newClasses;\n }\n }\n}\n\nexport const ICONS = [\n 'home',\n 'th',\n 'bar-chart-o',\n 'tasks',\n 'tachometer',\n 'bell',\n 'puzzle-piece',\n 'map-marker',\n 'location-arrow',\n 'globe',\n 'power-off',\n 'desktop',\n 'laptop',\n 'mobile',\n 'signal',\n 'qrcode',\n 'file',\n 'file-text',\n 'folder',\n 'folder-open',\n 'archive',\n 'hdd-o',\n 'book',\n 'bookmark',\n 'tag',\n 'flag',\n 'search',\n 'heart',\n 'star',\n 'bolt',\n 'rocket',\n 'cog',\n 'cogs',\n 'wrench',\n 'ban',\n 'user',\n 'users',\n 'sign-in',\n 'sign-out',\n 'upload',\n 'download',\n 'cloud-upload',\n 'cloud-download',\n 'cloud',\n 'spinner',\n 'refresh',\n 'repeat',\n 'undo',\n 'lock',\n 'unlock',\n 'info',\n 'question',\n 'exclamation',\n 'bug',\n 'calendar',\n 'random',\n 'asterisk',\n 'key',\n 'link',\n 'chain-broken',\n 'external-link',\n 'picture-o',\n 'comment',\n 'bullhorn',\n 'phone',\n 'lightbulb-o',\n 'flask',\n 'sitemap',\n 'exchange',\n 'code-fork',\n 'keyboard-o',\n 'terminal',\n 'code',\n 'clipboard',\n 'pencil',\n 'envelope',\n 'inbox',\n 'reply',\n 'share',\n 'thumbs-up',\n 'thumbs-down',\n 'check',\n 'plus',\n 'expand',\n 'compress',\n 'arrows',\n 'arrow-up',\n 'arrow-down',\n 'arrow-left',\n 'arrow-right',\n 'th-list',\n 'bars',\n 'table',\n 'columns',\n 'filter',\n 'sort',\n 'sort-up',\n 'sort-down',\n 'ellipsis-h',\n 'ellipsis-v',\n 'rss',\n 'apple',\n 'windows',\n 'android',\n 'linux'\n ];\n","/*\n * Implementation of pure \"Mapping\" pipe based on\n * https://codeburst.io/angular-bad-practices-eab0e594ce92#389b\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'map'\n})\nexport class MapFunctionPipe implements PipeTransform {\n /*\n * This will be a universal pipe for array mappings. You may add more\n * type checkings and runtime checkings to make sure it works correctly everywhere.\n */\n transform(value, mappingFunction: (arg: any) => any, thisArg?: any) {\n return mappingFunction.apply(thisArg || this, Array.isArray(value) ? value : [value]);\n }\n}\n","import { assign } from 'lodash-es';\nimport {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n Renderer2,\n TemplateRef,\n Type,\n ViewContainerRef\n } from '@angular/core';\n\n/**\n * Directive to set a DOM node, a TemplateRef or any Component to a container or any node.\n * @example\n * <div *c8yOutlet=\"template\"></div>\n * <div *c8yOutlet=\"DeviceStatusComponent; properties: { node }\"></div>\n * <div *c8yOutlet=\"nodes\"></div>\n */\n@Directive({\n selector: '[c8yOutlet]',\n})\nexport class OutletDirective {\n private properties = {};\n private _element;\n\n constructor(\n private viewContainer: ViewContainerRef,\n private resolver: ComponentFactoryResolver,\n private renderer: Renderer2,\n private el: ElementRef\n ) { }\n\n /**\n * Directive to set a DOM node, a TemplateRef or any Component to a container or any node.\n * @example\n * <div *c8yOutlet=\"template\"></div>\n * <div *c8yOutlet=\"DeviceStatusComponent; properties: { node }\"></div>\n * <div *c8yOutlet=\"nodes\"></div>\n */\n @Input() set c8yOutlet(template: TemplateRef<any> | Type<any> | Element) {\n if (!template) {\n return;\n }\n if (this._element instanceof Element) {\n this.renderer.removeChild(this._element.parentElement, this._element);\n }\n this.viewContainer.clear();\n\n // case TemplateRef -> <div *c8yOutlet=\"template\"></div>\n if (template instanceof TemplateRef) {\n this.viewContainer.createEmbeddedView(template);\n\n // case DOM Element -> <div *c8yOutlet=\"nodes\"></div>\n } else if (template instanceof Element) {\n const parent = this.renderer.parentNode(this.el.nativeElement);\n this.destroy();\n this._element = template;\n this.renderer.insertBefore(parent, this._element, this.el.nativeElement);\n\n // case Component -> <div *c8yOutlet=\"DeviceStatusComponent; properties: { node }\"></div>\n } else {\n const factory: ComponentFactory<any> = this.resolver.resolveComponentFactory(template);\n const component = this.viewContainer.createComponent(factory);\n assign(component.instance, this.properties);\n }\n }\n\n @Input() set c8yOutletProperties(value) {\n this.properties = value;\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n private destroy() {\n if (this._element) {\n const _parent = this.renderer.parentNode(this._element);\n this.renderer.removeChild(_parent, this._element);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-progress-bar',\n templateUrl: './progress-bar.component.html'\n})\nexport class ProgressBarComponent {\n @Input() message: string = gettext('Loading…');\n @Input() progress: number = null;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'shortenUserName' })\r\nexport class ShortenUserNamePipe implements PipeTransform {\r\n\r\n transform({ firstName = '', lastName = '', userName = ''}: any): string {\r\n let parsedFirstName = firstName.trim().split(/\\s+/).shift().substr(0, 1);\r\n const parsedLastName = lastName.trim().split(/\\s+/).pop();\r\n\r\n if (!parsedLastName) {\r\n parsedFirstName = firstName.split(/\\s+/).shift();\r\n } else {\r\n parsedFirstName = parsedFirstName ? `${parsedFirstName}. ` : '';\r\n }\r\n\r\n return parsedFirstName || parsedLastName ? parsedFirstName + parsedLastName : userName;\r\n }\r\n}\r\n","import { OperationStatus } from '@c8y/client';\n\nexport enum Status {\n SUCCESS = 'success',\n WARNING = 'warning',\n DANGER = 'danger',\n INFO = 'info'\n}\n\nexport type StatusType = Status | 'success' | 'warning' | 'danger' | 'info';\n\nexport const statusIcons = {\n [Status.SUCCESS]: 'check-circle',\n [Status.WARNING]: 'exclamation-triangle',\n [Status.DANGER]: 'exclamation-circle',\n [Status.INFO]: 'info-circle'\n};\n\nexport const statusClasses = {\n [Status.SUCCESS]: `text-${Status.SUCCESS}`,\n [Status.WARNING]: `text-${Status.WARNING}`,\n [Status.DANGER]: `text-${Status.DANGER}`,\n [Status.INFO]: `text-${Status.INFO}`\n};\n\nexport const statusAlert = {\n [Status.SUCCESS]: `alert-${Status.SUCCESS}`,\n [Status.WARNING]: `alert-${Status.WARNING}`,\n [Status.DANGER]: `alert-${Status.DANGER}`,\n [Status.INFO]: `alert-${Status.INFO}`\n};\n\nexport const operationStatusIcons = {\n [OperationStatus.PENDING]: 'clock-o',\n [OperationStatus.EXECUTING]: 'refresh',\n [OperationStatus.SUCCESSFUL]: 'check-circle',\n [OperationStatus.FAILED]: 'exclamation-circle'\n};\n\nexport const operationStatusClasses = {\n [OperationStatus.PENDING]: 'text-info',\n [OperationStatus.EXECUTING]: 'text-info',\n [OperationStatus.SUCCESSFUL]: 'text-success',\n [OperationStatus.FAILED]: 'text-danger'\n};\n","import { Component, Input } from '@angular/core';\nimport { IOperation } from '@c8y/client';\nimport { operationStatusClasses, operationStatusIcons } from './status.model';\n\n/**\n * Single operation component displays a single operation status, description and creationTime.\n *\n * Example:\n *\n * ```html\n * <c8y-single-operation [operation]=\"operation\"></c8y-single-operation>\n * ```\n */\n@Component({\n selector: 'c8y-single-operation',\n templateUrl: './single-operation.component.html'\n})\nexport class SingleOperationComponent {\n @Input() operation: IOperation;\n statusIcons: object;\n statusClasses: object;\n\n ngOnInit() {\n this.statusIcons = operationStatusIcons;\n this.statusClasses = operationStatusClasses;\n }\n}\n","import { Observable, of } from 'rxjs';\n\nexport class UserPreferencesStorageLocal {\n private LOCAL_STORAGE_KEY = 'userPreferences';\n private store: any = {};\n constructor() {\n try {\n const jsonStore = window.localStorage.getItem(this.LOCAL_STORAGE_KEY);\n if (jsonStore) {\n this.store = JSON.parse(jsonStore) || {};\n }\n } catch (e) {\n // do nothing\n }\n }\n\n get(key) {\n return of(this.store[key]);\n }\n\n set(key, value) {\n this.store[key] = value;\n return this.saveJsonStore();\n }\n\n private saveJsonStore() {\n return window.localStorage.setItem(this.LOCAL_STORAGE_KEY, JSON.stringify(this.store));\n }\n}\n","import { InventoryService } from '@c8y/client';\n\nexport class UserPreferencesStorageInventory {\n TYPE = 'c8y_UserPreference';\n\n constructor(\n private inventory: InventoryService\n ) {}\n\n async get(key) {\n const { data } = await this.inventory.list({fragmentType: key});\n return data.length ? data[0][key] : undefined;\n }\n\n async set(key, value) {\n const { data } = await this.inventory.list({fragmentType: key});\n const updateMo: any = {[key]: value, type: this.TYPE};\n let out;\n\n if (data.length) {\n updateMo.id = data[0].id;\n out = this.inventory.update(updateMo);\n } else {\n out = this.inventory.create(updateMo);\n }\n return out;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { InventoryService, UserService } from '@c8y/client';\nimport { IUser } from '@c8y/client';\nimport { Observable, from, never } from 'rxjs';\nimport { switchMap, first } from 'rxjs/operators';\nimport { UserPreferencesStorageLocal } from './user-preferences-storage-local';\nimport { UserPreferencesStorageInventory } from './user-preferences-store-inventory';\nimport { AppStateService } from '../ui-state.service';\n\n@Injectable()\nexport class UserPreferencesService {\n currentUser: Observable<IUser>;\n private LOCAL_STORAGE_KEY = 'userPreferences';\n private storage: {\n local: UserPreferencesStorageLocal,\n inventory: UserPreferencesStorageInventory\n };\n constructor(\n private user: UserService,\n private inventory: InventoryService,\n private appState: AppStateService\n ) {\n this.storage = {\n local: new UserPreferencesStorageLocal(),\n inventory: new UserPreferencesStorageInventory(this.inventory)\n };\n this.currentUser = this.appState.currentUser;\n }\n\n get(key): Observable<any> {\n return this.currentUser.pipe(\n first(),\n switchMap((user) => this.getForUser(key, user))\n );\n }\n\n set(key, value): Promise<any> {\n return new Promise((resolve, reject) => {\n this.currentUser.pipe(\n first()\n ).subscribe((user) => {\n resolve(this.setForUser(key, value, user));\n }, reject);\n });\n }\n\n getForUser(key, user): Observable<any> {\n const rawKey = this.getRawKey(key, user);\n const storage = this.getStorage(user);\n return from(storage.get(rawKey));\n }\n\n setForUser(key, value, user): Promise<any> {\n const rawKey = this.getRawKey(key, user);\n const storage = this.getStorage(user);\n return Promise.resolve(storage.set(rawKey, value));\n }\n\n private getRawKey(key, user) {\n const username = user.userName.replace(/\\./g, '__');\n return `${key}${username}`;\n }\n\n private getStorage(user) {\n return this.user.hasAllRoles(user, ['ROLE_INVENTORY_READ', 'ROLE_INVENTORY_ADMIN']) ?\n this.storage.inventory : this.storage.local;\n }\n\n}\n","import { memoize as _memoize } from 'lodash-es';\n\n/**\n * Decorator to memoize function results.\n * @param resolver Cache key resolver function, used by memoize from lodash.\n */\nexport function memoize(resolver?) {\n return (target, fnName, descriptor) => {\n const fn = descriptor.value;\n descriptor.value = function(...args) {\n const memoizedFnName = `_${fnName}Memoized`;\n if (!this[memoizedFnName]) {\n this[memoizedFnName] = _memoize(fn, resolver);\n }\n return this[memoizedFnName].apply(this, args);\n };\n };\n}\n","import { Injectable } from '@angular/core';\nimport { AppStateService } from './ui-state.service';\nimport { IManagedObject, InventoryService } from '@c8y/client';\nimport { property } from 'lodash-es';\nimport { memoize } from './memoize.decorator';\nimport { IUser, UserService } from '@c8y/client';\n\n@Injectable()\nexport class Permissions {\n constructor(\n private appState: AppStateService,\n private inventory: InventoryService,\n private user: UserService\n ) {}\n\n /**\n * Checks if the current user has write permissions for the given mo.\n * (either through global role, individual device permissions or via inventory roles).\n *\n * @param {array} roleIds Array of roles which the current user should have.\n * @param {object} mo The managed object for which we are checking whether the user has access.\n */\n canEdit(roleIds, mo) {\n return this.checkIfCanEdit(roleIds, mo);\n }\n\n hasRole(roleId: string) {\n const currentUser = this.appState.currentUser.value;\n if (!currentUser) {\n throw new Error('Roles can only be requested if the user is logged in.');\n }\n return this.user.hasRole(currentUser, roleId);\n }\n\n hasAllRoles(roleIds: string[]) {\n const currentUser = this.appState.currentUser.value;\n if (!currentUser) {\n throw new Error('Roles can only be requested if the user is logged in.');\n }\n return this.user.hasAllRoles(currentUser, roleIds);\n }\n\n hasAnyRole(roleIds: string[]) {\n const currentUser = this.appState.currentUser.value;\n if (!currentUser) {\n throw new Error('Roles can only be requested if the user is logged in.');\n }\n return this.user.hasAnyRole(currentUser, roleIds);\n }\n\n @memoize(property('id'))\n protected async checkIfOwner(mo) {\n const currentUserName = await this.appState.currentUser.value.userName;\n const { data, res } = await this.inventory.detail(mo.id);\n return currentUserName === data.owner;\n }\n\n @memoize(property('id'))\n protected checkWithRequest(mo) {\n const moName = mo.name;\n const moId = mo.id;\n const partialUpdateObject: Partial<IManagedObject> = {\n id: moId,\n name: moName\n };\n return this.inventory\n .update(partialUpdateObject)\n .then(success => {\n return true;\n })\n .catch(err => {\n return false;\n });\n }\n\n private async checkIfCanEdit(roleIds, mo) {\n if (await this.hasAnyRole(roleIds)) {\n return true;\n } else if (await this.checkIfOwner(mo)) {\n return true;\n } else if (await this.checkWithRequest(mo)) {\n return true;\n }\n return false;\n }\n}\n","import { CommonModule as NgCommonModule } from '@angular/common';\nimport { APP_INITIALIZER, InjectionToken, NgModule } from '@angular/core';\nimport { DataModule } from '@c8y/ngx-components/api';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { distinctUntilChanged, filter, map, startWith, switchMap } from 'rxjs/operators';\nimport { I18nModule } from '../i18n/i18n.module';\nimport { TranslateService } from '../i18n/public-api';\nimport { DatePipe } from './date.pipe';\nimport { ForOfDirective } from './forOf.directive';\nimport { HumanizeAppNamePipe } from './humanize-app-name.pipe';\nimport { HumanizePipe } from './humanize.pipe';\nimport { IconDirective, ICONS } from './icon.directive';\nimport { LoadMoreComponent } from './load-more.component';\nimport { MapFunctionPipe } from './map-function.pipe';\nimport { HOOK_OPTIONS, OptionsService } from './options.service';\nimport { OutletDirective } from './outlet.directive';\nimport { ProgressBarComponent } from './progress-bar.component';\nimport { ShortenUserNamePipe } from './shorten-user-name.pipe';\nimport { SingleOperationComponent } from './single-operation.component';\nimport { AppStateService } from './ui-state.service';\nimport { UserPreferencesService } from './user-preferences/user-preferences.service';\nimport { Permissions } from './permissions.service';\n\nexport function initializeServices(\n translateService: TranslateService,\n state: AppStateService,\n userPreferences: UserPreferencesService\n) {\n const initialize = () => {\n const queryStringLanguage = translateService.queryStringLang();\n const firstLanguage = translateService.firstSupportedLanguage();\n\n /*\n The ?lang parameter will prevent the user preference language from being activated\n */\n if (queryStringLanguage && translateService.getSupported(queryStringLanguage)) {\n translateService.switchToLanguage(queryStringLanguage);\n } else {\n state.currentUser\n .pipe(\n map(user => user && user.userName),\n filter(u => !!u),\n distinctUntilChanged(),\n switchMap(() => userPreferences.get('language')),\n startWith(firstLanguage),\n filter(lang => !!lang),\n distinctUntilChanged()\n )\n .subscribe(lang => {\n translateService.switchToLanguage(lang);\n });\n }\n };\n return initialize;\n}\n\nexport const ICON_LIST = new InjectionToken('iconList');\n\n/**\n * Commonly used directives, data access and translation. This module is the shared\n * module across all core components. It should be imported by default.\n *\n * @exports IconDirective A directive to set a c8y icon with [c8yIcon]=\"'rocket'\".\n * @exports OutletDirective A directive which allows to set DOM or Angular templates (used for upgrade).\n * @exports I18nModule Translation module.\n * @exports NgCommonModule Angular common module.\n * @exports DataModule The data layer to allow DI with @c8y/client\n * @exports HumanizeAppNamePipe Humanize an application name (e.g. in the app switcher)\n * @exports HumanizePipe Humanize a word. E.g. `device management` gets `Device management`\n * @exports ShortenUserNamePipe Allows a short name. E.g. `Foo Bar` gets `F. Bar`\n * @exports ForOfDirective A forOf directive like ngFor but with load-more function\n * @exports LoadMoreComponent A component to load more data from a certain data-source\n * @exports ProgressBarComponent Displays either defined or undefined progress.\n */\n@NgModule({\n imports: [NgCommonModule, I18nModule, TooltipModule],\n exports: [\n IconDirective,\n OutletDirective,\n I18nModule,\n NgCommonModule,\n HumanizeAppNamePipe,\n HumanizePipe,\n ShortenUserNamePipe,\n ForOfDirective,\n LoadMoreComponent,\n MapFunctionPipe,\n ProgressBarComponent,\n SingleOperationComponent,\n DatePipe\n ],\n declarations: [\n IconDirective,\n OutletDirective,\n HumanizePipe,\n HumanizeAppNamePipe,\n ShortenUserNamePipe,\n ForOfDirective,\n LoadMoreComponent,\n MapFunctionPipe,\n ProgressBarComponent,\n SingleOperationComponent,\n DatePipe\n ],\n entryComponents: [LoadMoreComponent]\n})\nexport class CommonModule {\n static providers() {\n return [\n ...DataModule.providers(),\n // TODO: maybe we can think of a way to remove this C8Y_APP global\n { provide: HOOK_OPTIONS, useValue: (window as any).C8Y_APP || {}, multi: true },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeServices,\n deps: [TranslateService, AppStateService, UserPreferencesService],\n multi: true\n },\n { provide: ICON_LIST, useValue: ICONS, multi: false },\n ...I18nModule.providers(),\n UserPreferencesService,\n OptionsService,\n AppStateService,\n Permissions\n ];\n }\n\n static forRoot() {\n return {\n ngModule: CommonModule,\n providers: CommonModule.providers()\n };\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { ActionBarItem } from './action-bar.model';\nimport { ActionBarService } from './action-bar.service';\n\n@Component({\n selector: 'c8y-action-bar-item',\n templateUrl: './action-bar-item.component.html'\n})\nexport class ActionBarItemComponent implements ActionBarItem {\n @Input() placement: ('left' | 'right' | 'more') = 'left';\n @Input() priority: number = 0;\n @Input() itemClass = '';\n @ViewChild('template', {static: false}) template: any;\n private viewInitTimeout;\n\n constructor(private actionBarService: ActionBarService) {}\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.actionBarService.add(this as ActionBarItem)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.actionBarService.remove(this as ActionBarItem);\n }\n}\n","import { Component, HostBinding, Input, AfterContentInit } from '@angular/core';\nimport { filter, sortBy } from 'lodash-es';\nimport { ActionBarItem } from './action-bar.model';\n\n@Component({\n selector: 'c8y-action-bar',\n templateUrl: './action-bar.component.html',\n host: { class: 'c8y-ui-action-bar' }\n})\nexport class ActionBarComponent {\n @Input() @HostBinding('class.navigator-open') navigatorOpen = false;\n @Input() @HostBinding('class.has-tabs') hasTabs = false;\n @Input() @HostBinding('class.horizontal-tabs') isTabsHorizontal = false;\n isPageToolbarExpanded = false;\n @HostBinding('class.c8y-ui-action-bar') uiActionBar = true;\n @Input() items: ActionBarItem[] = [];\n\n @HostBinding() get hidden() {\n return !(this.items && this.items.length);\n }\n\n getSortedItems(placement: 'left' | 'right' | 'more') {\n return sortBy(filter(this.items, { placement }), this.byPriority);\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { ActionBarItemComponent } from './action-bar-item.component';\nimport { ActionBarComponent } from './action-bar.component';\nimport { ActionBarService } from './action-bar.service';\n\n/**\n * The angular module definition for the action bar.\n * @exports ActionBarComponent\n * @exports ActionBarItemComponent\n */\n@NgModule({\n declarations: [\n ActionBarComponent,\n ActionBarItemComponent\n ],\n imports: [\n BsDropdownModule,\n CommonModule,\n CollapseModule,\n RouterModule.forChild([])\n ],\n exports: [\n ActionBarComponent,\n ActionBarItemComponent\n ]\n})\nexport class ActionBarModule { }\n","import { Component, Input } from '@angular/core';\nimport { Action } from './action.model';\nimport { sortBy } from 'lodash-es';\n\n@Component({\n selector: 'c8y-action-outlet',\n templateUrl: './action-outlet.component.html'\n})\n\nexport class ActionOutletComponent {\n isPageToolbarExpanded = false;\n @Input() items: Action[] = [];\n\n getByPriority() {\n return sortBy(this.items, this.byPriority);\n }\n\n invoke(action) {\n if (action.action) {\n action.action.call();\n }\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { Action } from './action.model';\nimport { ActionService } from './action.service';\n\n@Component({\n selector: 'c8y-action',\n templateUrl: './action.component.html'\n})\nexport class ActionComponent implements Action {\n @Input() disabled: boolean = false;\n @Input() label: string;\n @Input() priority: number = 0;\n @Input() icon: string;\n @ViewChild('template', {static: false}) template: any;\n action: () => void;\n private viewInitTimeout;\n\n constructor(private actionService: ActionService) {}\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.actionService.add(this as Action)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.actionService.remove(this as Action);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { ActionOutletComponent } from './action-outlet.component';\nimport { ActionComponent } from './action.component';\nimport { ActionService } from './action.service';\n\n/**\n * The angular module definition for actions.\n * @exports ActionComponent\n * @exports ActionOutletComponent\n */\n@NgModule({\n declarations: [\n ActionOutletComponent,\n ActionComponent\n ],\n imports: [\n CommonModule,\n BsDropdownModule,\n RouterModule.forChild([])\n ],\n exports: [\n ActionOutletComponent,\n ActionComponent\n ]\n})\nexport class ActionModule { }\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'c8y-alert-details',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AlertDetailsComponent {}\r\n","import { Component, TemplateRef, Attribute, HostBinding } from '@angular/core';\nimport { Alert } from './alert.model';\nimport { AlertService } from './alert.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'c8y-alert-outlet',\n templateUrl: './alert-outlet.component.html'\n})\n\nexport class AlertOutletComponent {\n\n detailDisplayedAlert: any = {};\n @HostBinding('class.static') isStatic = false;\n get alerts(): BehaviorSubject<Alert[]> {\n return this.alertService.state$;\n }\n constructor(\n @Attribute('position') private position: string,\n public alertService: AlertService\n ) {\n this.isStatic = this.position === 'static';\n }\n\n getClass(alert: Alert) {\n const classes = [];\n if (alert.type !== 'danger') {\n classes.push('interact');\n }\n classes.push(`alert-${alert.type}`);\n return classes.join(' ');\n }\n\n close(alert) {\n if (alert.onClose) {\n alert.onClose();\n }\n this.alertService.remove(alert);\n }\n\n showDetails(alert) {\n if (alert.onDetail) {\n return alert.onDetail();\n }\n this.detailDisplayedAlert = Object.assign({}, alert);\n this.detailDisplayedAlert.mode = 'raw';\n this.setDetailsContent(alert);\n }\n\n setDetailsContent(alert) {\n if ( this.isTemplateRef(alert.detailedData) || typeof alert.detailedData === 'string' ) {\n this.detailDisplayedAlert.contents = alert.detailedData;\n } else {\n this.detailDisplayedAlert.contents = JSON.stringify(alert.detailedData, null, 2);\n }\n }\n\n hasDetails(alert) {\n return (alert.detailedData || alert.onDetail);\n }\n\n closeDetails() {\n this.detailDisplayedAlert = {};\n }\n\n isDetailsShow(alert) {\n return this.alertService.areSame(alert, this.detailDisplayedAlert);\n }\n\n isTemplateRef(value): boolean {\n return value instanceof TemplateRef;\n }\n\n template(content): any {\n return this.isTemplateRef(content) ? content : undefined;\n }\n}\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'c8y-alert-text',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AlertTextComponent {}\r\n","import { Component, OnDestroy, Input, ViewChild, ContentChild } from '@angular/core';\nimport { Alert } from './alert.model';\nimport { AlertService } from './alert.service';\nimport { AlertDetailsComponent } from './alert-details.component';\n\n@Component({\n selector: 'c8y-alert',\n templateUrl: './alert.component.html'\n})\n\nexport class AlertComponent implements OnDestroy, Alert {\n\n @Input() type: 'success' | 'warning' | 'danger' | 'info' | 'system';\n @Input() onDetail: () => void;\n @Input() onClose: () => void;\n @ViewChild('detailedData', {static: false}) detailedData;\n @ViewChild('text', {static: false}) text;\n @ContentChild(AlertDetailsComponent, {static: false}) containDetailsComponent: AlertDetailsComponent;\n private viewInitTimeout;\n\n constructor(public alertService: AlertService) {}\n\n ngAfterViewInit() {\n if (!this.containDetailsComponent) {\n this.detailedData = null;\n }\n this.viewInitTimeout = setTimeout(() =>\n this.alertService.add(this)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.alertService.remove(this);\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { AlertDetailsComponent } from './alert-details.component';\r\nimport { AlertOutletComponent } from './alert-outlet.component';\r\nimport { AlertTextComponent } from './alert-text.component';\r\nimport { AlertComponent } from './alert.component';\r\nimport { AlertService } from './alert.service';\r\nimport { CommonModule } from '../common/common.module';\r\n\r\n/**\r\n * The angular module definition for alert.\r\n * @exports AlertComponent\r\n * @exports AlertOutletComponent\r\n * @exports AlertDetailsComponent\r\n * @exports AlertTextComponent\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n AlertOutletComponent,\r\n AlertComponent,\r\n AlertDetailsComponent,\r\n AlertTextComponent\r\n ],\r\n declarations: [\r\n AlertOutletComponent,\r\n AlertComponent,\r\n AlertDetailsComponent,\r\n AlertTextComponent\r\n ]\r\n})\r\nexport class AlertModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AuditService, IAuditRecord, IResultList } from '@c8y/client';\n\n@Component({\n selector: 'c8y-audit-log',\n templateUrl: './audit-log.component.html'\n})\nexport class AuditLogComponent implements OnInit {\n @Input()\n source: string | number;\n\n records: IResultList<IAuditRecord>;\n\n constructor(private audit: AuditService) {}\n\n async ngOnInit() {\n if (this.source) {\n this.records = await this.audit.list({\n withTotalPages: true,\n source: this.source\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { AuditLogComponent } from './audit-log.component';\n\n/** The angular module definition for audit log. */\n@NgModule({\n declarations: [AuditLogComponent],\n imports: [CommonModule],\n exports: [AuditLogComponent]\n})\nexport class AuditLogModule {}\n","export interface LoginMessage {\n message: string;\n type: string;\n}\n\nexport enum LoginViews {\n None,\n Credentials,\n RecoverPassword,\n SmsChallenge,\n ChangePassword,\n TotpChallenge,\n TotpSetup,\n ProvidePhoneNumber\n}\n","import { Injectable, Optional } from '@angular/core';\nimport {\n FetchClient,\n BasicAuth,\n ICredentials,\n Realtime,\n UserService,\n TenantService,\n IAuthentication,\n CookieAuth,\n ITenantLoginOption\n} from '@c8y/client';\nimport { AppStateService } from '../common/ui-state.service';\nimport { AlertService } from '../alert/alert.service';\nimport { gettext } from '../i18n/gettext';\nimport { ApiService } from '@c8y/ngx-components/api';\nimport { switchMap } from 'rxjs/operators';\nimport { EMPTY } from 'rxjs';\nimport { LocationStrategy } from '@angular/common';\nimport { TenantLoginOptionsService } from '@c8y/client';\nimport { get, isString } from 'lodash-es';\n\n/**\n * Service to manage the login.\n */\n@Injectable()\nexport class LoginService {\n rememberMe: boolean = false;\n TOKEN_KEY: string = '_tcy8';\n TFATOKEN_KEY: string = 'TFAToken';\n OAUTH2_INTERNAL_TYPE: string = 'OAUTH2_INTERNAL';\n loginMode: any;\n oauthOptions: any;\n isFirstLogin = true;\n GREEN_MIN_LENGTH_DEFAULT = 8;\n\n // tslint:disable:max-line-length\n ERROR_MESSAGES = {\n minlength: gettext('Password must have at least 8 characters and no more than 32.'),\n password_missmatch: gettext('Password confirmation does not match.'),\n maxlength: gettext('Password must have at least 8 characters and no more than 32.'),\n password_strength: gettext(\n 'Your password is not strong enough. Please include numbers, lower and upper case characters'\n ),\n remote_error: gettext('Server error occurred.'),\n email: gettext('Invalid email address.'),\n password_change: gettext('Your password is expired. Please set a new password.'),\n password_reset_token_expired: gettext(\n 'Password reset link expired. Please enter your email address to receive a new one.'\n ),\n tfa_pin_invalid: gettext('The code you entered is invalid. Please try again.'),\n pattern_phonenumber: gettext(\n 'Invalid phone number format. Only digits, spaces, slashes (\"/\") and dashes (\"-\") allowed.'\n ),\n pattern_newPassword: gettext(\n 'Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:\\'\",.<>{}[]\\\\/'\n ),\n international_number_required: gettext(\n 'International phone number required, in the format +49 9 876 543 210.'\n ),\n phone_number_error: gettext('Could not update phone number.'),\n pinAlreadySent: gettext(\n 'The verification code was already sent. For a new verification code, please click on the link above.'\n ),\n passwordConfirm: gettext('Password confirmation does not match.'),\n tfaExpired: gettext('Two-factor authentication token expired.')\n };\n // tslint:enable:max-line-length\n\n private SUCCESS_MESSAGES = {\n password_changed: gettext('Password changed. You can now log in using new password.'),\n password_reset_requested: gettext(\n 'Password reset request has been sent. Please check your email.'\n ),\n resend_sms: gettext('Verification code SMS resent.'),\n send_sms: gettext('Verification code SMS sent.')\n };\n\n private passwordStrengthSetting = {\n enforcePasswordStrength: false,\n passwordStrengthValidity: false,\n greenMinLength: this.GREEN_MIN_LENGTH_DEFAULT\n };\n\n private localhostRegExp = new RegExp('localhost');\n private localhostIpRegExp = new RegExp('127.0.0.1');\n private showTenantRegExp = new RegExp('showTenant');\n\n constructor(\n private client: FetchClient,\n private basicAuth: BasicAuth,\n private cookieAuth: CookieAuth,\n private ui: AppStateService,\n private user: UserService,\n private tenant: TenantService,\n private realtime: Realtime,\n private alert: AlertService,\n private api: ApiService,\n private tenantLoginOptionsService: TenantLoginOptionsService,\n @Optional() private location: LocationStrategy\n ) {\n this.autoLogout();\n this.initLoginOptions();\n }\n\n /**\n * Returns the current tenant.\n * @return The tenant name.\n */\n getTenant() {\n return this.client.tenant;\n }\n\n initLoginOptions() {\n const loginOptions = this.ui.state.loginOptions || [];\n const isOAuth2 = ({ type, grantType }) =>\n type === 'OAUTH2' && grantType === 'AUTHORIZATION_CODE';\n this.loginMode = loginOptions.find(({ type }) => type === 'OAUTH2_INTERNAL') ||\n loginOptions.find(({ type }) => type === 'BASIC') ||\n loginOptions.find(isOAuth2) || { type: 'BASIC' };\n this.oauthOptions = loginOptions.find(isOAuth2) || {};\n }\n\n redirectToOauth() {\n const { initRequest } = this.oauthOptions;\n const fullPath = (this.location ? (this.location as any)._platformLocation : window).location\n .href;\n const redirectUrl = encodeURIComponent(fullPath);\n const originUriParam = `${initRequest.includes('?') ? '&' : '?'}originUri=${redirectUrl}`;\n window.location.href = `${initRequest}${originUriParam}`;\n }\n\n autoLogout() {\n const errorPattern = /invalid\\scredentials.*pin.*generate/i;\n const isTfaExpired = data =>\n data && typeof data.message === 'string' && errorPattern.test(data.message);\n this.ui.currentUser\n .pipe(\n switchMap(u =>\n u ? this.api.hookResponse(({ response }) => response.status === 401) : EMPTY\n )\n )\n .subscribe(async (apiCall: any) => {\n const { response } = apiCall;\n let willLogout = false;\n if (isTfaExpired(response.data)) {\n willLogout = true;\n } else {\n if (typeof response.json === 'function') {\n const data = await response.clone().json();\n if (isTfaExpired(data)) {\n willLogout = true;\n }\n }\n }\n if (willLogout) {\n this.logout(false);\n setTimeout(() => this.alert.danger(this.ERROR_MESSAGES.tfaExpired), 500);\n }\n });\n }\n\n /**\n * Gets the minimal number of characters that a password should have to be considered a “green” strong one.\n * @return The min length for password or default value.\n */\n getGreenMinLength() {\n const loginOption = this.getLoginOption();\n const greenMinLength = Number(get(loginOption, 'greenMinLength'));\n this.passwordStrengthSetting.greenMinLength = isNaN(greenMinLength) ? this.GREEN_MIN_LENGTH_DEFAULT : greenMinLength;\n return this.passwordStrengthSetting.greenMinLength;\n }\n\n /**\n * Checks if password strength is enforced for system\n * by retrieving value of `enforceStrength` property from loginOptions response\n * @return boolean value, true if enforced, false otherwise.\n */\n getEnforcePasswordStrength() {\n const loginOption = this.getLoginOption();\n const enforcePasswordStrength = get(loginOption, 'enforceStrength');\n if (isString(enforcePasswordStrength)) {\n this.passwordStrengthSetting.enforcePasswordStrength = enforcePasswordStrength === 'true' ? true : false;\n } else {\n this.passwordStrengthSetting.enforcePasswordStrength = !!enforcePasswordStrength;\n }\n return this.passwordStrengthSetting.enforcePasswordStrength;\n }\n\n /**\n * Checks if password strength is enforced for particular tenant\n * by retrieving value of `strengthValidity` property from loginOptions response\n * @return boolean value, true if enforced, false otherwise.\n */\n async getPasswordStrengthValidity() {\n const loginOption = this.getLoginOption();\n const strengthValidity = get(loginOption, 'strengthValidity');\n if (isString(strengthValidity)) {\n this.passwordStrengthSetting.passwordStrengthValidity = strengthValidity === 'true' ? true : false;\n } else {\n this.passwordStrengthSetting.passwordStrengthValidity = !!strengthValidity;\n }\n return this.passwordStrengthSetting.passwordStrengthValidity;\n }\n\n /**\n * Function determines if enforced strength checks should be enabled for current tenant\n * based on properties retrieved from loginOptions\n * @return boolean value, true if strength is enforced for tenant, false otherwise.\n */\n getPasswordStrengthEnforced() {\n return this.getEnforcePasswordStrength() || this.getPasswordStrengthValidity();\n }\n\n /**\n * Clears all backend errors.\n */\n cleanMessages() {\n this.alert.clearAll();\n }\n\n /**\n * Adds a new success message\n * @param successKey The key of the success message as used in SUCCESS_MESSAGES\n */\n addSuccessMessage(successKey: string) {\n const successMessage = this.SUCCESS_MESSAGES[successKey];\n if (successMessage) {\n this.alert.add({\n text: successMessage,\n type: 'success',\n timeout: 0\n });\n }\n }\n\n /**\n * Returns the current strategy. Defaults to cookie, if a token\n * is found in local or session storage we switch to basic auth.\n * @returns The current auth strategy.\n */\n getAuthStrategy(): IAuthentication {\n let authStrategy = this.cookieAuth as IAuthentication;\n const token = this.getStoredToken();\n const tfa = this.getStoredTfaToken();\n if (token) {\n authStrategy = this.basicAuth;\n this.setCredentials({ token, tfa }, this.basicAuth);\n }\n return authStrategy;\n }\n\n /**\n * Forces the use of basic auth as strategy with this credentials.\n * @param credentials The credentials to use.\n */\n useBasicAuth(credentials: ICredentials) {\n this.setCredentials(credentials, this.basicAuth);\n return this.basicAuth;\n }\n\n /**\n * Tries to login a user with the given credentials.\n * If successful, the current tenant and user is set. If not an error\n * is thrown. It also verifies if the user is allowed to open the\n * current app.\n * @param auth The authentication strategy used.\n * @param credentials The credentials to try to login.\n */\n async login(auth: IAuthentication = this.getAuthStrategy(), credentials?: ICredentials) {\n this.client.setAuth(auth);\n\n const tenantRes = await this.tenant.current();\n const tenant = tenantRes.data;\n\n if (await this.switchLoginMode(credentials)) {\n auth = this.cookieAuth;\n }\n\n const userRes = await this.user.current();\n const user = userRes.data;\n await this.verifyAppAccess();\n\n const supportUserName = this.getSupportUserName(credentials);\n const token = this.setCredentials(\n {\n tenant: tenant.name,\n user: (supportUserName ? `${supportUserName}$` : '') + user.userName\n },\n auth\n );\n\n if (token) {\n this.storeBasicAuthToken(token);\n }\n\n await this.authFulfilled(tenant, user, supportUserName);\n }\n\n /**\n * Saves tenant, user and support user info to the app state.\n * @param tenant The current tenant object.\n * @param user The current user object.\n * @param supportUserName The current support user name.\n */\n async authFulfilled(tenant?, user?, supportUserName?) {\n if (!tenant) {\n const { data } = await this.tenant.current();\n tenant = data;\n this.client.tenant = tenant.name;\n }\n\n if (!user) {\n const { data } = await this.user.current();\n user = data;\n }\n\n if (!supportUserName) {\n supportUserName = null;\n }\n\n this.ui.setUser({ user, supportUserName });\n this.ui.currentTenant.next(tenant);\n }\n\n /**\n * Switch the login mode to CookieAuth if the\n * user has configured to use it in loginOptions.\n * @param credentials The credentials for that login\n */\n async switchLoginMode(credentials?: ICredentials) {\n const isPasswordGrantLogin = this.isPasswordGrantLogin(credentials);\n if (isPasswordGrantLogin && credentials) {\n const params = new URLSearchParams({\n grant_type: 'PASSWORD',\n username: credentials.user,\n password: credentials.password,\n tfa_code: credentials.tfa\n });\n const urlParams = new URLSearchParams(this.loginMode.initRequest.split('?').pop());\n credentials.tenant = urlParams.get('tenant_id');\n const res = await this.client.fetch(`tenant/oauth?${urlParams.toString()}`, {\n method: 'POST',\n body: params.toString(),\n headers: {\n 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n });\n if (!(res as Response).ok) {\n throw { res };\n }\n this.client.setAuth(this.cookieAuth);\n this.cleanLocalStorage();\n this.basicAuth.logout();\n }\n return isPasswordGrantLogin;\n }\n\n isPasswordGrantLogin(credentials?: ICredentials) {\n const isSupportUser = credentials && credentials.user.includes('$');\n return !!(\n !isSupportUser &&\n this.loginMode &&\n this.loginMode.type === this.OAUTH2_INTERNAL_TYPE\n );\n }\n\n /**\n * Verifies if user is the support user or not.\n * @param {ICredentials} credentials credentials given by user.\n */\n isSupportUser(credentials?: ICredentials): boolean {\n return credentials && credentials.user.includes('$') ? true : false;\n }\n\n /**\n * Verifies if the tenant input field should be shown\n * or not.\n * @returns If true, show the tenant input.\n */\n showTenant(): boolean {\n return !this.ui.state.loginOptions || this.isLocal() || this.isShowTenant();\n }\n\n /**\n * Logs the user out\n * @param reload If set to false, the page will not reload\n */\n async logout(reload = true) {\n let resData = null;\n try {\n const [basicRes, cookieRes] = await this.reset();\n resData = await cookieRes.json();\n } catch (ex) {\n this.alert.removeLastDanger();\n } finally {\n if (resData && resData.url) {\n this.redirect(resData.url);\n } else if (reload) {\n window.location.reload();\n }\n }\n }\n\n /**\n * Resets the stored auth-data\n */\n async reset() {\n this.cleanLocalStorage();\n this.cleanSessionStorage();\n this.realtime.disconnect();\n this.ui.currentUser.next(null);\n return Promise.all([this.basicAuth.logout(), this.cookieAuth.logout()]);\n }\n\n /**\n * Saves the TFA token to local or session storage.\n * @param tfaToken The tfa token to save.\n * @param storage The storage to use (local or session).\n */\n saveTFAToken(tfaToken: string, storage: Storage) {\n storage.setItem(this.TFATOKEN_KEY, tfaToken);\n }\n\n /**\n * Request the manifest -> on 401 user has no access to that application\n * and we throw the error up to the login form.\n */\n async verifyAppAccess() {\n try {\n await this.ui.loadManifest();\n } catch (ex) {\n if (!(ex.res && ex.res.status === 404 && this.isLocal())) {\n throw ex;\n }\n }\n }\n\n /**\n * Sets the tenant to the client and updates the credentials on the\n * auth strategy.\n * @param credentials The name of the tenant.\n * @param authStrategy The authentication strategy used.\n * @return Returns the token if basic auth, otherwise undefined.\n */\n private setCredentials(credentials: ICredentials, authStrategy: IAuthentication) {\n if (credentials.tenant) {\n this.client.tenant = credentials.tenant;\n }\n // Check if a token is already set (case for support user login)\n // if yes -> we just need to update the user, and reuse the token\n // of the support user.\n // Therefore we need to pass user and tenant, to get\n // just the stored token and nothing else (see BasicAuth.ts:31).\n const token = this.basicAuth.updateCredentials({\n tenant: credentials.tenant,\n user: credentials.user\n });\n const newCredentials = { token, ...credentials };\n\n return authStrategy.updateCredentials(newCredentials);\n }\n\n /**\n * Verifies if the current user is a developer or not.\n * Running on localhost means development mode.\n */\n private isLocal(): boolean {\n const hostname = window.location.hostname;\n return this.localhostIpRegExp.test(hostname) || this.localhostRegExp.test(hostname);\n }\n\n /**\n * Save the token to local or session storage.\n * @param token The token to save.\n * @param storage The storage to use (local or session).\n */\n private saveToken(token: string, storage: Storage) {\n storage.setItem(this.TOKEN_KEY, token);\n }\n\n private storeBasicAuthToken(token: string) {\n this.saveToken(token, sessionStorage);\n if (this.rememberMe) {\n this.saveToken(token, localStorage);\n }\n }\n\n private cleanLocalStorage() {\n localStorage.removeItem(this.TOKEN_KEY);\n localStorage.removeItem(this.TFATOKEN_KEY);\n }\n\n private cleanSessionStorage() {\n sessionStorage.removeItem(this.TOKEN_KEY);\n sessionStorage.removeItem(this.TFATOKEN_KEY);\n }\n\n private isShowTenant(): boolean {\n return this.showTenantRegExp.test(window.location.href);\n }\n\n private redirect(url: string) {\n window.location.href = url;\n }\n\n private getLoginOption(): ITenantLoginOption {\n const loginOptions = this.ui.state.loginOptions || [];\n const [loginOption] = loginOptions;\n return loginOption;\n }\n\n /**\n * Gets support user name from credentials.\n * @param credentials Credentials object (defaults to the stored one).\n * @returns Support user name.\n */\n private getSupportUserName(credentials: ICredentials = this.getStoredCredentials()): string {\n if (!credentials) {\n return null;\n }\n const supportUserName = credentials.user.match(/^(.+\\/)?((.+)\\$)?(.+)?$/)[3];\n return supportUserName;\n }\n\n /**\n * Gets credentials object from the stored token.\n * @returns Credentials object.\n */\n private getStoredCredentials(): ICredentials {\n const token = this.getStoredToken();\n if (!token) {\n return null;\n }\n return this.decodeToken(token);\n }\n\n /**\n * Gets stored token from local storage or session storage.\n * @returns Stored token.\n */\n private getStoredToken(): string {\n return localStorage.getItem(this.TOKEN_KEY) || sessionStorage.getItem(this.TOKEN_KEY);\n }\n\n /**\n * Gets stored TFA token from local storage or session storage.\n * @returns Stored TFA token.\n */\n private getStoredTfaToken(): string {\n return localStorage.getItem(this.TFATOKEN_KEY) || sessionStorage.getItem(this.TFATOKEN_KEY);\n }\n\n /**\n * Decodes token to credentials object.\n * @param token Token to decode.\n * @returns Credentials object.\n */\n private decodeToken(token: string): ICredentials {\n const decoded = decodeURIComponent(escape(window.atob(token)));\n const split = decoded.match(/(([^/]*)\\/)?([^/:]+):(.+)/);\n\n return {\n tenant: split[2],\n user: split[3],\n password: split[4]\n };\n }\n}\n","import { Component, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { UserService, ICredentials, FetchClient, Client, IAuthentication } from '@c8y/client';\nimport { AppStateService } from '../common/ui-state.service';\nimport { AlertService } from '../alert/alert.service';\nimport { ModalComponent } from '../modal/modal.component';\nimport { LoginService } from '../login/public-api';\nimport { clone } from 'lodash-es';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-password-confirm-modal',\n templateUrl: './password-confirm-modal.component.html'\n})\nexport class PasswordConfirmModalComponent {\n @Output() passwordConfirmedEmitter = new EventEmitter<boolean>();\n loading = false;\n password: string;\n\n @ViewChild('modal', { static: false }) private modal: ModalComponent;\n\n constructor(\n public user: UserService,\n public ui: AppStateService,\n private client: FetchClient,\n private alert: AlertService,\n private loginService: LoginService\n ) {}\n\n async passwordConfirm() {\n if (this.password) {\n const supportUserName = this.ui.currentSupportUserName.value;\n const userId = this.ui.currentUser.value.id;\n const credentials: ICredentials = {\n password: this.password,\n user: `${supportUserName ? `${supportUserName}$` : ''}${userId}`,\n tenant: this.client.tenant\n };\n try {\n this.loading = true;\n const strategy = clone(this.loginService.useBasicAuth({}));\n delete credentials.tfa;\n strategy.updateCredentials(credentials);\n const newClient = this.createNewClient(strategy, this.client.baseUrl);\n await newClient.user.current();\n this.emitSuccessAndClose();\n } catch (e) {\n if (e.res && e.res.status === 401 && e.data && /pin|totp/i.test(e.data.message)) {\n this.emitSuccessAndClose();\n } else {\n this.alert.danger(gettext(\"Provided password doesn't match your current one.\"));\n }\n } finally {\n this.loading = false;\n }\n }\n }\n\n cancel() {\n this.passwordConfirmedEmitter.emit(false);\n this.modal._dismiss();\n }\n\n createNewClient(strategy: IAuthentication, baseUrl: string) {\n return new Client(strategy, baseUrl);\n }\n\n private emitSuccessAndClose() {\n this.passwordConfirmedEmitter.emit(true);\n this.modal._dismiss();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PasswordStrength } from '@c8y/client';\nimport { filter } from 'lodash-es';\nimport { PasswordStrengthColor } from './password.model';\nimport { gettext } from '../i18n/gettext';\nimport { PasswordConfirmModalComponent } from './password-confirm-modal.component';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class PasswordService {\n\n private GREEN: PasswordStrengthColor = {\n colorName: 'green',\n color: 'rgb(0, 128, 0)',\n description: gettext('strong'),\n passwordStrength: PasswordStrength.GREEN\n };\n private YELLOW: PasswordStrengthColor = {\n colorName: 'yellow',\n color: 'rgb(255, 204, 51)',\n description: gettext('medium'),\n passwordStrength: PasswordStrength.YELLOW\n };\n private RED: PasswordStrengthColor = {\n colorName: 'red',\n color: 'rgb(170, 0, 51)',\n description: gettext('weak'),\n passwordStrength: PasswordStrength.RED\n };\n\n constructor(private modalService: BsModalService) {}\n\n confirmPassword() {\n const modalInstance: any = this.modalService.show(PasswordConfirmModalComponent);\n return modalInstance.content.passwordConfirmedEmitter.pipe(take(1));\n }\n\n hasLowerCase(password: string) {\n return (password.search(/[a-z]/) !== -1);\n }\n\n hasUpperCase(password: string) {\n return (password.search(/[A-Z]/) !== -1);\n }\n\n hasNumbers(password: string) {\n return (password.search(/[0-9]/) !== -1);\n }\n\n hasSpecialChars(password: string) {\n return (password.search(/[^0-9a-zA-Z]+/) !== -1);\n }\n\n getStrengthColor(password: string): PasswordStrengthColor {\n const passwordStrength = filter([\n this.hasLowerCase(password),\n this.hasUpperCase(password),\n this.hasNumbers(password),\n this.hasSpecialChars(password)\n ]).length;\n\n if (passwordStrength > 2) {\n return this.GREEN;\n } else if (passwordStrength >= 2) {\n return this.YELLOW;\n } else {\n return this.RED;\n }\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { PasswordService } from './password.service';\nimport { LoginService } from '../login/login.service';\nimport { assign, map } from 'lodash-es';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-password-check-list',\n templateUrl: './password-check-list.component.html',\n styles: []\n})\n\nexport class PasswordCheckListComponent implements OnInit {\n\n @Input('password')\n set password(password: string) {\n if (typeof password === 'string') {\n this.onPasswordChange(password);\n }\n }\n\n minGreenLength: number = 0;\n\n checklist = [\n {\n label: gettext('Include lowercase characters (e.g. abcdef)'),\n check: this.passwordStrengthChecker.hasLowerCase,\n icon: '',\n contextualColor: ''\n\n },\n {\n label: gettext('Include uppercase characters (e.g. ABCDEF)'),\n check: this.passwordStrengthChecker.hasUpperCase,\n icon: '',\n contextualColor: ''\n },\n {\n label: gettext('Include numbers (e.g. 123456)'),\n check: this.passwordStrengthChecker.hasNumbers,\n icon: '',\n contextualColor: ''\n },\n {\n label: gettext('Include symbols (e.g. !@#$%^)'),\n check: this.passwordStrengthChecker.hasSpecialChars,\n icon: '',\n contextualColor: ''\n },\n {\n label: gettext('Must have at least {{length}} characters'),\n check: (password) => password.length >= this.minGreenLength,\n icon: '',\n contextualColor: ''\n }\n ];\n\n constructor(public loginService: LoginService,\n private passwordStrengthChecker: PasswordService) {\n }\n\n ngOnInit() {\n this.minGreenLength = this.loginService.getGreenMinLength();\n }\n\n get translateParams() {\n return {\n length: this.minGreenLength\n };\n }\n\n onPasswordChange(password) {\n this.checklist = map(this.checklist, (requirement) => {\n const checked = requirement.check(password);\n assign(requirement, {\n icon: checked ? 'check' : '',\n contextualColor: checked ? '' : 'text-muted'\n });\n return requirement;\n });\n }\n}\n","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[passwordConfirm]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: PasswordConfirm,\r\n multi: true\r\n }\r\n ]\r\n})\r\n\r\nexport class PasswordConfirm implements Validator {\r\n\r\n constructor(@Attribute('passwordConfirm') public passwordConfirm: string) {\r\n }\r\n\r\n validate(abControl: AbstractControl): { [key: string]: any } {\r\n const value = abControl.value;\r\n const controlToCompareWith = abControl.root.get(this.passwordConfirm);\r\n if (controlToCompareWith && value !== controlToCompareWith.value) {\r\n return { passwordConfirm: true };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PasswordStrength } from '@c8y/client';\r\nimport { filter } from 'lodash-es';\r\nimport { PasswordStrengthColor } from './password.model';\r\nimport { gettext } from '../i18n/gettext';\r\n\r\n@Injectable()\r\nexport class PasswordStrengthCheckerService {\r\n\r\n private GREEN: PasswordStrengthColor = {\r\n colorName: 'green',\r\n color: 'rgb(0, 128, 0)',\r\n description: gettext('strong'),\r\n passwordStrength: PasswordStrength.GREEN\r\n };\r\n private YELLOW: PasswordStrengthColor = {\r\n colorName: 'yellow',\r\n color: 'rgb(255, 204, 51)',\r\n description: gettext('medium'),\r\n passwordStrength: PasswordStrength.YELLOW\r\n };\r\n private RED: PasswordStrengthColor = {\r\n colorName: 'red',\r\n color: 'rgb(170, 0, 51)',\r\n description: gettext('weak'),\r\n passwordStrength: PasswordStrength.RED\r\n };\r\n\r\n hasLowerCase(password: string) {\r\n return (password.search(/[a-z]/) !== -1);\r\n }\r\n\r\n hasUpperCase(password: string) {\r\n return (password.search(/[A-Z]/) !== -1);\r\n }\r\n\r\n hasNumbers(password: string) {\r\n return (password.search(/[0-9]/) !== -1);\r\n }\r\n\r\n hasSpecialChars(password: string) {\r\n return (password.search(/[^0-9a-zA-Z]+/) !== -1);\r\n }\r\n\r\n getStrengthColor(password: string): PasswordStrengthColor {\r\n const passwordStrength = filter([\r\n this.hasLowerCase(password),\r\n this.hasUpperCase(password),\r\n this.hasNumbers(password),\r\n this.hasSpecialChars(password)\r\n ]).length;\r\n\r\n if (passwordStrength > 2) {\r\n return this.GREEN;\r\n } else if (passwordStrength >= 2) {\r\n return this.YELLOW;\r\n } else {\r\n return this.RED;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PasswordService } from './password.service';\n\n@Component({\n selector: 'c8y-password-strength',\n templateUrl: './password-strength.component.html'\n})\n\nexport class PasswordStrengthComponent {\n\n @Input('password')\n set password(password: string) {\n if (typeof password === 'string') {\n this.model = this.passwordStrengthCheckerService.getStrengthColor(password);\n this.strength.emit(this.model);\n }\n }\n @Output()\n strength = new EventEmitter();\n\n model;\n\n constructor(private passwordStrengthCheckerService: PasswordService) {\n this.password = '';\n }\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { NewPassword } from './password.model';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { LoginService } from '../login/login.service';\n\n@Component({\n selector: 'c8y-new-password',\n templateUrl: './new-password.component.html',\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class NewPasswordComponent implements OnInit {\n @Output() password = new EventEmitter<NewPassword | {}>();\n model: any = {};\n changePassword: boolean = false;\n passwordEnforced: boolean = false;\n minlength: number;\n\n constructor(\n private loginService: LoginService\n ) {\n }\n\n ngOnInit() {\n this.loadPasswordStrengthSettings();\n this.minlength = this.loginService.getGreenMinLength();\n }\n\n newPasswordChanged() {\n this.password.emit({\n password: this.model.newPassword,\n passwordStrength: this.model.strength\n });\n }\n\n async loadPasswordStrengthSettings() {\n this.passwordEnforced = await this.loginService.getEnforcePasswordStrength();\n }\n\n showPasswordStrength() {\n return this.model.newPassword && this.model.newPassword.length >= this.minlength;\n }\n\n toggleChangePassword() {\n this.changePassword = !this.changePassword;\n if (!this.changePassword) {\n this.password.emit({});\n this.model = {};\n }\n }\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { StatusType, Status, statusIcons, statusAlert } from '../common/status.model';\nimport { ModalLabels } from '../select-modal/select-modal.model';\n\n/**\n * Labels to be used in the selection modal.\n * @deprecated This is going to be removed after 1007.7.0. Use ModalLabels instead.\n */\n// tslint:disable-next-line: no-empty-interface\nexport interface ILabels extends ModalLabels {}\n\n@Component({\n selector: 'c8y-confirm-modal',\n templateUrl: './modal-confirm.component.html'\n})\nexport class ConfirmModalComponent implements OnDestroy {\n result: Promise<boolean>;\n dismiss: () => void;\n close: () => void;\n @Input() title: string;\n @Input() body: string;\n @Input() status: StatusType = Status.INFO;\n @Input() set labels(labels: ModalLabels) {\n const { ok = 'OK', cancel = 'Cancel' } = labels || {};\n this._labels = { ok, cancel };\n }\n\n get labels(): ModalLabels { return this._labels; }\n\n get classIcon() {\n return `fa-${statusIcons[this.status]}`;\n }\n\n get classAlert() {\n return statusAlert[this.status];\n }\n\n private _labels: ModalLabels;\n\n constructor(private modal: BsModalRef) {\n this._labels = {\n ok: 'OK',\n cancel: 'Cancel'\n };\n this.result = new Promise((resolve, reject) => {\n this.dismiss = () => {\n reject();\n this.modal.hide();\n };\n this.close = () => {\n resolve(true);\n this.modal.hide();\n };\n });\n }\n\n ngOnDestroy() {\n this.dismiss();\n }\n}\n","import { Component, Input, Optional, Output, EventEmitter, HostListener } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { gettext } from '../i18n/gettext';\nimport { isEmpty } from 'lodash';\nimport { ModalLabels } from '../select-modal/select-modal.model';\n\n/**\n * C8y modal component.\n * ## Example:\n *\n * Creating custom modal:\n * ```typescript\n * import { Component } from \"@angular/core\";\n * import { Subject } from 'rxjs';\n *\n * @Component({\n * selector: \"my-modal\",\n * template: `\n * <c8y-modal title=\"CustomTitle\"\n * (onClose)=\"onClose($event)\"\n * (onDismiss)=\"onDismiss($event)\"\n * [labels]=\"labels\"\n * [disabled]=\"true\" <- will disable ok button\n * >\n * <span>I am body of modal</span>\n * <span>For simple string use body=\"string\"</span>\n * </c8y-modal>`\n * })\n *\n * export class MyModalComponent {\n *\n * closeSubject: Subject<boolean> = new Subject();\n * labels : ModalLabels = {ok: \"customOK\", cancel: \"customCancel\"};\n *\n * onDismiss(event){\n * this.closeSubject.next(false);\n * }\n *\n * onClose(event) {\n * this.closeSubject.next(true);\n * }\n * }\n * ```\n * Showing modal:\n * ```typescript\n * import { BsModalService } from \"ngx-bootstrap/modal\";\n *\n * constructor(\n * public bsModalService: BsModalService,\n * ) {}\n *\n * showModal() {\n * const modalRef = this.bsModalService.show(MyModalComponent);\n * modalRef.content.closeSubject.subscribe(result => {\n * console.log('results:', result);\n * });\n * }\n * ```\n */\n@Component({\n selector: 'c8y-modal',\n templateUrl: './modal.component.html',\n})\n\nexport class ModalComponent {\n @Output() onDismiss: EventEmitter<boolean> = new EventEmitter();\n @Output() onClose: EventEmitter<boolean> = new EventEmitter();\n @Input() disabled = false;\n @Input() close: () => void;\n @Input() dismiss: () => void;\n @Input() title: string;\n @Input() body: string;\n @Input() customFooter: boolean = false;\n @Input() set labels({ok, cancel}: ModalLabels) {\n this._labels = {ok , cancel};\n }\n\n get labels(): ModalLabels { return this._labels; }\n\n private _labels: ModalLabels = { ok: gettext('OK'), cancel: gettext('Cancel') };\n\n constructor(@Optional() private modal: BsModalRef) {}\n\n _dismiss() {\n let fn = this.dismiss;\n if (!fn && this.modal) { fn = () => this.modal.hide(); }\n if (fn) { fn(); }\n this.onDismiss.emit(true);\n }\n\n _close() {\n let fn = this.close;\n if (!fn && this.modal) { fn = () => this.modal.hide(); }\n if (fn) { fn(); }\n this.onClose.emit(true);\n }\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n const hasOnlyOneButton = isEmpty(this.labels.ok) !== isEmpty(this.labels.cancel);\n const isCancelClickable = !this.customFooter && this.labels.cancel;\n const isOkClickable = !this.customFooter && !this.disabled && this.labels.ok;\n if (hasOnlyOneButton && isCancelClickable) {\n this._dismiss();\n }\n if (hasOnlyOneButton && isOkClickable) {\n this._close();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { ConfirmModalComponent } from './modal-confirm.component';\nimport { StatusType, Status } from '../common/status.model';\nimport { gettext } from '../i18n/gettext';\n\n/**\n * Service to shiow a modal.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n\n constructor(private modalService: BsModalService) {}\n\n /**\n * Shows a quick confirm message modal.\n * @param title The title of that modal.\n * @param body The text body to display.\n * @param status The status.\n * @param labels The labels to use. Default: { ok: 'Confirm', cancel: 'Cancel'}\n */\n async confirm(title: string, body: string, status: StatusType = Status.INFO, labels: any = {}) {\n const modalLabels = {ok: labels.ok || gettext('Confirm'), cancel: labels.cancel || gettext('Cancel')};\n const modalRef = this.modalService.show(ConfirmModalComponent, {initialState: {title, body, labels: modalLabels, status}});\n return await modalRef.content.result;\n }\n\n /**\n * Shows a quick acknowledge message modal.\n * @param title The title of that modal.\n * @param body The text body to display.\n * @param status The status.\n * @param acknowledgeLabel The label to use.\n */\n async acknowledge(title: string, body: string, status: StatusType = Status.INFO, acknowledgeLabel: string = gettext('Confirm') ) {\n const labels = {ok: acknowledgeLabel, cancel: null};\n const modalRef = this.modalService.show(ConfirmModalComponent, {initialState: {title, body, labels, status}});\n return await modalRef.content.result;\n }\n}\n","import { Component, Input, ViewChild, OnDestroy } from '@angular/core';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { StatusType } from '../common/status.model';\nimport { gettext } from '../i18n/gettext';\n\nexport interface PopoverConfirmButtons {\n /**\n * The label of the button\n */\n label: string;\n /**\n * Which action to perform.\n */\n action: () => Promise<any>;\n /**\n * The status class attached to the button.\n */\n status?: StatusType | 'primary';\n}\n\n/**\n * A component to show a popover right next to the\n * user action. Add this component where the confirm modal\n * should be shown and toggle isOpen to display it. You\n * can use `await isShow()` to wait for a result on the\n * click action.\n */\n@Component({\n selector: 'c8y-popover-confirm',\n templateUrl: './popover-confirm.component.html'\n})\nexport class PopoverConfirmComponent {\n @ViewChild(PopoverDirective, {static: false}) popover: PopoverDirective;\n @Input() buttons: PopoverConfirmButtons[] = [{ label: gettext('cancel'), action: () => Promise.reject()}];\n @Input() message: string;\n @Input() title: string;\n @Input() isOpen = false;\n @Input() containerClass = '';\n @Input() placement = 'right';\n @Input() outsideClick = false;\n\n click: (action: () => Promise<any>) => void;\n\n /**\n * Show the popover. Wait until an action is performed on it.\n */\n async show(buttons?: PopoverConfirmButtons[]) {\n this.buttons = buttons || this.buttons;\n this.isOpen = true;\n let result;\n try {\n result = await new Promise((resolve, reject) => {\n return this.click = (action: () => Promise<any>) => action().then(resolve).catch(reject);\n });\n } catch (ex) {\n throw(ex);\n } finally {\n this.isOpen = false;\n }\n return result;\n }\n\n buttonStatus(status) {\n if (status) {\n return `btn-${status}`;\n }\n return 'btn-link btn-clean';\n }\n\n handleOutsideClick() {\n this.click(() => Promise.reject());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ModalModule as BsModalModule } from 'ngx-bootstrap/modal';\nimport { ConfirmModalComponent } from './modal-confirm.component';\nimport { ModalComponent } from './modal.component';\nimport { ModalService } from './modal.service';\nimport { CommonModule } from '../common/common.module';\nimport { PopoverConfirmComponent } from './popover-confirm.component';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\n\n/**\n * The angular module definition for modal.\n * @exports ConfirmModalComponent\n * @exports ModalComponent\n * @exports PopoverConfirmComponent\n */\n@NgModule({\n imports: [\n BsModalModule.forRoot(),\n CommonModule,\n PopoverModule.forRoot()\n ],\n exports: [\n ConfirmModalComponent,\n ModalComponent,\n PopoverConfirmComponent\n ],\n declarations: [\n ConfirmModalComponent,\n ModalComponent,\n PopoverConfirmComponent\n ],\n providers: [\n ModalService\n ],\n entryComponents: [\n ConfirmModalComponent\n ]\n})\nexport class ModalModule { }\n","import { NG_VALIDATORS, AbstractControl, Validator } from '@angular/forms';\nimport { Directive } from '@angular/core';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js/max';\n\n@Directive({\n selector: '[c8yPhoneValidation]',\n providers: [{provide: NG_VALIDATORS, useExisting: PhoneValidationDirective, multi: true}]\n})\nexport class PhoneValidationDirective implements Validator {\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n const valid = this.validateInternationalPhoneNumber(control);\n return valid ? null : {\n internationalPhoneNumber: true\n };\n }\n\n private validateInternationalPhoneNumber(control: AbstractControl) {\n let numberValid;\n try {\n const phoneNumber = parsePhoneNumberFromString(control.value);\n numberValid = phoneNumber.isValid();\n if (numberValid && control.value !== phoneNumber.format('E.164')) {\n control.setValue(phoneNumber.format('E.164'), { emitEvent: false, emitModelToViewChange: false });\n }\n } catch (e) {\n numberValid = !control.value;\n }\n return numberValid;\n }\n}\n","// tslint:disable: max-line-length\nimport { gettext } from '../i18n/gettext';\n\nexport interface ValidationRules {\n pattern?: RegExp;\n message?: string;\n maxLength?: number;\n minLength?: number;\n}\n\n// @dynamic\nexport class ValidationPattern {\n static readonly messages = {\n deviceId: gettext('Device ID must not contain spaces or slashes (\"/\").'),\n domain: gettext(\n 'Only lowercase letters, digits, hyphens and underscores allowed in the first part of the URI. ' +\n 'Must start with a letter; hyphens and underscores only allowed in the middle. Must be a valid URI.'\n ),\n email: gettext('Invalid email address.'),\n internationalPhoneNumber: gettext(\n 'International phone number required, in the format +49 9 876 543 210.'\n ),\n loginAlias: gettext(\n 'Login alias must not contain slashes (\"/\", \"\\\\\") nor (\"+\"), (\":\"), (\"$\") signs.'\n ),\n max : gettext('Max value: {{ value }}'),\n min : gettext('Min value: {{ value }}'),\n opcuaBrowsePath: gettext('Invalid OPC UA URI.'),\n password: gettext(\n 'Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:\\'\",.<>{}[]\\\\/'\n ),\n passwordConfirm: gettext('Passwords do not match.'),\n passwordStrength: gettext('Password not good enough, password must be stronger (green).'),\n phoneNumber: gettext(\n 'Invalid phone number format. Only digits, spaces, slashes (\"/\") and dashes (\"-\") allowed.'\n ),\n required: gettext('This field is required.'),\n tenantId: gettext(\n 'May contain lowercase letters, digits, hyphens and underscores. ' +\n 'Must start with a letter; hyphens and underscores only allowed in the middle; minimum 2 characters.'\n ),\n urlSegment: gettext('Slash, single or double dots and white space not allowed'),\n user: gettext(\n 'Username must not contain spaces nor slashes (\"/\", \"\\\\\") nor (\"+\"), (\":\"), (\"$\") signs.'\n )\n };\n\n static readonly rules = {\n deviceId: {\n pattern: /^[^\\s/]*$/\n },\n domain: {\n pattern: /^[a-z]+[a-z0-9_-]*[a-z0-9]+\\.{1}.+$/\n },\n groupName: {\n maxLength: 254\n },\n hostname: {\n 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])$/\n },\n ip: {\n 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]?)$/\n },\n opcuaBrowsePath: {\n pattern: /^(opc.tcp|http|https):\\/\\/[^ \"]+$/\n },\n password: {\n pattern: /^[a-zA-Z0-9`~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]{8,32}$/\n },\n phoneNumber: {\n pattern: /^$|^(\\+|0{2})[\\d\\s/-]{1,30}$/\n },\n tenantId: {\n pattern: /^[a-z]+[a-z0-9_-]*[a-z0-9]+$/\n },\n user: {\n pattern: /^[^\\\\/\\s$:+]*$/\n },\n urlSegment: {\n pattern: /^(([.]{1,2})|([/])+|(([/]*)([.]{1,2})([/]*))|((.*)([/]|[ ]+)(.*))|(\\s+))$/\n },\n loginAlias: {\n pattern: /^[^\\\\/$:+]*$/\n }\n };\n\n static get(key: string) {\n const pattern = this.rules[key];\n return pattern as ValidationRules;\n }\n}\n","import { NG_VALIDATORS, AbstractControl, Validator } from '@angular/forms';\nimport { Directive, Input } from '@angular/core';\nimport { ValidationPattern } from './validation-pattern';\n\n@Directive({\n selector: '[c8yDefaultValidation]',\n providers: [{provide: NG_VALIDATORS, useExisting: DefaultValidationDirective, multi: true}]\n})\nexport class DefaultValidationDirective implements Validator {\n @Input() c8yDefaultValidation: string = '';\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n if (!control.value) {\n return null;\n }\n const validation = ValidationPattern.get(this.c8yDefaultValidation);\n if (!validation) {\n throw new Error(`Pattern ${this.c8yDefaultValidation} not found.`);\n }\n\n let valid = true;\n if (validation.pattern) {\n valid = validation.pattern.test(control.value);\n }\n if (validation.maxLength) {\n valid = control.value.length < validation.maxLength;\n }\n if (validation.minLength) {\n valid = control.value.length >= validation.minLength;\n }\n return valid ? null : {[this.c8yDefaultValidation]: true };\n }\n}\n","import { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\nimport { isUndefined } from 'lodash-es';\n\n@Directive({\n selector: '[min]',\n providers: [{provide: NG_VALIDATORS, useExisting: MinValidationDirective, multi: true}]\n})\nexport class MinValidationDirective implements Validator {\n @Input() min: string = '';\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n const parsedMin = parseInt(this.min, 10);\n if (isUndefined(control.value) || !this.min) {\n return null;\n }\n\n let valid = true;\n valid = (control.value !== null) ? !(control.value < parsedMin) : true;\n return valid ? null : {min: { value: parsedMin } };\n }\n}\n","import { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\nimport { Directive, Input } from '@angular/core';\n\nimport { isUndefined } from 'lodash-es';\n\n@Directive({\n selector: '[max]',\n providers: [{provide: NG_VALIDATORS, useExisting: MaxValidationDirective, multi: true}]\n})\nexport class MaxValidationDirective implements Validator {\n @Input() max: string = '';\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n const parsedMax = parseInt(this.max, 10);\n if (isUndefined(control.value) || !this.max) {\n return null;\n }\n\n let valid = true;\n valid = !(control.value > parsedMax);\n return valid ? null : {max: { value: parsedMax } };\n }\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: 'c8y-message',\n})\nexport class MessageDirective {\n @Input() name: string;\n @Input() text: string;\n}\n","import { Component, ContentChildren, Input, QueryList } from '@angular/core';\n\nimport { MessageDirective } from './message.directive';\nimport { ValidationPattern } from './validation-pattern';\nimport { isFunction } from 'lodash-es';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'c8y-messages',\n templateUrl: './messages.component.html'\n})\nexport class MessagesComponent {\n @Input() show: {} = {};\n @Input() defaults: {} = ValidationPattern.messages;\n @ContentChildren(MessageDirective) customMessages: QueryList<MessageDirective>;\n messages = [];\n messageMap: any = {};\n\n constructor(private translateService: TranslateService) {}\n\n ngAfterContentInit(): void {\n this.messageMap = Object.assign({}, this.defaults, this.customMessages.reduce((messages, directive) => {\n messages[directive.name] = directive.text;\n return messages;\n }, {}));\n }\n\n changVisibility(show: {}) {\n this.show = show;\n this.ngOnChanges();\n }\n\n ngOnChanges() {\n if (this.show) {\n this.messages = Object.keys(this.show)\n .map((key) => this.toMessage(key, this.show[key]));\n } else {\n this.messages = [];\n }\n }\n\n private toMessage(key, value) {\n return this.translateService.instant(this.messageMap[key], value);\n }\n}\n","import { Component, ContentChild, HostBinding, Input } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { Subscription, timer, merge } from 'rxjs';\nimport { debounce, filter } from 'rxjs/operators';\nimport { MessagesComponent } from './messages.component';\n/**\n * A form group helps to validate an input of a form element.\n *\n * ## Example:\n *\n * ```html\n * <c8y-form-group [hasWarning]=\"user.email.length === 0\">\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' | translate}}\"\n * [(ngModel)]=\"user.email\"\n * email\n * required\n * >\n * <c8y-messages>\n * <c8y-message *ngIf=\"user.email.length === 0\" translate></c8y-message>\n * <c8y-message name=\"required\" text=\"The E-Mail is SUPER required\"></c8y-message>\n * </c8y-messages>\n * </c8y-form-group>\n * ```\n *\n * @param status The current status could be error, warning or success.\n * @param hasError Set this to true to display a error.\n * @param hasWarning Set this to true to display a warning.\n * @param hasSuccess Set this to true to display a success.\n * @param novalidation Set this to true to disable automatic validation by this component.\n */\n@Component({\n selector: 'c8y-form-group',\n templateUrl: './form-group.component.html',\n host: {\n class: 'form-group'\n }\n})\nexport class FormGroupComponent {\n @Input() hasError = false;\n @Input() hasWarning = false;\n @Input() hasSuccess = false;\n @Input() novalidation = false;\n @Input() status: string;\n @HostBinding('class.has-error') get error() {\n return this.status === 'error' || this.hasError;\n }\n @HostBinding('class.has-warning') get warning() {\n return this.status === 'warning' || this.hasWarning;\n }\n @HostBinding('class.has-success') get success() {\n return this.status === 'success' || this.hasSuccess;\n }\n @ContentChild(MessagesComponent, { static: false }) customErrorMessage: MessagesComponent;\n @ContentChild(NgModel, { static: true }) model: NgModel;\n\n errors: {};\n private subscription: Subscription;\n private readonly VALIDATION_DEBOUNCE_MS = 1000;\n\n ngAfterContentInit(): void {\n this.initNgModel();\n }\n\n initNgModel() {\n if (this.model) {\n this.model.valueAccessor.registerOnTouched(() => {\n if (this.model.control && !this.model.control.dirty) {\n this.model.control.markAsDirty();\n this.model.control.updateValueAndValidity({onlySelf: true});\n }\n });\n this.subscription = merge(this.model.valueChanges, this.model.statusChanges)\n .pipe(\n filter(() => this.model.dirty && !this.novalidation),\n debounce(() => (this.hasError ? timer(10) : timer(this.VALIDATION_DEBOUNCE_MS)))\n )\n .subscribe(() => this.update());\n }\n }\n\n update() {\n this.hasError = this.model.status === 'INVALID';\n if (this.customErrorMessage) {\n this.customErrorMessage.changVisibility(this.model.errors);\n } else {\n this.errors = this.model.errors;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n QueryList,\n TemplateRef,\n ContentChild,\n EventEmitter\n} from '@angular/core';\n\n@Component({\n selector: 'c8y-input-group-list',\n templateUrl: 'input-group-list.component.html'\n})\nexport class InputGroupListComponent {\n @Input() plus: boolean = true;\n @Input() minus: boolean = true;\n @Input() index: number;\n\n @Output() onRemove: EventEmitter<number> = new EventEmitter<number>();\n @Output() onAdd: EventEmitter<number> = new EventEmitter<number>();\n add() {\n this.onAdd.emit(this.index);\n }\n\n remove() {\n this.onRemove.emit(this.index);\n }\n}\n","import {\n Directive,\n Input,\n Output,\n QueryList,\n AfterContentInit,\n ContentChildren,\n EventEmitter\n} from '@angular/core';\nimport { map } from 'lodash-es';\nimport { InputGroupListComponent } from './input-group-list.component';\n\n@Directive({\n selector: '[c8yInputGroupListContainer]'\n})\nexport class InputGroupListContainerDirective implements AfterContentInit {\n @ContentChildren(InputGroupListComponent) listProjections: QueryList<InputGroupListComponent>;\n\n ngAfterContentInit() {\n this.listProjections.map(element => {\n if (element !== this.listProjections.last) {\n setTimeout(() => {\n element.plus = false;\n });\n }\n });\n\n this.listProjections.changes.subscribe(elements => {\n if (elements.length === 1) {\n setTimeout(() => {\n elements.first.plus = true;\n elements.first.minus = false;\n });\n\n return;\n }\n elements.map(element => {\n setTimeout(() => {\n element.minus = true;\n });\n\n if (element !== elements.last) {\n setTimeout(() => {\n element.plus = false;\n });\n }\n if (element === elements.last) {\n setTimeout(() => {\n element.plus = true;\n });\n }\n });\n });\n }\n}\n","import { Directive, EventEmitter, Output, OnInit, OnDestroy } from '@angular/core';\nimport { NgControl, AbstractControl } from '@angular/forms';\n\nimport { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { gettext } from '../i18n/public-api';\n\n@Directive({\n selector: 'textarea[prettyValidJson]'\n})\nexport class JsonValidationPrettifierDirective implements OnInit, OnDestroy {\n @Output() invalidJSON: EventEmitter<string> = new EventEmitter();\n private abstractCtrl: AbstractControl;\n private message: string = gettext('Must be a valid JSON object.');\n private debounceTimeInMs: number = 1000;\n private subscription: Subscription;\n\n constructor(ngCtrl: NgControl) {\n this.abstractCtrl = ngCtrl.control;\n }\n\n ngOnInit() {\n this.subscription = this.abstractCtrl.valueChanges\n .pipe(\n tap(() => this.clearValidationMessage()),\n debounceTime(this.debounceTimeInMs),\n distinctUntilChanged()\n )\n .subscribe(value => {\n this.validateInputAndPrettify(value);\n });\n }\n\n ngOnDestroy() {\n if (this.subscription && !this.subscription.closed) {\n this.subscription.unsubscribe();\n }\n }\n\n validateInputAndPrettify(value) {\n if (value) {\n try {\n const validJsonObject = JSON.parse(value);\n const pretty = JSON.stringify(validJsonObject, undefined, 2);\n this.abstractCtrl.setValue(pretty);\n } catch (ex) {\n this.setErrorAndValidationMessage();\n }\n }\n }\n\n private setErrorAndValidationMessage() {\n this.abstractCtrl.setErrors({ invalidBodyTemplate: true });\n this.invalidJSON.emit(this.message);\n }\n\n private clearValidationMessage() {\n this.invalidJSON.emit(undefined);\n }\n}\n","import { Directive, ElementRef, Input, HostBinding, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: 'textarea[heightPerRow]'\n})\nexport class TextAreaRowHeightDirective {\n @Input()\n @HostBinding('rows')\n rows: number = 1;\n\n @Input('heightPerRow')\n heightPerRow: string;\n\n private minHeightPerRow = 20;\n\n constructor(private elem: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const convertedValue = Number(this.heightPerRow);\n if (this.heightPerRow && convertedValue && convertedValue > this.minHeightPerRow) {\n this.setHeight(`${this.rows * convertedValue}px`);\n } else {\n this.setHeight(`${this.rows * this.minHeightPerRow}px`);\n }\n }\n\n private setHeight(value: string) {\n this.renderer.setStyle(this.elem.nativeElement, 'height', value);\n }\n}\n","import { Directive, ElementRef, Renderer2, AfterContentChecked } from '@angular/core';\nimport { gettext } from '../i18n/gettext';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Directive({\n selector: 'input[required]'\n})\nexport class RequiredInputPlaceholderDirective implements AfterContentChecked {\n private shouldSkipRequiredHint: boolean = false;\n private placeholder: string;\n private req: boolean;\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private translationService: TranslateService\n ) {\n this.shouldSkipRequiredHint = !!this.el.nativeElement.closest('[placeholder-no-required-hint]');\n }\n\n ngAfterContentChecked(): void {\n if (this.el && this.el.nativeElement && this.el.nativeElement.required !== undefined) {\n const required = this.el.nativeElement.required && !this.shouldSkipRequiredHint;\n const placeholder = this.el.nativeElement.placeholder;\n\n if (this.placeholder !== placeholder || this.req !== required) {\n this.updatePlaceholder(this.getTextForPlaceholder(placeholder, required));\n }\n }\n }\n\n private getTextForPlaceholder(placeholder = '', required = false) {\n this.req = required;\n const requiredText = `(${this.translationService.instant(gettext('required'))})`;\n const requiredTextIndex = placeholder.lastIndexOf(requiredText);\n if (requiredTextIndex > 0) {\n placeholder = placeholder.slice(0, requiredTextIndex - 1);\n }\n if (requiredTextIndex === 0) {\n placeholder = '';\n }\n if (!required) {\n return placeholder;\n }\n return placeholder.trim() ? `${placeholder} ${requiredText}` : requiredText;\n }\n\n private updatePlaceholder(placeholder) {\n this.renderer.setAttribute(this.el.nativeElement, 'placeholder', placeholder);\n this.placeholder = placeholder;\n }\n}\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'c8y-ip-range-input-list',\n templateUrl: './ip-range-input-list.component.html'\n})\nexport class IpRangeInputListComponent {\n @Input()\n set data(list) {\n this.ipRangeList = list;\n if (this.ipRangeList.length === 0) {\n this.add();\n }\n }\n\n get data() {\n return this.ipRangeList;\n }\n\n ipRangeList: Array<{ ip: string; cidr: number }>;\n\n add() {\n this.ipRangeList.push({ ip: '', cidr: undefined });\n }\n\n remove(index) {\n this.ipRangeList.splice(index, 1);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subject, timer } from 'rxjs';\nimport { debounce, distinctUntilChanged, map } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-filter',\n templateUrl: './filter-input.component.html'\n})\nexport class FilterInputComponent implements OnInit, OnDestroy {\n @Input() icon: string;\n @Output() onSearch = new EventEmitter<string>();\n filterChange$ = new Subject();\n filterTerm: string = '';\n private readonly CARRIAGE_RETURN_KEY = 13;\n private readonly CARRIAGE_RETURN_CODE = 'Enter';\n\n ngOnInit() {\n this.reset();\n this.filterChange$\n .pipe(\n debounce((event: any) =>\n event.code === this.CARRIAGE_RETURN_CODE || event.keyCode === this.CARRIAGE_RETURN_KEY\n ? timer(10)\n : timer(300)\n ),\n map((e: any) => e.target.value),\n distinctUntilChanged()\n )\n .subscribe(filterTerm => {\n this.filterTerm = filterTerm;\n this.onSearch.emit(filterTerm);\n });\n }\n\n reset() {\n this.filterTerm = '';\n this.onSearch.emit('');\n }\n\n ngOnDestroy(): void {\n this.filterChange$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PhoneValidationDirective } from './phone-validation.directive';\nimport { DefaultValidationDirective } from './default-validation.directive';\nimport { MinValidationDirective } from './min-validation.directive';\nimport { MaxValidationDirective } from './max-validation.directive';\nimport { CommonModule } from '../common/common.module';\nimport { FormsModule as NgFormsModule } from '@angular/forms';\nimport { FormGroupComponent } from './form-group.component';\nimport { MessageDirective } from './message.directive';\nimport { MessagesComponent } from './messages.component';\nimport { InputGroupListComponent } from './input-group-list.component';\nimport { InputGroupListContainerDirective } from './input-group-list-container.directive';\nimport { JsonValidationPrettifierDirective } from './json-validation-prettifier.directive';\nimport { TextAreaRowHeightDirective } from './text-area-row-height.directive';\nimport { RequiredInputPlaceholderDirective } from './required-input-placeholder.directive';\nimport { IpRangeInputListComponent } from './ip-range-input-list.component';\nimport { FilterInputComponent } from './filter-input.component';\n\n/**\n * @exports FormGroupComponent A component that allows to group an input and can display warnings and errors.\n * @exports PhoneValidationDirective Allows to validate international phone numbers.\n * @exports NewsletterDirective Allows to subscribe to the newsletter.\n * @exports DefaultValidationDirective Allows to validate some predefined patterns.\n * @exports MessageDirective A directive that allows to define messages.\n * @exports MessagesComponent Allows to display error messages.\n */\n@NgModule({\n imports: [CommonModule, NgFormsModule],\n exports: [\n PhoneValidationDirective,\n DefaultValidationDirective,\n MinValidationDirective,\n MaxValidationDirective,\n NgFormsModule,\n FormGroupComponent,\n MessageDirective,\n MessagesComponent,\n InputGroupListComponent,\n InputGroupListContainerDirective,\n JsonValidationPrettifierDirective,\n TextAreaRowHeightDirective,\n RequiredInputPlaceholderDirective,\n IpRangeInputListComponent,\n FilterInputComponent\n ],\n declarations: [\n PhoneValidationDirective,\n DefaultValidationDirective,\n MinValidationDirective,\n MaxValidationDirective,\n FormGroupComponent,\n MessageDirective,\n MessagesComponent,\n InputGroupListComponent,\n InputGroupListContainerDirective,\n JsonValidationPrettifierDirective,\n TextAreaRowHeightDirective,\n RequiredInputPlaceholderDirective,\n IpRangeInputListComponent,\n FilterInputComponent\n ]\n})\nexport class FormsModule {}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { NewPassword } from './password.model';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { LoginService } from '../login/login.service';\nimport { UserService, ICredentials } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { LoginViews } from '../login/login.model';\n\n@Component({\n selector: 'c8y-totp-challenge',\n templateUrl: './totp-challenge.component.html',\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\n\nexport class TotpChallengeComponent {\n /**\n * Calls the verify endpoint if set to true (default true)\n */\n @Input() verify = true;\n /**\n * Emits the token on success.\n */\n @Output() onSuccess = new EventEmitter();\n\n model = {\n token: ''\n };\n @Input()\n loading = false;\n @Input()\n hasError = false;\n\n constructor(\n public loginService: LoginService,\n private users: UserService,\n private alert: AlertService\n ) {}\n\n async verifyCode() {\n try {\n this.loading = true;\n this.hasError = false;\n if (this.verify) {\n await this.users.verifyTotpCode(this.model.token);\n }\n this.onSuccess.emit(this.model.token);\n } catch (e) {\n this.hasError = true;\n this.alert.removeLastDanger();\n this.loading = false;\n }\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { UserService, ICredentials } from '@c8y/client';\nimport { LoginService } from '../login/login.service';\nimport { AlertService } from '../alert/public-api';\nimport { LoginViews } from '../login/login.model';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-sms-challenge',\n templateUrl: './sms-challenge.component.html',\n styles: []\n})\n\nexport class SmsChallengeComponent {\n\n @Input() credentials: ICredentials;\n @Output() onCancel = new EventEmitter();\n\n model = {\n smsToken: ''\n };\n isLoading = false;\n\n private resendTfa: string = '0';\n\n constructor(\n public loginService: LoginService,\n private users: UserService,\n private alert: AlertService\n ) {}\n\n async verifyTFACode() {\n this.isLoading = true;\n if (this.useOAuthInternal()) {\n await this.verifyCodeWithOauth();\n } else {\n await this.verifyCodeWithBasicAuth();\n }\n this.isLoading = false;\n }\n\n async resendTFASms() {\n try {\n this.isLoading = true;\n await this.users.verifyTFACode(this.resendTfa);\n } catch (e) {\n if (e.res.status === 403) {\n this.loginService.cleanMessages();\n this.loginService.addSuccessMessage('resend_sms');\n } else {\n this.alert.addServerFailure(e);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private useOAuthInternal() {\n return this.loginService.isPasswordGrantLogin(this.credentials);\n }\n\n private async verifyCodeWithOauth() {\n try {\n const { credentials } = this;\n await this.loginService.switchLoginMode({...credentials, tfa: this.model.smsToken});\n await this.loginService.verifyAppAccess();\n await this.loginService.authFulfilled();\n } catch (e) {\n const resStatus = e.res && e.res.status;\n if (resStatus === 401) {\n // it is assumed that the user and password are correct so it must be the tfa code\n this.alert.danger(gettext('Invalid code'));\n } else {\n this.alert.addServerFailure(e);\n }\n }\n }\n\n private async verifyCodeWithBasicAuth() {\n try {\n const { res } = await this.users.verifyTFACode(this.model.smsToken);\n const tfaToken = res.headers.get('tfatoken');\n this.credentials.tfa = tfaToken;\n this.loginWithTFA(tfaToken);\n } catch (e) {\n const resStatus = e.res && e.res.status;\n // BE returns 403 in case of invalid tfa code\n if (resStatus === 403) {\n this.alert.danger(gettext('Invalid code'));\n } else {\n this.alert.addServerFailure(e);\n }\n }\n }\n\n private async loginWithTFA(tfaToken) {\n try {\n await this.loginService.login(this.loginService.useBasicAuth({tfa: tfaToken}), this.credentials);\n this.loginService.saveTFAToken(tfaToken, sessionStorage);\n if (this.loginService.rememberMe) {\n this.loginService.saveTFAToken(tfaToken, localStorage);\n }\n } catch (e) {\n this.alert.addServerFailure(e);\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ITotp, UserService } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-totp-setup',\n templateUrl: './totp-setup.component.html'\n})\nexport class TotpSetupComponent implements OnInit {\n totpSecret: ITotp;\n\n get qrCodeImage() {\n return this.totpSecret ? this.totpSecret.secretQrUrl : '';\n }\n\n get secret() {\n return this.totpSecret ? this.totpSecret.rawSecret : '';\n }\n\n get qrData() {\n // TODO: waiting for BE:, now we need extract it from secretQrUrl\n // https://cumulocity.atlassian.net/browse/MTM-36387\n // return this.totpSecret ? this.totpSecret.qrData : '';\n const otpAuth = this.qrCodeImage.split('chl=')[1];\n if (!otpAuth) {\n this.alert.danger(gettext('Failed to generate a QR code.'));\n return '';\n }\n return decodeURIComponent(otpAuth);\n }\n\n constructor(private user: UserService, private alert: AlertService) {}\n\n async ngOnInit() {\n try {\n const { data } = await this.user.generateTotpSecret();\n this.totpSecret = data;\n } catch (ex) {\n this.alert.addServerFailure(ex);\n }\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { LoginService } from '../login/login.service';\nimport { AlertService } from '../alert/alert.service';\nimport { LoginViews } from '../login/login.model';\nimport { ICredentials, UserService } from '@c8y/client';\n\n@Component({\n selector: 'c8y-provide-phone-number',\n templateUrl: './provide-phone-number.component.html'\n})\nexport class ProvidePhoneNumberComponent {\n @Input() credentials: ICredentials;\n @Output() onCancel = new EventEmitter();\n @Output() onChangeView = new EventEmitter();\n\n phoneNumber: string;\n requestInProgress = false;\n private sendTfa: string = '0';\n\n constructor(\n public loginService: LoginService,\n public alert: AlertService,\n private userService: UserService\n ) {}\n\n async sendTFASms() {\n try {\n await this.userService.verifyTFACode(this.sendTfa);\n } catch (e) {\n if (e.res.status === 403) {\n this.loginService.cleanMessages();\n this.loginService.addSuccessMessage('send_sms');\n } else {\n throw e;\n }\n }\n }\n\n async save() {\n try {\n this.requestInProgress = true;\n await this.userService.savePhoneNumber(this.phoneNumber);\n await this.sendTFASms();\n this.onChangeView.emit({\n view: LoginViews.SmsChallenge,\n credentials: this.credentials\n });\n } catch (e) {\n this.alert.addServerFailure(e);\n } finally {\n this.requestInProgress = false;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\nimport { PasswordCheckListComponent } from './password-check-list.component';\nimport { PasswordConfirm } from './password-confirm.directive';\nimport { PasswordStrengthCheckerService } from './password-strength-checker.service';\nimport { PasswordStrengthComponent } from './password-strength.component';\nimport { NewPasswordComponent } from './new-password.component';\nimport { PasswordConfirmModalComponent } from './password-confirm-modal.component';\nimport { ModalModule } from '../modal/modal.module';\nimport { FormsModule } from '../forms/forms.module';\nimport { TotpChallengeComponent } from './totp-challenge.component';\nimport { SmsChallengeComponent } from './sms-challenge.component';\nimport { TotpSetupComponent } from './totp-setup.component';\nimport { PasswordService } from './password.service';\nimport { ProvidePhoneNumberComponent } from './provide-phone-number.component';\nimport { QRCodeModule } from 'angularx-qrcode';\n\n/**\n * The angular module definition for new password.\n * @exports PasswordStrengthComponent\n * @exports PasswordCheckListComponent\n * @exports PasswordConfirm\n * @exports NewPasswordComponent\n * @exports PasswordConfirmModalComponent\n */\n@NgModule({\n declarations: [\n TotpChallengeComponent,\n PasswordConfirm,\n PasswordStrengthComponent,\n PasswordCheckListComponent,\n NewPasswordComponent,\n PasswordConfirmModalComponent,\n SmsChallengeComponent,\n TotpSetupComponent,\n ProvidePhoneNumberComponent\n ],\n imports: [\n FormsModule,\n TooltipModule,\n CommonModule,\n ModalModule,\n QRCodeModule\n ],\n exports: [\n TotpChallengeComponent,\n PasswordStrengthComponent,\n PasswordCheckListComponent,\n PasswordConfirm,\n NewPasswordComponent,\n PasswordConfirmModalComponent,\n SmsChallengeComponent,\n TotpSetupComponent,\n ProvidePhoneNumberComponent\n ],\n entryComponents: [\n PasswordConfirmModalComponent\n ],\n providers: [\n PasswordStrengthCheckerService,\n PasswordService\n ]\n})\nexport class AuthenticationModule {}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { BreadcrumbItem } from './breadcrumb.model';\n\n@Component({\n selector: 'c8y-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html'\n})\nexport class BreadcrumbItemComponent implements BreadcrumbItem {\n @Input() icon: string;\n @Input() translate: boolean;\n @Input() label: string;\n @Input() path: string;\n @ViewChild('template', {static: false}) template: any;\n}\n","import { Component, Input } from '@angular/core';\nimport { Breadcrumb } from './breadcrumb.model';\n\n@Component({\n selector: 'c8y-breadcrumb-outlet',\n templateUrl: './breadcrumb-outlet.component.html'\n})\nexport class BreadcrumbOutletComponent {\n showAll = false;\n @Input() breadcrumbs: Breadcrumb[] = [];\n\n /**\n * For upgrade only. Old angularjs routes start with hash, new ones not.\n */\n normalizePath(path) {\n return path.replace(/^#\\/?/, '');\n }\n}\n","import { Component, ContentChildren, QueryList } from '@angular/core';\nimport { Breadcrumb, BreadcrumbItem } from './breadcrumb.model';\nimport { BreadcrumbService } from './breadcrumb.service';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\n\n@Component({\n selector: 'c8y-breadcrumb',\n templateUrl: './breadcrumb.component.html'\n})\nexport class BreadcrumbComponent implements Breadcrumb {\n items: BreadcrumbItem[];\n @ContentChildren(BreadcrumbItemComponent) private contentChildItems: QueryList<BreadcrumbItem>;\n private viewInitTimeout;\n\n constructor(private breadcrumbService: BreadcrumbService) {}\n\n ngAfterViewInit() {\n this.items = this.contentChildItems.toArray();\n this.viewInitTimeout = setTimeout(() =>\n this.breadcrumbService.add(this as Breadcrumb)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.breadcrumbService.remove(this as Breadcrumb);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbOutletComponent } from './breadcrumb-outlet.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { BreadcrumbService } from './breadcrumb.service';\n\n/**\n * The angular module definition for breadcrumbs.\n * @exports BreadcrumbComponent\n * @exports BreadcrumbItemComponent\n * @exports BreadcrumbOutletComponent\n */\n@NgModule({\n declarations: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n BreadcrumbOutletComponent\n ],\n imports: [\n RouterModule.forChild([]),\n CommonModule,\n TooltipModule.forRoot()\n ],\n exports: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n BreadcrumbOutletComponent\n ]\n})\nexport class BreadcrumbModule { }\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { Search } from './search.model';\nimport { sortBy } from 'lodash';\nimport { AlertService } from '../alert/alert.service';\nimport { Alert } from '../alert/alert.model';\n\n@Component({\n selector: 'c8y-search-outlet',\n templateUrl: './search-outlet.component.html'\n})\nexport class SearchOutletComponent {\n @Input() search: Search[] = [];\n\n constructor(private alertService: AlertService) {}\n\n openSearch() {\n setTimeout(() => this.focusInputBox(), 100);\n }\n\n getByPriority() {\n return sortBy(this.search, this.byPriority);\n }\n\n closeDropdown(dropdown) {\n dropdown.hide();\n }\n\n verifyNotEmpty(term) {\n if (!term || term === '') {\n this.alertService.add({ text: 'Type something to execute a search.', type: 'warning' });\n }\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n\n private focusInputBox() {\n const elementToFocus: any = document.querySelector('#search-header-menu input');\n if (elementToFocus) {\n elementToFocus.focus();\n }\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ExtensionPoint, fromTrigger, sortByPriority, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { Search } from './search.model';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_SEARCH = new InjectionToken('SearchFactory');\n\n/**\n * A service which defines the dearch function.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SearchService extends StateService implements ExtensionPoint<Search> {\n items$: Observable<Search[]>;\n readonly refreshTrigger = new Subject();\n protected state$ = new BehaviorSubject<Set<Search>>(new Set<Search>());\n\n constructor(\n private injector: Injector,\n router: Router\n ) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_SEARCH, []),\n stateToFactory(this.state$)\n ]).pipe(\n map((items: Search[]) => sortByPriority(items)),\n shareReplay(1)\n );\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state() {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the search in the header.\n * @param item The item to add.\n */\n add(item: Search) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an search from the header.\n * @param item The item to remove.\n */\n remove(item: Search) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","import { Component, Input, Output, ViewChild, EventEmitter } from '@angular/core';\nimport { Search } from './search.model';\nimport { SearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search',\n templateUrl: './search.component.html'\n})\nexport class SearchComponent implements Search {\n @Input() name: string;\n @Input() icon: string = 'search';\n @Input() priority: number = 0;\n @ViewChild('template', {static: false}) template: any;\n @Output() search = new EventEmitter<Search>();\n @Input() term: string = '';\n\n private viewInitTimeout;\n\n constructor(private searchService: SearchService) { }\n\n onSearch() {\n this.search.emit(this);\n }\n\n ngAfterViewInit() {\n this.template = undefined;\n this.viewInitTimeout = setTimeout(() => this.searchService.add(this as Search));\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.searchService.remove(this as Search);\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n ViewChild\n} from '@angular/core';\nimport { escape, escapeRegExp } from 'lodash-es';\n\n@Component({\n selector: 'c8y-highlight',\n template: '<span [innerHTML]=\"highlightedText\"></span>'\n})\nexport class HighlightComponent {\n @ViewChild('text', { read: ElementRef, static: true })\n container: ElementRef;\n\n @Input()\n pattern: string = '';\n\n @Input()\n text: string = '';\n\n @Input()\n elementClass: string = 'text-info';\n\n highlightedText: string = '';\n\n ngOnChanges(): void {\n const textNoHtml = escape(this.text || '');\n const patternNoHtml = escape(this.pattern || '');\n const patternForRegex = escapeRegExp(patternNoHtml).replace(/\\\\\\*/g, '.*');\n this.highlightedText = textNoHtml.replace(\n new RegExp(patternForRegex, 'i'),\n `<strong class=\"${this.elementClass}\">$&</strong>`\n );\n }\n}\n","import { Component, Input} from '@angular/core';\r\nimport { gettext } from '../i18n/gettext';\r\n\r\n@Component({\r\n selector: 'c8y-search-result-empty',\r\n templateUrl: './search-result-empty.component.html'\r\n})\r\nexport class SearchResultEmptyComponent {\r\n private readonly NO_RESULT_FOUND = gettext('No results found.');\r\n private msg: string = this.NO_RESULT_FOUND;\r\n\r\n @Input('message')\r\n set _message(msg: string) {\r\n if (msg && msg.length > 0) {\r\n this.msg = msg;\r\n } else {\r\n this.msg = this.NO_RESULT_FOUND;\r\n }\r\n }\r\n\r\n get message() {\r\n return this.msg;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { SearchOutletComponent } from './search-outlet.component';\nimport { SearchComponent } from './search.component';\nimport { SearchService } from './search.service';\nimport { FormsModule } from '@angular/forms';\nimport { HighlightComponent } from './highlight.component';\nimport { SearchResultEmptyComponent } from './search-result-empty.component';\n\n/**\n * The angular module definition for the search.\n * @exports SearchComponent\n * @exports SearchOutletComponent\n * @exports HighlightComponent A component to highlight search results.\n */\n@NgModule({\n declarations: [\n SearchOutletComponent,\n SearchComponent,\n HighlightComponent,\n SearchResultEmptyComponent\n ],\n imports: [\n FormsModule,\n BsDropdownModule,\n CommonModule,\n RouterModule.forChild([])\n ],\n exports: [\n SearchOutletComponent,\n SearchComponent,\n HighlightComponent,\n SearchResultEmptyComponent\n ]\n})\nexport class SearchModule { }\n","import { Injectable } from '@angular/core';\nimport { StateService } from '../common/state-service.abstract';\nimport { BehaviorSubject } from 'rxjs';\nimport { UserMenuItem } from './user.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserMenuService extends StateService {\n state$: BehaviorSubject<any> = new BehaviorSubject<any>({\n userMenuItems: new Set<UserMenuItem>()\n });\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state() {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the search in the header.\n * @param item The item to add.\n */\n add(item: UserMenuItem) {\n this.state.userMenuItems.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an search from the header.\n * @param item The item to remove.\n */\n remove(item: UserMenuItem) {\n this.state.userMenuItems.delete(item);\n this.emitNewState();\n }\n}\n","import { Component, Input, ViewChild, EventEmitter, Output } from '@angular/core';\nimport { UserMenuItem } from './user.model';\nimport { UserMenuService } from './user-menu.service';\n\n@Component({\n selector: 'c8y-user-menu-item',\n templateUrl: './user-menu-item.component.html'\n})\nexport class UserMenuItemComponent implements UserMenuItem {\n @Input()\n icon: string;\n @Input()\n label: string;\n @Input()\n link: string;\n @Input()\n target: string;\n @Input()\n priority = 0;\n @ViewChild('template', {static: false}) template: any;\n\n @Output()\n click = new EventEmitter<UserMenuItem>();\n private viewInitTimeout;\n\n constructor(private userService: UserMenuService) { }\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.userService.add(this as UserMenuItem)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.userService.remove(this as UserMenuItem);\n }\n\n onClick() {\n this.click.emit(this);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BasicAuth, FetchClient, ICredentials, IUser, UserService } from '@c8y/client';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { AlertService } from '../alert/alert.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { UserPreferencesService } from '../common/user-preferences/user-preferences.service';\nimport { gettext } from '../i18n/gettext';\nimport { TranslateService } from '../i18n/translate.service';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-user-edit-modal',\n templateUrl: './user-edit-modal.component.html'\n})\nexport class UserEditModalComponent implements OnInit {\n currentUser: IUser;\n lang: string;\n changedLang: string;\n loading = false;\n\n constructor(\n public modal: BsModalRef,\n public user: UserService,\n public ui: AppStateService,\n private auth: BasicAuth,\n private client: FetchClient,\n private alert: AlertService,\n private translate: TranslateService,\n private userPreferences: UserPreferencesService,\n private modalService: BsModalService\n ) {\n this.lang = this.ui.state.lang;\n this.modalService.onHide.pipe(take(1)).subscribe(( reason: string ) => {\n if (reason !== null && this.changedLang !== undefined) {\n this.translate.switchToLanguage(this.lang);\n }\n });\n }\n\n ngOnInit() {\n this.updateUserInAppState();\n }\n\n onDismiss() {\n if (this.changedLang !== undefined) {\n this.translate.switchToLanguage(this.lang);\n }\n this.modal.hide();\n }\n\n onLanguage(lang) {\n this.changedLang = lang;\n this.translate.switchToLanguage(this.changedLang);\n }\n\n async updateAndClose(user) {\n this.loading = true;\n try {\n await this.user.updateCurrent(user);\n if (user.password) {\n this.updateCredentials(user.password);\n }\n await this.updateUserInAppState();\n if (this.changedLang && this.changedLang !== this.lang) {\n await this.persistLanguage(this.changedLang);\n }\n this.modal.hide();\n this.alert.success(gettext('User saved.'));\n } catch (e) {\n this.alert.addServerFailure(e);\n } finally {\n this.loading = false;\n }\n }\n\n async persistLanguage(lang) {\n this.translate.saveInLocalStorage(lang);\n this.userPreferences.set('language', lang);\n }\n\n private async updateUserInAppState() {\n const currentUserResult = await this.user.current();\n this.ui.currentUser.next(currentUserResult.data);\n }\n\n private updateCredentials(password: string) {\n const newCredentials: ICredentials = {\n password,\n user: this.ui.currentUser.value.id,\n tenant: this.client.tenant\n };\n this.auth.updateCredentials(newCredentials);\n }\n}\n","import { Component } from '@angular/core';\nimport { UserService } from '@c8y/client';\nimport { Status } from '../common/status.model';\nimport { gettext } from '../i18n/gettext';\nimport { ModalService } from '../modal/modal.service';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { LoginService } from '../login/public-api';\nimport { AlertService } from '../alert/public-api';\n\n@Component({\n selector: 'c8y-user-totp-setup',\n templateUrl: './user-totp-setup.component.html'\n})\nexport class UserTotpSetupComponent {\n constructor(\n private user: UserService,\n private modalService: ModalService,\n private modal: BsModalRef,\n private loginService: LoginService) { }\n\n async totpSetupVerified(token) {\n await this.user.activateTotp();\n this.modal.hide();\n try {\n await this.modalService.acknowledge(\n gettext('Logout required'),\n gettext('You must log out in order to apply your changes'),\n Status.WARNING,\n gettext('Log out')\n );\n await this.loginService.logout();\n } catch (ex) {\n // intended empty\n }\n }\n\n close() {\n this.modal.hide();\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport {\n IUser,\n UserService,\n TenantLoginOptionsService,\n TenantService\n} from '@c8y/client';\nimport { clone } from 'lodash-es';\nimport { AppStateService } from '../common/ui-state.service';\nimport { TranslateService } from '../i18n/translate.service';\nimport { NewPassword } from '../authentication/password.model';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { PasswordService } from '../authentication/password.service';\nimport { UserTotpSetupComponent } from './user-totp-setup.component';\nimport { AlertService } from '../alert/alert.service';\nimport { ModalService } from '../modal/modal.service';\n\nexport interface User extends IUser {\n phone: string;\n sendPasswordResetEmail: boolean;\n newsletter?: boolean;\n}\n\n@Component({\n selector: 'c8y-user-edit',\n templateUrl: './user-edit.component.html'\n})\nexport class UserEditComponent implements OnInit {\n @Input() lang: string;\n @Input() loading: boolean = false;\n @Input() set user(u: User) {\n this._user = clone(u);\n this.userIsExternal = u.customProperties.userOrigin === 'OAUTH2';\n this.isPhoneRequired = this.isPhoneRequired && u.twoFactorAuthenticationEnabled;\n }\n get user() { return this._user; }\n @Output() onUser: EventEmitter<User> = new EventEmitter();\n @Output() onLanguage: EventEmitter<string> = new EventEmitter();\n @Output() onCancel: EventEmitter<void> = new EventEmitter();\n userHasActiveTotp = false;\n userCanSetupTotp = false;\n isPhoneRequired = false;\n userIsExternal;\n isTfaEnabled: boolean;\n private _user: User;\n\n constructor(\n public state: AppStateService,\n public translate: TranslateService,\n public passwordService: PasswordService,\n public modalConfirmService: ModalService,\n private bsModalService: BsModalService,\n private alert: AlertService,\n private userService: UserService,\n private tenantLoginOptionsService: TenantLoginOptionsService,\n private tenantService: TenantService,\n ) {}\n\n async ngOnInit() {\n const currentTenant = (await this.tenantService.current()).data;\n const { enabledOnSystemLevel, enabledOnTenantLevel } = await this.tenantService.getTfaSettings(currentTenant);\n this.isTfaEnabled = enabledOnSystemLevel || enabledOnTenantLevel;\n\n await this.initializeTotpSettings();\n if (this.user.twoFactorAuthenticationEnabled && !this.userCanSetupTotp) {\n this.isPhoneRequired = true;\n }\n }\n\n get langs() {\n return this.state.state.langs;\n }\n\n setupTotp() {\n this.bsModalService.show(UserTotpSetupComponent, { class: 'modal-sm' });\n this.cancel(); // to close the user edit modal and prevent console errors on logout\n }\n\n cancel() {\n this.onCancel.emit();\n }\n\n save() {\n if (!this.loading) {\n this._user.password ? this.saveAfterPasswordConfirmation() : this.onUser.emit(this._user);\n }\n }\n\n onNewPasswordChanged(newPassword: NewPassword) {\n this._user.password = newPassword.password;\n }\n\n private async initializeTotpSettings() {\n try {\n this.userCanSetupTotp = await this.canUserSetupTotp();\n if (this.userCanSetupTotp) {\n const { data: totpActivity } = await this.userService.getActivityTotp();\n this.userHasActiveTotp = totpActivity.isActive;\n }\n } catch (ex) {\n this.alert.removeLastDanger();\n }\n }\n\n private async canUserSetupTotp() {\n // we don't check for tenant options here due to permission restrictions on that end-point\n const { loginOptions } = (await this.tenantLoginOptionsService.detail()).data;\n return loginOptions.some(({ tfaStrategy = '' }) => tfaStrategy.toLowerCase() === 'totp');\n }\n\n private saveAfterPasswordConfirmation() {\n this.passwordService.confirmPassword().subscribe((confirmed) => {\n if (confirmed) {\n this.onUser.emit(this._user);\n }\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TenantService, UserService } from '@c8y/client';\n\nimport { AlertService } from '../alert/alert.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { LoginService } from '../login/login.service';\nimport { ModalService } from '../modal/modal.service';\nimport { Observable } from 'rxjs';\nimport { OptionsService } from '../common/options.service';\nimport { Status } from '../common/status.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UserEditModalComponent } from './user-edit-modal.component';\nimport { UserMenuItem } from './user.model';\nimport { gettext } from '../i18n/gettext';\nimport { map } from 'rxjs/operators';\nimport { sortBy } from 'lodash-es';\n\n@Component({\n selector: 'c8y-user-menu-outlet',\n templateUrl: './user-menu-outlet.component.html'\n})\nexport class UserMenuOutletComponent {\n @Input()\n items: UserMenuItem[];\n open: boolean;\n\n constructor(\n public ui: AppStateService,\n private bsModalService: BsModalService,\n private modalService: ModalService,\n private loginService: LoginService,\n private translateService: TranslateService,\n private tenantService: TenantService,\n private alertService: AlertService,\n private user: UserService,\n private optionsService: OptionsService\n ) {}\n\n copyIt(text: string) {\n const handler: EventListenerObject = {\n handleEvent: (e: ClipboardEvent) => {\n e.clipboardData.setData('text/plain', text);\n e.preventDefault();\n }\n };\n document.addEventListener('copy', handler);\n\n let copied;\n try {\n copied = document.execCommand('copy');\n } catch (e) {\n copied = false;\n }\n\n if (copied) {\n this.alertService.addByText('success', gettext('Copied to clipboard.'));\n } else {\n this.alertService.addByText('danger', gettext('Could not copy to clipboard.'));\n }\n\n document.removeEventListener('copy', handler);\n }\n\n async editUser() {\n this.bsModalService.show(UserEditModalComponent);\n }\n\n async logout() {\n await this.loginService.logout();\n }\n\n async activateSupportAccess() {\n const title = gettext('Activate support user access');\n\n const companyName = this.optionsService.get('companyName', 'Cumulocity');\n const textWithCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to allow a support user from {{companyName}} to access your tenant to help you with your issue.'\n );\n const textWithoutCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to allow a support user to access your tenant to help you with your issue.'\n );\n const finalQuestion = gettext('Do you want to proceed?');\n const body = [\n this.translateService.instant(companyName ? textWithCompany : textWithoutCompany, {\n companyName\n }),\n this.translateService.instant(finalQuestion)\n ].join(' ');\n\n const labels = {\n ok: gettext('Activate access'),\n cancel: gettext('Cancel')\n };\n\n const successMsg = gettext('Support user access activated.');\n\n try {\n await this.modalService.confirm(title, body, Status.DANGER, labels);\n await this.tenantService.enableSupportUser();\n await this.refreshCurrentUser();\n this.alertService.success(successMsg);\n } catch (ex) {\n // intended empty\n }\n }\n\n async deactivateSupportAccess() {\n const title = gettext('Deactivate support user access');\n\n const companyName = this.optionsService.get('companyName', 'Cumulocity');\n const textWithCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to block a support user from {{companyName}} from accessing your tenant to help you with your issue.'\n );\n const textWithoutCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to block a support user from accessing your tenant to help you with your issue.'\n );\n const { data: currentUser } = await this.user.current();\n const isTenantAdmin = await this.user.hasRole(currentUser, 'ROLE_TENANT_ADMIN');\n const tenantAdminNote = gettext(\n // tslint:disable-next-line:max-line-length\n 'Deactivating support access as tenant admin will disable all other support requests on your tenant.'\n );\n const finalQuestion = gettext('Do you want to proceed?');\n const body = [\n this.translateService.instant(companyName ? textWithCompany : textWithoutCompany, {\n companyName\n }),\n isTenantAdmin ? this.translateService.instant(tenantAdminNote) : '',\n this.translateService.instant(finalQuestion)\n ]\n .filter(Boolean)\n .join(' ');\n\n const labels = {\n ok: gettext('Deactivate access'),\n cancel: gettext('Cancel')\n };\n\n const successMsg = gettext('Support user access deactivated.');\n\n try {\n await this.modalService.confirm(title, body, Status.DANGER, labels);\n await this.tenantService.disableSupportUser();\n await this.refreshCurrentUser();\n this.alertService.success(successMsg);\n } catch (ex) {\n // intended empty\n }\n }\n\n getSortedItems() {\n return sortBy(Array.from(this.items), this.byPriority);\n }\n\n private async refreshCurrentUser() {\n const currentUserResult = await this.user.current();\n this.ui.currentUser.next(currentUserResult.data);\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { IUser, UserService } from '@c8y/client';\nimport { AlertService } from '../alert/public-api';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-user-totp-revoke',\n templateUrl: './user-totp.component.html'\n})\nexport class UserTotpRevokeComponent {\n @Input() user: IUser;\n @Output('revoke') revokeEmitter = new EventEmitter<undefined>();\n constructor(\n private users: UserService,\n private alert: AlertService,\n ) { }\n\n async revoke() {\n try {\n await this.users.totpRevokeSecret(this.user);\n this.alert.success(gettext('User TOTP secret revoked.'));\n this.revokeEmitter.next();\n } catch (e) {\n this.alert.addServerFailure(e);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { ModalModule } from '../modal/modal.module';\nimport { UserMenuItemComponent } from './user-menu-item.component';\nimport { UserEditModalComponent } from './user-edit-modal.component';\nimport { UserEditComponent } from './user-edit.component';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { UserMenuOutletComponent } from './user-menu-outlet.component';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { UserMenuService } from './user-menu.service';\nimport { AlertModule } from '../alert/alert.module';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule } from '../forms/forms.module';\nimport { UserTotpSetupComponent } from './user-totp-setup.component';\nimport { UserTotpRevokeComponent } from './user-totp-revoke.component';\n\n/**\n * The angular module definition for the user menu.\n * @exports UserMenuComponent\n * @exports UserMenuItemComponent\n * @exports UserEditComponent\n * @exports UserEditModalComponent\n */\n@NgModule({\n declarations: [\n UserMenuOutletComponent,\n UserEditComponent,\n UserEditModalComponent,\n UserMenuItemComponent,\n UserTotpSetupComponent,\n UserTotpRevokeComponent,\n ],\n imports: [\n FormsModule,\n CommonModule,\n ModalModule,\n BsDropdownModule,\n AuthenticationModule,\n AlertModule,\n RouterModule,\n TooltipModule.forRoot(),\n PopoverModule\n ],\n exports: [\n UserMenuOutletComponent,\n UserMenuItemComponent,\n UserEditComponent,\n UserEditModalComponent,\n UserTotpSetupComponent,\n UserTotpRevokeComponent\n ],\n entryComponents: [\n UserEditModalComponent,\n UserTotpSetupComponent,\n UserTotpRevokeComponent\n ]\n})\nexport class UserModule { }\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { find, keys, get, assign, isEmpty } from 'lodash-es';\nimport { OptionsService } from '../../common/options.service';\n\n@Component({\n selector: 'c8y-app-icon',\n templateUrl: './app-icon.component.html',\n host: { class: 'c8y-app-icon' }\n})\nexport class AppIconComponent implements OnChanges {\n @Input() contextPath: string;\n @Input() name: string = '';\n @Input() app: any;\n\n model = {\n appIcon: '',\n showIcon: true,\n iconClass: ['c8y-icon'],\n appNameAbbr: '',\n iconStyle: {}\n };\n\n private c8yAppIconsList = {\n analyticsbuilder: 'analytics-builder',\n 'analytics-builder': 'analytics-builder',\n cockpit: 'cockpit',\n devicemanagement: 'device-management',\n administration: 'administration',\n apamaepl: 'apama-epl'\n };\n\n private white: boolean = false;\n\n private defaultIconStyle = {\n 'background-repeat': 'no-repeat',\n 'background-size': 'contain',\n height: '36px',\n width: '36px'\n };\n\n constructor(private options: OptionsService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n this.model.appIcon = this.iconFromAppDefinition() || this.findStaticIcon();\n const iconUrl = this.iconUrlFromAppDefinition();\n if (iconUrl) {\n this.model.iconStyle = assign(this.defaultIconStyle, {\n 'background-image': iconUrl\n });\n }\n this.model.showIcon = !!this.model.appIcon || !isEmpty(this.model.iconStyle);\n this.model.iconClass = [\n 'c8y-icon',\n this.model.appIcon,\n this.white ? 'c8y-icon-white' : 'c8y-icon-duocolor'\n ].filter(c => !!c);\n this.model.appNameAbbr = this.name.substr(0, 2);\n }\n\n private findStaticIcon() {\n const contextPath = this.contextPath || this.name;\n const appContextPathNormalized = find(keys(this.c8yAppIconsList), cp => {\n return contextPath.indexOf(cp) > -1;\n });\n const appIcon = this.c8yAppIconsList[appContextPathNormalized];\n return appIcon ? `c8y-icon-${appIcon}` : undefined;\n }\n\n private iconFromAppDefinition() {\n const app = this.app || this.options;\n const iconClassProperty = ['icon', 'class'];\n const iconClass = get(app, iconClassProperty) || get(app, ['manifest', ...iconClassProperty]);\n return iconClass;\n }\n\n private iconUrlFromAppDefinition() {\n const app = this.app || this.options;\n const iconUrlProperty = ['icon', 'url'];\n const iconUrl = get(app, iconUrlProperty) || get(app, ['manifest', ...iconUrlProperty]);\n return iconUrl;\n }\n}\n","import { Component } from '@angular/core';\nimport { ApplicationService, IApplication, ICurrentTenant, IUser } from '@c8y/client';\nimport { get, includes, orderBy } from 'lodash-es';\nimport { combineLatest } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { AppStateService } from '../../common/ui-state.service';\n\n@Component({\n selector: 'c8y-app-switcher',\n templateUrl: './app-switcher.component.html'\n})\nexport class AppSwitcherComponent {\n oneCloudApps?: Array<IApplication & {[key: string]: any}>;\n apps: Array<IApplication & {[key: string]: any}>;\n open: boolean;\n\n private get hideCloudApps(): boolean {\n return false; // this should be configurable from outside\n }\n private tenant: ICurrentTenant;\n constructor(\n private ui: AppStateService,\n private applications: ApplicationService) {\n const { currentUser, currentTenant} = this.ui;\n combineLatest(currentUser, currentTenant).pipe(\n first()\n ).subscribe(([ user, tenant ]) => {\n this.tenant = tenant;\n this.listAppsForUser(user);\n });\n }\n\n isActive(app: IApplication) {\n return app.contextPath === this.ui.state.app.contextPath;\n }\n\n getHref(app: IApplication) {\n return this.applications.getHref(app);\n }\n\n private async listAppsForUser(user: IUser | null) {\n if (user) {\n const { data } = await this.applications.listByUser(user, { pageSize: 1000 });\n this.apps = this.orderApps(this.filterApps(data));\n }\n }\n\n private filterApps(apps) {\n apps = this.filterVisible(apps);\n apps = this.filterCloud(apps);\n apps = this.filterDuplicates(apps);\n return apps;\n }\n\n private filterVisible(apps) {\n const visibleApplicationTypes = ['HOSTED', 'EXTERNAL'];\n return apps.filter((app) => includes(visibleApplicationTypes, app.type) &&\n !app.noAppSwitcher &&\n !get(app, 'manifest.noAppSwitcher'));\n }\n\n private filterCloud(apps) {\n const { hideCloudApps } = this;\n const filterFn = (app) => !!app.cloud;\n if (!hideCloudApps) {\n this.oneCloudApps = this.orderApps(apps.filter(filterFn));\n }\n return apps.filter((app) => !filterFn(app));\n }\n\n private filterDuplicates(apps) {\n // Filter out apps that have duplicate contextpaths and are not own owned but the current tenant;\n const filterFn = (app) => !apps.some((otherApp) => (app !== otherApp) &&\n (app.contextPath && app.contextPath === otherApp.contextPath) &&\n (app.owner.tenant.id !== this.tenant.name));\n return apps.filter(filterFn);\n }\n\n private orderApps(apps) {\n return orderBy(apps, (({ name }) => name.toLowerCase()));\n }\n}\n","import { gettext } from '../i18n/gettext';\n\nexport const documentationItems = [\n {\n icon: 'c8y-c8y-data', // double c8y- is correct!\n label: gettext('Concepts guide`KEEP_ORIGINAL`'),\n url: '/concepts/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-user',\n label: gettext('User guide`KEEP_ORIGINAL`'),\n url: '/users-guide/getting-started',\n type: 'doc'\n },\n {\n icon: 'c8y-device-management',\n label: gettext('Device guides`KEEP_ORIGINAL`'),\n url: '/devices/overview',\n type: 'doc'\n },\n {\n icon: 'c8y-book',\n label: gettext('Cumulocity IoT Edge`KEEP_ORIGINAL`'),\n url: '/edge/overview',\n type: 'doc'\n },\n {\n icon: 'c8y-tools',\n label: gettext('Microservice SDK guide`KEEP_ORIGINAL`'),\n url: '/microservice-sdk/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-tools',\n label: gettext('Device SDK guide`KEEP_ORIGINAL`'),\n url: '/device-sdk/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-smart-rest',\n label: gettext('Web SDK guide`KEEP_ORIGINAL`'),\n url: '/web/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-data-explorer',\n label: gettext('Streaming analytics guide`KEEP_ORIGINAL`'),\n url: '/apama/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-bookmark',\n label: gettext('Reference guide`KEEP_ORIGINAL`'),\n url: '/reference/rest-implementation',\n type: 'doc'\n },\n {\n icon: 'gavel',\n label: gettext('Legal notices'),\n url: 'https://documentation.softwareag.com/legal/',\n type: 'doc'\n }\n];\n","import { InjectionToken } from '@angular/core';\nimport { ExtensionFactory } from '../common/public-api';\n\nexport interface DocLink {\n icon: string;\n label: string;\n url: string;\n type: 'doc' | 'quicklink';\n click?: any;\n}\n\nexport type DocLinkFactory = ExtensionFactory<DocLink>;\n\nexport const HOOK_DOCS = new InjectionToken<ExtensionFactory<DocLink>>('Hook docs');\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { OptionsService } from '../common/options.service';\nimport { documentationItems } from './defaults.items';\nimport { AppStateService } from '../common/ui-state.service';\nimport { gettext } from '../i18n/gettext';\nimport { DocLink, HOOK_DOCS, DocLinkFactory } from './docs.models';\nimport { ExtensionPoint, fromTrigger } from '../common/public-api';\nimport { Observable } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { shareReplay, startWith, first, filter } from 'rxjs/operators';\nimport { isUndefined } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DocsService implements ExtensionPoint<DocLink> {\n items$: Observable<DocLink[]>;\n constructor(\n private options: OptionsService,\n private app: AppStateService,\n @Optional() @Inject(HOOK_DOCS) factories: DocLinkFactory[] = [],\n router: Router\n ) {\n if (!factories) {\n factories = [];\n }\n factories.push(this);\n const refreshTrigger = this.app.map(({ supportUrl }) => supportUrl);\n this.items$ = fromTrigger(router, refreshTrigger, factories).pipe(\n startWith([]),\n shareReplay(1)\n );\n }\n\n getBaseUrl(): string {\n return this.options.get('docsBaseUrl', 'https://www.cumulocity.com/guides');\n }\n\n get templateStr(): string {\n return this.options.get('guideHrefTemplate', '${docsBaseUrl}${partialUrl}');\n }\n\n getUserGuideLink(link) {\n if (/^https?:/.test(link)) {\n return link;\n }\n if (this.getBaseUrl === null) {\n return null;\n }\n return this.getLink(this.templateStr, link);\n }\n\n list() {\n return this.items$\n .pipe(\n filter(i => !!i.length),\n first()\n )\n .toPromise();\n }\n\n refresh() {\n // no op\n }\n\n get() {\n // use the function as a factory\n const { links, noDefault, excludeDefault = [] } = this.options.get('docs', {});\n const { supportUrl } = this.app.state;\n let staticLinks = noDefault\n ? []\n : documentationItems\n .map((item: DocLink) => ({ ...item, url: this.getUserGuideLink(item.url) }))\n .filter(({ url }) => !excludeDefault.some(e => new RegExp(e).test(url)));\n\n if (links) {\n // backwards compatibility\n links.map((lnk: DocLink) => {\n if (isUndefined(lnk.type)) {\n lnk.type = 'doc';\n return lnk;\n }\n });\n staticLinks = staticLinks.concat(links);\n }\n if (supportUrl) {\n staticLinks.push({\n icon: 'comments',\n label: gettext('Forum support'),\n url: supportUrl,\n type: 'doc'\n });\n }\n return staticLinks;\n }\n\n private getLink(templateStr, partialLink) {\n if (!templateStr) {\n return undefined;\n }\n return templateStr\n .replace(/\\${docsBaseUrl}/, this.getBaseUrl())\n .replace(/\\${partialUrl}/, this.prefixWithSlash(partialLink));\n }\n\n private prefixWithSlash(partialLink = '') {\n const shouldPrefix = !(partialLink && /^\\//.test(partialLink));\n const prefix = shouldPrefix ? '/' : '';\n return `${prefix}${partialLink}`;\n }\n}\n","import { AfterViewInit, Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ActionService } from '../../action/action.service';\nimport { BreadcrumbService } from '../../breadcrumb/breadcrumb.service';\nimport { SearchService } from '../../search/search.service';\nimport { AppStateService } from '../../common/ui-state.service';\nimport { UserMenuService } from '../../user/user-menu.service';\nimport { HeaderService } from '../header.service';\nimport { DocsService } from '../../docs/docs.service';\n\n@Component({\n selector: 'c8y-header-bar',\n templateUrl: './header-bar.component.html'\n})\nexport class HeaderBarComponent implements AfterViewInit {\n canToggle$: Observable<boolean> = this.headerService.hasItemsInNavigator$;\n appState$: Observable<any> = this.appState.state$;\n drawerOpen = false;\n headerOpen = false;\n\n constructor(\n public headerService: HeaderService,\n public actionService: ActionService,\n public breadcrumbService: BreadcrumbService,\n public searchService: SearchService,\n private appState: AppStateService,\n public userMenuService: UserMenuService,\n public docs: DocsService\n ) {}\n\n ngAfterViewInit() {\n this.headerService.verifyIfNavOpen();\n }\n\n toggle() {\n this.headerOpen = !this.headerOpen;\n }\n}\n","import { Component, ElementRef, NgZone } from '@angular/core';\nimport { HeaderService } from '../header.service';\nimport { debounceTime, map, filter } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-title-outlet',\n templateUrl: './title-outlet.component.html'\n})\nexport class TitleOutletComponent {\n title = undefined;\n\n constructor(\n private headerService: HeaderService,\n private element: ElementRef,\n private zone: NgZone\n ) {\n const title$ = this.headerService.map(state => state.title);\n title$.subscribe(title => (this.title = title));\n this.zone.runOutsideAngular(() => {\n title$\n .pipe(\n debounceTime(100),\n map(() => this.element.nativeElement.querySelector('h1')),\n filter(el => el !== null),\n map(el => el.innerText),\n filter(Boolean)\n )\n .subscribe((title: string) => headerService.changePageTitle(title));\n });\n }\n}\n","import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';\nimport { HeaderService } from '../header.service';\n\n@Component({\n selector: 'c8y-title',\n templateUrl: './title.component.html'\n})\nexport class TitleComponent implements AfterViewInit, OnDestroy {\n @ViewChild('template', {static: true}) template;\n private viewInitTimeout;\n\n constructor(\n private headerService: HeaderService\n ) {}\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.headerService.changeTitle(this.template)\n );\n }\n\n ngOnDestroy() {\n if (this.headerService.state.title === this.template) {\n clearTimeout(this.viewInitTimeout);\n this.headerService.changeTitle();\n }\n }\n}\n","import { Component, TemplateRef, ViewChild, Input} from '@angular/core';\nimport { NavigatorNode } from './navigator-node';\nimport { NavigatorService } from './navigator.service';\n\n@Component({\n selector: 'c8y-navigator-item',\n template: '<ng-template #iconTpl><ng-content></ng-content></ng-template>',\n})\nexport class NavigatorItemComponent {\n @ViewChild('iconTpl', {static: true}) template: TemplateRef<any>;\n @Input() label: string;\n @Input() icon: string;\n @Input() path: string;\n @Input() priority = 0;\n nodeData: NavigatorNode;\n constructor(\n private service: NavigatorService\n ) {\n this.nodeData = new NavigatorNode();\n }\n\n ngOnInit(): void {\n this.ngOnChanges();\n setTimeout(() => this.service.add(this.nodeData));\n }\n\n ngOnChanges(): void {\n this.nodeData.icon = this.icon;\n this.nodeData.label = this.label;\n this.nodeData.path = this.path;\n this.nodeData.priority = this.priority;\n this.nodeData.iconTemplate = !this.icon ? this.template : undefined;\n this.nodeData.icon = this.icon;\n }\n\n ngOnDestroy(): void {\n this.service.remove(this.nodeData);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NavigatorNode } from './navigator-node';\n\n@Component({\n selector: 'c8y-navigator-icon',\n template: `<i class=\"icon\" [c8yIcon]=\"icon\"></i>`\n})\nexport class NavigatorIconComponent {\n @Input() node: NavigatorNode;\n get icon() {\n const DEFAULT_ICON = 'cog';\n return this.node.icon || DEFAULT_ICON;\n }\n\n get iconClass() {\n return `fa-${this.icon}`;\n }\n}\n","// tslint:disable-next-line:max-line-length\nimport { Component, ComponentFactoryResolver, Input, QueryList, ViewChild, ViewChildren, ViewContainerRef, Output, EventEmitter, OnDestroy, HostListener } from '@angular/core';\nimport { RouterLinkActive, Router } from '@angular/router';\nimport { NavigatorIconComponent } from './navigator-icon.component';\nimport { NavigatorNode, ClickOptions } from './navigator-node';\nimport { NavigatorService } from './navigator.service';\nimport { PopoverConfirmComponent } from '../modal/popover-confirm.component';\n\n@Component({\n selector: 'c8y-navigator-node-display',\n templateUrl: './navigator-node.component.html'\n})\nexport class NavigatorNodeComponent implements OnDestroy {\n @ViewChild('icon', { read: ViewContainerRef, static: false }) iconSlot: ViewContainerRef;\n @Input() node: NavigatorNode;\n @Input() isRoot: boolean;\n @ViewChild(RouterLinkActive, {static: false}) routerLinkActive: RouterLinkActive;\n @ViewChildren(NavigatorNodeComponent) childrenNodes: QueryList<NavigatorNodeComponent>;\n @Output() nodeClick: EventEmitter<string> = new EventEmitter();\n @ViewChild(PopoverConfirmComponent, {static: false}) confirm: PopoverConfirmComponent;\n\n parentNode: NavigatorNodeComponent;\n\n private viewInitTimeout;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private navigator: NavigatorService\n ) {}\n\n ngAfterViewInit() {\n this.childrenNodes.forEach((n) => n.parentNode = this);\n this.viewInitTimeout = setTimeout(() => {\n this.updateIcon();\n this.openOnFirstUrl();\n this.expandParentIfActive();\n this.node.confirm = this.confirm;\n });\n }\n\n openOnFirstUrl() {\n if (this.navigator.openOnFirstUrl(this.node) && !this.node.open) {\n this.expandCollapse(true);\n }\n }\n\n get expandTitle() {\n return !this.node.open ? 'Expand' : 'Collapse';\n }\n\n click(from: 'icon' | 'expander' | 'link' = 'link', $event?) {\n let open;\n if (from === 'expander') {\n if ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n open = !this.node.open;\n } else {\n open = this.routerLinkActive && this.routerLinkActive.isActive ? true : !this.node.open;\n }\n if (open !== this.node.open) {\n this.expandCollapse(open, false, { [from]: true, $event });\n }\n this.nodeClick.emit(from);\n }\n\n expandCollapse(open, recursive?, forNode: ClickOptions = {}) {\n this.node.open = open;\n // Also close children\n if (recursive) {\n this.childrenNodes.forEach((n) => n.expandCollapse(open, recursive));\n }\n forNode.open = open;\n this.node.click(forNode);\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.viewInitTimeout);\n this.node.destroy();\n }\n\n private expandParentIfActive() {\n if (this.routerLinkActive && this.routerLinkActive.isActive && this.parentNode) {\n this.parentNode.expandCollapse(true);\n }\n }\n\n private updateIcon() {\n if (this.node.iconTemplate) {\n this.updateIconTemplate();\n } else {\n this.updateIconComponent();\n }\n }\n\n private updateIconComponent() {\n let componentType = NavigatorIconComponent;\n if (this.node && this.node.iconComponent) {\n componentType = this.node.iconComponent;\n }\n this.iconSlot.clear();\n const iconComponentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n const componentRef = this.iconSlot.createComponent(iconComponentFactory);\n componentRef.instance.node = this.node;\n }\n\n private updateIconTemplate() {\n this.iconSlot.clear();\n this.iconSlot.createEmbeddedView(this.node.iconTemplate);\n }\n}\n","import { Component, Input, SimpleChanges } from '@angular/core';\nimport { NavigatorNode } from './navigator-node';\nimport { HeaderService } from '../header/public-api';\n\n@Component({\n selector: 'c8y-navigator-outlet, c8y-ui-navigator',\n templateUrl: './navigator-outlet.template.html',\n})\nexport class NavigatorOutletComponent {\n @Input() nodes: NavigatorNode[];\n @Input() open = true;\n\n constructor(private headerService: HeaderService) {}\n\n /**\n * Closes the navigator on click if the window is small.\n */\n collapseNavigator(from: 'icon' | 'expander' | 'link') {\n if (from === 'link' && !this.headerService.largeWidth) {\n this.headerService.closeNavigator();\n }\n }\n\n trackByPathOrLabel(index, node) {\n return node.path ? node.path : node.label;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { CommonModule } from '../common/common.module';\nimport { NavigatorItemComponent } from './navigator-entry.component';\nimport { NavigatorIconComponent } from './navigator-icon.component';\nimport { NavigatorNodeComponent } from './navigator-node.component';\nimport { NavigatorOutletComponent } from './navigator-outlet.component';\nimport { NavigatorService } from './navigator.service';\nimport { ModalModule } from '../modal/modal.module';\n\n/**\n * The angular module definition for the navigator.\n * @exports NavigatorOutletComponent\n * @exports NavigatorItemComponent\n */\n@NgModule({\n declarations: [\n NavigatorOutletComponent,\n NavigatorNodeComponent,\n NavigatorItemComponent,\n NavigatorIconComponent\n ],\n imports: [\n RouterModule,\n CollapseModule.forRoot(),\n CommonModule,\n ModalModule\n ],\n exports: [\n NavigatorOutletComponent,\n NavigatorItemComponent\n ],\n entryComponents: [\n NavigatorIconComponent\n ]\n})\nexport class NavigatorModule { }\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-right-drawer',\n templateUrl: './right-drawer.component.html'\n})\nexport class RightDrawerComponent {\n @Input('quickLinks') set _quickLinks(data: any[]) {\n if (data) {\n this.quickLinks = data.filter(d => d.type === 'quicklink');\n }\n }\n @Input('helpAndSupport') set _helpAndSupport(data: any[]) {\n if (data) {\n this.helpAndSupport = data.filter(d => d.type === 'doc');\n }\n }\n @Input() app: any;\n quickLinks: any[] = [];\n helpAndSupport: any[] = [];\n}\n","import { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { ActionModule } from '../action/action.module';\nimport { BreadcrumbModule } from '../breadcrumb/breadcrumb.module';\nimport { CommonModule } from '../common/common.module';\nimport { SearchModule } from '../search/search.module';\nimport { UserModule } from '../user/user.module';\nimport { AppIconComponent } from './application/app-icon.component';\nimport { AppSwitcherComponent } from './application/app-switcher.component';\nimport { HeaderBarComponent } from './header-bar/header-bar.component';\nimport { HeaderService } from './header.service';\nimport { TitleOutletComponent } from './title/title-outlet.component';\nimport { TitleComponent } from './title/title.component';\nimport { NavigatorModule } from '../navigator/navigator.module';\nimport { RightDrawerComponent } from './right-drawer/right-drawer.component';\n\n/**\n * The angular module definition for the header of the application.\n * @exports HeaderBarComponent\n * @exports TitleComponent\n * @exports TitleOutletComponent\n * @exports AppIconComponent\n * @exports AppSwitcherComponent\n */\n@NgModule({\n declarations: [\n TitleComponent,\n HeaderBarComponent,\n TitleOutletComponent,\n AppIconComponent,\n AppSwitcherComponent,\n RightDrawerComponent\n ],\n imports: [\n BsDropdownModule,\n UserModule,\n SearchModule,\n CommonModule,\n ActionModule,\n BreadcrumbModule,\n NavigatorModule\n ],\n exports: [\n HeaderBarComponent,\n TitleComponent,\n TitleOutletComponent,\n AppIconComponent,\n AppSwitcherComponent,\n RightDrawerComponent\n ]\n})\nexport class HeaderModule {}\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\nimport { LoginService } from './login.service';\nimport { PasswordService } from '../authentication/password.service';\nimport { IResetPassword, ICredentials, UserService } from '@c8y/client';\nimport { OptionsService } from '../common/public-api';\nimport { AlertService } from '../alert/public-api';\nimport { LoginViews } from './login.model';\n\n@Component({\n selector: 'c8y-change-password',\n templateUrl: './change-password.component.html',\n styles: []\n})\nexport class ChangePasswordComponent implements OnInit {\n @Input() credentials: ICredentials;\n @Output() onChangeView = new EventEmitter();\n\n passwordPattern = /^[a-zA-Z0-9`~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]{8,32}$/;\n isLoading = false;\n model = {\n tenantId: '',\n email: '',\n newPassword: '',\n newPasswordConfirm: '',\n passwordStrengthEnforced: false\n };\n emailReadOnly = false;\n\n private TOKEN_PARAM = 'token';\n private EMAIL_PARAM = 'email';\n\n constructor(\n public loginService: LoginService,\n private users: UserService,\n private passwordStrengthCheckerService: PasswordService,\n private options: OptionsService,\n private alert: AlertService\n ) { }\n\n async ngOnInit() {\n this.model.tenantId = this.loginService.getTenant();\n this.model.email = this.options.get(this.EMAIL_PARAM, '');\n this.emailReadOnly = !!this.model.email;\n this.model.passwordStrengthEnforced = this.loginService.getEnforcePasswordStrength();\n }\n\n async changePassword() {\n const passwordStrengthColor: any = this.passwordStrengthCheckerService.getStrengthColor(\n this.model.newPassword\n );\n const resetPassword: IResetPassword = {\n token: this.credentials.token,\n email: this.model.email,\n newPassword: this.model.newPassword,\n passwordStrength: passwordStrengthColor.passwordStrength\n };\n try {\n this.isLoading = true;\n const { res } = await this.users.resetPassword(resetPassword, this.model.tenantId);\n if (res.status === 200) {\n this.loginService.addSuccessMessage('password_changed');\n this.credentials.token = undefined;\n this.options.set(this.TOKEN_PARAM, undefined);\n this.onChangeView.emit({ view: LoginViews.Credentials });\n }\n } catch (e) {\n this.alert.addServerFailure(e);\n } finally {\n this.loginService.reset();\n this.isLoading = false;\n }\n }\n}\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { LoginService } from './login.service';\nimport { ICredentials } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { gettext } from '../i18n/gettext';\nimport { LoginViews } from './login.model';\n\n@Component({\n selector: 'c8y-credentials',\n templateUrl: './credentials.component.html',\n styles: []\n})\nexport class CredentialsComponent implements OnInit {\n @Output() onChangeView = new EventEmitter();\n\n LOGIN_VIEWS = LoginViews;\n model: ICredentials = {};\n isLoading: boolean = false;\n showLoginForm: boolean = false;\n showBasicAuth: boolean = false;\n oauthOptions: any = {};\n\n private readonly PASSWORD_RESET_HEADER_NAME = 'passwordresettoken';\n private readonly NO_PHONE_HEADER_NAME = 'NoPhoneHeader';\n\n constructor(\n public loginService: LoginService,\n public alert: AlertService,\n public ui: AppStateService\n ) {}\n\n ngOnInit() {\n const { oauthOptions, loginMode } = this.loginService;\n this.model.tenant = this.loginService.getTenant();\n this.showLoginForm =\n typeof loginMode.visibleOnLoginPage === 'undefined' || loginMode.visibleOnLoginPage;\n this.showBasicAuth = loginMode.type === 'BASIC';\n this.oauthOptions = oauthOptions;\n }\n\n redirectToOauth() {\n this.loginService.redirectToOauth();\n }\n\n /**\n * Allows to login into the application using basic auth.\n * If successful logged in the client is set in shared/cumulocity.service.ts\n */\n async login() {\n try {\n this.isLoading = true;\n const basicAuth = this.loginService.useBasicAuth(this.model);\n await this.loginService.login(basicAuth, this.model);\n } catch (e) {\n if (e.res && e.res.headers && e.res.headers.get(this.PASSWORD_RESET_HEADER_NAME)) {\n this.handlePasswordReset(e.res);\n } else if (e.res && e.res.status === 401 && /pin/i.test(e.data.message)) {\n this.handleSmsChallenge(e.data.message);\n } else if (e.res && e.res.status === 401 && /TOTP/i.test(e.data.message)) {\n this.handleTotpChallenge(e.data.message);\n } else if (\n e.res &&\n e.res.headers &&\n e.res.headers.get(this.NO_PHONE_HEADER_NAME) &&\n !this.loginService.isSupportUser(this.model)\n ) {\n this.handleNoPhoneNumberProvided();\n } else {\n this.loginService.reset();\n this.alert.addServerFailure(e);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private handlePasswordReset(e: any) {\n this.alert.removeLastDanger();\n this.model.token = e.headers.get(this.PASSWORD_RESET_HEADER_NAME);\n this.onChangeView.emit({ view: LoginViews.ChangePassword, credentials: this.model });\n }\n\n private handleTotpChallenge(message) {\n if (/TOTP setup required/i.test(message)) {\n this.onChangeView.emit({ view: LoginViews.TotpSetup, credentials: this.model });\n } else {\n this.onChangeView.emit({ view: LoginViews.TotpChallenge, credentials: this.model });\n }\n }\n\n private handleSmsChallenge(message: string) {\n if (/pin has already been generated/i.test(message)) {\n this.alert.warning(\n gettext(\n 'The verification code was already sent. For a new verification code, please click on the link above.'\n )\n );\n }\n this.alert.removeLastDanger();\n this.onChangeView.emit({ view: LoginViews.SmsChallenge, credentials: this.model });\n }\n\n private handleNoPhoneNumberProvided() {\n this.onChangeView.emit({ view: LoginViews.ProvidePhoneNumber, credentials: this.model });\n this.alert.warning(\n gettext(\n '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 )\n );\n }\n}\n","import { Component, Input, OnInit, HostBinding, HostListener, ViewChild } from '@angular/core';\nimport { ICredentials } from '@c8y/client';\nimport { LoginService } from './login.service';\nimport { OptionsService } from '../common/options.service';\nimport { LoginViews } from './login.model';\nimport { AlertService } from '../alert/alert.service';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-login',\n templateUrl: './login.component.html',\n styles: []\n})\nexport class LoginComponent implements OnInit {\n currentView: LoginViews = LoginViews.None;\n LOGIN_VIEWS = LoginViews;\n\n disabled = false;\n\n @Input() name: string;\n\n credentials: ICredentials = {};\n displayAlerts: boolean = false;\n private TOKEN_PARAM = 'token';\n\n /**\n * Just DI.\n */\n constructor(\n public loginService: LoginService,\n private options: OptionsService,\n private alert: AlertService\n ) {}\n\n ngOnInit() {\n const token = this.getResetPasswordToken();\n if (this.loginService.isFirstLogin) {\n if (!token) {\n this.loginAutomatically();\n } else {\n this.credentials.token = token;\n this.reset();\n }\n }\n this.loginService.isFirstLogin = false;\n }\n\n handleLoginTemplate(event) {\n this.currentView = event.view;\n this.credentials = event.credentials || {};\n }\n\n @HostListener('keyup', ['$event']) onkeyup(event: KeyboardEvent) {\n if (event.key !== 'Enter') {\n this.loginService.cleanMessages();\n }\n }\n\n reset() {\n this.loginService.reset();\n this.setView();\n this.loginService.cleanMessages();\n }\n\n private async loginAutomatically() {\n try {\n await this.loginService.login();\n } catch (e) {\n const loginMode = this.loginService.loginMode.type;\n if (loginMode === 'OAUTH2') {\n this.loginService.redirectToOauth();\n } else {\n this.reset();\n if (loginMode === 'OAUTH2_INTERNAL' && window.location.protocol !== 'https:') {\n this.alert.danger(gettext('Current login mode only supports HTTPS.'));\n } else if (e.res && e.res.status === 403) {\n this.alert.addServerFailure(e);\n }\n }\n }\n }\n\n private setView() {\n if (this.credentials && this.credentials.token) {\n this.handleLoginTemplate({ view: LoginViews.ChangePassword, credentials: this.credentials });\n } else {\n this.handleLoginTemplate({ view: LoginViews.Credentials });\n }\n }\n\n private getResetPasswordToken() {\n const token = this.options.get(this.TOKEN_PARAM);\n if (token) {\n this.options.set(this.TOKEN_PARAM, undefined); // only use once\n }\n return token;\n }\n}\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { UserService } from '@c8y/client';\nimport { LoginService } from './login.service';\nimport { LoginViews } from './login.model';\n\n@Component({\n selector: 'c8y-recover-password',\n templateUrl: './recover-password.component.html',\n styles: []\n})\n\nexport class RecoverPasswordComponent implements OnInit {\n\n @Output() onChangeView = new EventEmitter();\n LOGIN_VIEWS = LoginViews;\n isLoading = false;\n model = {\n email: '',\n tenantId: ''\n };\n\n constructor(\n private users: UserService,\n public loginService: LoginService) {\n }\n\n ngOnInit() {\n this.model.tenantId = this.loginService.getTenant();\n }\n\n async resetPassword() {\n try {\n this.isLoading = true;\n const { res } = await this.users.sendPasswordResetMail(this.model.email, this.model.tenantId);\n if (res.status === 200) {\n this.loginService.addSuccessMessage('password_reset_requested');\n }\n } finally {\n this.loginService.reset();\n this.isLoading = false;\n }\n }\n\n}\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { ICredentials, UserService } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { LoginService } from './login.service';\nimport { LoginViews } from './login.model';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-totp-auth',\n templateUrl: './totp-auth.component.html'\n})\nexport class TotpAuthComponent implements OnInit {\n @Input() credentials: ICredentials;\n @Input() view: LoginViews;\n @Output() onCancel = new EventEmitter();\n LOGIN_VIEWS = LoginViews;\n loading = false;\n hasError = false;\n\n get isSetup() {\n return this.view === LoginViews.TotpSetup;\n }\n\n constructor(\n public loginService: LoginService,\n private userService: UserService,\n private alert: AlertService\n ) {}\n\n /**\n * In case of a setup we need the user to be authorized\n * first.\n */\n async ngOnInit() {\n if (this.view === this.LOGIN_VIEWS.TotpSetup) {\n await this.loginService.switchLoginMode(this.credentials);\n }\n }\n\n async onTotpSuccess(code) {\n try {\n this.loading = true;\n this.hasError = false;\n this.credentials.tfa = code;\n if (this.isSetup) {\n await this.userService.activateTotp();\n }\n await this.loginService.switchLoginMode(this.credentials);\n await this.loginService.verifyAppAccess();\n await this.loginService.authFulfilled();\n } catch (e) {\n this.alert.removeLastDanger();\n if (e.data && e.data.message === 'Access is denied') {\n this.alert.addServerFailure(e);\n }\n if (e.data && e.data.message === 'Authentication failed! : User account is locked') {\n this.alert.addServerFailure(e);\n } else {\n this.hasError = true;\n }\n } finally {\n this.loading = false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PasswordService } from '../authentication/password.service';\nimport { PasswordStrength } from '@c8y/client';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StrengthValidatorService {\n\n constructor(private passwordService: PasswordService) {\n }\n\n isStrong(password: string): boolean {\n return this.isPasswordGreen(this.passwordService.getStrengthColor(password).passwordStrength);\n }\n\n private isPasswordGreen(strength: PasswordStrength) {\n return strength as PasswordStrength === PasswordStrength.GREEN as PasswordStrength;\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\nimport { StrengthValidatorService } from './strength-validator-service';\n\n@Directive({\n selector: '[passwordStrengthEnforced]',\n providers: [{ provide: NG_VALIDATORS, useExisting: PasswordStrengthValidatorDirective, multi: true }]\n})\nexport class PasswordStrengthValidatorDirective implements Validator {\n\n private forced: boolean;\n\n @Input() set passwordStrengthEnforced(value) {\n this.forced = value;\n }\n\n constructor(\n public passwordService: StrengthValidatorService) {\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const strengthFulfilled = this.passwordService.isStrong(control.value || '');\n const enforcementForcedAndNotFulfilled = this.forced && !strengthFulfilled;\n return enforcementForcedAndNotFulfilled ? { passwordStrength: true } : null;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormsModule as C8yFormsModule } from '../forms/public-api';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\nimport { ChangePasswordComponent } from './change-password.component';\nimport { CredentialsComponent } from './credentials.component';\nimport { LoginComponent } from './login.component';\nimport { LoginService } from './login.service';\nimport { RecoverPasswordComponent } from './recover-password.component';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { AlertModule } from '../alert/alert.module';\nimport { TotpAuthComponent } from './totp-auth.component';\nimport { PasswordStrengthValidatorDirective } from './password-strength-validator.directive';\n\n/**\n * The angular module definition for the login.\n * @exports LoginComponent\n */\n@NgModule({\n declarations: [\n LoginComponent,\n RecoverPasswordComponent,\n ChangePasswordComponent,\n CredentialsComponent,\n TotpAuthComponent,\n PasswordStrengthValidatorDirective\n ],\n imports: [\n FormsModule,\n TooltipModule,\n CommonModule,\n AuthenticationModule,\n AlertModule,\n C8yFormsModule\n ],\n exports: [LoginComponent]\n})\nexport class LoginModule {\n static forRoot() {\n return {\n ngModule: LoginModule,\n providers: LoginModule.providers()\n };\n }\n static providers() {\n return [LoginService];\n }\n}\n","import {\n Component,\n ViewChild,\n Input,\n ViewContainerRef,\n AfterContentInit,\n OnDestroy\n} from '@angular/core';\nimport { TabsService } from './tabs.service';\nimport { Tab } from './tab.model';\n\n@Component({\n selector: 'c8y-tab',\n template: '<ng-template #tpl><ng-content></ng-content></ng-template>'\n})\nexport class TabComponent implements AfterContentInit, OnDestroy, Tab {\n @ViewChild('tpl', { static: false }) template: ViewContainerRef;\n @Input() path: string;\n @Input() label: string = '';\n @Input() icon: string;\n @Input() priority: number;\n @Input() orientation: 'horizontal' | 'vertical';\n constructor(private tabs: TabsService) {}\n\n ngAfterContentInit() {\n setTimeout(() => this.tabs.add(this as Tab));\n }\n\n ngOnDestroy() {\n this.tabs.remove(this as Tab);\n }\n}\n","import {\n Component,\n Input,\n HostBinding,\n Renderer2,\n ElementRef,\n OnChanges,\n ViewChild,\n OnDestroy,\n AfterContentInit,\n AfterContentChecked} from '@angular/core';\nimport { debounceTime } from 'rxjs/operators';\nimport { fromEventPattern, fromEvent, merge, Subscription } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { Tab } from './tab.model';\n\n@Component({\n selector: 'c8y-tabs-outlet,c8y-ui-tabs',\n templateUrl: './tabs-outlet.component.html',\n})\nexport class TabsOutletComponent implements OnDestroy, AfterContentInit {\n @Input() tabs: any[] = [];\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n @Input() navigatorOpen = false;\n showLeft: boolean = false;\n showRight: boolean = false;\n @HostBinding('class.navigator-open') get isNavigatorOpen() {\n return this.navigatorOpen;\n }\n @HostBinding('class.page-tabs') get hasTabs() {\n return this.tabs && this.tabs.length;\n }\n @HostBinding('class.page-tabs-horizontal') get isHorizontal() {\n return this.orientation === 'horizontal';\n }\n @HostBinding('class.page-tabs-vertical') get isVertical() {\n return this.orientation !== 'horizontal';\n }\n @ViewChild('container', {read: ElementRef, static: true}) private container: ElementRef;\n @ViewChild('left', {read: ElementRef, static: false}) private leftBtn: ElementRef;\n @ViewChild('right', {read: ElementRef, static: false}) private rightBtn: ElementRef;\n @ViewChild('tabsContainer', {read: ElementRef, static: false}) private tabsContainer: ElementRef;\n private scrollSubscription: Subscription;\n\n constructor(\n private router: Router,\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n ngOnDestroy() {\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n }\n }\n\n ngAfterContentInit() {\n if (this.orientation === 'horizontal') {\n this.scrollSubscribe();\n }\n\n }\n\n isActive(tab: Tab) {\n if (tab && tab.path) {\n return this.router.isActive(tab.path, false);\n } else {\n return false;\n }\n }\n\n navigateTo(path) {\n this.router.navigate([path]);\n }\n\n scroll(direction: 'right' | 'left' = 'right') {\n const { widthScroll, width, scrollLeft } = this.getDimensions();\n const multiplier = direction === 'left' ? -1 : 1;\n\n let targetScroll = scrollLeft + width * multiplier;\n if (targetScroll < 0) {\n targetScroll = 0;\n }\n if (targetScroll > widthScroll - width) {\n targetScroll = widthScroll - width;\n }\n // TODO: we should animate this\n this.container.nativeElement.scrollLeft = targetScroll;\n }\n\n private scrollSubscribe() {\n let unlisten;\n this.scrollSubscription = merge(\n fromEvent(this.container.nativeElement, 'scroll'),\n fromEventPattern(\n (handler: any) => {\n unlisten = this.renderer.listen('window', 'resize', handler);\n },\n () => unlisten()\n )\n ).pipe(\n debounceTime(250)\n ).subscribe(() => this.updateScroll());\n }\n\n private updateScroll() {\n const { widthScroll, width, scrollLeft } = this.getDimensions();\n this.showLeft = !!scrollLeft;\n this.showRight = widthScroll > width + scrollLeft;\n }\n\n private getDimensions() {\n const elTabs = this.tabsContainer.nativeElement;\n const el = this.container.nativeElement;\n const widthScroll = elTabs.scrollWidth;\n const width = el.clientWidth;\n const scrollLeft = el.scrollLeft;\n return { widthScroll, width, scrollLeft };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '../common/common.module';\nimport { TabComponent } from './tab.component';\nimport { TabsOutletComponent } from './tabs-outlet.component';\nimport { TabsService } from './tabs.service';\n\n@NgModule({\n declarations: [\n TabsOutletComponent,\n TabComponent\n ],\n imports: [\n CommonModule,\n RouterModule.forChild([])\n ],\n exports: [\n TabsOutletComponent,\n TabComponent\n ]\n})\nexport class TabsModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { OptionsService } from '../../common/options.service';\n\n@Component({\n selector: 'c8y-cookie-banner',\n templateUrl: './cookie-banner.template.html'\n})\nexport class CookieBannerComponent implements OnInit {\n readonly storageKey: string = 'acceptCookieNotice';\n readonly acceptValue: string = '1';\n showBanner: boolean;\n settings: { cookieBannerTitle?: string; cookieBannerText: string; policyUrl?: string };\n\n constructor(private options: OptionsService) {}\n\n ngOnInit() {\n this.settings = this.options.get('cookieBanner');\n if (this.settings && this.settings.cookieBannerText && !localStorage.getItem(this.storageKey)) {\n this.showBanner = true;\n }\n }\n\n acceptCookies() {\n localStorage.setItem(this.storageKey, this.acceptValue);\n this.showBanner = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ActionBarModule } from '../action-bar/action-bar.module';\nimport { AlertModule } from '../alert/alert.module';\nimport { HeaderModule } from '../header/header.module';\nimport { LoginModule } from '../login/login.module';\nimport { NavigatorModule } from '../navigator/navigator.module';\nimport { TabsModule } from '../tabs/tabs.module';\nimport { BootstrapComponent } from './bootstrap.component';\nimport { CommonModule } from '../common/common.module';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CookieBannerComponent } from './cookie-banner/cookie-banner.component';\n\n/**\n * The module which allows to bootstrap a custom application.\n * Use it as `bootstrap: []` component in your main app module\n * or as `<c8y-bootstrap>` in your main app.\n */\n@NgModule({\n declarations: [\n BootstrapComponent,\n CookieBannerComponent\n ],\n imports: [\n CommonModule,\n HeaderModule,\n LoginModule,\n RouterModule,\n TabsModule,\n ActionBarModule,\n AlertModule,\n NavigatorModule,\n TooltipModule\n ],\n exports: [\n BootstrapComponent\n ],\n entryComponents: [\n BootstrapComponent\n ]\n})\nexport class BootstrapModule {}\n","import { Component, InjectionToken, Type } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n/**\n * A hook to add dynamic components to the UI (e.g. widgets).\n */\nexport const HOOK_COMPONENTS = new InjectionToken('Hook Dynamic Component');\n\n/**\n * A hook to add dynamic components to the UI (e.g. widgets).\n * @deprecated: Use HOOK_COMPONENTS\n */\nexport const HOOK_COMPONENT = new InjectionToken('Hook Dynamic Component @deprecated');\n\n/**\n * A dynamic component can be defined in a the HOOK_COMPONENTS to display any kind\n * of component dynamically just by referencing it's id. The most common use case is on dashboards,\n * where the `configComponent` is used to define what is displayed on the `component`\n * on the dashboard.\n *\n * To use the component you can use the c8y-dynamic-component.\n *\n * ```\n * <c8y-dynamic-component\n * componentId=\"angular.widget.demo\"\n * [config]=\"{ text: 'Hello world' }\"\n * [mode]=\"editComponent ? 'config' : 'component'\"\n * ></c8y-dynamic-component>\n * ```\n */\nexport interface DynamicComponentDefinition {\n /**\n * Unique serializable id\n */\n id: string;\n /**\n * The component which is used when the component should be displayed (e.g. on a dashboard)\n */\n component: Type<Component>;\n /**\n * The configuration component used when a widget is added or edited.\n */\n configComponent?: Type<Component>;\n /**\n * The label shown for this dynamic component on add widgets\n */\n label: string;\n /**\n * The description shown on add widget\n */\n description: string;\n /**\n * Add any random data, specially to angular.js dashboards.\n * Should be searilzabled to allow to save it to the API.\n */\n data?: any;\n /**\n * An url to an preview image.\n */\n previewImage?: string;\n}\n\n/**\n * Use this interface on any component to define the interchange between\n * config and display component.\n */\nexport interface DynamicComponent {\n /**\n * The configuration which is shared between configuration component and display component.\n * Should be searilzabled to allow to save it to the API.\n */\n config: any;\n /**\n * A reference to the ng1Form on angularjs dashboards to disable/enable the save button.\n * @deprecated: Will not work on Angular-Dashboards (1.6.1.0). Use `ContextServiceDashboard.formDisabled` instead.\n */\n ng1FormRef?: any;\n}\n\n/**\n * An lifecycle hook which is called before an configuration is saved.\n */\nexport interface OnBeforeSave {\n /**\n * Called before a configuration object is saved. The function can be used to manipulate the\n * passed config object or to cancel the saving (return false or Observable<boolean>).\n */\n onBeforeSave(config?: any): boolean | Promise<boolean> | Observable<boolean>;\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { filter, mergeMap, take } from 'rxjs/operators';\nimport { ExtensionPoint, fromFactories } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport {\n DynamicComponentDefinition,\n HOOK_COMPONENT,\n HOOK_COMPONENTS\n} from './dynamic-component.model';\n\ndeclare const __MODE__: string;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService extends StateService\n implements ExtensionPoint<DynamicComponentDefinition> {\n items$: Observable<DynamicComponentDefinition[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<DynamicComponentDefinition>>(\n new Set<DynamicComponentDefinition>()\n );\n\n constructor(private injector: Injector, router: Router) {\n super();\n\n this.items$ = fromFactories(\n [() => this.injector.get(HOOK_COMPONENTS, []), () => this.getComponentsViaDeprecatedHook()],\n router,\n false\n );\n this.items$.subscribe(cmps => {\n cmps.forEach(cmp => {\n this.state.add(cmp);\n });\n this.emitNewState();\n });\n }\n\n getComponentsViaDeprecatedHook() {\n const componentsViaDeprecatedHook: DynamicComponentDefinition[] = this.injector.get(\n HOOK_COMPONENT,\n []\n ) as DynamicComponentDefinition[];\n if (\n componentsViaDeprecatedHook &&\n componentsViaDeprecatedHook.length &&\n __MODE__ !== 'production'\n ) {\n console.warn('HOOK_COMPONENT is now deprecated. Use HOOK_COMPONENTS instead.');\n }\n\n return componentsViaDeprecatedHook;\n }\n\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n get state() {\n return this.state$.value;\n }\n\n /**\n * Returns a component by it's id as an observable.\n * @param id The id of the component.\n */\n getById$(id) {\n return this.state$.pipe(\n filter((cmps: Set<DynamicComponentDefinition>) => cmps.size > 0),\n mergeMap((cmps: Set<DynamicComponentDefinition>) =>\n of(Array.from(cmps).find(cmp => cmp.id === id))\n ),\n take(1)\n );\n }\n\n add(component: DynamicComponentDefinition) {\n this.state.add(component);\n this.emitNewState();\n }\n\n remove(component: DynamicComponentDefinition) {\n this.state.delete(component);\n this.emitNewState();\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ComponentFactoryResolver,\n ViewContainerRef,\n ComponentRef\n} from '@angular/core';\nimport {\n DynamicComponent,\n DynamicComponentDefinition,\n OnBeforeSave\n} from './dynamic-component.model';\nimport { DynamicComponentService } from './dynamic-component.service';\nimport { of, isObservable, Observable } from 'rxjs';\nimport { isUndefined } from 'lodash-es';\n\n/**\n * C8y dynamic component.\n * ## Example:\n *\n * register component in HOOK in module:\n * ```typescript\n * import { HOOK_COMPONENT } from '@c8y/ngx-components';\n *\n * @NgModule({\n * ...,\n * providers: [{\n * provide: HOOK_COMPONENT,\n * multi: true,\n * useValue: [{\n * id: 'test-component',\n * label: 'My test component',\n * description: 'this is test component',\n * component: TestComponent\n * }],\n * ...\n * }]\n *\n * ```\n * Showing dynamic component:\n * ```html\n * <c8y-dynamic-component [componentId]=\"'test-component'\" [config]=\"config\"></c8y-dynamic-component>\n * ```\n */\n@Component({\n selector: 'c8y-dynamic-component',\n templateUrl: './dynamic-component.component.html'\n})\nexport class DynamicComponentComponent {\n /**\n * The ID of the registered component. It needs to be a component that is hooked\n * with the HOOK_COMPONENTS extension hook.\n */\n @Input() componentId: string;\n /**\n * The configuration to pass.\n */\n @Input() config: any;\n /**\n * DynamicComponents can have two modes, an edit (config) and an view (component) mode.\n * By default it is shown in the component mode.\n */\n @Input() mode: 'config' | 'component' = 'component';\n /**\n * Disable this to hide the error that is shown if the component was not found.\n */\n @Input() notFoundError = true;\n /**\n * @ignore\n */\n @ViewChild('host', { read: ViewContainerRef, static: true }) host: ViewContainerRef;\n /**\n * @ignore\n */\n error: any;\n /**\n * @ignore\n */\n expandErrorDetails = false;\n private componentRef: ComponentRef<Component>;\n\n /**\n * @ignore only DI\n */\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private dynamicComponentService: DynamicComponentService\n ) {}\n\n /**\n * Calls the dynamic component life cycle hook. Currently only\n * supporting onBeforeSave, a hook which is called before a config component\n * is saved.\n */\n callLifeCycleHooks() {\n return this.callOnBeforeSaveHook();\n }\n\n /**\n * @ignore\n */\n ngOnChanges(): void {\n this.dynamicComponentService\n .getById$(this.componentId)\n .subscribe(cmp => this.loadComponent(cmp));\n }\n\n private loadComponent(dynamicComponent: DynamicComponentDefinition) {\n try {\n this.error = undefined;\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n this.mode === 'component' ? dynamicComponent.component : dynamicComponent.configComponent\n );\n this.host.clear();\n this.componentRef = this.host.createComponent(componentFactory);\n (this.componentRef.instance as DynamicComponent).config = this.config;\n } catch (ex) {\n this.error = ex;\n }\n }\n\n private callOnBeforeSaveHook() {\n if (!this.componentRef) {\n return of(true);\n }\n const hook = (this.componentRef.instance as OnBeforeSave).onBeforeSave;\n if (hook) {\n const result = hook(this.config);\n if (isUndefined(result)) {\n return of(true);\n }\n return isObservable(result) ? result : (of(result) as Observable<boolean>);\n }\n return of(true);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { DynamicComponentComponent } from './dynamic-component.component';\nimport { DynamicComponentService } from './dynamic-component.service';\nimport { I18nModule } from '../i18n/i18n.module';\n\n@NgModule({\n declarations: [DynamicComponentComponent],\n imports: [CommonModule, CollapseModule, RouterModule.forChild([]), I18nModule],\n exports: [DynamicComponentComponent],\n providers: [DynamicComponentService]\n})\nexport class DynamicComponentModule {}\n","import { Component, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'c8y-dashboard-child-action',\n templateUrl: './dashboard-child-action.component.html'\n})\nexport class DashboardChildActionComponent {\n @ViewChild('template', { static: false }) template: any;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c8y-dashboard-child-title',\n templateUrl: './dashboard-child-title.component.html'\n})\nexport class DashboardChildTitleComponent {}\n","import {\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n AfterContentInit,\n QueryList,\n forwardRef,\n Output,\n EventEmitter,\n HostListener,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DashboardChildComponent } from './dashboard-child.component';\nimport { DashboardChange } from './dashboard.model';\n\n/**\n * Displays a CSS grid which is customizable by the customer. You can set\n * `c8y-dashboard-child`-components on it or position any element on it by\n * setting the grid CSS properties. On change (resize, or rearrange) the\n * component emits an change event.\n *\n * ## Example:\n *\n * ```html\n * <c8y-title>Hello from outlet</c8y-title>\n *\n * <c8y-action-bar-item [placement]=\"'right'\">\n * <button class=\"btn btn-link\" (click)=\"addRandom()\"><i class=\"fa fa-plus\"></i> Add random</button>\n * </c8y-action-bar-item>\n * <c8y-action-bar-item [placement]=\"'right'\">\n * <button class=\"btn btn-link\" (click)=\"isFrozen = !isFrozen\">\n * <i [c8yIcon]=\"isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </button>\n * </c8y-action-bar-item>\n *\n * <c8y-dashboard (dashboardChange)=\"dashboardChange($event)\">\n * <c8y-dashboard-child\n * [isFrozen]=\"isFrozen\"\n * title=\"dynamic\"\n * *ngFor=\"let widget of widgets\"\n * #current\n * >\n * x: {{ current.x }}<br />\n * y: {{ current.y }}<br />\n * width: {{ current.width }}<br />\n * height: {{ current.height }}<br />\n * </c8y-dashboard-child>\n * <c8y-dashboard-child\n * #cpWidget\n * [isFrozen]=\"isFrozen\"\n * [x]=\"0\"\n * [y]=\"1\"\n * [width]=\"3\"\n * [height]=\"2\"\n * [data]=\"widget\"\n * [class]=\"'card card-dashboard panel-title-regular panel-content-branded panel-title-overlay'\"\n * >\n * <c8y-dashboard-child-title>\n * <span>World!</span>\n * </c8y-dashboard-child-title>\n * x: {{ cpWidget.x }}<br />\n * y: {{ cpWidget.y }}<br />\n * width: {{ cpWidget.width }}<br />\n * height: {{ cpWidget.height }}<br />\n * </c8y-dashboard-child>\n * <c8y-dashboard-child\n * #cpWidget2\n * [isFrozen]=\"isFrozen\"\n * [x]=\"8\"\n * [y]=\"1\"\n * [width]=\"4\"\n * [height]=\"4\"\n * [class]=\"'card card-dashboard panel-content-dark'\"\n * >\n * <c8y-dashboard-child-title>\n * <span>Hello!</span>\n * </c8y-dashboard-child-title>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"cpWidget2.isFrozen = !cpWidget2.isFrozen; (false)\">\n * <i [c8yIcon]=\"cpWidget2.isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </a>\n * </c8y-dashboard-child-action>\n * x: {{ cpWidget2.x }}<br />\n * y: {{ cpWidget2.y }}<br />\n * width: {{ cpWidget2.width }}<br />\n * height: {{ cpWidget2.height }}<br />\n * </c8y-dashboard-child>\n *\n * <c8y-dashboard-child\n * #cpWidget3\n * [isFrozen]=\"isFrozen\"\n * [x]=\"0\"\n * [y]=\"3\"\n * [width]=\"4\"\n * [height]=\"4\"\n * [class]=\"'card-dashboard panel-content-transparent'\"\n * >\n * <c8y-dashboard-child-title *ngIf=\"showTitle\">\n * <span>Transparent!</span>\n * </c8y-dashboard-child-title>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"showTitle = !showTitle; (false)\">\n * <i [c8yIcon]=\"'heading'\"></i> Hide/show title\n * </a>\n * </c8y-dashboard-child-action>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"cpWidget3.isFrozen = !cpWidget3.isFrozen; (false)\">\n * <i [c8yIcon]=\"cpWidget3.isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </a>\n * </c8y-dashboard-child-action>\n * x: {{ cpWidget3.x }}<br />\n * y: {{ cpWidget3.y }}<br />\n * width: {{ cpWidget3.width }}<br />\n * height: {{ cpWidget3.height }}<br />\n * </c8y-dashboard-child>\n * </c8y-dashboard>\n * ```\n */\n@Component({\n selector: 'c8y-dashboard',\n templateUrl: './dashboard.component.html',\n host: {\n class: 'c8y-grid-dashboard dashboard-grid'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardComponent implements AfterContentInit {\n /**\n * All children in that dashboard.\n */\n @ContentChildren(forwardRef(() => DashboardChildComponent)) children: QueryList<\n DashboardChildComponent\n >;\n\n /**\n * The amount of columns on that dashboard.\n */\n @Input() columns = 12;\n\n /**\n * The spacing between each children in pixel.\n */\n @Input() gap = 12;\n\n /**\n * The amount of rows to dusplay. Set to auto to\n * auto extend the rows.\n */\n @Input() rows: number | 'auto' = 'auto';\n\n /**\n * An event fired if the dashboard was changed.\n */\n @Output() dashboardChange = new EventEmitter<DashboardChange>();\n\n dashboardRect;\n private lastRow = 1;\n private readonly DEFAULT_ROW_SIZE = 68;\n\n /**\n * The current column size.\n */\n get columnSize() {\n return this.dashboardRect.width / this.columns;\n }\n\n /**\n * The current row size.\n */\n get rowSize() {\n return this.rows === 'auto' ? this.DEFAULT_ROW_SIZE : this.calculateRowSize();\n }\n\n /**\n * Returns all positioning styles. Nasty workaround for that issue:\n * https://github.com/angular/angular/issues/9343\n */\n @HostBinding('attr.style')\n get inlineStyle() {\n return this.sanitizer.bypassSecurityTrustStyle(\n `\n -ms-grid-columns: (1fr)[${this.columns}];\n grid-template-columns: repeat(${this.columns}, 1fr);\n ${this.rows !== 'auto' ? `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)[${\n this.rows === 'auto' ? this.lastRow : this.rows\n }];\n margin: -${this.gap}px;\n `\n );\n }\n\n constructor(private element: ElementRef, private sanitizer: DomSanitizer) {}\n\n ngAfterContentInit(): void {\n this.onResize();\n this.getLastRow();\n }\n\n @HostListener('window:resize')\n onResize() {\n this.updateRectSize();\n }\n\n /**\n * Gets the last row\n * (mainly for IE11 which doesn't support grid-auto-rows CSS property)\n */\n getLastRow() {\n let lastRow = 1;\n this.children.forEach(widget => {\n if (lastRow < widget.y + widget.width) {\n lastRow = widget.y + widget.width;\n }\n });\n this.lastRow = lastRow + 1;\n }\n\n /**\n * Updates the current rect size of the dashboard.\n */\n updateRectSize() {\n const ele = this.element.nativeElement as HTMLElement;\n this.dashboardRect = ele.getBoundingClientRect();\n }\n\n emitChange(widget: DashboardChildComponent) {\n this.dashboardChange.emit({ source: widget, children: this.children.toArray() });\n }\n\n private calculateRowSize() {\n return this.dashboardRect.height / (this.rows as number);\n }\n}\n","import { CdkDragMove } from '@angular/cdk/drag-drop';\nimport { sortBy } from 'lodash-es';\nimport { pipe } from 'rxjs';\nimport { distinctUntilChanged, expand, filter, map, tap } from 'rxjs/operators';\nimport { DashboardComponent } from './dashboard.component';\nimport {\n DashboardChildDimension,\n DashboardChildResizeDimension,\n DashboardChildArrangement\n} from './dashboard.model';\nimport { DashboardChildComponent } from './dashboard-child.component';\n\nexport class DashboardChildChange {\n child: DashboardChildComponent;\n children: DashboardChildComponent[];\n private dashboard: DashboardComponent;\n\n private readonly MIN_WIDTH = 2;\n private MIN_HEIGHT = 1;\n private readonly PIXEL_SIZE_THRESHOLD = 10;\n\n private diffX = 0;\n private diffY = 0;\n\n constructor(childToChange: DashboardChildComponent) {\n this.dashboard = childToChange.dashboard;\n this.children = childToChange.dashboard.children\n ? childToChange.dashboard.children.filter(child => childToChange !== child)\n : [];\n this.child = childToChange;\n }\n\n get resize$() {\n return this.child.dragSource.moved.pipe(\n map(move => this.getPixelSize(move)),\n tap(resizeDimension => this.setPixelSize(resizeDimension)),\n map(resizeDimension => this.getDimensionSize(resizeDimension)),\n distinctUntilChanged(\n (prev, next) => prev.width === next.width && prev.height === next.height\n ),\n map(dimension => this.setDimension(dimension)),\n this.arrangePipe()\n );\n }\n\n get drag$() {\n return this.child.dragSource.moved.pipe(\n map(move => this.getDimensionPosition(move)),\n filter(\n dimension =>\n dimension.x >= 0 &&\n dimension.x <= this.dashboard.columns - this.child.width &&\n dimension.y >= 0\n ),\n distinctUntilChanged((prev, next) => prev.x === next.x && prev.y === next.y),\n this.arrangePipe()\n );\n }\n\n findFreeDimension() {\n let y = -1;\n let x = 0;\n let found = false;\n const { width, height } = this.child;\n if (width > this.dashboard.columns) {\n throw new Error('The child does not fit on the current dashboard.');\n }\n do {\n x = 0;\n y++;\n while (x + width <= this.dashboard.columns) {\n if (this.getCollided({ x, y, width, height }).length === 0) {\n found = true;\n break;\n }\n x++;\n }\n } while (!found);\n return { x, y, width, height } as DashboardChildDimension;\n }\n\n collapseUpAll(): void {\n return sortBy([this.child, ...this.children], ['y']).forEach(w => {\n const ds = new DashboardChildChange(w);\n const newPosition = ds.collapseUp(w);\n ds.setDimension(newPosition);\n });\n }\n\n arrangeAll(arrange: DashboardChildArrangement) {\n const { current, scan, spacing, origin } = arrange;\n const collided = this.getCollided(current, sortBy(scan, ['y']));\n return collided.map(child => {\n const ds = new DashboardChildChange(child);\n ds.setDimension({ ...child, y: spacing });\n return {\n current: child,\n scan: scan.filter(w => w !== child),\n spacing: child.y + child.height,\n origin\n };\n });\n }\n\n private arrangePipe() {\n return pipe(\n map(\n (dimension: DashboardChildDimension) =>\n ({\n current: dimension,\n scan: this.children,\n spacing: dimension.y + dimension.height,\n origin: { ...dimension }\n } as DashboardChildArrangement)\n ),\n expand((dimensions: DashboardChildArrangement) => this.arrangeAll(dimensions)),\n map(({ origin }) => origin),\n map(dimension => this.setDimension(dimension, true)),\n tap(() => this.collapseUpAll()),\n tap(() => this.dashboard.getLastRow())\n );\n }\n\n private collapseUp(dimension: DashboardChildDimension) {\n let { y } = dimension;\n while (y > 0) {\n if (this.getCollided({ ...dimension, y: y - 1 }).length !== 0) {\n break;\n }\n y--;\n }\n return { ...dimension, y };\n }\n\n private setDimension(dimension: DashboardChildDimension, notIfColliding = false) {\n if (notIfColliding && this.getCollided(dimension).length > 0) {\n return;\n }\n\n this.child.x = dimension.x;\n this.child.y = dimension.y;\n if (\n dimension.width >= this.MIN_WIDTH &&\n dimension.x + dimension.width <= this.dashboard.columns\n ) {\n this.child.width = dimension.width;\n } else if (dimension.width < this.MIN_WIDTH) {\n dimension.width = this.MIN_WIDTH;\n } else {\n dimension.width = this.dashboard.columns - dimension.x;\n }\n if (dimension.height >= this.MIN_HEIGHT) {\n this.child.height = dimension.height;\n } else {\n dimension.height = this.MIN_WIDTH;\n }\n return dimension;\n }\n\n private setPixelSize({ width, height }) {\n if (width >= this.dashboard.columnSize * this.MIN_WIDTH - this.dashboard.gap) {\n this.child.pxWidth = width + this.PIXEL_SIZE_THRESHOLD;\n }\n if (height >= this.dashboard.rowSize * this.MIN_HEIGHT - this.dashboard.gap) {\n this.child.pxHeight = height + this.PIXEL_SIZE_THRESHOLD;\n }\n }\n\n private getPixelSize(moveEvent: CdkDragMove) {\n const draggedElement = moveEvent.source.element.nativeElement.parentNode as HTMLElement;\n if (!this.diffX) {\n const rect = draggedElement.getBoundingClientRect();\n this.diffX = rect.left;\n this.diffY = rect.top;\n }\n const { x, y } = moveEvent.pointerPosition;\n const width = Math.round(x - this.diffX);\n const height = Math.round(y - this.diffY);\n return { width, height, pointer: { x, y } } as DashboardChildResizeDimension;\n }\n\n private getDimensionSize(resizePosition: DashboardChildResizeDimension) {\n const { x, y } = this.child;\n const ds = this.dashboard.dashboardRect;\n const column = this.dashboard.columnSize;\n const row = this.dashboard.rowSize + this.dashboard.gap;\n const width =\n Math.round((resizePosition.pointer.x - ds.left + this.dashboard.gap) / column) - x;\n const height = Math.round((resizePosition.pointer.y - ds.top + this.dashboard.gap) / row) - y;\n return { x, y, width, height } as DashboardChildDimension;\n }\n\n private getDimensionPosition(moveEvent: CdkDragMove) {\n const draggedElement = moveEvent.source.element.nativeElement.nextElementSibling;\n if (!this.diffX) {\n const rect = draggedElement.getBoundingClientRect();\n this.diffX = moveEvent.pointerPosition.x - rect.left;\n this.diffY = moveEvent.pointerPosition.y - rect.top;\n }\n\n const left = moveEvent.pointerPosition.x - this.diffX;\n const top = moveEvent.pointerPosition.y - this.diffY;\n const { width, height } = this.child;\n const ds = this.dashboard.dashboardRect;\n const column = this.dashboard.columnSize;\n const row = this.dashboard.rowSize + this.dashboard.gap / 2;\n const x = Math.round((left - ds.left) / column);\n const y = Math.round((top - ds.top) / row);\n return { x, y, width, height } as DashboardChildDimension;\n }\n\n private doesCollide(a: DashboardChildDimension, b: DashboardChildDimension) {\n if (b.x === undefined) {\n return false;\n }\n return !(\n a.y + a.height - 1 < b.y ||\n a.y > b.y + b.height - 1 ||\n a.x + a.width - 1 < b.x ||\n a.x > b.x + b.width - 1\n );\n }\n\n private getCollided(currentDimension: DashboardChildDimension, dimensions = this.children) {\n const collided = dimensions.filter(dimension => this.doesCollide(currentDimension, dimension));\n return collided;\n }\n}\n","import { CdkDrag, CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n ContentChildren,\n Output,\n EventEmitter,\n ElementRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Subscription } from 'rxjs';\nimport { DashboardComponent } from './dashboard.component';\nimport { DashboardChildDimension, Widget } from './dashboard.model';\nimport { DashboardChildChange } from './dashboard-child-change';\nimport { DashboardChildActionComponent } from './dashboard-child-action.component';\n\n/**\n * A dashboard child allows to position elements\n * correctly on a grid. The user can then resize and\n * rearrange the elements, as long as they are not `frozen`.\n *\n * By setting `c8y-dashboard-child-actions` and\n * `c8y-dashboard-child-title` on the element you can add\n * custom actions or a custom title to the current child.\n *\n * By adding the correct branded classes, you can define\n * the look and feel of the child. By default it is displayed\n * as a card.\n *\n * Example:\n *\n * ```html\n * <c8y-dashboard-child\n * #cpWidget3\n * [isFrozen]=\"isFrozen\"\n * [x]=\"0\"\n * [y]=\"3\"\n * [width]=\"4\"\n * [height]=\"4\"\n * [class]=\"'card-dashboard panel-content-transparent'\"\n * >\n * <c8y-dashboard-child-title *ngIf=\"showTitle\">\n * <span>Transparent!</span>\n * </c8y-dashboard-child-title>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"showTitle = !showTitle; (false)\">\n * <i [c8yIcon]=\"'heading'\"></i> Hide/show title\n * </a>\n * </c8y-dashboard-child-action>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"cpWidget3.isFrozen = !cpWidget3.isFrozen; (false)\">\n * <i [c8yIcon]=\"cpWidget3.isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </a>\n * </c8y-dashboard-child-action>\n * x: {{ cpWidget3.x }}<br />\n * y: {{ cpWidget3.y }}<br />\n * width: {{ cpWidget3.width }}<br />\n * height: {{ cpWidget3.height }}<br />\n * </c8y-dashboard-child>\n * ```\n */\n@Component({\n selector: 'c8y-dashboard-child',\n templateUrl: './dashboard-child.component.html',\n host: {\n class: 'dashboard-grid-child'\n }\n})\nexport class DashboardChildComponent implements DashboardChildDimension {\n @ContentChildren(DashboardChildActionComponent) actions = [];\n dragSource: CdkDrag;\n isResize = false;\n isDragging = false;\n klasses = {};\n\n _pxWidth = '100%';\n _pxHeight = '100%';\n\n /**\n * The x position of the child.\n */\n @Input() x;\n\n /**\n * The y position of the child.\n */\n @Input() y;\n\n /**\n * The width of the component in grid-columns.\n */\n @Input() width = 1;\n\n /**\n * The height of the component in grid-rows.\n */\n @Input() height = 1;\n\n /**\n * The data object can be used as a dataTransfer object for events of the child.\n */\n @Input() data: Widget | any;\n\n /**\n * The margin of the child in pixel.\n */\n @Input() margin = 12;\n\n /**\n * If a dashboard is frozen, all children cannot be moved\n * or resized.\n */\n @Input() isFrozen = false;\n\n /**\n * The child content is initialized, as soon it is scrolled into viewport\n */\n @Input() useIntersection = false;\n\n /**\n * An event fired if a child change is started (dragging or resizing)\n */\n @Output() changeStart = new EventEmitter<DashboardChildComponent>();\n\n /**\n * An event fired if a child change is ended\n */\n @Output() changeEnd = new EventEmitter<DashboardChildComponent>();\n\n /**\n * All classes added to this child\n */\n @Input()\n class: string[] | { [key: string]: boolean } = {};\n\n /**\n * Updates the pixel width of the child (used for resizing)\n */\n set pxWidth(value) {\n this._pxWidth = `${value}px`;\n }\n\n /**\n * Updates the pixel height of the child (used for resizing)\n */\n set pxHeight(value) {\n this._pxHeight = `${value}px`;\n }\n\n /**\n * An indicator if the child is intersected (that mean visible for the user)\n */\n intersected = false;\n\n /**\n * nasty workaround for that issue:\n * https://github.com/angular/angular/issues/9343\n */\n @HostBinding('attr.style')\n get inlineStyle() {\n 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 `);\n }\n\n /**\n * The observable subscription which is listen to\n * on changes (drag or resize).\n */\n changeSubscription: Subscription;\n\n constructor(\n @Inject(forwardRef(() => DashboardComponent)) public dashboard: DashboardComponent,\n private sanitizer: DomSanitizer,\n private element: ElementRef\n ) {}\n\n ngOnChanges(): void {\n this.klasses = {\n card: true,\n 'card-dashboard': true,\n disabled: this.isFrozen,\n 'on-resize': this.isResize,\n ...this.class\n };\n }\n\n ngOnInit(): void {\n if (this.x === undefined || this.y === undefined) {\n setTimeout(() => this.setDynamicDimension());\n }\n if (this.useIntersection && 'IntersectionObserver' in window) {\n const intersectionObserver = new IntersectionObserver(\n event => (this.intersected = this.childInView(event[0], intersectionObserver))\n );\n intersectionObserver.observe(this.element.nativeElement);\n } else {\n this.intersected = true;\n }\n }\n\n setDynamicDimension() {\n const ds = new DashboardChildChange(this);\n const { x, y } = ds.findFreeDimension();\n this.x = x;\n this.y = y;\n }\n\n resizeStarted($event: CdkDragStart) {\n this.isResize = true;\n this.dashboard.updateRectSize();\n this.dragSource = $event.source;\n const positioning = new DashboardChildChange(this);\n this.changeSubscription = positioning.resize$.subscribe();\n this.changeStart.emit(this);\n this.ngOnChanges();\n }\n\n dragStarted($event: CdkDragStart) {\n this.isDragging = true;\n this.dashboard.updateRectSize();\n this.dragSource = $event.source;\n const positioning = new DashboardChildChange(this);\n this.changeSubscription = positioning.drag$.subscribe();\n this.changeStart.emit(this);\n }\n\n reset($event?: CdkDragEnd) {\n this.isResize = false;\n this.isDragging = false;\n this._pxWidth = '100%';\n this._pxHeight = '100%';\n this.ngOnChanges();\n if ($event) {\n $event.source.reset();\n }\n if (this.changeSubscription) {\n this.changeSubscription.unsubscribe();\n this.dashboard.emitChange(this);\n this.changeEnd.emit(this);\n }\n }\n\n private childInView(event, observer) {\n if (event.isIntersecting) {\n observer.unobserve(event.target);\n return true;\n }\n return false;\n }\n}\n","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { DashboardSettings, Widget, WidgetChange, DashboardChange } from './dashboard.model';\nimport { DashboardComponent } from './dashboard.component';\n\n@Component({\n selector: 'c8y-widgets-dashboard',\n templateUrl: './widgets-dashboard.component.html',\n host: {\n style: `\n display: block;\n `,\n class: 'dashboard c8y-grid-dashboard'\n }\n})\nexport class WidgetsDashboardComponent {\n @Input()\n widgets: Widget[];\n\n @Input()\n context: any;\n\n @Input()\n contextDashboard: any;\n\n @Input('settings')\n set _settings(settings: Partial<DashboardSettings>) {\n this.settings = { ...this.settings, ...settings };\n }\n settings: DashboardSettings = {\n isFrozen: false,\n isDisabled: false,\n widgetMargin: 12,\n translateWidgetTitle: false,\n defaultHeight: 4,\n defaultWidth: 4,\n allowFullscreen: false,\n canDelete: true,\n isLoading: false,\n };\n\n @Output()\n onAddWidget: EventEmitter<DashboardComponent> = new EventEmitter();\n\n @Output()\n onEditWidget: EventEmitter<WidgetChange> = new EventEmitter();\n\n @Output()\n onDeleteWidget: EventEmitter<WidgetChange> = new EventEmitter();\n\n @Output()\n onChangeDashboard: EventEmitter<DashboardChange> = new EventEmitter();\n\n @Output()\n onEditDashboard: EventEmitter<DashboardComponent> = new EventEmitter();\n\n @Output()\n onDeleteDashboard: EventEmitter<DashboardComponent> = new EventEmitter();\n\n @Output()\n onFreeze: EventEmitter<DashboardSettings> = new EventEmitter();\n\n @Output()\n onChangeStart: EventEmitter<WidgetChange> = new EventEmitter();\n\n @Output()\n onChangeEnd: EventEmitter<WidgetChange> = new EventEmitter();\n\n toggleFullscreen() {\n const elem = document.body as any;\n const doc = document as any;\n if (!this.fullScreen()) {\n if (elem.requestFullscreen) {\n elem.requestFullscreen();\n } else if (elem.msRequestFullscreen) {\n elem.msRequestFullscreen();\n } else if (elem.mozRequestFullScreen) {\n elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) {\n elem.webkitRequestFullscreen((Element as any).ALLOW_KEYBOARD_INPUT);\n }\n } else if (doc.exitFullscreen) {\n doc.exitFullscreen();\n } else if (doc.msExitFullscreen) {\n doc.msExitFullscreen();\n } else if (doc.mozCancelFullScreen) {\n doc.mozCancelFullScreen();\n } else if (doc.webkitExitFullscreen) {\n doc.webkitExitFullscreen();\n }\n }\n\n fullScreen() {\n const doc: any = document;\n return !!(\n doc.fullscreenElement ||\n doc.mozFullScreenElement ||\n doc.webkitFullscreenElement ||\n doc.msFullscreenElement\n );\n }\n}\n","import { Directive, Input, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[c8y-guide-href]'\n})\nexport class GuideHrefDirective {\n @Input('c8y-guide-href')\n c8yGuideHref;\n\n private htmlAnchor: HTMLAnchorElement;\n\n set baseHref(href) {\n this.htmlAnchor.href = `${href}/${this.c8yGuideHref}`;\n }\n\n constructor(private elementRef: ElementRef) {\n this.htmlAnchor = this.elementRef.nativeElement as HTMLAnchorElement;\n if (!this.htmlAnchor.hasAttribute('target')) {\n this.htmlAnchor.setAttribute('target', '_blank');\n }\n }\n}\n","import {\n Component,\n OnInit,\n ContentChildren,\n QueryList,\n ContentChild,\n AfterContentInit,\n ElementRef,\n Renderer2, OnDestroy\n} from '@angular/core';\nimport { GuideHrefDirective } from './guide-href.directive';\nimport { DocsService } from './docs.service';\nimport { ReplaySubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ForceHtmlTranslateDirective } from '../i18n/force-html-translate.directive';\n\n@Component({\n selector: '[c8y-guide-docs]',\n templateUrl: './guide-docs.component.html'\n})\nexport class GuideDocsComponent implements OnInit, AfterContentInit, OnDestroy {\n baseUrl: string;\n @ContentChildren(GuideHrefDirective, { descendants: true }) links: QueryList<GuideHrefDirective>;\n\n /**\n * Provides access to translate directive, so it is possible to adjust anchor html tags, after\n * content is translated.\n */\n @ContentChild(ForceHtmlTranslateDirective, { static: false }) translateDirective;\n\n private destroyed$: ReplaySubject<boolean> = new ReplaySubject(1);\n\n constructor(private docs: DocsService, private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.baseUrl = this.docs.getBaseUrl();\n }\n\n /**\n * After content is initialized we subscribe for translation events, then we are able to modify\n * anchor just as C8yGuideHrefDirective does.\n */\n ngAfterContentInit() {\n if (this.translateDirective) {\n this.translateDirective.htmlUpdateEvent\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.replaceAnchorAttributes();\n });\n } else {\n this.replaceAnchorAttributes();\n }\n }\n\n /**\n * Find and modify anchor elements\n */\n replaceAnchorAttributes() {\n const anchors = this.findGuideAnchors(this.el.nativeElement);\n anchors.forEach(a => {\n const guideHref = `${this.baseUrl}/${a.getAttribute('c8y-guide-href')}`;\n this.renderer.setAttribute(a, 'href', guideHref);\n if (!a.hasAttribute('target')) {\n this.renderer.setAttribute(a, 'target', '_blank');\n }\n });\n }\n\n /**\n * Recursive function, returns array of Anchor elements inside HTMLElement.\n */\n findGuideAnchors(el: HTMLElement): HTMLElement[] {\n const isAnchor = () => el.nodeName === 'A';\n const hasGuideHrefAttr = () => !!el.attributes.getNamedItem('c8y-guide-href');\n const hasChildren = () => el.childNodes && el.childNodes.length > 0;\n\n let result = [];\n\n if (isAnchor() && hasGuideHrefAttr()) {\n result.push(el);\n } else if (hasChildren()) {\n el.childNodes.forEach((node: HTMLElement) => {\n const searchResult = this.findGuideAnchors(node);\n if (searchResult) {\n result = [...result, ...searchResult];\n }\n });\n }\n return result;\n }\n\n ngAfterViewInit(): void {\n this.links.forEach(guide => {\n guide.baseHref = this.baseUrl;\n });\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DocsService } from './docs.service';\nimport { GuideHrefDirective } from './guide-href.directive';\nimport { GuideDocsComponent } from './guide-docs.component';\n\n@NgModule({\n declarations: [\n GuideHrefDirective,\n GuideDocsComponent\n ],\n imports: [CommonModule],\n exports: [\n GuideHrefDirective,\n GuideDocsComponent\n ],\n providers: [DocsService],\n})\nexport class DocsModule {}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { ActionBarModule } from '../action-bar/action-bar.module';\nimport { CommonModule } from '../common/common.module';\nimport { DynamicComponentModule } from '../dynamic-component/dynamic-component.module';\nimport { DashboardChildActionComponent } from './dashboard-child-action.component';\nimport { DashboardChildTitleComponent } from './dashboard-child-title.component';\nimport { DashboardChildComponent } from './dashboard-child.component';\nimport { DashboardComponent } from './dashboard.component';\nimport { WidgetsDashboardComponent } from './widgets-dashboard.component';\nimport { HeaderModule } from '../header/header.module';\nimport { DocsModule } from '../docs/docs.module';\n\n@NgModule({\n declarations: [\n DashboardChildComponent,\n DashboardComponent,\n DashboardChildTitleComponent,\n DashboardChildActionComponent,\n WidgetsDashboardComponent\n ],\n imports: [\n CommonModule,\n ActionBarModule,\n DynamicComponentModule,\n DragDropModule,\n BsDropdownModule.forRoot(),\n HeaderModule,\n DocsModule\n ],\n exports: [\n DashboardComponent,\n DashboardChildComponent,\n DashboardChildTitleComponent,\n DashboardChildActionComponent,\n WidgetsDashboardComponent\n ]\n})\nexport class DashboardModule {}\n","/* tslint:disable:max-classes-per-file */\n\nimport { Directive, TemplateRef, Type } from '@angular/core';\n\nimport { Column } from '../data-grid.model';\n\nexport interface CellRendererDef {\n template: TemplateRef<any>;\n}\n\nexport interface CellRendererSpec {\n renderer: TemplateRef<CellRendererContext> | Type<any>;\n context: CellRendererContext;\n}\n\nexport class CellRendererContext {\n value: any;\n item?: any;\n property: Column;\n}\n\n@Directive({ selector: '[c8yCellRendererDef]' })\nexport class CellRendererDefDirective implements CellRendererDef {\n constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[c8yHeaderCellRendererDef]' })\nexport class HeaderCellRendererDefDirective implements CellRendererDef {\n constructor(public template: TemplateRef<any>) {}\n}\n","/* tslint:disable:max-classes-per-file */\n\nimport { Directive, TemplateRef, Type } from '@angular/core';\nimport { Column, FilterPredicateFunction } from '../data-grid.model';\n\nexport interface FilteringFormRendererSpec {\n renderer: TemplateRef<FilteringFormRendererContext> | Type<any>;\n context: FilteringFormRendererContext;\n}\n\nexport class FilteringFormRendererContext {\n property: Column;\n applyFilter: (filteringModifier: FilteringModifier) => void;\n resetFilter: () => void;\n}\n\nexport interface FilteringModifier {\n filterPredicate?: string | FilterPredicateFunction;\n externalFilterQuery?: string | object;\n}\n\n@Directive({ selector: '[c8yFilteringFormRendererDef]' })\nexport class FilteringFormRendererDefDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { ContentChild, Directive, Input } from '@angular/core';\n\nimport { CellRendererDefDirective, HeaderCellRendererDefDirective } from './cell-renderer';\nimport { FilteringFormRendererDefDirective } from './filtering-form-renderer';\n\n@Directive({ selector: 'c8y-column' })\nexport class ColumnDirective {\n @Input() name: string;\n\n @ContentChild(CellRendererDefDirective, { static: false })\n cellRendererDef: CellRendererDefDirective;\n\n @ContentChild(HeaderCellRendererDefDirective, { static: false })\n headerCellRendererDef: HeaderCellRendererDefDirective;\n\n @ContentChild(FilteringFormRendererDefDirective, { static: false })\n filteringFormRendererDef: FilteringFormRendererDefDirective;\n}\n","import { Type } from '@angular/core';\nimport { IResultList } from '@c8y/client';\n\n/*\n * For reference: the structure of current device column-related objects.\n * TODO: Can be removed when \"All devices\" is fully migrated.\n *\n * Services involved:\n * - c8yFilteringSortingColumns\n * - c8yFilteringSortingInventoryQueries\n * - c8yDeviceListColumns\n * - c8yFilteringSortingCollections?? -> for other tables in tenant/cell ID usage statistics feature\n *\n * Components involved:\n * - c8yFilteredSortedList -> this needs to be gravely adapted\n *\n * States saved in user preferences:\n * - Columns config (ALL_DEVICES_COLUMNS_CONFIG_USER_PREFERENCES_KEY)\n * - Columns meta (ALL_DEVICES_COLUMNS_META_USER_PREFERENCES_KEY_PREFIX)\n *\n * States saved in dynamic group object:\n * - Columns config (COLUMNS_CONFIG_FRAGMENT)\n * - Columns meta (COLUMNS_META_FRAGMENT)\n * - Query string (QUERY_STRING_FRAGMENT)\n *\n * TO-FUTURE-SELF note:\n * - `col.config.filtering` and `col.config.sorting` (the models) populate\n * `col.filtering` and `col.sorting` (the views).\n * - `getFilter` can return a query object (for server-side filtering) or\n * a filter function (for server-side filtering).\n */\ninterface DeviceColumn {\n name: string;\n header: string;\n config: {\n filtering: object;\n sorting: {\n order: number;\n };\n override: DeviceColumn;\n };\n cell: {\n class: string;\n innerClass: string;\n scopeExtensions: object;\n template: string;\n style: object;\n };\n filtering: {\n form: object[];\n schema: {\n type: string;\n properties: {\n type: string;\n [key: string]: any;\n };\n };\n getFilter(filteringModel: object): object | FilterFunction;\n };\n sorting: {\n path?: string;\n paths?: string;\n };\n meta: {\n custom: boolean;\n key: string;\n headerName: string;\n fragmentPath: string;\n active: boolean;\n filteringMode: 'EQUALITY' | 'EXISTENCE';\n };\n}\n\ntype FilterFunction = (item: object) => boolean;\n\nexport interface DataGrid {\n columns: Column[];\n rows: Row[];\n pagination: Pagination;\n serverSideDataCallback: ServerSideDataCallback;\n selectable: boolean;\n selectionPrimaryKey: string;\n displayOptions: DisplayOptions;\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[];\n}\n\n/*\n * Column\n */\nexport interface Column {\n name: string | SpecialColumnName;\n header?: string;\n path?: string;\n visible?: boolean;\n positionFixed?: boolean;\n\n /*\n * Cosmetics\n */\n dataType?: ColumnDataType;\n gridTrackSize?: string;\n headerCSSClassName?: string | string[];\n cellCSSClassName?: string | string[];\n\n /*\n * Sorting-Filtering\n */\n sortable?: boolean;\n sortOrder?: SortOrder;\n\n filterable?: boolean;\n filterPredicate?: string | FilterPredicateFunction;\n externalFilterQuery?: any;\n\n /*\n * Custom renderer\n */\n cellRendererComponent?: Type<any>;\n headerCellRendererComponent?: Type<any>;\n filteringFormRendererComponent?: Type<any>;\n}\n\nexport const enum SpecialColumnName {\n Checkbox = 'checkbox',\n Actions = 'actions'\n}\n\nexport const enum ColumnDataType {\n Icon = 'icon',\n Numeric = 'numeric',\n TextShort = 'text-short',\n TextLong = 'text-long'\n}\n\nexport const enum ColumnDataRecordClassName {\n Icon = 'data-record-icon',\n Header = 'data-record-header',\n Default = ''\n}\n\nexport const minColumnGridTrackSize = 80;\n\nexport const ratiosByColumnTypes = {\n icon: 1,\n numeric: 1,\n 'text-short': 1.67,\n 'text-long': 3.33\n};\n\nexport type SortOrder = 'asc' | 'desc' | '';\n\nexport type FilterPredicateFunction = (item: object, path: string) => boolean;\n\nexport enum FilteringActionType {\n ApplyFilter = 'APPLY_FILTER',\n ResetFilter = 'RESET_FILTER'\n}\n\nexport interface Row {\n id: string;\n [key: string]: any;\n}\n\nexport interface Pagination {\n currentPage: number;\n nextPage?: number;\n pageSize: number;\n}\n\nexport type ServerSideDataCallback = (\n dataSourceModifier: DataSourceModifier\n) => ServerSideDataResult;\nexport interface DataSourceModifier {\n columns: Column[];\n searchText: string;\n pagination: Pagination;\n selection: {\n enabled: boolean;\n primaryKey: string;\n };\n}\n\n/**\n * Describes result from server with data and additional statistics.\n */\nexport type ServerSideDataResult = IResultList<object> & {\n /** The real grand total number of items (the whole dataset). */\n size: number;\n\n /** The number of items after filtering applied to the whole dataset (subset). */\n filteredSize: number;\n\n /** The list of ids of all filtered items (subset). */\n filteredDataIds?: string[];\n};\n\nexport interface DataSourceStats {\n /** The real grand total number of items (the whole dataset). */\n size: number;\n\n /** The number of items after filtering applied to the whole dataset (subset). */\n filteredSize: number;\n\n /** The number of the current page. */\n currentPage: number;\n\n /** The number of the next page. */\n nextPage?: number;\n\n /** The number of items currently shown in the list view, a.k.a. current page (what the user sees on screen). */\n currentPageSize: number;\n\n /** The number of items on the first page. */\n firstPageSize: number;\n}\n\nexport interface DisplayOptions {\n striped: boolean;\n bordered: boolean;\n gridHeader: boolean;\n}\n\nexport interface ActionControl {\n type: BuiltInActionType | string;\n text?: string;\n icon?: string;\n // tslint:disable-next-line:ban-types\n callback: ((item: Row, reload: () => void) => void) | Function;\n [key: string]: any;\n}\n\nexport interface BulkActionControl extends ActionControl {\n callback(selectedItemIds: string[], reload: () => void): void;\n}\n\nexport const enum BuiltInActionType {\n Edit = 'EDIT',\n Delete = 'DELETE',\n Export = 'EXPORT'\n}\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { IResultList } from '@c8y/client';\nimport { chunk, flow, get, isNil, mapValues, omitBy, orderBy, pick } from 'lodash-es';\nimport { BehaviorSubject, defer, from, isObservable, Observable, of, Subject } from 'rxjs';\nimport { catchError, finalize, map, switchMap, tap } from 'rxjs/operators';\nimport { Column, DataSourceStats, ServerSideDataResult } from './data-grid.model';\n\nexport class GridDataSource implements DataSource<object> {\n loading$: Observable<boolean>;\n data$: Observable<object[]>;\n stats$: Observable<DataSourceStats>;\n selection$: Observable<any>;\n resultList$: Observable<IResultList<object>>;\n\n private loadingSubject = new BehaviorSubject<boolean>(false);\n private dataSourceSubject = new BehaviorSubject<object[]>([]);\n private dataStatsSubject = new BehaviorSubject<DataSourceStats>({\n size: 0,\n filteredSize: 0,\n currentPage: 0,\n currentPageSize: 0,\n firstPageSize: 0\n });\n private dataSelectionSubject = new BehaviorSubject<any>({\n filteredDataIds: []\n });\n private resultListSubject = new Subject<IResultList<object>>();\n\n constructor() {\n this.loading$ = this.loadingSubject.asObservable();\n this.data$ = this.dataSourceSubject.asObservable();\n this.stats$ = this.dataStatsSubject.asObservable();\n this.selection$ = this.dataSelectionSubject.asObservable();\n this.resultList$ = this.resultListSubject.asObservable();\n }\n\n connect(collectionViewer: CollectionViewer): Observable<object[]> {\n return this.data$;\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.loadingSubject.complete();\n this.dataSourceSubject.complete();\n this.dataStatsSubject.complete();\n this.dataSelectionSubject.complete();\n }\n\n loadData({\n rows,\n columns,\n pagination,\n searchText,\n serverSideDataCallback,\n selectable,\n selectionPrimaryKey,\n infiniteScroll,\n reload = false\n }) {\n const clientSideData$ = this.toObservable(rows).pipe(\n map(initialData => {\n let filteredSize = 0;\n let filteredDataIds = [];\n\n const transformedData = flow(\n data => this.doClientSideSearch({ data, columns, searchText }),\n data => this.doClientSideFiltering({ data, columns }),\n data => this.doClientSideSorting({ data, columns }),\n data => {\n filteredSize = data.length;\n filteredDataIds = selectable\n ? data.map(item => item[selectionPrimaryKey])\n : filteredDataIds;\n\n return data;\n },\n data => this.doClientSidePagination({ data, pagination })\n )(initialData);\n\n this.dataStatsSubject.next({\n size: initialData.length,\n filteredSize,\n currentPage: pagination.currentPage,\n currentPageSize: transformedData.length,\n firstPageSize: pagination.pageSize\n });\n this.dataSelectionSubject.next({ filteredDataIds });\n\n return transformedData;\n })\n );\n\n const serverSideData$ = defer(() =>\n this.toObservable(\n serverSideDataCallback({\n columns,\n searchText,\n pagination,\n selection: { enabled: selectable, primaryKey: selectionPrimaryKey }\n })\n )\n ).pipe(\n map((result: ServerSideDataResult) => {\n const { data, paging, size, filteredSize, filteredDataIds } = result;\n\n this.dataStatsSubject.next({\n size,\n filteredSize,\n currentPage: paging.currentPage,\n currentPageSize: data.length,\n nextPage: paging.nextPage,\n firstPageSize: paging.pageSize\n });\n this.dataSelectionSubject.next({ filteredDataIds: filteredDataIds || [] });\n this.resultListSubject.next(result);\n\n return data;\n })\n );\n\n const data$ = typeof serverSideDataCallback === 'function' ? serverSideData$ : clientSideData$;\n\n of([])\n .pipe(\n tap(() => this.loadingSubject.next(true)),\n switchMap(() => data$),\n catchError(err => {\n this.dataStatsSubject.next({\n size: 0,\n filteredSize: 0,\n currentPage: 0,\n currentPageSize: 0,\n firstPageSize: 0\n });\n this.dataSelectionSubject.next({ filteredDataIds: [] });\n return of([]);\n }),\n finalize(() => this.loadingSubject.next(false))\n )\n .subscribe(result => {\n const data =\n infiniteScroll && !reload ? [...this.dataSourceSubject.value, ...result] : result;\n this.dataSourceSubject.next(data);\n });\n }\n\n resolveValue(x, path) {\n return get(x, path);\n }\n\n resolveFunction(x) {\n return typeof x === 'function' ? x() : x;\n }\n\n normalizeNil(x) {\n return isNil(x) ? '' : x;\n }\n\n private doClientSideFiltering({ data, columns }) {\n return columns.reduce((result, column) => {\n const { filterPredicate } = column;\n\n if (typeof filterPredicate === 'string') {\n return this.doClientSideSearch({\n data: result,\n columns: [column],\n searchText: filterPredicate\n });\n }\n\n if (typeof filterPredicate === 'function') {\n return result.filter(item => filterPredicate(item, column.path));\n }\n\n return result;\n }, data);\n }\n\n private doClientSideSearch({ data, columns, searchText }) {\n const propPaths = columns.map(({ path }) => path).filter(column => !isNil(column));\n\n const regexSearch = this.createRegexSearch(searchText);\n\n return data.filter(item => {\n const itemWithResolvedValues = flow(\n x => pick(x, propPaths),\n x => mapValues(x, this.resolveFunction),\n x => omitBy(x, isNil)\n )(item);\n\n const cellValues = Object.values(itemWithResolvedValues);\n\n return cellValues.some(cellValue => regexSearch.test(cellValue.toString()));\n });\n }\n\n private doClientSideSorting({ data, columns }) {\n const actives: Column[] = columns.filter(({ sortOrder }: Column) => !!sortOrder);\n\n const sortingState = {\n paths: actives.map(({ path }) => path),\n orders: actives.map(({ sortOrder }) => sortOrder)\n };\n\n return orderBy(data, sortingState.paths, sortingState.orders);\n }\n\n private doClientSidePagination({ data, pagination }) {\n return pagination\n ? get(chunk(data, pagination.pageSize), pagination.currentPage - 1, [])\n : data;\n }\n\n private createRegexSearch(filterValue) {\n return RegExp(escapeRegExpPattern(filterValue), 'i');\n }\n\n private toObservable(x): Observable<any> {\n return isObservable(x) ? x : x instanceof Promise ? from(x) : of(x);\n }\n}\n\n/**\n *\n * @param string pattern Regex pattern.\n * @return string The escaped regex.\n * @see https://stackoverflow.com/a/3561711/2013891\n */\nfunction escapeRegExpPattern(pattern = '') {\n return pattern.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n","import { CdkHeaderCell } from '@angular/cdk/table';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IResultList, Paging } from '@c8y/client';\nimport { flow, get, parseInt as _parseInt, union, without } from 'lodash-es';\nimport { combineLatest, Subject } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n first,\n mergeMap,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators';\nimport { LoadMoreComponent } from '../common/load-more.component';\nimport { LoadMoreMode } from '../common/public-api';\nimport { gettext } from '../i18n/gettext';\nimport { CellRendererSpec } from './column/cell-renderer';\nimport { ColumnDirective } from './column/column.directive';\nimport { FilteringFormRendererSpec, FilteringModifier } from './column/filtering-form-renderer';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n Column,\n ColumnDataType,\n DataGrid,\n DataSourceStats,\n DisplayOptions,\n FilteringActionType,\n minColumnGridTrackSize,\n Pagination,\n ratiosByColumnTypes,\n Row,\n ServerSideDataCallback,\n SortOrder,\n SpecialColumnName\n} from './data-grid.model';\nimport { GridDataSource } from './grid-data-source';\n\n@Component({\n selector: 'c8y-data-grid',\n templateUrl: './data-grid.component.html'\n})\nexport class DataGridComponent implements DataGrid, OnChanges, AfterViewInit {\n @Input() title: string = gettext('Items');\n @Input() loadMoreItemsLabel: string = gettext('Load more items');\n @Input() loadingItemsLabel: string = gettext('Loading items…');\n @Input() noMatchingItemsLabel: string = gettext('No matching items.');\n\n columns: Column[];\n @Input('columns')\n set _columns(columns) {\n this.columns = columns || [];\n }\n\n dataSource = new GridDataSource();\n rows: Row[];\n @Input('rows')\n set _rows(rows) {\n this.rows = rows || [];\n }\n\n filteringLabelsParams = {\n filteredItemsCount: 0,\n allItemsCount: 0\n };\n\n pagination: Pagination;\n paginationLabelParams = {\n pageFirstItemIdx: 0,\n pageLastItemIdx: 0,\n itemsTotal: 0\n };\n readonly possiblePageSizes: number[] = [10, 15, 20, 30, 50];\n readonly minPossiblePageSize = Math.min(...this.possiblePageSizes);\n @Input('pagination')\n set _pagination(pagination) {\n this.pagination = pagination;\n const pageSize = get(this.pagination, 'pageSize');\n\n if (\n pageSize &&\n !this.possiblePageSizes.find(possiblePageSize => possiblePageSize === pageSize)\n ) {\n this.pagination = { ...this.pagination, pageSize: 10 };\n }\n }\n\n infiniteScroll: LoadMoreMode;\n @Input('infiniteScroll')\n set _infiniteScroll(infiniteScroll: LoadMoreMode) {\n this.infiniteScroll = infiniteScroll;\n }\n\n serverSideDataCallback: ServerSideDataCallback;\n @Input('serverSideDataCallback')\n set _serverSideDataCallback(serverSideDataCallback) {\n this.serverSideDataCallback = serverSideDataCallback;\n }\n\n selectable = false;\n @Input('selectable')\n set _selectable(selectable) {\n this.selectable = selectable;\n }\n\n selectionPrimaryKey = 'id';\n @Input('selectionPrimaryKey')\n set _selectionPrimaryKey(selectionPrimaryKey) {\n this.selectionPrimaryKey = selectionPrimaryKey;\n }\n\n displayOptions: DisplayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true\n };\n @Input('displayOptions')\n set _displayOptions(displayOptions) {\n this.displayOptions = { ...this.displayOptions, ...displayOptions };\n }\n\n actionControls: ActionControl[];\n @Input('actionControls')\n set _actionControls(actionControls) {\n this.actionControls = actionControls || [];\n }\n\n bulkActionControls: BulkActionControl[];\n @Input('bulkActionControls')\n set _bulkActionControls(bulkActionControls) {\n this.bulkActionControls = bulkActionControls || [];\n }\n\n @Output() rowMouseOver = new EventEmitter<object>();\n @Output() rowMouseLeave = new EventEmitter<object>();\n @Output() rowClick = new EventEmitter<object>();\n\n @Output() itemsSelect = new EventEmitter<string[]>();\n\n @ContentChildren(ColumnDirective) columnRenderers: QueryList<ColumnDirective>;\n\n @ViewChild('scroll', { static: true }) scrollContainer: ElementRef;\n\n @ViewChild('infiniteScrollContainer', { static: false, read: ViewContainerRef })\n infiniteScrollContainer: ViewContainerRef;\n\n loadMoreComponent: LoadMoreComponent;\n\n columnNames = [];\n\n styles = {\n tableCursor: 'auto',\n gridTemplateColumns: undefined,\n gridInfiniteScrollColumn: undefined\n };\n\n searchText$ = new EventEmitter<string>();\n searchText = '';\n filteringApplied = false;\n totalPagesCount = Infinity;\n\n selectedItemIds: string[] = [];\n currentPageSelectionState = {\n allSelected: false,\n allDeselected: true\n };\n\n builtInActionType = {\n Edit: BuiltInActionType.Edit,\n Delete: BuiltInActionType.Delete,\n Export: BuiltInActionType.Export\n };\n\n resizeHandleMouseDown$ = new EventEmitter<any>();\n resizeHandleContainerMouseMove$ = new EventEmitter<any>();\n resizeHandleContainerMouseUp$ = new EventEmitter<any>();\n private headerBeingResized: {\n columnName: string;\n el: HTMLElement;\n };\n @ViewChildren(CdkHeaderCell, { read: ElementRef }) private thRefs: QueryList<ElementRef>;\n private thEls;\n\n private recreateLoadMoreComponent: boolean;\n\n private unsubscribe$ = new Subject<any>();\n\n constructor(\n private sanitizer: DomSanitizer,\n private hostRef: ElementRef,\n private cd: ChangeDetectorRef,\n private cfr: ComponentFactoryResolver\n ) {}\n\n ngOnInit() {\n this.searchText$\n .pipe(\n takeUntil(this.unsubscribe$),\n debounceTime(300),\n distinctUntilChanged(),\n tap(searchText => {\n this.searchText = searchText;\n })\n )\n .subscribe(() => {\n this.reload();\n });\n\n if (this.selectable) {\n combineLatest(this.dataSource.data$, this.itemsSelect.asObservable())\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(([data]) => {\n const currentPageEmpty = data.length === 0;\n\n this.currentPageSelectionState = {\n allSelected: currentPageEmpty ? false : data.every(item => this.isItemSelected(item)),\n allDeselected: currentPageEmpty ? true : data.every(item => !this.isItemSelected(item))\n };\n });\n }\n this.dataSource.stats$.pipe(takeUntil(this.unsubscribe$)).subscribe(stats => {\n this.createLoadMoreComponent(stats);\n this.updateFilteringLabelsParams(stats);\n this.updatePaginationLabelParams(stats);\n });\n }\n\n ngOnChanges() {\n this.updateColumns();\n this.loadData();\n }\n\n ngAfterViewInit() {\n this.updateGridColumnsSize();\n this.thEls = this.thRefs.toArray().map(({ nativeElement }) => nativeElement);\n this.setupResizeHandle();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n trackByName(index, item) {\n return item.name;\n }\n\n resolveCellValue(row, path) {\n return flow([\n x => this.dataSource.resolveValue(x, path),\n this.dataSource.resolveFunction,\n this.dataSource.normalizeNil\n ])(row);\n }\n\n changeSortOrder(columnName) {\n const column = this.columns.find(({ name }) => name === columnName);\n\n if (column) {\n const { sortOrder } = column;\n\n if (!sortOrder) {\n this.updateSorting([columnName], 'asc');\n } else if (sortOrder === 'asc') {\n this.updateSorting([columnName], 'desc');\n } else {\n this.updateSorting([columnName], '');\n }\n }\n }\n\n updateSorting(columnNames: string[], sortOrder: SortOrder) {\n this.columns = this.columns.map(\n (column): Column => {\n if (columnNames.includes(column.name)) {\n return { ...column, sortOrder };\n }\n\n return column;\n }\n );\n\n this.reload();\n }\n\n applyFilter(columnName, dropdown, filteringModifier) {\n this.updateFiltering([columnName], {\n type: FilteringActionType.ApplyFilter,\n payload: { filteringModifier }\n });\n dropdown.hide();\n }\n\n resetFilter(columnName, dropdown) {\n this.updateFiltering([columnName], { type: FilteringActionType.ResetFilter });\n dropdown.hide();\n }\n\n clearFilters() {\n this.updateFiltering(this.columns.map(({ name }) => name), {\n type: FilteringActionType.ResetFilter\n });\n }\n\n updateFiltering(\n columnNames: string[],\n action: {\n type: FilteringActionType;\n payload?: { filteringModifier: FilteringModifier };\n }\n ) {\n this.columns = this.columns.map(column => {\n if (columnNames.includes(column.name)) {\n return {\n ...column,\n ...(action.type === FilteringActionType.ApplyFilter\n ? action.payload.filteringModifier\n : { filterPredicate: undefined, externalFilterQuery: undefined })\n };\n }\n\n return column;\n });\n\n this.updateFilteringApplied();\n this.reload();\n }\n\n updateFilteringApplied() {\n this.filteringApplied = this.columns.some(this.isColumnFilteringApplied);\n }\n\n isColumnFilteringApplied(column: Column): boolean {\n const { filterable, filterPredicate, externalFilterQuery } = column;\n\n return !!(filterable && (filterPredicate || externalFilterQuery));\n }\n\n updatePagination({ itemsPerPage, page }) {\n this.pagination = { ...this.pagination, pageSize: itemsPerPage, currentPage: page };\n this.loadData();\n }\n\n reload() {\n this.pagination = { ...this.pagination, currentPage: 1 };\n this.recreateLoadMoreComponent = true;\n this.loadData(true);\n this.scrollToTop();\n }\n\n loadNextPage(): Promise<IResultList<object>> {\n this.pagination = { ...this.pagination, currentPage: this.pagination.nextPage };\n\n this.loadData();\n\n return this.dataSource.resultList$\n .pipe(take(1)) // in order for `toPromise` to work, the observable needs to complete\n .toPromise()\n .then(result => {\n return {\n ...result,\n paging: {\n ...result.paging,\n next: this.loadNextPage.bind(this)\n }\n } as IResultList<object>;\n });\n }\n\n getCellRendererSpec({ value, row, columnName }): CellRendererSpec {\n return this._getCellRendererSpec({ type: 'CELL', value, row, columnName });\n }\n\n getHeaderCellRendererSpec({ value, columnName }): CellRendererSpec {\n return this._getCellRendererSpec({ type: 'HEADER', value, row: undefined, columnName });\n }\n\n getFilteringFormRendererSpec({ column, dropdown }): FilteringFormRendererSpec {\n return {\n renderer:\n get(this.getColumnRenderer(column), 'filteringFormRendererDef.template') ||\n column.filteringFormRendererComponent,\n context: {\n property: column,\n applyFilter: this.applyFilter.bind(this, column.name, dropdown),\n resetFilter: this.resetFilter.bind(this, column.name, dropdown)\n }\n };\n }\n\n setAllItemsSelected(selected) {\n this.dataSource.selection$\n .pipe(first())\n .subscribe(({ filteredDataIds }) => this.setItemsSelected(filteredDataIds, selected));\n }\n\n setAllItemsInCurrentPageSelected(selected) {\n this.dataSource.data$.pipe(first()).subscribe(data => this.setItemsSelected(data, selected));\n }\n\n setItemsSelected(items: any[], selected) {\n const itemIds = items.map((item: object | string) =>\n typeof item === 'object' ? item[this.selectionPrimaryKey] : item\n );\n\n this.selectedItemIds = selected\n ? union(this.selectedItemIds, itemIds)\n : without(this.selectedItemIds, ...itemIds);\n\n this.itemsSelect.emit(this.selectedItemIds);\n }\n\n isItemSelected(item) {\n return this.selectedItemIds.includes(item[this.selectionPrimaryKey]);\n }\n\n onColumnDrop({ previousIndex, currentIndex }) {\n const differentIndex = previousIndex !== currentIndex;\n\n if (differentIndex) {\n const column = this.columns.splice(previousIndex, 1);\n this.columns.splice(currentIndex, 0, column[0]);\n }\n\n this.updateColumnNames();\n this.updateGridColumnsSize();\n }\n\n updateGridColumnsSize() {\n this.styles = {\n ...this.styles,\n gridTemplateColumns: this.sanitizer.bypassSecurityTrustStyle(\n this.columns\n .filter(column => column.visible)\n .map(({ gridTrackSize }) => gridTrackSize)\n .join(' ')\n ),\n gridInfiniteScrollColumn: this.sanitizer.bypassSecurityTrustStyle(\n `1 / span ${this.columns.length}`\n )\n };\n }\n\n private updateColumns() {\n const specialColumn = {\n gridTrackSize: '42px',\n sortable: false,\n positionFixed: true\n };\n\n this.columns = [\n this.selectable ? { ...specialColumn, name: SpecialColumnName.Checkbox } : undefined,\n ...this.columns,\n this.actionControls.length > 0\n ? { ...specialColumn, name: SpecialColumnName.Actions }\n : undefined\n ]\n .filter(Boolean)\n .map(this.withColumnDefaults);\n\n this.updateColumnNames();\n this.updateGridColumnsSize();\n this.updateFilteringApplied();\n }\n\n private withColumnDefaults(column): Column {\n const dataType = column.dataType || ColumnDataType.TextShort;\n const { headerCSSClassName, cellCSSClassName } = column;\n\n return {\n visible: true,\n positionFixed: false,\n sortable: true,\n sortOrder: '',\n filterable: false,\n ...column,\n dataType,\n gridTrackSize:\n column.gridTrackSize ||\n `minmax(${minColumnGridTrackSize}px, ${ratiosByColumnTypes[dataType]}fr)`,\n headerCSSClassName:\n (typeof headerCSSClassName === 'string'\n ? headerCSSClassName.split(' ')\n : headerCSSClassName) || [],\n cellCSSClassName:\n (typeof cellCSSClassName === 'string' ? cellCSSClassName.split(' ') : cellCSSClassName) ||\n []\n };\n }\n\n private updateColumnNames() {\n this.columnNames = this.columns.map(({ name }) => name);\n }\n\n private setupResizeHandle() {\n const resizeHandleDrag$ = this.resizeHandleMouseDown$.pipe(\n takeUntil(this.unsubscribe$),\n tap(() => this.clearMouseHighlights()),\n mergeMap(({ event, targetColumnName }) => {\n this.columns = this.columns.map(column => {\n if (column.name === targetColumnName) {\n return {\n ...column,\n headerCSSClassName: union(column.headerCSSClassName, ['header--being-resized'])\n };\n }\n\n return column;\n });\n\n this.headerBeingResized = {\n columnName: targetColumnName,\n el: event.target.parentNode\n };\n\n this.styles = {\n ...this.styles,\n tableCursor: 'col-resize'\n };\n\n return this.resizeHandleContainerMouseMove$.pipe(\n tap(() => this.clearMouseHighlights()),\n takeUntil(this.resizeHandleContainerMouseUp$)\n );\n })\n );\n\n resizeHandleDrag$.subscribe(event => {\n requestAnimationFrame(() => {\n this.columns = this.columns.map((column, i) => {\n if (column.name === this.headerBeingResized.columnName) {\n const wrapper = this.hostRef.nativeElement;\n\n // Read wrapper's offset left relative to the document.\n const horizontalOffset = wrapper.getBoundingClientRect().left;\n\n // Adjust with the wrapper horizontal scroll position.\n const horizontalScrollOffset = wrapper.scrollLeft - horizontalOffset;\n\n // Calculate the desired width.\n const width =\n horizontalScrollOffset + event.clientX - (this.headerBeingResized.el.offsetLeft || 0);\n\n return {\n ...column,\n // Update the column object with the new size value, enforce our minimum size.\n gridTrackSize: `${Math.max(minColumnGridTrackSize, width)}px`\n };\n }\n\n // For the other headers which don't have a set width, fix it to their computed width.\n if (column.gridTrackSize.startsWith('minmax')) {\n return {\n ...column,\n // isn't fixed yet (it would be a px value)\n gridTrackSize: `${_parseInt(this.thEls[i].clientWidth)}px`\n };\n }\n\n return column;\n });\n\n /*\n * Update the column sizes.\n * Note: grid-template-columns sets the width for all columns in one value.\n */\n this.updateGridColumnsSize();\n });\n });\n\n this.resizeHandleContainerMouseUp$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n if (this.headerBeingResized) {\n this.columns = this.columns.map(column => {\n if (column.name === this.headerBeingResized.columnName) {\n return {\n ...column,\n headerCSSClassName: without(column.headerCSSClassName, 'header--being-resized')\n };\n }\n\n return column;\n });\n this.headerBeingResized = undefined;\n\n this.styles = {\n ...this.styles,\n tableCursor: 'auto'\n };\n }\n });\n }\n\n private clearMouseHighlights() {\n if (window.getSelection) {\n window.getSelection().removeAllRanges();\n }\n }\n\n private _getCellRendererSpec({ type, value, row, columnName }): CellRendererSpec {\n const column = this.columns.find(({ name }) => name === columnName);\n const columnRenderer = this.getColumnRenderer(column);\n const rendererTemplate = get(\n columnRenderer,\n `${type === 'HEADER' ? 'headerCellRendererDef' : 'cellRendererDef'}.template`\n );\n\n const { cellRendererComponent, headerCellRendererComponent } = column;\n const rendererComponent =\n type === 'HEADER' ? headerCellRendererComponent : cellRendererComponent;\n\n return {\n renderer: rendererTemplate || rendererComponent,\n context: {\n value,\n item: row,\n property: column\n }\n };\n }\n\n private getColumnRenderer(column): ColumnDirective {\n return this.columnRenderers.toArray().find(({ name }) => name === column.name);\n }\n\n private loadData(reload: boolean = false) {\n const {\n rows,\n columns,\n pagination,\n searchText,\n serverSideDataCallback,\n selectable,\n selectionPrimaryKey,\n infiniteScroll\n } = this;\n\n this.dataSource.loadData({\n rows,\n columns,\n pagination,\n searchText,\n serverSideDataCallback,\n selectable,\n selectionPrimaryKey,\n infiniteScroll,\n reload\n });\n }\n\n private updateFilteringLabelsParams(stats: DataSourceStats) {\n this.filteringLabelsParams = {\n filteredItemsCount: stats.filteredSize,\n allItemsCount: stats.size\n };\n }\n\n private updatePaginationLabelParams(stats: DataSourceStats) {\n this.pagination.nextPage = stats.nextPage;\n const pageFirstItemIdx = (stats.currentPage - 1) * stats.firstPageSize + 1;\n this.paginationLabelParams = {\n pageFirstItemIdx,\n pageLastItemIdx: pageFirstItemIdx + (stats.currentPageSize - 1),\n itemsTotal: stats.filteredSize\n };\n }\n\n private createLoadMoreComponent(stats: DataSourceStats) {\n if (\n this.infiniteScroll &&\n stats &&\n stats.nextPage &&\n (!this.loadMoreComponent || this.recreateLoadMoreComponent)\n ) {\n this.recreateLoadMoreComponent = false;\n this.infiniteScrollContainer.clear();\n const componentFactory: ComponentFactory<any> = this.cfr.resolveComponentFactory(\n LoadMoreComponent\n );\n const componentRef = this.infiniteScrollContainer.createComponent(componentFactory);\n const instance = componentRef.instance as LoadMoreComponent;\n instance.useIntersection = this.infiniteScroll === 'auto' || this.infiniteScroll === 'hidden';\n instance.hidden = this.infiniteScroll === 'hidden';\n instance.paging = {\n nextPage: stats.nextPage,\n next: this.loadNextPage.bind(this)\n } as Paging<any>;\n instance.loadNextLabel = this.loadMoreItemsLabel;\n instance.loadingLabel = this.loadingItemsLabel;\n this.loadMoreComponent = instance;\n } else if (this.loadMoreComponent && !stats.nextPage) {\n this.loadMoreComponent.paging = {\n nextPage: null\n } as Paging<any>;\n }\n }\n\n private scrollToTop() {\n if (this.infiniteScroll) {\n this.scrollContainer.nativeElement.scrollTop = 0;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n Injector,\n Input,\n OnChanges,\n TemplateRef,\n Type\n} from '@angular/core';\n\nimport { CellRendererContext, CellRendererSpec } from './cell-renderer';\n\n@Component({\n selector: 'c8y-cell-renderer',\n templateUrl: './cell-renderer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CellRendererComponent implements OnChanges, DoCheck {\n spec: CellRendererSpec;\n @Input('spec')\n set _spec(spec: CellRendererSpec) {\n this.spec = spec;\n }\n prevSpec: CellRendererSpec;\n\n rendererType: 'TEMPLATE' | 'COMPONENT';\n rendererInjector: Injector;\n\n constructor(private injector: Injector, private cd: ChangeDetectorRef) {}\n\n ngOnChanges() {\n if (!this.prevSpec) {\n this.prevSpec = this.spec;\n }\n\n const { renderer } = this.spec;\n\n if (renderer instanceof TemplateRef) {\n this.rendererType = 'TEMPLATE';\n } else if (renderer instanceof Type) {\n this.rendererType = 'COMPONENT';\n\n this.rendererInjector = Injector.create({\n providers: [{ provide: CellRendererContext, useValue: this.spec.context }],\n parent: this.injector\n });\n }\n }\n\n ngDoCheck() {\n if (!this.spec.context.value === this.prevSpec.context.value) {\n this.prevSpec = this.spec;\n this.cd.markForCheck();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n Injector,\n Input,\n OnChanges,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\nimport { FilteringFormRendererContext, FilteringFormRendererSpec } from './filtering-form-renderer';\n\n@Component({\n selector: 'c8y-filtering-form-renderer',\n templateUrl: './filtering-form-renderer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FilteringFormRendererComponent implements OnChanges {\n spec: FilteringFormRendererSpec;\n @Input('spec')\n set _spec(spec: FilteringFormRendererSpec) {\n this.spec = spec;\n }\n\n rendererType: 'TEMPLATE' | 'COMPONENT';\n rendererInjector: Injector;\n defaultRendererFilterText = '';\n\n constructor(private injector: Injector, private cd: ChangeDetectorRef) {}\n\n ngOnChanges() {\n const { renderer, context } = this.spec;\n\n if (renderer instanceof TemplateRef) {\n this.rendererType = 'TEMPLATE';\n } else if (renderer instanceof Type) {\n this.rendererType = 'COMPONENT';\n\n this.rendererInjector = Injector.create({\n providers: [{ provide: FilteringFormRendererContext, useValue: this.spec.context }],\n parent: this.injector\n });\n }\n\n const { filterPredicate } = context.property;\n if (typeof filterPredicate === 'string') {\n this.defaultRendererFilterText = filterPredicate;\n }\n }\n}\n","import { CdkTableModule } from '@angular/cdk/table';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport { CommonModule as C8YCommonModule } from '../common/common.module';\nimport { DataGridComponent } from './data-grid.component';\nimport { ColumnDirective } from './column/column.directive';\nimport { CellRendererDefDirective, HeaderCellRendererDefDirective } from './column/cell-renderer';\nimport { CellRendererComponent } from './column/cell-renderer.component';\nimport { FilteringFormRendererDefDirective } from './column/filtering-form-renderer';\nimport { FilteringFormRendererComponent } from './column/filtering-form-renderer.component';\n\n@NgModule({\n imports: [\n CommonModule,\n CdkTableModule,\n DragDropModule,\n FormsModule,\n ReactiveFormsModule,\n C8YCommonModule,\n BsDropdownModule.forRoot(),\n PopoverModule.forRoot(),\n PaginationModule.forRoot()\n ],\n declarations: [\n CellRendererDefDirective,\n HeaderCellRendererDefDirective,\n CellRendererComponent,\n FilteringFormRendererDefDirective,\n FilteringFormRendererComponent,\n ColumnDirective,\n DataGridComponent\n ],\n exports: [\n CellRendererDefDirective,\n HeaderCellRendererDefDirective,\n FilteringFormRendererDefDirective,\n ColumnDirective,\n DataGridComponent\n ],\n entryComponents: [DataGridComponent]\n})\nexport class DataGridModule {}\n","import { gettext } from '../i18n/gettext';\nimport { formatDate } from '@angular/common';\n// TODO remove when c8y-icon will works\n\nexport const deviceAvailabilityIconMap = {\n sendData: {\n AVAILABLE: {\n icon: 'long-arrow-right',\n class: 'statusOk'\n },\n UNAVAILABLE: {\n icon: 'long-arrow-right',\n class: 'statusNok'\n },\n UNKNOWN: {\n icon: 'long-arrow-right',\n class: 'statusUnknown'\n },\n NOT_MONITORED: {\n icon: 'long-arrow-right',\n class: 'statusUnknown'\n }\n },\n push: {\n CONNECTED: {\n icon: 'long-arrow-left',\n class: 'statusOk'\n },\n DISCONNECTED: {\n icon: 'long-arrow-left',\n class: 'statusUnknown'\n },\n UNKNOWN: {\n icon: 'long-arrow-left',\n class: 'statusUnknown'\n },\n MAINTENANCE: {\n icon: 'wrench',\n class: 'statusAlert'\n }\n },\n device: {\n MAINTENANCE: {\n icon: 'wrench',\n class: 'statusAlert'\n }\n }\n};\n\nexport const tooltips = {\n sendStatusConnected: (lastMessage, translateService) => {\n const date = formatDate(new Date(lastMessage), 'medium', translateService.currentLang);\n return translateService.instant(gettext('Device last request:\\n{{date}}'), { date });\n },\n sendStatusDisconnected: gettext('Connection not monitored'),\n pushStatusConnected: gettext('Connection to device established'),\n pushStatusDisconnected: gettext(\n 'Connection to device not established (not supported by device or no connectivity)'\n ),\n maintenance: gettext('Device is under maintenance')\n };\n\nexport enum PushStatusLabels {\n CONNECTED = gettext('Push connection: active'),\n DISCONNECTED = gettext('Push connection: inactive'),\n UNKNOWN = gettext('Push connection: inactive')\n}\n\nexport enum SendStatusLabels {\n AVAILABLE = gettext('Send connection: online'),\n NOT_MONITORED = gettext('Send connection: not monitored'),\n UNAVAILABLE = gettext('Send connection: offline'),\n UNKNOWN = gettext('Send connection status unknown'),\n MAINTENANCE = gettext('Device is under maintenance')\n}\n","import { Component, Input, AfterContentInit, OnChanges } from '@angular/core';\nimport {\n deviceAvailabilityIconMap,\n PushStatusLabels,\n SendStatusLabels,\n tooltips\n} from './device-availability';\nimport { TranslateService } from '@ngx-translate/core';\nimport { get } from 'lodash-es';\n\n@Component({\n selector: 'device-status',\n templateUrl: './device-status.component.html'\n})\nexport class DeviceStatusComponent implements AfterContentInit, OnChanges {\n @Input('mo') set node(value) {\n this._mo = value.mo || value;\n }\n\n private _mo;\n private requiredAvailability;\n private availabilityStatus;\n private pushStatus;\n private sendStatus;\n\n constructor(private translateService: TranslateService) {}\n\n get() {\n return this._mo;\n }\n\n ngOnChanges() {\n this.setStatusProperites();\n }\n\n ngAfterContentInit() {\n this.setStatusProperites();\n }\n\n setStatusProperites() {\n this.requiredAvailability = get(this._mo, 'c8y_RequiredAvailability');\n this.availabilityStatus = get(this._mo, 'c8y_Availability.status');\n\n this.pushStatus = get(this._mo, 'c8y_Connection.status') || 'UNKNOWN';\n this.sendStatus =\n this.availabilityStatus || (this.requiredAvailability ? 'UNKNOWN' : 'NOT_MONITORED');\n }\n\n status() {\n let statuses;\n\n if (this.availabilityStatus === 'MAINTENANCE' || this.pushStatus === 'MAINTENANCE') {\n statuses = this.getMaintenanceStatus();\n } else {\n statuses = this.getSendPushStatus();\n }\n\n return statuses;\n }\n\n getMaintenanceStatus() {\n return {\n sendStatus: false,\n pushStatus: false,\n maintenanceStatus: {\n icon: deviceAvailabilityIconMap.device.MAINTENANCE.icon,\n class: deviceAvailabilityIconMap.device.MAINTENANCE.class,\n tooltip: tooltips.maintenance\n }\n };\n }\n\n private getSendPushStatus() {\n return {\n sendStatus: {\n icon: deviceAvailabilityIconMap.sendData[this.sendStatus].icon,\n class: deviceAvailabilityIconMap.sendData[this.sendStatus].class,\n status: this.sendStatus,\n label: SendStatusLabels[this.sendStatus],\n tooltip: this.getSendStatusTooltip(this._mo)\n },\n pushStatus: {\n icon: deviceAvailabilityIconMap.push[this.pushStatus].icon,\n class: deviceAvailabilityIconMap.push[this.pushStatus].class,\n status: this.pushStatus,\n label: PushStatusLabels[this.pushStatus],\n tooltip: this.getPushStatusTooltip(this.pushStatus === 'CONNECTED')\n },\n maintenanceStatus: false\n };\n }\n\n private getSendStatusTooltip(device) {\n const availability = device && device.c8y_Availability;\n const lastMessage = availability && availability.lastMessage;\n if (lastMessage) {\n return tooltips.sendStatusConnected(lastMessage, this.translateService);\n }\n return tooltips.sendStatusDisconnected;\n }\n\n private getPushStatusTooltip(isActive) {\n return isActive ? tooltips.pushStatusConnected : tooltips.pushStatusDisconnected;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DeviceStatusComponent } from './device-status.component';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\n/**\n * The angular module definition for a device-status.\n * @exports DeviceStatusComponent\n */\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule\n ],\n exports: [\n DeviceStatusComponent\n ],\n declarations: [\n DeviceStatusComponent\n ]\n})\nexport class DeviceStatusModule { }\n","import {\n Component,\n ViewChild,\n ElementRef,\n Input,\n OnInit,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { some, get, map } from 'lodash-es';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-drop-area',\n templateUrl: './drop-area.component.html'\n})\nexport class DropAreaComponent implements OnInit {\n @Input() title = gettext('Upload file');\n @Input() message = gettext('Drop file here');\n @Input() icon = 'plus-square';\n @Input() loadingMessage = gettext('Uploading…');\n /** Affects displaying both the drop zone and the list of dropped files. */\n @Input() alwaysShow = false;\n @Input() clickToOpen = true;\n @Input() loading = false;\n @Input() progress = -1; // -1 = spinner\n @Output() dropped: EventEmitter<DroppedFile[]> = new EventEmitter();\n @Input() maxAllowedFiles = Infinity;\n @Input() files: FileList;\n isOver: boolean = false;\n errors: boolean = false;\n errorMessage: string;\n filesNameString: string;\n\n @ViewChild('area', { static: true }) area: ElementRef;\n @ViewChild('zone', { static: false }) zone: ElementRef;\n @ViewChild('picker', { static: false }) picker: ElementRef;\n\n ngOnInit() {\n this.alwaysShow = this.alwaysShow || this.area.nativeElement.children.length === 0;\n if (this.files && this.files.length > 0) {\n this.onFilesSelected(this.files);\n }\n }\n\n toggle($event?) {\n this.zone.nativeElement.style.height = this.area.nativeElement.offsetHeight + 'px';\n this.onOver();\n }\n\n showPicker($event?) {\n this.preventDefault($event);\n this.picker.nativeElement.value = '';\n this.picker.nativeElement.click();\n }\n\n onOver() {\n if (!this.isOver) {\n this.isOver = true;\n document.addEventListener('dragover', this.preventDefault);\n document.addEventListener('drop', this.preventDefault);\n }\n }\n\n onPick($event) {\n this.errors = false;\n this.preventDefault($event);\n this.onFilesSelected($event.target.files);\n }\n\n onDrop($event) {\n this.preventDefault($event);\n this.onFilesSelected($event.dataTransfer.files);\n this.stopDragging();\n }\n\n onFilesSelected(files: FileList) {\n this.files = files;\n this.filesNameString = this.getFilesNamesAsString(files);\n this.errors = false;\n if (!this.isFilesArrayEmpty() && !this.isTooManyFiles()) {\n if (this.hasEmptyFiles()) {\n this.errors = true;\n this.errorMessage = gettext('File must not be empty, select another one.');\n } else {\n this.dropped.emit(this.compose(files));\n }\n } else {\n this.errors = true;\n this.errorMessage = gettext('Too many files selected.');\n }\n }\n\n getFilesNamesAsString(files: FileList): string {\n return map(files, ({ name }) => name).join(', ');\n }\n\n isFilesArrayEmpty() {\n return get(this, 'files.length', 0) === 0;\n }\n\n isTooManyFiles() {\n return get(this, 'files.length', 0) > this.maxAllowedFiles;\n }\n\n hasEmptyFiles() {\n let result = true;\n if (!this.isFilesArrayEmpty()) {\n result = this.isAnyFileEmpty();\n }\n return result;\n }\n\n isAnyFileEmpty(): boolean {\n return some(Array.from(this.files), ['size', 0]);\n }\n\n shouldShowFilesList() {\n return (\n this.alwaysShow &&\n !this.isFilesArrayEmpty() &&\n !this.hasEmptyFiles() &&\n !this.isTooManyFiles()\n );\n }\n\n stopDragging() {\n document.removeEventListener('dragover', this.preventDefault);\n document.removeEventListener('drop', this.preventDefault);\n this.isOver = false;\n }\n\n onDelete() {\n delete this.files;\n delete this.filesNameString;\n this.clearErrors();\n this.dropped.emit(undefined);\n }\n\n clearErrors() {\n delete this.errorMessage;\n this.errors = false;\n }\n\n private preventDefault($event?) {\n if ($event) {\n $event.preventDefault();\n }\n }\n\n private compose(files: FileList) {\n return Array.from(files).map(file => ({\n file,\n readAsJson: async () => JSON.parse(await this.read(file, ReadAsType.TEXT)),\n readAsText: async () => this.read(file, ReadAsType.TEXT),\n readAsArrayBuffer: async () => this.read(file, ReadAsType.ARRAY_BUFFER),\n readAsBinaryString: async () => this.read(file, ReadAsType.BINARY_STRING),\n readAsDataURL: async () => this.read(file, ReadAsType.DATA_URL)\n }));\n }\n\n private async read(file, type: ReadAsType): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n switch (type) {\n case ReadAsType.TEXT: {\n reader.readAsText(file);\n break;\n }\n case ReadAsType.ARRAY_BUFFER: {\n reader.readAsArrayBuffer(file);\n break;\n }\n case ReadAsType.BINARY_STRING: {\n reader.readAsBinaryString(file);\n break;\n }\n case ReadAsType.DATA_URL: {\n reader.readAsDataURL(file);\n break;\n }\n }\n reader.onload = () => this.onLoad(reader, resolve, reject);\n });\n }\n\n private onLoad(reader, resolve, reject) {\n if (reader.readyState !== 2) {\n return;\n }\n if (reader.error) {\n reject(reader.error);\n }\n resolve(reader.result);\n }\n}\n\nexport interface DroppedFile {\n file: File;\n readAsText();\n readAsArrayBuffer();\n readAsBinaryString();\n readAsDataURL();\n readAsJson();\n}\n\nenum ReadAsType {\n TEXT,\n DATA_URL,\n ARRAY_BUFFER,\n BINARY_STRING\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { DropAreaComponent } from './drop-area.component';\n\n/**\n * The angular module definition for a drop-area.\n * @exports DropAreaComponent\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DropAreaComponent,\n ],\n declarations: [\n DropAreaComponent,\n ]\n})\nexport class DropAreaModule { }\n","import { Component, Output, Input, EventEmitter, ViewChild, OnInit } from '@angular/core';\nimport { DroppedFile, DropAreaComponent } from '../drop-area/drop-area.component';\nimport { PickedFiles } from './file-picker.model';\n\n@Component({\n selector: 'c8y-file-picker',\n templateUrl: './file-picker.component.html'\n})\nexport class FilePickerComponent implements OnInit {\n @ViewChild(DropAreaComponent, {static: true}) dropArea: DropAreaComponent;\n @Output() onFilesPicked: EventEmitter<PickedFiles> = new EventEmitter();\n @Input() maxAllowedFiles = Infinity;\n @Input() uploadChoice: 'uploadBinary' | 'uploadUrl' = 'uploadBinary';\n @Input() fileUrl: string;\n @Input() fileBinary: DroppedFile;\n\n droppedFiles: DroppedFile[];\n private fileToSave: PickedFiles;\n\n ngOnInit() {\n if (this.fileBinary) {\n this.droppedFiles = [this.fileBinary];\n }\n }\n\n onFileDropped(droppedFiles: DroppedFile[]) {\n this.onFilesPicked.emit({\n droppedFiles\n });\n }\n\n clearInputFromUrl() {\n delete this.fileUrl;\n this.fileToSave = {\n url: undefined\n };\n this.onFilesPicked.emit(this.fileToSave);\n }\n\n clearSelectedFiles() {\n this.dropArea.onDelete();\n this.fileToSave = {\n droppedFiles: undefined\n };\n this.onFilesPicked.emit(this.fileToSave);\n }\n\n onFileUrlChange(urlStr) {\n this.fileToSave = {\n url: urlStr\n };\n this.onFilesPicked.emit(this.fileToSave);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule as C8yCommonModule } from '../common/common.module';\nimport { FilePickerComponent } from './file-picker.component';\nimport { DropAreaModule } from '../drop-area/drop-area.module';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule as C8yFormsModule } from '../forms/public-api';\n\n/**\n * The angular module definition for a drop-area.\n * @exports FilePickerComponent\n */\n@NgModule({\n imports: [\n C8yFormsModule,\n CommonModule,\n DropAreaModule,\n FormsModule,\n C8yCommonModule\n ],\n exports: [\n FilePickerComponent,\n ],\n declarations: [\n FilePickerComponent,\n ]\n})\nexport class FilePickerModule { }\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-group',\n templateUrl: './list-group.component.html',\n host: {\n class: 'c8y-list__group'\n }\n})\nexport class ListGroupComponent {\n\n}\n","import { Component, Output, Input, ViewChild, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-action, c8y-li-action',\n templateUrl: './list-item-action.component.html'\n})\nexport class ListItemActionComponent {\n @ViewChild('template', { static: false })\n template: any;\n @Input()\n label: string;\n @Input()\n icon: string;\n @Output()\n click = new EventEmitter<any>();\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-collapse, c8y-li-collapse',\n templateUrl: './list-item-collapse.component.html'\n})\nexport class ListItemCollapseComponent {\n\n @Input()\n item: any;\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-footer, c8y-li-footer',\n templateUrl: './list-item-footer.component.html'\n})\nexport class ListItemFooterComponent {\n\n @Input()\n footer: string;\n\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n ContentChildren,\n HostBinding,\n Input,\n Output,\n EventEmitter,\n QueryList\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, filter, tap, delay } from 'rxjs/operators';\nimport { ListItemActionComponent } from './list-item-action.component';\nimport { ListItemCollapseComponent } from './list-item-collapse.component';\nimport { ListItemFooterComponent } from './list-item-footer.component';\n\n@Component({\n selector: 'c8y-list-item, c8y-li',\n templateUrl: './list-item.component.html',\n host: {\n class: 'c8y-list__item'\n }\n})\nexport class ListItemComponent {\n @Input()\n @HostBinding('class.active')\n active: boolean = false;\n @Input()\n collapsed: boolean = true;\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n @ContentChild(ListItemFooterComponent, { static: false })\n itemFooter: ListItemFooterComponent;\n @ContentChildren(ListItemActionComponent)\n itemActions: QueryList<ListItemActionComponent>;\n @ContentChild(ListItemCollapseComponent, { static: false })\n itemCollapse: ListItemCollapseComponent;\n\n showFooter: boolean = false;\n showActions: boolean = false;\n showCollapse: boolean = false;\n actions: ListItemActionComponent[];\n dropdownUp: boolean = false;\n\n private pulse$: Subject<boolean> = new Subject<boolean>();\n private destroy$: Subject<any> = new Subject();\n private readonly ACTION_ITEM_HEIGHT = 40;\n\n constructor(public element: ElementRef) {}\n\n ngOnInit(): void {\n this.pulse$.pipe(filter(apply => !!apply),\n tap(() => this.element.nativeElement.classList.remove('c8y-list--pulse')),\n delay(100),\n tap(() => this.element.nativeElement.classList.add('c8y-list--pulse')),\n takeUntil(this.destroy$)).subscribe();\n }\n\n ngAfterContentChecked(): void {\n this.actions = this.itemActions.toArray();\n this.showFooter = this.itemFooter != null;\n this.showActions = this.itemActions.length > 0;\n this.showCollapse = this.itemCollapse != null;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * A helper function which helps to determine if the dropdown\n * should toggle up.\n */\n showDropdownUp() {\n const rect = this.element.nativeElement.getBoundingClientRect();\n this.dropdownUp =\n rect.bottom + this.itemActions.length * this.ACTION_ITEM_HEIGHT > window.innerHeight;\n }\n\n /**\n * Toggles the collapse state and emits this state as\n * collapsedChange output as boolean.\n */\n toggleCollapsed() {\n this.collapsed = !this.collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n /**\n * Highlights the list-item. This method should be used to show the\n * user that something within this item was changed.\n */\n pulse() {\n this.pulse$.next(true);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-icon, c8y-li-icon',\n templateUrl: './list-item-icon.component.html',\n host: {\n class: 'c8y-list__item__icon'\n }\n})\nexport class ListItemIconComponent {\n @Input()\n icon: string;\n\n @Input()\n status?: 'statusOk' | 'statusUnknown' | 'statusAlert' | 'statusNok' | 'status critical' | 'status warning' | 'status minor' | 'status major';\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-body, c8y-li-body',\n templateUrl: './list-item-body.component.html'\n})\nexport class ListItemBodyComponent {\n\n @Input()\n body: string;\n\n}\n","import { Output, EventEmitter, Component, Input, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-checkbox, c8y-li-checkbox',\n templateUrl: './list-item-checkbox.component.html',\n host: {\n class: 'c8y-list__item__check'\n }\n})\nexport class ListItemCheckboxComponent {\n @Input()\n selected = false;\n @Output()\n onSelect = new EventEmitter<boolean>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selected && !changes.selected.firstChange) {\n this.onSelect.emit(changes.selected.currentValue);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-radio, c8y-li-radio',\n templateUrl: './list-item-radio.component.html',\n host: {\n class: 'c8y-list__item__radio'\n }\n})\nexport class ListItemRadioComponent {\n @ViewChild('radio', { static: true }) radio: ElementRef;\n @Input()\n selected = false;\n @Input()\n name = 'list_item_radio';\n @Input()\n disabled: boolean = false;\n @Output()\n onSelect = new EventEmitter<boolean>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selected && !changes.selected.firstChange) {\n this.onSelect.emit(changes.selected.currentValue);\n }\n }\n\n reset() {\n this.radio.nativeElement.checked = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ListGroupComponent } from './list-group.component';\nimport { ListItemComponent } from './list-item.component';\nimport { CommonModule } from '../common/common.module';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { ListItemIconComponent } from './list-item-icon.component';\nimport { ListItemBodyComponent } from './list-item-body.component';\nimport { ListItemFooterComponent } from './list-item-footer.component';\nimport { ListItemActionComponent } from './list-item-action.component';\nimport { ListItemCollapseComponent } from './list-item-collapse.component';\nimport { ListItemCheckboxComponent } from './list-item-checkbox.component';\nimport { ListItemRadioComponent } from './list-item-radio.component';\n\n@NgModule({\n imports: [\n CommonModule,\n CollapseModule.forRoot(),\n BsDropdownModule\n ],\n declarations: [\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListItemFooterComponent,\n ListItemActionComponent,\n ListItemCollapseComponent,\n ListItemCheckboxComponent,\n ListItemRadioComponent\n ],\n exports: [\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListItemFooterComponent,\n ListItemActionComponent,\n ListItemCollapseComponent,\n ListItemCheckboxComponent,\n ListItemRadioComponent\n ]\n})\nexport class ListGroupModule {}\n","import { Component, Input } from '@angular/core';\nimport { RealtimeService } from './realtime.service';\n\n@Component({\n selector: 'c8y-realtime-btn',\n templateUrl: './realtime-button.component.html'\n})\nexport class RealtimeButtonComponent {\n @Input()\n service: RealtimeService<any>;\n\n get active(): boolean {\n return !!this.service && this.service.active;\n }\n\n toggle() {\n if (this.service) {\n this.active ? this.service.stop() : this.service.start();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { RealtimeButtonComponent } from './realtime-button.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [RealtimeButtonComponent],\n exports: [RealtimeButtonComponent]\n})\nexport class RealtimeModule {}\n","import { IIdentified } from '@c8y/client';\n\nexport interface ISelectModalObject {\n groupId: string | number;\n body: ISelectModalBodyPart[];\n options: ISelectModalOption[];\n additionalInformation?: ISelectModalBodyPart;\n}\n\nexport interface ISelectModalOption {\n body: ISelectModalBodyPart[];\n obj: IIdentified;\n selected?: boolean;\n}\n\nexport interface ISelectModalBodyPart {\n value: string;\n class?: string;\n}\n\nexport interface ModalLabels {\n ok?: string;\n cancel?: string;\n}\n\nexport enum ModalSelectionMode {\n SINGLE = 'single',\n MULTI = 'multi'\n}\n","import { Component, Input, EventEmitter, SimpleChanges, Output } from '@angular/core';\nimport { gettext } from '../i18n/gettext';\nimport { BsModalRef } from 'ngx-bootstrap';\nimport {\n ISelectModalObject,\n ModalSelectionMode,\n ModalLabels\n} from './select-modal.model';\nimport { assign } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { IIdentified } from '@c8y/client';\n\ninterface ISelectModalInternalObject extends ISelectModalObject {\n selectedId: string | number;\n}\n\n@Component({\n selector: 'c8y-select-modal',\n templateUrl: './select-modal.component.html'\n})\nexport class SelectModalComponent {\n @Input() icon: string;\n @Input() title: string;\n @Input() subTitle: string = gettext('Select from the list of items matching the device type');\n @Input() items: ISelectModalInternalObject[];\n @Input() mode: ModalSelectionMode = ModalSelectionMode.MULTI;\n @Input() disableSelected: boolean = true;\n @Input() showFilter: boolean = true;\n @Input() areMoreEntries: boolean = false;\n @Input() set labels(labels: ModalLabels) {\n const { ok = this.labels.ok, cancel = this.labels.cancel } = labels || {};\n this._labels = { ok, cancel };\n }\n get labels(): ModalLabels {\n return this._labels;\n }\n @Output() result: EventEmitter<IIdentified | IIdentified[]> = new EventEmitter<\n IIdentified | IIdentified[]\n >();\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n selected = false;\n filterTerm: string = '';\n listItems = [];\n private debouncer: Subject<string> = new Subject<string>();\n private _labels: ModalLabels = { ok: gettext('Confirm'), cancel: gettext('Cancel') };\n\n constructor(private bsModalRef: BsModalRef) {\n this.debouncer.pipe(debounceTime(500)).subscribe(value => {\n this.search.emit(value);\n });\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.items && changes.items.currentValue) {\n const itemsPromise = changes.items.currentValue.map(async item => {\n item.options = await item.options;\n const selected = item.options.find(option => option.selected);\n if (selected) {\n item.selectedId = selected.obj.id;\n if (this.disableSelected) {\n item.options.map(option => assign(option, { disabled: true }));\n }\n }\n return item;\n });\n this.listItems = await Promise.all(itemsPromise);\n }\n }\n\n updatePipe(filterTerm: string) {\n this.debouncer.next(filterTerm);\n this.filterTerm = filterTerm;\n }\n\n updateChoice({ item, id }) {\n if (this.mode === 'single') {\n this.listItems.map(value => (value.selectedId = undefined));\n }\n item.selectedId = id;\n this.selected = true;\n }\n\n dismiss() {\n this.bsModalRef.hide();\n }\n\n select() {\n const outputArray = this.getOutput();\n const output = this.mode === 'single' ? outputArray[0] : outputArray;\n this.result.emit(output);\n this.bsModalRef.hide();\n }\n\n ngOnDestroy() {\n this.debouncer.complete();\n this.result.complete();\n this.search.complete();\n }\n\n private getOutput(): IIdentified | IIdentified[] {\n return this.listItems\n .filter(item => item.selectedId)\n .map(item => item.options.find(option => item.selectedId === option.obj.id))\n .map(selectedOption => selectedOption.obj);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ISelectModalObject } from './select-modal.model';\n\n@Pipe({\n name: 'selectModalFilterPipe',\n})\nexport class SelectModalFilterPipe implements PipeTransform {\n transform(items: ISelectModalObject[], filterTerm: string): any {\n return filterTerm.trim().length === 0\n ? items\n : items.filter((item: ISelectModalObject) => {\n const allValues = this.extractValues(item);\n const filteredValues = allValues.filter((value) => this.filterContainString(value, filterTerm));\n return filteredValues.length > 0;\n });\n }\n\n private filterContainString(value: string, filterTerm: string) {\n const term = filterTerm.toLowerCase().trim();\n return value && value.toLowerCase().indexOf(term) > -1;\n }\n\n private extractValues(item) {\n let values = [];\n if ( item.value ) {\n values.push(item.value);\n }\n Object.keys(item).forEach((key) => {\n if (Array.isArray(item[key])) {\n item[key].forEach( obj => values.concat(this.extractValues(obj)) );\n }\n if (item[key] instanceof Object) {\n values = values.concat(this.extractValues(item[key]));\n }\n });\n return values;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { ListGroupModule } from '../list-group/list-group.module';\nimport { FormsModule } from '../forms/forms.module';\nimport { SelectModalComponent } from './select-modal.component';\nimport { SelectModalFilterPipe } from './select-modal-filter.pipe';\nimport { SearchModule } from '../search/search.module';\n\n@NgModule({\n imports: [\n BsDropdownModule.forRoot(),\n CommonModule,\n ListGroupModule,\n SearchModule,\n FormsModule\n ],\n exports: [\n SelectModalComponent,\n SelectModalFilterPipe\n ],\n declarations: [\n SelectModalComponent,\n SelectModalFilterPipe\n ]\n})\nexport class SelectModalModule { }\n","import { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { gettext } from '../i18n/gettext';\nimport {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nexport interface Item {\n name: string;\n _selected?: boolean;\n [key: string]: any;\n}\n\nexport type selectedFunction = (item: Item) => boolean;\nexport type selectedLabelFunction = (items: Item[]) => string;\n\n@Component({\n selector: 'c8y-select',\n templateUrl: './select.component.html'\n})\nexport class SelectComponent implements OnChanges {\n @Input() placeholder: string = gettext('Select item');\n @Input() selectedLabel: string | selectedLabelFunction;\n @Input() applyLabel: string = gettext('Apply');\n @Input() items: Item[];\n @Input() selected: Item[] | selectedFunction;\n @Output() onChange: EventEmitter<Item[]> = new EventEmitter();\n @ViewChild(BsDropdownDirective, { static: false }) dropdown: BsDropdownDirective;\n textFilter = '';\n labelText = '';\n isOpen = false;\n filteredItems: Item[] = [];\n searchFilter = null;\n readonly sizeToShowFilter: number = 5;\n labelsForSelectAll: any = {\n all: gettext('All'),\n allFiltered: gettext('All filtered')\n };\n showAllLabel = false;\n private itemsSelected: Set<Item> = new Set();\n private stopClicks = false;\n\n @HostListener('click', ['$event'])\n preventClick(evt) {\n if (this.stopClicks) {\n evt.stopPropagation();\n }\n this.stopClicks = this.isOpen;\n }\n\n isOpenChange(isOpen: boolean) {\n this.isOpen = isOpen;\n if (isOpen) {\n this.updateSelected();\n this.searchFilter = null;\n } else {\n this.stopClicks = false;\n }\n }\n\n outterSelected(item: Item) {\n const { selected } = this;\n let isSelected: any = () => false;\n if (typeof selected === 'function') {\n isSelected = selected;\n } else if (Array.isArray(selected)) {\n isSelected = (i: Item) => selected.indexOf(i) > -1;\n }\n return isSelected(item);\n }\n\n isSelected(item: Item) {\n return this.itemsSelected.has(item);\n }\n\n isAllItemsSelected() {\n return this.itemsSelected.size === this.items.length;\n }\n\n isAllFilteredSelected() {\n return this.itemsSelected.size === this.filteredItems.length;\n }\n\n applyChanges() {\n const selected = Array.from(this.itemsSelected.values());\n this.onChange.emit(selected);\n this.dropdown.hide();\n }\n\n selectAll(checked: boolean) {\n this.filteredItems.forEach(item => this.onChangeItem(checked, item));\n }\n\n onChangeItem(checked: boolean, item: Item) {\n if (checked) {\n this.itemsSelected.add(item);\n } else {\n this.itemsSelected.delete(item);\n }\n }\n\n updateFiltered(term: string) {\n if (term) {\n const search = new RegExp(term, 'i');\n this.filteredItems = this.items.filter(({ name }) => search.test(name));\n } else {\n this.filteredItems = this.items;\n }\n }\n\n getSelectAllToggleStatus() {\n const label = this.getLabel();\n const checked = this.isAllSelected();\n const indeterminate = !checked && this.itemsSelected.size > 0;\n\n return { label, checked, indeterminate};\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isOpen) {\n return;\n }\n if (changes.items || changes.selected || changes.applyLabel) {\n this.updateSelected();\n this.updateLabel();\n this.showAllLabel = this.isAllItemsSelected();\n }\n }\n\n private updateLabel() {\n const outterSelected = this.items.filter(i => this.outterSelected(i));\n if (typeof this.selectedLabel === 'string') {\n this.labelText = this.selectedLabel;\n } else if (typeof this.selectedLabel === 'function') {\n this.labelText = this.selectedLabel(outterSelected);\n } else {\n this.labelText = outterSelected.map(({ name }) => name).join(', ');\n }\n }\n\n private updateSelected() {\n const { itemsSelected, items } = this;\n itemsSelected.clear();\n items.forEach(item => {\n if (this.outterSelected(item)) {\n itemsSelected.add(item);\n }\n });\n this.filteredItems = items;\n }\n\n private isAllSelected() {\n if (this.getLabel() === this.labelsForSelectAll.allFiltered) {\n return this.isAllFilteredSelected();\n } else {\n return this.isAllItemsSelected();\n }\n }\n\n private getLabel() {\n return this.searchFilter ? this.labelsForSelectAll.allFiltered : this.labelsForSelectAll.all;\n }\n}\n","import {\n ContentChildren,\n Input,\n Output,\n EventEmitter,\n Component,\n ViewChild,\n ElementRef,\n QueryList,\n forwardRef\n} from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, map, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { IIdentified } from '@c8y/client';\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { ListItemComponent } from '../list-group/list-item.component';\nimport { findIndex, get, set } from 'lodash-es';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'c8y-typeahead',\n templateUrl: './typeahead.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => TypeaheadComponent)\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TypeaheadComponent),\n multi: true\n }\n ]\n})\nexport class TypeaheadComponent implements ControlValueAccessor, Validator {\n @ViewChild('searchControl', { static: false }) searchControl: ElementRef;\n @ViewChild('dropdown', { static: false }) dropdown: BsDropdownDirective;\n @ContentChildren(ListItemComponent) list: QueryList<ListItemComponent>;\n\n @Input()\n required: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n allowFreeEntries: boolean = true;\n\n @Input()\n placeholder: string;\n\n @Input()\n displayProperty: string = 'name';\n\n @Input()\n name: string = this.displayProperty;\n\n @Input()\n selected: IIdentified = {\n id: null\n };\n\n @Output()\n selectedChange = new EventEmitter<IIdentified>();\n\n @Output()\n onSearch = new EventEmitter<string>();\n\n private subscription: Subscription;\n private onChange: (name) => void;\n private onTouched: () => void;\n\n private readonly KEYCODE_UP = 38;\n private readonly KEYCODE_DOWN = 40;\n private readonly KEYCODE_TAB = 9;\n private readonly KEYCODE_ENTER = 13;\n private readonly KEYCODE_ESC = 27;\n\n writeValue(value) {\n this.selected = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n doBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n getDisplayProperty() {\n return get(this.selected, this.displayProperty, '');\n }\n\n onShown() {\n this.searchControl.nativeElement.focus();\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n this.subscription = fromEvent(this.searchControl.nativeElement, 'keydown')\n .pipe(\n map((e: any) => this.handleKeyboard(e)),\n filter((e: any) => e),\n debounceTime(200),\n map((e: any) => e.target.value),\n distinctUntilChanged()\n )\n .subscribe(value => {\n this.selected = {\n id: null\n };\n set(this.selected, this.displayProperty, value || '');\n\n this.onChange(this.selected);\n this.selectedChange.emit(this.selected);\n this.onSearch.emit(value);\n });\n }\n\n handleKeyboard(event): void {\n const keyCode = event.keyCode;\n if (\n [this.KEYCODE_ENTER, this.KEYCODE_DOWN, this.KEYCODE_TAB, this.KEYCODE_UP].includes(keyCode)\n ) {\n const items = this.list.toArray();\n const index = findIndex(items, item => item.active);\n if (keyCode === this.KEYCODE_ENTER || keyCode === this.KEYCODE_TAB) {\n if (index > -1) {\n event.preventDefault();\n items[index].element.nativeElement.click();\n }\n this.dropdown.hide();\n this.searchControl.nativeElement.blur();\n } else {\n this.dropdown.show();\n const upOrDown = keyCode === this.KEYCODE_DOWN ? 1 : -1;\n if (index > -1) {\n items[index].active = false;\n }\n if (items[index + upOrDown]) {\n items[index + upOrDown].active = true;\n }\n }\n return;\n } else if (keyCode === this.KEYCODE_ESC) {\n event.stopPropagation();\n this.dropdown.hide();\n this.searchControl.nativeElement.blur();\n return;\n } else {\n this.dropdown.show();\n }\n return event;\n }\n\n validate(ctrl: AbstractControl): { [key: string]: any } {\n if (this.required && !this.getDisplayProperty()) {\n return { required: true };\n }\n\n if (!this.allowFreeEntries && this.selected && this.selected.id === null) {\n return { notExisting: true };\n }\n\n return null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { SelectComponent } from './select.component';\nimport { CommonModule } from '../common/common.module';\nimport { TypeaheadComponent } from './typeahead.component';\nimport { ListGroupModule } from '../list-group/list-group.module';\nimport { FormsModule } from '../forms/forms.module';\n\n/**\n * The angular module definition for a select.\n * @exports SelectComponent\n */\n@NgModule({\n imports: [\n BsDropdownModule.forRoot(),\n CommonModule,\n ListGroupModule,\n FormsModule\n ],\n exports: [\n SelectComponent,\n TypeaheadComponent\n ],\n declarations: [\n SelectComponent,\n TypeaheadComponent\n ]\n})\nexport class SelectModule { }\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { StepState } from '@angular/cdk/stepper';\n\n/**\n * Template to be used to override the icons inside the step header.\n */\n@Directive({\n selector: 'ng-template[c8yStepperIcon]'\n})\nexport class C8yStepperIcon {\n /** Name of the icon to be overridden. */\n @Input('c8yStepperIcon') name: StepState;\n\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import {\n Component,\n TemplateRef,\n Input,\n Output,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n EventEmitter\n} from '@angular/core';\nimport { CdkStepper, StepState, STEP_STATE } from '@angular/cdk/stepper';\nimport { C8yStepperIcon } from './stepper-icon.directive';\nimport { Subject, Subscription } from 'rxjs';\n\n/**\n * C8yStepper extends the CdkStepper. You can use cdk based functionality and inputs.\n * Additional to that you are able to modify the behavior and also the look and feel when\n * using the C8yStepper.\n *\n * The C8yStepper is used to present any step-based process to the user.\n * A stepper, C8yStepper and/or CdkStepper is the parent of cdk-steps.\n * Each cdk-step represents one step in the whole process that you want to provide to the user.\n *\n * The C8yStepper will create, based on the given cdk-steps, a kind of stepper-progress which looks like this:\n * (1)---(2)---(3)---(n)\n * The stepper will handle the state of each step and provides styles for active steps, done-steps or in edit-mode.\n * You are able to override icons for each step in the stepper-progress with a template. You are also able to activate\n * default-icons for states like 'edit' and 'done'.\n *\n * To force users through every provided step, set the stepper to 'linear'.\n * This will disable the possibility to move for example from step one to step three.\n *\n * Whenever it comes to validation try to use formGroups. It is possible to\n * assign a formGroup to a cdk-step input called [stepControl], which automatically respects the\n * validation-rules that you created for this formGroup. If fields are required but not filled or\n * any other validation, like a pattern, is not matched the formGroup will be invalid. In this case\n * stepping in a linear stepper to the next step gets impossible.\n *\n * If there is the need to execute asynchronous code you have at least two possibilities.\n * First: As you learned, a cdk-step works with formGroups and Validators, so you are able to use\n * asyncValidators as well.\n * Second: The C8yStepper provides an event-emitter onStepChange which is called whenever a step-button (1)--(2)--(n)\n * in the stepper-progress is clicked. The event of this emitter holds the index of the step as number. You can\n * use this EventEmitter to call for example a custom navigate-method which performs first any async-call and then moves\n * on to the given step.\n *\n * @example\n * ```\n * <c8y-stepper\n * (onStepChange)=\"navigate($event)\"\n * [disableDefaultIcons]=\"{ edit: true, done: false }\"\n * [customClasses]=\"['m-l-40', 'm-r-40', 'm-t-32']\"\n * linear\n * >\n * <!-- override icons -->\n * <ng-template c8yStepperIcon=\"final\">\n * <span [c8yIcon]=\"'hand-peace-o'\"></span>\n * </ng-template>\n *\n * <cdk-step [stepControl]=\"formGroupStepOne\" label=\"Name of the hero\">\n * <div class=\"m-l-40 m-r-40 m-t-32\">\n * <h4 class=\"p-b-8\" translate>What is the name of your hero?</h4>\n * <c8y-form-group>\n * <div [formGroup]=\"formGroupStepOne\">\n * <input\n * class=\"form-control\"\n * type=\"text\"\n * formControlName=\"name\"\n * placeholder=\"Mister X\"\n * #nameRef\n * required\n * />\n * <c8y-messages>\n * <c8y-message *ngIf=\"!formGroupStepOne.untouched && !nameRef.value\" translate\n * >Enter the name of the Superhero</c8y-message\n * >\n * </c8y-messages>\n * </div>\n * </c8y-form-group>\n * </div>\n * <c8y-stepper-buttons></c8y-stepper-buttons>\n * </cdk-step>\n * <cdk-step>\n * ...\n * </cdk-step state=\"final\">\n * </c8y-stepper>\n * ```\n */\n@Component({\n selector: 'c8y-stepper',\n templateUrl: './stepper.component.html',\n providers: [{ provide: CdkStepper, useExisting: C8yStepper }]\n})\nexport class C8yStepper extends CdkStepper implements AfterContentInit, OnDestroy {\n /**\n * Optional\n * Indicator if icons for edit and done state should be shown in step-header buttons\n */\n @Input() disableDefaultIcons?: { edit: boolean; done: boolean } = { edit: true, done: true };\n /**\n * Optional\n * Possibility to add any kind of custom css classes to the step-header\n */\n @Input() customClasses?: [string];\n /**\n * Will emit the step index number whenever a step-header button was clicked\n * It listens to the stepIndex Subject.\n */\n @Output() onStepChange = new EventEmitter<number>();\n\n /**\n * Holding a QueryList of C8yStepperIcons\n * These are templateRefs which overrides any step-header button icon with matching state of cdk-step\n *\n * @example:\n * ```\n * <!-- override icons -->\n * <ng-template c8yStepperIcon=\"final\">\n * <span [c8yIcon]=\"'hand-peace-o'\"></span>\n * </ng-template>\n *\n * <cdk-step state=\"final\" label=\"Job done!\">\n * <div class=\"m-l-40 m-r-40 m-t-32\">\n * <h4 class=\"p-b-32\" style=\"text-align: center;\" translate>\n * Your Superhero is now ready to save the world!\n * </h4>\n * </div>\n * <c8y-stepper-buttons\n * [hidden]=\"!isModal\"\n * (onBack)=\"close()\"\n * [labels]=\"{ back: 'Got it!' }\"\n * ></c8y-stepper-buttons>\n * <c8y-stepper-buttons [hidden]=\"isModal\"></c8y-stepper-buttons>\n * </cdk-step>\n * ```\n */\n @ContentChildren(C8yStepperIcon, { descendants: true }) _icons: QueryList<C8yStepperIcon>;\n\n /** Consumer-specified template-refs to be used to override the header icons. */\n _iconOverrides: { [key: string]: TemplateRef<any> } = {};\n\n private _stepIndex: Subject<number> = new Subject();\n private _stepIndexSubscription: Subscription;\n\n ngAfterContentInit() {\n this._icons.forEach(({ name, templateRef }) => (this._iconOverrides[name] = templateRef));\n this._stepIndexSubscription = this._stepIndex.subscribe(index => this.onStepChange.emit(index));\n }\n\n ngOnDestroy() {\n if (this._stepIndexSubscription && !this._stepIndexSubscription.closed) {\n this._stepIndexSubscription.unsubscribe();\n }\n }\n\n /**\n * Manipulates the state based on the disabledDefaultIcons Input()\n * Changing edit or done to false will change the icons within step-header buttons\n * @param index step index\n * @param state step state, like 'done', 'edit', 'error'\n */\n getIndicatorType(index: number, state: StepState) {\n const stepState = this._getIndicatorType(index, state);\n let _state = state;\n switch (stepState) {\n case STEP_STATE.EDIT:\n if (!this.disableDefaultIcons.edit) {\n _state = STEP_STATE.EDIT;\n }\n break;\n\n case STEP_STATE.DONE:\n if (!this.disableDefaultIcons.done) {\n _state = STEP_STATE.DONE;\n } else {\n _state = '_done';\n }\n break;\n }\n return _state;\n }\n\n /**\n * Pushs the step index to the subject\n * @param index step index\n */\n setIndex(index: number) {\n this._stepIndex.next(index);\n }\n}\n","import { Component, Input, Output, TemplateRef, EventEmitter } from '@angular/core';\nimport { StepState } from '@angular/cdk/stepper';\n\n@Component({\n selector: 'c8y-stepper-progress',\n templateUrl: './stepper-progress.component.html'\n})\nexport class C8yStepperProgress {\n /** List of overriden icons as TemplateRef. Also default icons could be overriden.\n * The given overriden icons will replace an icon with matching state: StepState\n *\n * <ng-container\n * *ngSwitchCase=\"true\"\n * [ngTemplateOutlet]=\"iconOverrides[state]\"\n * ></ng-container>\n *\n */\n @Input() iconOverrides: { [key: string]: TemplateRef<any> };\n /** The index of the current step */\n @Input() index: number;\n /** Whether the step is cuurently selected or not */\n @Input() selected: boolean;\n /** The current state of the step */\n @Input() state: StepState;\n\n /** Emits the index: number of the step which was clicked */\n @Output() onStepClicked = new EventEmitter<number>();\n\n /** Called on click and emits the step index */\n stepSelected() {\n this.onStepClicked.emit(this.index);\n }\n}\n","import { CdkStep } from '@angular/cdk/stepper';\nimport {\n AfterContentInit,\n Component,\n EventEmitter,\n Host,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { C8yStepper } from './stepper.component';\n\n/**\n * C8yStepperButtons provides a convinient way to have, according to\n * the C8yStepper and each cdk-step, buttons to navigate between steps or to cancel the whole\n * step-process. Buttons rendered with the help of this component will use the branding css.\n *\n * By default all steps with this component in use will render a next button, expect the last step.\n * The other way around, every step using this component will render a back button, expect the first step.\n * To get a cancel button rendered you need to handle the onCancel event.\n * For next and back button you don't need to handle the available events onNext and onBack because default behavior\n * is implemented. The default will just call, according to the button, the stepper.next() or stepper.previous()\n * methods and moves the stepper forth or back. Using the EventEmitter onNext and onBack will emit for you the following\n * object: {stepper: C8yStepper, step: CdkStep}. This is useful if you need to implement custom logic before moving\n * to the next step or sending data to a backend. In this case you need to tell the stepper to move forward or back\n * on your own.\n *\n * With the component input [labels] you can change the label of each button in each step. It takes an object like this:\n * {next?: string, back?: string, cancel?: string}\n *\n * The [pending] input is of type boolean and will enable css animation for the next button when true.\n *\n * If the cdk-step provides a stepControl the component will set the next button disabled when the formGroup\n * behind it is invalid. As long as the [pending] input is true the back and next button is also disabled.\n * This will prevent multiple clicks while running a request or stepping back while a request is ongoing.\n *\n * @example\n * ```\n * <c8y-stepper>\n * <cdk-step>\n * <!--\n * your html code\n * ...\n * ... -->\n * <c8y-stepper-buttons\n * (onNext)=\"save()\"\n * [labels]=\"{ next: 'Save' }\"\n * [pending]=\"pendingStatus\"\n * ></c8y-stepper-buttons>\n * </cdk-step>\n * </c8y-stepper>\n *\n * // in your component:\n * async save() {\n * this.pendingStatus = true;\n * // your async request goes here ...\n * // await something();\n * this.pendingStatus = false;\n * this.stepper.next();\n * }\n * ```\n */\n@Component({\n selector: 'c8y-stepper-buttons',\n templateUrl: './stepper-buttons.component.html'\n})\nexport class C8yStepperButtons implements AfterContentInit, OnDestroy, OnChanges {\n /**\n * Optional\n * Specify custom labels for each button (cancel, back or next)\n */\n @Input() labels?: { cancel?: string; back?: string; next?: string; custom?: string };\n /**\n * Optional\n * Indicates if a request is pending and sets the next button\n * to disabled when true\n */\n @Input() pending?: boolean = false;\n\n /**\n * Disabled state of a button\n */\n @Input() disabled?: boolean = false;\n\n /**\n * EventEmitter which emits when cancel button is clicked\n */\n @Output() onCancel = new EventEmitter();\n /**\n * EventEmitter which emits {stepper: C8yStepper; step: CdkStep} when next button is clicked.\n */\n @Output() onNext = new EventEmitter<{ stepper: C8yStepper; step: CdkStep }>();\n\n /**\n * EventEmitter which emits {stepper: C8yStepper; step: CdkStep} when back button is clicked.\n */\n @Output() onBack = new EventEmitter<{ stepper: C8yStepper; step: CdkStep }>();\n\n /**\n * EventEmitter which emits when the optional custom button is clicked\n */\n @Output() onCustom = new EventEmitter();\n\n /**\n * Indicator which button should be shown.\n * Based on the cdk-steps within the c8y-stepper\n * next and back buttons are rendered.\n */\n showBtns = {\n cancel: false,\n back: false,\n next: false,\n custom: false\n };\n\n private statusChangeSubscription: Subscription;\n\n constructor(@Host() private stepper: C8yStepper, @Host() private step: CdkStep) {}\n\n ngAfterContentInit() {\n this.showBtns.cancel = this.onCancel.observers.length > 0;\n this.showBtns.custom = this.onCustom.observers.length > 0;\n\n if (this.stepper && this.stepper.steps && this.step) {\n this.showBtns.back = this.stepper.steps.first !== this.step;\n this.showBtns.next = this.stepper.steps.last !== this.step;\n }\n\n if (this.step && this.step.stepControl) {\n this.disabled = this.step.stepControl.invalid;\n\n this.statusChangeSubscription = this.step.stepControl.statusChanges.subscribe(status => {\n this.disabled = this.step.stepControl.invalid;\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n /**\n * Disable save/next button while the status is pending\n * This will prevent multiple clicks and therefore multiple requests\n */\n if (changes && changes.pending) {\n this.disabled = changes.pending.currentValue;\n }\n }\n\n ngOnDestroy() {\n if (this.statusChangeSubscription && !this.statusChangeSubscription.closed) {\n this.statusChangeSubscription.unsubscribe();\n }\n }\n\n /**\n * Gets called when cancel button is clicked.\n * It will emit immediate.\n */\n cancel() {\n this.onCancel.emit();\n }\n\n /**\n * Gets called when next button is clicked. When onNext EventEmitter has an observer registered\n * it will emit the following object {stepper: C8yStepper; step: CdkStep}.\n * Otherwise it will call stepper.next() as default.\n */\n next() {\n if (this.onNext.observers.length > 0) {\n this.onNext.emit({ stepper: this.stepper, step: this.step });\n } else {\n this.stepper.next();\n }\n }\n\n /**\n * Gets called when back button is clicked. When onBack EventEmitter has an observer registered\n * it will emit the following object {stepper: C8yStepper; step: CdkStep}.\n * Otherwise it will call stepper.previous() as default.\n */\n back() {\n this.stepper.selected.completed = false;\n if (this.onBack.observers.length > 0) {\n this.onBack.emit({ stepper: this.stepper, step: this.step });\n } else {\n this.stepper.previous();\n }\n }\n\n /**\n * Gets called when the custom button is clicked.\n * It will emit immediately.\n */\n custom() {\n this.onCustom.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CdkStepperModule, CdkStep, STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport { C8yStepper } from './stepper.component';\nimport { CommonModule } from '../common/common.module';\nimport { C8yStepperIcon } from './stepper-icon.directive';\nimport { C8yStepperProgress } from './stepper-progress.component';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { C8yStepperButtons } from './stepper-buttons.component';\n\n/**\n * The angular module definition for c8y-stepper (Wizard).\n * @exports C8yStepper\n * @exports C8yStepperIcon\n * @exports C8yStepperButtons\n * @exports CdkStep\n */\n@NgModule({\n imports: [CommonModule, CdkStepperModule, TooltipModule],\n declarations: [C8yStepper, C8yStepperIcon, C8yStepperProgress, C8yStepperButtons],\n exports: [C8yStepper, CdkStep, C8yStepperIcon, C8yStepperButtons],\n providers: [\n {\n /**\n * This emables additional states, like: edit, done and error\n * These states are used to display custom icons, if needed.\n * Any change in here will most probably result in not showing custom icons anymore\n */\n provide: STEPPER_GLOBAL_OPTIONS,\n useValue: { displayDefaultIndicatorType: false }\n }\n ]\n})\nexport class StepperModule {}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { PickedDates } from './date-picker.model';\n\n@Component({\n selector: 'c8y-date-picker',\n templateUrl: './date-picker.component.html'\n})\nexport class DatePickerComponent implements OnInit {\n @Output() onDateSelected: EventEmitter<PickedDates> = new EventEmitter();\n\n fgDatePicker: FormGroup;\n\n ngOnInit() {\n this.fgDatePicker = new FormGroup({\n dateFrom: new FormControl(),\n dateTo: new FormControl()\n });\n }\n\n filter() {\n this.onDateSelected.emit(this.fgDatePicker.value);\n }\n\n clearFilter() {\n this.fgDatePicker.setValue({\n dateFrom: null,\n dateTo: null\n });\n this.onDateSelected.emit(null);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule as C8yCommonModule } from '../common/common.module';\nimport { DatePickerComponent } from './date-picker.component';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule as C8yFormsModule } from '../forms/public-api';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\n\n/**\n * The angular module definition for a date picker - it allows you to pick either one date or a range of two.\n * @exports DatePickerComponent\n */\n@NgModule({\n imports: [\n C8yFormsModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n BsDropdownModule.forRoot(),\n BsDatepickerModule.forRoot(),\n C8yCommonModule\n ],\n exports: [DatePickerComponent],\n declarations: [DatePickerComponent]\n})\nexport class DatePickerModule {}\n","import { NgModule } from '@angular/core';\nimport { ActionBarModule } from './action-bar/action-bar.module';\nimport { ActionModule } from './action/action.module';\nimport { AlertModule } from './alert/alert.module';\nimport { AuditLogModule } from './audit-log/audit-log.module';\nimport { AuthenticationModule } from './authentication/authentication.module';\nimport { BootstrapModule } from './bootstrap/bootstrap.module';\nimport { BreadcrumbModule } from './breadcrumb/breadcrumb.module';\nimport { CommonModule } from './common/common.module';\nimport { DashboardModule } from './dashboard/dashboard.module';\nimport { DataGridModule } from './data-grid/data-grid.module';\nimport { DeviceStatusModule } from './device-status/device-status.module';\nimport { DocsModule } from './docs/docs.module';\nimport { DropAreaModule } from './drop-area/drop-area.module';\nimport { DynamicComponentModule } from './dynamic-component/dynamic-component.module';\nimport { FilePickerModule } from './file-picker/file-picker.module';\nimport { FormsModule as c8yFormsModule } from './forms/forms.module';\nimport { HeaderModule } from './header/header.module';\nimport { ListGroupModule } from './list-group/list-group.module';\nimport { LoginModule } from './login/login.module';\nimport { ModalModule } from './modal/modal.module';\nimport { NavigatorModule } from './navigator/navigator.module';\nimport { RealtimeModule } from './realtime/realtime.module';\nimport { SearchModule } from './search/search.module';\nimport { SelectModalModule } from './select-modal/select-modal.module';\nimport { SelectModule } from './select/select.module';\nimport { StepperModule as c8yStepperModule } from './stepper/stepper.module';\nimport { TabsModule } from './tabs/tabs.module';\nimport { UserModule } from './user/user.module';\nimport { DatePickerModule } from './date-picker/date-picker.module';\n\n@NgModule({\n exports: [\n ActionBarModule,\n ActionModule,\n AlertModule,\n AuditLogModule,\n BootstrapModule,\n BreadcrumbModule,\n CommonModule,\n DataGridModule,\n DropAreaModule,\n HeaderModule,\n LoginModule,\n ModalModule,\n NavigatorModule,\n AuthenticationModule,\n SearchModule,\n SelectModule,\n TabsModule,\n UserModule,\n c8yFormsModule,\n DeviceStatusModule,\n DocsModule,\n c8yStepperModule,\n DynamicComponentModule,\n DashboardModule,\n ListGroupModule,\n SelectModalModule,\n FilePickerModule,\n RealtimeModule,\n DatePickerModule\n ]\n})\nexport class CoreModule {\n static forRoot() {\n return {\n ngModule: CoreModule,\n providers: [...CommonModule.providers(), ...LoginModule.providers()]\n };\n }\n}\n","import { Injector, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\nimport { from, isObservable, of, Observable } from 'rxjs';\nimport { every, filter, map, mergeMap, toArray, tap, debounceTime } from 'rxjs/operators';\nimport { Tab } from '../tabs/tab.model';\nimport { Route } from './router.models';\n\n@Injectable()\nexport class RouterTabsResolver {\n constructor(private injector: Injector, private router: Router) {}\n\n get routerStateSnapshot() {\n return this.router.routerState.snapshot;\n }\n\n resolve(route: ActivatedRouteSnapshot) {\n const latestChildren = this.router.config.find(r => route.routeConfig.path === r.path).children;\n return from(latestChildren || []).pipe(\n mergeMap((child: Route) =>\n from(this.getGuards(child)).pipe(\n map((guard: CanActivate) => guard.canActivate(route, this.routerStateSnapshot)),\n mergeMap((result: any) => {\n if (isObservable(result)) {\n return result;\n }\n if (result && typeof result.then === 'function') {\n return from(result);\n }\n return of(result);\n }),\n tap(result => {\n if (Array.isArray(result)) {\n child.tabs = result;\n }\n }),\n every(result => !!result),\n filter(result => result),\n mergeMap(() => (Array.isArray(child.tabs) ? from(child.tabs) : of(child as Tab))),\n map(result =>\n result.label\n ? ({\n label: result.label,\n icon: result.icon,\n path: `${route.url.join('/')}/${result.path}`,\n priority: result.priority\n } as Tab)\n : undefined\n )\n )\n ),\n filter(tabs => !!tabs),\n toArray()\n ) as Observable<Tab[]>;\n }\n\n private getGuards(child: Route) {\n const guards = (child.canActivate || []).map(guard => {\n return this.injector.get(guard);\n });\n if (child.data && child.data.showIf) {\n guards.push({ canActivate: child.data.showIf });\n }\n return guards;\n }\n}\n","import { Route as ngRoute } from '@angular/router';\nimport { ExtensionFactory } from '../common/extension-hooks';\nimport { Tab } from '../tabs/tab.model';\n\nexport enum ViewContext {\n Device = 'device/:id',\n Group = 'group/:id',\n User = 'users/:id',\n Application = 'applications/:id',\n SubscribedApplications = 'subscribedApplications/:id',\n Tenant = 'tenants/:id'\n}\n\nexport type Route = Partial<ngRoute> & {\n path: string;\n label?: string;\n icon?: string;\n context?: ViewContext;\n priority?: number;\n\n /**\n * Allow to emit multiple tabs on one context route.\n */\n tabs?: Tab[];\n};\n\nexport type RouteFactory = ExtensionFactory<Route>;\n","import {\n InventoryService,\n UserService,\n ApplicationService,\n TenantService,\n} from '@c8y/client';\nimport { ViewContext } from './router.models';\n\nexport class ViewContextServices {\n static services = new Map<ViewContext, any>([\n [ViewContext.Device, InventoryService],\n [ViewContext.Group, InventoryService],\n [ViewContext.User, UserService],\n [ViewContext.Application, ApplicationService],\n [ViewContext.SubscribedApplications, ApplicationService],\n [ViewContext.Tenant, TenantService],\n ]);\n\n static contextToService(context: ViewContext) {\n return ViewContextServices.services.get(context);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRoute,\n NavigationEnd,\n PRIMARY_OUTLET,\n Router,\n UrlSegmentGroup,\n UrlTree\n} from '@angular/router';\nimport { ApiService, ApiCall } from '@c8y/ngx-components/api';\nimport { NEVER, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, map, merge, switchMap, tap } from 'rxjs/operators';\nimport { Tab } from '../tabs/tab.model';\nimport { TabsService } from '../tabs/tabs.service';\nimport { RouterTabsResolver } from './router-tabs.resolver';\nimport { ViewContextServices } from './view-context.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContextRouteService {\n private dataSubscription: Subscription;\n private routerSubscription: Subscription;\n private lastAddedTabs = [];\n private refreshTrigger = new Subject();\n\n constructor(\n private tabsResolver: RouterTabsResolver,\n private tabsService: TabsService,\n private router: Router,\n private apiService: ApiService,\n private injector: Injector\n ) {}\n\n init(route: ActivatedRoute): void {\n this.routerSubscription = this.router.events\n .pipe(filter(e => e instanceof NavigationEnd))\n .subscribe(() => this.redirectToFirstTab());\n\n this.dataSubscription = route.data\n .pipe(\n merge(this.updatedContext(route), this.refreshTrigger),\n switchMap(() => this.tabsResolver.resolve(route.snapshot)),\n )\n .subscribe(tabs => this.updateTabs(tabs));\n }\n\n destroy(): void {\n this.dataSubscription.unsubscribe();\n this.routerSubscription.unsubscribe();\n this.lastAddedTabs.forEach(t => this.tabsService.remove(t));\n }\n\n refreshContext() {\n this.refreshTrigger.next();\n }\n\n updatedContext(route: ActivatedRoute): Observable<ApiCall> {\n const { data } = route.snapshot;\n const serviceInstance = ViewContextServices.contextToService(data.context);\n if (serviceInstance) {\n const service = this.injector.get(serviceInstance);\n const detailsUrlRegex = service.getDetailUrl(data.contextData).replace(/\\d+/g, '?\\\\d*');\n const contextRegex = new RegExp(detailsUrlRegex, 'i');\n const childrenRegex = new RegExp(`${detailsUrlRegex}/child`, 'i');\n const filterResponse = ({ url, method }) => {\n const contextChanged = contextRegex.test(url) && ['POST', 'PUT'].includes(method);\n const childrenAffected = childrenRegex.test(url) && ['POST', 'DELETE'].includes(method);\n return contextChanged || childrenAffected;\n };\n return this.apiService.hookResponse(filterResponse);\n }\n return NEVER;\n }\n\n private updateTabs(tabs = []) {\n this.lastAddedTabs.forEach(t => this.tabsService.remove(t));\n this.lastAddedTabs = tabs;\n tabs.forEach(t => this.tabsService.add(t));\n this.redirectToFirstTab();\n }\n\n private redirectToFirstTab() {\n if (this.needsRedirect()) {\n this.tabsService.firstTab$.subscribe((tab: Tab) => {\n if (tab) {\n this.router.navigateByUrl(tab.path, { replaceUrl: true });\n }\n });\n }\n }\n\n private needsRedirect() {\n const tree: UrlTree = this.router.parseUrl(this.router.url);\n const groups: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n const isContextRoute = groups.segments.length === 2;\n return isContextRoute;\n }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { fromFactories } from '../common/extension-hooks';\nimport { RouteFactory, Route } from './router.models';\nimport { TabsService } from '../tabs/tabs.service';\nimport { ContextRouteService } from './context-route.service';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_ONCE_ROUTE = new InjectionToken('RouteFactory');\n\n/**\n * A service which defines routes\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class RouterService {\n constructor(\n @Optional() @Inject(HOOK_ONCE_ROUTE) factories: RouteFactory[],\n private router: Router,\n public tabsService: TabsService,\n private contextRouteService: ContextRouteService\n ) {\n fromFactories(factories).subscribe((routes: Route[]) => {\n this.addRoute(routes);\n });\n }\n\n /**\n * Refresh the current context\n */\n refresh() {\n this.contextRouteService.refreshContext();\n }\n\n /**\n * Add a new route to the router configuration or a context.\n * @param route The route to add\n */\n addRoute(route: Route | Route[]) {\n this.addRoutes(Array.isArray(route) ? route : [route]);\n }\n\n private addRoutes(routes) {\n const emptyRoute = this.router.config.find(r => r.path === '**');\n this.router.resetConfig(\n [\n ...this.router.config.filter(r => r.path !== '**'),\n ...routes.map((r: Route) => this.convertRoute(this.router.config, r)),\n emptyRoute\n ].filter(Boolean)\n );\n }\n\n private convertRoute(initialConfig, route: Route) {\n if (route.context) {\n initialConfig.forEach((r: Route) => {\n if (r.data && r.data.context === route.context) {\n r.children = [route, ...(r.children || [])];\n }\n });\n return;\n }\n return route;\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ContextRouteService } from './context-route.service';\n\n@Component({\n selector: 'c8y-context-route',\n templateUrl: './context-route.component.html'\n})\nexport class ContextRouteComponent {\n constructor(private route: ActivatedRoute, private contextRouteService: ContextRouteService) {}\n\n ngOnInit(): void {\n this.contextRouteService.init(this.route);\n }\n\n ngOnDestroy(): void {\n this.contextRouteService.destroy();\n }\n\n refreshTabs() {\n this.contextRouteService.refreshContext();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchOptions } from '@c8y/client';\nimport { Subject, Observable } from 'rxjs';\nimport { ApiCall, ApiCallOptions } from './api.model';\nimport { filter } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiService {\n calls: Observable<ApiCall>;\n private callsSubject = new Subject<ApiCall>();\n\n constructor(private client: FetchClient) {\n this.calls = this.callsSubject.asObservable();\n this.hookIntoClientFetch();\n }\n\n hookResponse(hookFilter: (call: ApiCall) => boolean) {\n return this.callsSubject.pipe(\n filter(({ phase }) => phase === 'finish'),\n filter(hookFilter)\n );\n }\n\n hookRequest(hookFilter: (call: ApiCall) => boolean) {\n return this.callsSubject.pipe(\n filter(({ phase }) => phase === 'start'),\n filter(hookFilter)\n );\n }\n\n async onFinish(call: ApiCall) {\n this.callsSubject.next({ phase: 'finish', ...call });\n }\n\n onStart(call: ApiCall) {\n this.callsSubject.next({ phase: 'start', ...call });\n }\n\n async resolveData(call: ApiCall): Promise<any> {\n const { response, method } = call;\n if ('data' in response) {\n return Promise.resolve({ data: response.data, method });\n } else {\n const cb = (data) => ({ data, method});\n return (response as Response).clone().json().then(cb, cb);\n }\n }\n\n private hookIntoClientFetch() {\n const fetch = this.client.fetch.bind(this.client);\n this.client.fetch = async (url, options: ApiCallOptions & IFetchOptions = { method: 'GET'}) => {\n const { method } = options;\n this.onStart({ options, method, url });\n let fetchPromise = fetch(url, options);\n if (typeof options.responseInterceptor === 'function') {\n fetchPromise = fetchPromise.then(options.responseInterceptor);\n }\n fetchPromise.then(\n (response: Response) => this.onFinish({ response, url, options, method }),\n (response: Response) => this.onFinish({ response, url, options, method })\n );\n return fetchPromise;\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BasicAuth, FetchClient, Realtime, CookieAuth } from '@c8y/client';\nimport { ApiService } from './api.service';\nimport * as services from './services';\n\nfunction toProvider(provide) {\n let deps: any[] = [FetchClient, Realtime];\n if (provide === FetchClient) {\n deps = [CookieAuth];\n }\n if (provide === BasicAuth || provide === CookieAuth) {\n deps = [];\n }\n if (provide === Realtime) {\n deps = [FetchClient];\n }\n return {provide, useClass: provide, deps};\n}\n\nconst providers: any[] = (Object.keys(services).map((k) => toProvider(services[k])) as any[])\n .concat([\n { provide: ApiService, useClass: ApiService, deps: [FetchClient] }\n ]);\n// @dynamic\n@NgModule()\nexport class DataModule {\n static providers() {\n return providers;\n }\n static forRoot() {\n return {\n ngModule: DataModule,\n providers\n };\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { from, of } from 'rxjs';\nimport { catchError, map, shareReplay, tap } from 'rxjs/operators';\nimport { ViewContextServices } from './view-context.service';\nimport { InventoryService } from '../../api';\n\n@Injectable()\nexport class ContextRouteGuard implements CanActivate {\n private caches = new Map();\n constructor(private injector: Injector) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n const id = route.paramMap.get('id');\n const service = this.service(route);\n this.clearDetailCached(service, id);\n return this.detailCached(service, id).pipe(\n tap(contextData => (route.data = { ...route.data, contextData })),\n map(() => true),\n catchError(ex => of(false))\n );\n }\n\n private service(route) {\n const serviceInstance = ViewContextServices.contextToService(route.data.context);\n return this.injector.get(serviceInstance);\n }\n\n private detailCached(service, id) {\n const cache = this.getCache(service);\n let cached = cache[id];\n if (!cached) {\n const params = service instanceof InventoryService ? { withChildren: false } : undefined;\n cached = from(service.detail(id, params)).pipe(\n map(({ data }) => data),\n shareReplay(1)\n );\n cache[id] = cached;\n }\n return cached;\n }\n\n private clearDetailCached(service, id) {\n const cache: Map<any, any> = this.getCache(service);\n delete cache[id];\n }\n\n private getCache(service) {\n let cache = this.caches.get(service);\n if (!cache) {\n cache = {};\n this.caches.set(service, cache);\n }\n return cache;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({selector: 'empty', template: ''})\nexport class EmptyComponent {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule as NgRouterModule } from '@angular/router';\nimport { RouterService } from './router.service';\nimport { ContextRouteComponent } from './context-route.component';\nimport { HeaderModule } from '../header/header.module';\nimport { CommonModule } from '../common/common.module';\nimport { ContextRouteGuard } from './context-route.guard';\nimport { ViewContext, Route } from './router.models';\nimport { RouterTabsResolver } from './router-tabs.resolver';\nimport { EmptyComponent } from './empty.component';\n\nexport const routes: Route[] = [{\n path: 'users/new',\n component: EmptyComponent\n},\n{\n path: 'tenants/new',\n component: EmptyComponent\n}];\n// tslint:disable-next-line: forin\nfor (const key in ViewContext) {\n const context = ViewContext[key];\n routes.push({\n path: context,\n component: ContextRouteComponent,\n canActivate: [ ContextRouteGuard ],\n data: { context, contextData: {} },\n resolve: {\n tabs: RouterTabsResolver,\n }\n });\n}\n\n@NgModule({\n declarations: [ ContextRouteComponent, EmptyComponent],\n imports: [\n NgRouterModule.forRoot(routes),\n HeaderModule,\n CommonModule\n ],\n entryComponents: [ContextRouteComponent, EmptyComponent]\n})\nexport class RouterModule {\n static providers() {\n return [\n ContextRouteGuard,\n RouterTabsResolver,\n RouterService\n ];\n }\n\n static forRoot() {\n return {\n ngModule: RouterModule,\n providers: RouterModule.providers()\n };\n }\n\n constructor(routerService: RouterService) {\n // Declared but never used is intended: to always have a instance of RouterService.\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { kebabCase } from 'lodash-es';\r\n\r\n@Component({\r\n selector: 'c8y-quick-link',\r\n templateUrl: './quick-link.component.html'\r\n})\r\nexport class QuickLinkComponent implements OnInit {\r\n @Input() icon;\r\n @Input() label;\r\n classes = '';\r\n\r\n ngOnInit(): void {\r\n this.classes = `card-block text-center ${kebabCase(this.label)}`;\r\n }\r\n}\r\n","import { CoreModule } from '../core.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { QuickLinkComponent } from './quick-link.component';\r\n\r\n@NgModule({\r\n declarations: [QuickLinkComponent],\r\n imports: [CoreModule],\r\n exports: [QuickLinkComponent],\r\n providers: []\r\n})\r\nexport class QuickLinkModule {}\r\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { IIdentified, Realtime } from '@c8y/client';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, finalize, map } from 'rxjs/operators';\nimport { RealtimeMessage } from './realtime.model';\n\n/**\n * A wrapper class for handling realtime notifications in RxJS fashion.\n */\nexport abstract class RealtimeService<T> {\n /**\n * A flag displaying if realtime notifications are currently active.\n */\n get active(): boolean {\n return this.isActive;\n }\n\n private subjects$: Map<string, RealtimeSubject<T>> = new Map<string, RealtimeSubject<T>>();\n private isActive: boolean = true;\n\n constructor(protected realtime: Realtime) {}\n\n /**\n * Get an Observable of all realtime notifications.\n *\n * @param {string | number | IIdentified} entityOrId Entity object or id\n *\n * @returns An [[Observable]] of notifications wrapped as [[RealtimeMessage]]\n */\n onAll$(entityOrId?: string | number | IIdentified): Observable<RealtimeMessage<T>> {\n const subject$: RealtimeSubject<T> = this.getSubjectForChannel(entityOrId);\n\n return subject$.pipe(\n finalize(() => {\n if (subject$.observers.length === 1 && subject$.observers[0].closed) {\n subject$.stop();\n this.subjects$.delete(subject$.channel);\n }\n })\n );\n }\n\n /**\n * Subscribes again all realtime channels with active observers.\n */\n start() {\n if (!this.isActive) {\n this.subjects$.forEach(subject$ => {\n subject$.start();\n });\n this.isActive = true;\n }\n }\n\n /**\n * Stops realtime notifications and unsubscribes all realtime channels.\n */\n stop() {\n if (this.isActive) {\n this.subjects$.forEach(subject$ => {\n subject$.stop();\n });\n\n this.isActive = false;\n }\n }\n\n /**\n * Get an Observable of all CREATE realtime notifications.\n *\n * @returns An [[Observable]] of newly created entity objects.\n */\n onCreate$(): Observable<T> {\n return this.onAll$().pipe(\n filter(msg => msg.realtimeAction === 'CREATE'),\n map(msg => msg.data as T)\n );\n }\n\n /**\n * Get an Observable of all UPDATE realtime notifications.\n *\n * @param {string | number | IIdentified} entityOrId Entity object or id\n *\n * @returns An [[Observable]] of updated entity objects.\n */\n onUpdate$(entityOrId?: string | number | IIdentified): Observable<T> {\n return this.onAll$(entityOrId).pipe(\n filter(msg => msg.realtimeAction === 'UPDATE'),\n map(msg => msg.data as T)\n );\n }\n\n /**\n * Get an Observable of all DELETE realtime notifications.\n *\n * @param {string | number | IIdentified} entityOrId Entity object or id\n *\n * @returns An [[Observable]] of deleted entity objects.\n */\n onDelete$(entityOrId?: string | number | IIdentified): Observable<number> {\n return this.onAll$(entityOrId).pipe(\n filter(msg => msg.realtimeAction === 'DELETE'),\n map(msg => coerceNumberProperty(msg.data))\n );\n }\n\n protected getIdString(reference: number | string | IIdentified): string {\n let id: string | number;\n if (typeof reference === 'object') {\n id = reference.id;\n } else {\n id = reference;\n }\n return String(id);\n }\n\n protected getChannel(entityOrId?: string | number | IIdentified) {\n return entityOrId ? this.channel().replace('*', this.getIdString(entityOrId)) : this.channel();\n }\n\n protected abstract channel(): string;\n\n private getSubjectForChannel(entityOrId?: string | number | IIdentified): RealtimeSubject<T> {\n const channel: string = this.getChannel(entityOrId);\n let subject$: RealtimeSubject<T>;\n if (this.subjects$.has(channel)) {\n subject$ = this.subjects$.get(channel);\n } else {\n subject$ = new RealtimeSubject(channel, this.realtime);\n this.subjects$.set(channel, subject$);\n }\n\n return subject$;\n }\n}\n\n// tslint:disable-next-line: max-classes-per-file\nclass RealtimeSubject<T> extends Subject<RealtimeMessage<T>> {\n realtimeSubscription: object;\n get channel(): string {\n return this.realtimeChannel;\n }\n\n constructor(private realtimeChannel: string, private realtime: Realtime) {\n super();\n this.start();\n }\n\n start() {\n if (!this.realtimeSubscription) {\n this.realtimeSubscription = this.realtime.subscribe(this.realtimeChannel, msg => {\n const data: RealtimeMessage<T> = {\n channel: msg.channel,\n data: msg.data.data,\n id: msg.id,\n realtimeAction: msg.data.realtimeAction\n };\n this.next(data);\n });\n }\n }\n\n stop() {\n if (this.realtimeSubscription) {\n this.realtime.unsubscribe(this.realtimeSubscription);\n this.realtimeSubscription = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IOperationBulk, Realtime } from '@c8y/client';\nimport { RealtimeService } from './realtime.service';\n\n/**\n * A service for handling bulk operation realtime notifications in RxJS fashion.\n */\n@Injectable()\nexport class OperationBulkRealtimeService extends RealtimeService<IOperationBulk> {\n constructor(realtime: Realtime) {\n super(realtime);\n }\n\n protected channel(): string {\n return '/bulkOperations/*';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { RealtimeService } from './realtime.service';\nimport { IManagedObject, Realtime } from '@c8y/client';\n\n@Injectable()\nexport class ManagedObjectRealtimeService extends RealtimeService<IManagedObject> {\n constructor(realtime: Realtime) {\n super(realtime);\n }\n\n protected channel(): string {\n return '/managedobjects/*';\n }\n}\n","export class RealtimeMessage<T> {\n id: string;\n channel: string;\n realtimeAction: RealtimeAction;\n data: T | number;\n}\n\nexport type RealtimeAction = 'UPDATE' | 'DELETE' | 'CREATE';\n"],"names":["router","filter","NavigationEnd","merge","startWith","switchMap","of","defer","isFunction","combineLatest","map","flatten","sortBy","isObservable","from","race","distinctUntilChanged","InjectionToken","tslib_1.__extends","Subject","BehaviorSubject","shareReplay","Injector","Router","Injectable","camelCase","isUndefined","Optional","Inject","SystemOptionsService","TenantOptionsService","tslib_1.__param","scan","isDevMode","keys","ApplicationService","ApiService","FetchClient","snakeCase","matches","debounceTime","ViewContainerRef","first","TranslateService","Component","formatDate","each","mapValues","TranslateParser","tap","catchError","mapKeys","HttpClient","get","TranslateDefaultParser","EventEmitter","isEqual","ElementRef","ChangeDetectorRef","tslib_1.__decorate","Input","Directive","LOCALE_ID","TranslateLoader","TranslateCompiler","TranslateFakeCompiler","MissingTranslationHandler","TranslateStore","NgxTranslateService","USE_STORE","USE_DEFAULT_LANG","USE_EXTEND","DEFAULT_LANGUAGE","NgModule","TranslateModule","HttpClientModule","registerLocaleData","Pipe","NgDatePipe","Output","HostBinding","pipe","takeUntil","coerceNumberProperty","assign","TemplateRef","ComponentFactoryResolver","find","negate","upperFirst","Renderer2","Status","OperationStatus","UserService","InventoryService","_memoize","property","DataModule","APP_INITIALIZER","NgCommonModule","TooltipModule","ViewChild","BsDropdownModule","CollapseModule","RouterModule","Attribute","ContentChild","AuditService","LoginViews","EMPTY","isString","tslib_1.__read","BasicAuth","CookieAuth","TenantService","Realtime","TenantLoginOptionsService","LocationStrategy","clone","Client","PasswordStrength","take","BsModalService","NG_VALIDATORS","ControlContainer","NgForm","BsModalRef","isEmpty","HostListener","PopoverDirective","BsModalModule","PopoverModule","parsePhoneNumberFromString","ContentChildren","debounce","timer","NgModel","NgControl","NgFormsModule","QRCodeModule","escape","escapeRegExp","FormsModule","includes","orderBy","NgZone","RouterLinkActive","ViewChildren","C8yFormsModule","fromEvent","fromEventPattern","mergeMap","CommonModule","DomSanitizer","forwardRef","ChangeDetectionStrategy","expand","ReplaySubject","DragDropModule","FilteringActionType","flow","finalize","isNil","pick","omitBy","chunk","tslib_1.__assign","union","without","tslib_1.__spread","_parseInt","CdkHeaderCell","Type","CdkTableModule","ReactiveFormsModule","C8YCommonModule","PaginationModule","PushStatusLabels","SendStatusLabels","some","C8yCommonModule","delay","ModalSelectionMode","BsDropdownDirective","set","findIndex","NG_VALUE_ACCESSOR","STEP_STATE","CdkStepper","Host","CdkStep","CdkStepperModule","STEPPER_GLOBAL_OPTIONS","FormGroup","FormControl","BsDatepickerModule","c8yFormsModule","c8yStepperModule","every","toArray","ViewContext","NEVER","PRIMARY_OUTLET","ActivatedRoute","NgRouterModule","kebabCase"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@c8y/ngx-components/core/common/extension-hooks.ts","ng://@c8y/ngx-components/core/common/state-service.abstract.ts","ng://@c8y/ngx-components/core/action-bar/action-bar.service.ts","ng://@c8y/ngx-components/core/action/action.service.ts","ng://@c8y/ngx-components/core/i18n/gettext.ts","ng://@c8y/ngx-components/core/alert/alert.service.ts","ng://@c8y/ngx-components/core/common/ApplicationOptions.ts","ng://@c8y/ngx-components/core/common/options.service.ts","ng://@c8y/ngx-components/core/common/ui-state.service.ts","ng://@c8y/ngx-components/core/navigator/navigator-node.ts","ng://@c8y/ngx-components/core/navigator/navigator-node-root.ts","ng://@c8y/ngx-components/core/navigator/navigator.service.ts","ng://@c8y/ngx-components/core/header/header.service.ts","ng://@c8y/ngx-components/core/tabs/tabs.service.ts","ng://@c8y/ngx-components/core/bootstrap/bootstrap.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb.service.ts","ng://@c8y/ngx-components/core/i18n/languages.ts","ng://@c8y/ngx-components/core/i18n/locale.path.ts","ng://@c8y/ngx-components/core/i18n/patterns-message.hook.ts","ng://@c8y/ngx-components/core/i18n/pattern-messages.service.ts","ng://@c8y/ngx-components/core/i18n/missing-translation-custom.handler.ts","ng://@c8y/ngx-components/core/i18n/pattern-messages.data.ts","ng://@c8y/ngx-components/core/i18n/cached-locale-dictionary.service.ts","ng://@c8y/ngx-components/core/i18n/translate.loader.ts","ng://@c8y/ngx-components/core/i18n/translate.parser.ts","ng://@c8y/ngx-components/core/i18n/force-html-translate.directive.ts","ng://@c8y/ngx-components/core/i18n/i18n.module.ts","ng://@c8y/ngx-components/core/i18n/import-locales.ts","ng://@c8y/ngx-components/core/i18n/parse-module.ts","ng://@c8y/ngx-components/core/i18n/load-locale.ts","ng://@c8y/ngx-components/core/i18n/translate.service.ts","ng://@c8y/ngx-components/core/common/date.pipe.ts","ng://@c8y/ngx-components/core/common/load-more.component.ts","ng://@c8y/ngx-components/core/common/forOf.directive.ts","ng://@c8y/ngx-components/core/common/humanize-app-name.pipe.ts","ng://@c8y/ngx-components/core/common/humanize.pipe.ts","ng://@c8y/ngx-components/core/common/icon.directive.ts","ng://@c8y/ngx-components/core/common/map-function.pipe.ts","ng://@c8y/ngx-components/core/common/outlet.directive.ts","ng://@c8y/ngx-components/core/common/progress-bar.component.ts","ng://@c8y/ngx-components/core/common/shorten-user-name.pipe.ts","ng://@c8y/ngx-components/core/common/status.model.ts","ng://@c8y/ngx-components/core/common/single-operation.component.ts","ng://@c8y/ngx-components/core/common/user-preferences/user-preferences-storage-local.ts","ng://@c8y/ngx-components/core/common/user-preferences/user-preferences-store-inventory.ts","ng://@c8y/ngx-components/core/common/user-preferences/user-preferences.service.ts","ng://@c8y/ngx-components/core/common/memoize.decorator.ts","ng://@c8y/ngx-components/core/common/permissions.service.ts","ng://@c8y/ngx-components/core/common/common.module.ts","ng://@c8y/ngx-components/core/action-bar/action-bar-item.component.ts","ng://@c8y/ngx-components/core/action-bar/action-bar.component.ts","ng://@c8y/ngx-components/core/action-bar/action-bar.module.ts","ng://@c8y/ngx-components/core/action/action-outlet.component.ts","ng://@c8y/ngx-components/core/action/action.component.ts","ng://@c8y/ngx-components/core/action/action.module.ts","ng://@c8y/ngx-components/core/alert/alert-details.component.ts","ng://@c8y/ngx-components/core/alert/alert-outlet.component.ts","ng://@c8y/ngx-components/core/alert/alert-text.component.ts","ng://@c8y/ngx-components/core/alert/alert.component.ts","ng://@c8y/ngx-components/core/alert/alert.module.ts","ng://@c8y/ngx-components/core/audit-log/audit-log.component.ts","ng://@c8y/ngx-components/core/audit-log/audit-log.module.ts","ng://@c8y/ngx-components/core/login/login.model.ts","ng://@c8y/ngx-components/core/login/login.service.ts","ng://@c8y/ngx-components/core/authentication/password-confirm-modal.component.ts","ng://@c8y/ngx-components/core/authentication/password.service.ts","ng://@c8y/ngx-components/core/authentication/password-check-list.component.ts","ng://@c8y/ngx-components/core/authentication/password-confirm.directive.ts","ng://@c8y/ngx-components/core/authentication/password-strength-checker.service.ts","ng://@c8y/ngx-components/core/authentication/password-strength.component.ts","ng://@c8y/ngx-components/core/authentication/new-password.component.ts","ng://@c8y/ngx-components/core/modal/modal-confirm.component.ts","ng://@c8y/ngx-components/core/modal/modal.component.ts","ng://@c8y/ngx-components/core/modal/modal.service.ts","ng://@c8y/ngx-components/core/modal/popover-confirm.component.ts","ng://@c8y/ngx-components/core/modal/modal.module.ts","ng://@c8y/ngx-components/core/forms/phone-validation.directive.ts","ng://@c8y/ngx-components/core/forms/validation-pattern.ts","ng://@c8y/ngx-components/core/forms/default-validation.directive.ts","ng://@c8y/ngx-components/core/forms/min-validation.directive.ts","ng://@c8y/ngx-components/core/forms/max-validation.directive.ts","ng://@c8y/ngx-components/core/forms/message.directive.ts","ng://@c8y/ngx-components/core/forms/messages.component.ts","ng://@c8y/ngx-components/core/forms/form-group.component.ts","ng://@c8y/ngx-components/core/forms/input-group-list.component.ts","ng://@c8y/ngx-components/core/forms/input-group-list-container.directive.ts","ng://@c8y/ngx-components/core/forms/json-validation-prettifier.directive.ts","ng://@c8y/ngx-components/core/forms/text-area-row-height.directive.ts","ng://@c8y/ngx-components/core/forms/required-input-placeholder.directive.ts","ng://@c8y/ngx-components/core/forms/ip-range-input-list.component.ts","ng://@c8y/ngx-components/core/forms/filter-input.component.ts","ng://@c8y/ngx-components/core/forms/forms.module.ts","ng://@c8y/ngx-components/core/authentication/totp-challenge.component.ts","ng://@c8y/ngx-components/core/authentication/sms-challenge.component.ts","ng://@c8y/ngx-components/core/authentication/totp-setup.component.ts","ng://@c8y/ngx-components/core/authentication/provide-phone-number.component.ts","ng://@c8y/ngx-components/core/authentication/authentication.module.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb-item.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb-outlet.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb.component.ts","ng://@c8y/ngx-components/core/breadcrumb/breadcrumb.module.ts","ng://@c8y/ngx-components/core/search/search-outlet.component.ts","ng://@c8y/ngx-components/core/search/search.service.ts","ng://@c8y/ngx-components/core/search/search.component.ts","ng://@c8y/ngx-components/core/search/highlight.component.ts","ng://@c8y/ngx-components/core/search/search-result-empty.component.ts","ng://@c8y/ngx-components/core/search/search.module.ts","ng://@c8y/ngx-components/core/user/user-menu.service.ts","ng://@c8y/ngx-components/core/user/user-menu-item.component.ts","ng://@c8y/ngx-components/core/user/user-edit-modal.component.ts","ng://@c8y/ngx-components/core/user/user-totp-setup.component.ts","ng://@c8y/ngx-components/core/user/user-edit.component.ts","ng://@c8y/ngx-components/core/user/user-menu-outlet.component.ts","ng://@c8y/ngx-components/core/user/user-totp-revoke.component.ts","ng://@c8y/ngx-components/core/user/user.module.ts","ng://@c8y/ngx-components/core/header/application/app-icon.component.ts","ng://@c8y/ngx-components/core/header/application/app-switcher.component.ts","ng://@c8y/ngx-components/core/docs/defaults.items.ts","ng://@c8y/ngx-components/core/docs/docs.models.ts","ng://@c8y/ngx-components/core/docs/docs.service.ts","ng://@c8y/ngx-components/core/header/header-bar/header-bar.component.ts","ng://@c8y/ngx-components/core/header/title/title-outlet.component.ts","ng://@c8y/ngx-components/core/header/title/title.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-entry.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-icon.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-node.component.ts","ng://@c8y/ngx-components/core/navigator/navigator-outlet.component.ts","ng://@c8y/ngx-components/core/navigator/navigator.module.ts","ng://@c8y/ngx-components/core/header/right-drawer/right-drawer.component.ts","ng://@c8y/ngx-components/core/header/header.module.ts","ng://@c8y/ngx-components/core/login/change-password.component.ts","ng://@c8y/ngx-components/core/login/credentials.component.ts","ng://@c8y/ngx-components/core/login/login.component.ts","ng://@c8y/ngx-components/core/login/recover-password.component.ts","ng://@c8y/ngx-components/core/login/totp-auth.component.ts","ng://@c8y/ngx-components/core/login/strength-validator-service.ts","ng://@c8y/ngx-components/core/login/password-strength-validator.directive.ts","ng://@c8y/ngx-components/core/login/login.module.ts","ng://@c8y/ngx-components/core/tabs/tab.component.ts","ng://@c8y/ngx-components/core/tabs/tabs-outlet.component.ts","ng://@c8y/ngx-components/core/tabs/tabs.module.ts","ng://@c8y/ngx-components/core/bootstrap/cookie-banner/cookie-banner.component.ts","ng://@c8y/ngx-components/core/bootstrap/bootstrap.module.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.model.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.service.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.component.ts","ng://@c8y/ngx-components/core/dynamic-component/dynamic-component.module.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child-action.component.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child-title.component.ts","ng://@c8y/ngx-components/core/dashboard/dashboard.component.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child-change.ts","ng://@c8y/ngx-components/core/dashboard/dashboard-child.component.ts","ng://@c8y/ngx-components/core/dashboard/widgets-dashboard.component.ts","ng://@c8y/ngx-components/core/docs/guide-href.directive.ts","ng://@c8y/ngx-components/core/docs/guide-docs.component.ts","ng://@c8y/ngx-components/core/docs/docs.module.ts","ng://@c8y/ngx-components/core/dashboard/dashboard.module.ts","ng://@c8y/ngx-components/core/data-grid/column/cell-renderer.ts","ng://@c8y/ngx-components/core/data-grid/column/filtering-form-renderer.ts","ng://@c8y/ngx-components/core/data-grid/column/column.directive.ts","ng://@c8y/ngx-components/core/data-grid/data-grid.model.ts","ng://@c8y/ngx-components/core/data-grid/grid-data-source.ts","ng://@c8y/ngx-components/core/data-grid/data-grid.component.ts","ng://@c8y/ngx-components/core/data-grid/column/cell-renderer.component.ts","ng://@c8y/ngx-components/core/data-grid/column/filtering-form-renderer.component.ts","ng://@c8y/ngx-components/core/data-grid/data-grid.module.ts","ng://@c8y/ngx-components/core/device-status/device-availability.ts","ng://@c8y/ngx-components/core/device-status/device-status.component.ts","ng://@c8y/ngx-components/core/device-status/device-status.module.ts","ng://@c8y/ngx-components/core/drop-area/drop-area.component.ts","ng://@c8y/ngx-components/core/drop-area/drop-area.module.ts","ng://@c8y/ngx-components/core/file-picker/file-picker.component.ts","ng://@c8y/ngx-components/core/file-picker/file-picker.module.ts","ng://@c8y/ngx-components/core/list-group/list-group.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-action.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-collapse.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-footer.component.ts","ng://@c8y/ngx-components/core/list-group/list-item.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-icon.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-body.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-checkbox.component.ts","ng://@c8y/ngx-components/core/list-group/list-item-radio.component.ts","ng://@c8y/ngx-components/core/list-group/list-group.module.ts","ng://@c8y/ngx-components/core/realtime/realtime-button.component.ts","ng://@c8y/ngx-components/core/realtime/realtime.module.ts","ng://@c8y/ngx-components/core/select-modal/select-modal.model.ts","ng://@c8y/ngx-components/core/select-modal/select-modal.component.ts","ng://@c8y/ngx-components/core/select-modal/select-modal-filter.pipe.ts","ng://@c8y/ngx-components/core/select-modal/select-modal.module.ts","ng://@c8y/ngx-components/core/select/select.component.ts","ng://@c8y/ngx-components/core/select/typeahead.component.ts","ng://@c8y/ngx-components/core/select/select.module.ts","ng://@c8y/ngx-components/core/stepper/stepper-icon.directive.ts","ng://@c8y/ngx-components/core/stepper/stepper.component.ts","ng://@c8y/ngx-components/core/stepper/stepper-progress.component.ts","ng://@c8y/ngx-components/core/stepper/stepper-buttons.component.ts","ng://@c8y/ngx-components/core/stepper/stepper.module.ts","ng://@c8y/ngx-components/core/date-picker/date-picker.component.ts","ng://@c8y/ngx-components/core/date-picker/date-picker.module.ts","ng://@c8y/ngx-components/core/core.module.ts","ng://@c8y/ngx-components/core/router/router-tabs.resolver.ts","ng://@c8y/ngx-components/core/router/router.models.ts","ng://@c8y/ngx-components/core/router/view-context.service.ts","ng://@c8y/ngx-components/core/router/context-route.service.ts","ng://@c8y/ngx-components/core/router/router.service.ts","ng://@c8y/ngx-components/core/router/context-route.component.ts","ng://@c8y/ngx-components/api/api.service.ts","ng://@c8y/ngx-components/api/data.module.ts","ng://@c8y/ngx-components/core/router/context-route.guard.ts","ng://@c8y/ngx-components/core/router/empty.component.ts","ng://@c8y/ngx-components/core/router/router.module.ts","ng://@c8y/ngx-components/core/quicklink/quick-link.component.ts","ng://@c8y/ngx-components/core/quicklink/quick-link.module.ts","ng://@c8y/ngx-components/core/realtime/realtime.service.ts","ng://@c8y/ngx-components/core/realtime/operation-bulk-realtime.service.ts","ng://@c8y/ngx-components/core/realtime/managed-object-realtime.service.ts","ng://@c8y/ngx-components/core/realtime/realtime.model.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { flatten, isFunction, sortBy } from 'lodash-es';\nimport { combineLatest, defer, from, isObservable, Observable, of, race } from 'rxjs';\nimport { filter, map, merge, startWith, switchMap } from 'rxjs/operators';\n\nexport function fromTrigger(router, refresh, factories) {\n return router.events.pipe(\n filter(evt => evt instanceof NavigationEnd),\n merge(refresh),\n startWith(1),\n switchMap(() => fromFactories(factories, router))\n );\n}\nexport function fromFactories<T>(\n factories?,\n router?: Router,\n withFirstEmpty = true\n): Observable<T[]> {\n return !Array.isArray(factories) || factories.length < 1\n ? of([])\n : defer(() => {\n const factoryObservables = resolveInjectedFactories(factories).map(f => {\n return toObservable(\n Array.isArray(f) ? f : f && isFunction(f.get) ? f.get(getActivatedRoute(router)) : [f],\n withFirstEmpty\n );\n });\n return combineLatest(...factoryObservables);\n }).pipe(map(results => sortByPriority([].concat(...results))));\n}\n\nexport function resolveInjectedFactories(factories) {\n return flatten(factories.map(f => (isFunction(f) ? f() : [f])));\n}\n\nexport function stateToFactory<T>(componentsState): ExtensionFactory<T> {\n const components$ = componentsState.pipe(map((componentSet: Set<T>) => Array.from(componentSet)));\n return { get: () => components$ };\n}\n\nexport function sortByPriority(items) {\n return sortBy(items, 'priority');\n}\n\nfunction toObservable(factoryResult, withFirstEmpty) {\n let observable;\n if (!factoryResult) {\n return of([]);\n } else if (typeof factoryResult.then === 'function' || isObservable(factoryResult)) {\n if (withFirstEmpty) {\n const forceObservable = from(factoryResult);\n const withEmptyFirst = forceObservable.pipe(startWith([]));\n observable = race(forceObservable, withEmptyFirst);\n } else {\n observable = from(factoryResult);\n }\n } else {\n observable = of(factoryResult);\n }\n return observable.pipe(\n map(result => (Array.isArray(result) ? result : [result]).filter(item => !!item))\n );\n}\n\n/**\n * Allows to extend the existing applications from a module.\n */\nexport interface ExtensionFactory<T> {\n /**\n * Allows to resolve the data of an extension point.\n * The return value can be a Promise or Observable\n * (allowing for asynchronous data resolution).\n *\n * @param activatedRoute The current activated route (if possible to resolve).\n */\n get(activatedRoute?: ActivatedRoute): Observable<T[] | T> | Promise<T[] | T> | T[] | T;\n}\n\n/**\n * Extension points allow to extend the application from\n * any module\n */\nexport interface ExtensionPoint<T> {\n /**\n * Observable that emits of array of extensions active at any give time\n */\n readonly items$: Observable<T[]>;\n /**\n * Call the extension factories to refresh them.\n */\n refresh();\n}\n\n/**\n * Helper function to get the activated route in\n * a service (as ActivatedRoute injection only\n * works in components). Works as long as we only use\n * a tree and no child is active at the same time.\n *\n * @param router The current router\n */\nexport function getActivatedRoute(router: Router) {\n if (router && router.routerState && router.routerState.root) {\n let route = router.routerState.root;\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n }\n}\n","import { Observable, BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\n/**\n * A abstract state which should be included in each state.\n * @abstract\n */\nexport abstract class StateService {\n /**\n * Saves the state. Should not be accessible directly. Use map or the getter to access\n * the state. Use functions in the implementation to change the state.\n */\n protected abstract state$: BehaviorSubject<any> | any;\n\n /**\n * Should return the current state of this StateService\n */\n abstract get state();\n\n /**\n * Maps to a property and just returns that property.\n * @param mappedProperty The property to map to.\n */\n map(mappedProperty: (stateProperty) => any): Observable<any> {\n return this.state$.pipe(map(mappedProperty), distinctUntilChanged());\n }\n\n /**\n * Emits a new state.\n */\n protected emitNewState() {\n this.state$.next(this.state);\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport {\n ExtensionPoint,\n fromTrigger,\n sortByPriority,\n stateToFactory\n} from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { ActionBarItem } from './action-bar.model';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_ACTION_BAR = new InjectionToken('ActionBarFactory');\n\n/**\n * A service which defines action-bar items.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionBarService extends StateService implements ExtensionPoint<ActionBarItem> {\n items$: Observable<ActionBarItem[]>;\n readonly refreshTrigger = new Subject();\n protected state$ = new BehaviorSubject<Set<ActionBarItem>>(new Set<ActionBarItem>());\n\n constructor(private injector: Injector, router: Router) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_ACTION_BAR, []),\n stateToFactory(this.state$)\n ]).pipe(\n map((items: ActionBarItem[]) => sortByPriority(items)),\n shareReplay(1)\n );\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<ActionBarItem> {\n return this.state$.value;\n }\n\n refresh() {\n this.refreshTrigger.next();\n }\n\n /**\n * Adds a new item to the action bar in the header and emits a state change.\n * @param item The item to add.\n */\n add(item: ActionBarItem) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an action bar item from the header and emits a state change.\n * @param item The item to remove.\n */\n remove(item: ActionBarItem) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","import { Injector, Injectable, InjectionToken } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { StateService } from '../common/state-service.abstract';\nimport { Action, ActionFactory } from './action.model';\nimport {\n fromTrigger,\n ExtensionPoint,\n stateToFactory,\n sortByPriority\n} from '../common/extension-hooks';\nimport { map, shareReplay } from 'rxjs/operators';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_ACTION = new InjectionToken('ActionFactory');\n\n/**\n * A service which defines global actions.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionService extends StateService implements ExtensionPoint<Action> {\n items$: Observable<Action[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<Action>>(new Set<Action>());\n\n constructor(private injector: Injector, router: Router) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_ACTION, []),\n stateToFactory(this.state$)\n ]).pipe(\n map((items: Action[]) => sortByPriority(items)),\n shareReplay(1)\n );\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<Action> {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the actions in the header and emits a state change.\n * @param item The item to add.\n */\n add(item: Action) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an action from the header and emits a state change.\n * @param item The item to remove.\n */\n remove(item: Action) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","// Just for translation annotation\n// Note: Own file because of conflicts if put in barrel directly.\nexport const _ = (str) => str;\nexport function gettext(str) {\n return str;\n}\n","import { Alert } from './alert.model';\nimport { BehaviorSubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { StateService } from '../common/state-service.abstract';\nimport { gettext } from '../i18n/gettext';\n\ntype alertType = 'success' | 'warning' | 'danger' | 'info' | 'system';\n/**\n * A service which allows to display alerts.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AlertService extends StateService {\n /**\n * Returns all alerts.\n * @readonly\n */\n get state() {\n return this.state$.value;\n }\n state$ = new BehaviorSubject<Alert[]>([]);\n\n private MAX_ALERTS = 3;\n private ALERT_TIMEOUT = 3000;\n\n /**\n * Adds a new alert to the current state.\n */\n add(alert: Alert) {\n this.addAlert(alert);\n }\n\n /**\n * Adds a alert by text.\n */\n addByText(type: alertType, txt: string, detailedData?: string): void {\n this.addAlert({ text: txt, type, detailedData });\n }\n\n /**\n * Returns all alerts.\n * @deprecated Use alertService.alerts instead.\n */\n list(): Alert[] {\n return this.state;\n }\n\n /**\n * Remove an alert from the current state.\n */\n remove(alert: Alert) {\n this.changeAlerts(this.state.filter(item => !this.areSame(alert, item)));\n }\n\n /**\n * Updates matching alert with provided values.\n */\n update(alert: Alert, fieldsToUpdate: Partial<Alert>) {\n this.changeAlerts(\n this.state.map(item => {\n if (this.areSame(alert, item)) {\n Object.assign(item, fieldsToUpdate);\n }\n return item;\n })\n );\n }\n\n /**\n * Removes last danger alert. Replacement for silentError.\n *\n * @example\n * ```typescript\n * try {\n * // something that might throw a danger server msg\n * } catch (ex) {\n * this.alarmService.removeLastDanger();\n * }\n * ```\n */\n removeLastDanger() {\n const firstDangerAlarm = this.state.reverse().find(({ type }) => type === 'danger');\n this.changeAlerts(this.state.filter(alarm => alarm !== firstDangerAlarm));\n }\n\n /**\n * Shorthand for a save successful alert.\n * @param savedObject The object which was saved.\n * @return A function that can be executed to show the msg.\n */\n saveSuccess(savedObject: string) {\n return () => {\n const text = `${savedObject} saved successfully`;\n this.addByText('success', text);\n };\n }\n\n /**\n * Shorthand for a create successful alert.\n * @param createdObject The object which was created.\n * @return A function that can be executed to show the msg.\n */\n createSuccess(createdObject) {\n return () => {\n const text = `${createdObject} created successfully`;\n this.addByText('success', text);\n };\n }\n\n /**\n * Clears all alerts.\n */\n clearAll() {\n this.changeAlerts([]);\n }\n\n /**\n * A shorthand to display a simple success message.\n * @param text The success text.\n * @param detailedData The text with additional information.\n */\n success(text: string, detailedData?: string) {\n this.addByText('success', text, detailedData);\n }\n\n /**\n * A shorthand to display a simple danger message.\n * @param text The danger text.\n * @param detailedData The text with additional information.\n */\n danger(text: string, detailedData?: string) {\n this.addByText('danger', text, detailedData);\n }\n\n /**\n * A shorthand to display a simple info message.\n * @param text The info text.\n * @param detailedData The text with additional information.\n */\n info(text: string, detailedData?: string) {\n this.addByText('info', text, detailedData);\n }\n\n /**\n * A shorthand to display a simple warning message.\n * @param text The warning text.\n * @param detailedData The text with additional information.\n */\n warning(text: string, detailedData?: string) {\n this.addByText('warning', text, detailedData);\n }\n\n addServerFailure(error: any, type: alertType = 'danger') {\n const { data, res } = error;\n let text = data && data.message ? data.message : null;\n let detailedData;\n if (data) {\n if (typeof data === 'object') {\n detailedData = data.exceptionMessage;\n } else if (typeof data === 'string') {\n detailedData = data;\n }\n }\n const hasRelevantMessage = !!(text || detailedData);\n if (!text) {\n text = gettext('A server error occurred.');\n }\n if (!hasRelevantMessage) {\n detailedData = {\n status: res.status,\n statusText: res.statusText,\n url: res.url\n };\n }\n\n this.addAlert({\n type,\n text,\n detailedData\n });\n }\n\n areSame(alert1: Alert, alert2: Alert) {\n return (\n alert1.text === alert2.text &&\n alert1.type === alert2.type &&\n alert1.detailedData === alert2.detailedData &&\n alert1.onClose === alert2.onClose &&\n alert1.onDetail === alert2.onDetail\n );\n }\n\n private changeAlerts(newAlerts: Alert[]) {\n this.state$.next(newAlerts);\n }\n\n private addAlert(alert: Alert): void {\n if (!alert.text && !alert.type) {\n throw new Error('Cannot add empty alert');\n }\n\n const alertAlreadyAdded = this.state.find(item => this.areSame(alert, item));\n if (alertAlreadyAdded) {\n return;\n }\n\n this.changeAlerts([...this.state, alert]);\n this.hideAutomaticallyIfNeeded(alert);\n this.removeOldestIfMax();\n }\n\n private hideAutomaticallyIfNeeded(alert: Alert) {\n const isSuccess = alert.type === 'success';\n const noDetails = !alert.detailedData;\n let alertTimeout = isSuccess && noDetails ? this.ALERT_TIMEOUT : 0;\n if (typeof alert.timeout !== 'undefined') {\n alertTimeout = alert.timeout;\n }\n if (alertTimeout) {\n setTimeout(() => this.remove(alert), alertTimeout);\n }\n }\n\n private removeOldestIfMax() {\n if (this.state.length > this.MAX_ALERTS) {\n const [, ...firstRemoved] = this.state;\n this.changeAlerts(firstRemoved);\n }\n }\n}\n","/*\n * -----------------------------WARNING---------------------------------\n * This file has an *exact* copy in packages/cli/src/webpack.\n * Any changes to this file must be reflected there, too.\n */\nexport class ApplicationOptions {\n /** Application name (saved to the server). */\n name: string;\n /** Application context path (saved to the server). */\n contextPath: string;\n /** Application key (saved to the server). */\n key: string;\n /** Set to `true` if the application is hybrid and uses Angular and AngularJS simultaneously. */\n upgrade?: boolean;\n /** Path to the branding entry file. */\n brandingEntry?: string;\n /** Path to tsccnfig.json file if TypeScript is used (default: ./tsconfig.json). */\n tsConfigPath?: string;\n /** Entry module for Angular compiler (only used with lazy loaded routes), e.g. `'app.module.ts#AppModule'`. */\n entryModule?: string;\n /** Path to custom index.html (otherwise default one will be used). */\n indexTemplate?: string;\n /** URL to dynamically fetched options. */\n dynamicOptionsUrl?: string;\n /** URL to favicon. */\n faviconUrl?: string;\n /** URL to *.css file which will replace default branding. */\n brandingUrl?: string;\n /** Object with properties that will be converted to CSS custom variables. */\n brandingCssVars?: {\n [key: string]: string;\n };\n /**\n * Allows for adding or overriding languages available in the application.\n *\n * Its keys are language codes and its values are objects with the following properties:\n *\n * - `name`: English name of the language,\n * - `nativeName`: native name of the language,\n * - `url`: full URL to JSON file with compiled translations;\n * if not defined, translations will be loaded from `${localePath}/${langCode}.json`.\n *\n * Example:\n * ```json\n * \"languages\": {\n * \"de\": {\n * \"name\": \"German\",\n * \"nativeName\": \"Deutsch\",\n * \"url\": \"/apps/public/ui-assets/de.json\"\n * }\n * }\n * ```\n */\n languages?: {\n [langCode: string]: {\n name: string;\n nativeName: string;\n url: string;\n };\n };\n /**\n * Allows for adding custom translations. It is an optional property.\n *\n * Its keys are language codes (https://cumulocity.com/guides/users-guide/getting-started/#a-name-languages-a-available-languages)\n * and its values are objects with key-value pairs, where the key is the original string in English and the value - its translation.\n *\n * - `Home`: \"Startseite\"\n *\n * For example you can add the translation of your custom cookie banner configured in the branding settings:\n * ```json\n * \"i18nExtra\": {\n * \"de\": {\n * \"About cookies on Cumulocity IoT\": \"Informationen zu Cookies in Cumulocity IoT\",\n * \"Click Agree and Proceed to accept cookies and go directly to the platform or click on Privacy Policy to see detailed descriptions of the used cookies.\": \"Klicken Sie auf Zustimmen und fortfahren, um Cookies zu akzeptieren und direkt zur Plattform zu gelangen, oder klicken Sie auf Datenschutzrichtlinie, um detaillierte Beschreibungen der verwendeten Cookies anzuzeigen.\"\n * }\n * }\n * ```\n */\n i18nExtra?: {\n [langCode: string]: {\n [key: string]: string;\n };\n };\n /** Path to the folder from which *.po files will be loaded. */\n localePath?: string;\n /** Array of URLs to additional *.css files to be loaded at runtime. */\n extraCssUrls?: string[];\n /** Documentation links settings. */\n docs?: {\n /** Hide default links to documentation. */\n noDefault: boolean;\n /** List of regex strings. Matching default docs URLs will be hidden. */\n excludeDefault: string[];\n /** Additional links to be displayed. */\n links: Array<{\n /** Icon classes with `c8y-icon`, e.g. `c8y-icon c8y-icon-add-user` or `c8y-icon c8y-icon-device-connect`. */\n icon: string;\n label: string;\n url: string;\n type: 'doc' | 'quicklink';\n }>;\n };\n /** Application icon to be displayed in app switcher and header bar. */\n icon?: {\n class?: string;\n url?: string;\n };\n\n // These are the old options\n /** Hide application in app switcher (saved to the server). */\n noAppSwitcher?: boolean;\n /** HTML page title. */\n globalTitle?: string;\n /** Hide \"powered by\" and version info at the bottom of the navigator and in the user menu. */\n hidePowered?: boolean;\n /** URL to support page (set to `false` to hide the link). */\n supportUrl?: boolean | string;\n /**\n * Replacement string for `user` field in audit logs for actions performed by a support user\n * (available placeholders: `{{support_user}}`, `{{supported_user}}`).\n */\n supportUserString?: string;\n /** Enable or disable the right drawer. */\n rightDrawer?: boolean;\n /** Enable or disable breadcrumbs in the header for groups and devices (default: false). */\n breadcrumbs?: boolean;\n /** Collapse navigator on initial load. */\n hideNavigator?: boolean;\n /** Show tabs horizontally or vertically. */\n tabsHorizontal?: boolean;\n /** Additional link to display on login screen. */\n loginExtraLink?: {\n url: string;\n label: string;\n };\n /** Enable or disable storage limitation feature. */\n storageLimitationFeatureEnabled?: boolean;\n /** Name of company handling support requests from app users (displayed in notification message). */\n companyName?: string;\n /** URL template for documentation links (default: `'${docsBaseUrl}${partialUrl}'`). */\n guideHrefTemplate?: string;\n /** Base URL for documentation links. */\n docsBaseUrl?: string;\n /** CSP string to be added to `index.html`. */\n contentSecurityPolicy?: string;\n /** Enables cloud sensor wizard */\n sensorPhone?: boolean;\n /** Legacy list of imported plugins. */\n imports?: string[];\n /** Show or hide a newsletter subscription checkbox in edit user modal. */\n newsletter?: boolean;\n /** Indicates whether the entry point is traversed from legacy cumulocity*.json app manifest. */\n legacy?: boolean;\n /** Path to the root node_modules dir (useful when working in monorepo setup, e.g. yarn workspaces). */\n rootNodeModulesPath?: string;\n /** Cookie Banner configuration */\n cookieBanner?: {\n cookieBannerTitle?: string;\n cookieBannerText?: string;\n policyUrl?: string;\n };\n /** A key for the product experience software Gainsight. */\n gainsightKey?: string;\n}\n","import { InjectionToken, Optional, Inject, Injectable } from '@angular/core';\nimport { camelCase, isUndefined } from 'lodash-es';\nimport { ApplicationOptions } from './ApplicationOptions';\nimport { ExtensionFactory } from './extension-hooks';\nimport { SystemOptionsService, TenantOptionsService } from '@c8y/ngx-components/api';\n\nexport const HOOK_OPTIONS = new InjectionToken<ExtensionFactory<ApplicationOptions>>('App options');\n\n/**\n * A service that allows to set or get application options\n * which configure the default behavior of the UI.\n */\n@Injectable()\nexport class OptionsService extends ApplicationOptions {\n [key: string]: any;\n constructor(\n @Optional() @Inject(HOOK_OPTIONS) options,\n private systemOptionsService: SystemOptionsService,\n private tenantOptionService: TenantOptionsService\n ) {\n super();\n this.setupOptions(options);\n }\n\n /**\n * Returns an application option used to configure the UI.\n * @param optionKey The application options key.\n * @param defaultValue A value to return if non is set.\n */\n get(optionKey: keyof OptionsService, defaultValue?: any) {\n let value = this[optionKey];\n if (typeof value === 'undefined') {\n value = this[camelCase(optionKey)];\n }\n return typeof value !== 'undefined' ? value : defaultValue;\n }\n\n /**\n * Sets an application option.\n * @param key The key to set.\n * @param value The value to set.\n */\n set(key: string, value: any) {\n this[camelCase(key)] = value;\n }\n\n /**\n * Gets support url from tenant options.\n * If response returns '404 not found' it gets the support url from application options.\n * If the support link within application options is not provided the UI will use the system options.\n * Is the support link explicitly set to false it will be hidden.\n * NOTE: The tenant option endpoint returns the system option setting if non is set on the tenant.\n *\n * @returns Returns support url or false.\n */\n async getSupportUrl() {\n if (isUndefined(this.supportUrl)) {\n this.supportUrl = await this.getTenantOption('configuration', 'system.support.url');\n }\n return isUndefined(this.supportUrl) ? false : this.supportUrl;\n }\n\n /**\n * Returns if the tenant allows to show the activate-support user menu entry.\n * Note: Only if system-level support-user/enabled is false we can activate it at tenant level.\n */\n async getActivateSupportUser() {\n const option = await this.getSystemOption('support-user', 'enabled', true);\n return !option;\n }\n\n /**\n * Gets a value from the system service and parses it.\n *\n * @param category The category for this option.\n * @param key The key for that option.\n * @param defaultValue The default if the option was not found.\n */\n async getSystemOption(category: string, key: string, defaultValue?: any) {\n return this.getOptionFromService(category, key, this.systemOptionsService, defaultValue);\n }\n\n /**\n * Gets a value from the tenant service and parses it.\n *\n * @param category The category for this option.\n * @param key The key for that option.\n * @param defaultValue The default if the option was not found.\n */\n async getTenantOption(category: string, key: string, defaultValue?: any) {\n return this.getOptionFromService(category, key, this.tenantOptionService, defaultValue);\n }\n\n private setupOptions(options: any[] | null) {\n if (options) {\n if (!Array.isArray(options)) {\n options = [options];\n }\n options.forEach(optionMap => {\n if (optionMap) {\n Object.keys(optionMap).forEach(key => {\n this[camelCase(key)] = optionMap[key];\n });\n }\n });\n }\n }\n\n private async getOptionFromService(category, key, service, defaultValue) {\n try {\n const { data } = await service.detail({ category, key });\n return this.parseOptionRawValue(data.value, defaultValue);\n } catch (ex) {\n return defaultValue;\n }\n }\n\n private parseOptionRawValue(rawValue, defaultValue) {\n let value;\n try {\n value = JSON.parse(rawValue);\n } catch (e) {\n value = isUndefined(rawValue) ? defaultValue : rawValue;\n }\n return value;\n }\n}\n","import { Injectable, isDevMode } from '@angular/core';\nimport { keys } from 'lodash-es';\nimport { BehaviorSubject } from 'rxjs';\nimport { scan, distinctUntilChanged, map, filter } from 'rxjs/operators';\nimport { StateService } from './state-service.abstract';\nimport { OptionsService } from './options.service';\nimport { FetchClient } from '@c8y/client';\n\nimport { ApplicationService, IUser, ICurrentTenant } from '@c8y/client';\nimport { ApiService } from '@c8y/ngx-components/api';\n\n@Injectable()\nexport class AppStateService extends StateService {\n state$: BehaviorSubject<any> = new BehaviorSubject<any>({\n app: {\n name: this.options.name,\n contextPath: this.getCurrentContextPath() || this.options.contextPath\n },\n supportUrl: this.options.supportUrl,\n lang: this.options.get('defaultLanguage', 'en'),\n langs: this.getLangs(),\n langsDetail: this.options.languages,\n loginOptions: this.options.loginOptions,\n activateSupportUserAvailable: undefined,\n versions: {\n backend: undefined,\n ui: this.options.versions || { ngx: undefined }\n },\n hidePowered: this.options.hidePowered,\n isLoading: false,\n showRightDrawer: this.options.rightDrawer,\n loginExtraLink: this.options.get('login_extra_link'),\n newsletter: this.options.newsletter\n });\n currentSupportUserName: BehaviorSubject<string | null> = new BehaviorSubject(null);\n currentUser: BehaviorSubject<IUser | null> = new BehaviorSubject(null);\n currentTenant: BehaviorSubject<ICurrentTenant | null> = new BehaviorSubject(null);\n\n constructor(\n private applicationService: ApplicationService,\n public apiService: ApiService,\n private options: OptionsService,\n private fetchClient: FetchClient\n ) {\n super();\n this.apiService.calls\n .pipe(\n filter(({ url }) => !/cep\\/realtime/.test(url)),\n map(({ phase }) => (phase === 'start' ? 1 : -1)),\n scan((count, item) => count + item, 0),\n map(count => count > 0),\n distinctUntilChanged()\n )\n .subscribe(isLoading => (this.state.isLoading = isLoading));\n\n this.assignApplicationKeyToDefaultHeaders();\n }\n\n assignApplicationKeyToDefaultHeaders() {\n if (!isDevMode()) {\n this.fetchClient.defaultHeaders = {\n ...(this.fetchClient.defaultHeaders || {}),\n 'X-Cumulocity-Application-Key': this.options.key\n };\n }\n }\n\n /**\n * Returns the current state.\n */\n get state() {\n return this.state$.value;\n }\n\n getLangs() {\n const { languages } = this.options;\n return languages ? keys(languages).filter(k => languages[k]) : [];\n }\n\n /**\n * Returns the correct UI version. In hybrid mode for angular and ngx.\n */\n get uiVersion() {\n const version = this.state.versions.ui;\n return version.ngx || version.ng1;\n }\n\n /**\n * Loads the app manifest. If no access -> throw an error to verify app access.\n */\n async loadManifest() {\n try {\n const { application } = (await this.applicationService.detail(\n `${this.state.app.contextPath}/manifest`\n )).data as any;\n this.state.app.manifest = application;\n this.loadDefaultOptions();\n } catch (ex) {\n throw ex;\n }\n }\n\n /**\n * Checks current users application list and matches it against given application name.\n * Returns true if application is in the list.\n * @param name application name\n */\n async isApplicationAvailable(name: string) {\n const { data } = await this.applicationService.listByUser(undefined, { pageSize: 100 });\n return data.some(app => app.name === name);\n }\n\n /**\n * Sets current user (including support user).\n * @param userInfo Info about current user and support user to be set.\n */\n setUser(userInfo: { user: IUser; supportUserName: string }) {\n this.currentSupportUserName.next(userInfo.supportUserName || null);\n this.currentUser.next(userInfo.user);\n }\n\n private getCurrentContextPath() {\n const match = window.location.pathname.match(/\\/apps\\/(public\\/){0,1}(.+?)(\\/|\\?|#|$)/);\n return match && match[2];\n }\n\n private async loadDefaultOptions() {\n this.state.supportUrl = await this.options.getSupportUrl();\n this.state.activateSupportUserAvailable = await this.options.getActivateSupportUser();\n this.state.versions.backend = await this.options.getSystemOption('system', 'version');\n try {\n this.showIncompatibleVersionsError();\n } catch (ex) {\n // ignore this\n }\n this.emitNewState();\n }\n\n private showIncompatibleVersionsError() {\n const uiVersion = this.state.versions.ui.ngx;\n const backendVersion = this.state.versions.backend;\n const uiVersionArray = uiVersion\n .replace(/[^\\d.]/g, '')\n .split('.')\n .map(Number);\n const beVersionArray = backendVersion\n .replace(/[^\\d.]/g, '')\n .split('.')\n .map(Number);\n const multiplier = Math.pow(\n 10,\n Math.ceil(Math.log10(Math.max(...uiVersionArray, ...beVersionArray) + 1))\n );\n const sumReducer = (acc, cur) => acc + cur;\n const calculateVersionMapper = (curr, idx) => curr * (multiplier / Math.pow(10, idx));\n const uiVersionNumber = uiVersionArray.map(calculateVersionMapper).reduce(sumReducer);\n const beVersionNumber = beVersionArray.map(calculateVersionMapper).reduce(sumReducer);\n const showError = uiVersionNumber > beVersionNumber;\n if (showError) {\n const errorContent = `You are running version ${uiVersion} of the UI and version ${backendVersion} of backend!`;\n console.log('%c ' + errorContent, 'font-weight: bold; font-size: 30px; color: red;');\n }\n }\n}\n","import { TemplateRef, Type } from '@angular/core';\nimport { matches, snakeCase } from 'lodash-es';\nimport { NavigatorNodeData } from './navigator-node-data';\nimport { PopoverConfirmComponent } from '../modal/popover-confirm.component';\n\nexport interface ClickOptions {\n icon?: boolean;\n expander?: boolean;\n open?: boolean;\n $event?: any; // TODO: add proper type\n}\n\nexport class NavigatorNode {\n icon: string;\n iconTemplate?: TemplateRef<any>;\n iconComponent?: Type<any>;\n children: NavigatorNode[] = [];\n label;\n path: string;\n parents: NavigatorNode[] = [];\n loading?: boolean;\n routerLinkExact: boolean = true;\n open: boolean = false;\n hidden: boolean = false;\n draggable: boolean = false;\n droppable: boolean = false;\n dragged = false;\n draggedHover = false;\n confirm: PopoverConfirmComponent = undefined;\n private _id;\n private _priority: number = 0;\n private expandDragTimeout;\n\n get hasChildren() {\n return this.children.length > 0;\n }\n\n get id() {\n return this._id || 'navigator_node_' + snakeCase(this.label);\n }\n\n set id(id) {\n this._id = id;\n }\n\n get priority() {\n if (this._priority) {\n return this._priority;\n } else {\n const childrenPriorities = this.children.map(({ priority }) => priority || 0);\n if (childrenPriorities.length) {\n return childrenPriorities.length ? Math.max(...childrenPriorities) : 0;\n }\n return 0;\n }\n }\n\n set priority(priority) {\n this._priority = priority;\n }\n\n constructor(data?: NavigatorNodeData) {\n this.update(data);\n }\n\n openOnStart(url: string) {\n return false;\n }\n\n add(node: NavigatorNode) {\n if (node === this) {\n throw new Error('Adding node to itself');\n }\n if (this.children.indexOf(node) === -1) {\n this.children.push(node);\n }\n if (node.parents.indexOf(this) === -1) {\n node.parents.push(this);\n }\n this.updateChildren();\n }\n\n remove(node: NavigatorNode) {\n const ix = this.children.indexOf(node);\n const pix = node.parents.indexOf(this);\n if (ix > -1) {\n this.children.splice(ix, 1);\n }\n if (pix > -1) {\n node.parents.splice(pix, 1);\n }\n this.updateChildren();\n }\n\n update(data?: NavigatorNodeData) {\n if (data) {\n Object.assign(this, data);\n if (data.hidden !== undefined) {\n this.parents.forEach(p => {\n p.updateHidden();\n });\n }\n }\n }\n\n find(predicate) {\n if (typeof predicate === 'string') {\n const compareLabel = predicate.toLocaleLowerCase();\n predicate = ({ label }) => compareLabel === label.toLowerCase();\n }\n if (typeof predicate === 'object') {\n predicate = matches(predicate);\n }\n if (typeof predicate !== 'function') {\n throw new Error('Invalid search predicate');\n }\n return this.children.reduce(\n (found, child) => found || child.find(predicate),\n this.children.find(predicate)\n );\n }\n\n empty() {\n this.children.length = 0;\n }\n\n click(options: ClickOptions = {}) {\n // do nothing\n }\n\n drop($event) {\n $event.stopPropagation();\n clearTimeout(this.expandDragTimeout);\n }\n\n dragStart($event) {\n $event.stopPropagation();\n // we can't pass a object to setData, so we do it via service\n // set data is still needed, to make the drag&drop work\n $event.dataTransfer.setData('node', 'node');\n this.dragged = true;\n }\n\n dragEnd($event) {\n $event.stopPropagation();\n this.dragged = false;\n $event.dataTransfer.clearData();\n }\n\n get canDrop() {\n return this.droppable;\n }\n\n get canNavigate() {\n return typeof this.path !== 'undefined';\n }\n\n dragEnter($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.draggedHover = true;\n if (!this.open) {\n this.expandDragTimeout = setTimeout(() => this.expand(), 1000);\n }\n }\n\n dragLeave($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.draggedHover = false;\n clearTimeout(this.expandDragTimeout);\n }\n\n expand() {\n if (!this.open) {\n this.open = true;\n this.click({ open: true, expander: true });\n }\n }\n\n traverse(callback) {\n if (this.children) {\n this.children.forEach(child => {\n callback(child);\n child.traverse(callback);\n });\n }\n }\n\n destroy() {\n // nothing todo here\n }\n\n protected updateChildren() {\n this.sort();\n this.updateHidden();\n }\n\n protected sort() {\n this.children.sort((a, b) => {\n if (a.priority > b.priority) {\n return -1;\n } else if (a.priority < b.priority) {\n return 1;\n } else if ((a.label || '').toLowerCase() < (b.label || '').toLowerCase()) {\n return -1;\n } else if ((a.label || '').toLowerCase() > (b.label || '').toLowerCase()) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n protected updateHidden() {\n if (typeof this.path === 'undefined') {\n this.hidden = !this.children.some(({ hidden }) => !hidden);\n }\n }\n}\n","import { NavigatorNode } from './navigator-node';\nimport { NavigatorNodeData } from './navigator-node-data';\nimport { assign } from 'lodash-es';\n\nexport class NavigatorNodeRoot extends NavigatorNode {\n addRoot(nodeData: Partial<NavigatorNodeData>) {\n const { parent } = nodeData;\n const node = this.createNode(nodeData);\n let localParent;\n\n if (parent) {\n if (typeof parent === 'object') {\n localParent = this.find(parent.label);\n if (localParent) {\n localParent.update(parent);\n }\n } else if (typeof parent === 'string' || typeof parent === 'function') {\n localParent = this.find(parent);\n }\n\n if (!localParent) {\n localParent = this.createNode(parent);\n if (!this.find((n) => localParent === n)) {\n this.add(localParent);\n }\n }\n }\n\n (localParent || this).add(node);\n return node;\n }\n\n createNode(nodeData) {\n if (nodeData instanceof NavigatorNode) {\n return nodeData;\n }\n if (typeof nodeData === 'string') {\n return new NavigatorNode({ label: nodeData });\n }\n if (typeof nodeData === 'object') {\n return new NavigatorNode({ ...nodeData, parent: undefined });\n }\n throw new Error('Wrong type of node data');\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ExtensionPoint, fromTrigger, sortByPriority, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { NavigatorNode } from './navigator-node';\nimport { NavigatorNodeData } from './navigator-node-data';\nimport { NavigatorNodeRoot } from './navigator-node-root';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_NAVIGATOR_NODES = new InjectionToken('NavigatorNodesFactory');\n\n/**\n * A service which defines the navigator.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class NavigatorService extends StateService implements ExtensionPoint<NavigatorNode> {\n items$: Observable<NavigatorNode[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<NavigatorNode>>(new Set<NavigatorNode>());\n firstUrl = true;\n\n constructor(\n private injector: Injector,\n private router: Router\n ) {\n super();\n const rootNode = new NavigatorNodeRoot();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_NAVIGATOR_NODES, []),\n stateToFactory(this.state$),\n ]).pipe(\n map((nodes: Partial<NavigatorNodeData[]>) => {\n const noParent = nodes.filter(node => !node.parent);\n const withParent = nodes.filter(node => node.parent);\n\n // Based on the sortedNodes array, the nodes are sequentially created.\n // Nodes sorting is done in two steps to have the top-level nodes first.\n // This way, by the time we are adding a child node, the parent node is already present.\n const sortedNodes = sortByPriority(noParent).concat(sortByPriority(withParent));\n rootNode.empty();\n sortedNodes.forEach((node) => rootNode.addRoot(node));\n return rootNode.children;\n }),\n shareReplay(1)\n );\n }\n\n openOnFirstUrl(node: NavigatorNode) {\n if (this.firstUrl && !!node.path) {\n return this.router.isActive(node.path, node.routerLinkExact) || node.openOnStart(this.router.url);\n }\n return false;\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<NavigatorNode> {\n return this.state$.value;\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Adds a new node to the navigator.\n * @param nav The node to add.\n */\n add(item: NavigatorNode) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes a node from the navigator.\n * @param nav The node ro remove.\n */\n remove(item: NavigatorNode) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map, combineLatest, debounceTime } from 'rxjs/operators';\nimport { OptionsService } from '../common/options.service';\nimport { StateService } from '../common/state-service.abstract';\nimport { NavigatorService } from '../navigator/navigator.service';\nimport { Header } from './header.model';\n\n/**\n * A service which defines header functions.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class HeaderService extends StateService {\n header$: Observable<Header>;\n navigatorOpen$: Observable<boolean>;\n\n hasItemsInNavigator$ = this.navigatorService.items$.pipe(\n map(({ length }) => !!length),\n distinctUntilChanged()\n );\n\n state$: BehaviorSubject<Header> = new BehaviorSubject<Header>({\n title: undefined,\n nav: {\n open: false\n }\n });\n\n title = undefined;\n\n constructor(private navigatorService: NavigatorService, private options: OptionsService) {\n super();\n this.header$ = this.map((header: Header) => header);\n this.navigatorOpen$ = this.map(({ nav }) => nav.open).pipe(\n combineLatest(this.hasItemsInNavigator$),\n map(([open, hasItems]) => open && hasItems)\n );\n const titleReference = document.querySelector('title');\n this.title = {\n elementRef: titleReference,\n originalValue: titleReference && titleReference.innerText\n };\n }\n\n get state() {\n return this.state$.value;\n }\n\n get navigatorHiddenOnStartup() {\n return this.options.hideNavigator;\n }\n\n get largeWidth() {\n return document.documentElement.clientWidth > 1200;\n }\n\n get shouldToggle() {\n return this.largeWidth && !this.navigatorHiddenOnStartup && !this.state.nav.open;\n }\n\n /**\n * Toggles the navigator open status.\n */\n toggleNavigator() {\n this.state.nav.open = !this.state.nav.open;\n this.emitNewState();\n }\n\n /**\n * Force to close the navigator.\n */\n closeNavigator() {\n this.state.nav.open = false;\n this.emitNewState();\n }\n\n /**\n * Configures navigation options.\n * @param config Object with the properties:\n * - open: Boolean\n */\n configNavigator(config: any = {}) {\n this.state.nav = Object.assign(this.state.nav, config);\n this.emitNewState();\n }\n\n /**\n * Change the application title.\n * @param newTitle The new title of the application.\n */\n changeTitle(newTitle?: any) {\n this.state.title = newTitle;\n this.emitNewState();\n }\n\n /**\n * Change the page title.\n * @param newTitle The new title of the page.\n */\n changePageTitle(newTitle?: string) {\n this.title.elementRef.innerText = newTitle\n ? `${newTitle} / ${this.title.originalValue}`\n : `${this.title.originalValue}`;\n }\n\n /**\n * This methods checks if the navigator toggles on startup\n * or if an item is added to the navigator node.\n * Delay of 300ms is intended for animation purpose.\n */\n verifyIfNavOpen() {\n this.hasItemsInNavigator$\n .pipe(debounceTime(300))\n .subscribe(hasItems => hasItems && this.shouldToggle && this.toggleNavigator());\n }\n\n shouldShowBreadcrumbs() {\n return this.options.breadcrumbs;\n }\n}\n","import { Injectable, InjectionToken, Injector, ViewContainerRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter, first, map, shareReplay } from 'rxjs/operators';\nimport { ExtensionPoint, fromTrigger, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { Tab } from './tab.model';\nimport { OptionsService } from '../common/options.service';\n\nexport const HOOK_TABS = new InjectionToken('TabsFactory');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TabsService extends StateService implements ExtensionPoint<Tab> {\n items$: Observable<Tab[]>;\n orientation$: Observable<string>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<Tab>>(new Set<Tab>());\n\n constructor(\n private injector: Injector,\n router: Router,\n private translateService: TranslateService,\n private options: OptionsService\n ) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_TABS, []),\n stateToFactory(this.state$)\n ]).pipe(\n map(tabs => this.prepareTabs(tabs)),\n shareReplay(1),\n distinctUntilChanged()\n );\n\n this.orientation$ = this.items$.pipe(\n map((tabs: Tab[]) => {\n const firstTabWithDefinedOrientation = tabs.find(tab => tab.orientation);\n if (firstTabWithDefinedOrientation) {\n return firstTabWithDefinedOrientation.orientation;\n }\n return this.options.tabsHorizontal ? 'horizontal' : 'vertical';\n }),\n distinctUntilChanged()\n );\n }\n\n prepareTabs(tabs) {\n return this.sortTabs(\n tabs\n .map(tab => ({\n ...tab,\n template: tab.template instanceof ViewContainerRef ? tab.template : undefined\n }))\n .filter((tab, index, self) => index === self.findIndex(t => t.path === tab.path))\n );\n }\n\n sortTabs(tabs) {\n return tabs.sort((a, b) => {\n const priorityOrder = (b.priority || 0) - (a.priority || 0);\n\n const aTranslatedLabel = this.translateService.instant(a.label);\n const bTranslatedLabel = this.translateService.instant(b.label);\n const translatedLabelOrder = aTranslatedLabel.localeCompare(bTranslatedLabel);\n\n return priorityOrder || translatedLabelOrder;\n });\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state(): Set<Tab> {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to tabs and emits state change\n * @param item The item to add.\n */\n add(item: Tab) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes a tab and emits a state change.\n * @param item The item to remove.\n */\n remove(item: Tab) {\n this.state.delete(item);\n this.emitNewState();\n }\n\n get firstTab$() {\n return this.items$.pipe(\n map(tabs => tabs[0]),\n filter(Boolean),\n first()\n );\n }\n}\n","import { combineLatest, distinctUntilChanged, map } from 'rxjs/operators';\n\nimport { ActionBarService } from '../action-bar/action-bar.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { Component } from '@angular/core';\nimport { HeaderService } from '../header/header.service';\nimport { NavigatorService } from '../navigator/navigator.service';\nimport { Observable } from 'rxjs';\nimport { OptionsService } from '../common/options.service';\nimport { TabsService } from '../tabs/tabs.service';\n\n@Component({\n selector: 'c8y-bootstrap',\n templateUrl: './bootstrap.template.html'\n})\nexport class BootstrapComponent {\n navigatorOpen$: Observable<boolean>;\n noAppsMargin$: Observable<boolean>;\n tabsOrientation: string;\n\n get showPoweredBy() {\n return !this.options.get('hidePowered');\n }\n\n constructor(\n public tabs: TabsService,\n public ui: AppStateService,\n public navigator: NavigatorService,\n public actionBar: ActionBarService,\n private options: OptionsService,\n public headerService: HeaderService\n ) {\n this.noAppsMargin$ = this.headerService.map(({ nav }) => !nav.open && nav.hiddenOnStartup);\n this.tabsOrientation = this.options.tabsHorizontal ? 'horizontal' : 'vertical';\n this.ui.map(({ lang }) => lang).pipe(\n distinctUntilChanged(),\n ).subscribe(() => {\n this.actionBar.refresh();\n });\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { fromTrigger, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { Breadcrumb, BreadcrumbItem } from './breadcrumb.model';\n\nexport const HOOK_BREADCRUMB = new InjectionToken('BreadcrumbFactory');\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BreadcrumbService extends StateService {\n items$: Observable<Breadcrumb[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<Breadcrumb>>(new Set<Breadcrumb>());\n private preferredPath: string;\n\n constructor(private injector: Injector, router: Router) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_BREADCRUMB, []),\n stateToFactory(this.state$)\n ]).pipe(\n map(breadcrumbs => this.sortByPreferredPath(breadcrumbs)),\n shareReplay(1)\n );\n }\n\n get state() {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the action bar in the header.\n * @param item The item to add.\n */\n add(item: Breadcrumb) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an action bar item from the header.\n * @param item The item to remove.\n */\n remove(item: Breadcrumb) {\n this.state.delete(item);\n this.emitNewState();\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Sets the crumb that contains that path to the top.\n * @param path The path to prefer.\n */\n selectPreferredByPath(path: string) {\n this.preferredPath = path;\n this.refresh();\n }\n\n sortByPreferredPath(breadcrumbs) {\n if (this.preferredPath) {\n return breadcrumbs.sort(bc =>\n bc.items.find((item: BreadcrumbItem) => !!item.path.match(this.preferredPath)) ? -1 : 1\n );\n }\n return breadcrumbs;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LANGUAGES = new InjectionToken('Languages');\n","import { InjectionToken } from '@angular/core';\n\nexport const LOCALE_PATH = new InjectionToken('Locale path');\n","import { InjectionToken } from '@angular/core';\n\nexport const HOOK_PATTERN_MESSAGES = new InjectionToken('Pattern Messages');\n","import { Injectable, Inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { mapValues, each } from 'lodash-es';\nimport { HOOK_PATTERN_MESSAGES } from './patterns-message.hook';\nimport { formatDate } from '@angular/common';\n\n/**\n * A service to translate messages by using regexp patterns.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class PatternMessagesService {\n translateService: TranslateService;\n patterns: any = {};\n pipes = {\n absoluteDate: (date: string|number|Date) =>\n formatDate(date, 'medium', this.translateService.currentLang),\n translate: (key) =>\n this.translateService.instant(key)\n };\n\n constructor(\n @Inject(HOOK_PATTERN_MESSAGES) patterns\n ) {\n each(patterns, (pattern) => {\n Object.assign(this.patterns, pattern);\n });\n }\n\n translate(message: string) {\n const translation = this.translateWithPatterns(message);\n return (translation !== message) ? translation : '';\n }\n\n private translateWithPatterns(message, patterns = this.patterns) {\n let translatedMessage = message;\n\n each(patterns, (patternCfg, pattern) => {\n const globalRegExp = new RegExp(pattern, 'g');\n let globalMatch;\n\n if (!globalRegExp.test(translatedMessage)) {\n return;\n }\n globalRegExp.test(''); // reset the regexp\n globalMatch = globalRegExp.exec(translatedMessage);\n while (globalMatch !== null) {\n const [ localMatch ] = globalMatch;\n\n const placeholderValues = mapValues(patternCfg.placeholders, (placeholder) => {\n const expr = placeholder.capture || placeholder;\n let replacement = localMatch.replace(new RegExp(pattern, 'g'), expr);\n\n if (placeholder.translate) {\n replacement = this.translateWithPatterns(replacement, placeholder.translate);\n }\n\n return replacement;\n });\n translatedMessage = translatedMessage.replace(\n localMatch,\n this.translateWithParams(patternCfg, placeholderValues)\n );\n\n globalMatch = globalRegExp.exec(translatedMessage);\n }\n });\n return translatedMessage;\n }\n\n private translateWithParams(patternCfg: any, params: any = {}) {\n const { defaultLang, currentLang, compiler } = this.translateService;\n const translations = this.translateService.store.translations[currentLang];\n const defaultTranslations = this.translateService.store.translations[defaultLang];\n const originalKey = patternCfg.gettext;\n\n let originalValue = originalKey;\n if (translations) {\n if (translations[originalKey]) {\n originalValue = translations[originalKey];\n } else if (defaultTranslations) {\n if (defaultTranslations[originalKey]) {\n originalValue = defaultTranslations[originalKey];\n }\n }\n }\n\n let key = originalKey;\n let value = originalValue;\n const interpolateParams = {\n ...params,\n noPatternMessages: true\n };\n\n let match;\n const pipeRegex = RegExp('{{\\\\s*([^\\\\s]+)\\\\s*\\\\|\\\\s*([^\\\\s]+)\\\\s*}}', 'g');\n // tslint:disable-next-line:no-conditional-assignment\n while ((match = pipeRegex.exec(originalKey)) !== null) {\n const [placeholder, paramName, pipeName] = match;\n if (this.pipes[pipeName]) {\n key = key.replace(placeholder, `{{${paramName}}}`);\n value = value.replace(placeholder, `{{${paramName}}}`);\n interpolateParams[paramName] = this.pipes[pipeName](params[paramName]);\n }\n }\n\n if (translations) {\n translations[key] = compiler.compile(value, currentLang);\n }\n return this.translateService.instant(key, interpolateParams);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PatternMessagesService } from './pattern-messages.service';\nimport {\n MissingTranslationHandler,\n MissingTranslationHandlerParams,\n TranslateParser,\n TranslateService\n} from '@ngx-translate/core';\n\n@Injectable()\nexport class MissingTranslationCustomHandler implements MissingTranslationHandler {\n translateService: TranslateService;\n cache: any = {};\n\n constructor(\n private parser: TranslateParser,\n private patternMessagesService: PatternMessagesService\n ) {}\n\n handle(params: MissingTranslationHandlerParams) {\n const { key: messageKey, interpolateParams, translateService } = params;\n this.translateService = translateService;\n\n let translation = this.getFromCache(messageKey, interpolateParams);\n\n if (!translation) {\n const patternMessageTranslation = this.getPatternMessageTranslation(messageKey, interpolateParams);\n if (patternMessageTranslation) {\n translation = patternMessageTranslation;\n } else {\n translation = this.parser.interpolate(messageKey, interpolateParams);\n }\n\n this.addToCache(messageKey, interpolateParams, translation);\n }\n\n return translation;\n }\n\n private getFromCache(messageKey: string, interpolateParams: object): string {\n const { currentLang } = this.translateService;\n const currentCache = this.cache[currentLang] || {};\n const cacheKey = this.getCacheKey(messageKey, interpolateParams);\n return currentCache[cacheKey];\n }\n\n private addToCache(messageKey: string, interpolateParams: object, translation: string) {\n const { currentLang } = this.translateService;\n const currentCache = this.cache[currentLang] = this.cache[currentLang] || {};\n const cacheKey = this.getCacheKey(messageKey, interpolateParams);\n currentCache[cacheKey] = translation;\n }\n\n private getCacheKey(messageKey: string, interpolateParams: object): string {\n return interpolateParams ? `${messageKey} ${JSON.stringify(interpolateParams)}` : messageKey;\n }\n\n private getPatternMessageTranslation(messageKey: string, interpolateParams: object): string {\n const shouldTryPatternMessages = !interpolateParams || !((interpolateParams as any).noPatternMessages);\n\n if (shouldTryPatternMessages) {\n if (!this.patternMessagesService.translateService) {\n this.patternMessagesService.translateService = this.translateService;\n }\n return this.patternMessagesService.translate(messageKey);\n }\n\n return undefined;\n }\n}\n","/* tslint:disable:max-line-length */\nimport { gettext } from './gettext';\n\nconst bulkOperationAuditLogTextPlaceholders = {\n updatesList: {\n capture: '$1',\n translate: {\n \"status='(.+?)'\": {\n gettext: gettext('status=\"{{status | translate}}\"'),\n placeholders: {\n status: '$1'\n }\n },\n \"generalStatus='(.+?)'\": {\n gettext: gettext('generalStatus=\"{{generalStatus | translate}}\"'),\n placeholders: {\n generalStatus: '$1'\n }\n },\n \"progress='(.+?)'\": {\n gettext: gettext('progress=\"{{progress}}\"'),\n placeholders: {\n progress: '$1'\n }\n },\n 'note=(.+?)': {\n gettext: gettext('note=\"{{note}}\"'),\n placeholders: {\n note: '$1'\n }\n }\n }\n }\n};\n\nexport const MESSAGES = {\n '^Access is denied$': {\n gettext: gettext('Access denied.')\n },\n '^Alarm created$': {\n gettext: gettext('Alarm created')\n },\n '^Alarm updated$': {\n gettext: gettext('Alarm updated')\n },\n '^API is not available with the new domain$': {\n gettext: gettext('Could not activate custom domain. DNS setup is incorrect.')\n },\n '^Application with given name already exist$': {\n gettext: gettext('Application with given name already exists.')\n },\n '^Application with id (.+?) is already assigned to the tenant (.+?)$': {\n gettext: gettext('This application is already assigned to tenant \"{{tenant}}\".'),\n placeholders: {\n tenant: '$2'\n }\n },\n '^Apply software changes: (.+?)\\\\.?$': {\n gettext: gettext('Apply software changes: {{ softwareChanges }}'),\n placeholders: {\n softwareChanges: {\n capture: '$1',\n translate: {\n 'install \"(.+?)\" \\\\(version: (.+?)\\\\)': {\n gettext: gettext('install \"{{ softwareName }}\" (version: {{ softwareVersion }})'),\n placeholders: {\n softwareName: '$1',\n softwareVersion: '$2'\n }\n },\n 'install \"([^\"]+)\"(?! \\\\(version: .+?\\\\))': {\n gettext: gettext('install \"{{ softwareName }}\"'),\n placeholders: {\n softwareName: '$1'\n }\n },\n 'delete \"(.+?)\" \\\\(version: (.+?)\\\\)': {\n gettext: gettext('delete \"{{ softwareName }}\" (version: {{ softwareVersion }})'),\n placeholders: {\n softwareName: '$1',\n softwareVersion: '$2'\n }\n },\n 'delete \"([^\"]+)\"(?! \\\\(version: .+?\\\\))': {\n gettext: gettext('delete \"{{ softwareName }}\"'),\n placeholders: {\n softwareName: '$1'\n }\n }\n }\n }\n }\n },\n '^Assign device profile (.+?) to device (.+?)$': {\n gettext: gettext('Assign device profile {{profileName}} to device {{deviceName}}'),\n placeholders: {\n profileName: '$1',\n deviceName: '$2'\n }\n },\n '^(.+)pplication for tenant (.+) with properties \\\\( (.+?) \\\\) already exists$': {\n gettext: gettext(\n 'Application for tenant \"{{tenant}}\" with the following values ({{valuesList}}) already exists.'\n ),\n placeholders: {\n tenant: '$2',\n valuesList: '$3'\n }\n },\n '^Authentication failed! : User account is locked$': {\n gettext: gettext('Authentication failed due to: user account is locked.')\n },\n '^Availability monitoring record$': {\n gettext: gettext('Availability monitoring record')\n },\n '^Can not activate a certificate which is either expired or not yet valid$': {\n gettext: gettext('Cannot activate a certificate which is either expired or not yet valid.')\n },\n '^Cannot add certificate - certificate with (.+?) fingerprint already exists. : Certificate with (.+?) fingerprint already exists.': {\n gettext: gettext(\n 'Could not add certificate. Certificate with {{fingerprint}} fingerprint already exists.'\n ),\n placeholders: {\n fingerprint: '$1'\n }\n },\n '^Cannot change password. : Provided token does not exist.$': {\n gettext: gettext('Cannot change password: provided token is invalid.')\n },\n '^Cannot deploy module (.*)$': {\n gettext: gettext('Cannot deploy module due to error: \"{{ errorMessage | translate }}\".'),\n placeholders: {\n errorMessage: '$1'\n }\n },\n \"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\\\d+) column (\\\\d+) \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}.'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n incorrectExpression: '$4',\n line: '$5',\n column: '$6'\n }\n },\n \"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\\\d+) column (\\\\d+) near reserved keyword '(.+?)' \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}} near reserved keyword \"{{keyword}}\".'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n incorrectExpression: '$4',\n line: '$5',\n column: '$6',\n keyword: '$7'\n }\n },\n \"^Cannot deploy module (.+?)! : Compilation failed in module '(.+?)' in expression '(.+?)' : Incorrect syntax near '(.+?)' at line (\\\\d+) column (\\\\d+), please check the where clause \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": incorrect syntax near \"{{incorrectExpression}}\" at line {{line}} column {{column}}, check \"where\" clause.'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n incorrectExpression: '$4',\n line: '$5',\n column: '$6'\n }\n },\n \"^Cannot deploy module (.+?)! : Deployment failed in module '(.+?)' in expression '(.+?)' : Exception compiling script '(.+?)' of dialect '(.+?)': missing (.+?) before statement \\\\((.+?)\\\\) \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Could not deploy module \"{{moduleName}}\". Compilation failed in expression \"{{expression}}\": exception compiling script \"{{scriptName}}\" of dialect \"{{scriptDialect}}\": missing \"{{missingSyntax}}\" before statement \"{{affectedStatement}}\".'\n ),\n placeholders: {\n moduleName: '$1',\n expression: '$3',\n scriptName: '$4',\n scriptDialect: '$5',\n missingSyntax: '$6',\n affectedStatement: '$7'\n }\n },\n \"^Cannot execute bulk operation on empty group. Group with id='(\\\\d+?)' doesn't have child assets.$\": {\n gettext: gettext(\n 'Could not execute bulk operation on an empty group. Group with ID \"{{groupId}}\" has no child assets.'\n ),\n placeholders: {\n groupId: '$1'\n }\n },\n \"^Cannot execute bulk operation on empty group. DynamicGroup with id='(\\\\d+?)' doesn't have child assets$\": {\n gettext: gettext(\n 'Could not execute bulk operation on an empty group. Smart group with ID \"{{groupId}}\" has no child assets.'\n ),\n placeholders: {\n groupId: '$1'\n }\n },\n '^Cannot parse X509 certificate. : Could not parse certificate: (.+?)$': {\n gettext: gettext('Could not parse X.509 certificate: {{ failureReason | translate }}.'),\n placeholders: {\n failureReason: '$1'\n }\n },\n '^Cannot reschedule bulk operation. All its operations are successful$': {\n gettext: gettext('Cannot reschedule bulk operation. All its operations are already successful.')\n },\n '^Cannot reset user password : Cannot find user with such email.$': {\n gettext: gettext('Cannot reset password for user with such email: email not found.')\n },\n '^Cannot update/delete application binary via this endpoint$': {\n gettext: gettext('Cannot update/delete application binary via this endpoint')\n },\n \"^Can't delete user because it is used by another managed object$\": {\n gettext: gettext(\n 'Cannot delete device with associated device owner because this owner is still assigned to other device(s). Try to remove only the device.'\n )\n },\n '^Cep module created$': {\n gettext: gettext('CEP module created')\n },\n '^Cep module updated$': {\n gettext: gettext('CEP module updated')\n },\n '^Cep module deleted$': {\n gettext: gettext('CEP module deleted')\n },\n '^Cep module \"(.+?)\" created$': {\n gettext: gettext('CEP module \"{{name}}\" created'),\n placeholders: {\n name: '$1'\n }\n },\n '^Cep module \"(.+?)\" updated$': {\n gettext: gettext('CEP module \"{{name}}\" updated'),\n placeholders: {\n name: '$1'\n }\n },\n '^Cep module \"(.+?)\" deleted$': {\n gettext: gettext('CEP module \"{{name}}\" deleted'),\n placeholders: {\n name: '$1'\n }\n },\n '^Command state is invalid: (.+)$': {\n gettext: gettext('Command state is invalid: {{violations}}'),\n placeholders: {\n violations: {\n capture: '$1',\n translate: {\n '(\\\\w+?) - may not be null': {\n gettext: gettext('\"{{field}}\" must not be null'),\n placeholders: {\n field: '$1'\n }\n }\n }\n }\n }\n },\n '^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\\\\.$': {\n gettext: gettext(\n '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.'\n ),\n placeholders: {\n endpointName: '$1',\n keyType: '$2',\n fingerprint: '$3',\n host: '$4',\n port: '$5'\n }\n },\n '^Could not login to ssh server on endpoint \"(.+)\"\\\\. Provided credential for user \"(.+)\" is incorrect\\\\.$': {\n gettext: gettext(\n 'Could not access SSH server on endpoint \"{{endpointName}}\". Provided credentials for user \"{{userName}}\" are incorrect.'\n ),\n placeholders: {\n endpointName: '$1',\n userName: '$2'\n }\n },\n '^Could not save object remoteAccessUpdate: (.+)$': {\n gettext: '{{errorMessages}}',\n placeholders: {\n errorMessages: {\n capture: '$1',\n translate: {\n 'Could not recognize host-key format': {\n gettext: gettext('Could not recognize \"Host key\" format')\n },\n 'Could not recognize key-pair format': {\n gettext: gettext('Could not recognize the format of \"Public key\" or \"Private key\"')\n }\n }\n }\n }\n },\n '^Could not update user. : Error persisting user (.+?)!$': {\n gettext: gettext('Could not update user \"{{username}}\".'),\n placeholders: {\n username: '$1'\n }\n },\n 'ˆCreate bulk operation$': {\n gettext: gettext('Create bulk operation')\n },\n '^Create bulk operation: (.+)$': {\n gettext: gettext('Create bulk operation: {{updatesList}}'),\n placeholders: bulkOperationAuditLogTextPlaceholders\n },\n '^Creation ramp must be greater than (\\\\d+?)$': {\n gettext: gettext('Bulk operation delay must be greater than {{minSeconds}} seconds.'),\n placeholders: {\n minSeconds: '$1'\n }\n },\n '^Created container$': {\n gettext: gettext('Container created.')\n },\n '^Created pod: (.+)$': {\n gettext: gettext('Pod \"{{imageName}}\" created.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^CSV file contained empty dataset$': {\n gettext: gettext('No entries found in uploaded CSV file.')\n },\n '^Cycle detected for route (.+?)!$': {\n gettext: gettext('Cycle detected for route {{route}}.'),\n placeholders: {\n route: '$1'\n }\n },\n '^Data broker processing is currently overloaded and may stop forwarding your data\\\\. Please contact support\\\\.$': {\n gettext: gettext(\n 'Data broker processing is currently overloaded and may stop forwarding your data. Please contact support.'\n )\n },\n '^Data broker processing is not able to connect do destination tenant, thus data forwarding is not working\\\\. Please contact support\\\\.$': {\n gettext: gettext(\n 'Data broker processing is not able to connect to destination tenant, thus data forwarding is not working. Please contact support.'\n )\n },\n '^Delete bulk operation$': {\n gettext: gettext('Delete bulk operation')\n },\n '^Delete bulk operation: (.+)$': {\n gettext: gettext('Delete bulk operation: {{updatesList}}'),\n placeholders: bulkOperationAuditLogTextPlaceholders\n },\n \"^Device id '(.+?)' contains '(.+?)' character which is not permitted.$\": {\n gettext: gettext('ID \"{{deviceId}}\" contains invalid character: \"{{invalidCharacter}}\".'),\n placeholders: {\n deviceId: '$1',\n invalidCharacter: '$2'\n }\n },\n \"^Device name: '(.+?)', alarm text: '(.+?)'$\": {\n gettext: gettext('Device name: \"{{deviceName}}\", alarm text: \"{{alarmText | translate}}\"'),\n placeholders: {\n deviceName: '$1',\n alarmText: '$2'\n }\n },\n '^Display name$': {\n gettext: gettext('Login alias')\n },\n '^Domain name in uploaded certificate differs from the one in use$': {\n gettext: gettext(\n 'Domain name in uploaded certificate differs from the one in use. Please deactivate the custom domain before uploading new certificate.'\n )\n },\n '^Domain name is already in use by another tenant!$': {\n gettext: gettext('Domain name is already used by another tenant.')\n },\n '^Duplicated connector for instanceUrl (.+?)!$': {\n gettext: gettext('Target URL {{targetUrl}} already used by another connector.'),\n placeholders: {\n targetUrl: '$1'\n }\n },\n '^Duplicated connector for name (.+?)!$': {\n gettext: gettext('Connector name \"{{name}}\" already used by another connector.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Entry is outside of the target dir: (.+)$': {\n gettext: gettext('File entry outside of the target directory: \"{{path}}\".'),\n placeholders: {\n path: '$1'\n }\n },\n '^Error during password validation. : Password must have at least (\\\\d+?) characters and no more than (\\\\d+?) and must contain only Latin1 characters.$': {\n gettext: gettext(\n 'Password is invalid. It must have at least {{minCharactersCount}} and no more than {{maxCharactersCount}} characters.'\n ),\n placeholders: {\n minCharactersCount: '$1',\n maxCharactersCount: '$2'\n }\n },\n '^Error during password validation. : Your password has been used already. Choose another.$': {\n gettext: gettext('This password has already been used earlier. Use a different one.')\n },\n \"^Error in statement (.+?):(.+?)! : Incorrect syntax near '(.+?)' near reserved keyword '(.+?)' \\\\[([\\\\S\\\\s]+?)\\\\]$\": {\n gettext: gettext(\n 'Error in statement {{moduleName}}:{{statementNumber}}. Incorrect syntax near expression \"{{expression}}\" near reserved keyword \"{{keyword}}\".'\n ),\n placeholders: {\n moduleName: '$1',\n statementNumber: '$2',\n expression: '$3',\n keyword: '$4'\n }\n },\n '^External id not found; external id = ID \\\\[type=(.+?), value=(.+?)\\\\]$': {\n gettext: gettext('External ID not found for type \"{{type}}\" and value \"{{value}}\".'),\n placeholders: {\n type: '$1',\n value: '$2'\n }\n },\n '^Error occurred when trying to find an Application for id ID (.+) : Could not find application by ID (\\\\d+)$': {\n gettext: gettext('Could not find application by ID {{applicationId}}.'),\n placeholders: {\n applicationId: '$2'\n }\n },\n '^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\"}': {\n gettext: gettext('Unable to find option by given key: sigfox-agent/provider.token')\n },\n '^Failed to delete application. : Cannot remove application assigned to other tenants.$': {\n gettext: gettext('Could not delete application assigned to other tenants.')\n },\n '^Failed to extract certificate from PKCS12$': {\n gettext: gettext('Failed to extract certificate from PKCS12.')\n },\n '^Failed to update domain at the platform$': {\n gettext: gettext('Failed to update domain at the platform.')\n },\n \"^Finding device data from database failed : No managedObject for id '(.+?)'!$\": {\n gettext: gettext('Could not find managed object with ID \"{{deviceId}}\".'),\n placeholders: {\n deviceId: '$1'\n }\n },\n '^Following mandatory fields should be included: (.+?)$': {\n gettext: gettext('Following mandatory fields should be included: {{fields}}'),\n placeholders: {\n fields: '$1'\n }\n },\n '^Global Role updated$': {\n gettext: gettext('Global role updated')\n },\n '^Global Role (.+?) updated$': {\n gettext: gettext('Global role \"{{name}}\" updated'),\n placeholders: {\n name: '$1'\n }\n },\n '^Global Role (.+?) updated: (.+)$': {\n gettext: gettext('Global role \"{{name}}\" updated: {{updatesList}}'),\n placeholders: {\n name: '$1',\n updatesList: {\n capture: '$2',\n translate: {\n 'applications \\\\[([^\\\\]]+?)\\\\] added': {\n gettext: gettext('applications {{list}} added'),\n placeholders: {\n list: '$1'\n }\n },\n 'applications \\\\[([^\\\\]]+?)\\\\] removed': {\n gettext: gettext('applications {{list}} removed'),\n placeholders: {\n list: '$1'\n }\n },\n 'roles \\\\[([^\\\\]]+?)\\\\] added': {\n gettext: gettext('roles {{list}} added'),\n placeholders: {\n list: '$1'\n }\n },\n 'roles \\\\[([^\\\\]]+?)\\\\] removed': {\n gettext: gettext('roles {{list}} removed'),\n placeholders: {\n list: '$1'\n }\n }\n }\n }\n }\n },\n '^Global Roles$': {\n gettext: gettext('Global roles')\n },\n '^Operation updated: (.+)$': {\n gettext: gettext('Operation updated: {{updatesList}}'),\n placeholders: {\n updatesList: {\n capture: '$1',\n translate: {\n \"status='(.+?)'\": {\n gettext: gettext('status=\"{{status | translate}}\"'),\n placeholders: {\n status: '$1'\n }\n },\n \"description='(.+?)'\": {\n gettext: gettext('description=\"{{description | translate}}\"'),\n placeholders: {\n description: '$1'\n }\n },\n \"device name='(.+?)'\": {\n gettext: gettext('device name=\"{{deviceName}}\"'),\n placeholders: {\n deviceName: '$1'\n }\n },\n \"failure reason='(.+?)'\": {\n gettext: gettext('failure reason=\"{{failureReason | translate}}\"'),\n placeholders: {\n failureReason: '$1'\n }\n }\n }\n }\n }\n },\n '^ID \\\\[type=(.+?), value=(.+?)\\\\] was already bound to different Global ID.$': {\n gettext: gettext('External ID \"{{value}}\" of the type \"{{type}}\" already exists.'),\n placeholders: {\n type: '$1',\n value: '$2'\n }\n },\n '^Invalid credentials! : Bad credentials$': {\n gettext: gettext('Invalid credentials.')\n },\n '^Invalid credentials! : No phone number provided$': {\n gettext: gettext('Log into the management tenant first and enter your phone number.')\n },\n '^Inventory Role removed$': {\n gettext: gettext('Inventory role removed')\n },\n '^Inventory Role (.+?) removed': {\n gettext: gettext('Inventory role \"{{name}}\" deleted.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Inventory Role updated$': {\n gettext: gettext('Inventory role updated')\n },\n '^Inventory Role (.+?) updated': {\n gettext: gettext('Inventory role \"{{name}}\" updated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^I/O error: Connection refused; nested exception is Connection refused : Connection refused': {\n gettext: gettext('Connection refused')\n },\n '^I/O error: Read timed out; nested exception is Read timed out : Read timed out': {\n gettext: gettext('Read timed out')\n },\n '^Log file requested$': {\n gettext: gettext('Log file requested.')\n },\n '^Managed object deleted$': {\n gettext: gettext('Managed object deleted')\n },\n '^Managed object \"(.+?)\" deleted$': {\n gettext: gettext('Managed object \"{{name}}\" deleted'),\n placeholders: {\n name: '$1'\n }\n },\n '^Maximum file size exceeded$': {\n gettext: gettext('Maximum file size exceeded.')\n },\n \"^Message with ID (.+?) doesn't exist in smart rest template (.+?)$\": {\n gettext: gettext(\n 'Message with ID \"{{messageId}}\" doesn\\'t exist in SmartREST template with ID \"{{templateId}}\"'\n ),\n placeholders: {\n messageId: '$1',\n templateId: '$2'\n }\n },\n '^NewDeviceRequest for id = (.+?) already exists.$': {\n gettext: gettext('Device registration request with ID {{id}} already exists.'),\n placeholders: {\n id: '$1'\n }\n },\n '^No communication with device since (.+?)$': {\n gettext: gettext('No communication with device since {{timestamp | absoluteDate}}.'),\n placeholders: {\n timestamp: '$1'\n }\n },\n '^No data received from device within required interval.$': {\n gettext: gettext('No data received from device within required interval.')\n },\n '^No LoRa provider settings are found. Please configure the connectivity settings.$': {\n gettext: gettext(\n 'No LoRa provider settings are found. Please configure the connectivity settings.'\n )\n },\n '^Not within any context!$': {\n gettext: gettext('A problem occurred with microservice subscription.')\n },\n '^Maximum age cannot be bigger than 10 years.$': {\n gettext: gettext('Maximum age cannot be bigger than 10 years.')\n },\n '^Microservice application name incorrect. Please use only lower-case letters, digits and dashes. Maximum length is (\\\\d+) characters.$': {\n gettext: gettext(\n 'Microservice application name is incorrect: only lower case letters, digits and dashes allowed. Maximum length: {{maxLength}}.'\n ),\n placeholders: {\n maxLength: '$1'\n }\n },\n '^Microservice not available.*$': {\n gettext: gettext('Microservice is not available.')\n },\n '^Operation created$': {\n gettext: gettext('Operation created.')\n },\n '^Operation updated$': {\n gettext: gettext('Operation updated.')\n },\n \"^Operation created: status='(.+?)'.\": {\n gettext: gettext('Operation created: status=\"{{status | translate}}\".'),\n placeholders: {\n status: '$1'\n }\n },\n '^Option created$': {\n gettext: gettext('Option created.')\n },\n '^Option \"(.+?)\" created$': {\n gettext: gettext('Option \"{{option}}\" created.'),\n placeholders: {\n option: '$1'\n }\n },\n '^Option deleted$': {\n gettext: gettext('Option deleted.')\n },\n '^Option \"(.+?)\" deleted$': {\n gettext: gettext('Option \"{{option}}\" deleted.'),\n placeholders: {\n option: '$1'\n }\n },\n '^Owner field error. : Cannot introduce cyclic dependency.': {\n gettext: gettext('Could not introduce cyclic ownership dependency.')\n },\n '^Password change is temporary blocked.$': {\n gettext: gettext('Password change is temporarily blocked.')\n },\n '^Password cipher does not match': {\n gettext: gettext('Password cipher does not match.')\n },\n '^Platform application cannot be added to, nor removed from any tenant.$': {\n gettext: gettext('Platform application cannot be added to, nor removed from any tenant.')\n },\n '^Private key must be provided in KEY_PAIR credentials$': {\n gettext: gettext(\n 'Private key must be provided when \"Public / private keys\" option is selected.'\n )\n },\n '^Private key cipher does not match': {\n gettext: gettext('Private key cipher does not match')\n },\n '^Protocol \"(.+?)\" does not support \"(.+?)\" credentials type$': {\n gettext: gettext(\n 'Protocol \"{{protocol}}\" does not support \"{{credentialsType}}\" credentials type.'\n ),\n placeholders: {\n protocol: '$1',\n credentialsType: '$2'\n }\n },\n '^pulling image \"(.+)\"$': {\n gettext: gettext('Pulling image: \"{{imageName}}\".'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Real-time event processing is currently overloaded and may stop processing your events\\\\. Please contact support\\\\.$': {\n gettext: gettext(\n 'Real-time event processing is currently overloaded and may stop processing your events. Please contact support.'\n )\n },\n '^Resource ID \\\\[type=com_cumulocity_model_idtype_GId, value=(.+?)\\\\] for this request not found.$': {\n gettext: gettext('Could not find the resource with ID \"{{id}}\".'),\n placeholders: {\n id: '$1'\n }\n },\n '^Retrieve configuration snapshot from device (.+?)': {\n gettext: gettext('Retrieve configuration snapshot from device {{deviceName}}'),\n placeholders: {\n deviceName: '$1'\n }\n },\n '^Retrieve (.+?) configuration snapshot from device (.+?)': {\n gettext: gettext(\n 'Retrieve {{configurationType}} configuration snapshot from device {{deviceName}}'\n ),\n placeholders: {\n configurationType: '$1',\n deviceName: '$2'\n }\n },\n '^Scaled up replica set (.+) to (\\\\d+)$': {\n gettext: gettext('Replica set \"{{replicaSetName}}\" scaled up to \"{{scaleNumber}}\".'),\n placeholders: {\n replicaSetName: '$1',\n scaleNumber: '$2'\n }\n },\n '^Send configuration snapshot (.+?) of configuration type (.+?) to device (.+?)': {\n gettext: gettext(\n 'Send configuration snapshot {{snapshotName}} of configuration type {{configurationType}} to device {{deviceName}}'\n ),\n placeholders: {\n snapshotName: '$1',\n configurationType: '$2',\n deviceName: '$3'\n }\n },\n '^Send configuration snapshot (.+?) to device (.+?)': {\n gettext: gettext('Send configuration snapshot {{snapshotName}} to device {{deviceName}}'),\n placeholders: {\n snapshotName: '$1',\n deviceName: '$2'\n }\n },\n '^Simulator state is invalid: (.+)$': {\n gettext: gettext('Simulator state is invalid: {{violations}}'),\n placeholders: {\n violations: {\n capture: '$1',\n translate: {\n '(\\\\w+?) - may not be null': {\n gettext: gettext('\"{{field}}\" should not be null'),\n placeholders: {\n field: '$1'\n }\n },\n '(\\\\w+?) - must be less than or equal to (\\\\d+)': {\n gettext: gettext('\"{{field}}\" must be less than or equal to {{maxValue}}'),\n placeholders: {\n field: '$1',\n maxValue: '$2'\n }\n },\n '(\\\\w+?) - should not contain null values': {\n gettext: gettext('\"{{field}}\" should not contain null values'),\n placeholders: {\n field: '$1'\n }\n }\n }\n }\n }\n },\n \"^Smart rest template (.+?) doesn't exist$\": {\n gettext: gettext('SmartREST template with id \"{{templateId}}\" doesn\\'t exist'),\n placeholders: {\n templateId: '$1'\n }\n },\n '^Smart rule created$': {\n gettext: gettext('Smart rule created.')\n },\n '^Smart rule updated$': {\n gettext: gettext('Smart rule updated.')\n },\n '^Smart rule enabled$': {\n gettext: gettext('Smart rule activated.')\n },\n '^Smart rule disabled$': {\n gettext: gettext('Smart rule deactivated.')\n },\n '^Smart rule deleted$': {\n gettext: gettext('Smart rule deleted.')\n },\n '^Smart rule \"(.+?)\" created$': {\n gettext: gettext('Smart rule \"{{name}}\" created.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" updated$': {\n gettext: gettext('Smart rule \"{{name}}\" updated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" enabled$': {\n gettext: gettext('Smart rule \"{{name}}\" activated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" disabled$': {\n gettext: gettext('Smart rule \"{{name}}\" deactivated.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Smart rule \"(.+?)\" deleted$': {\n gettext: gettext('Smart rule \"{{name}}\" deleted.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Started container$': {\n gettext: gettext('Container started.')\n },\n '^Successfully assigned (.+) to (.+)$': {\n gettext: gettext('\"{{imageName}}\" assigned to \"{{address}}\".'),\n placeholders: {\n imageName: '$1',\n address: '$2'\n }\n },\n '^Successfully pulled image \"(.+)\"$': {\n gettext: gettext('Image \"{{imageName}}\" pulled.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Tenant creation failed. : Tenant with given id already exists.$': {\n gettext: gettext('Could not create a tenant. Tenant with given domain/URL already exists.')\n },\n '^Tenant id cannot be a reserved sql keyword \"(.+?)\".$': {\n gettext: gettext('Could not use a reserved SQL keyword \"{{tenantId}}\" as a domain name.'),\n placeholders: {\n tenantId: '$1'\n }\n },\n '^Tenant \"(.+?)\" activated$': {\n gettext: gettext('Tenant \"{{tenant}}\" activated.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant (.+?) has sub-tenants, please remove them first!$': {\n gettext: gettext('Could not remove tenant \"{{tenant}}\". Remove its subtenants first.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant activated$': {\n gettext: gettext('Tenant activated')\n },\n '^Tenant \"(.+?)\" created$': {\n gettext: gettext('Tenant \"{{tenant}}\" created.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant created$': {\n gettext: gettext('Tenant created')\n },\n '^Tenant \"(.+?)\" deleted$': {\n gettext: gettext('Tenant \"{{tenant}}\" deleted.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant deleted$': {\n gettext: gettext('Tenant deleted')\n },\n '^Tenant \"(.+?)\" suspended$': {\n gettext: gettext('Tenant \"{{tenant}}\" suspended.'),\n placeholders: {\n tenant: '$1'\n }\n },\n '^Tenant suspended$': {\n gettext: gettext('Tenant suspended')\n },\n '^Tenant \"(.+?)\" updated: (.+?)$': {\n gettext: gettext('Tenant \"{{tenant}}\" updated: {{properties}}.'),\n placeholders: {\n tenant: '$1',\n properties: '$2'\n }\n },\n '^Tenant updated$': {\n gettext: gettext('Tenant updated')\n },\n '^Too Many Requests$': {\n gettext: gettext('Too many requests. Try again later.')\n },\n \"^User alias equals username '(.+)'$\": {\n gettext: gettext('Username and login alias must be different.')\n },\n '^User created$': {\n gettext: gettext('User created')\n },\n '^User (.+?) created$': {\n gettext: gettext('User \"{{name}}\" created'),\n placeholders: {\n name: '$1'\n }\n },\n '^User deleted$': {\n gettext: gettext('User deleted')\n },\n '^User (.+?) deleted$': {\n gettext: gettext('User \"{{name}}\" deleted'),\n placeholders: {\n name: '$1'\n }\n },\n '^User updated$': {\n gettext: gettext('User updated')\n },\n '^User (.+?) updated: (.+)$': {\n gettext: gettext('User \"{{name}}\" updated: {{updatesList}}'),\n placeholders: {\n name: '$1',\n updatesList: {\n capture: '$2',\n translate: {\n \"delegatedBy='(.+?)'\": {\n gettext: gettext('delegated by: \"{{delegate}}\"'),\n placeholders: {\n delegate: '$1'\n }\n },\n \"owner='(.+?)'\": {\n gettext: gettext('owner: \"{{owner}}\"'),\n placeholders: {\n owner: '$1'\n }\n },\n 'inventory assignment \\\\[(.+?)\\\\] added': {\n gettext: gettext('inventory assignment [{{inventoryAssignment}}] added'),\n placeholders: {\n inventoryAssignment: '$1'\n }\n },\n 'inventory assignment \\\\[(.+?)\\\\] removed': {\n gettext: gettext('inventory assignment [{{inventoryAssignment}}] removed'),\n placeholders: {\n inventoryAssignment: '$1'\n }\n },\n 'applications \\\\[(.+?)\\\\] added$': {\n gettext: gettext('applications [{{applicationsList}}] added'),\n placeholders: {\n applicationsList: '$1'\n }\n },\n 'applications \\\\[(.+?)\\\\] removed$': {\n gettext: gettext('applications [{{applicationsList}}] removed'),\n placeholders: {\n applicationsList: '$1'\n }\n },\n 'global roles \\\\[(.+?)\\\\] added$': {\n gettext: gettext('global roles [{{globalRolesList}}] added'),\n placeholders: {\n globalRolesList: '$1'\n }\n },\n 'global roles \\\\[(.+?)\\\\] removed$': {\n gettext: gettext('global roles [{{globalRolesList}}] removed'),\n placeholders: {\n globalRolesList: '$1'\n }\n }\n }\n }\n }\n },\n \"^User with username '(.+?)' already exists! : Duplicated: (.+?)$\": {\n gettext: gettext('User \"{{username}}\" already exists.'),\n placeholders: {\n username: '$1'\n }\n },\n \"^User with username or alias '(.+)' already exists! : Duplicated: (.+)$\": {\n gettext: gettext('User with username or login alias \"{{usernameOrAlias}}\" already exists.'),\n placeholders: {\n usernameOrAlias: '$1'\n }\n },\n \"^User with email '(.+?)' already exists! : Duplicated: (.+?)$\": {\n gettext: gettext('User with email \"{{email}}\" already exists.'),\n placeholders: {\n email: '$1'\n }\n },\n '^unable to find option with given key (.+?) : Could not find entity Option by ID (.+?)!$': {\n gettext: gettext('Unable to get tenant option: \"{{option}}\".'),\n placeholders: {\n option: '$2'\n }\n },\n '^unable to find option with given key (.+?) : There is no system property for key (.+?)$': {\n gettext: gettext('Unable to get system option: \"{{option}}\".'),\n placeholders: {\n option: '$2'\n }\n },\n '^Write failed with error code 16733 and error message \\'trying to index text where term list is too big, max is 4mb _id: \"(.+?)\"\\'$': {\n gettext: gettext('The uploaded image cannot be bigger than 4 MB. Please upload a smaller one.')\n },\n '^Write failed with error code 17280 and error message \\'WiredTigerIndex::insert: key too large to index, failing (.+?) { : \"(.+?)\" }\\'$': {\n gettext: gettext('The chosen name is too long. Please try a shorter one.')\n },\n '^You have reached devices limit. No more devices can be registered.$': {\n gettext: gettext('You reached devices limit. No more devices can be registered.')\n },\n '^(.+) succeeded for volume \"(.+)\"': {\n gettext: gettext('Operation \"{{operation}}\" succeeded for volume \"{{volume}}\".'),\n placeholders: {\n operation: '$1',\n volume: '$2'\n }\n },\n \"^Exception on tenant (.+) in statement '(.+)': Invocation exception when invoking method '(.+)' of class '(.+)' passing parameters \\\\[(.+)\\\\] for statement '(.+)': (.+) : (.+)$\": {\n gettext: gettext(\n 'Exception on tenant {{tenantId}} in statement \"{{moduleName}}\": Invocation exception when invoking method \"{{methodName}}\" of class \"{{classPath}}\" passing parameters [{{parameters}}] for statement \"{{statement}}\": {{exceptionType}} : {{exceptionMessage}}.'\n ),\n placeholders: {\n tenantId: '$1',\n moduleName: '$2',\n methodName: '$3',\n classPath: '$4',\n parameters: '$5',\n statement: '$6',\n exceptionType: '$7',\n exceptionMessage: '$8'\n }\n },\n '^No nodes are available that match all of the predicates: (.+).$': {\n gettext: gettext('No nodes are available that match all of the predicates: [{{predicates}}].'),\n placeholders: {\n predicates: '$1'\n }\n },\n '^Readiness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\\\(Client.Timeout exceeded while awaiting headers\\\\)$': {\n gettext: gettext(\n 'Readiness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).'\n ),\n placeholders: {\n requestMethod: '$1',\n uri: '$2',\n protocol: '$3'\n }\n },\n '^Liveness probe failed: (.+) (.+): (.+): request canceled while waiting for connection \\\\(Client.Timeout exceeded while awaiting headers\\\\)$': {\n gettext: gettext(\n 'Liveness probe failed: {{requestMethod}} {{uri}}: {{protocol}}: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).'\n ),\n placeholders: {\n requestMethod: '$1',\n uri: '$2',\n protocol: '$3'\n }\n },\n '^Error syncing pod$': {\n gettext: gettext('Pod synchronization error.')\n },\n '^Failed create pod sandbox.$': {\n gettext: gettext('Pod sandbox creation failed.')\n },\n '^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\"\\\\}$': {\n gettext: gettext(\n 'Exception on tenant {{tenantId}} in statement \"{{statement}}\": HTTP status code: {{httpStatusCode}} : {{message | translate}}'\n ),\n placeholders: {\n tenantId: '$1',\n statement: '$2',\n httpStatusCode: '$3',\n message: '$4'\n }\n },\n \"^User '(.+)' is managed by a remote identity management service defined by an administrator, direct update is forbidden$\": {\n gettext: gettext(\n 'User \"{{userName}}\" is managed by a remote identity management service defined by an administrator, direct update is forbidden.'\n ),\n placeholders: {\n userName: '$1'\n }\n },\n '^Added new child device to \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Added new child device to \"{{parentDeviceName}}\" (ID: {{parentDeviceId}}).'),\n placeholders: {\n parentDeviceName: '$1',\n parentDeviceId: '$2'\n }\n },\n '^Updated child device of \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Updated child device of \"{{parentDeviceName}}\" (ID: {{parentDeviceId}}).'),\n placeholders: {\n parentDeviceName: '$1',\n parentDeviceId: '$2'\n }\n },\n '^Added child device \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Added child device \"{{name}}\" (ID: {{id}}).'),\n placeholders: {\n name: '$1',\n id: '$2'\n }\n },\n '^Removed child device \"(.+)\" \\\\(ID: (.+)\\\\).$': {\n gettext: gettext('Removed child device \"{{name}}\" (ID: {{id}}).'),\n placeholders: {\n name: '$1',\n id: '$2'\n }\n },\n '^Change value of \"(.+)\" to (.+) (.+).$': {\n gettext: gettext('Change value of \"{{name}}\" to {{value}}{{unit}}.'),\n placeholders: {\n name: '$1',\n value: '$2',\n unit: '$3'\n }\n },\n '^Change value of \"(.+)\" to (.+).$': {\n gettext: gettext('Change value of \"{{name}}\" to {{value}}.'),\n placeholders: {\n name: '$1',\n value: '$2'\n }\n },\n '^Change status of \"(.+)\" to \"(.+)\".$': {\n gettext: gettext('Change status of \"{{name}}\" to \"{{label}}\".'),\n placeholders: {\n name: '$1',\n label: '$2'\n }\n },\n '^Send message \"(.+)\".$': {\n gettext: gettext('Send message \"{{str}}\".'),\n placeholders: {\n str: '$1'\n }\n },\n '^Close relay (.+).$': {\n gettext: gettext('Close relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Open relay (.+).$': {\n gettext: gettext('Open relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Change trace status to (.+).$': {\n gettext: gettext('Change trace status to {{state | translate}}.'),\n placeholders: {\n state: '$1'\n }\n },\n '^Change relay status to (.+).$': {\n gettext: gettext('Change relay status to {{status | translate}}.'),\n placeholders: {\n status: '$1'\n }\n },\n '^Closing relay (.+).$': {\n gettext: gettext('Closing relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Opening relay (.+).$': {\n gettext: gettext('Opening relay {{number}}.'),\n placeholders: {\n number: '$1'\n }\n },\n '^Update bulk operation$': {\n gettext: gettext('Update bulk operation')\n },\n '^Update bulk operation: (.+)$': {\n gettext: gettext('Update bulk operation: {{updatesList}}'),\n placeholders: bulkOperationAuditLogTextPlaceholders\n },\n '^Update firmware to: \"?(.+?)\"? \\\\(version: (.+)\\\\)\\\\.?$': {\n gettext: gettext('Update firmware to: \"{{ name }}\" (version: {{ version }})'),\n placeholders: {\n name: '$1',\n version: '$2'\n }\n },\n '^Update firmware to: \"?(.+?)\"?\\\\.?$': {\n gettext: gettext('Update firmware to: \"{{ name }}\"'),\n placeholders: {\n name: '$1'\n }\n },\n '^Update configuration to (.+).$': {\n gettext: gettext('Update configuration to: {{ name }}.'),\n placeholders: {\n name: '$1'\n }\n },\n '^Apply device profile: (.+).?$': {\n gettext: gettext('Apply device profile: {{ name }}'),\n placeholders: {\n name: '$1'\n }\n },\n '^Execute generic command: (.+).?$': {\n gettext: gettext('Execute generic command: {{command}}'),\n placeholders: {\n command: '$1'\n }\n },\n '^Failed to refresh application. : Cannot refresh non local-hosted application.$': {\n gettext: gettext('Could not reactivate the application as it is not hosted locally.')\n },\n '^Failed to refresh application. : Cannot refresh application without active version id.$': {\n gettext: gettext('Could not reactivate the application as it has no active version.')\n },\n // TODO: remove if we decide not to translate such messages:\n // '^Killing container with id (.+):Need to kill Pod$': {\n // gettext: gettext('Killing container with ID \"{{containerId}}\". Need to kill Pod.'),\n // placeholders: {\n // containerId: '$1'\n // }\n // },\n '^Scaled down replica set (.+) to (\\\\d+)$': {\n gettext: gettext('Replica set \"{{replicaSetName}}\" scaled down to \"{{scaleNumber}}\".'),\n placeholders: {\n replicaSetName: '$1',\n scaleNumber: '$2'\n }\n },\n '^Deleted pod: (.+)$': {\n gettext: gettext('Pod \"{{imageName}}\" deleted.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Container image \"(.+)\" already present on machine$': {\n gettext: gettext('Container image \"{{imageName}}\" already exists.'),\n placeholders: {\n imageName: '$1'\n }\n },\n '^Error updating tenant! Cannot insert second configuration for Password code grant internal/Bad Request$': {\n gettext: gettext(\n 'This login mode was already set by another administrator. Refresh the page to update the data.'\n )\n }\n};\n","import { Injectable } from '@angular/core';\n\n/**\n * A service to provide unmodified, cached translations for angular.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class CachedLocaleDictionaryService {\n cachedDictionary = {};\n}\n","import { HttpClient } from '@angular/common/http';\nimport { TranslateLoader } from '@ngx-translate/core';\nimport { Observable, of } from 'rxjs';\nimport { map, catchError, tap } from 'rxjs/operators';\nimport { Inject, Injectable } from '@angular/core';\nimport { LOCALE_PATH } from './locale.path';\nimport { LANGUAGES } from './languages';\nimport { OptionsService } from '../common/options.service';\nimport { mapKeys } from 'lodash-es';\nimport { CachedLocaleDictionaryService } from './cached-locale-dictionary.service';\n\n@Injectable()\nexport class TranslateCustomLoader implements TranslateLoader {\n constructor(\n private http: HttpClient,\n private optionsService: OptionsService,\n private cachedLocaleDictionaryService: CachedLocaleDictionaryService,\n @Inject(LOCALE_PATH) private path: string = null,\n @Inject(LANGUAGES) private languages: any = null\n ) {}\n\n getTranslation(lang: string): Observable<any> {\n const path = this.path || '';\n let url = `${path}${lang}.json`;\n if (this.languages && this.languages[lang] && this.languages[lang].url) {\n url = this.languages[lang].url;\n }\n\n return this.http.get(url).pipe(\n map(d => {\n if (this.optionsService.langsDetails && this.optionsService.langsDetails[lang]) {\n return { ...d[lang], ...this.optionsService.langsDetails[lang] };\n }\n return d[lang];\n }),\n tap(dictionary => {\n this.cachedLocaleDictionaryService.cachedDictionary[lang] = dictionary;\n }),\n map(dictionary => this.getDictionaryWithTrimmedKeys(dictionary)),\n catchError(() => of({}))\n );\n }\n\n /**\n * We want to have translation keys unified, so they don't contain unnecessary spaces and line breaks.\n * This way we can dynamically build keys from HTML, and match them to extracted string, that might be HTML as well.\n */\n getDictionaryWithTrimmedKeys(dictionary: object) {\n return mapKeys(dictionary, (value, key) =>\n trimTranslationKey(key)\n );\n }\n\n}\n\nexport function trimTranslationKey(key) {\n return key.replace(/(\\r\\n|\\n|\\r)/gm, '').replace(/\\s{2,}/g, ' ').trim();\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateDefaultParser } from '@ngx-translate/core';\nimport { get } from 'lodash-es';\nimport { trimTranslationKey } from './translate.loader';\n\nfunction isDefined(value: any): boolean {\n return typeof value !== 'undefined' && value !== null;\n}\n\n@Injectable()\nexport class TranslateParserCustom extends TranslateDefaultParser {\n\n getValue(target: any, key: string): any {\n const trimmedKey = trimTranslationKey(key);\n let translated = get(target, [trimmedKey]);\n if (!translated) {\n const keys = key.split('.');\n if (keys.length > 1) {\n translated = get(target, key);\n }\n }\n return translated;\n }\n}\n","import {\n DefaultLangChangeEvent,\n LangChangeEvent,\n TranslateService,\n TranslationChangeEvent\n} from '@ngx-translate/core';\nimport {\n AfterViewChecked,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { isEqual } from 'lodash-es';\n\n/**\n * This is temporary fallback directive that is used to handle HTML blocks translation on maintenance versions\n * in version 10.9.4 and later, this is replaced by default translate directive.\n */\n@Directive({\n selector: '[forceHtmlTranslate]'\n})\nexport class ForceHtmlTranslateDirective implements AfterViewChecked, OnDestroy {\n currentParams: any;\n onLangChangeSub: Subscription;\n onDefaultLangChangeSub: Subscription;\n onTranslationChangeSub: Subscription;\n\n /**\n * Used to trigger events when html is replaced by directive.\n */\n htmlUpdateEvent: EventEmitter<void> = new EventEmitter<void>();\n\n @Input() set translateParams(params: any) {\n if (!isEqual(this.currentParams, params)) {\n this.currentParams = params;\n this.checkNodes();\n }\n }\n\n constructor(\n private translateService: TranslateService,\n private element: ElementRef,\n private _ref: ChangeDetectorRef\n ) {\n // subscribe to onTranslationChange event, in case the translations of the current lang change\n if (!this.onTranslationChangeSub) {\n this.onTranslationChangeSub = this.translateService.onTranslationChange.subscribe(\n (event: TranslationChangeEvent) => {\n if (event.lang === this.translateService.currentLang) {\n this.checkNodes();\n }\n }\n );\n }\n\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChangeSub) {\n this.onLangChangeSub = this.translateService.onLangChange.subscribe(\n (event: LangChangeEvent) => {\n this.checkNodes();\n }\n );\n }\n\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub = this.translateService.onDefaultLangChange.subscribe(\n (event: DefaultLangChangeEvent) => {\n this.checkNodes();\n }\n );\n }\n }\n\n ngAfterViewChecked() {\n this.checkNodes();\n }\n\n checkNodes() {\n if (this.isLookupKeyMissing()) {\n this.element.nativeElement.lookupKey = this.getLookupKey();\n }\n this.translateAndUpdateHtmlContent();\n this.htmlUpdateEvent.emit();\n }\n\n ngOnDestroy() {\n if (this.onLangChangeSub) {\n this.onLangChangeSub.unsubscribe();\n }\n\n if (this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub.unsubscribe();\n }\n\n if (this.onTranslationChangeSub) {\n this.onTranslationChangeSub.unsubscribe();\n }\n this.htmlUpdateEvent.complete();\n }\n\n /**\n * Builds lookup key from innerHTML, removes comments (that might be added by Angular) and trims it.\n */\n private getLookupKey() {\n return this.element.nativeElement.innerHTML.replace(/<!--.*?-->/gs, '').trim();\n }\n\n private isLookupKeyMissing(): boolean {\n return !this.element.nativeElement.lookupKey;\n }\n\n private lookupKeyExist(): boolean {\n return this.element.nativeElement.lookupKey;\n }\n\n private translateAndUpdateHtmlContent(): void {\n if (this.lookupKeyExist()) {\n this.element.nativeElement.innerHTML = this.translateService.instant(\n this.element.nativeElement.lookupKey,\n this.currentParams || {}\n );\n }\n }\n}\n","import { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { LOCALE_ID, NgModule } from '@angular/core';\nimport {\n MissingTranslationHandler,\n TranslateService as NgxTranslateService,\n TranslateCompiler,\n TranslateFakeCompiler,\n TranslateLoader,\n TranslateModule,\n TranslateParser,\n TranslateStore,\n USE_DEFAULT_LANG,\n USE_STORE,\n USE_EXTEND,\n DEFAULT_LANGUAGE\n} from '@ngx-translate/core';\nimport { OptionsService } from '../common/public-api';\nimport { AppStateService } from '../common/ui-state.service';\nimport { LANGUAGES } from './languages';\nimport { LOCALE_PATH } from './locale.path';\nimport { MissingTranslationCustomHandler } from './missing-translation-custom.handler';\nimport { MESSAGES } from './pattern-messages.data';\nimport { HOOK_PATTERN_MESSAGES } from './patterns-message.hook';\nimport { TranslateCustomLoader } from './translate.loader';\nimport { TranslateParserCustom } from './translate.parser';\nimport { CachedLocaleDictionaryService } from './cached-locale-dictionary.service';\nimport { ForceHtmlTranslateDirective } from './force-html-translate.directive';\n\n// Load these as a side effect\ntry {\n // tslint:disable:no-var-requires\n require('@c8y/ngx-components/locales/de.po');\n require('@c8y/ngx-components/locales/en.po');\n require('@c8y/ngx-components/locales/es.po');\n require('@c8y/ngx-components/locales/fr.po');\n require('@c8y/ngx-components/locales/ja_JP.po');\n // tslint:enable:no-var-requires\n} catch (e) {\n // empty block\n}\n\nconst angularLocalesLanguageMap = { en: 'en-GB', 'en-EN': 'en-GB' };\n\n// AoT requires an exported function for factories\nexport function translateLoaderFactory(\n httpClient: HttpClient,\n optionsService: OptionsService,\n cachedLocaleDictionaryService: CachedLocaleDictionaryService,\n localePath: string,\n languages: any\n) {\n return new TranslateCustomLoader(httpClient, optionsService, cachedLocaleDictionaryService, localePath, languages);\n}\n\nexport function localePathFactory(options: OptionsService) {\n return options.localePath;\n}\n\nexport function languagesFactory(options: OptionsService) {\n return options.languages;\n}\n\nexport function localeId(appStateService: AppStateService) {\n return {\n get lang() {\n return getAngularLocalesLanguageString(appStateService.state.lang || 'en');\n },\n toLowerCase() {\n return this.lang.toLowerCase();\n },\n toString() {\n return this.lang;\n }\n };\n}\n\nexport function getAngularLocalesLanguageString(language) {\n return angularLocalesLanguageMap[language] || language;\n}\n\n/**\n * The angular module definition for i18n (translation).\n * @exports I18nModule\n */\n@NgModule({\n exports: [TranslateModule, ForceHtmlTranslateDirective],\n imports: [HttpClientModule],\n declarations: [ForceHtmlTranslateDirective]\n})\nexport class I18nModule {\n static providers() {\n return [\n { provide: LOCALE_ID, useFactory: localeId, deps: [AppStateService] },\n { provide: HOOK_PATTERN_MESSAGES, useValue: MESSAGES, multi: true },\n { provide: LOCALE_PATH, useFactory: localePathFactory, deps: [OptionsService] },\n { provide: LANGUAGES, useFactory: languagesFactory, deps: [OptionsService] },\n\n // Extracted from projects/ngx-translate/core/src/public_api.ts\n {\n provide: TranslateLoader,\n useFactory: translateLoaderFactory,\n deps: [HttpClient, OptionsService, CachedLocaleDictionaryService, LOCALE_PATH, LANGUAGES]\n },\n { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\n { provide: TranslateParser, useClass: TranslateParserCustom },\n { provide: MissingTranslationHandler, useClass: MissingTranslationCustomHandler },\n TranslateStore,\n NgxTranslateService,\n { provide: USE_STORE, useValue: undefined },\n { provide: USE_DEFAULT_LANG, useValue: undefined },\n { provide: USE_EXTEND, useValue: false },\n { provide: DEFAULT_LANGUAGE, useValue: undefined }\n ];\n }\n static forRoot() {\n return {\n ngModule: I18nModule,\n providers: I18nModule.providers()\n };\n }\n}\n","/* tslint:disable */\nrequire('!file-loader?name=assets/locales/angular/af-NA.js!@angular/common/locales/af-NA.js');\nrequire('!file-loader?name=assets/locales/angular/af.js!@angular/common/locales/af.js');\nrequire('!file-loader?name=assets/locales/angular/agq.js!@angular/common/locales/agq.js');\nrequire('!file-loader?name=assets/locales/angular/ak.js!@angular/common/locales/ak.js');\nrequire('!file-loader?name=assets/locales/angular/am.js!@angular/common/locales/am.js');\nrequire('!file-loader?name=assets/locales/angular/ar-AE.js!@angular/common/locales/ar-AE.js');\nrequire('!file-loader?name=assets/locales/angular/ar-BH.js!@angular/common/locales/ar-BH.js');\nrequire('!file-loader?name=assets/locales/angular/ar-DJ.js!@angular/common/locales/ar-DJ.js');\nrequire('!file-loader?name=assets/locales/angular/ar-DZ.js!@angular/common/locales/ar-DZ.js');\nrequire('!file-loader?name=assets/locales/angular/ar-EG.js!@angular/common/locales/ar-EG.js');\nrequire('!file-loader?name=assets/locales/angular/ar-EH.js!@angular/common/locales/ar-EH.js');\nrequire('!file-loader?name=assets/locales/angular/ar-ER.js!@angular/common/locales/ar-ER.js');\nrequire('!file-loader?name=assets/locales/angular/ar-IL.js!@angular/common/locales/ar-IL.js');\nrequire('!file-loader?name=assets/locales/angular/ar-IQ.js!@angular/common/locales/ar-IQ.js');\nrequire('!file-loader?name=assets/locales/angular/ar-JO.js!@angular/common/locales/ar-JO.js');\nrequire('!file-loader?name=assets/locales/angular/ar-KM.js!@angular/common/locales/ar-KM.js');\nrequire('!file-loader?name=assets/locales/angular/ar-KW.js!@angular/common/locales/ar-KW.js');\nrequire('!file-loader?name=assets/locales/angular/ar-LB.js!@angular/common/locales/ar-LB.js');\nrequire('!file-loader?name=assets/locales/angular/ar-LY.js!@angular/common/locales/ar-LY.js');\nrequire('!file-loader?name=assets/locales/angular/ar-MA.js!@angular/common/locales/ar-MA.js');\nrequire('!file-loader?name=assets/locales/angular/ar-MR.js!@angular/common/locales/ar-MR.js');\nrequire('!file-loader?name=assets/locales/angular/ar-OM.js!@angular/common/locales/ar-OM.js');\nrequire('!file-loader?name=assets/locales/angular/ar-PS.js!@angular/common/locales/ar-PS.js');\nrequire('!file-loader?name=assets/locales/angular/ar-QA.js!@angular/common/locales/ar-QA.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SA.js!@angular/common/locales/ar-SA.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SD.js!@angular/common/locales/ar-SD.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SO.js!@angular/common/locales/ar-SO.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SS.js!@angular/common/locales/ar-SS.js');\nrequire('!file-loader?name=assets/locales/angular/ar-SY.js!@angular/common/locales/ar-SY.js');\nrequire('!file-loader?name=assets/locales/angular/ar-TD.js!@angular/common/locales/ar-TD.js');\nrequire('!file-loader?name=assets/locales/angular/ar-TN.js!@angular/common/locales/ar-TN.js');\nrequire('!file-loader?name=assets/locales/angular/ar-YE.js!@angular/common/locales/ar-YE.js');\nrequire('!file-loader?name=assets/locales/angular/ar.js!@angular/common/locales/ar.js');\nrequire('!file-loader?name=assets/locales/angular/as.js!@angular/common/locales/as.js');\nrequire('!file-loader?name=assets/locales/angular/asa.js!@angular/common/locales/asa.js');\nrequire('!file-loader?name=assets/locales/angular/ast.js!@angular/common/locales/ast.js');\nrequire('!file-loader?name=assets/locales/angular/az-Cyrl.js!@angular/common/locales/az-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/az-Latn.js!@angular/common/locales/az-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/az.js!@angular/common/locales/az.js');\nrequire('!file-loader?name=assets/locales/angular/bas.js!@angular/common/locales/bas.js');\nrequire('!file-loader?name=assets/locales/angular/be.js!@angular/common/locales/be.js');\nrequire('!file-loader?name=assets/locales/angular/bem.js!@angular/common/locales/bem.js');\nrequire('!file-loader?name=assets/locales/angular/bez.js!@angular/common/locales/bez.js');\nrequire('!file-loader?name=assets/locales/angular/bg.js!@angular/common/locales/bg.js');\nrequire('!file-loader?name=assets/locales/angular/bm.js!@angular/common/locales/bm.js');\nrequire('!file-loader?name=assets/locales/angular/bn-IN.js!@angular/common/locales/bn-IN.js');\nrequire('!file-loader?name=assets/locales/angular/bn.js!@angular/common/locales/bn.js');\nrequire('!file-loader?name=assets/locales/angular/bo-IN.js!@angular/common/locales/bo-IN.js');\nrequire('!file-loader?name=assets/locales/angular/bo.js!@angular/common/locales/bo.js');\nrequire('!file-loader?name=assets/locales/angular/br.js!@angular/common/locales/br.js');\nrequire('!file-loader?name=assets/locales/angular/brx.js!@angular/common/locales/brx.js');\nrequire('!file-loader?name=assets/locales/angular/bs-Cyrl.js!@angular/common/locales/bs-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/bs-Latn.js!@angular/common/locales/bs-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/bs.js!@angular/common/locales/bs.js');\nrequire('!file-loader?name=assets/locales/angular/ca-AD.js!@angular/common/locales/ca-AD.js');\nrequire('!file-loader?name=assets/locales/angular/ca-ES-VALENCIA.js!@angular/common/locales/ca-ES-VALENCIA.js');\nrequire('!file-loader?name=assets/locales/angular/ca-FR.js!@angular/common/locales/ca-FR.js');\nrequire('!file-loader?name=assets/locales/angular/ca-IT.js!@angular/common/locales/ca-IT.js');\nrequire('!file-loader?name=assets/locales/angular/ca.js!@angular/common/locales/ca.js');\nrequire('!file-loader?name=assets/locales/angular/ccp-IN.js!@angular/common/locales/ccp-IN.js');\nrequire('!file-loader?name=assets/locales/angular/ccp.js!@angular/common/locales/ccp.js');\nrequire('!file-loader?name=assets/locales/angular/ce.js!@angular/common/locales/ce.js');\nrequire('!file-loader?name=assets/locales/angular/cgg.js!@angular/common/locales/cgg.js');\nrequire('!file-loader?name=assets/locales/angular/chr.js!@angular/common/locales/chr.js');\nrequire('!file-loader?name=assets/locales/angular/ckb-IR.js!@angular/common/locales/ckb-IR.js');\nrequire('!file-loader?name=assets/locales/angular/ckb.js!@angular/common/locales/ckb.js');\nrequire('!file-loader?name=assets/locales/angular/cs.js!@angular/common/locales/cs.js');\nrequire('!file-loader?name=assets/locales/angular/cu.js!@angular/common/locales/cu.js');\nrequire('!file-loader?name=assets/locales/angular/cy.js!@angular/common/locales/cy.js');\nrequire('!file-loader?name=assets/locales/angular/da-GL.js!@angular/common/locales/da-GL.js');\nrequire('!file-loader?name=assets/locales/angular/da.js!@angular/common/locales/da.js');\nrequire('!file-loader?name=assets/locales/angular/dav.js!@angular/common/locales/dav.js');\nrequire('!file-loader?name=assets/locales/angular/de-AT.js!@angular/common/locales/de-AT.js');\nrequire('!file-loader?name=assets/locales/angular/de-BE.js!@angular/common/locales/de-BE.js');\nrequire('!file-loader?name=assets/locales/angular/de-CH.js!@angular/common/locales/de-CH.js');\nrequire('!file-loader?name=assets/locales/angular/de-IT.js!@angular/common/locales/de-IT.js');\nrequire('!file-loader?name=assets/locales/angular/de-LI.js!@angular/common/locales/de-LI.js');\nrequire('!file-loader?name=assets/locales/angular/de-LU.js!@angular/common/locales/de-LU.js');\nrequire('!file-loader?name=assets/locales/angular/de.js!@angular/common/locales/de.js');\nrequire('!file-loader?name=assets/locales/angular/dje.js!@angular/common/locales/dje.js');\nrequire('!file-loader?name=assets/locales/angular/dsb.js!@angular/common/locales/dsb.js');\nrequire('!file-loader?name=assets/locales/angular/dua.js!@angular/common/locales/dua.js');\nrequire('!file-loader?name=assets/locales/angular/dyo.js!@angular/common/locales/dyo.js');\nrequire('!file-loader?name=assets/locales/angular/dz.js!@angular/common/locales/dz.js');\nrequire('!file-loader?name=assets/locales/angular/ebu.js!@angular/common/locales/ebu.js');\nrequire('!file-loader?name=assets/locales/angular/ee-TG.js!@angular/common/locales/ee-TG.js');\nrequire('!file-loader?name=assets/locales/angular/ee.js!@angular/common/locales/ee.js');\nrequire('!file-loader?name=assets/locales/angular/el-CY.js!@angular/common/locales/el-CY.js');\nrequire('!file-loader?name=assets/locales/angular/el.js!@angular/common/locales/el.js');\nrequire('!file-loader?name=assets/locales/angular/en-001.js!@angular/common/locales/en-001.js');\nrequire('!file-loader?name=assets/locales/angular/en-150.js!@angular/common/locales/en-150.js');\nrequire('!file-loader?name=assets/locales/angular/en-AG.js!@angular/common/locales/en-AG.js');\nrequire('!file-loader?name=assets/locales/angular/en-AI.js!@angular/common/locales/en-AI.js');\nrequire('!file-loader?name=assets/locales/angular/en-AS.js!@angular/common/locales/en-AS.js');\nrequire('!file-loader?name=assets/locales/angular/en-AT.js!@angular/common/locales/en-AT.js');\nrequire('!file-loader?name=assets/locales/angular/en-AU.js!@angular/common/locales/en-AU.js');\nrequire('!file-loader?name=assets/locales/angular/en-BB.js!@angular/common/locales/en-BB.js');\nrequire('!file-loader?name=assets/locales/angular/en-BE.js!@angular/common/locales/en-BE.js');\nrequire('!file-loader?name=assets/locales/angular/en-BI.js!@angular/common/locales/en-BI.js');\nrequire('!file-loader?name=assets/locales/angular/en-BM.js!@angular/common/locales/en-BM.js');\nrequire('!file-loader?name=assets/locales/angular/en-BS.js!@angular/common/locales/en-BS.js');\nrequire('!file-loader?name=assets/locales/angular/en-BW.js!@angular/common/locales/en-BW.js');\nrequire('!file-loader?name=assets/locales/angular/en-BZ.js!@angular/common/locales/en-BZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-CA.js!@angular/common/locales/en-CA.js');\nrequire('!file-loader?name=assets/locales/angular/en-CC.js!@angular/common/locales/en-CC.js');\nrequire('!file-loader?name=assets/locales/angular/en-CH.js!@angular/common/locales/en-CH.js');\nrequire('!file-loader?name=assets/locales/angular/en-CK.js!@angular/common/locales/en-CK.js');\nrequire('!file-loader?name=assets/locales/angular/en-CM.js!@angular/common/locales/en-CM.js');\nrequire('!file-loader?name=assets/locales/angular/en-CX.js!@angular/common/locales/en-CX.js');\nrequire('!file-loader?name=assets/locales/angular/en-CY.js!@angular/common/locales/en-CY.js');\nrequire('!file-loader?name=assets/locales/angular/en-DE.js!@angular/common/locales/en-DE.js');\nrequire('!file-loader?name=assets/locales/angular/en-DG.js!@angular/common/locales/en-DG.js');\nrequire('!file-loader?name=assets/locales/angular/en-DK.js!@angular/common/locales/en-DK.js');\nrequire('!file-loader?name=assets/locales/angular/en-DM.js!@angular/common/locales/en-DM.js');\nrequire('!file-loader?name=assets/locales/angular/en-ER.js!@angular/common/locales/en-ER.js');\nrequire('!file-loader?name=assets/locales/angular/en-FI.js!@angular/common/locales/en-FI.js');\nrequire('!file-loader?name=assets/locales/angular/en-FJ.js!@angular/common/locales/en-FJ.js');\nrequire('!file-loader?name=assets/locales/angular/en-FK.js!@angular/common/locales/en-FK.js');\nrequire('!file-loader?name=assets/locales/angular/en-FM.js!@angular/common/locales/en-FM.js');\nrequire('!file-loader?name=assets/locales/angular/en-GB.js!@angular/common/locales/en-GB.js');\nrequire('!file-loader?name=assets/locales/angular/en-GD.js!@angular/common/locales/en-GD.js');\nrequire('!file-loader?name=assets/locales/angular/en-GG.js!@angular/common/locales/en-GG.js');\nrequire('!file-loader?name=assets/locales/angular/en-GH.js!@angular/common/locales/en-GH.js');\nrequire('!file-loader?name=assets/locales/angular/en-GI.js!@angular/common/locales/en-GI.js');\nrequire('!file-loader?name=assets/locales/angular/en-GM.js!@angular/common/locales/en-GM.js');\nrequire('!file-loader?name=assets/locales/angular/en-GU.js!@angular/common/locales/en-GU.js');\nrequire('!file-loader?name=assets/locales/angular/en-GY.js!@angular/common/locales/en-GY.js');\nrequire('!file-loader?name=assets/locales/angular/en-HK.js!@angular/common/locales/en-HK.js');\nrequire('!file-loader?name=assets/locales/angular/en-IE.js!@angular/common/locales/en-IE.js');\nrequire('!file-loader?name=assets/locales/angular/en-IL.js!@angular/common/locales/en-IL.js');\nrequire('!file-loader?name=assets/locales/angular/en-IM.js!@angular/common/locales/en-IM.js');\nrequire('!file-loader?name=assets/locales/angular/en-IN.js!@angular/common/locales/en-IN.js');\nrequire('!file-loader?name=assets/locales/angular/en-IO.js!@angular/common/locales/en-IO.js');\nrequire('!file-loader?name=assets/locales/angular/en-JE.js!@angular/common/locales/en-JE.js');\nrequire('!file-loader?name=assets/locales/angular/en-JM.js!@angular/common/locales/en-JM.js');\nrequire('!file-loader?name=assets/locales/angular/en-KE.js!@angular/common/locales/en-KE.js');\nrequire('!file-loader?name=assets/locales/angular/en-KI.js!@angular/common/locales/en-KI.js');\nrequire('!file-loader?name=assets/locales/angular/en-KN.js!@angular/common/locales/en-KN.js');\nrequire('!file-loader?name=assets/locales/angular/en-KY.js!@angular/common/locales/en-KY.js');\nrequire('!file-loader?name=assets/locales/angular/en-LC.js!@angular/common/locales/en-LC.js');\nrequire('!file-loader?name=assets/locales/angular/en-LR.js!@angular/common/locales/en-LR.js');\nrequire('!file-loader?name=assets/locales/angular/en-LS.js!@angular/common/locales/en-LS.js');\nrequire('!file-loader?name=assets/locales/angular/en-MG.js!@angular/common/locales/en-MG.js');\nrequire('!file-loader?name=assets/locales/angular/en-MH.js!@angular/common/locales/en-MH.js');\nrequire('!file-loader?name=assets/locales/angular/en-MO.js!@angular/common/locales/en-MO.js');\nrequire('!file-loader?name=assets/locales/angular/en-MP.js!@angular/common/locales/en-MP.js');\nrequire('!file-loader?name=assets/locales/angular/en-MS.js!@angular/common/locales/en-MS.js');\nrequire('!file-loader?name=assets/locales/angular/en-MT.js!@angular/common/locales/en-MT.js');\nrequire('!file-loader?name=assets/locales/angular/en-MU.js!@angular/common/locales/en-MU.js');\nrequire('!file-loader?name=assets/locales/angular/en-MW.js!@angular/common/locales/en-MW.js');\nrequire('!file-loader?name=assets/locales/angular/en-MY.js!@angular/common/locales/en-MY.js');\nrequire('!file-loader?name=assets/locales/angular/en-NA.js!@angular/common/locales/en-NA.js');\nrequire('!file-loader?name=assets/locales/angular/en-NF.js!@angular/common/locales/en-NF.js');\nrequire('!file-loader?name=assets/locales/angular/en-NG.js!@angular/common/locales/en-NG.js');\nrequire('!file-loader?name=assets/locales/angular/en-NL.js!@angular/common/locales/en-NL.js');\nrequire('!file-loader?name=assets/locales/angular/en-NR.js!@angular/common/locales/en-NR.js');\nrequire('!file-loader?name=assets/locales/angular/en-NU.js!@angular/common/locales/en-NU.js');\nrequire('!file-loader?name=assets/locales/angular/en-NZ.js!@angular/common/locales/en-NZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-PG.js!@angular/common/locales/en-PG.js');\nrequire('!file-loader?name=assets/locales/angular/en-PH.js!@angular/common/locales/en-PH.js');\nrequire('!file-loader?name=assets/locales/angular/en-PK.js!@angular/common/locales/en-PK.js');\nrequire('!file-loader?name=assets/locales/angular/en-PN.js!@angular/common/locales/en-PN.js');\nrequire('!file-loader?name=assets/locales/angular/en-PR.js!@angular/common/locales/en-PR.js');\nrequire('!file-loader?name=assets/locales/angular/en-PW.js!@angular/common/locales/en-PW.js');\nrequire('!file-loader?name=assets/locales/angular/en-RW.js!@angular/common/locales/en-RW.js');\nrequire('!file-loader?name=assets/locales/angular/en-SB.js!@angular/common/locales/en-SB.js');\nrequire('!file-loader?name=assets/locales/angular/en-SC.js!@angular/common/locales/en-SC.js');\nrequire('!file-loader?name=assets/locales/angular/en-SD.js!@angular/common/locales/en-SD.js');\nrequire('!file-loader?name=assets/locales/angular/en-SE.js!@angular/common/locales/en-SE.js');\nrequire('!file-loader?name=assets/locales/angular/en-SG.js!@angular/common/locales/en-SG.js');\nrequire('!file-loader?name=assets/locales/angular/en-SH.js!@angular/common/locales/en-SH.js');\nrequire('!file-loader?name=assets/locales/angular/en-SI.js!@angular/common/locales/en-SI.js');\nrequire('!file-loader?name=assets/locales/angular/en-SL.js!@angular/common/locales/en-SL.js');\nrequire('!file-loader?name=assets/locales/angular/en-SS.js!@angular/common/locales/en-SS.js');\nrequire('!file-loader?name=assets/locales/angular/en-SX.js!@angular/common/locales/en-SX.js');\nrequire('!file-loader?name=assets/locales/angular/en-SZ.js!@angular/common/locales/en-SZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-TC.js!@angular/common/locales/en-TC.js');\nrequire('!file-loader?name=assets/locales/angular/en-TK.js!@angular/common/locales/en-TK.js');\nrequire('!file-loader?name=assets/locales/angular/en-TO.js!@angular/common/locales/en-TO.js');\nrequire('!file-loader?name=assets/locales/angular/en-TT.js!@angular/common/locales/en-TT.js');\nrequire('!file-loader?name=assets/locales/angular/en-TV.js!@angular/common/locales/en-TV.js');\nrequire('!file-loader?name=assets/locales/angular/en-TZ.js!@angular/common/locales/en-TZ.js');\nrequire('!file-loader?name=assets/locales/angular/en-UG.js!@angular/common/locales/en-UG.js');\nrequire('!file-loader?name=assets/locales/angular/en-UM.js!@angular/common/locales/en-UM.js');\nrequire('!file-loader?name=assets/locales/angular/en-US-POSIX.js!@angular/common/locales/en-US-POSIX.js');\nrequire('!file-loader?name=assets/locales/angular/en-VC.js!@angular/common/locales/en-VC.js');\nrequire('!file-loader?name=assets/locales/angular/en-VG.js!@angular/common/locales/en-VG.js');\nrequire('!file-loader?name=assets/locales/angular/en-VI.js!@angular/common/locales/en-VI.js');\nrequire('!file-loader?name=assets/locales/angular/en-VU.js!@angular/common/locales/en-VU.js');\nrequire('!file-loader?name=assets/locales/angular/en-WS.js!@angular/common/locales/en-WS.js');\nrequire('!file-loader?name=assets/locales/angular/en-ZA.js!@angular/common/locales/en-ZA.js');\nrequire('!file-loader?name=assets/locales/angular/en-ZM.js!@angular/common/locales/en-ZM.js');\nrequire('!file-loader?name=assets/locales/angular/en-ZW.js!@angular/common/locales/en-ZW.js');\nrequire('!file-loader?name=assets/locales/angular/en.js!@angular/common/locales/en.js');\nrequire('!file-loader?name=assets/locales/angular/eo.js!@angular/common/locales/eo.js');\nrequire('!file-loader?name=assets/locales/angular/es-419.js!@angular/common/locales/es-419.js');\nrequire('!file-loader?name=assets/locales/angular/es-AR.js!@angular/common/locales/es-AR.js');\nrequire('!file-loader?name=assets/locales/angular/es-BO.js!@angular/common/locales/es-BO.js');\nrequire('!file-loader?name=assets/locales/angular/es-BR.js!@angular/common/locales/es-BR.js');\nrequire('!file-loader?name=assets/locales/angular/es-BZ.js!@angular/common/locales/es-BZ.js');\nrequire('!file-loader?name=assets/locales/angular/es-CL.js!@angular/common/locales/es-CL.js');\nrequire('!file-loader?name=assets/locales/angular/es-CO.js!@angular/common/locales/es-CO.js');\nrequire('!file-loader?name=assets/locales/angular/es-CR.js!@angular/common/locales/es-CR.js');\nrequire('!file-loader?name=assets/locales/angular/es-CU.js!@angular/common/locales/es-CU.js');\nrequire('!file-loader?name=assets/locales/angular/es-DO.js!@angular/common/locales/es-DO.js');\nrequire('!file-loader?name=assets/locales/angular/es-EA.js!@angular/common/locales/es-EA.js');\nrequire('!file-loader?name=assets/locales/angular/es-EC.js!@angular/common/locales/es-EC.js');\nrequire('!file-loader?name=assets/locales/angular/es-GQ.js!@angular/common/locales/es-GQ.js');\nrequire('!file-loader?name=assets/locales/angular/es-GT.js!@angular/common/locales/es-GT.js');\nrequire('!file-loader?name=assets/locales/angular/es-HN.js!@angular/common/locales/es-HN.js');\nrequire('!file-loader?name=assets/locales/angular/es-IC.js!@angular/common/locales/es-IC.js');\nrequire('!file-loader?name=assets/locales/angular/es-MX.js!@angular/common/locales/es-MX.js');\nrequire('!file-loader?name=assets/locales/angular/es-NI.js!@angular/common/locales/es-NI.js');\nrequire('!file-loader?name=assets/locales/angular/es-PA.js!@angular/common/locales/es-PA.js');\nrequire('!file-loader?name=assets/locales/angular/es-PE.js!@angular/common/locales/es-PE.js');\nrequire('!file-loader?name=assets/locales/angular/es-PH.js!@angular/common/locales/es-PH.js');\nrequire('!file-loader?name=assets/locales/angular/es-PR.js!@angular/common/locales/es-PR.js');\nrequire('!file-loader?name=assets/locales/angular/es-PY.js!@angular/common/locales/es-PY.js');\nrequire('!file-loader?name=assets/locales/angular/es-SV.js!@angular/common/locales/es-SV.js');\nrequire('!file-loader?name=assets/locales/angular/es-US.js!@angular/common/locales/es-US.js');\nrequire('!file-loader?name=assets/locales/angular/es-UY.js!@angular/common/locales/es-UY.js');\nrequire('!file-loader?name=assets/locales/angular/es-VE.js!@angular/common/locales/es-VE.js');\nrequire('!file-loader?name=assets/locales/angular/es.js!@angular/common/locales/es.js');\nrequire('!file-loader?name=assets/locales/angular/et.js!@angular/common/locales/et.js');\nrequire('!file-loader?name=assets/locales/angular/eu.js!@angular/common/locales/eu.js');\nrequire('!file-loader?name=assets/locales/angular/ewo.js!@angular/common/locales/ewo.js');\nrequire('!file-loader?name=assets/locales/angular/fa-AF.js!@angular/common/locales/fa-AF.js');\nrequire('!file-loader?name=assets/locales/angular/fa.js!@angular/common/locales/fa.js');\nrequire('!file-loader?name=assets/locales/angular/ff-CM.js!@angular/common/locales/ff-CM.js');\nrequire('!file-loader?name=assets/locales/angular/ff-GN.js!@angular/common/locales/ff-GN.js');\nrequire('!file-loader?name=assets/locales/angular/ff-MR.js!@angular/common/locales/ff-MR.js');\nrequire('!file-loader?name=assets/locales/angular/ff.js!@angular/common/locales/ff.js');\nrequire('!file-loader?name=assets/locales/angular/fi.js!@angular/common/locales/fi.js');\nrequire('!file-loader?name=assets/locales/angular/fil.js!@angular/common/locales/fil.js');\nrequire('!file-loader?name=assets/locales/angular/fo-DK.js!@angular/common/locales/fo-DK.js');\nrequire('!file-loader?name=assets/locales/angular/fo.js!@angular/common/locales/fo.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BE.js!@angular/common/locales/fr-BE.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BF.js!@angular/common/locales/fr-BF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BI.js!@angular/common/locales/fr-BI.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BJ.js!@angular/common/locales/fr-BJ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-BL.js!@angular/common/locales/fr-BL.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CA.js!@angular/common/locales/fr-CA.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CD.js!@angular/common/locales/fr-CD.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CF.js!@angular/common/locales/fr-CF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CG.js!@angular/common/locales/fr-CG.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CH.js!@angular/common/locales/fr-CH.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CI.js!@angular/common/locales/fr-CI.js');\nrequire('!file-loader?name=assets/locales/angular/fr-CM.js!@angular/common/locales/fr-CM.js');\nrequire('!file-loader?name=assets/locales/angular/fr-DJ.js!@angular/common/locales/fr-DJ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-DZ.js!@angular/common/locales/fr-DZ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GA.js!@angular/common/locales/fr-GA.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GF.js!@angular/common/locales/fr-GF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GN.js!@angular/common/locales/fr-GN.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GP.js!@angular/common/locales/fr-GP.js');\nrequire('!file-loader?name=assets/locales/angular/fr-GQ.js!@angular/common/locales/fr-GQ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-HT.js!@angular/common/locales/fr-HT.js');\nrequire('!file-loader?name=assets/locales/angular/fr-KM.js!@angular/common/locales/fr-KM.js');\nrequire('!file-loader?name=assets/locales/angular/fr-LU.js!@angular/common/locales/fr-LU.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MA.js!@angular/common/locales/fr-MA.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MC.js!@angular/common/locales/fr-MC.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MF.js!@angular/common/locales/fr-MF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MG.js!@angular/common/locales/fr-MG.js');\nrequire('!file-loader?name=assets/locales/angular/fr-ML.js!@angular/common/locales/fr-ML.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MQ.js!@angular/common/locales/fr-MQ.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MR.js!@angular/common/locales/fr-MR.js');\nrequire('!file-loader?name=assets/locales/angular/fr-MU.js!@angular/common/locales/fr-MU.js');\nrequire('!file-loader?name=assets/locales/angular/fr-NC.js!@angular/common/locales/fr-NC.js');\nrequire('!file-loader?name=assets/locales/angular/fr-NE.js!@angular/common/locales/fr-NE.js');\nrequire('!file-loader?name=assets/locales/angular/fr-PF.js!@angular/common/locales/fr-PF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-PM.js!@angular/common/locales/fr-PM.js');\nrequire('!file-loader?name=assets/locales/angular/fr-RE.js!@angular/common/locales/fr-RE.js');\nrequire('!file-loader?name=assets/locales/angular/fr-RW.js!@angular/common/locales/fr-RW.js');\nrequire('!file-loader?name=assets/locales/angular/fr-SC.js!@angular/common/locales/fr-SC.js');\nrequire('!file-loader?name=assets/locales/angular/fr-SN.js!@angular/common/locales/fr-SN.js');\nrequire('!file-loader?name=assets/locales/angular/fr-SY.js!@angular/common/locales/fr-SY.js');\nrequire('!file-loader?name=assets/locales/angular/fr-TD.js!@angular/common/locales/fr-TD.js');\nrequire('!file-loader?name=assets/locales/angular/fr-TG.js!@angular/common/locales/fr-TG.js');\nrequire('!file-loader?name=assets/locales/angular/fr-TN.js!@angular/common/locales/fr-TN.js');\nrequire('!file-loader?name=assets/locales/angular/fr-VU.js!@angular/common/locales/fr-VU.js');\nrequire('!file-loader?name=assets/locales/angular/fr-WF.js!@angular/common/locales/fr-WF.js');\nrequire('!file-loader?name=assets/locales/angular/fr-YT.js!@angular/common/locales/fr-YT.js');\nrequire('!file-loader?name=assets/locales/angular/fr.js!@angular/common/locales/fr.js');\nrequire('!file-loader?name=assets/locales/angular/fur.js!@angular/common/locales/fur.js');\nrequire('!file-loader?name=assets/locales/angular/fy.js!@angular/common/locales/fy.js');\nrequire('!file-loader?name=assets/locales/angular/ga.js!@angular/common/locales/ga.js');\nrequire('!file-loader?name=assets/locales/angular/gd.js!@angular/common/locales/gd.js');\nrequire('!file-loader?name=assets/locales/angular/gl.js!@angular/common/locales/gl.js');\nrequire('!file-loader?name=assets/locales/angular/gsw-FR.js!@angular/common/locales/gsw-FR.js');\nrequire('!file-loader?name=assets/locales/angular/gsw-LI.js!@angular/common/locales/gsw-LI.js');\nrequire('!file-loader?name=assets/locales/angular/gsw.js!@angular/common/locales/gsw.js');\nrequire('!file-loader?name=assets/locales/angular/gu.js!@angular/common/locales/gu.js');\nrequire('!file-loader?name=assets/locales/angular/guz.js!@angular/common/locales/guz.js');\nrequire('!file-loader?name=assets/locales/angular/gv.js!@angular/common/locales/gv.js');\nrequire('!file-loader?name=assets/locales/angular/ha-GH.js!@angular/common/locales/ha-GH.js');\nrequire('!file-loader?name=assets/locales/angular/ha-NE.js!@angular/common/locales/ha-NE.js');\nrequire('!file-loader?name=assets/locales/angular/ha.js!@angular/common/locales/ha.js');\nrequire('!file-loader?name=assets/locales/angular/haw.js!@angular/common/locales/haw.js');\nrequire('!file-loader?name=assets/locales/angular/he.js!@angular/common/locales/he.js');\nrequire('!file-loader?name=assets/locales/angular/hi.js!@angular/common/locales/hi.js');\nrequire('!file-loader?name=assets/locales/angular/hr-BA.js!@angular/common/locales/hr-BA.js');\nrequire('!file-loader?name=assets/locales/angular/hr.js!@angular/common/locales/hr.js');\nrequire('!file-loader?name=assets/locales/angular/hsb.js!@angular/common/locales/hsb.js');\nrequire('!file-loader?name=assets/locales/angular/hu.js!@angular/common/locales/hu.js');\nrequire('!file-loader?name=assets/locales/angular/hy.js!@angular/common/locales/hy.js');\nrequire('!file-loader?name=assets/locales/angular/id.js!@angular/common/locales/id.js');\nrequire('!file-loader?name=assets/locales/angular/ig.js!@angular/common/locales/ig.js');\nrequire('!file-loader?name=assets/locales/angular/ii.js!@angular/common/locales/ii.js');\nrequire('!file-loader?name=assets/locales/angular/is.js!@angular/common/locales/is.js');\nrequire('!file-loader?name=assets/locales/angular/it-CH.js!@angular/common/locales/it-CH.js');\nrequire('!file-loader?name=assets/locales/angular/it-SM.js!@angular/common/locales/it-SM.js');\nrequire('!file-loader?name=assets/locales/angular/it-VA.js!@angular/common/locales/it-VA.js');\nrequire('!file-loader?name=assets/locales/angular/it.js!@angular/common/locales/it.js');\nrequire('!file-loader?name=assets/locales/angular/ja.js!@angular/common/locales/ja.js');\nrequire('!file-loader?name=assets/locales/angular/jgo.js!@angular/common/locales/jgo.js');\nrequire('!file-loader?name=assets/locales/angular/jmc.js!@angular/common/locales/jmc.js');\nrequire('!file-loader?name=assets/locales/angular/ka.js!@angular/common/locales/ka.js');\nrequire('!file-loader?name=assets/locales/angular/kab.js!@angular/common/locales/kab.js');\nrequire('!file-loader?name=assets/locales/angular/kam.js!@angular/common/locales/kam.js');\nrequire('!file-loader?name=assets/locales/angular/kde.js!@angular/common/locales/kde.js');\nrequire('!file-loader?name=assets/locales/angular/kea.js!@angular/common/locales/kea.js');\nrequire('!file-loader?name=assets/locales/angular/khq.js!@angular/common/locales/khq.js');\nrequire('!file-loader?name=assets/locales/angular/ki.js!@angular/common/locales/ki.js');\nrequire('!file-loader?name=assets/locales/angular/kk.js!@angular/common/locales/kk.js');\nrequire('!file-loader?name=assets/locales/angular/kkj.js!@angular/common/locales/kkj.js');\nrequire('!file-loader?name=assets/locales/angular/kl.js!@angular/common/locales/kl.js');\nrequire('!file-loader?name=assets/locales/angular/kln.js!@angular/common/locales/kln.js');\nrequire('!file-loader?name=assets/locales/angular/km.js!@angular/common/locales/km.js');\nrequire('!file-loader?name=assets/locales/angular/kn.js!@angular/common/locales/kn.js');\nrequire('!file-loader?name=assets/locales/angular/ko-KP.js!@angular/common/locales/ko-KP.js');\nrequire('!file-loader?name=assets/locales/angular/ko.js!@angular/common/locales/ko.js');\nrequire('!file-loader?name=assets/locales/angular/kok.js!@angular/common/locales/kok.js');\nrequire('!file-loader?name=assets/locales/angular/ks.js!@angular/common/locales/ks.js');\nrequire('!file-loader?name=assets/locales/angular/ksb.js!@angular/common/locales/ksb.js');\nrequire('!file-loader?name=assets/locales/angular/ksf.js!@angular/common/locales/ksf.js');\nrequire('!file-loader?name=assets/locales/angular/ksh.js!@angular/common/locales/ksh.js');\nrequire('!file-loader?name=assets/locales/angular/kw.js!@angular/common/locales/kw.js');\nrequire('!file-loader?name=assets/locales/angular/ky.js!@angular/common/locales/ky.js');\nrequire('!file-loader?name=assets/locales/angular/lag.js!@angular/common/locales/lag.js');\nrequire('!file-loader?name=assets/locales/angular/lb.js!@angular/common/locales/lb.js');\nrequire('!file-loader?name=assets/locales/angular/lg.js!@angular/common/locales/lg.js');\nrequire('!file-loader?name=assets/locales/angular/lkt.js!@angular/common/locales/lkt.js');\nrequire('!file-loader?name=assets/locales/angular/ln-AO.js!@angular/common/locales/ln-AO.js');\nrequire('!file-loader?name=assets/locales/angular/ln-CF.js!@angular/common/locales/ln-CF.js');\nrequire('!file-loader?name=assets/locales/angular/ln-CG.js!@angular/common/locales/ln-CG.js');\nrequire('!file-loader?name=assets/locales/angular/ln.js!@angular/common/locales/ln.js');\nrequire('!file-loader?name=assets/locales/angular/lo.js!@angular/common/locales/lo.js');\nrequire('!file-loader?name=assets/locales/angular/lrc-IQ.js!@angular/common/locales/lrc-IQ.js');\nrequire('!file-loader?name=assets/locales/angular/lrc.js!@angular/common/locales/lrc.js');\nrequire('!file-loader?name=assets/locales/angular/lt.js!@angular/common/locales/lt.js');\nrequire('!file-loader?name=assets/locales/angular/lu.js!@angular/common/locales/lu.js');\nrequire('!file-loader?name=assets/locales/angular/luo.js!@angular/common/locales/luo.js');\nrequire('!file-loader?name=assets/locales/angular/luy.js!@angular/common/locales/luy.js');\nrequire('!file-loader?name=assets/locales/angular/lv.js!@angular/common/locales/lv.js');\nrequire('!file-loader?name=assets/locales/angular/mas-TZ.js!@angular/common/locales/mas-TZ.js');\nrequire('!file-loader?name=assets/locales/angular/mas.js!@angular/common/locales/mas.js');\nrequire('!file-loader?name=assets/locales/angular/mer.js!@angular/common/locales/mer.js');\nrequire('!file-loader?name=assets/locales/angular/mfe.js!@angular/common/locales/mfe.js');\nrequire('!file-loader?name=assets/locales/angular/mg.js!@angular/common/locales/mg.js');\nrequire('!file-loader?name=assets/locales/angular/mgh.js!@angular/common/locales/mgh.js');\nrequire('!file-loader?name=assets/locales/angular/mgo.js!@angular/common/locales/mgo.js');\nrequire('!file-loader?name=assets/locales/angular/mk.js!@angular/common/locales/mk.js');\nrequire('!file-loader?name=assets/locales/angular/ml.js!@angular/common/locales/ml.js');\nrequire('!file-loader?name=assets/locales/angular/mn.js!@angular/common/locales/mn.js');\nrequire('!file-loader?name=assets/locales/angular/mr.js!@angular/common/locales/mr.js');\nrequire('!file-loader?name=assets/locales/angular/ms-BN.js!@angular/common/locales/ms-BN.js');\nrequire('!file-loader?name=assets/locales/angular/ms-SG.js!@angular/common/locales/ms-SG.js');\nrequire('!file-loader?name=assets/locales/angular/ms.js!@angular/common/locales/ms.js');\nrequire('!file-loader?name=assets/locales/angular/mt.js!@angular/common/locales/mt.js');\nrequire('!file-loader?name=assets/locales/angular/mua.js!@angular/common/locales/mua.js');\nrequire('!file-loader?name=assets/locales/angular/my.js!@angular/common/locales/my.js');\nrequire('!file-loader?name=assets/locales/angular/mzn.js!@angular/common/locales/mzn.js');\nrequire('!file-loader?name=assets/locales/angular/naq.js!@angular/common/locales/naq.js');\nrequire('!file-loader?name=assets/locales/angular/nb-SJ.js!@angular/common/locales/nb-SJ.js');\nrequire('!file-loader?name=assets/locales/angular/nb.js!@angular/common/locales/nb.js');\nrequire('!file-loader?name=assets/locales/angular/nd.js!@angular/common/locales/nd.js');\nrequire('!file-loader?name=assets/locales/angular/nds-NL.js!@angular/common/locales/nds-NL.js');\nrequire('!file-loader?name=assets/locales/angular/nds.js!@angular/common/locales/nds.js');\nrequire('!file-loader?name=assets/locales/angular/ne-IN.js!@angular/common/locales/ne-IN.js');\nrequire('!file-loader?name=assets/locales/angular/ne.js!@angular/common/locales/ne.js');\nrequire('!file-loader?name=assets/locales/angular/nl-AW.js!@angular/common/locales/nl-AW.js');\nrequire('!file-loader?name=assets/locales/angular/nl-BE.js!@angular/common/locales/nl-BE.js');\nrequire('!file-loader?name=assets/locales/angular/nl-BQ.js!@angular/common/locales/nl-BQ.js');\nrequire('!file-loader?name=assets/locales/angular/nl-CW.js!@angular/common/locales/nl-CW.js');\nrequire('!file-loader?name=assets/locales/angular/nl-SR.js!@angular/common/locales/nl-SR.js');\nrequire('!file-loader?name=assets/locales/angular/nl-SX.js!@angular/common/locales/nl-SX.js');\nrequire('!file-loader?name=assets/locales/angular/nl.js!@angular/common/locales/nl.js');\nrequire('!file-loader?name=assets/locales/angular/nmg.js!@angular/common/locales/nmg.js');\nrequire('!file-loader?name=assets/locales/angular/nn.js!@angular/common/locales/nn.js');\nrequire('!file-loader?name=assets/locales/angular/nnh.js!@angular/common/locales/nnh.js');\nrequire('!file-loader?name=assets/locales/angular/nus.js!@angular/common/locales/nus.js');\nrequire('!file-loader?name=assets/locales/angular/nyn.js!@angular/common/locales/nyn.js');\nrequire('!file-loader?name=assets/locales/angular/om-KE.js!@angular/common/locales/om-KE.js');\nrequire('!file-loader?name=assets/locales/angular/om.js!@angular/common/locales/om.js');\nrequire('!file-loader?name=assets/locales/angular/or.js!@angular/common/locales/or.js');\nrequire('!file-loader?name=assets/locales/angular/os-RU.js!@angular/common/locales/os-RU.js');\nrequire('!file-loader?name=assets/locales/angular/os.js!@angular/common/locales/os.js');\nrequire('!file-loader?name=assets/locales/angular/pa-Arab.js!@angular/common/locales/pa-Arab.js');\nrequire('!file-loader?name=assets/locales/angular/pa-Guru.js!@angular/common/locales/pa-Guru.js');\nrequire('!file-loader?name=assets/locales/angular/pa.js!@angular/common/locales/pa.js');\nrequire('!file-loader?name=assets/locales/angular/pl.js!@angular/common/locales/pl.js');\nrequire('!file-loader?name=assets/locales/angular/prg.js!@angular/common/locales/prg.js');\nrequire('!file-loader?name=assets/locales/angular/ps.js!@angular/common/locales/ps.js');\nrequire('!file-loader?name=assets/locales/angular/pt-AO.js!@angular/common/locales/pt-AO.js');\nrequire('!file-loader?name=assets/locales/angular/pt-CH.js!@angular/common/locales/pt-CH.js');\nrequire('!file-loader?name=assets/locales/angular/pt-CV.js!@angular/common/locales/pt-CV.js');\nrequire('!file-loader?name=assets/locales/angular/pt-GQ.js!@angular/common/locales/pt-GQ.js');\nrequire('!file-loader?name=assets/locales/angular/pt-GW.js!@angular/common/locales/pt-GW.js');\nrequire('!file-loader?name=assets/locales/angular/pt-LU.js!@angular/common/locales/pt-LU.js');\nrequire('!file-loader?name=assets/locales/angular/pt-MO.js!@angular/common/locales/pt-MO.js');\nrequire('!file-loader?name=assets/locales/angular/pt-MZ.js!@angular/common/locales/pt-MZ.js');\nrequire('!file-loader?name=assets/locales/angular/pt-PT.js!@angular/common/locales/pt-PT.js');\nrequire('!file-loader?name=assets/locales/angular/pt-ST.js!@angular/common/locales/pt-ST.js');\nrequire('!file-loader?name=assets/locales/angular/pt-TL.js!@angular/common/locales/pt-TL.js');\nrequire('!file-loader?name=assets/locales/angular/pt.js!@angular/common/locales/pt.js');\nrequire('!file-loader?name=assets/locales/angular/qu-BO.js!@angular/common/locales/qu-BO.js');\nrequire('!file-loader?name=assets/locales/angular/qu-EC.js!@angular/common/locales/qu-EC.js');\nrequire('!file-loader?name=assets/locales/angular/qu.js!@angular/common/locales/qu.js');\nrequire('!file-loader?name=assets/locales/angular/rm.js!@angular/common/locales/rm.js');\nrequire('!file-loader?name=assets/locales/angular/rn.js!@angular/common/locales/rn.js');\nrequire('!file-loader?name=assets/locales/angular/ro-MD.js!@angular/common/locales/ro-MD.js');\nrequire('!file-loader?name=assets/locales/angular/ro.js!@angular/common/locales/ro.js');\nrequire('!file-loader?name=assets/locales/angular/rof.js!@angular/common/locales/rof.js');\nrequire('!file-loader?name=assets/locales/angular/root.js!@angular/common/locales/root.js');\nrequire('!file-loader?name=assets/locales/angular/ru-BY.js!@angular/common/locales/ru-BY.js');\nrequire('!file-loader?name=assets/locales/angular/ru-KG.js!@angular/common/locales/ru-KG.js');\nrequire('!file-loader?name=assets/locales/angular/ru-KZ.js!@angular/common/locales/ru-KZ.js');\nrequire('!file-loader?name=assets/locales/angular/ru-MD.js!@angular/common/locales/ru-MD.js');\nrequire('!file-loader?name=assets/locales/angular/ru-UA.js!@angular/common/locales/ru-UA.js');\nrequire('!file-loader?name=assets/locales/angular/ru.js!@angular/common/locales/ru.js');\nrequire('!file-loader?name=assets/locales/angular/rw.js!@angular/common/locales/rw.js');\nrequire('!file-loader?name=assets/locales/angular/rwk.js!@angular/common/locales/rwk.js');\nrequire('!file-loader?name=assets/locales/angular/sah.js!@angular/common/locales/sah.js');\nrequire('!file-loader?name=assets/locales/angular/saq.js!@angular/common/locales/saq.js');\nrequire('!file-loader?name=assets/locales/angular/sbp.js!@angular/common/locales/sbp.js');\nrequire('!file-loader?name=assets/locales/angular/sd.js!@angular/common/locales/sd.js');\nrequire('!file-loader?name=assets/locales/angular/se-FI.js!@angular/common/locales/se-FI.js');\nrequire('!file-loader?name=assets/locales/angular/se-SE.js!@angular/common/locales/se-SE.js');\nrequire('!file-loader?name=assets/locales/angular/se.js!@angular/common/locales/se.js');\nrequire('!file-loader?name=assets/locales/angular/seh.js!@angular/common/locales/seh.js');\nrequire('!file-loader?name=assets/locales/angular/ses.js!@angular/common/locales/ses.js');\nrequire('!file-loader?name=assets/locales/angular/sg.js!@angular/common/locales/sg.js');\nrequire('!file-loader?name=assets/locales/angular/shi-Latn.js!@angular/common/locales/shi-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/shi-Tfng.js!@angular/common/locales/shi-Tfng.js');\nrequire('!file-loader?name=assets/locales/angular/shi.js!@angular/common/locales/shi.js');\nrequire('!file-loader?name=assets/locales/angular/si.js!@angular/common/locales/si.js');\nrequire('!file-loader?name=assets/locales/angular/sk.js!@angular/common/locales/sk.js');\nrequire('!file-loader?name=assets/locales/angular/sl.js!@angular/common/locales/sl.js');\nrequire('!file-loader?name=assets/locales/angular/smn.js!@angular/common/locales/smn.js');\nrequire('!file-loader?name=assets/locales/angular/sn.js!@angular/common/locales/sn.js');\nrequire('!file-loader?name=assets/locales/angular/so-DJ.js!@angular/common/locales/so-DJ.js');\nrequire('!file-loader?name=assets/locales/angular/so-ET.js!@angular/common/locales/so-ET.js');\nrequire('!file-loader?name=assets/locales/angular/so-KE.js!@angular/common/locales/so-KE.js');\nrequire('!file-loader?name=assets/locales/angular/so.js!@angular/common/locales/so.js');\nrequire('!file-loader?name=assets/locales/angular/sq-MK.js!@angular/common/locales/sq-MK.js');\nrequire('!file-loader?name=assets/locales/angular/sq-XK.js!@angular/common/locales/sq-XK.js');\nrequire('!file-loader?name=assets/locales/angular/sq.js!@angular/common/locales/sq.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl-BA.js!@angular/common/locales/sr-Cyrl-BA.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl-ME.js!@angular/common/locales/sr-Cyrl-ME.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl-XK.js!@angular/common/locales/sr-Cyrl-XK.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Cyrl.js!@angular/common/locales/sr-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn-BA.js!@angular/common/locales/sr-Latn-BA.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn-ME.js!@angular/common/locales/sr-Latn-ME.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn-XK.js!@angular/common/locales/sr-Latn-XK.js');\nrequire('!file-loader?name=assets/locales/angular/sr-Latn.js!@angular/common/locales/sr-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/sr.js!@angular/common/locales/sr.js');\nrequire('!file-loader?name=assets/locales/angular/sv-AX.js!@angular/common/locales/sv-AX.js');\nrequire('!file-loader?name=assets/locales/angular/sv-FI.js!@angular/common/locales/sv-FI.js');\nrequire('!file-loader?name=assets/locales/angular/sv.js!@angular/common/locales/sv.js');\nrequire('!file-loader?name=assets/locales/angular/sw-CD.js!@angular/common/locales/sw-CD.js');\nrequire('!file-loader?name=assets/locales/angular/sw-KE.js!@angular/common/locales/sw-KE.js');\nrequire('!file-loader?name=assets/locales/angular/sw-UG.js!@angular/common/locales/sw-UG.js');\nrequire('!file-loader?name=assets/locales/angular/sw.js!@angular/common/locales/sw.js');\nrequire('!file-loader?name=assets/locales/angular/ta-LK.js!@angular/common/locales/ta-LK.js');\nrequire('!file-loader?name=assets/locales/angular/ta-MY.js!@angular/common/locales/ta-MY.js');\nrequire('!file-loader?name=assets/locales/angular/ta-SG.js!@angular/common/locales/ta-SG.js');\nrequire('!file-loader?name=assets/locales/angular/ta.js!@angular/common/locales/ta.js');\nrequire('!file-loader?name=assets/locales/angular/te.js!@angular/common/locales/te.js');\nrequire('!file-loader?name=assets/locales/angular/teo-KE.js!@angular/common/locales/teo-KE.js');\nrequire('!file-loader?name=assets/locales/angular/teo.js!@angular/common/locales/teo.js');\nrequire('!file-loader?name=assets/locales/angular/tg.js!@angular/common/locales/tg.js');\nrequire('!file-loader?name=assets/locales/angular/th.js!@angular/common/locales/th.js');\nrequire('!file-loader?name=assets/locales/angular/ti-ER.js!@angular/common/locales/ti-ER.js');\nrequire('!file-loader?name=assets/locales/angular/ti.js!@angular/common/locales/ti.js');\nrequire('!file-loader?name=assets/locales/angular/tk.js!@angular/common/locales/tk.js');\nrequire('!file-loader?name=assets/locales/angular/to.js!@angular/common/locales/to.js');\nrequire('!file-loader?name=assets/locales/angular/tr-CY.js!@angular/common/locales/tr-CY.js');\nrequire('!file-loader?name=assets/locales/angular/tr.js!@angular/common/locales/tr.js');\nrequire('!file-loader?name=assets/locales/angular/tt.js!@angular/common/locales/tt.js');\nrequire('!file-loader?name=assets/locales/angular/twq.js!@angular/common/locales/twq.js');\nrequire('!file-loader?name=assets/locales/angular/tzm.js!@angular/common/locales/tzm.js');\nrequire('!file-loader?name=assets/locales/angular/ug.js!@angular/common/locales/ug.js');\nrequire('!file-loader?name=assets/locales/angular/uk.js!@angular/common/locales/uk.js');\nrequire('!file-loader?name=assets/locales/angular/ur-IN.js!@angular/common/locales/ur-IN.js');\nrequire('!file-loader?name=assets/locales/angular/ur.js!@angular/common/locales/ur.js');\nrequire('!file-loader?name=assets/locales/angular/uz-Arab.js!@angular/common/locales/uz-Arab.js');\nrequire('!file-loader?name=assets/locales/angular/uz-Cyrl.js!@angular/common/locales/uz-Cyrl.js');\nrequire('!file-loader?name=assets/locales/angular/uz-Latn.js!@angular/common/locales/uz-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/uz.js!@angular/common/locales/uz.js');\nrequire('!file-loader?name=assets/locales/angular/vai-Latn.js!@angular/common/locales/vai-Latn.js');\nrequire('!file-loader?name=assets/locales/angular/vai-Vaii.js!@angular/common/locales/vai-Vaii.js');\nrequire('!file-loader?name=assets/locales/angular/vai.js!@angular/common/locales/vai.js');\nrequire('!file-loader?name=assets/locales/angular/vi.js!@angular/common/locales/vi.js');\nrequire('!file-loader?name=assets/locales/angular/vo.js!@angular/common/locales/vo.js');\nrequire('!file-loader?name=assets/locales/angular/vun.js!@angular/common/locales/vun.js');\nrequire('!file-loader?name=assets/locales/angular/wae.js!@angular/common/locales/wae.js');\nrequire('!file-loader?name=assets/locales/angular/wo.js!@angular/common/locales/wo.js');\nrequire('!file-loader?name=assets/locales/angular/xog.js!@angular/common/locales/xog.js');\nrequire('!file-loader?name=assets/locales/angular/yav.js!@angular/common/locales/yav.js');\nrequire('!file-loader?name=assets/locales/angular/yi.js!@angular/common/locales/yi.js');\nrequire('!file-loader?name=assets/locales/angular/yo-BJ.js!@angular/common/locales/yo-BJ.js');\nrequire('!file-loader?name=assets/locales/angular/yo.js!@angular/common/locales/yo.js');\nrequire('!file-loader?name=assets/locales/angular/yue-Hans.js!@angular/common/locales/yue-Hans.js');\nrequire('!file-loader?name=assets/locales/angular/yue-Hant.js!@angular/common/locales/yue-Hant.js');\nrequire('!file-loader?name=assets/locales/angular/yue.js!@angular/common/locales/yue.js');\nrequire('!file-loader?name=assets/locales/angular/zgh.js!@angular/common/locales/zgh.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans-HK.js!@angular/common/locales/zh-Hans-HK.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans-MO.js!@angular/common/locales/zh-Hans-MO.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans-SG.js!@angular/common/locales/zh-Hans-SG.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hans.js!@angular/common/locales/zh-Hans.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hant-HK.js!@angular/common/locales/zh-Hant-HK.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hant-MO.js!@angular/common/locales/zh-Hant-MO.js');\nrequire('!file-loader?name=assets/locales/angular/zh-Hant.js!@angular/common/locales/zh-Hant.js');\nrequire('!file-loader?name=assets/locales/angular/zh.js!@angular/common/locales/zh.js');\nrequire('!file-loader?name=assets/locales/angular/zu.js!@angular/common/locales/zu.js');\n","export function parse(moduleSrc) {\n const src = moduleSrc.split(/\\n/)\n .map((l) => l.trim())\n .filter(Boolean)\n .filter((l) => !l.match(/^\\/?\\*/) && !l.match(/^\\/\\//))\n .join('\\n');\n const fn = new Function(`var exports = {};\nvar module = { exports: exports };\n${src}\nreturn exports;`);\n return fn();\n}\n","import './import-locales';\nimport { parse } from './parse-module';\nconst cache = new Map();\n/**\n * @ignore\n */\nexport function loadLocale(moduleLang) {\n return new Promise((resolve, reject) => {\n if (cache.has(moduleLang)) {\n resolve(cache.get(moduleLang));\n } else {\n fetch(`assets/locales/angular/${moduleLang}.js`)\n .then((res) => res.text())\n .then((src) => {\n const module = parse(src);\n cache.set(moduleLang, module);\n resolve(module);\n })\n .catch(reject);\n }\n });\n}\n","import { registerLocaleData } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { TranslateService as NgxTranslateService } from '@ngx-translate/core';\nimport { keys } from 'lodash-es';\nimport { OptionsService } from '../common/options.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { getAngularLocalesLanguageString } from './i18n.module';\nimport { loadLocale } from './load-locale';\n\n/**\n * A service to manage the language of the application.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class TranslateService {\n static SAVE_LANGUAGE_KEY = 'c8y_language';\n static defaultLang() {\n return window.localStorage.getItem(TranslateService.SAVE_LANGUAGE_KEY);\n }\n langsDetail: any = this.options.get('languages', {});\n langs: any = keys(this.langsDetail).filter(k => this.langsDetail[k]);\n private DEFAULT_SEPARATOR = '_';\n constructor(\n private ngxTranslate: NgxTranslateService,\n private ui: AppStateService,\n private options: OptionsService\n ) {\n const queryStringLang = this.queryStringLang();\n if (queryStringLang) {\n this.saveInLocalStorage(queryStringLang);\n }\n }\n\n /**\n * Switches to given language.\n * @param lang The language as two-letter code.\n */\n async switchToLanguage(lang: string) {\n const moduleLang = lang.replace('_', '-');\n\n try {\n await this.loadLocales(moduleLang);\n } catch (e) {\n const lessSpecificModuleLang = moduleLang.split('-').shift();\n if (lessSpecificModuleLang !== moduleLang) {\n await this.loadLocales(lessSpecificModuleLang);\n } else {\n throw e;\n }\n }\n\n this.setLanguage(lang);\n }\n\n async loadLocales(moduleLang) {\n const module: any = await loadLocale(getAngularLocalesLanguageString(moduleLang));\n registerLocaleData(module.default);\n }\n\n setLanguage(lang: string) {\n this.ngxTranslate.setDefaultLang(this.options.get('defaultLanguage', 'en'));\n this.ngxTranslate.use(lang).subscribe(() => {\n this.ui.state$.next({ ...this.ui.state, lang });\n });\n }\n\n /**\n * Finds the first supported language\n */\n firstSupportedLanguage() {\n const languages = [this.queryStringLang(), this.localStorageLang()]\n .concat([this.options.get('defaultLanguage')])\n .concat(this.browserLangs())\n .concat(['en'])\n .filter(Boolean);\n const preferredLanguage = languages.find(lang => this.getSupported(lang));\n return this.getSupported(preferredLanguage);\n }\n\n /**\n * Converts a iso language code to a PO language code (e.g. de-de gets de_de).\n * @param lang The iso language code.\n */\n convertToLanguageCodePO(lang: string): string {\n const sep = lang.indexOf('-') > -1 ? '-' : this.DEFAULT_SEPARATOR;\n const [langMain, langSpecific] = lang.split(sep);\n const langLast = langSpecific ? `${this.DEFAULT_SEPARATOR}${langSpecific}` : '';\n return `${langMain}${langLast}`;\n }\n\n /**\n * Returns the language in the native language.\n * @param lang The language two-letter code.\n * @return The native name.\n */\n getNativeLanguage(lang: string): string {\n const langData = (this.langsDetail || {})[lang] || {};\n return langData.nativeName || lang;\n }\n\n saveInLocalStorage(lang: string) {\n window.localStorage.setItem(TranslateService.SAVE_LANGUAGE_KEY, lang);\n }\n\n getSupported(lang: string) {\n return this.langs.find(l => l === lang) || this.langs.find(l => l.startsWith(lang));\n }\n\n /**\n * Gets the language from the query parameter.\n * @return The language two-letter code.\n */\n queryStringLang() {\n return this.getQueryParameter('lang');\n }\n\n /**\n * Gets the language from local storage.\n * @return The language two-letter code.\n */\n private localStorageLang() {\n return window.localStorage.getItem(TranslateService.SAVE_LANGUAGE_KEY);\n }\n\n /**\n * Determines which language is set in the browser.\n * @return The languages the browser supports as string array.\n */\n private browserLangs() {\n const { navigator } = window;\n const browserLanguagePropertyKeys = [\n 'languages',\n 'language',\n 'browserLanguage',\n 'systemLanguage',\n 'userLanguage'\n ];\n return browserLanguagePropertyKeys.reduce((languages, property) => {\n const propertyLanguages = navigator[property];\n if (typeof propertyLanguages === 'string') {\n languages.push(propertyLanguages);\n } else if (Array.isArray(propertyLanguages)) {\n languages = languages.concat(propertyLanguages);\n }\n return languages;\n }, []);\n }\n\n private getQueryParameter(queryKey) {\n // TODO: replace this with URLSearchParams, ie 11 still doesn't support :()\n const query = window.location.search.substring(1);\n let result;\n query.split('&').find(pair => {\n const [key, value] = pair.split('=');\n if (key === queryKey) {\n result = value;\n }\n return result;\n });\n return result;\n }\n}\n","import { DatePipe as NgDatePipe } from '@angular/common';\nimport { Inject, LOCALE_ID, Pipe } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { gettext } from '../i18n/gettext';\n\n/**\n * The range of times supported by ECMAScript Date objects in milliseconds.\n * @see http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.1\n */\nexport const ES_MAX_TIME_MILLISECONDS: number = 8640000000000000;\n\n/**\n * @description\n * Formats a date value according to locale rules. If no other format specified it defaults to `medium`\n * used as standard date/time format.\n *\n * Extends Angular's DatePipe in a way so that date values exceeding the range supported by ECMAScript\n * are displayed as earliest/latest supported point in time printed in the desired format pre- or postfixed\n * by the word `before` ot `after`, respectively.\n * In all other cases the pipe behaves as the standard `DatePipe`.\n *\n * @see\n * `DatePipe`\n */\n@Pipe({ name: 'c8yDate' })\nexport class DatePipe extends NgDatePipe {\n constructor(@Inject(LOCALE_ID) locale: string, private translateService: TranslateService) {\n super(locale);\n }\n\n transform(value: any, format: string = 'medium', timezone?: string, locale?: string): string | null {\n let valueInBounds = value;\n let valueBefore: boolean = false;\n let valueBeyond: boolean = false;\n\n if (typeof value === 'number' && !isNaN(value)) {\n valueInBounds = Math.min(value, ES_MAX_TIME_MILLISECONDS);\n valueInBounds = Math.max(valueInBounds, -ES_MAX_TIME_MILLISECONDS);\n\n valueBefore = value < -ES_MAX_TIME_MILLISECONDS;\n valueBeyond = value > ES_MAX_TIME_MILLISECONDS;\n }\n let result: string = super.transform(valueInBounds, format, timezone, locale);\n\n if (valueBefore) {\n result = this.translateService.instant(gettext(`before {{date}}`), { date: result });\n } else if (valueBeyond) {\n result = this.translateService.instant(gettext(`after {{date}}`), { date: result });\n }\n\n return result;\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { IIdentified, Paging } from '@c8y/client';\n\n@Component({\n selector: 'c8y-load-more',\n templateUrl: './load-more.component.html'\n})\nexport class LoadMoreComponent {\n @Input()\n paging: Paging<any>;\n @Input()\n useIntersection = true;\n @Input()\n hidden = false;\n @Input()\n container: ElementRef;\n @Input()\n class: string = 'c8y-list__item bg-transparent';\n @Input()\n maxIterations = 10;\n @Input()\n noMoreDataHint: TemplateRef<any>;\n @Input()\n loadNextLabel: string;\n @Input()\n loadingLabel: string;\n @Output()\n onLoad = new EventEmitter<IIdentified>();\n\n isLoading = false;\n counter = 0;\n showNoMoreDataHint = false;\n private loadUntilIntersected;\n private readonly LOAD_SAME_PAGE_THRESHOLD = 50;\n private intersectionObserver: IntersectionObserver;\n\n @HostBinding('class')\n get hostClass() {\n return this.hidden || (!this.hasMore && !this.showNoMoreDataHint) ? '' : this.class;\n }\n\n get hasMore() {\n return (\n this.paging && (this.paging.totalPages > this.paging.currentPage || !!this.paging.nextPage)\n );\n }\n\n constructor(private element: ElementRef) {}\n\n ngAfterContentInit(): void {\n if (this.useIntersection && 'IntersectionObserver' in window) {\n this.intersectionObserver = new IntersectionObserver(event => this.buttonInView(event[0]), {\n root: this.container ? this.container.nativeElement : null\n });\n this.intersectionObserver.observe(this.element.nativeElement);\n }\n this.showNoMoreDataHint = this.shouldShowNoMoreDataHint();\n }\n\n ngOnDestroy(): void {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n }\n }\n\n async loadMore(event?) {\n this.isLoading = true;\n if (event) {\n event.stopPropagation();\n }\n if (this.hasMore) {\n const result = await this.paging.next();\n this.counter++;\n this.paging = result.paging;\n this.onLoad.emit(result.data);\n this.intersectionLoading();\n this.showNoMoreDataHint = this.shouldShowNoMoreDataHint();\n } else {\n this.counter = 0;\n this.isLoading = false;\n }\n }\n\n private intersectionLoading() {\n if (this.useIntersection && this.hasMore && this.loadUntilIntersected !== null) {\n this.loadUntilIntersected = setTimeout(() => this.loadMore(), this.getLoadingThreshold());\n this.useIntersection = this.shouldSwitchMode();\n } else {\n this.isLoading = false;\n this.loadUntilIntersected = undefined;\n }\n }\n\n private getLoadingThreshold(): number {\n return this.LOAD_SAME_PAGE_THRESHOLD * this.counter;\n }\n\n private shouldShowNoMoreDataHint() {\n return (this.counter !== 0 || this.noMoreDataHint) && !this.hasMore && !this.hidden;\n }\n\n private shouldSwitchMode() {\n return this.counter < this.maxIterations || this.hidden;\n }\n\n private buttonInView(event) {\n if (event.isIntersecting) {\n this.loadMore();\n } else if (this.loadUntilIntersected) {\n clearTimeout(this.loadUntilIntersected);\n this.loadUntilIntersected = null;\n this.isLoading = false;\n } else {\n // avoiding a race condition when timeout is faster\n // cleared then set\n this.loadUntilIntersected = null;\n }\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n EmbeddedViewRef,\n Input,\n SimpleChanges,\n TemplateRef,\n ViewContainerRef,\n ViewRef\n} from '@angular/core';\nimport { IIdentified, IResultList, Paging } from '@c8y/client';\nimport { assign, get } from 'lodash-es';\nimport { isObservable, Observable, of, pipe, Subject, Subscription } from 'rxjs';\nimport { map, takeUntil, tap } from 'rxjs/operators';\nimport { RealtimeService } from '../realtime/public-api';\nimport { LoadMoreComponent } from './load-more.component';\nimport { LoadMoreMode } from './load-more.model';\n\n/**\n * A directive to iterate over IResultList<T> data from @c8y/client.\n * Depending on the [c8yForLoadMore] a load more button is:\n * - auto: Tries to automatically load more data (default maximum 10 iterations; can be\n * change with maxIterations settings).\n * - show: Shows a load more button for the user to decide\n * - none: Doesn't perform any load more action.\n * - hidden: Loads more data automatically but with no visible button for the user.\n *\n * Additional, any rxjs operator pipe can be applied to the [c8yForPipe] input, e.g. to\n * filter the data displayed currently as well as the data loaded by subsequent requests.\n *\n * Example:\n * ```html\n * <div *c8yFor=\"let device of devices; loadMore: 'auto'; let i = index; pipe: filterPipe;\">\n * {{ i + 1 }}. {{device.name}}\n * </div>\n * ```\n * The above example will list all entities that are applied to `devices`:\n * ```typescript\n * this.devices = this.inventoryService.list({ pageSize: 10, fragmentType: 'c8y_IsDevice' })\n * ```\n * It will display the first 10 items, if there is more space left on the screen, and there are more\n * than 10 devices, it will automatically load up to 10 pages more. If it still can't fit the screen\n * it will stop and switch to `show` mode.\n *\n * A pipe can be applied e.g. for filtering or grouping. This pipe is attached to every follow up\n * request done by the load more component:\n * ```typescript\n * this.filterPipe = pipe(\n * map((data: []) => {\n * return data.filter(\n * (mo: any) => mo.name && mo.name.toLowerCase().indexOf(value.toLowerCase()) > -1\n * );\n * })\n * );\n * ```\n * The pipe must be an rxjs pipe and can take any operator.\n */\n@Directive({\n selector: '[c8yFor]'\n})\nexport class ForOfDirective {\n private cachedData: IIdentified[] = [];\n private paging: Paging<IIdentified>;\n private loadMoreMode: LoadMoreMode = 'auto';\n private dataPipe = pipe(tap());\n private pagingSub: Subscription;\n private obs$: Observable<IIdentified[]>;\n private loadMore: LoadMoreComponent;\n private maxIterations = 10;\n private notFoundTemplate: TemplateRef<any>;\n private realtime: RealtimeService<any>;\n private comparator: (itemA: object, itemB: object) => number;\n private unsubscribe$: Subject<void> = new Subject();\n\n private get shouldUseLoadMoreButton() {\n return (\n this.loadMoreMode === 'auto' || this.loadMoreMode === 'show' || this.loadMoreMode === 'hidden'\n );\n }\n\n private get hasMoreData() {\n return this.loadMore && this.loadMore.hasMore;\n }\n\n private get length() {\n return this.cachedData.length;\n }\n\n /**\n * The data setter. Must be a response from @c8y/data or an observable.\n * You can pass an observable with null to explicitly clear the list.\n */\n @Input()\n set c8yForOf(fetchData: IResultList<IIdentified> | Observable<IResultList<IIdentified>>) {\n if (fetchData) {\n this.obs$ = (isObservable(fetchData) ? fetchData : of(fetchData)).pipe(\n map(result => {\n if (result === null) {\n this.paging = null;\n return [];\n }\n const { paging, data } = result;\n this.paging = paging;\n return data;\n })\n );\n }\n }\n\n /**\n * The mode setter:\n * - auto: Tries to automatically load more data (default maximum 10 iterations; can be\n * change with maxIterations settings).\n * - show: Shows a load more button for the user to decide\n * - none: Doesn't perform any load more action.\n * - hidden: Loads more data automatically but with no visible button for the user.\n */\n @Input()\n set c8yForLoadMore(type: LoadMoreMode) {\n this.loadMoreMode = type;\n }\n\n /**\n * The pipe setter to attach any rxjs pipe to the current and more loaded data.\n */\n @Input()\n set c8yForPipe(dataPipe) {\n if (dataPipe) {\n this.dataPipe = dataPipe;\n }\n }\n\n /**\n * A template to use if no data is found at all (e.g. if you apply a filter pipe).\n */\n @Input()\n set c8yForNotFound(notFoundTemplate: TemplateRef<any>) {\n this.notFoundTemplate = notFoundTemplate;\n if (this.loadMore) {\n this.loadMore.noMoreDataHint = notFoundTemplate;\n }\n }\n\n /**\n * The maximum numbers of iterations to call data from the api.\n */\n @Input()\n set c8yForMaxIterations(maxIterations: number) {\n this.maxIterations = maxIterations;\n }\n\n /**\n * A RealtimeService instance.\n */\n @Input()\n set c8yForRealtime(source: RealtimeService<any>) {\n this.realtime = source;\n }\n\n /**\n * A comparator function for comparing list items. Used to determine\n * the position at which a new element should be added to the list.\n */\n @Input()\n set c8yForComparator(comparator: (itemA: object, itemB: object) => number) {\n this.comparator = comparator;\n }\n\n constructor(\n private tpl: TemplateRef<any>,\n private vcr: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {}\n\n ngOnInit(): void {\n this.handleRealtime();\n }\n\n private ngOnChanges(changes: SimpleChanges): void {\n if (this.obs$ && (changes.c8yForPipe || changes.c8yForOf)) {\n this.unsubscribePaging();\n\n // only re-rendering on filtering if all data is already loaded\n // from the backend\n const reRender = !this.hasMoreData && !!changes.c8yForPipe && !changes.c8yForOf;\n\n if (reRender) {\n this.obs$ = of(this.cachedData);\n }\n this.pagingSub = this.obs$\n .pipe(\n tap(data => {\n if (!reRender) {\n this.cachedData = data;\n }\n })\n )\n .pipe(src => this.dataPipe(src))\n .subscribe((data: []) => {\n this.render(data, reRender);\n });\n }\n }\n\n private ngOnDestroy(): void {\n this.unsubscribePaging();\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n private handleRealtime() {\n if (this.realtime) {\n this.realtime\n .onCreate$()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(item => this.insert(item));\n this.realtime\n .onUpdate$()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(item => this.update(item));\n this.realtime\n .onDelete$()\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(id => this.remove(coerceNumberProperty(id)));\n }\n }\n\n private render(data, reRender = false): void {\n this.vcr.clear();\n\n data.forEach((item, index) => {\n const context = {\n $implicit: item,\n index,\n length: this.length,\n hasMore: this.hasMoreData\n };\n this.vcr.createEmbeddedView(this.tpl, context);\n });\n\n if (this.shouldUseLoadMoreButton) {\n this.loadMore = this.createLoadMoreButtonComponent(reRender);\n }\n }\n\n private append(data) {\n data.forEach(item => {\n const index = this.shouldUseLoadMoreButton ? this.vcr.length - 1 : this.vcr.length;\n const context = {\n $implicit: item,\n index,\n length: this.length,\n hasMore: this.hasMoreData\n };\n this.vcr.createEmbeddedView(this.tpl, context, index);\n });\n }\n\n private loadMoreData(data) {\n if (data.length > 0) {\n this.append(data);\n }\n }\n\n private createLoadMoreButtonComponent(reRender) {\n const componentFactory: ComponentFactory<\n any\n > = this.componentFactoryResolver.resolveComponentFactory(LoadMoreComponent);\n const componentRef = this.vcr.createComponent(componentFactory);\n const instance = componentRef.instance as LoadMoreComponent;\n instance.paging = this.paging;\n instance.useIntersection = this.loadMoreMode === 'auto' || this.loadMoreMode === 'hidden';\n instance.hidden = this.loadMoreMode === 'hidden';\n instance.maxIterations = this.maxIterations;\n instance.noMoreDataHint = this.notFoundTemplate;\n this.pagingSub = instance.onLoad\n .pipe(\n map((data: []) => this.checkForDuplicates(data)),\n tap((data: []) => {\n this.cachedData = this.cachedData.concat(data);\n })\n )\n .pipe(src => this.dataPipe(src))\n .subscribe(data => this.loadMoreData(data));\n if (reRender) {\n assign(instance, this.loadMore);\n }\n return instance;\n }\n\n private insert(item) {\n let index: number = 0;\n\n if (this.comparator && this.cachedData.length) {\n let comparisionResult: number;\n do {\n const view: EmbeddedViewRef<any> = this.vcr.get(index) as EmbeddedViewRef<any>;\n const itemB = get(view, 'context.$implicit');\n comparisionResult = item && itemB ? this.comparator(item, itemB) : 0;\n if (comparisionResult <= 0) {\n index++;\n }\n } while (comparisionResult <= 0 && index < this.cachedData.length);\n }\n\n // Do not append elements after the last one currently loaded,\n // as it may belong further down there on the list and will\n // be eventually loaded with one of the next pages.\n if (index < this.cachedData.length || this.cachedData.length === 0) {\n const context = {\n $implicit: item,\n index,\n length: this.length,\n hasMore: this.hasMoreData\n };\n\n this.cachedData.splice(index, 0, item);\n const viewRef: ViewRef = this.tpl.createEmbeddedView(context);\n this.vcr.insert(viewRef, index);\n }\n }\n\n private update(updatedItem) {\n this.forMatchingEmbeddedViewRef(\n (item: IIdentified) => item && updatedItem && item.id === updatedItem.id,\n (view: EmbeddedViewRef<any>) => {\n view.context.$implicit = updatedItem;\n view.markForCheck();\n }\n );\n }\n\n private remove(idToRemove) {\n this.forMatchingEmbeddedViewRef(\n (item: IIdentified) => item && coerceNumberProperty(item.id, NaN) === idToRemove,\n (view: EmbeddedViewRef<any>) => view.destroy()\n );\n }\n\n private forMatchingEmbeddedViewRef(\n filter: (item: IIdentified) => boolean,\n callback: (view: EmbeddedViewRef<any>) => void\n ) {\n for (let i = 0; i < this.vcr.length; i++) {\n const view: EmbeddedViewRef<any> = this.vcr.get(i) as EmbeddedViewRef<any>;\n const item: IIdentified = get(view, 'context.$implicit');\n if (filter(item)) {\n callback(view);\n }\n }\n }\n\n private checkForDuplicates(data: IIdentified[]): IIdentified[] {\n return this.realtime\n ? data.filter(item => !this.cachedData.some(cached => cached.id === item.id))\n : data;\n }\n\n private unsubscribePaging() {\n if (this.pagingSub) {\n this.pagingSub.unsubscribe();\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\nimport { gettext } from '../i18n/gettext';\nimport { get, find, negate, isUndefined } from 'lodash';\nimport { HumanizePipe } from './humanize.pipe';\n\n/*\n * Humanize an application name and translates it.\n * Usage:\n * appNameOrApp | humanizeAppName | async\n*/\n@Pipe({ name: 'humanizeAppName' })\nexport class HumanizeAppNamePipe implements PipeTransform {\n\n private internalApps = {\n administration: 'Administration',\n cockpit: 'Cockpit',\n devicemanagement: 'Device management'\n };\n\n constructor(private translateService: TranslateService) {}\n\n transform(appNameOrApp: any = 'Cumulocity'): Observable<string> {\n const appName = this.getAppName(appNameOrApp);\n\n let text;\n if (this.isPublicApp(appNameOrApp)) {\n text = gettext('{{ appName | translate }} (public)');\n } else {\n text = appName;\n }\n return this.translateService.get(text, { appName });\n }\n\n private getAppName(appNameOrApp) {\n const appName = this.getFirstDefined([\n get(appNameOrApp, 'name'),\n get(appNameOrApp, 'contextPath'),\n appNameOrApp\n ]) || '';\n return this.internalApps[appName] || appName;\n }\n\n private getFirstDefined(values) {\n return find(values, negate(isUndefined));\n }\n\n private isPublicApp(appNameOrApp) {\n return Boolean(get(appNameOrApp, 'public'));\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { upperFirst } from 'lodash-es';\n\n/*\n * Humanize any string\n * Usage:\n * 'something' | humanize\n*/\n@Pipe({ name: 'humanize' })\nexport class HumanizePipe implements PipeTransform {\n static humanize(str: string = ''): string {\n str = str\n .replace(/\\./g, ' ')\n .replace(/c8y[\\s,_]*/gi, '')\n .replace(/_/g, ' ')\n .replace(/([A-Z][a-z])/g, ' $1')\n .replace(/^\\$\\.?/, '')\n .replace(/^\\s*/, '')\n .replace(/\\s*$/, '')\n .replace(/\\s+/g, ' ');\n\n return upperFirst(str);\n }\n\n transform(str: string): string {\n return HumanizePipe.humanize(str);\n }\n}\n","import { Directive, Renderer2, Input, ElementRef } from '@angular/core';\n\n/**\n * Allows to set a icon. Switches between c8y default icons\n * and font awesome icons\n * @example <i [c8yIcon]=\"'rocket'\">\n */\n@Directive({\n selector: '[c8yIcon]',\n})\nexport class IconDirective {\n\n @Input()\n set c8yIcon(icon: string) {\n this.updateIcon(icon);\n }\n private c8yMatch = /^c8y-/;\n private klasses = [];\n private currentClasses = '';\n constructor(\n private el: ElementRef,\n private renderer: Renderer2\n ) {}\n\n private isC8y(icon) {\n return this.c8yMatch.test(icon);\n }\n\n private getClasses(icon: string = '') {\n let classes = '';\n if (icon) {\n const _icon = icon.trim();\n const isC8y = this.isC8y(_icon);\n const iconClass = isC8y ? _icon.replace(this.c8yMatch, 'c8y-icon-') : `fa-${_icon}`;\n classes = `${isC8y ? 'c8y-icon' : 'fa fw'} ${iconClass}`;\n }\n return classes;\n }\n\n private updateIcon(icon: string) {\n const newClasses = this.getClasses(icon);\n if (newClasses !== this.currentClasses) {\n this.currentClasses.split(/\\s/).filter((c) => c).forEach((klass) => {\n this.renderer.removeClass(this.el.nativeElement, klass);\n });\n newClasses.split(/\\s/).filter((c) => c).forEach((klass) => {\n this.renderer.addClass(this.el.nativeElement, klass);\n });\n this.currentClasses = newClasses;\n }\n }\n}\n\nexport const ICONS = [\n 'home',\n 'th',\n 'bar-chart-o',\n 'tasks',\n 'tachometer',\n 'bell',\n 'puzzle-piece',\n 'map-marker',\n 'location-arrow',\n 'globe',\n 'power-off',\n 'desktop',\n 'laptop',\n 'mobile',\n 'signal',\n 'qrcode',\n 'file',\n 'file-text',\n 'folder',\n 'folder-open',\n 'archive',\n 'hdd-o',\n 'book',\n 'bookmark',\n 'tag',\n 'flag',\n 'search',\n 'heart',\n 'star',\n 'bolt',\n 'rocket',\n 'cog',\n 'cogs',\n 'wrench',\n 'ban',\n 'user',\n 'users',\n 'sign-in',\n 'sign-out',\n 'upload',\n 'download',\n 'cloud-upload',\n 'cloud-download',\n 'cloud',\n 'spinner',\n 'refresh',\n 'repeat',\n 'undo',\n 'lock',\n 'unlock',\n 'info',\n 'question',\n 'exclamation',\n 'bug',\n 'calendar',\n 'random',\n 'asterisk',\n 'key',\n 'link',\n 'chain-broken',\n 'external-link',\n 'picture-o',\n 'comment',\n 'bullhorn',\n 'phone',\n 'lightbulb-o',\n 'flask',\n 'sitemap',\n 'exchange',\n 'code-fork',\n 'keyboard-o',\n 'terminal',\n 'code',\n 'clipboard',\n 'pencil',\n 'envelope',\n 'inbox',\n 'reply',\n 'share',\n 'thumbs-up',\n 'thumbs-down',\n 'check',\n 'plus',\n 'expand',\n 'compress',\n 'arrows',\n 'arrow-up',\n 'arrow-down',\n 'arrow-left',\n 'arrow-right',\n 'th-list',\n 'bars',\n 'table',\n 'columns',\n 'filter',\n 'sort',\n 'sort-up',\n 'sort-down',\n 'ellipsis-h',\n 'ellipsis-v',\n 'rss',\n 'apple',\n 'windows',\n 'android',\n 'linux'\n ];\n","/*\n * Implementation of pure \"Mapping\" pipe based on\n * https://codeburst.io/angular-bad-practices-eab0e594ce92#389b\n */\n\nimport { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'map'\n})\nexport class MapFunctionPipe implements PipeTransform {\n /*\n * This will be a universal pipe for array mappings. You may add more\n * type checkings and runtime checkings to make sure it works correctly everywhere.\n */\n transform(value, mappingFunction: (arg: any) => any, thisArg?: any) {\n return mappingFunction.apply(thisArg || this, Array.isArray(value) ? value : [value]);\n }\n}\n","import { assign } from 'lodash-es';\nimport {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n Renderer2,\n TemplateRef,\n Type,\n ViewContainerRef\n } from '@angular/core';\n\n/**\n * Directive to set a DOM node, a TemplateRef or any Component to a container or any node.\n * @example\n * <div *c8yOutlet=\"template\"></div>\n * <div *c8yOutlet=\"DeviceStatusComponent; properties: { node }\"></div>\n * <div *c8yOutlet=\"nodes\"></div>\n */\n@Directive({\n selector: '[c8yOutlet]',\n})\nexport class OutletDirective {\n private properties = {};\n private _element;\n\n constructor(\n private viewContainer: ViewContainerRef,\n private resolver: ComponentFactoryResolver,\n private renderer: Renderer2,\n private el: ElementRef\n ) { }\n\n /**\n * Directive to set a DOM node, a TemplateRef or any Component to a container or any node.\n * @example\n * <div *c8yOutlet=\"template\"></div>\n * <div *c8yOutlet=\"DeviceStatusComponent; properties: { node }\"></div>\n * <div *c8yOutlet=\"nodes\"></div>\n */\n @Input() set c8yOutlet(template: TemplateRef<any> | Type<any> | Element) {\n if (!template) {\n return;\n }\n if (this._element instanceof Element) {\n this.renderer.removeChild(this._element.parentElement, this._element);\n }\n this.viewContainer.clear();\n\n // case TemplateRef -> <div *c8yOutlet=\"template\"></div>\n if (template instanceof TemplateRef) {\n this.viewContainer.createEmbeddedView(template);\n\n // case DOM Element -> <div *c8yOutlet=\"nodes\"></div>\n } else if (template instanceof Element) {\n const parent = this.renderer.parentNode(this.el.nativeElement);\n this.destroy();\n this._element = template;\n this.renderer.insertBefore(parent, this._element, this.el.nativeElement);\n\n // case Component -> <div *c8yOutlet=\"DeviceStatusComponent; properties: { node }\"></div>\n } else {\n const factory: ComponentFactory<any> = this.resolver.resolveComponentFactory(template);\n const component = this.viewContainer.createComponent(factory);\n assign(component.instance, this.properties);\n }\n }\n\n @Input() set c8yOutletProperties(value) {\n this.properties = value;\n }\n\n ngOnDestroy(): void {\n this.destroy();\n }\n\n private destroy() {\n if (this._element) {\n const _parent = this.renderer.parentNode(this._element);\n this.renderer.removeChild(_parent, this._element);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-progress-bar',\n templateUrl: './progress-bar.component.html'\n})\nexport class ProgressBarComponent {\n @Input() message: string = gettext('Loading…');\n @Input() progress: number = null;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'shortenUserName' })\r\nexport class ShortenUserNamePipe implements PipeTransform {\r\n\r\n transform({ firstName = '', lastName = '', userName = ''}: any): string {\r\n let parsedFirstName = firstName.trim().split(/\\s+/).shift().substr(0, 1);\r\n const parsedLastName = lastName.trim().split(/\\s+/).pop();\r\n\r\n if (!parsedLastName) {\r\n parsedFirstName = firstName.split(/\\s+/).shift();\r\n } else {\r\n parsedFirstName = parsedFirstName ? `${parsedFirstName}. ` : '';\r\n }\r\n\r\n return parsedFirstName || parsedLastName ? parsedFirstName + parsedLastName : userName;\r\n }\r\n}\r\n","import { OperationStatus } from '@c8y/client';\n\nexport enum Status {\n SUCCESS = 'success',\n WARNING = 'warning',\n DANGER = 'danger',\n INFO = 'info'\n}\n\nexport type StatusType = Status | 'success' | 'warning' | 'danger' | 'info';\n\nexport const statusIcons = {\n [Status.SUCCESS]: 'check-circle',\n [Status.WARNING]: 'exclamation-triangle',\n [Status.DANGER]: 'exclamation-circle',\n [Status.INFO]: 'info-circle'\n};\n\nexport const statusClasses = {\n [Status.SUCCESS]: `text-${Status.SUCCESS}`,\n [Status.WARNING]: `text-${Status.WARNING}`,\n [Status.DANGER]: `text-${Status.DANGER}`,\n [Status.INFO]: `text-${Status.INFO}`\n};\n\nexport const statusAlert = {\n [Status.SUCCESS]: `alert-${Status.SUCCESS}`,\n [Status.WARNING]: `alert-${Status.WARNING}`,\n [Status.DANGER]: `alert-${Status.DANGER}`,\n [Status.INFO]: `alert-${Status.INFO}`\n};\n\nexport const operationStatusIcons = {\n [OperationStatus.PENDING]: 'clock-o',\n [OperationStatus.EXECUTING]: 'refresh',\n [OperationStatus.SUCCESSFUL]: 'check-circle',\n [OperationStatus.FAILED]: 'exclamation-circle'\n};\n\nexport const operationStatusClasses = {\n [OperationStatus.PENDING]: 'text-info',\n [OperationStatus.EXECUTING]: 'text-info',\n [OperationStatus.SUCCESSFUL]: 'text-success',\n [OperationStatus.FAILED]: 'text-danger'\n};\n","import { Component, Input } from '@angular/core';\nimport { IOperation } from '@c8y/client';\nimport { operationStatusClasses, operationStatusIcons } from './status.model';\n\n/**\n * Single operation component displays a single operation status, description and creationTime.\n *\n * Example:\n *\n * ```html\n * <c8y-single-operation [operation]=\"operation\"></c8y-single-operation>\n * ```\n */\n@Component({\n selector: 'c8y-single-operation',\n templateUrl: './single-operation.component.html'\n})\nexport class SingleOperationComponent {\n @Input() operation: IOperation;\n statusIcons: object;\n statusClasses: object;\n\n ngOnInit() {\n this.statusIcons = operationStatusIcons;\n this.statusClasses = operationStatusClasses;\n }\n}\n","import { Observable, of } from 'rxjs';\n\nexport class UserPreferencesStorageLocal {\n private LOCAL_STORAGE_KEY = 'userPreferences';\n private store: any = {};\n constructor() {\n try {\n const jsonStore = window.localStorage.getItem(this.LOCAL_STORAGE_KEY);\n if (jsonStore) {\n this.store = JSON.parse(jsonStore) || {};\n }\n } catch (e) {\n // do nothing\n }\n }\n\n get(key) {\n return of(this.store[key]);\n }\n\n set(key, value) {\n this.store[key] = value;\n return this.saveJsonStore();\n }\n\n private saveJsonStore() {\n return window.localStorage.setItem(this.LOCAL_STORAGE_KEY, JSON.stringify(this.store));\n }\n}\n","import { InventoryService } from '@c8y/client';\n\nexport class UserPreferencesStorageInventory {\n TYPE = 'c8y_UserPreference';\n\n constructor(\n private inventory: InventoryService\n ) {}\n\n async get(key) {\n const { data } = await this.inventory.list({fragmentType: key});\n return data.length ? data[0][key] : undefined;\n }\n\n async set(key, value) {\n const { data } = await this.inventory.list({fragmentType: key});\n const updateMo: any = {[key]: value, type: this.TYPE};\n let out;\n\n if (data.length) {\n updateMo.id = data[0].id;\n out = this.inventory.update(updateMo);\n } else {\n out = this.inventory.create(updateMo);\n }\n return out;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { InventoryService, UserService } from '@c8y/client';\nimport { IUser } from '@c8y/client';\nimport { Observable, from, never } from 'rxjs';\nimport { switchMap, first } from 'rxjs/operators';\nimport { UserPreferencesStorageLocal } from './user-preferences-storage-local';\nimport { UserPreferencesStorageInventory } from './user-preferences-store-inventory';\nimport { AppStateService } from '../ui-state.service';\n\n@Injectable()\nexport class UserPreferencesService {\n currentUser: Observable<IUser>;\n private LOCAL_STORAGE_KEY = 'userPreferences';\n private storage: {\n local: UserPreferencesStorageLocal,\n inventory: UserPreferencesStorageInventory\n };\n constructor(\n private user: UserService,\n private inventory: InventoryService,\n private appState: AppStateService\n ) {\n this.storage = {\n local: new UserPreferencesStorageLocal(),\n inventory: new UserPreferencesStorageInventory(this.inventory)\n };\n this.currentUser = this.appState.currentUser;\n }\n\n get(key): Observable<any> {\n return this.currentUser.pipe(\n first(),\n switchMap((user) => this.getForUser(key, user))\n );\n }\n\n set(key, value): Promise<any> {\n return new Promise((resolve, reject) => {\n this.currentUser.pipe(\n first()\n ).subscribe((user) => {\n resolve(this.setForUser(key, value, user));\n }, reject);\n });\n }\n\n getForUser(key, user): Observable<any> {\n const rawKey = this.getRawKey(key, user);\n const storage = this.getStorage(user);\n return from(storage.get(rawKey));\n }\n\n setForUser(key, value, user): Promise<any> {\n const rawKey = this.getRawKey(key, user);\n const storage = this.getStorage(user);\n return Promise.resolve(storage.set(rawKey, value));\n }\n\n private getRawKey(key, user) {\n const username = user.userName.replace(/\\./g, '__');\n return `${key}${username}`;\n }\n\n private getStorage(user) {\n return this.user.hasAllRoles(user, ['ROLE_INVENTORY_READ', 'ROLE_INVENTORY_ADMIN']) ?\n this.storage.inventory : this.storage.local;\n }\n\n}\n","import { memoize as _memoize } from 'lodash-es';\n\n/**\n * Decorator to memoize function results.\n * @param resolver Cache key resolver function, used by memoize from lodash.\n */\nexport function memoize(resolver?) {\n return (target, fnName, descriptor) => {\n const fn = descriptor.value;\n descriptor.value = function(...args) {\n const memoizedFnName = `_${fnName}Memoized`;\n if (!this[memoizedFnName]) {\n this[memoizedFnName] = _memoize(fn, resolver);\n }\n return this[memoizedFnName].apply(this, args);\n };\n };\n}\n","import { Injectable } from '@angular/core';\nimport { AppStateService } from './ui-state.service';\nimport { IManagedObject, InventoryService } from '@c8y/client';\nimport { property } from 'lodash-es';\nimport { memoize } from './memoize.decorator';\nimport { IUser, UserService } from '@c8y/client';\n\n@Injectable()\nexport class Permissions {\n constructor(\n private appState: AppStateService,\n private inventory: InventoryService,\n private user: UserService\n ) {}\n\n /**\n * Checks if the current user has write permissions for the given mo.\n * (either through global role, individual device permissions or via inventory roles).\n *\n * @param {array} roleIds Array of roles which the current user should have.\n * @param {object} mo The managed object for which we are checking whether the user has access.\n */\n canEdit(roleIds, mo) {\n return this.checkIfCanEdit(roleIds, mo);\n }\n\n hasRole(roleId: string) {\n const currentUser = this.appState.currentUser.value;\n if (!currentUser) {\n throw new Error('Roles can only be requested if the user is logged in.');\n }\n return this.user.hasRole(currentUser, roleId);\n }\n\n hasAllRoles(roleIds: string[]) {\n const currentUser = this.appState.currentUser.value;\n if (!currentUser) {\n throw new Error('Roles can only be requested if the user is logged in.');\n }\n return this.user.hasAllRoles(currentUser, roleIds);\n }\n\n hasAnyRole(roleIds: string[]) {\n const currentUser = this.appState.currentUser.value;\n if (!currentUser) {\n throw new Error('Roles can only be requested if the user is logged in.');\n }\n return this.user.hasAnyRole(currentUser, roleIds);\n }\n\n @memoize(property('id'))\n protected async checkIfOwner(mo) {\n const currentUserName = await this.appState.currentUser.value.userName;\n const { data, res } = await this.inventory.detail(mo.id);\n return currentUserName === data.owner;\n }\n\n @memoize(property('id'))\n protected checkWithRequest(mo) {\n const moName = mo.name;\n const moId = mo.id;\n const partialUpdateObject: Partial<IManagedObject> = {\n id: moId,\n name: moName\n };\n return this.inventory\n .update(partialUpdateObject)\n .then(success => {\n return true;\n })\n .catch(err => {\n return false;\n });\n }\n\n private async checkIfCanEdit(roleIds, mo) {\n if (await this.hasAnyRole(roleIds)) {\n return true;\n } else if (await this.checkIfOwner(mo)) {\n return true;\n } else if (await this.checkWithRequest(mo)) {\n return true;\n }\n return false;\n }\n}\n","import { CommonModule as NgCommonModule } from '@angular/common';\nimport { APP_INITIALIZER, InjectionToken, NgModule } from '@angular/core';\nimport { DataModule } from '@c8y/ngx-components/api';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { distinctUntilChanged, filter, map, startWith, switchMap } from 'rxjs/operators';\nimport { I18nModule } from '../i18n/i18n.module';\nimport { TranslateService } from '../i18n/public-api';\nimport { DatePipe } from './date.pipe';\nimport { ForOfDirective } from './forOf.directive';\nimport { HumanizeAppNamePipe } from './humanize-app-name.pipe';\nimport { HumanizePipe } from './humanize.pipe';\nimport { IconDirective, ICONS } from './icon.directive';\nimport { LoadMoreComponent } from './load-more.component';\nimport { MapFunctionPipe } from './map-function.pipe';\nimport { HOOK_OPTIONS, OptionsService } from './options.service';\nimport { OutletDirective } from './outlet.directive';\nimport { ProgressBarComponent } from './progress-bar.component';\nimport { ShortenUserNamePipe } from './shorten-user-name.pipe';\nimport { SingleOperationComponent } from './single-operation.component';\nimport { AppStateService } from './ui-state.service';\nimport { UserPreferencesService } from './user-preferences/user-preferences.service';\nimport { Permissions } from './permissions.service';\n\nexport function initializeServices(\n translateService: TranslateService,\n state: AppStateService,\n userPreferences: UserPreferencesService\n) {\n const initialize = () => {\n const queryStringLanguage = translateService.queryStringLang();\n const firstLanguage = translateService.firstSupportedLanguage();\n\n /*\n The ?lang parameter will prevent the user preference language from being activated\n */\n if (queryStringLanguage && translateService.getSupported(queryStringLanguage)) {\n translateService.switchToLanguage(queryStringLanguage);\n } else {\n state.currentUser\n .pipe(\n map(user => user && user.userName),\n filter(u => !!u),\n distinctUntilChanged(),\n switchMap(() => userPreferences.get('language')),\n startWith(firstLanguage),\n filter(lang => !!lang),\n distinctUntilChanged()\n )\n .subscribe(lang => {\n translateService.switchToLanguage(lang);\n });\n }\n };\n return initialize;\n}\n\nexport const ICON_LIST = new InjectionToken('iconList');\n\n/**\n * Commonly used directives, data access and translation. This module is the shared\n * module across all core components. It should be imported by default.\n *\n * @exports IconDirective A directive to set a c8y icon with [c8yIcon]=\"'rocket'\".\n * @exports OutletDirective A directive which allows to set DOM or Angular templates (used for upgrade).\n * @exports I18nModule Translation module.\n * @exports NgCommonModule Angular common module.\n * @exports DataModule The data layer to allow DI with @c8y/client\n * @exports HumanizeAppNamePipe Humanize an application name (e.g. in the app switcher)\n * @exports HumanizePipe Humanize a word. E.g. `device management` gets `Device management`\n * @exports ShortenUserNamePipe Allows a short name. E.g. `Foo Bar` gets `F. Bar`\n * @exports ForOfDirective A forOf directive like ngFor but with load-more function\n * @exports LoadMoreComponent A component to load more data from a certain data-source\n * @exports ProgressBarComponent Displays either defined or undefined progress.\n */\n@NgModule({\n imports: [NgCommonModule, I18nModule, TooltipModule],\n exports: [\n IconDirective,\n OutletDirective,\n I18nModule,\n NgCommonModule,\n HumanizeAppNamePipe,\n HumanizePipe,\n ShortenUserNamePipe,\n ForOfDirective,\n LoadMoreComponent,\n MapFunctionPipe,\n ProgressBarComponent,\n SingleOperationComponent,\n DatePipe\n ],\n declarations: [\n IconDirective,\n OutletDirective,\n HumanizePipe,\n HumanizeAppNamePipe,\n ShortenUserNamePipe,\n ForOfDirective,\n LoadMoreComponent,\n MapFunctionPipe,\n ProgressBarComponent,\n SingleOperationComponent,\n DatePipe\n ],\n entryComponents: [LoadMoreComponent]\n})\nexport class CommonModule {\n static providers() {\n return [\n ...DataModule.providers(),\n // TODO: maybe we can think of a way to remove this C8Y_APP global\n { provide: HOOK_OPTIONS, useValue: (window as any).C8Y_APP || {}, multi: true },\n {\n provide: APP_INITIALIZER,\n useFactory: initializeServices,\n deps: [TranslateService, AppStateService, UserPreferencesService],\n multi: true\n },\n { provide: ICON_LIST, useValue: ICONS, multi: false },\n ...I18nModule.providers(),\n UserPreferencesService,\n OptionsService,\n AppStateService,\n Permissions\n ];\n }\n\n static forRoot() {\n return {\n ngModule: CommonModule,\n providers: CommonModule.providers()\n };\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { ActionBarItem } from './action-bar.model';\nimport { ActionBarService } from './action-bar.service';\n\n@Component({\n selector: 'c8y-action-bar-item',\n templateUrl: './action-bar-item.component.html'\n})\nexport class ActionBarItemComponent implements ActionBarItem {\n @Input() placement: ('left' | 'right' | 'more') = 'left';\n @Input() priority: number = 0;\n @Input() itemClass = '';\n @ViewChild('template', {static: false}) template: any;\n private viewInitTimeout;\n\n constructor(private actionBarService: ActionBarService) {}\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.actionBarService.add(this as ActionBarItem)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.actionBarService.remove(this as ActionBarItem);\n }\n}\n","import { Component, HostBinding, Input, AfterContentInit } from '@angular/core';\nimport { filter, sortBy } from 'lodash-es';\nimport { ActionBarItem } from './action-bar.model';\n\n@Component({\n selector: 'c8y-action-bar',\n templateUrl: './action-bar.component.html',\n host: { class: 'c8y-ui-action-bar' }\n})\nexport class ActionBarComponent {\n @Input() @HostBinding('class.navigator-open') navigatorOpen = false;\n @Input() @HostBinding('class.has-tabs') hasTabs = false;\n @Input() @HostBinding('class.horizontal-tabs') isTabsHorizontal = false;\n isPageToolbarExpanded = false;\n @HostBinding('class.c8y-ui-action-bar') uiActionBar = true;\n @Input() items: ActionBarItem[] = [];\n\n @HostBinding() get hidden() {\n return !(this.items && this.items.length);\n }\n\n getSortedItems(placement: 'left' | 'right' | 'more') {\n return sortBy(filter(this.items, { placement }), this.byPriority);\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { ActionBarItemComponent } from './action-bar-item.component';\nimport { ActionBarComponent } from './action-bar.component';\nimport { ActionBarService } from './action-bar.service';\n\n/**\n * The angular module definition for the action bar.\n * @exports ActionBarComponent\n * @exports ActionBarItemComponent\n */\n@NgModule({\n declarations: [\n ActionBarComponent,\n ActionBarItemComponent\n ],\n imports: [\n BsDropdownModule,\n CommonModule,\n CollapseModule,\n RouterModule.forChild([])\n ],\n exports: [\n ActionBarComponent,\n ActionBarItemComponent\n ]\n})\nexport class ActionBarModule { }\n","import { Component, Input } from '@angular/core';\nimport { Action } from './action.model';\nimport { sortBy } from 'lodash-es';\n\n@Component({\n selector: 'c8y-action-outlet',\n templateUrl: './action-outlet.component.html'\n})\n\nexport class ActionOutletComponent {\n isPageToolbarExpanded = false;\n @Input() items: Action[] = [];\n\n getByPriority() {\n return sortBy(this.items, this.byPriority);\n }\n\n invoke(action) {\n if (action.action) {\n action.action.call();\n }\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { Action } from './action.model';\nimport { ActionService } from './action.service';\n\n@Component({\n selector: 'c8y-action',\n templateUrl: './action.component.html'\n})\nexport class ActionComponent implements Action {\n @Input() disabled: boolean = false;\n @Input() label: string;\n @Input() priority: number = 0;\n @Input() icon: string;\n @ViewChild('template', {static: false}) template: any;\n action: () => void;\n private viewInitTimeout;\n\n constructor(private actionService: ActionService) {}\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.actionService.add(this as Action)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.actionService.remove(this as Action);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { ActionOutletComponent } from './action-outlet.component';\nimport { ActionComponent } from './action.component';\nimport { ActionService } from './action.service';\n\n/**\n * The angular module definition for actions.\n * @exports ActionComponent\n * @exports ActionOutletComponent\n */\n@NgModule({\n declarations: [\n ActionOutletComponent,\n ActionComponent\n ],\n imports: [\n CommonModule,\n BsDropdownModule,\n RouterModule.forChild([])\n ],\n exports: [\n ActionOutletComponent,\n ActionComponent\n ]\n})\nexport class ActionModule { }\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'c8y-alert-details',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AlertDetailsComponent {}\r\n","import { Component, TemplateRef, Attribute, HostBinding } from '@angular/core';\nimport { Alert } from './alert.model';\nimport { AlertService } from './alert.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'c8y-alert-outlet',\n templateUrl: './alert-outlet.component.html'\n})\n\nexport class AlertOutletComponent {\n\n detailDisplayedAlert: any = {};\n @HostBinding('class.static') isStatic = false;\n get alerts(): BehaviorSubject<Alert[]> {\n return this.alertService.state$;\n }\n constructor(\n @Attribute('position') private position: string,\n public alertService: AlertService\n ) {\n this.isStatic = this.position === 'static';\n }\n\n getClass(alert: Alert) {\n const classes = [];\n if (alert.type !== 'danger') {\n classes.push('interact');\n }\n classes.push(`alert-${alert.type}`);\n return classes.join(' ');\n }\n\n close(alert) {\n if (alert.onClose) {\n alert.onClose();\n }\n this.alertService.remove(alert);\n }\n\n showDetails(alert) {\n if (alert.onDetail) {\n return alert.onDetail();\n }\n this.detailDisplayedAlert = Object.assign({}, alert);\n this.detailDisplayedAlert.mode = 'raw';\n this.setDetailsContent(alert);\n }\n\n setDetailsContent(alert) {\n if ( this.isTemplateRef(alert.detailedData) || typeof alert.detailedData === 'string' ) {\n this.detailDisplayedAlert.contents = alert.detailedData;\n } else {\n this.detailDisplayedAlert.contents = JSON.stringify(alert.detailedData, null, 2);\n }\n }\n\n hasDetails(alert) {\n return (alert.detailedData || alert.onDetail);\n }\n\n closeDetails() {\n this.detailDisplayedAlert = {};\n }\n\n isDetailsShow(alert) {\n return this.alertService.areSame(alert, this.detailDisplayedAlert);\n }\n\n isTemplateRef(value): boolean {\n return value instanceof TemplateRef;\n }\n\n template(content): any {\n return this.isTemplateRef(content) ? content : undefined;\n }\n}\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'c8y-alert-text',\r\n template: `<ng-content></ng-content>`\r\n})\r\n\r\nexport class AlertTextComponent {}\r\n","import { Component, OnDestroy, Input, ViewChild, ContentChild } from '@angular/core';\nimport { Alert } from './alert.model';\nimport { AlertService } from './alert.service';\nimport { AlertDetailsComponent } from './alert-details.component';\n\n@Component({\n selector: 'c8y-alert',\n templateUrl: './alert.component.html'\n})\n\nexport class AlertComponent implements OnDestroy, Alert {\n\n @Input() type: 'success' | 'warning' | 'danger' | 'info' | 'system';\n @Input() onDetail: () => void;\n @Input() onClose: () => void;\n @ViewChild('detailedData', {static: false}) detailedData;\n @ViewChild('text', {static: false}) text;\n @ContentChild(AlertDetailsComponent, {static: false}) containDetailsComponent: AlertDetailsComponent;\n private viewInitTimeout;\n\n constructor(public alertService: AlertService) {}\n\n ngAfterViewInit() {\n if (!this.containDetailsComponent) {\n this.detailedData = null;\n }\n this.viewInitTimeout = setTimeout(() =>\n this.alertService.add(this)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.alertService.remove(this);\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { AlertDetailsComponent } from './alert-details.component';\r\nimport { AlertOutletComponent } from './alert-outlet.component';\r\nimport { AlertTextComponent } from './alert-text.component';\r\nimport { AlertComponent } from './alert.component';\r\nimport { AlertService } from './alert.service';\r\nimport { CommonModule } from '../common/common.module';\r\n\r\n/**\r\n * The angular module definition for alert.\r\n * @exports AlertComponent\r\n * @exports AlertOutletComponent\r\n * @exports AlertDetailsComponent\r\n * @exports AlertTextComponent\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n AlertOutletComponent,\r\n AlertComponent,\r\n AlertDetailsComponent,\r\n AlertTextComponent\r\n ],\r\n declarations: [\r\n AlertOutletComponent,\r\n AlertComponent,\r\n AlertDetailsComponent,\r\n AlertTextComponent\r\n ]\r\n})\r\nexport class AlertModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AuditService, IAuditRecord, IResultList } from '@c8y/client';\n\n@Component({\n selector: 'c8y-audit-log',\n templateUrl: './audit-log.component.html'\n})\nexport class AuditLogComponent implements OnInit {\n @Input()\n source: string | number;\n\n records: IResultList<IAuditRecord>;\n\n constructor(private audit: AuditService) {}\n\n async ngOnInit() {\n if (this.source) {\n this.records = await this.audit.list({\n withTotalPages: true,\n source: this.source\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { AuditLogComponent } from './audit-log.component';\n\n/** The angular module definition for audit log. */\n@NgModule({\n declarations: [AuditLogComponent],\n imports: [CommonModule],\n exports: [AuditLogComponent]\n})\nexport class AuditLogModule {}\n","export interface LoginMessage {\n message: string;\n type: string;\n}\n\nexport enum LoginViews {\n None,\n Credentials,\n RecoverPassword,\n SmsChallenge,\n ChangePassword,\n TotpChallenge,\n TotpSetup,\n ProvidePhoneNumber\n}\n","import { Injectable, Optional } from '@angular/core';\nimport {\n FetchClient,\n BasicAuth,\n ICredentials,\n Realtime,\n UserService,\n TenantService,\n IAuthentication,\n CookieAuth,\n ITenantLoginOption\n} from '@c8y/client';\nimport { AppStateService } from '../common/ui-state.service';\nimport { AlertService } from '../alert/alert.service';\nimport { gettext } from '../i18n/gettext';\nimport { ApiService } from '@c8y/ngx-components/api';\nimport { switchMap } from 'rxjs/operators';\nimport { EMPTY } from 'rxjs';\nimport { LocationStrategy } from '@angular/common';\nimport { TenantLoginOptionsService } from '@c8y/client';\nimport { get, isString } from 'lodash-es';\n\n/**\n * Service to manage the login.\n */\n@Injectable()\nexport class LoginService {\n rememberMe: boolean = false;\n TOKEN_KEY: string = '_tcy8';\n TFATOKEN_KEY: string = 'TFAToken';\n OAUTH2_INTERNAL_TYPE: string = 'OAUTH2_INTERNAL';\n loginMode: any;\n oauthOptions: any;\n isFirstLogin = true;\n GREEN_MIN_LENGTH_DEFAULT = 8;\n\n // tslint:disable:max-line-length\n ERROR_MESSAGES = {\n minlength: gettext('Password must have at least 8 characters and no more than 32.'),\n password_missmatch: gettext('Password confirmation does not match.'),\n maxlength: gettext('Password must have at least 8 characters and no more than 32.'),\n password_strength: gettext(\n 'Your password is not strong enough. Please include numbers, lower and upper case characters'\n ),\n remote_error: gettext('Server error occurred.'),\n email: gettext('Invalid email address.'),\n password_change: gettext('Your password is expired. Please set a new password.'),\n password_reset_token_expired: gettext(\n 'Password reset link expired. Please enter your email address to receive a new one.'\n ),\n tfa_pin_invalid: gettext('The code you entered is invalid. Please try again.'),\n pattern_phonenumber: gettext(\n 'Invalid phone number format. Only digits, spaces, slashes (\"/\") and dashes (\"-\") allowed.'\n ),\n pattern_newPassword: gettext(\n 'Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:\\'\",.<>{}[]\\\\/'\n ),\n international_number_required: gettext(\n 'International phone number required, in the format +49 9 876 543 210.'\n ),\n phone_number_error: gettext('Could not update phone number.'),\n pinAlreadySent: gettext(\n 'The verification code was already sent. For a new verification code, please click on the link above.'\n ),\n passwordConfirm: gettext('Password confirmation does not match.'),\n tfaExpired: gettext('Two-factor authentication token expired.')\n };\n // tslint:enable:max-line-length\n\n private SUCCESS_MESSAGES = {\n password_changed: gettext('Password changed. You can now log in using new password.'),\n password_reset_requested: gettext(\n 'Password reset request has been sent. Please check your email.'\n ),\n resend_sms: gettext('Verification code SMS resent.'),\n send_sms: gettext('Verification code SMS sent.')\n };\n\n private passwordStrengthSetting = {\n enforcePasswordStrength: false,\n passwordStrengthValidity: false,\n greenMinLength: this.GREEN_MIN_LENGTH_DEFAULT\n };\n\n private localhostRegExp = new RegExp('localhost');\n private localhostIpRegExp = new RegExp('127.0.0.1');\n private showTenantRegExp = new RegExp('showTenant');\n\n constructor(\n private client: FetchClient,\n private basicAuth: BasicAuth,\n private cookieAuth: CookieAuth,\n private ui: AppStateService,\n private user: UserService,\n private tenant: TenantService,\n private realtime: Realtime,\n private alert: AlertService,\n private api: ApiService,\n private tenantLoginOptionsService: TenantLoginOptionsService,\n @Optional() private location: LocationStrategy\n ) {\n this.autoLogout();\n this.initLoginOptions();\n }\n\n /**\n * Returns the current tenant.\n * @return The tenant name.\n */\n getTenant() {\n return this.client.tenant;\n }\n\n initLoginOptions() {\n const loginOptions = this.ui.state.loginOptions || [];\n const isOAuth2 = ({ type, grantType }) =>\n type === 'OAUTH2' && grantType === 'AUTHORIZATION_CODE';\n this.loginMode = loginOptions.find(({ type }) => type === 'OAUTH2_INTERNAL') ||\n loginOptions.find(({ type }) => type === 'BASIC') ||\n loginOptions.find(isOAuth2) || { type: 'BASIC' };\n this.oauthOptions = loginOptions.find(isOAuth2) || {};\n }\n\n redirectToOauth() {\n const { initRequest } = this.oauthOptions;\n const fullPath = (this.location ? (this.location as any)._platformLocation : window).location\n .href;\n const redirectUrl = encodeURIComponent(fullPath);\n const originUriParam = `${initRequest.includes('?') ? '&' : '?'}originUri=${redirectUrl}`;\n window.location.href = `${initRequest}${originUriParam}`;\n }\n\n autoLogout() {\n const errorPattern = /invalid\\scredentials.*pin.*generate/i;\n const isTfaExpired = data =>\n data && typeof data.message === 'string' && errorPattern.test(data.message);\n this.ui.currentUser\n .pipe(\n switchMap(u =>\n u ? this.api.hookResponse(({ response }) => response.status === 401) : EMPTY\n )\n )\n .subscribe(async (apiCall: any) => {\n const { response } = apiCall;\n let willLogout = false;\n if (isTfaExpired(response.data)) {\n willLogout = true;\n } else {\n if (typeof response.json === 'function') {\n const data = await response.clone().json();\n if (isTfaExpired(data)) {\n willLogout = true;\n }\n }\n }\n if (willLogout) {\n this.logout(false);\n setTimeout(() => this.alert.danger(this.ERROR_MESSAGES.tfaExpired), 500);\n }\n });\n }\n\n /**\n * Gets the minimal number of characters that a password should have to be considered a “green” strong one.\n * @return The min length for password or default value.\n */\n getGreenMinLength() {\n const loginOption = this.getLoginOption();\n const greenMinLength = Number(get(loginOption, 'greenMinLength'));\n this.passwordStrengthSetting.greenMinLength = isNaN(greenMinLength) ? this.GREEN_MIN_LENGTH_DEFAULT : greenMinLength;\n return this.passwordStrengthSetting.greenMinLength;\n }\n\n /**\n * Checks if password strength is enforced for system\n * by retrieving value of `enforceStrength` property from loginOptions response\n * @return boolean value, true if enforced, false otherwise.\n */\n getEnforcePasswordStrength() {\n const loginOption = this.getLoginOption();\n const enforcePasswordStrength = get(loginOption, 'enforceStrength');\n if (isString(enforcePasswordStrength)) {\n this.passwordStrengthSetting.enforcePasswordStrength = enforcePasswordStrength === 'true' ? true : false;\n } else {\n this.passwordStrengthSetting.enforcePasswordStrength = !!enforcePasswordStrength;\n }\n return this.passwordStrengthSetting.enforcePasswordStrength;\n }\n\n /**\n * Checks if password strength is enforced for particular tenant\n * by retrieving value of `strengthValidity` property from loginOptions response\n * @return boolean value, true if enforced, false otherwise.\n */\n async getPasswordStrengthValidity() {\n const loginOption = this.getLoginOption();\n const strengthValidity = get(loginOption, 'strengthValidity');\n if (isString(strengthValidity)) {\n this.passwordStrengthSetting.passwordStrengthValidity = strengthValidity === 'true' ? true : false;\n } else {\n this.passwordStrengthSetting.passwordStrengthValidity = !!strengthValidity;\n }\n return this.passwordStrengthSetting.passwordStrengthValidity;\n }\n\n /**\n * Function determines if enforced strength checks should be enabled for current tenant\n * based on properties retrieved from loginOptions\n * @return boolean value, true if strength is enforced for tenant, false otherwise.\n */\n getPasswordStrengthEnforced() {\n return this.getEnforcePasswordStrength() || this.getPasswordStrengthValidity();\n }\n\n /**\n * Clears all backend errors.\n */\n cleanMessages() {\n this.alert.clearAll();\n }\n\n /**\n * Adds a new success message\n * @param successKey The key of the success message as used in SUCCESS_MESSAGES\n */\n addSuccessMessage(successKey: string) {\n const successMessage = this.SUCCESS_MESSAGES[successKey];\n if (successMessage) {\n this.alert.add({\n text: successMessage,\n type: 'success',\n timeout: 0\n });\n }\n }\n\n /**\n * Returns the current strategy. Defaults to cookie, if a token\n * is found in local or session storage we switch to basic auth.\n * @returns The current auth strategy.\n */\n getAuthStrategy(): IAuthentication {\n let authStrategy = this.cookieAuth as IAuthentication;\n const token = this.getStoredToken();\n const tfa = this.getStoredTfaToken();\n if (token) {\n authStrategy = this.basicAuth;\n this.setCredentials({ token, tfa }, this.basicAuth);\n }\n return authStrategy;\n }\n\n /**\n * Forces the use of basic auth as strategy with this credentials.\n * @param credentials The credentials to use.\n */\n useBasicAuth(credentials: ICredentials) {\n this.setCredentials(credentials, this.basicAuth);\n return this.basicAuth;\n }\n\n /**\n * Tries to login a user with the given credentials.\n * If successful, the current tenant and user is set. If not an error\n * is thrown. It also verifies if the user is allowed to open the\n * current app.\n * @param auth The authentication strategy used.\n * @param credentials The credentials to try to login.\n */\n async login(auth: IAuthentication = this.getAuthStrategy(), credentials?: ICredentials) {\n this.client.setAuth(auth);\n\n const tenantRes = await this.tenant.current();\n const tenant = tenantRes.data;\n\n if (await this.switchLoginMode(credentials)) {\n auth = this.cookieAuth;\n }\n\n const userRes = await this.user.current();\n const user = userRes.data;\n await this.verifyAppAccess();\n\n const supportUserName = this.getSupportUserName(credentials);\n const token = this.setCredentials(\n {\n tenant: tenant.name,\n user: (supportUserName ? `${supportUserName}$` : '') + user.userName\n },\n auth\n );\n\n if (token) {\n this.storeBasicAuthToken(token);\n }\n\n await this.authFulfilled(tenant, user, supportUserName);\n }\n\n /**\n * Saves tenant, user and support user info to the app state.\n * @param tenant The current tenant object.\n * @param user The current user object.\n * @param supportUserName The current support user name.\n */\n async authFulfilled(tenant?, user?, supportUserName?) {\n if (!tenant) {\n const { data } = await this.tenant.current();\n tenant = data;\n this.client.tenant = tenant.name;\n }\n\n if (!user) {\n const { data } = await this.user.current();\n user = data;\n }\n\n if (!supportUserName) {\n supportUserName = null;\n }\n\n this.ui.setUser({ user, supportUserName });\n this.ui.currentTenant.next(tenant);\n }\n\n /**\n * Switch the login mode to CookieAuth if the\n * user has configured to use it in loginOptions.\n * @param credentials The credentials for that login\n */\n async switchLoginMode(credentials?: ICredentials) {\n const isPasswordGrantLogin = this.isPasswordGrantLogin(credentials);\n if (isPasswordGrantLogin && credentials) {\n const params = new URLSearchParams({\n grant_type: 'PASSWORD',\n username: credentials.user,\n password: credentials.password,\n tfa_code: credentials.tfa\n });\n const urlParams = new URLSearchParams(this.loginMode.initRequest.split('?').pop());\n credentials.tenant = urlParams.get('tenant_id');\n const res = await this.client.fetch(`tenant/oauth?${urlParams.toString()}`, {\n method: 'POST',\n body: params.toString(),\n headers: {\n 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'\n }\n });\n if (!(res as Response).ok) {\n throw { res };\n }\n this.client.setAuth(this.cookieAuth);\n this.cleanLocalStorage();\n this.basicAuth.logout();\n }\n return isPasswordGrantLogin;\n }\n\n isPasswordGrantLogin(credentials?: ICredentials) {\n const isSupportUser = credentials && credentials.user.includes('$');\n return !!(\n !isSupportUser &&\n this.loginMode &&\n this.loginMode.type === this.OAUTH2_INTERNAL_TYPE\n );\n }\n\n /**\n * Verifies if user is the support user or not.\n * @param {ICredentials} credentials credentials given by user.\n */\n isSupportUser(credentials?: ICredentials): boolean {\n return credentials && credentials.user.includes('$') ? true : false;\n }\n\n /**\n * Verifies if the tenant input field should be shown\n * or not.\n * @returns If true, show the tenant input.\n */\n showTenant(): boolean {\n return !this.ui.state.loginOptions || this.isLocal() || this.isShowTenant();\n }\n\n /**\n * Logs the user out\n * @param reload If set to false, the page will not reload\n */\n async logout(reload = true) {\n let resData = null;\n try {\n const [basicRes, cookieRes] = await this.reset();\n resData = await cookieRes.json();\n } catch (ex) {\n this.alert.removeLastDanger();\n } finally {\n if (resData && resData.url) {\n this.redirect(resData.url);\n } else if (reload) {\n window.location.reload();\n }\n }\n }\n\n /**\n * Resets the stored auth-data\n */\n async reset() {\n this.cleanLocalStorage();\n this.cleanSessionStorage();\n this.realtime.disconnect();\n this.ui.currentUser.next(null);\n return Promise.all([this.basicAuth.logout(), this.cookieAuth.logout()]);\n }\n\n /**\n * Saves the TFA token to local or session storage.\n * @param tfaToken The tfa token to save.\n * @param storage The storage to use (local or session).\n */\n saveTFAToken(tfaToken: string, storage: Storage) {\n storage.setItem(this.TFATOKEN_KEY, tfaToken);\n }\n\n /**\n * Request the manifest -> on 401 user has no access to that application\n * and we throw the error up to the login form.\n */\n async verifyAppAccess() {\n try {\n await this.ui.loadManifest();\n } catch (ex) {\n if (!(ex.res && ex.res.status === 404 && this.isLocal())) {\n throw ex;\n }\n }\n }\n\n /**\n * Sets the tenant to the client and updates the credentials on the\n * auth strategy.\n * @param credentials The name of the tenant.\n * @param authStrategy The authentication strategy used.\n * @return Returns the token if basic auth, otherwise undefined.\n */\n private setCredentials(credentials: ICredentials, authStrategy: IAuthentication) {\n if (credentials.tenant) {\n this.client.tenant = credentials.tenant;\n }\n // Check if a token is already set (case for support user login)\n // if yes -> we just need to update the user, and reuse the token\n // of the support user.\n // Therefore we need to pass user and tenant, to get\n // just the stored token and nothing else (see BasicAuth.ts:31).\n const token = this.basicAuth.updateCredentials({\n tenant: credentials.tenant,\n user: credentials.user\n });\n const newCredentials = { token, ...credentials };\n\n return authStrategy.updateCredentials(newCredentials);\n }\n\n /**\n * Verifies if the current user is a developer or not.\n * Running on localhost means development mode.\n */\n private isLocal(): boolean {\n const hostname = window.location.hostname;\n return this.localhostIpRegExp.test(hostname) || this.localhostRegExp.test(hostname);\n }\n\n /**\n * Save the token to local or session storage.\n * @param token The token to save.\n * @param storage The storage to use (local or session).\n */\n private saveToken(token: string, storage: Storage) {\n storage.setItem(this.TOKEN_KEY, token);\n }\n\n private storeBasicAuthToken(token: string) {\n this.saveToken(token, sessionStorage);\n if (this.rememberMe) {\n this.saveToken(token, localStorage);\n }\n }\n\n private cleanLocalStorage() {\n localStorage.removeItem(this.TOKEN_KEY);\n localStorage.removeItem(this.TFATOKEN_KEY);\n }\n\n private cleanSessionStorage() {\n sessionStorage.removeItem(this.TOKEN_KEY);\n sessionStorage.removeItem(this.TFATOKEN_KEY);\n }\n\n private isShowTenant(): boolean {\n return this.showTenantRegExp.test(window.location.href);\n }\n\n private redirect(url: string) {\n window.location.href = url;\n }\n\n private getLoginOption(): ITenantLoginOption {\n const loginOptions = this.ui.state.loginOptions || [];\n const [loginOption] = loginOptions;\n return loginOption;\n }\n\n /**\n * Gets support user name from credentials.\n * @param credentials Credentials object (defaults to the stored one).\n * @returns Support user name.\n */\n private getSupportUserName(credentials: ICredentials = this.getStoredCredentials()): string {\n if (!credentials) {\n return null;\n }\n const supportUserName = credentials.user.match(/^(.+\\/)?((.+)\\$)?(.+)?$/)[3];\n return supportUserName;\n }\n\n /**\n * Gets credentials object from the stored token.\n * @returns Credentials object.\n */\n private getStoredCredentials(): ICredentials {\n const token = this.getStoredToken();\n if (!token) {\n return null;\n }\n return this.decodeToken(token);\n }\n\n /**\n * Gets stored token from local storage or session storage.\n * @returns Stored token.\n */\n private getStoredToken(): string {\n return localStorage.getItem(this.TOKEN_KEY) || sessionStorage.getItem(this.TOKEN_KEY);\n }\n\n /**\n * Gets stored TFA token from local storage or session storage.\n * @returns Stored TFA token.\n */\n private getStoredTfaToken(): string {\n return localStorage.getItem(this.TFATOKEN_KEY) || sessionStorage.getItem(this.TFATOKEN_KEY);\n }\n\n /**\n * Decodes token to credentials object.\n * @param token Token to decode.\n * @returns Credentials object.\n */\n private decodeToken(token: string): ICredentials {\n const decoded = decodeURIComponent(escape(window.atob(token)));\n const split = decoded.match(/(([^/]*)\\/)?([^/:]+):(.+)/);\n\n return {\n tenant: split[2],\n user: split[3],\n password: split[4]\n };\n }\n}\n","import { Component, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { UserService, ICredentials, FetchClient, Client, IAuthentication } from '@c8y/client';\nimport { AppStateService } from '../common/ui-state.service';\nimport { AlertService } from '../alert/alert.service';\nimport { ModalComponent } from '../modal/modal.component';\nimport { LoginService } from '../login/public-api';\nimport { clone } from 'lodash-es';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-password-confirm-modal',\n templateUrl: './password-confirm-modal.component.html'\n})\nexport class PasswordConfirmModalComponent {\n @Output() passwordConfirmedEmitter = new EventEmitter<boolean>();\n loading = false;\n password: string;\n\n @ViewChild('modal', { static: false }) private modal: ModalComponent;\n\n constructor(\n public user: UserService,\n public ui: AppStateService,\n private client: FetchClient,\n private alert: AlertService,\n private loginService: LoginService\n ) {}\n\n async passwordConfirm() {\n if (this.password) {\n const supportUserName = this.ui.currentSupportUserName.value;\n const userId = this.ui.currentUser.value.id;\n const credentials: ICredentials = {\n password: this.password,\n user: `${supportUserName ? `${supportUserName}$` : ''}${userId}`,\n tenant: this.client.tenant\n };\n try {\n this.loading = true;\n const strategy = clone(this.loginService.useBasicAuth({}));\n delete credentials.tfa;\n strategy.updateCredentials(credentials);\n const newClient = this.createNewClient(strategy, this.client.baseUrl);\n await newClient.user.current();\n this.emitSuccessAndClose();\n } catch (e) {\n if (e.res && e.res.status === 401 && e.data && /pin|totp/i.test(e.data.message)) {\n this.emitSuccessAndClose();\n } else {\n this.alert.danger(gettext(\"Provided password doesn't match your current one.\"));\n }\n } finally {\n this.loading = false;\n }\n }\n }\n\n cancel() {\n this.passwordConfirmedEmitter.emit(false);\n this.modal._dismiss();\n }\n\n createNewClient(strategy: IAuthentication, baseUrl: string) {\n return new Client(strategy, baseUrl);\n }\n\n private emitSuccessAndClose() {\n this.passwordConfirmedEmitter.emit(true);\n this.modal._dismiss();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PasswordStrength } from '@c8y/client';\nimport { filter } from 'lodash-es';\nimport { PasswordStrengthColor } from './password.model';\nimport { gettext } from '../i18n/gettext';\nimport { PasswordConfirmModalComponent } from './password-confirm-modal.component';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class PasswordService {\n\n private GREEN: PasswordStrengthColor = {\n colorName: 'green',\n color: 'rgb(0, 128, 0)',\n description: gettext('strong'),\n passwordStrength: PasswordStrength.GREEN\n };\n private YELLOW: PasswordStrengthColor = {\n colorName: 'yellow',\n color: 'rgb(255, 204, 51)',\n description: gettext('medium'),\n passwordStrength: PasswordStrength.YELLOW\n };\n private RED: PasswordStrengthColor = {\n colorName: 'red',\n color: 'rgb(170, 0, 51)',\n description: gettext('weak'),\n passwordStrength: PasswordStrength.RED\n };\n\n constructor(private modalService: BsModalService) {}\n\n confirmPassword() {\n const modalInstance: any = this.modalService.show(PasswordConfirmModalComponent);\n return modalInstance.content.passwordConfirmedEmitter.pipe(take(1));\n }\n\n hasLowerCase(password: string) {\n return (password.search(/[a-z]/) !== -1);\n }\n\n hasUpperCase(password: string) {\n return (password.search(/[A-Z]/) !== -1);\n }\n\n hasNumbers(password: string) {\n return (password.search(/[0-9]/) !== -1);\n }\n\n hasSpecialChars(password: string) {\n return (password.search(/[^0-9a-zA-Z]+/) !== -1);\n }\n\n getStrengthColor(password: string): PasswordStrengthColor {\n const passwordStrength = filter([\n this.hasLowerCase(password),\n this.hasUpperCase(password),\n this.hasNumbers(password),\n this.hasSpecialChars(password)\n ]).length;\n\n if (passwordStrength > 2) {\n return this.GREEN;\n } else if (passwordStrength >= 2) {\n return this.YELLOW;\n } else {\n return this.RED;\n }\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { PasswordService } from './password.service';\nimport { LoginService } from '../login/login.service';\nimport { assign, map } from 'lodash-es';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-password-check-list',\n templateUrl: './password-check-list.component.html',\n styles: []\n})\n\nexport class PasswordCheckListComponent implements OnInit {\n\n @Input('password')\n set password(password: string) {\n if (typeof password === 'string') {\n this.onPasswordChange(password);\n }\n }\n\n minGreenLength: number = 0;\n\n checklist = [\n {\n label: gettext('Include lowercase characters (e.g. abcdef)'),\n check: this.passwordStrengthChecker.hasLowerCase,\n icon: '',\n contextualColor: ''\n\n },\n {\n label: gettext('Include uppercase characters (e.g. ABCDEF)'),\n check: this.passwordStrengthChecker.hasUpperCase,\n icon: '',\n contextualColor: ''\n },\n {\n label: gettext('Include numbers (e.g. 123456)'),\n check: this.passwordStrengthChecker.hasNumbers,\n icon: '',\n contextualColor: ''\n },\n {\n label: gettext('Include symbols (e.g. !@#$%^)'),\n check: this.passwordStrengthChecker.hasSpecialChars,\n icon: '',\n contextualColor: ''\n },\n {\n label: gettext('Must have at least {{length}} characters'),\n check: (password) => password.length >= this.minGreenLength,\n icon: '',\n contextualColor: ''\n }\n ];\n\n constructor(public loginService: LoginService,\n private passwordStrengthChecker: PasswordService) {\n }\n\n ngOnInit() {\n this.minGreenLength = this.loginService.getGreenMinLength();\n }\n\n get translateParams() {\n return {\n length: this.minGreenLength\n };\n }\n\n onPasswordChange(password) {\n this.checklist = map(this.checklist, (requirement) => {\n const checked = requirement.check(password);\n assign(requirement, {\n icon: checked ? 'check' : '',\n contextualColor: checked ? '' : 'text-muted'\n });\n return requirement;\n });\n }\n}\n","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[passwordConfirm]',\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: PasswordConfirm,\r\n multi: true\r\n }\r\n ]\r\n})\r\n\r\nexport class PasswordConfirm implements Validator {\r\n\r\n constructor(@Attribute('passwordConfirm') public passwordConfirm: string) {\r\n }\r\n\r\n validate(abControl: AbstractControl): { [key: string]: any } {\r\n const value = abControl.value;\r\n const controlToCompareWith = abControl.root.get(this.passwordConfirm);\r\n if (controlToCompareWith && value !== controlToCompareWith.value) {\r\n return { passwordConfirm: true };\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PasswordStrength } from '@c8y/client';\r\nimport { filter } from 'lodash-es';\r\nimport { PasswordStrengthColor } from './password.model';\r\nimport { gettext } from '../i18n/gettext';\r\n\r\n@Injectable()\r\nexport class PasswordStrengthCheckerService {\r\n\r\n private GREEN: PasswordStrengthColor = {\r\n colorName: 'green',\r\n color: 'rgb(0, 128, 0)',\r\n description: gettext('strong'),\r\n passwordStrength: PasswordStrength.GREEN\r\n };\r\n private YELLOW: PasswordStrengthColor = {\r\n colorName: 'yellow',\r\n color: 'rgb(255, 204, 51)',\r\n description: gettext('medium'),\r\n passwordStrength: PasswordStrength.YELLOW\r\n };\r\n private RED: PasswordStrengthColor = {\r\n colorName: 'red',\r\n color: 'rgb(170, 0, 51)',\r\n description: gettext('weak'),\r\n passwordStrength: PasswordStrength.RED\r\n };\r\n\r\n hasLowerCase(password: string) {\r\n return (password.search(/[a-z]/) !== -1);\r\n }\r\n\r\n hasUpperCase(password: string) {\r\n return (password.search(/[A-Z]/) !== -1);\r\n }\r\n\r\n hasNumbers(password: string) {\r\n return (password.search(/[0-9]/) !== -1);\r\n }\r\n\r\n hasSpecialChars(password: string) {\r\n return (password.search(/[^0-9a-zA-Z]+/) !== -1);\r\n }\r\n\r\n getStrengthColor(password: string): PasswordStrengthColor {\r\n const passwordStrength = filter([\r\n this.hasLowerCase(password),\r\n this.hasUpperCase(password),\r\n this.hasNumbers(password),\r\n this.hasSpecialChars(password)\r\n ]).length;\r\n\r\n if (passwordStrength > 2) {\r\n return this.GREEN;\r\n } else if (passwordStrength >= 2) {\r\n return this.YELLOW;\r\n } else {\r\n return this.RED;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PasswordService } from './password.service';\n\n@Component({\n selector: 'c8y-password-strength',\n templateUrl: './password-strength.component.html'\n})\n\nexport class PasswordStrengthComponent {\n\n @Input('password')\n set password(password: string) {\n if (typeof password === 'string') {\n this.model = this.passwordStrengthCheckerService.getStrengthColor(password);\n this.strength.emit(this.model);\n }\n }\n @Output()\n strength = new EventEmitter();\n\n model;\n\n constructor(private passwordStrengthCheckerService: PasswordService) {\n this.password = '';\n }\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { NewPassword } from './password.model';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { LoginService } from '../login/login.service';\n\n@Component({\n selector: 'c8y-new-password',\n templateUrl: './new-password.component.html',\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }]\n})\nexport class NewPasswordComponent implements OnInit {\n @Output() password = new EventEmitter<NewPassword | {}>();\n model: any = {};\n changePassword: boolean = false;\n passwordEnforced: boolean = false;\n minlength: number;\n\n constructor(\n private loginService: LoginService\n ) {\n }\n\n ngOnInit() {\n this.loadPasswordStrengthSettings();\n this.minlength = this.loginService.getGreenMinLength();\n }\n\n newPasswordChanged() {\n this.password.emit({\n password: this.model.newPassword,\n passwordStrength: this.model.strength\n });\n }\n\n async loadPasswordStrengthSettings() {\n this.passwordEnforced = await this.loginService.getEnforcePasswordStrength();\n }\n\n showPasswordStrength() {\n return this.model.newPassword && this.model.newPassword.length >= this.minlength;\n }\n\n toggleChangePassword() {\n this.changePassword = !this.changePassword;\n if (!this.changePassword) {\n this.password.emit({});\n this.model = {};\n }\n }\n}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { StatusType, Status, statusIcons, statusAlert } from '../common/status.model';\nimport { ModalLabels } from '../select-modal/select-modal.model';\n\n/**\n * Labels to be used in the selection modal.\n * @deprecated This is going to be removed after 1007.7.0. Use ModalLabels instead.\n */\n// tslint:disable-next-line: no-empty-interface\nexport interface ILabels extends ModalLabels {}\n\n@Component({\n selector: 'c8y-confirm-modal',\n templateUrl: './modal-confirm.component.html'\n})\nexport class ConfirmModalComponent implements OnDestroy {\n result: Promise<boolean>;\n dismiss: () => void;\n close: () => void;\n @Input() title: string;\n @Input() body: string;\n @Input() status: StatusType = Status.INFO;\n @Input() set labels(labels: ModalLabels) {\n const { ok = 'OK', cancel = 'Cancel' } = labels || {};\n this._labels = { ok, cancel };\n }\n\n get labels(): ModalLabels { return this._labels; }\n\n get classIcon() {\n return `fa-${statusIcons[this.status]}`;\n }\n\n get classAlert() {\n return statusAlert[this.status];\n }\n\n private _labels: ModalLabels;\n\n constructor(private modal: BsModalRef) {\n this._labels = {\n ok: 'OK',\n cancel: 'Cancel'\n };\n this.result = new Promise((resolve, reject) => {\n this.dismiss = () => {\n reject();\n this.modal.hide();\n };\n this.close = () => {\n resolve(true);\n this.modal.hide();\n };\n });\n }\n\n ngOnDestroy() {\n this.dismiss();\n }\n}\n","import { Component, Input, Optional, Output, EventEmitter, HostListener } from '@angular/core';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { gettext } from '../i18n/gettext';\nimport { isEmpty } from 'lodash';\nimport { ModalLabels } from '../select-modal/select-modal.model';\n\n/**\n * C8y modal component.\n * ## Example:\n *\n * Creating custom modal:\n * ```typescript\n * import { Component } from \"@angular/core\";\n * import { Subject } from 'rxjs';\n *\n * @Component({\n * selector: \"my-modal\",\n * template: `\n * <c8y-modal title=\"CustomTitle\"\n * (onClose)=\"onClose($event)\"\n * (onDismiss)=\"onDismiss($event)\"\n * [labels]=\"labels\"\n * [disabled]=\"true\" <- will disable ok button\n * >\n * <span>I am body of modal</span>\n * <span>For simple string use body=\"string\"</span>\n * </c8y-modal>`\n * })\n *\n * export class MyModalComponent {\n *\n * closeSubject: Subject<boolean> = new Subject();\n * labels : ModalLabels = {ok: \"customOK\", cancel: \"customCancel\"};\n *\n * onDismiss(event){\n * this.closeSubject.next(false);\n * }\n *\n * onClose(event) {\n * this.closeSubject.next(true);\n * }\n * }\n * ```\n * Showing modal:\n * ```typescript\n * import { BsModalService } from \"ngx-bootstrap/modal\";\n *\n * constructor(\n * public bsModalService: BsModalService,\n * ) {}\n *\n * showModal() {\n * const modalRef = this.bsModalService.show(MyModalComponent);\n * modalRef.content.closeSubject.subscribe(result => {\n * console.log('results:', result);\n * });\n * }\n * ```\n */\n@Component({\n selector: 'c8y-modal',\n templateUrl: './modal.component.html',\n})\n\nexport class ModalComponent {\n @Output() onDismiss: EventEmitter<boolean> = new EventEmitter();\n @Output() onClose: EventEmitter<boolean> = new EventEmitter();\n @Input() disabled = false;\n @Input() close: () => void;\n @Input() dismiss: () => void;\n @Input() title: string;\n @Input() body: string;\n @Input() customFooter: boolean = false;\n @Input() set labels({ok, cancel}: ModalLabels) {\n this._labels = {ok , cancel};\n }\n\n get labels(): ModalLabels { return this._labels; }\n\n private _labels: ModalLabels = { ok: gettext('OK'), cancel: gettext('Cancel') };\n\n constructor(@Optional() private modal: BsModalRef) {}\n\n _dismiss() {\n let fn = this.dismiss;\n if (!fn && this.modal) { fn = () => this.modal.hide(); }\n if (fn) { fn(); }\n this.onDismiss.emit(true);\n }\n\n _close() {\n let fn = this.close;\n if (!fn && this.modal) { fn = () => this.modal.hide(); }\n if (fn) { fn(); }\n this.onClose.emit(true);\n }\n\n @HostListener('document:keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n const hasOnlyOneButton = isEmpty(this.labels.ok) !== isEmpty(this.labels.cancel);\n const isCancelClickable = !this.customFooter && this.labels.cancel;\n const isOkClickable = !this.customFooter && !this.disabled && this.labels.ok;\n if (hasOnlyOneButton && isCancelClickable) {\n this._dismiss();\n }\n if (hasOnlyOneButton && isOkClickable) {\n this._close();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { ConfirmModalComponent } from './modal-confirm.component';\nimport { StatusType, Status } from '../common/status.model';\nimport { gettext } from '../i18n/gettext';\n\n/**\n * Service to shiow a modal.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ModalService {\n\n constructor(private modalService: BsModalService) {}\n\n /**\n * Shows a quick confirm message modal.\n * @param title The title of that modal.\n * @param body The text body to display.\n * @param status The status.\n * @param labels The labels to use. Default: { ok: 'Confirm', cancel: 'Cancel'}\n */\n async confirm(title: string, body: string, status: StatusType = Status.INFO, labels: any = {}) {\n const modalLabels = {ok: labels.ok || gettext('Confirm'), cancel: labels.cancel || gettext('Cancel')};\n const modalRef = this.modalService.show(ConfirmModalComponent, {initialState: {title, body, labels: modalLabels, status}});\n return await modalRef.content.result;\n }\n\n /**\n * Shows a quick acknowledge message modal.\n * @param title The title of that modal.\n * @param body The text body to display.\n * @param status The status.\n * @param acknowledgeLabel The label to use.\n */\n async acknowledge(title: string, body: string, status: StatusType = Status.INFO, acknowledgeLabel: string = gettext('Confirm') ) {\n const labels = {ok: acknowledgeLabel, cancel: null};\n const modalRef = this.modalService.show(ConfirmModalComponent, {initialState: {title, body, labels, status}});\n return await modalRef.content.result;\n }\n}\n","import { Component, Input, ViewChild, OnDestroy } from '@angular/core';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { StatusType } from '../common/status.model';\nimport { gettext } from '../i18n/gettext';\n\nexport interface PopoverConfirmButtons {\n /**\n * The label of the button\n */\n label: string;\n /**\n * Which action to perform.\n */\n action: () => Promise<any>;\n /**\n * The status class attached to the button.\n */\n status?: StatusType | 'primary';\n}\n\n/**\n * A component to show a popover right next to the\n * user action. Add this component where the confirm modal\n * should be shown and toggle isOpen to display it. You\n * can use `await isShow()` to wait for a result on the\n * click action.\n */\n@Component({\n selector: 'c8y-popover-confirm',\n templateUrl: './popover-confirm.component.html'\n})\nexport class PopoverConfirmComponent {\n @ViewChild(PopoverDirective, {static: false}) popover: PopoverDirective;\n @Input() buttons: PopoverConfirmButtons[] = [{ label: gettext('cancel'), action: () => Promise.reject()}];\n @Input() message: string;\n @Input() title: string;\n @Input() isOpen = false;\n @Input() containerClass = '';\n @Input() placement = 'right';\n @Input() outsideClick = false;\n\n click: (action: () => Promise<any>) => void;\n\n /**\n * Show the popover. Wait until an action is performed on it.\n */\n async show(buttons?: PopoverConfirmButtons[]) {\n this.buttons = buttons || this.buttons;\n this.isOpen = true;\n let result;\n try {\n result = await new Promise((resolve, reject) => {\n return this.click = (action: () => Promise<any>) => action().then(resolve).catch(reject);\n });\n } catch (ex) {\n throw(ex);\n } finally {\n this.isOpen = false;\n }\n return result;\n }\n\n buttonStatus(status) {\n if (status) {\n return `btn-${status}`;\n }\n return 'btn-link btn-clean';\n }\n\n handleOutsideClick() {\n this.click(() => Promise.reject());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ModalModule as BsModalModule } from 'ngx-bootstrap/modal';\nimport { ConfirmModalComponent } from './modal-confirm.component';\nimport { ModalComponent } from './modal.component';\nimport { ModalService } from './modal.service';\nimport { CommonModule } from '../common/common.module';\nimport { PopoverConfirmComponent } from './popover-confirm.component';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\n\n/**\n * The angular module definition for modal.\n * @exports ConfirmModalComponent\n * @exports ModalComponent\n * @exports PopoverConfirmComponent\n */\n@NgModule({\n imports: [\n BsModalModule.forRoot(),\n CommonModule,\n PopoverModule.forRoot()\n ],\n exports: [\n ConfirmModalComponent,\n ModalComponent,\n PopoverConfirmComponent\n ],\n declarations: [\n ConfirmModalComponent,\n ModalComponent,\n PopoverConfirmComponent\n ],\n providers: [\n ModalService\n ],\n entryComponents: [\n ConfirmModalComponent\n ]\n})\nexport class ModalModule { }\n","import { NG_VALIDATORS, AbstractControl, Validator } from '@angular/forms';\nimport { Directive } from '@angular/core';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js/max';\n\n@Directive({\n selector: '[c8yPhoneValidation]',\n providers: [{provide: NG_VALIDATORS, useExisting: PhoneValidationDirective, multi: true}]\n})\nexport class PhoneValidationDirective implements Validator {\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n const valid = this.validateInternationalPhoneNumber(control);\n return valid ? null : {\n internationalPhoneNumber: true\n };\n }\n\n private validateInternationalPhoneNumber(control: AbstractControl) {\n let numberValid;\n try {\n const phoneNumber = parsePhoneNumberFromString(control.value);\n numberValid = phoneNumber.isValid();\n if (numberValid && control.value !== phoneNumber.format('E.164')) {\n control.setValue(phoneNumber.format('E.164'), { emitEvent: false, emitModelToViewChange: false });\n }\n } catch (e) {\n numberValid = !control.value;\n }\n return numberValid;\n }\n}\n","// tslint:disable: max-line-length\nimport { gettext } from '../i18n/gettext';\n\nexport interface ValidationRules {\n pattern?: RegExp;\n message?: string;\n maxLength?: number;\n minLength?: number;\n}\n\n// @dynamic\nexport class ValidationPattern {\n static readonly messages = {\n deviceId: gettext('Device ID must not contain spaces or slashes (\"/\").'),\n domain: gettext(\n 'Only lowercase letters, digits, hyphens and underscores allowed in the first part of the URI. ' +\n 'Must start with a letter; hyphens and underscores only allowed in the middle. Must be a valid URI.'\n ),\n email: gettext('Invalid email address.'),\n internationalPhoneNumber: gettext(\n 'International phone number required, in the format +49 9 876 543 210.'\n ),\n loginAlias: gettext(\n 'Login alias must not contain slashes (\"/\", \"\\\\\") nor (\"+\"), (\":\"), (\"$\") signs.'\n ),\n max : gettext('Max value: {{ value }}'),\n min : gettext('Min value: {{ value }}'),\n opcuaBrowsePath: gettext('Invalid OPC UA URI.'),\n password: gettext(\n 'Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:\\'\",.<>{}[]\\\\/'\n ),\n passwordConfirm: gettext('Passwords do not match.'),\n passwordStrength: gettext('Password not good enough, password must be stronger (green).'),\n phoneNumber: gettext(\n 'Invalid phone number format. Only digits, spaces, slashes (\"/\") and dashes (\"-\") allowed.'\n ),\n required: gettext('This field is required.'),\n tenantId: gettext(\n 'May contain lowercase letters, digits, hyphens and underscores. ' +\n 'Must start with a letter; hyphens and underscores only allowed in the middle; minimum 2 characters.'\n ),\n urlSegment: gettext('Slash, single or double dots and white space not allowed'),\n user: gettext(\n 'Username must not contain spaces nor slashes (\"/\", \"\\\\\") nor (\"+\"), (\":\"), (\"$\") signs.'\n )\n };\n\n static readonly rules = {\n deviceId: {\n pattern: /^[^\\s/]*$/\n },\n domain: {\n pattern: /^[a-z]+[a-z0-9_-]*[a-z0-9]+\\.{1}.+$/\n },\n groupName: {\n maxLength: 254\n },\n hostname: {\n 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])$/\n },\n ip: {\n 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]?)$/\n },\n opcuaBrowsePath: {\n pattern: /^(opc.tcp|http|https):\\/\\/[^ \"]+$/\n },\n password: {\n pattern: /^[a-zA-Z0-9`~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]{8,32}$/\n },\n phoneNumber: {\n pattern: /^$|^(\\+|0{2})[\\d\\s/-]{1,30}$/\n },\n tenantId: {\n pattern: /^[a-z]+[a-z0-9_-]*[a-z0-9]+$/\n },\n user: {\n pattern: /^[^\\\\/\\s$:+]*$/\n },\n urlSegment: {\n pattern: /^(([.]{1,2})|([/])+|(([/]*)([.]{1,2})([/]*))|((.*)([/]|[ ]+)(.*))|(\\s+))$/\n },\n loginAlias: {\n pattern: /^[^\\\\/$:+]*$/\n }\n };\n\n static get(key: string) {\n const pattern = this.rules[key];\n return pattern as ValidationRules;\n }\n}\n","import { NG_VALIDATORS, AbstractControl, Validator } from '@angular/forms';\nimport { Directive, Input } from '@angular/core';\nimport { ValidationPattern } from './validation-pattern';\n\n@Directive({\n selector: '[c8yDefaultValidation]',\n providers: [{provide: NG_VALIDATORS, useExisting: DefaultValidationDirective, multi: true}]\n})\nexport class DefaultValidationDirective implements Validator {\n @Input() c8yDefaultValidation: string = '';\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n if (!control.value) {\n return null;\n }\n const validation = ValidationPattern.get(this.c8yDefaultValidation);\n if (!validation) {\n throw new Error(`Pattern ${this.c8yDefaultValidation} not found.`);\n }\n\n let valid = true;\n if (validation.pattern) {\n valid = validation.pattern.test(control.value);\n }\n if (validation.maxLength) {\n valid = control.value.length < validation.maxLength;\n }\n if (validation.minLength) {\n valid = control.value.length >= validation.minLength;\n }\n return valid ? null : {[this.c8yDefaultValidation]: true };\n }\n}\n","import { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\nimport { isUndefined } from 'lodash-es';\n\n@Directive({\n selector: '[min]',\n providers: [{provide: NG_VALIDATORS, useExisting: MinValidationDirective, multi: true}]\n})\nexport class MinValidationDirective implements Validator {\n @Input() min: string = '';\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n const parsedMin = parseInt(this.min, 10);\n if (isUndefined(control.value) || !this.min) {\n return null;\n }\n\n let valid = true;\n valid = (control.value !== null) ? !(control.value < parsedMin) : true;\n return valid ? null : {min: { value: parsedMin } };\n }\n}\n","import { AbstractControl, NG_VALIDATORS, Validator } from '@angular/forms';\nimport { Directive, Input } from '@angular/core';\n\nimport { isUndefined } from 'lodash-es';\n\n@Directive({\n selector: '[max]',\n providers: [{provide: NG_VALIDATORS, useExisting: MaxValidationDirective, multi: true}]\n})\nexport class MaxValidationDirective implements Validator {\n @Input() max: string = '';\n\n validate(control: AbstractControl): {[key: string]: any} | null {\n const parsedMax = parseInt(this.max, 10);\n if (isUndefined(control.value) || !this.max) {\n return null;\n }\n\n let valid = true;\n valid = !(control.value > parsedMax);\n return valid ? null : {max: { value: parsedMax } };\n }\n}\n","import { Directive, Input } from '@angular/core';\n\n@Directive({\n selector: 'c8y-message',\n})\nexport class MessageDirective {\n @Input() name: string;\n @Input() text: string;\n}\n","import { Component, ContentChildren, Input, QueryList } from '@angular/core';\n\nimport { MessageDirective } from './message.directive';\nimport { ValidationPattern } from './validation-pattern';\nimport { isFunction } from 'lodash-es';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'c8y-messages',\n templateUrl: './messages.component.html'\n})\nexport class MessagesComponent {\n @Input() show: {} = {};\n @Input() defaults: {} = ValidationPattern.messages;\n @ContentChildren(MessageDirective) customMessages: QueryList<MessageDirective>;\n messages = [];\n messageMap: any = {};\n\n constructor(private translateService: TranslateService) {}\n\n ngAfterContentInit(): void {\n this.messageMap = Object.assign({}, this.defaults, this.customMessages.reduce((messages, directive) => {\n messages[directive.name] = directive.text;\n return messages;\n }, {}));\n }\n\n changVisibility(show: {}) {\n this.show = show;\n this.ngOnChanges();\n }\n\n ngOnChanges() {\n if (this.show) {\n this.messages = Object.keys(this.show)\n .map((key) => this.toMessage(key, this.show[key]));\n } else {\n this.messages = [];\n }\n }\n\n private toMessage(key, value) {\n return this.translateService.instant(this.messageMap[key], value);\n }\n}\n","import { Component, ContentChild, HostBinding, Input } from '@angular/core';\nimport { NgModel } from '@angular/forms';\nimport { Subscription, timer, merge } from 'rxjs';\nimport { debounce, filter } from 'rxjs/operators';\nimport { MessagesComponent } from './messages.component';\n/**\n * A form group helps to validate an input of a form element.\n *\n * ## Example:\n *\n * ```html\n * <c8y-form-group [hasWarning]=\"user.email.length === 0\">\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' | translate}}\"\n * [(ngModel)]=\"user.email\"\n * email\n * required\n * >\n * <c8y-messages>\n * <c8y-message *ngIf=\"user.email.length === 0\" translate></c8y-message>\n * <c8y-message name=\"required\" text=\"The E-Mail is SUPER required\"></c8y-message>\n * </c8y-messages>\n * </c8y-form-group>\n * ```\n *\n * @param status The current status could be error, warning or success.\n * @param hasError Set this to true to display a error.\n * @param hasWarning Set this to true to display a warning.\n * @param hasSuccess Set this to true to display a success.\n * @param novalidation Set this to true to disable automatic validation by this component.\n */\n@Component({\n selector: 'c8y-form-group',\n templateUrl: './form-group.component.html',\n host: {\n class: 'form-group'\n }\n})\nexport class FormGroupComponent {\n @Input() hasError = false;\n @Input() hasWarning = false;\n @Input() hasSuccess = false;\n @Input() novalidation = false;\n @Input() status: string;\n @HostBinding('class.has-error') get error() {\n return this.status === 'error' || this.hasError;\n }\n @HostBinding('class.has-warning') get warning() {\n return this.status === 'warning' || this.hasWarning;\n }\n @HostBinding('class.has-success') get success() {\n return this.status === 'success' || this.hasSuccess;\n }\n @ContentChild(MessagesComponent, { static: false }) customErrorMessage: MessagesComponent;\n @ContentChild(NgModel, { static: true }) model: NgModel;\n\n errors: {};\n private subscription: Subscription;\n private readonly VALIDATION_DEBOUNCE_MS = 1000;\n\n ngAfterContentInit(): void {\n this.initNgModel();\n }\n\n initNgModel() {\n if (this.model) {\n this.model.valueAccessor.registerOnTouched(() => {\n if (this.model.control && !this.model.control.dirty) {\n this.model.control.markAsDirty();\n this.model.control.updateValueAndValidity({onlySelf: true});\n }\n });\n this.subscription = merge(this.model.valueChanges, this.model.statusChanges)\n .pipe(\n filter(() => this.model.dirty && !this.novalidation),\n debounce(() => (this.hasError ? timer(10) : timer(this.VALIDATION_DEBOUNCE_MS)))\n )\n .subscribe(() => this.update());\n }\n }\n\n update() {\n this.hasError = this.model.status === 'INVALID';\n if (this.customErrorMessage) {\n this.customErrorMessage.changVisibility(this.model.errors);\n } else {\n this.errors = this.model.errors;\n }\n }\n\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import {\n Component,\n Input,\n Output,\n QueryList,\n TemplateRef,\n ContentChild,\n EventEmitter\n} from '@angular/core';\n\n@Component({\n selector: 'c8y-input-group-list',\n templateUrl: 'input-group-list.component.html'\n})\nexport class InputGroupListComponent {\n @Input() plus: boolean = true;\n @Input() minus: boolean = true;\n @Input() index: number;\n\n @Output() onRemove: EventEmitter<number> = new EventEmitter<number>();\n @Output() onAdd: EventEmitter<number> = new EventEmitter<number>();\n add() {\n this.onAdd.emit(this.index);\n }\n\n remove() {\n this.onRemove.emit(this.index);\n }\n}\n","import {\n Directive,\n Input,\n Output,\n QueryList,\n AfterContentInit,\n ContentChildren,\n EventEmitter\n} from '@angular/core';\nimport { map } from 'lodash-es';\nimport { InputGroupListComponent } from './input-group-list.component';\n\n@Directive({\n selector: '[c8yInputGroupListContainer]'\n})\nexport class InputGroupListContainerDirective implements AfterContentInit {\n @ContentChildren(InputGroupListComponent) listProjections: QueryList<InputGroupListComponent>;\n\n ngAfterContentInit() {\n this.listProjections.map(element => {\n if (element !== this.listProjections.last) {\n setTimeout(() => {\n element.plus = false;\n });\n }\n });\n\n this.listProjections.changes.subscribe(elements => {\n if (elements.length === 1) {\n setTimeout(() => {\n elements.first.plus = true;\n elements.first.minus = false;\n });\n\n return;\n }\n elements.map(element => {\n setTimeout(() => {\n element.minus = true;\n });\n\n if (element !== elements.last) {\n setTimeout(() => {\n element.plus = false;\n });\n }\n if (element === elements.last) {\n setTimeout(() => {\n element.plus = true;\n });\n }\n });\n });\n }\n}\n","import { Directive, EventEmitter, Output, OnInit, OnDestroy } from '@angular/core';\nimport { NgControl, AbstractControl } from '@angular/forms';\n\nimport { debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { gettext } from '../i18n/public-api';\n\n@Directive({\n selector: 'textarea[prettyValidJson]'\n})\nexport class JsonValidationPrettifierDirective implements OnInit, OnDestroy {\n @Output() invalidJSON: EventEmitter<string> = new EventEmitter();\n private abstractCtrl: AbstractControl;\n private message: string = gettext('Must be a valid JSON object.');\n private debounceTimeInMs: number = 1000;\n private subscription: Subscription;\n\n constructor(ngCtrl: NgControl) {\n this.abstractCtrl = ngCtrl.control;\n }\n\n ngOnInit() {\n this.subscription = this.abstractCtrl.valueChanges\n .pipe(\n tap(() => this.clearValidationMessage()),\n debounceTime(this.debounceTimeInMs),\n distinctUntilChanged()\n )\n .subscribe(value => {\n this.validateInputAndPrettify(value);\n });\n }\n\n ngOnDestroy() {\n if (this.subscription && !this.subscription.closed) {\n this.subscription.unsubscribe();\n }\n }\n\n validateInputAndPrettify(value) {\n if (value) {\n try {\n const validJsonObject = JSON.parse(value);\n const pretty = JSON.stringify(validJsonObject, undefined, 2);\n this.abstractCtrl.setValue(pretty);\n } catch (ex) {\n this.setErrorAndValidationMessage();\n }\n }\n }\n\n private setErrorAndValidationMessage() {\n this.abstractCtrl.setErrors({ invalidBodyTemplate: true });\n this.invalidJSON.emit(this.message);\n }\n\n private clearValidationMessage() {\n this.invalidJSON.emit(undefined);\n }\n}\n","import { Directive, ElementRef, Input, HostBinding, Renderer2 } from '@angular/core';\n\n@Directive({\n selector: 'textarea[heightPerRow]'\n})\nexport class TextAreaRowHeightDirective {\n @Input()\n @HostBinding('rows')\n rows: number = 1;\n\n @Input('heightPerRow')\n heightPerRow: string;\n\n private minHeightPerRow = 20;\n\n constructor(private elem: ElementRef, private renderer: Renderer2) {}\n\n ngAfterViewInit() {\n const convertedValue = Number(this.heightPerRow);\n if (this.heightPerRow && convertedValue && convertedValue > this.minHeightPerRow) {\n this.setHeight(`${this.rows * convertedValue}px`);\n } else {\n this.setHeight(`${this.rows * this.minHeightPerRow}px`);\n }\n }\n\n private setHeight(value: string) {\n this.renderer.setStyle(this.elem.nativeElement, 'height', value);\n }\n}\n","import { Directive, ElementRef, Renderer2, AfterContentChecked } from '@angular/core';\nimport { gettext } from '../i18n/gettext';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Directive({\n selector: 'input[required]'\n})\nexport class RequiredInputPlaceholderDirective implements AfterContentChecked {\n private shouldSkipRequiredHint: boolean = false;\n private placeholder: string;\n private req: boolean;\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n private translationService: TranslateService\n ) {\n this.shouldSkipRequiredHint = !!this.el.nativeElement.closest('[placeholder-no-required-hint]');\n }\n\n ngAfterContentChecked(): void {\n if (this.el && this.el.nativeElement && this.el.nativeElement.required !== undefined) {\n const required = this.el.nativeElement.required && !this.shouldSkipRequiredHint;\n const placeholder = this.el.nativeElement.placeholder;\n\n if (this.placeholder !== placeholder || this.req !== required) {\n this.updatePlaceholder(this.getTextForPlaceholder(placeholder, required));\n }\n }\n }\n\n private getTextForPlaceholder(placeholder = '', required = false) {\n this.req = required;\n const requiredText = `(${this.translationService.instant(gettext('required'))})`;\n const requiredTextIndex = placeholder.lastIndexOf(requiredText);\n if (requiredTextIndex > 0) {\n placeholder = placeholder.slice(0, requiredTextIndex - 1);\n }\n if (requiredTextIndex === 0) {\n placeholder = '';\n }\n if (!required) {\n return placeholder;\n }\n return placeholder.trim() ? `${placeholder} ${requiredText}` : requiredText;\n }\n\n private updatePlaceholder(placeholder) {\n this.renderer.setAttribute(this.el.nativeElement, 'placeholder', placeholder);\n this.placeholder = placeholder;\n }\n}\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { Observable, of } from 'rxjs';\n\n@Component({\n selector: 'c8y-ip-range-input-list',\n templateUrl: './ip-range-input-list.component.html'\n})\nexport class IpRangeInputListComponent {\n @Input()\n set data(list) {\n this.ipRangeList = list;\n if (this.ipRangeList.length === 0) {\n this.add();\n }\n }\n\n get data() {\n return this.ipRangeList;\n }\n\n ipRangeList: Array<{ ip: string; cidr: number }>;\n\n add() {\n this.ipRangeList.push({ ip: '', cidr: undefined });\n }\n\n remove(index) {\n this.ipRangeList.splice(index, 1);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subject, timer } from 'rxjs';\nimport { debounce, distinctUntilChanged, map } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-filter',\n templateUrl: './filter-input.component.html'\n})\nexport class FilterInputComponent implements OnInit, OnDestroy {\n @Input() icon: string;\n @Output() onSearch = new EventEmitter<string>();\n filterChange$ = new Subject();\n filterTerm: string = '';\n private readonly CARRIAGE_RETURN_KEY = 13;\n private readonly CARRIAGE_RETURN_CODE = 'Enter';\n\n ngOnInit() {\n this.reset();\n this.filterChange$\n .pipe(\n debounce((event: any) =>\n event.code === this.CARRIAGE_RETURN_CODE || event.keyCode === this.CARRIAGE_RETURN_KEY\n ? timer(10)\n : timer(300)\n ),\n map((e: any) => e.target.value),\n distinctUntilChanged()\n )\n .subscribe(filterTerm => {\n this.filterTerm = filterTerm;\n this.onSearch.emit(filterTerm);\n });\n }\n\n reset() {\n this.filterTerm = '';\n this.onSearch.emit('');\n }\n\n ngOnDestroy(): void {\n this.filterChange$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PhoneValidationDirective } from './phone-validation.directive';\nimport { DefaultValidationDirective } from './default-validation.directive';\nimport { MinValidationDirective } from './min-validation.directive';\nimport { MaxValidationDirective } from './max-validation.directive';\nimport { CommonModule } from '../common/common.module';\nimport { FormsModule as NgFormsModule } from '@angular/forms';\nimport { FormGroupComponent } from './form-group.component';\nimport { MessageDirective } from './message.directive';\nimport { MessagesComponent } from './messages.component';\nimport { InputGroupListComponent } from './input-group-list.component';\nimport { InputGroupListContainerDirective } from './input-group-list-container.directive';\nimport { JsonValidationPrettifierDirective } from './json-validation-prettifier.directive';\nimport { TextAreaRowHeightDirective } from './text-area-row-height.directive';\nimport { RequiredInputPlaceholderDirective } from './required-input-placeholder.directive';\nimport { IpRangeInputListComponent } from './ip-range-input-list.component';\nimport { FilterInputComponent } from './filter-input.component';\n\n/**\n * @exports FormGroupComponent A component that allows to group an input and can display warnings and errors.\n * @exports PhoneValidationDirective Allows to validate international phone numbers.\n * @exports NewsletterDirective Allows to subscribe to the newsletter.\n * @exports DefaultValidationDirective Allows to validate some predefined patterns.\n * @exports MessageDirective A directive that allows to define messages.\n * @exports MessagesComponent Allows to display error messages.\n */\n@NgModule({\n imports: [CommonModule, NgFormsModule],\n exports: [\n PhoneValidationDirective,\n DefaultValidationDirective,\n MinValidationDirective,\n MaxValidationDirective,\n NgFormsModule,\n FormGroupComponent,\n MessageDirective,\n MessagesComponent,\n InputGroupListComponent,\n InputGroupListContainerDirective,\n JsonValidationPrettifierDirective,\n TextAreaRowHeightDirective,\n RequiredInputPlaceholderDirective,\n IpRangeInputListComponent,\n FilterInputComponent\n ],\n declarations: [\n PhoneValidationDirective,\n DefaultValidationDirective,\n MinValidationDirective,\n MaxValidationDirective,\n FormGroupComponent,\n MessageDirective,\n MessagesComponent,\n InputGroupListComponent,\n InputGroupListContainerDirective,\n JsonValidationPrettifierDirective,\n TextAreaRowHeightDirective,\n RequiredInputPlaceholderDirective,\n IpRangeInputListComponent,\n FilterInputComponent\n ]\n})\nexport class FormsModule {}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { NewPassword } from './password.model';\nimport { ControlContainer, NgForm } from '@angular/forms';\nimport { LoginService } from '../login/login.service';\nimport { UserService, ICredentials } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { LoginViews } from '../login/login.model';\n\n@Component({\n selector: 'c8y-totp-challenge',\n templateUrl: './totp-challenge.component.html',\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\n\nexport class TotpChallengeComponent {\n /**\n * Calls the verify endpoint if set to true (default true)\n */\n @Input() verify = true;\n /**\n * Emits the token on success.\n */\n @Output() onSuccess = new EventEmitter();\n\n model = {\n token: ''\n };\n @Input()\n loading = false;\n @Input()\n hasError = false;\n\n constructor(\n public loginService: LoginService,\n private users: UserService,\n private alert: AlertService\n ) {}\n\n async verifyCode() {\n try {\n this.loading = true;\n this.hasError = false;\n if (this.verify) {\n await this.users.verifyTotpCode(this.model.token);\n }\n this.onSuccess.emit(this.model.token);\n } catch (e) {\n this.hasError = true;\n this.alert.removeLastDanger();\n this.loading = false;\n }\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { UserService, ICredentials } from '@c8y/client';\nimport { LoginService } from '../login/login.service';\nimport { AlertService } from '../alert/public-api';\nimport { LoginViews } from '../login/login.model';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-sms-challenge',\n templateUrl: './sms-challenge.component.html',\n styles: []\n})\n\nexport class SmsChallengeComponent {\n\n @Input() credentials: ICredentials;\n @Output() onCancel = new EventEmitter();\n\n model = {\n smsToken: ''\n };\n isLoading = false;\n\n private resendTfa: string = '0';\n\n constructor(\n public loginService: LoginService,\n private users: UserService,\n private alert: AlertService\n ) {}\n\n async verifyTFACode() {\n this.isLoading = true;\n if (this.useOAuthInternal()) {\n await this.verifyCodeWithOauth();\n } else {\n await this.verifyCodeWithBasicAuth();\n }\n this.isLoading = false;\n }\n\n async resendTFASms() {\n try {\n this.isLoading = true;\n await this.users.verifyTFACode(this.resendTfa);\n } catch (e) {\n if (e.res.status === 403) {\n this.loginService.cleanMessages();\n this.loginService.addSuccessMessage('resend_sms');\n } else {\n this.alert.addServerFailure(e);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private useOAuthInternal() {\n return this.loginService.isPasswordGrantLogin(this.credentials);\n }\n\n private async verifyCodeWithOauth() {\n try {\n const { credentials } = this;\n await this.loginService.switchLoginMode({...credentials, tfa: this.model.smsToken});\n await this.loginService.verifyAppAccess();\n await this.loginService.authFulfilled();\n } catch (e) {\n const resStatus = e.res && e.res.status;\n if (resStatus === 401) {\n // it is assumed that the user and password are correct so it must be the tfa code\n this.alert.danger(gettext('Invalid code'));\n } else {\n this.alert.addServerFailure(e);\n }\n }\n }\n\n private async verifyCodeWithBasicAuth() {\n try {\n const { res } = await this.users.verifyTFACode(this.model.smsToken);\n const tfaToken = res.headers.get('tfatoken');\n this.credentials.tfa = tfaToken;\n this.loginWithTFA(tfaToken);\n } catch (e) {\n const resStatus = e.res && e.res.status;\n // BE returns 403 in case of invalid tfa code\n if (resStatus === 403) {\n this.alert.danger(gettext('Invalid code'));\n } else {\n this.alert.addServerFailure(e);\n }\n }\n }\n\n private async loginWithTFA(tfaToken) {\n try {\n await this.loginService.login(this.loginService.useBasicAuth({tfa: tfaToken}), this.credentials);\n this.loginService.saveTFAToken(tfaToken, sessionStorage);\n if (this.loginService.rememberMe) {\n this.loginService.saveTFAToken(tfaToken, localStorage);\n }\n } catch (e) {\n this.alert.addServerFailure(e);\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ITotp, UserService } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-totp-setup',\n templateUrl: './totp-setup.component.html'\n})\nexport class TotpSetupComponent implements OnInit {\n totpSecret: ITotp;\n\n get qrCodeImage() {\n return this.totpSecret ? this.totpSecret.secretQrUrl : '';\n }\n\n get secret() {\n return this.totpSecret ? this.totpSecret.rawSecret : '';\n }\n\n get qrData() {\n // TODO: waiting for BE:, now we need extract it from secretQrUrl\n // https://cumulocity.atlassian.net/browse/MTM-36387\n // return this.totpSecret ? this.totpSecret.qrData : '';\n const otpAuth = this.qrCodeImage.split('chl=')[1];\n if (!otpAuth) {\n this.alert.danger(gettext('Failed to generate a QR code.'));\n return '';\n }\n return decodeURIComponent(otpAuth);\n }\n\n constructor(private user: UserService, private alert: AlertService) {}\n\n async ngOnInit() {\n try {\n const { data } = await this.user.generateTotpSecret();\n this.totpSecret = data;\n } catch (ex) {\n this.alert.addServerFailure(ex);\n }\n }\n}\n","import { Component, Output, EventEmitter, Input } from '@angular/core';\nimport { LoginService } from '../login/login.service';\nimport { AlertService } from '../alert/alert.service';\nimport { LoginViews } from '../login/login.model';\nimport { ICredentials, UserService } from '@c8y/client';\n\n@Component({\n selector: 'c8y-provide-phone-number',\n templateUrl: './provide-phone-number.component.html'\n})\nexport class ProvidePhoneNumberComponent {\n @Input() credentials: ICredentials;\n @Output() onCancel = new EventEmitter();\n @Output() onChangeView = new EventEmitter();\n\n phoneNumber: string;\n requestInProgress = false;\n private sendTfa: string = '0';\n\n constructor(\n public loginService: LoginService,\n public alert: AlertService,\n private userService: UserService\n ) {}\n\n async sendTFASms() {\n try {\n await this.userService.verifyTFACode(this.sendTfa);\n } catch (e) {\n if (e.res.status === 403) {\n this.loginService.cleanMessages();\n this.loginService.addSuccessMessage('send_sms');\n } else {\n throw e;\n }\n }\n }\n\n async save() {\n try {\n this.requestInProgress = true;\n await this.userService.savePhoneNumber(this.phoneNumber);\n await this.sendTFASms();\n this.onChangeView.emit({\n view: LoginViews.SmsChallenge,\n credentials: this.credentials\n });\n } catch (e) {\n this.alert.addServerFailure(e);\n } finally {\n this.requestInProgress = false;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\nimport { PasswordCheckListComponent } from './password-check-list.component';\nimport { PasswordConfirm } from './password-confirm.directive';\nimport { PasswordStrengthCheckerService } from './password-strength-checker.service';\nimport { PasswordStrengthComponent } from './password-strength.component';\nimport { NewPasswordComponent } from './new-password.component';\nimport { PasswordConfirmModalComponent } from './password-confirm-modal.component';\nimport { ModalModule } from '../modal/modal.module';\nimport { FormsModule } from '../forms/forms.module';\nimport { TotpChallengeComponent } from './totp-challenge.component';\nimport { SmsChallengeComponent } from './sms-challenge.component';\nimport { TotpSetupComponent } from './totp-setup.component';\nimport { PasswordService } from './password.service';\nimport { ProvidePhoneNumberComponent } from './provide-phone-number.component';\nimport { QRCodeModule } from 'angularx-qrcode';\n\n/**\n * The angular module definition for new password.\n * @exports PasswordStrengthComponent\n * @exports PasswordCheckListComponent\n * @exports PasswordConfirm\n * @exports NewPasswordComponent\n * @exports PasswordConfirmModalComponent\n */\n@NgModule({\n declarations: [\n TotpChallengeComponent,\n PasswordConfirm,\n PasswordStrengthComponent,\n PasswordCheckListComponent,\n NewPasswordComponent,\n PasswordConfirmModalComponent,\n SmsChallengeComponent,\n TotpSetupComponent,\n ProvidePhoneNumberComponent\n ],\n imports: [\n FormsModule,\n TooltipModule,\n CommonModule,\n ModalModule,\n QRCodeModule\n ],\n exports: [\n TotpChallengeComponent,\n PasswordStrengthComponent,\n PasswordCheckListComponent,\n PasswordConfirm,\n NewPasswordComponent,\n PasswordConfirmModalComponent,\n SmsChallengeComponent,\n TotpSetupComponent,\n ProvidePhoneNumberComponent\n ],\n entryComponents: [\n PasswordConfirmModalComponent\n ],\n providers: [\n PasswordStrengthCheckerService,\n PasswordService\n ]\n})\nexport class AuthenticationModule {}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { BreadcrumbItem } from './breadcrumb.model';\n\n@Component({\n selector: 'c8y-breadcrumb-item',\n templateUrl: './breadcrumb-item.component.html'\n})\nexport class BreadcrumbItemComponent implements BreadcrumbItem {\n @Input() icon: string;\n @Input() translate: boolean;\n @Input() label: string;\n @Input() path: string;\n @ViewChild('template', {static: false}) template: any;\n}\n","import { Component, Input } from '@angular/core';\nimport { Breadcrumb } from './breadcrumb.model';\n\n@Component({\n selector: 'c8y-breadcrumb-outlet',\n templateUrl: './breadcrumb-outlet.component.html'\n})\nexport class BreadcrumbOutletComponent {\n showAll = false;\n @Input() breadcrumbs: Breadcrumb[] = [];\n\n /**\n * For upgrade only. Old angularjs routes start with hash, new ones not.\n */\n normalizePath(path) {\n return path.replace(/^#\\/?/, '');\n }\n}\n","import { Component, ContentChildren, QueryList } from '@angular/core';\nimport { Breadcrumb, BreadcrumbItem } from './breadcrumb.model';\nimport { BreadcrumbService } from './breadcrumb.service';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\n\n@Component({\n selector: 'c8y-breadcrumb',\n templateUrl: './breadcrumb.component.html'\n})\nexport class BreadcrumbComponent implements Breadcrumb {\n items: BreadcrumbItem[];\n @ContentChildren(BreadcrumbItemComponent) private contentChildItems: QueryList<BreadcrumbItem>;\n private viewInitTimeout;\n\n constructor(private breadcrumbService: BreadcrumbService) {}\n\n ngAfterViewInit() {\n this.items = this.contentChildItems.toArray();\n this.viewInitTimeout = setTimeout(() =>\n this.breadcrumbService.add(this as Breadcrumb)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.breadcrumbService.remove(this as Breadcrumb);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbOutletComponent } from './breadcrumb-outlet.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\nimport { BreadcrumbService } from './breadcrumb.service';\n\n/**\n * The angular module definition for breadcrumbs.\n * @exports BreadcrumbComponent\n * @exports BreadcrumbItemComponent\n * @exports BreadcrumbOutletComponent\n */\n@NgModule({\n declarations: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n BreadcrumbOutletComponent\n ],\n imports: [\n RouterModule.forChild([]),\n CommonModule,\n TooltipModule.forRoot()\n ],\n exports: [\n BreadcrumbComponent,\n BreadcrumbItemComponent,\n BreadcrumbOutletComponent\n ]\n})\nexport class BreadcrumbModule { }\n","import { Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { Search } from './search.model';\nimport { sortBy } from 'lodash';\nimport { AlertService } from '../alert/alert.service';\nimport { Alert } from '../alert/alert.model';\n\n@Component({\n selector: 'c8y-search-outlet',\n templateUrl: './search-outlet.component.html'\n})\nexport class SearchOutletComponent {\n @Input() search: Search[] = [];\n\n constructor(private alertService: AlertService) {}\n\n openSearch() {\n setTimeout(() => this.focusInputBox(), 100);\n }\n\n getByPriority() {\n return sortBy(this.search, this.byPriority);\n }\n\n closeDropdown(dropdown) {\n dropdown.hide();\n }\n\n verifyNotEmpty(term) {\n if (!term || term === '') {\n this.alertService.add({ text: 'Type something to execute a search.', type: 'warning' });\n }\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n\n private focusInputBox() {\n const elementToFocus: any = document.querySelector('#search-header-menu input');\n if (elementToFocus) {\n elementToFocus.focus();\n }\n }\n}\n","import { Injectable, InjectionToken, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { ExtensionPoint, fromTrigger, sortByPriority, stateToFactory } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport { Search } from './search.model';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_SEARCH = new InjectionToken('SearchFactory');\n\n/**\n * A service which defines the dearch function.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SearchService extends StateService implements ExtensionPoint<Search> {\n items$: Observable<Search[]>;\n readonly refreshTrigger = new Subject();\n protected state$ = new BehaviorSubject<Set<Search>>(new Set<Search>());\n\n constructor(\n private injector: Injector,\n router: Router\n ) {\n super();\n this.items$ = fromTrigger(router, this.refreshTrigger, [\n () => this.injector.get(HOOK_SEARCH, []),\n stateToFactory(this.state$)\n ]).pipe(\n map((items: Search[]) => sortByPriority(items)),\n shareReplay(1)\n );\n }\n\n /**\n * Refresh the extension factories\n */\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state() {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the search in the header.\n * @param item The item to add.\n */\n add(item: Search) {\n this.state.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an search from the header.\n * @param item The item to remove.\n */\n remove(item: Search) {\n this.state.delete(item);\n this.emitNewState();\n }\n}\n","import { Component, Input, Output, ViewChild, EventEmitter } from '@angular/core';\nimport { Search } from './search.model';\nimport { SearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search',\n templateUrl: './search.component.html'\n})\nexport class SearchComponent implements Search {\n @Input() name: string;\n @Input() icon: string = 'search';\n @Input() priority: number = 0;\n @ViewChild('template', {static: false}) template: any;\n @Output() search = new EventEmitter<Search>();\n @Input() term: string = '';\n\n private viewInitTimeout;\n\n constructor(private searchService: SearchService) { }\n\n onSearch() {\n this.search.emit(this);\n }\n\n ngAfterViewInit() {\n this.template = undefined;\n this.viewInitTimeout = setTimeout(() => this.searchService.add(this as Search));\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.searchService.remove(this as Search);\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n ViewChild\n} from '@angular/core';\nimport { escape, escapeRegExp } from 'lodash-es';\n\n@Component({\n selector: 'c8y-highlight',\n template: '<span [innerHTML]=\"highlightedText\"></span>'\n})\nexport class HighlightComponent {\n @ViewChild('text', { read: ElementRef, static: true })\n container: ElementRef;\n\n @Input()\n pattern: string = '';\n\n @Input()\n text: string = '';\n\n @Input()\n elementClass: string = 'text-info';\n\n highlightedText: string = '';\n\n ngOnChanges(): void {\n const textNoHtml = escape(this.text || '');\n const patternNoHtml = escape(this.pattern || '');\n const patternForRegex = escapeRegExp(patternNoHtml).replace(/\\\\\\*/g, '.*');\n this.highlightedText = textNoHtml.replace(\n new RegExp(patternForRegex, 'i'),\n `<strong class=\"${this.elementClass}\">$&</strong>`\n );\n }\n}\n","import { Component, Input} from '@angular/core';\r\nimport { gettext } from '../i18n/gettext';\r\n\r\n@Component({\r\n selector: 'c8y-search-result-empty',\r\n templateUrl: './search-result-empty.component.html'\r\n})\r\nexport class SearchResultEmptyComponent {\r\n private readonly NO_RESULT_FOUND = gettext('No results found.');\r\n private msg: string = this.NO_RESULT_FOUND;\r\n\r\n @Input('message')\r\n set _message(msg: string) {\r\n if (msg && msg.length > 0) {\r\n this.msg = msg;\r\n } else {\r\n this.msg = this.NO_RESULT_FOUND;\r\n }\r\n }\r\n\r\n get message() {\r\n return this.msg;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { SearchOutletComponent } from './search-outlet.component';\nimport { SearchComponent } from './search.component';\nimport { SearchService } from './search.service';\nimport { FormsModule } from '@angular/forms';\nimport { HighlightComponent } from './highlight.component';\nimport { SearchResultEmptyComponent } from './search-result-empty.component';\n\n/**\n * The angular module definition for the search.\n * @exports SearchComponent\n * @exports SearchOutletComponent\n * @exports HighlightComponent A component to highlight search results.\n */\n@NgModule({\n declarations: [\n SearchOutletComponent,\n SearchComponent,\n HighlightComponent,\n SearchResultEmptyComponent\n ],\n imports: [\n FormsModule,\n BsDropdownModule,\n CommonModule,\n RouterModule.forChild([])\n ],\n exports: [\n SearchOutletComponent,\n SearchComponent,\n HighlightComponent,\n SearchResultEmptyComponent\n ]\n})\nexport class SearchModule { }\n","import { Injectable } from '@angular/core';\nimport { StateService } from '../common/state-service.abstract';\nimport { BehaviorSubject } from 'rxjs';\nimport { UserMenuItem } from './user.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserMenuService extends StateService {\n state$: BehaviorSubject<any> = new BehaviorSubject<any>({\n userMenuItems: new Set<UserMenuItem>()\n });\n\n /**\n * Returns the current state.\n * @readonly\n * @returns The current set of actions.\n */\n get state() {\n return this.state$.value;\n }\n\n /**\n * Adds a new item to the search in the header.\n * @param item The item to add.\n */\n add(item: UserMenuItem) {\n this.state.userMenuItems.add(item);\n this.emitNewState();\n }\n\n /**\n * Removes an search from the header.\n * @param item The item to remove.\n */\n remove(item: UserMenuItem) {\n this.state.userMenuItems.delete(item);\n this.emitNewState();\n }\n}\n","import { Component, Input, ViewChild, EventEmitter, Output } from '@angular/core';\nimport { UserMenuItem } from './user.model';\nimport { UserMenuService } from './user-menu.service';\n\n@Component({\n selector: 'c8y-user-menu-item',\n templateUrl: './user-menu-item.component.html'\n})\nexport class UserMenuItemComponent implements UserMenuItem {\n @Input()\n icon: string;\n @Input()\n label: string;\n @Input()\n link: string;\n @Input()\n target: string;\n @Input()\n priority = 0;\n @ViewChild('template', {static: false}) template: any;\n\n @Output()\n click = new EventEmitter<UserMenuItem>();\n private viewInitTimeout;\n\n constructor(private userService: UserMenuService) { }\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.userService.add(this as UserMenuItem)\n );\n }\n\n ngOnDestroy() {\n clearTimeout(this.viewInitTimeout);\n this.userService.remove(this as UserMenuItem);\n }\n\n onClick() {\n this.click.emit(this);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BasicAuth, FetchClient, ICredentials, IUser, UserService } from '@c8y/client';\nimport { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';\nimport { AlertService } from '../alert/alert.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { UserPreferencesService } from '../common/user-preferences/user-preferences.service';\nimport { gettext } from '../i18n/gettext';\nimport { TranslateService } from '../i18n/translate.service';\nimport { take } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-user-edit-modal',\n templateUrl: './user-edit-modal.component.html'\n})\nexport class UserEditModalComponent implements OnInit {\n currentUser: IUser;\n lang: string;\n changedLang: string;\n loading = false;\n\n constructor(\n public modal: BsModalRef,\n public user: UserService,\n public ui: AppStateService,\n private auth: BasicAuth,\n private client: FetchClient,\n private alert: AlertService,\n private translate: TranslateService,\n private userPreferences: UserPreferencesService,\n private modalService: BsModalService\n ) {\n this.lang = this.ui.state.lang;\n this.modalService.onHide.pipe(take(1)).subscribe(( reason: string ) => {\n if (reason !== null && this.changedLang !== undefined) {\n this.translate.switchToLanguage(this.lang);\n }\n });\n }\n\n ngOnInit() {\n this.updateUserInAppState();\n }\n\n onDismiss() {\n if (this.changedLang !== undefined) {\n this.translate.switchToLanguage(this.lang);\n }\n this.modal.hide();\n }\n\n onLanguage(lang) {\n this.changedLang = lang;\n this.translate.switchToLanguage(this.changedLang);\n }\n\n async updateAndClose(user) {\n this.loading = true;\n try {\n await this.user.updateCurrent(user);\n if (user.password) {\n this.updateCredentials(user.password);\n }\n await this.updateUserInAppState();\n if (this.changedLang && this.changedLang !== this.lang) {\n await this.persistLanguage(this.changedLang);\n }\n this.modal.hide();\n this.alert.success(gettext('User saved.'));\n } catch (e) {\n this.alert.addServerFailure(e);\n } finally {\n this.loading = false;\n }\n }\n\n async persistLanguage(lang) {\n this.translate.saveInLocalStorage(lang);\n this.userPreferences.set('language', lang);\n }\n\n private async updateUserInAppState() {\n const currentUserResult = await this.user.current();\n this.ui.currentUser.next(currentUserResult.data);\n }\n\n private updateCredentials(password: string) {\n const newCredentials: ICredentials = {\n password,\n user: this.ui.currentUser.value.id,\n tenant: this.client.tenant\n };\n this.auth.updateCredentials(newCredentials);\n }\n}\n","import { Component } from '@angular/core';\nimport { UserService } from '@c8y/client';\nimport { Status } from '../common/status.model';\nimport { gettext } from '../i18n/gettext';\nimport { ModalService } from '../modal/modal.service';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { LoginService } from '../login/public-api';\nimport { AlertService } from '../alert/public-api';\n\n@Component({\n selector: 'c8y-user-totp-setup',\n templateUrl: './user-totp-setup.component.html'\n})\nexport class UserTotpSetupComponent {\n constructor(\n private user: UserService,\n private modalService: ModalService,\n private modal: BsModalRef,\n private loginService: LoginService) { }\n\n async totpSetupVerified(token) {\n await this.user.activateTotp();\n this.modal.hide();\n try {\n await this.modalService.acknowledge(\n gettext('Logout required'),\n gettext('You must log out in order to apply your changes'),\n Status.WARNING,\n gettext('Log out')\n );\n await this.loginService.logout();\n } catch (ex) {\n // intended empty\n }\n }\n\n close() {\n this.modal.hide();\n }\n}\n","import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport {\n IUser,\n UserService,\n TenantLoginOptionsService,\n TenantService\n} from '@c8y/client';\nimport { clone } from 'lodash-es';\nimport { AppStateService } from '../common/ui-state.service';\nimport { TranslateService } from '../i18n/translate.service';\nimport { NewPassword } from '../authentication/password.model';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { PasswordService } from '../authentication/password.service';\nimport { UserTotpSetupComponent } from './user-totp-setup.component';\nimport { AlertService } from '../alert/alert.service';\nimport { ModalService } from '../modal/modal.service';\n\nexport interface User extends IUser {\n phone: string;\n sendPasswordResetEmail: boolean;\n newsletter?: boolean;\n}\n\n@Component({\n selector: 'c8y-user-edit',\n templateUrl: './user-edit.component.html'\n})\nexport class UserEditComponent implements OnInit {\n @Input() lang: string;\n @Input() loading: boolean = false;\n @Input() set user(u: User) {\n this._user = clone(u);\n this.userIsExternal = u.customProperties.userOrigin === 'OAUTH2';\n this.isPhoneRequired = this.isPhoneRequired && u.twoFactorAuthenticationEnabled;\n }\n get user() { return this._user; }\n @Output() onUser: EventEmitter<User> = new EventEmitter();\n @Output() onLanguage: EventEmitter<string> = new EventEmitter();\n @Output() onCancel: EventEmitter<void> = new EventEmitter();\n userHasActiveTotp = false;\n userCanSetupTotp = false;\n isPhoneRequired = false;\n userIsExternal;\n isTfaEnabled: boolean;\n private _user: User;\n\n constructor(\n public state: AppStateService,\n public translate: TranslateService,\n public passwordService: PasswordService,\n public modalConfirmService: ModalService,\n private bsModalService: BsModalService,\n private alert: AlertService,\n private userService: UserService,\n private tenantLoginOptionsService: TenantLoginOptionsService,\n private tenantService: TenantService,\n ) {}\n\n async ngOnInit() {\n const currentTenant = (await this.tenantService.current()).data;\n const { enabledOnSystemLevel, enabledOnTenantLevel } = await this.tenantService.getTfaSettings(currentTenant);\n this.isTfaEnabled = enabledOnSystemLevel || enabledOnTenantLevel;\n\n await this.initializeTotpSettings();\n if (this.user.twoFactorAuthenticationEnabled && !this.userCanSetupTotp) {\n this.isPhoneRequired = true;\n }\n }\n\n get langs() {\n return this.state.state.langs;\n }\n\n setupTotp() {\n this.bsModalService.show(UserTotpSetupComponent, { class: 'modal-sm' });\n this.cancel(); // to close the user edit modal and prevent console errors on logout\n }\n\n cancel() {\n this.onCancel.emit();\n }\n\n save() {\n if (!this.loading) {\n this._user.password ? this.saveAfterPasswordConfirmation() : this.onUser.emit(this._user);\n }\n }\n\n onNewPasswordChanged(newPassword: NewPassword) {\n this._user.password = newPassword.password;\n }\n\n private async initializeTotpSettings() {\n try {\n this.userCanSetupTotp = await this.canUserSetupTotp();\n if (this.userCanSetupTotp) {\n const { data: totpActivity } = await this.userService.getActivityTotp();\n this.userHasActiveTotp = totpActivity.isActive;\n }\n } catch (ex) {\n this.alert.removeLastDanger();\n }\n }\n\n private async canUserSetupTotp() {\n // we don't check for tenant options here due to permission restrictions on that end-point\n const { loginOptions } = (await this.tenantLoginOptionsService.detail()).data;\n return loginOptions.some(({ tfaStrategy = '' }) => tfaStrategy.toLowerCase() === 'totp');\n }\n\n private saveAfterPasswordConfirmation() {\n this.passwordService.confirmPassword().subscribe((confirmed) => {\n if (confirmed) {\n this.onUser.emit(this._user);\n }\n });\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TenantService, UserService } from '@c8y/client';\n\nimport { AlertService } from '../alert/alert.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { LoginService } from '../login/login.service';\nimport { ModalService } from '../modal/modal.service';\nimport { Observable } from 'rxjs';\nimport { OptionsService } from '../common/options.service';\nimport { Status } from '../common/status.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UserEditModalComponent } from './user-edit-modal.component';\nimport { UserMenuItem } from './user.model';\nimport { gettext } from '../i18n/gettext';\nimport { map } from 'rxjs/operators';\nimport { sortBy } from 'lodash-es';\n\n@Component({\n selector: 'c8y-user-menu-outlet',\n templateUrl: './user-menu-outlet.component.html'\n})\nexport class UserMenuOutletComponent {\n @Input()\n items: UserMenuItem[];\n open: boolean;\n\n constructor(\n public ui: AppStateService,\n private bsModalService: BsModalService,\n private modalService: ModalService,\n private loginService: LoginService,\n private translateService: TranslateService,\n private tenantService: TenantService,\n private alertService: AlertService,\n private user: UserService,\n private optionsService: OptionsService\n ) {}\n\n copyIt(text: string) {\n const handler: EventListenerObject = {\n handleEvent: (e: ClipboardEvent) => {\n e.clipboardData.setData('text/plain', text);\n e.preventDefault();\n }\n };\n document.addEventListener('copy', handler);\n\n let copied;\n try {\n copied = document.execCommand('copy');\n } catch (e) {\n copied = false;\n }\n\n if (copied) {\n this.alertService.addByText('success', gettext('Copied to clipboard.'));\n } else {\n this.alertService.addByText('danger', gettext('Could not copy to clipboard.'));\n }\n\n document.removeEventListener('copy', handler);\n }\n\n async editUser() {\n this.bsModalService.show(UserEditModalComponent);\n }\n\n async logout() {\n await this.loginService.logout();\n }\n\n async activateSupportAccess() {\n const title = gettext('Activate support user access');\n\n const companyName = this.optionsService.get('companyName', 'Cumulocity');\n const textWithCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to allow a support user from {{companyName}} to access your tenant to help you with your issue.'\n );\n const textWithoutCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to allow a support user to access your tenant to help you with your issue.'\n );\n const finalQuestion = gettext('Do you want to proceed?');\n const body = [\n this.translateService.instant(companyName ? textWithCompany : textWithoutCompany, {\n companyName\n }),\n this.translateService.instant(finalQuestion)\n ].join(' ');\n\n const labels = {\n ok: gettext('Activate access'),\n cancel: gettext('Cancel')\n };\n\n const successMsg = gettext('Support user access activated.');\n\n try {\n await this.modalService.confirm(title, body, Status.DANGER, labels);\n await this.tenantService.enableSupportUser();\n await this.refreshCurrentUser();\n this.alertService.success(successMsg);\n } catch (ex) {\n // intended empty\n }\n }\n\n async deactivateSupportAccess() {\n const title = gettext('Deactivate support user access');\n\n const companyName = this.optionsService.get('companyName', 'Cumulocity');\n const textWithCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to block a support user from {{companyName}} from accessing your tenant to help you with your issue.'\n );\n const textWithoutCompany = gettext(\n // tslint:disable-next-line:max-line-length\n 'You are about to block a support user from accessing your tenant to help you with your issue.'\n );\n const { data: currentUser } = await this.user.current();\n const isTenantAdmin = await this.user.hasRole(currentUser, 'ROLE_TENANT_ADMIN');\n const tenantAdminNote = gettext(\n // tslint:disable-next-line:max-line-length\n 'Deactivating support access as tenant admin will disable all other support requests on your tenant.'\n );\n const finalQuestion = gettext('Do you want to proceed?');\n const body = [\n this.translateService.instant(companyName ? textWithCompany : textWithoutCompany, {\n companyName\n }),\n isTenantAdmin ? this.translateService.instant(tenantAdminNote) : '',\n this.translateService.instant(finalQuestion)\n ]\n .filter(Boolean)\n .join(' ');\n\n const labels = {\n ok: gettext('Deactivate access'),\n cancel: gettext('Cancel')\n };\n\n const successMsg = gettext('Support user access deactivated.');\n\n try {\n await this.modalService.confirm(title, body, Status.DANGER, labels);\n await this.tenantService.disableSupportUser();\n await this.refreshCurrentUser();\n this.alertService.success(successMsg);\n } catch (ex) {\n // intended empty\n }\n }\n\n getSortedItems() {\n return sortBy(Array.from(this.items), this.byPriority);\n }\n\n private async refreshCurrentUser() {\n const currentUserResult = await this.user.current();\n this.ui.currentUser.next(currentUserResult.data);\n }\n\n private byPriority(item) {\n return -item.priority;\n }\n}\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { IUser, UserService } from '@c8y/client';\nimport { AlertService } from '../alert/public-api';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-user-totp-revoke',\n templateUrl: './user-totp.component.html'\n})\nexport class UserTotpRevokeComponent {\n @Input() user: IUser;\n @Output('revoke') revokeEmitter = new EventEmitter<undefined>();\n constructor(\n private users: UserService,\n private alert: AlertService,\n ) { }\n\n async revoke() {\n try {\n await this.users.totpRevokeSecret(this.user);\n this.alert.success(gettext('User TOTP secret revoked.'));\n this.revokeEmitter.next();\n } catch (e) {\n this.alert.addServerFailure(e);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { ModalModule } from '../modal/modal.module';\nimport { UserMenuItemComponent } from './user-menu-item.component';\nimport { UserEditModalComponent } from './user-edit-modal.component';\nimport { UserEditComponent } from './user-edit.component';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { UserMenuOutletComponent } from './user-menu-outlet.component';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { UserMenuService } from './user-menu.service';\nimport { AlertModule } from '../alert/alert.module';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { RouterModule } from '@angular/router';\nimport { FormsModule } from '../forms/forms.module';\nimport { UserTotpSetupComponent } from './user-totp-setup.component';\nimport { UserTotpRevokeComponent } from './user-totp-revoke.component';\n\n/**\n * The angular module definition for the user menu.\n * @exports UserMenuComponent\n * @exports UserMenuItemComponent\n * @exports UserEditComponent\n * @exports UserEditModalComponent\n */\n@NgModule({\n declarations: [\n UserMenuOutletComponent,\n UserEditComponent,\n UserEditModalComponent,\n UserMenuItemComponent,\n UserTotpSetupComponent,\n UserTotpRevokeComponent,\n ],\n imports: [\n FormsModule,\n CommonModule,\n ModalModule,\n BsDropdownModule,\n AuthenticationModule,\n AlertModule,\n RouterModule,\n TooltipModule.forRoot(),\n PopoverModule\n ],\n exports: [\n UserMenuOutletComponent,\n UserMenuItemComponent,\n UserEditComponent,\n UserEditModalComponent,\n UserTotpSetupComponent,\n UserTotpRevokeComponent\n ],\n entryComponents: [\n UserEditModalComponent,\n UserTotpSetupComponent,\n UserTotpRevokeComponent\n ]\n})\nexport class UserModule { }\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { find, keys, get, assign, isEmpty } from 'lodash-es';\nimport { OptionsService } from '../../common/options.service';\n\n@Component({\n selector: 'c8y-app-icon',\n templateUrl: './app-icon.component.html',\n host: { class: 'c8y-app-icon' }\n})\nexport class AppIconComponent implements OnChanges {\n @Input() contextPath: string;\n @Input() name: string = '';\n @Input() app: any;\n\n model = {\n appIcon: '',\n showIcon: true,\n iconClass: ['c8y-icon'],\n appNameAbbr: '',\n iconStyle: {}\n };\n\n private c8yAppIconsList = {\n analyticsbuilder: 'analytics-builder',\n 'analytics-builder': 'analytics-builder',\n cockpit: 'cockpit',\n devicemanagement: 'device-management',\n administration: 'administration',\n apamaepl: 'apama-epl'\n };\n\n private white: boolean = false;\n\n private defaultIconStyle = {\n 'background-repeat': 'no-repeat',\n 'background-size': 'contain',\n height: '36px',\n width: '36px'\n };\n\n constructor(private options: OptionsService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n this.model.appIcon = this.iconFromAppDefinition() || this.findStaticIcon();\n const iconUrl = this.iconUrlFromAppDefinition();\n if (iconUrl) {\n this.model.iconStyle = assign(this.defaultIconStyle, {\n 'background-image': iconUrl\n });\n }\n this.model.showIcon = !!this.model.appIcon || !isEmpty(this.model.iconStyle);\n this.model.iconClass = [\n 'c8y-icon',\n this.model.appIcon,\n this.white ? 'c8y-icon-white' : 'c8y-icon-duocolor'\n ].filter(c => !!c);\n this.model.appNameAbbr = this.name.substr(0, 2);\n }\n\n private findStaticIcon() {\n const contextPath = this.contextPath || this.name;\n const appContextPathNormalized = find(keys(this.c8yAppIconsList), cp => {\n return contextPath.indexOf(cp) > -1;\n });\n const appIcon = this.c8yAppIconsList[appContextPathNormalized];\n return appIcon ? `c8y-icon-${appIcon}` : undefined;\n }\n\n private iconFromAppDefinition() {\n const app = this.app || this.options;\n const iconClassProperty = ['icon', 'class'];\n const iconClass = get(app, iconClassProperty) || get(app, ['manifest', ...iconClassProperty]);\n return iconClass;\n }\n\n private iconUrlFromAppDefinition() {\n const app = this.app || this.options;\n const iconUrlProperty = ['icon', 'url'];\n const iconUrl = get(app, iconUrlProperty) || get(app, ['manifest', ...iconUrlProperty]);\n return iconUrl;\n }\n}\n","import { Component } from '@angular/core';\nimport { ApplicationService, IApplication, ICurrentTenant, IUser } from '@c8y/client';\nimport { get, includes, orderBy } from 'lodash-es';\nimport { combineLatest } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { AppStateService } from '../../common/ui-state.service';\n\n@Component({\n selector: 'c8y-app-switcher',\n templateUrl: './app-switcher.component.html'\n})\nexport class AppSwitcherComponent {\n oneCloudApps?: Array<IApplication & {[key: string]: any}>;\n apps: Array<IApplication & {[key: string]: any}>;\n open: boolean;\n\n private get hideCloudApps(): boolean {\n return false; // this should be configurable from outside\n }\n private tenant: ICurrentTenant;\n constructor(\n private ui: AppStateService,\n private applications: ApplicationService) {\n const { currentUser, currentTenant} = this.ui;\n combineLatest(currentUser, currentTenant).pipe(\n first()\n ).subscribe(([ user, tenant ]) => {\n this.tenant = tenant;\n this.listAppsForUser(user);\n });\n }\n\n isActive(app: IApplication) {\n return app.contextPath === this.ui.state.app.contextPath;\n }\n\n getHref(app: IApplication) {\n return this.applications.getHref(app);\n }\n\n private async listAppsForUser(user: IUser | null) {\n if (user) {\n const { data } = await this.applications.listByUser(user, { pageSize: 1000 });\n this.apps = this.orderApps(this.filterApps(data));\n }\n }\n\n private filterApps(apps) {\n apps = this.filterVisible(apps);\n apps = this.filterCloud(apps);\n apps = this.filterDuplicates(apps);\n return apps;\n }\n\n private filterVisible(apps) {\n const visibleApplicationTypes = ['HOSTED', 'EXTERNAL'];\n return apps.filter((app) => includes(visibleApplicationTypes, app.type) &&\n !app.noAppSwitcher &&\n !get(app, 'manifest.noAppSwitcher'));\n }\n\n private filterCloud(apps) {\n const { hideCloudApps } = this;\n const filterFn = (app) => !!app.cloud;\n if (!hideCloudApps) {\n this.oneCloudApps = this.orderApps(apps.filter(filterFn));\n }\n return apps.filter((app) => !filterFn(app));\n }\n\n private filterDuplicates(apps) {\n // Filter out apps that have duplicate contextpaths and are not own owned but the current tenant;\n const filterFn = (app) => !apps.some((otherApp) => (app !== otherApp) &&\n (app.contextPath && app.contextPath === otherApp.contextPath) &&\n (app.owner.tenant.id !== this.tenant.name));\n return apps.filter(filterFn);\n }\n\n private orderApps(apps) {\n return orderBy(apps, (({ name }) => name.toLowerCase()));\n }\n}\n","import { gettext } from '../i18n/gettext';\n\nexport const documentationItems = [\n {\n icon: 'c8y-c8y-data', // double c8y- is correct!\n label: gettext('Concepts guide`KEEP_ORIGINAL`'),\n url: '/concepts/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-user',\n label: gettext('User guide`KEEP_ORIGINAL`'),\n url: '/users-guide/getting-started',\n type: 'doc'\n },\n {\n icon: 'c8y-device-management',\n label: gettext('Device guides`KEEP_ORIGINAL`'),\n url: '/devices/overview',\n type: 'doc'\n },\n {\n icon: 'c8y-book',\n label: gettext('Cumulocity IoT Edge`KEEP_ORIGINAL`'),\n url: '/edge/overview',\n type: 'doc'\n },\n {\n icon: 'c8y-tools',\n label: gettext('Microservice SDK guide`KEEP_ORIGINAL`'),\n url: '/microservice-sdk/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-tools',\n label: gettext('Device SDK guide`KEEP_ORIGINAL`'),\n url: '/device-sdk/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-smart-rest',\n label: gettext('Web SDK guide`KEEP_ORIGINAL`'),\n url: '/web/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-data-explorer',\n label: gettext('Streaming analytics guide`KEEP_ORIGINAL`'),\n url: '/apama/introduction',\n type: 'doc'\n },\n {\n icon: 'c8y-bookmark',\n label: gettext('Reference guide`KEEP_ORIGINAL`'),\n url: '/reference/rest-implementation',\n type: 'doc'\n },\n {\n icon: 'gavel',\n label: gettext('Legal notices'),\n url: 'https://documentation.softwareag.com/legal/',\n type: 'doc'\n }\n];\n","import { InjectionToken } from '@angular/core';\nimport { ExtensionFactory } from '../common/public-api';\n\nexport interface DocLink {\n icon: string;\n label: string;\n url: string;\n type: 'doc' | 'quicklink';\n click?: any;\n}\n\nexport type DocLinkFactory = ExtensionFactory<DocLink>;\n\nexport const HOOK_DOCS = new InjectionToken<ExtensionFactory<DocLink>>('Hook docs');\n","import { Injectable, Inject, Optional } from '@angular/core';\nimport { OptionsService } from '../common/options.service';\nimport { documentationItems } from './defaults.items';\nimport { AppStateService } from '../common/ui-state.service';\nimport { gettext } from '../i18n/gettext';\nimport { DocLink, HOOK_DOCS, DocLinkFactory } from './docs.models';\nimport { ExtensionPoint, fromTrigger } from '../common/public-api';\nimport { Observable } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { shareReplay, startWith, first, filter } from 'rxjs/operators';\nimport { isUndefined } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DocsService implements ExtensionPoint<DocLink> {\n items$: Observable<DocLink[]>;\n constructor(\n private options: OptionsService,\n private app: AppStateService,\n @Optional() @Inject(HOOK_DOCS) factories: DocLinkFactory[] = [],\n router: Router\n ) {\n if (!factories) {\n factories = [];\n }\n factories.push(this);\n const refreshTrigger = this.app.map(({ supportUrl }) => supportUrl);\n this.items$ = fromTrigger(router, refreshTrigger, factories).pipe(\n startWith([]),\n shareReplay(1)\n );\n }\n\n getBaseUrl(): string {\n return this.options.get('docsBaseUrl', 'https://www.cumulocity.com/guides');\n }\n\n get templateStr(): string {\n return this.options.get('guideHrefTemplate', '${docsBaseUrl}${partialUrl}');\n }\n\n getUserGuideLink(link) {\n if (/^https?:/.test(link)) {\n return link;\n }\n if (this.getBaseUrl === null) {\n return null;\n }\n return this.getLink(this.templateStr, link);\n }\n\n list() {\n return this.items$\n .pipe(\n filter(i => !!i.length),\n first()\n )\n .toPromise();\n }\n\n refresh() {\n // no op\n }\n\n get() {\n // use the function as a factory\n const { links, noDefault, excludeDefault = [] } = this.options.get('docs', {});\n const { supportUrl } = this.app.state;\n let staticLinks = noDefault\n ? []\n : documentationItems\n .map((item: DocLink) => ({ ...item, url: this.getUserGuideLink(item.url) }))\n .filter(({ url }) => !excludeDefault.some(e => new RegExp(e).test(url)));\n\n if (links) {\n // backwards compatibility\n links.map((lnk: DocLink) => {\n if (isUndefined(lnk.type)) {\n lnk.type = 'doc';\n return lnk;\n }\n });\n staticLinks = staticLinks.concat(links);\n }\n if (supportUrl) {\n staticLinks.push({\n icon: 'comments',\n label: gettext('Forum support'),\n url: supportUrl,\n type: 'doc'\n });\n }\n return staticLinks;\n }\n\n private getLink(templateStr, partialLink) {\n if (!templateStr) {\n return undefined;\n }\n return templateStr\n .replace(/\\${docsBaseUrl}/, this.getBaseUrl())\n .replace(/\\${partialUrl}/, this.prefixWithSlash(partialLink));\n }\n\n private prefixWithSlash(partialLink = '') {\n const shouldPrefix = !(partialLink && /^\\//.test(partialLink));\n const prefix = shouldPrefix ? '/' : '';\n return `${prefix}${partialLink}`;\n }\n}\n","import { AfterViewInit, Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ActionService } from '../../action/action.service';\nimport { BreadcrumbService } from '../../breadcrumb/breadcrumb.service';\nimport { SearchService } from '../../search/search.service';\nimport { AppStateService } from '../../common/ui-state.service';\nimport { UserMenuService } from '../../user/user-menu.service';\nimport { HeaderService } from '../header.service';\nimport { DocsService } from '../../docs/docs.service';\n\n@Component({\n selector: 'c8y-header-bar',\n templateUrl: './header-bar.component.html'\n})\nexport class HeaderBarComponent implements AfterViewInit {\n canToggle$: Observable<boolean> = this.headerService.hasItemsInNavigator$;\n appState$: Observable<any> = this.appState.state$;\n drawerOpen = false;\n headerOpen = false;\n\n constructor(\n public headerService: HeaderService,\n public actionService: ActionService,\n public breadcrumbService: BreadcrumbService,\n public searchService: SearchService,\n private appState: AppStateService,\n public userMenuService: UserMenuService,\n public docs: DocsService\n ) {}\n\n ngAfterViewInit() {\n this.headerService.verifyIfNavOpen();\n }\n\n toggle() {\n this.headerOpen = !this.headerOpen;\n }\n}\n","import { Component, ElementRef, NgZone } from '@angular/core';\nimport { HeaderService } from '../header.service';\nimport { debounceTime, map, filter } from 'rxjs/operators';\n\n@Component({\n selector: 'c8y-title-outlet',\n templateUrl: './title-outlet.component.html'\n})\nexport class TitleOutletComponent {\n title = undefined;\n\n constructor(\n private headerService: HeaderService,\n private element: ElementRef,\n private zone: NgZone\n ) {\n const title$ = this.headerService.map(state => state.title);\n title$.subscribe(title => (this.title = title));\n this.zone.runOutsideAngular(() => {\n title$\n .pipe(\n debounceTime(100),\n map(() => this.element.nativeElement.querySelector('h1')),\n filter(el => el !== null),\n map(el => el.innerText),\n filter(Boolean)\n )\n .subscribe((title: string) => headerService.changePageTitle(title));\n });\n }\n}\n","import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';\nimport { HeaderService } from '../header.service';\n\n@Component({\n selector: 'c8y-title',\n templateUrl: './title.component.html'\n})\nexport class TitleComponent implements AfterViewInit, OnDestroy {\n @ViewChild('template', {static: true}) template;\n private viewInitTimeout;\n\n constructor(\n private headerService: HeaderService\n ) {}\n\n ngAfterViewInit() {\n this.viewInitTimeout = setTimeout(() =>\n this.headerService.changeTitle(this.template)\n );\n }\n\n ngOnDestroy() {\n if (this.headerService.state.title === this.template) {\n clearTimeout(this.viewInitTimeout);\n this.headerService.changeTitle();\n }\n }\n}\n","import { Component, TemplateRef, ViewChild, Input} from '@angular/core';\nimport { NavigatorNode } from './navigator-node';\nimport { NavigatorService } from './navigator.service';\n\n@Component({\n selector: 'c8y-navigator-item',\n template: '<ng-template #iconTpl><ng-content></ng-content></ng-template>',\n})\nexport class NavigatorItemComponent {\n @ViewChild('iconTpl', {static: true}) template: TemplateRef<any>;\n @Input() label: string;\n @Input() icon: string;\n @Input() path: string;\n @Input() priority = 0;\n nodeData: NavigatorNode;\n constructor(\n private service: NavigatorService\n ) {\n this.nodeData = new NavigatorNode();\n }\n\n ngOnInit(): void {\n this.ngOnChanges();\n setTimeout(() => this.service.add(this.nodeData));\n }\n\n ngOnChanges(): void {\n this.nodeData.icon = this.icon;\n this.nodeData.label = this.label;\n this.nodeData.path = this.path;\n this.nodeData.priority = this.priority;\n this.nodeData.iconTemplate = !this.icon ? this.template : undefined;\n this.nodeData.icon = this.icon;\n }\n\n ngOnDestroy(): void {\n this.service.remove(this.nodeData);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NavigatorNode } from './navigator-node';\n\n@Component({\n selector: 'c8y-navigator-icon',\n template: `<i class=\"icon\" [c8yIcon]=\"icon\"></i>`\n})\nexport class NavigatorIconComponent {\n @Input() node: NavigatorNode;\n get icon() {\n const DEFAULT_ICON = 'cog';\n return this.node.icon || DEFAULT_ICON;\n }\n\n get iconClass() {\n return `fa-${this.icon}`;\n }\n}\n","// tslint:disable-next-line:max-line-length\nimport { Component, ComponentFactoryResolver, Input, QueryList, ViewChild, ViewChildren, ViewContainerRef, Output, EventEmitter, OnDestroy, HostListener } from '@angular/core';\nimport { RouterLinkActive, Router } from '@angular/router';\nimport { NavigatorIconComponent } from './navigator-icon.component';\nimport { NavigatorNode, ClickOptions } from './navigator-node';\nimport { NavigatorService } from './navigator.service';\nimport { PopoverConfirmComponent } from '../modal/popover-confirm.component';\n\n@Component({\n selector: 'c8y-navigator-node-display',\n templateUrl: './navigator-node.component.html'\n})\nexport class NavigatorNodeComponent implements OnDestroy {\n @ViewChild('icon', { read: ViewContainerRef, static: false }) iconSlot: ViewContainerRef;\n @Input() node: NavigatorNode;\n @Input() isRoot: boolean;\n @ViewChild(RouterLinkActive, {static: false}) routerLinkActive: RouterLinkActive;\n @ViewChildren(NavigatorNodeComponent) childrenNodes: QueryList<NavigatorNodeComponent>;\n @Output() nodeClick: EventEmitter<string> = new EventEmitter();\n @ViewChild(PopoverConfirmComponent, {static: false}) confirm: PopoverConfirmComponent;\n\n parentNode: NavigatorNodeComponent;\n\n private viewInitTimeout;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private navigator: NavigatorService\n ) {}\n\n ngAfterViewInit() {\n this.childrenNodes.forEach((n) => n.parentNode = this);\n this.viewInitTimeout = setTimeout(() => {\n this.updateIcon();\n this.openOnFirstUrl();\n this.expandParentIfActive();\n this.node.confirm = this.confirm;\n });\n }\n\n openOnFirstUrl() {\n if (this.navigator.openOnFirstUrl(this.node) && !this.node.open) {\n this.expandCollapse(true);\n }\n }\n\n get expandTitle() {\n return !this.node.open ? 'Expand' : 'Collapse';\n }\n\n click(from: 'icon' | 'expander' | 'link' = 'link', $event?) {\n let open;\n if (from === 'expander') {\n if ($event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n open = !this.node.open;\n } else {\n open = this.routerLinkActive && this.routerLinkActive.isActive ? true : !this.node.open;\n }\n if (open !== this.node.open) {\n this.expandCollapse(open, false, { [from]: true, $event });\n }\n this.nodeClick.emit(from);\n }\n\n expandCollapse(open, recursive?, forNode: ClickOptions = {}) {\n this.node.open = open;\n // Also close children\n if (recursive) {\n this.childrenNodes.forEach((n) => n.expandCollapse(open, recursive));\n }\n forNode.open = open;\n this.node.click(forNode);\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.viewInitTimeout);\n this.node.destroy();\n }\n\n private expandParentIfActive() {\n if (this.routerLinkActive && this.routerLinkActive.isActive && this.parentNode) {\n this.parentNode.expandCollapse(true);\n }\n }\n\n private updateIcon() {\n if (this.node.iconTemplate) {\n this.updateIconTemplate();\n } else {\n this.updateIconComponent();\n }\n }\n\n private updateIconComponent() {\n let componentType = NavigatorIconComponent;\n if (this.node && this.node.iconComponent) {\n componentType = this.node.iconComponent;\n }\n this.iconSlot.clear();\n const iconComponentFactory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n const componentRef = this.iconSlot.createComponent(iconComponentFactory);\n componentRef.instance.node = this.node;\n }\n\n private updateIconTemplate() {\n this.iconSlot.clear();\n this.iconSlot.createEmbeddedView(this.node.iconTemplate);\n }\n}\n","import { Component, Input, SimpleChanges } from '@angular/core';\nimport { NavigatorNode } from './navigator-node';\nimport { HeaderService } from '../header/public-api';\n\n@Component({\n selector: 'c8y-navigator-outlet, c8y-ui-navigator',\n templateUrl: './navigator-outlet.template.html',\n})\nexport class NavigatorOutletComponent {\n @Input() nodes: NavigatorNode[];\n @Input() open = true;\n\n constructor(private headerService: HeaderService) {}\n\n /**\n * Closes the navigator on click if the window is small.\n */\n collapseNavigator(from: 'icon' | 'expander' | 'link') {\n if (from === 'link' && !this.headerService.largeWidth) {\n this.headerService.closeNavigator();\n }\n }\n\n trackByPathOrLabel(index, node) {\n return node.path ? node.path : node.label;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { CommonModule } from '../common/common.module';\nimport { NavigatorItemComponent } from './navigator-entry.component';\nimport { NavigatorIconComponent } from './navigator-icon.component';\nimport { NavigatorNodeComponent } from './navigator-node.component';\nimport { NavigatorOutletComponent } from './navigator-outlet.component';\nimport { NavigatorService } from './navigator.service';\nimport { ModalModule } from '../modal/modal.module';\n\n/**\n * The angular module definition for the navigator.\n * @exports NavigatorOutletComponent\n * @exports NavigatorItemComponent\n */\n@NgModule({\n declarations: [\n NavigatorOutletComponent,\n NavigatorNodeComponent,\n NavigatorItemComponent,\n NavigatorIconComponent\n ],\n imports: [\n RouterModule,\n CollapseModule.forRoot(),\n CommonModule,\n ModalModule\n ],\n exports: [\n NavigatorOutletComponent,\n NavigatorItemComponent\n ],\n entryComponents: [\n NavigatorIconComponent\n ]\n})\nexport class NavigatorModule { }\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-right-drawer',\n templateUrl: './right-drawer.component.html'\n})\nexport class RightDrawerComponent {\n @Input('quickLinks') set _quickLinks(data: any[]) {\n if (data) {\n this.quickLinks = data.filter(d => d.type === 'quicklink');\n }\n }\n @Input('helpAndSupport') set _helpAndSupport(data: any[]) {\n if (data) {\n this.helpAndSupport = data.filter(d => d.type === 'doc');\n }\n }\n @Input() app: any;\n quickLinks: any[] = [];\n helpAndSupport: any[] = [];\n}\n","import { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { ActionModule } from '../action/action.module';\nimport { BreadcrumbModule } from '../breadcrumb/breadcrumb.module';\nimport { CommonModule } from '../common/common.module';\nimport { SearchModule } from '../search/search.module';\nimport { UserModule } from '../user/user.module';\nimport { AppIconComponent } from './application/app-icon.component';\nimport { AppSwitcherComponent } from './application/app-switcher.component';\nimport { HeaderBarComponent } from './header-bar/header-bar.component';\nimport { HeaderService } from './header.service';\nimport { TitleOutletComponent } from './title/title-outlet.component';\nimport { TitleComponent } from './title/title.component';\nimport { NavigatorModule } from '../navigator/navigator.module';\nimport { RightDrawerComponent } from './right-drawer/right-drawer.component';\n\n/**\n * The angular module definition for the header of the application.\n * @exports HeaderBarComponent\n * @exports TitleComponent\n * @exports TitleOutletComponent\n * @exports AppIconComponent\n * @exports AppSwitcherComponent\n */\n@NgModule({\n declarations: [\n TitleComponent,\n HeaderBarComponent,\n TitleOutletComponent,\n AppIconComponent,\n AppSwitcherComponent,\n RightDrawerComponent\n ],\n imports: [\n BsDropdownModule,\n UserModule,\n SearchModule,\n CommonModule,\n ActionModule,\n BreadcrumbModule,\n NavigatorModule\n ],\n exports: [\n HeaderBarComponent,\n TitleComponent,\n TitleOutletComponent,\n AppIconComponent,\n AppSwitcherComponent,\n RightDrawerComponent\n ]\n})\nexport class HeaderModule {}\n","import { Component, OnInit, Output, Input, EventEmitter } from '@angular/core';\nimport { LoginService } from './login.service';\nimport { PasswordService } from '../authentication/password.service';\nimport { IResetPassword, ICredentials, UserService } from '@c8y/client';\nimport { OptionsService } from '../common/public-api';\nimport { AlertService } from '../alert/public-api';\nimport { LoginViews } from './login.model';\n\n@Component({\n selector: 'c8y-change-password',\n templateUrl: './change-password.component.html',\n styles: []\n})\nexport class ChangePasswordComponent implements OnInit {\n @Input() credentials: ICredentials;\n @Output() onChangeView = new EventEmitter();\n\n passwordPattern = /^[a-zA-Z0-9`~!@#$%^&*()_|+\\-=?;:'\",.<>{}[\\]\\\\/]{8,32}$/;\n isLoading = false;\n model = {\n tenantId: '',\n email: '',\n newPassword: '',\n newPasswordConfirm: '',\n passwordStrengthEnforced: false\n };\n emailReadOnly = false;\n\n private TOKEN_PARAM = 'token';\n private EMAIL_PARAM = 'email';\n\n constructor(\n public loginService: LoginService,\n private users: UserService,\n private passwordStrengthCheckerService: PasswordService,\n private options: OptionsService,\n private alert: AlertService\n ) { }\n\n async ngOnInit() {\n this.model.tenantId = this.loginService.getTenant();\n this.model.email = this.options.get(this.EMAIL_PARAM, '');\n this.emailReadOnly = !!this.model.email;\n this.model.passwordStrengthEnforced = this.loginService.getEnforcePasswordStrength();\n }\n\n async changePassword() {\n const passwordStrengthColor: any = this.passwordStrengthCheckerService.getStrengthColor(\n this.model.newPassword\n );\n const resetPassword: IResetPassword = {\n token: this.credentials.token,\n email: this.model.email,\n newPassword: this.model.newPassword,\n passwordStrength: passwordStrengthColor.passwordStrength\n };\n try {\n this.isLoading = true;\n const { res } = await this.users.resetPassword(resetPassword, this.model.tenantId);\n if (res.status === 200) {\n this.loginService.addSuccessMessage('password_changed');\n this.credentials.token = undefined;\n this.options.set(this.TOKEN_PARAM, undefined);\n this.onChangeView.emit({ view: LoginViews.Credentials });\n }\n } catch (e) {\n this.alert.addServerFailure(e);\n } finally {\n this.loginService.reset();\n this.isLoading = false;\n }\n }\n}\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { LoginService } from './login.service';\nimport { ICredentials } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { AppStateService } from '../common/ui-state.service';\nimport { gettext } from '../i18n/gettext';\nimport { LoginViews } from './login.model';\n\n@Component({\n selector: 'c8y-credentials',\n templateUrl: './credentials.component.html',\n styles: []\n})\nexport class CredentialsComponent implements OnInit {\n @Output() onChangeView = new EventEmitter();\n\n LOGIN_VIEWS = LoginViews;\n model: ICredentials = {};\n isLoading: boolean = false;\n showLoginForm: boolean = false;\n showBasicAuth: boolean = false;\n oauthOptions: any = {};\n\n private readonly PASSWORD_RESET_HEADER_NAME = 'passwordresettoken';\n private readonly NO_PHONE_HEADER_NAME = 'NoPhoneHeader';\n\n constructor(\n public loginService: LoginService,\n public alert: AlertService,\n public ui: AppStateService\n ) {}\n\n ngOnInit() {\n const { oauthOptions, loginMode } = this.loginService;\n this.model.tenant = this.loginService.getTenant();\n this.showLoginForm =\n typeof loginMode.visibleOnLoginPage === 'undefined' || loginMode.visibleOnLoginPage;\n this.showBasicAuth = loginMode.type === 'BASIC';\n this.oauthOptions = oauthOptions;\n }\n\n redirectToOauth() {\n this.loginService.redirectToOauth();\n }\n\n /**\n * Allows to login into the application using basic auth.\n * If successful logged in the client is set in shared/cumulocity.service.ts\n */\n async login() {\n try {\n this.isLoading = true;\n const basicAuth = this.loginService.useBasicAuth(this.model);\n await this.loginService.login(basicAuth, this.model);\n } catch (e) {\n if (e.res && e.res.headers && e.res.headers.get(this.PASSWORD_RESET_HEADER_NAME)) {\n this.handlePasswordReset(e.res);\n } else if (e.res && e.res.status === 401 && /pin/i.test(e.data.message)) {\n this.handleSmsChallenge(e.data.message);\n } else if (e.res && e.res.status === 401 && /TOTP/i.test(e.data.message)) {\n this.handleTotpChallenge(e.data.message);\n } else if (\n e.res &&\n e.res.headers &&\n e.res.headers.get(this.NO_PHONE_HEADER_NAME) &&\n !this.loginService.isSupportUser(this.model)\n ) {\n this.handleNoPhoneNumberProvided();\n } else {\n this.loginService.reset();\n this.alert.addServerFailure(e);\n }\n } finally {\n this.isLoading = false;\n }\n }\n\n private handlePasswordReset(e: any) {\n this.alert.removeLastDanger();\n this.model.token = e.headers.get(this.PASSWORD_RESET_HEADER_NAME);\n this.onChangeView.emit({ view: LoginViews.ChangePassword, credentials: this.model });\n }\n\n private handleTotpChallenge(message) {\n if (/TOTP setup required/i.test(message)) {\n this.onChangeView.emit({ view: LoginViews.TotpSetup, credentials: this.model });\n } else {\n this.onChangeView.emit({ view: LoginViews.TotpChallenge, credentials: this.model });\n }\n }\n\n private handleSmsChallenge(message: string) {\n if (/pin has already been generated/i.test(message)) {\n this.alert.warning(\n gettext(\n 'The verification code was already sent. For a new verification code, please click on the link above.'\n )\n );\n }\n this.alert.removeLastDanger();\n this.onChangeView.emit({ view: LoginViews.SmsChallenge, credentials: this.model });\n }\n\n private handleNoPhoneNumberProvided() {\n this.onChangeView.emit({ view: LoginViews.ProvidePhoneNumber, credentials: this.model });\n this.alert.warning(\n gettext(\n '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 )\n );\n }\n}\n","import { Component, Input, OnInit, HostBinding, HostListener, ViewChild } from '@angular/core';\nimport { ICredentials } from '@c8y/client';\nimport { LoginService } from './login.service';\nimport { OptionsService } from '../common/options.service';\nimport { LoginViews } from './login.model';\nimport { AlertService } from '../alert/alert.service';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-login',\n templateUrl: './login.component.html',\n styles: []\n})\nexport class LoginComponent implements OnInit {\n currentView: LoginViews = LoginViews.None;\n LOGIN_VIEWS = LoginViews;\n\n disabled = false;\n\n @Input() name: string;\n\n credentials: ICredentials = {};\n displayAlerts: boolean = false;\n private TOKEN_PARAM = 'token';\n\n /**\n * Just DI.\n */\n constructor(\n public loginService: LoginService,\n private options: OptionsService,\n private alert: AlertService\n ) {}\n\n ngOnInit() {\n const token = this.getResetPasswordToken();\n if (this.loginService.isFirstLogin) {\n if (!token) {\n this.loginAutomatically();\n } else {\n this.credentials.token = token;\n this.reset();\n }\n }\n this.loginService.isFirstLogin = false;\n }\n\n handleLoginTemplate(event) {\n this.currentView = event.view;\n this.credentials = event.credentials || {};\n }\n\n @HostListener('keyup', ['$event']) onkeyup(event: KeyboardEvent) {\n if (event.key !== 'Enter') {\n this.loginService.cleanMessages();\n }\n }\n\n reset() {\n this.loginService.reset();\n this.setView();\n this.loginService.cleanMessages();\n }\n\n private async loginAutomatically() {\n try {\n await this.loginService.login();\n } catch (e) {\n const loginMode = this.loginService.loginMode.type;\n if (loginMode === 'OAUTH2') {\n this.loginService.redirectToOauth();\n } else {\n this.reset();\n if (loginMode === 'OAUTH2_INTERNAL' && window.location.protocol !== 'https:') {\n this.alert.danger(gettext('Current login mode only supports HTTPS.'));\n } else if (e.res && e.res.status === 403) {\n this.alert.addServerFailure(e);\n }\n }\n }\n }\n\n private setView() {\n if (this.credentials && this.credentials.token) {\n this.handleLoginTemplate({ view: LoginViews.ChangePassword, credentials: this.credentials });\n } else {\n this.handleLoginTemplate({ view: LoginViews.Credentials });\n }\n }\n\n private getResetPasswordToken() {\n const token = this.options.get(this.TOKEN_PARAM);\n if (token) {\n this.options.set(this.TOKEN_PARAM, undefined); // only use once\n }\n return token;\n }\n}\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { UserService } from '@c8y/client';\nimport { LoginService } from './login.service';\nimport { LoginViews } from './login.model';\n\n@Component({\n selector: 'c8y-recover-password',\n templateUrl: './recover-password.component.html',\n styles: []\n})\n\nexport class RecoverPasswordComponent implements OnInit {\n\n @Output() onChangeView = new EventEmitter();\n LOGIN_VIEWS = LoginViews;\n isLoading = false;\n model = {\n email: '',\n tenantId: ''\n };\n\n constructor(\n private users: UserService,\n public loginService: LoginService) {\n }\n\n ngOnInit() {\n this.model.tenantId = this.loginService.getTenant();\n }\n\n async resetPassword() {\n try {\n this.isLoading = true;\n const { res } = await this.users.sendPasswordResetMail(this.model.email, this.model.tenantId);\n if (res.status === 200) {\n this.loginService.addSuccessMessage('password_reset_requested');\n }\n } finally {\n this.loginService.reset();\n this.isLoading = false;\n }\n }\n\n}\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { ICredentials, UserService } from '@c8y/client';\nimport { AlertService } from '../alert/alert.service';\nimport { LoginService } from './login.service';\nimport { LoginViews } from './login.model';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-totp-auth',\n templateUrl: './totp-auth.component.html'\n})\nexport class TotpAuthComponent implements OnInit {\n @Input() credentials: ICredentials;\n @Input() view: LoginViews;\n @Output() onCancel = new EventEmitter();\n LOGIN_VIEWS = LoginViews;\n loading = false;\n hasError = false;\n\n get isSetup() {\n return this.view === LoginViews.TotpSetup;\n }\n\n constructor(\n public loginService: LoginService,\n private userService: UserService,\n private alert: AlertService\n ) {}\n\n /**\n * In case of a setup we need the user to be authorized\n * first.\n */\n async ngOnInit() {\n if (this.view === this.LOGIN_VIEWS.TotpSetup) {\n await this.loginService.switchLoginMode(this.credentials);\n }\n }\n\n async onTotpSuccess(code) {\n try {\n this.loading = true;\n this.hasError = false;\n this.credentials.tfa = code;\n if (this.isSetup) {\n await this.userService.activateTotp();\n }\n await this.loginService.switchLoginMode(this.credentials);\n await this.loginService.verifyAppAccess();\n await this.loginService.authFulfilled();\n } catch (e) {\n this.alert.removeLastDanger();\n if (e.data && e.data.message === 'Access is denied') {\n this.alert.addServerFailure(e);\n }\n if (e.data && e.data.message === 'Authentication failed! : User account is locked') {\n this.alert.addServerFailure(e);\n } else {\n this.hasError = true;\n }\n } finally {\n this.loading = false;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PasswordService } from '../authentication/password.service';\nimport { PasswordStrength } from '@c8y/client';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StrengthValidatorService {\n\n constructor(private passwordService: PasswordService) {\n }\n\n isStrong(password: string): boolean {\n return this.isPasswordGreen(this.passwordService.getStrengthColor(password).passwordStrength);\n }\n\n private isPasswordGreen(strength: PasswordStrength) {\n return strength as PasswordStrength === PasswordStrength.GREEN as PasswordStrength;\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\nimport { StrengthValidatorService } from './strength-validator-service';\n\n@Directive({\n selector: '[passwordStrengthEnforced]',\n providers: [{ provide: NG_VALIDATORS, useExisting: PasswordStrengthValidatorDirective, multi: true }]\n})\nexport class PasswordStrengthValidatorDirective implements Validator {\n\n private forced: boolean;\n\n @Input() set passwordStrengthEnforced(value) {\n this.forced = value;\n }\n\n constructor(\n public passwordService: StrengthValidatorService) {\n }\n\n validate(control: AbstractControl): ValidationErrors | null {\n const strengthFulfilled = this.passwordService.isStrong(control.value || '');\n const enforcementForcedAndNotFulfilled = this.forced && !strengthFulfilled;\n return enforcementForcedAndNotFulfilled ? { passwordStrength: true } : null;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormsModule as C8yFormsModule } from '../forms/public-api';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\nimport { ChangePasswordComponent } from './change-password.component';\nimport { CredentialsComponent } from './credentials.component';\nimport { LoginComponent } from './login.component';\nimport { LoginService } from './login.service';\nimport { RecoverPasswordComponent } from './recover-password.component';\nimport { AuthenticationModule } from '../authentication/authentication.module';\nimport { AlertModule } from '../alert/alert.module';\nimport { TotpAuthComponent } from './totp-auth.component';\nimport { PasswordStrengthValidatorDirective } from './password-strength-validator.directive';\n\n/**\n * The angular module definition for the login.\n * @exports LoginComponent\n */\n@NgModule({\n declarations: [\n LoginComponent,\n RecoverPasswordComponent,\n ChangePasswordComponent,\n CredentialsComponent,\n TotpAuthComponent,\n PasswordStrengthValidatorDirective\n ],\n imports: [\n FormsModule,\n TooltipModule,\n CommonModule,\n AuthenticationModule,\n AlertModule,\n C8yFormsModule\n ],\n exports: [LoginComponent]\n})\nexport class LoginModule {\n static forRoot() {\n return {\n ngModule: LoginModule,\n providers: LoginModule.providers()\n };\n }\n static providers() {\n return [LoginService];\n }\n}\n","import {\n Component,\n ViewChild,\n Input,\n ViewContainerRef,\n AfterContentInit,\n OnDestroy\n} from '@angular/core';\nimport { TabsService } from './tabs.service';\nimport { Tab } from './tab.model';\n\n@Component({\n selector: 'c8y-tab',\n template: '<ng-template #tpl><ng-content></ng-content></ng-template>'\n})\nexport class TabComponent implements AfterContentInit, OnDestroy, Tab {\n @ViewChild('tpl', { static: false }) template: ViewContainerRef;\n @Input() path: string;\n @Input() label: string = '';\n @Input() icon: string;\n @Input() priority: number;\n @Input() orientation: 'horizontal' | 'vertical';\n constructor(private tabs: TabsService) {}\n\n ngAfterContentInit() {\n setTimeout(() => this.tabs.add(this as Tab));\n }\n\n ngOnDestroy() {\n this.tabs.remove(this as Tab);\n }\n}\n","import {\n Component,\n Input,\n HostBinding,\n Renderer2,\n ElementRef,\n OnChanges,\n ViewChild,\n OnDestroy,\n AfterContentInit,\n AfterContentChecked} from '@angular/core';\nimport { debounceTime } from 'rxjs/operators';\nimport { fromEventPattern, fromEvent, merge, Subscription } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { Tab } from './tab.model';\n\n@Component({\n selector: 'c8y-tabs-outlet,c8y-ui-tabs',\n templateUrl: './tabs-outlet.component.html',\n})\nexport class TabsOutletComponent implements OnDestroy, AfterContentInit {\n @Input() tabs: any[] = [];\n @Input() orientation: 'vertical' | 'horizontal' = 'vertical';\n @Input() navigatorOpen = false;\n showLeft: boolean = false;\n showRight: boolean = false;\n @HostBinding('class.navigator-open') get isNavigatorOpen() {\n return this.navigatorOpen;\n }\n @HostBinding('class.page-tabs') get hasTabs() {\n return this.tabs && this.tabs.length;\n }\n @HostBinding('class.page-tabs-horizontal') get isHorizontal() {\n return this.orientation === 'horizontal';\n }\n @HostBinding('class.page-tabs-vertical') get isVertical() {\n return this.orientation !== 'horizontal';\n }\n @ViewChild('container', {read: ElementRef, static: true}) private container: ElementRef;\n @ViewChild('left', {read: ElementRef, static: false}) private leftBtn: ElementRef;\n @ViewChild('right', {read: ElementRef, static: false}) private rightBtn: ElementRef;\n @ViewChild('tabsContainer', {read: ElementRef, static: false}) private tabsContainer: ElementRef;\n private scrollSubscription: Subscription;\n\n constructor(\n private router: Router,\n private renderer: Renderer2,\n private el: ElementRef\n ) {}\n\n ngOnDestroy() {\n if (this.scrollSubscription) {\n this.scrollSubscription.unsubscribe();\n }\n }\n\n ngAfterContentInit() {\n if (this.orientation === 'horizontal') {\n this.scrollSubscribe();\n }\n\n }\n\n isActive(tab: Tab) {\n if (tab && tab.path) {\n return this.router.isActive(tab.path, false);\n } else {\n return false;\n }\n }\n\n navigateTo(path) {\n this.router.navigate([path]);\n }\n\n scroll(direction: 'right' | 'left' = 'right') {\n const { widthScroll, width, scrollLeft } = this.getDimensions();\n const multiplier = direction === 'left' ? -1 : 1;\n\n let targetScroll = scrollLeft + width * multiplier;\n if (targetScroll < 0) {\n targetScroll = 0;\n }\n if (targetScroll > widthScroll - width) {\n targetScroll = widthScroll - width;\n }\n // TODO: we should animate this\n this.container.nativeElement.scrollLeft = targetScroll;\n }\n\n private scrollSubscribe() {\n let unlisten;\n this.scrollSubscription = merge(\n fromEvent(this.container.nativeElement, 'scroll'),\n fromEventPattern(\n (handler: any) => {\n unlisten = this.renderer.listen('window', 'resize', handler);\n },\n () => unlisten()\n )\n ).pipe(\n debounceTime(250)\n ).subscribe(() => this.updateScroll());\n }\n\n private updateScroll() {\n const { widthScroll, width, scrollLeft } = this.getDimensions();\n this.showLeft = !!scrollLeft;\n this.showRight = widthScroll > width + scrollLeft;\n }\n\n private getDimensions() {\n const elTabs = this.tabsContainer.nativeElement;\n const el = this.container.nativeElement;\n const widthScroll = elTabs.scrollWidth;\n const width = el.clientWidth;\n const scrollLeft = el.scrollLeft;\n return { widthScroll, width, scrollLeft };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CommonModule } from '../common/common.module';\nimport { TabComponent } from './tab.component';\nimport { TabsOutletComponent } from './tabs-outlet.component';\nimport { TabsService } from './tabs.service';\n\n@NgModule({\n declarations: [\n TabsOutletComponent,\n TabComponent\n ],\n imports: [\n CommonModule,\n RouterModule.forChild([])\n ],\n exports: [\n TabsOutletComponent,\n TabComponent\n ]\n})\nexport class TabsModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { OptionsService } from '../../common/options.service';\n\n@Component({\n selector: 'c8y-cookie-banner',\n templateUrl: './cookie-banner.template.html'\n})\nexport class CookieBannerComponent implements OnInit {\n readonly storageKey: string = 'acceptCookieNotice';\n readonly acceptValue: string = '1';\n showBanner: boolean;\n settings: { cookieBannerTitle?: string; cookieBannerText: string; policyUrl?: string };\n\n constructor(private options: OptionsService) {}\n\n ngOnInit() {\n this.settings = this.options.get('cookieBanner');\n if (this.settings && this.settings.cookieBannerText && !localStorage.getItem(this.storageKey)) {\n this.showBanner = true;\n }\n }\n\n acceptCookies() {\n localStorage.setItem(this.storageKey, this.acceptValue);\n this.showBanner = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ActionBarModule } from '../action-bar/action-bar.module';\nimport { AlertModule } from '../alert/alert.module';\nimport { HeaderModule } from '../header/header.module';\nimport { LoginModule } from '../login/login.module';\nimport { NavigatorModule } from '../navigator/navigator.module';\nimport { TabsModule } from '../tabs/tabs.module';\nimport { BootstrapComponent } from './bootstrap.component';\nimport { CommonModule } from '../common/common.module';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CookieBannerComponent } from './cookie-banner/cookie-banner.component';\n\n/**\n * The module which allows to bootstrap a custom application.\n * Use it as `bootstrap: []` component in your main app module\n * or as `<c8y-bootstrap>` in your main app.\n */\n@NgModule({\n declarations: [\n BootstrapComponent,\n CookieBannerComponent\n ],\n imports: [\n CommonModule,\n HeaderModule,\n LoginModule,\n RouterModule,\n TabsModule,\n ActionBarModule,\n AlertModule,\n NavigatorModule,\n TooltipModule\n ],\n exports: [\n BootstrapComponent\n ],\n entryComponents: [\n BootstrapComponent\n ]\n})\nexport class BootstrapModule {}\n","import { Component, InjectionToken, Type } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n/**\n * A hook to add dynamic components to the UI (e.g. widgets).\n */\nexport const HOOK_COMPONENTS = new InjectionToken('Hook Dynamic Component');\n\n/**\n * A hook to add dynamic components to the UI (e.g. widgets).\n * @deprecated: Use HOOK_COMPONENTS\n */\nexport const HOOK_COMPONENT = new InjectionToken('Hook Dynamic Component @deprecated');\n\n/**\n * A dynamic component can be defined in a the HOOK_COMPONENTS to display any kind\n * of component dynamically just by referencing it's id. The most common use case is on dashboards,\n * where the `configComponent` is used to define what is displayed on the `component`\n * on the dashboard.\n *\n * To use the component you can use the c8y-dynamic-component.\n *\n * ```\n * <c8y-dynamic-component\n * componentId=\"angular.widget.demo\"\n * [config]=\"{ text: 'Hello world' }\"\n * [mode]=\"editComponent ? 'config' : 'component'\"\n * ></c8y-dynamic-component>\n * ```\n */\nexport interface DynamicComponentDefinition {\n /**\n * Unique serializable id\n */\n id: string;\n /**\n * The component which is used when the component should be displayed (e.g. on a dashboard)\n */\n component: Type<Component>;\n /**\n * The configuration component used when a widget is added or edited.\n */\n configComponent?: Type<Component>;\n /**\n * The label shown for this dynamic component on add widgets\n */\n label: string;\n /**\n * The description shown on add widget\n */\n description: string;\n /**\n * Add any random data, specially to angular.js dashboards.\n * Should be searilzabled to allow to save it to the API.\n */\n data?: any;\n /**\n * An url to an preview image.\n */\n previewImage?: string;\n}\n\n/**\n * Use this interface on any component to define the interchange between\n * config and display component.\n */\nexport interface DynamicComponent {\n /**\n * The configuration which is shared between configuration component and display component.\n * Should be searilzabled to allow to save it to the API.\n */\n config: any;\n /**\n * A reference to the ng1Form on angularjs dashboards to disable/enable the save button.\n * @deprecated: Will not work on Angular-Dashboards (1.6.1.0). Use `ContextServiceDashboard.formDisabled` instead.\n */\n ng1FormRef?: any;\n}\n\n/**\n * An lifecycle hook which is called before an configuration is saved.\n */\nexport interface OnBeforeSave {\n /**\n * Called before a configuration object is saved. The function can be used to manipulate the\n * passed config object or to cancel the saving (return false or Observable<boolean>).\n */\n onBeforeSave(config?: any): boolean | Promise<boolean> | Observable<boolean>;\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { filter, mergeMap, take } from 'rxjs/operators';\nimport { ExtensionPoint, fromFactories } from '../common/extension-hooks';\nimport { StateService } from '../common/state-service.abstract';\nimport {\n DynamicComponentDefinition,\n HOOK_COMPONENT,\n HOOK_COMPONENTS\n} from './dynamic-component.model';\n\ndeclare const __MODE__: string;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService extends StateService\n implements ExtensionPoint<DynamicComponentDefinition> {\n items$: Observable<DynamicComponentDefinition[]>;\n readonly refreshTrigger = new Subject();\n readonly state$ = new BehaviorSubject<Set<DynamicComponentDefinition>>(\n new Set<DynamicComponentDefinition>()\n );\n\n constructor(private injector: Injector, router: Router) {\n super();\n\n this.items$ = fromFactories(\n [() => this.injector.get(HOOK_COMPONENTS, []), () => this.getComponentsViaDeprecatedHook()],\n router,\n false\n );\n this.items$.subscribe(cmps => {\n cmps.forEach(cmp => {\n this.state.add(cmp);\n });\n this.emitNewState();\n });\n }\n\n getComponentsViaDeprecatedHook() {\n const componentsViaDeprecatedHook: DynamicComponentDefinition[] = this.injector.get(\n HOOK_COMPONENT,\n []\n ) as DynamicComponentDefinition[];\n if (\n componentsViaDeprecatedHook &&\n componentsViaDeprecatedHook.length &&\n __MODE__ !== 'production'\n ) {\n console.warn('HOOK_COMPONENT is now deprecated. Use HOOK_COMPONENTS instead.');\n }\n\n return componentsViaDeprecatedHook;\n }\n\n refresh() {\n this.refreshTrigger.next(1);\n }\n\n get state() {\n return this.state$.value;\n }\n\n /**\n * Returns a component by it's id as an observable.\n * @param id The id of the component.\n */\n getById$(id) {\n return this.state$.pipe(\n filter((cmps: Set<DynamicComponentDefinition>) => cmps.size > 0),\n mergeMap((cmps: Set<DynamicComponentDefinition>) =>\n of(Array.from(cmps).find(cmp => cmp.id === id))\n ),\n take(1)\n );\n }\n\n add(component: DynamicComponentDefinition) {\n this.state.add(component);\n this.emitNewState();\n }\n\n remove(component: DynamicComponentDefinition) {\n this.state.delete(component);\n this.emitNewState();\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ComponentFactoryResolver,\n ViewContainerRef,\n ComponentRef\n} from '@angular/core';\nimport {\n DynamicComponent,\n DynamicComponentDefinition,\n OnBeforeSave\n} from './dynamic-component.model';\nimport { DynamicComponentService } from './dynamic-component.service';\nimport { of, isObservable, Observable } from 'rxjs';\nimport { isUndefined } from 'lodash-es';\n\n/**\n * C8y dynamic component.\n * ## Example:\n *\n * register component in HOOK in module:\n * ```typescript\n * import { HOOK_COMPONENT } from '@c8y/ngx-components';\n *\n * @NgModule({\n * ...,\n * providers: [{\n * provide: HOOK_COMPONENT,\n * multi: true,\n * useValue: [{\n * id: 'test-component',\n * label: 'My test component',\n * description: 'this is test component',\n * component: TestComponent\n * }],\n * ...\n * }]\n *\n * ```\n * Showing dynamic component:\n * ```html\n * <c8y-dynamic-component [componentId]=\"'test-component'\" [config]=\"config\"></c8y-dynamic-component>\n * ```\n */\n@Component({\n selector: 'c8y-dynamic-component',\n templateUrl: './dynamic-component.component.html'\n})\nexport class DynamicComponentComponent {\n /**\n * The ID of the registered component. It needs to be a component that is hooked\n * with the HOOK_COMPONENTS extension hook.\n */\n @Input() componentId: string;\n /**\n * The configuration to pass.\n */\n @Input() config: any;\n /**\n * DynamicComponents can have two modes, an edit (config) and an view (component) mode.\n * By default it is shown in the component mode.\n */\n @Input() mode: 'config' | 'component' = 'component';\n /**\n * Disable this to hide the error that is shown if the component was not found.\n */\n @Input() notFoundError = true;\n /**\n * @ignore\n */\n @ViewChild('host', { read: ViewContainerRef, static: true }) host: ViewContainerRef;\n /**\n * @ignore\n */\n error: any;\n /**\n * @ignore\n */\n expandErrorDetails = false;\n private componentRef: ComponentRef<Component>;\n\n /**\n * @ignore only DI\n */\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private dynamicComponentService: DynamicComponentService\n ) {}\n\n /**\n * Calls the dynamic component life cycle hook. Currently only\n * supporting onBeforeSave, a hook which is called before a config component\n * is saved.\n */\n callLifeCycleHooks() {\n return this.callOnBeforeSaveHook();\n }\n\n /**\n * @ignore\n */\n ngOnChanges(): void {\n this.dynamicComponentService\n .getById$(this.componentId)\n .subscribe(cmp => this.loadComponent(cmp));\n }\n\n private loadComponent(dynamicComponent: DynamicComponentDefinition) {\n try {\n this.error = undefined;\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n this.mode === 'component' ? dynamicComponent.component : dynamicComponent.configComponent\n );\n this.host.clear();\n this.componentRef = this.host.createComponent(componentFactory);\n (this.componentRef.instance as DynamicComponent).config = this.config;\n } catch (ex) {\n this.error = ex;\n }\n }\n\n private callOnBeforeSaveHook() {\n if (!this.componentRef) {\n return of(true);\n }\n const hook = (this.componentRef.instance as OnBeforeSave).onBeforeSave;\n if (hook) {\n const result = hook(this.config);\n if (isUndefined(result)) {\n return of(true);\n }\n return isObservable(result) ? result : (of(result) as Observable<boolean>);\n }\n return of(true);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { DynamicComponentComponent } from './dynamic-component.component';\nimport { DynamicComponentService } from './dynamic-component.service';\nimport { I18nModule } from '../i18n/i18n.module';\n\n@NgModule({\n declarations: [DynamicComponentComponent],\n imports: [CommonModule, CollapseModule, RouterModule.forChild([]), I18nModule],\n exports: [DynamicComponentComponent],\n providers: [DynamicComponentService]\n})\nexport class DynamicComponentModule {}\n","import { Component, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'c8y-dashboard-child-action',\n templateUrl: './dashboard-child-action.component.html'\n})\nexport class DashboardChildActionComponent {\n @ViewChild('template', { static: false }) template: any;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'c8y-dashboard-child-title',\n templateUrl: './dashboard-child-title.component.html'\n})\nexport class DashboardChildTitleComponent {}\n","import {\n Component,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n AfterContentInit,\n QueryList,\n forwardRef,\n Output,\n EventEmitter,\n HostListener,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { DashboardChildComponent } from './dashboard-child.component';\nimport { DashboardChange } from './dashboard.model';\n\n/**\n * Displays a CSS grid which is customizable by the customer. You can set\n * `c8y-dashboard-child`-components on it or position any element on it by\n * setting the grid CSS properties. On change (resize, or rearrange) the\n * component emits an change event.\n *\n * ## Example:\n *\n * ```html\n * <c8y-title>Hello from outlet</c8y-title>\n *\n * <c8y-action-bar-item [placement]=\"'right'\">\n * <button class=\"btn btn-link\" (click)=\"addRandom()\"><i class=\"fa fa-plus\"></i> Add random</button>\n * </c8y-action-bar-item>\n * <c8y-action-bar-item [placement]=\"'right'\">\n * <button class=\"btn btn-link\" (click)=\"isFrozen = !isFrozen\">\n * <i [c8yIcon]=\"isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </button>\n * </c8y-action-bar-item>\n *\n * <c8y-dashboard (dashboardChange)=\"dashboardChange($event)\">\n * <c8y-dashboard-child\n * [isFrozen]=\"isFrozen\"\n * title=\"dynamic\"\n * *ngFor=\"let widget of widgets\"\n * #current\n * >\n * x: {{ current.x }}<br />\n * y: {{ current.y }}<br />\n * width: {{ current.width }}<br />\n * height: {{ current.height }}<br />\n * </c8y-dashboard-child>\n * <c8y-dashboard-child\n * #cpWidget\n * [isFrozen]=\"isFrozen\"\n * [x]=\"0\"\n * [y]=\"1\"\n * [width]=\"3\"\n * [height]=\"2\"\n * [data]=\"widget\"\n * [class]=\"'card card-dashboard panel-title-regular panel-content-branded panel-title-overlay'\"\n * >\n * <c8y-dashboard-child-title>\n * <span>World!</span>\n * </c8y-dashboard-child-title>\n * x: {{ cpWidget.x }}<br />\n * y: {{ cpWidget.y }}<br />\n * width: {{ cpWidget.width }}<br />\n * height: {{ cpWidget.height }}<br />\n * </c8y-dashboard-child>\n * <c8y-dashboard-child\n * #cpWidget2\n * [isFrozen]=\"isFrozen\"\n * [x]=\"8\"\n * [y]=\"1\"\n * [width]=\"4\"\n * [height]=\"4\"\n * [class]=\"'card card-dashboard panel-content-dark'\"\n * >\n * <c8y-dashboard-child-title>\n * <span>Hello!</span>\n * </c8y-dashboard-child-title>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"cpWidget2.isFrozen = !cpWidget2.isFrozen; (false)\">\n * <i [c8yIcon]=\"cpWidget2.isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </a>\n * </c8y-dashboard-child-action>\n * x: {{ cpWidget2.x }}<br />\n * y: {{ cpWidget2.y }}<br />\n * width: {{ cpWidget2.width }}<br />\n * height: {{ cpWidget2.height }}<br />\n * </c8y-dashboard-child>\n *\n * <c8y-dashboard-child\n * #cpWidget3\n * [isFrozen]=\"isFrozen\"\n * [x]=\"0\"\n * [y]=\"3\"\n * [width]=\"4\"\n * [height]=\"4\"\n * [class]=\"'card-dashboard panel-content-transparent'\"\n * >\n * <c8y-dashboard-child-title *ngIf=\"showTitle\">\n * <span>Transparent!</span>\n * </c8y-dashboard-child-title>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"showTitle = !showTitle; (false)\">\n * <i [c8yIcon]=\"'heading'\"></i> Hide/show title\n * </a>\n * </c8y-dashboard-child-action>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"cpWidget3.isFrozen = !cpWidget3.isFrozen; (false)\">\n * <i [c8yIcon]=\"cpWidget3.isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </a>\n * </c8y-dashboard-child-action>\n * x: {{ cpWidget3.x }}<br />\n * y: {{ cpWidget3.y }}<br />\n * width: {{ cpWidget3.width }}<br />\n * height: {{ cpWidget3.height }}<br />\n * </c8y-dashboard-child>\n * </c8y-dashboard>\n * ```\n */\n@Component({\n selector: 'c8y-dashboard',\n templateUrl: './dashboard.component.html',\n host: {\n class: 'c8y-grid-dashboard dashboard-grid'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DashboardComponent implements AfterContentInit {\n /**\n * All children in that dashboard.\n */\n @ContentChildren(forwardRef(() => DashboardChildComponent)) children: QueryList<\n DashboardChildComponent\n >;\n\n /**\n * The amount of columns on that dashboard.\n */\n @Input() columns = 12;\n\n /**\n * The spacing between each children in pixel.\n */\n @Input() gap = 12;\n\n /**\n * The amount of rows to dusplay. Set to auto to\n * auto extend the rows.\n */\n @Input() rows: number | 'auto' = 'auto';\n\n /**\n * An event fired if the dashboard was changed.\n */\n @Output() dashboardChange = new EventEmitter<DashboardChange>();\n\n dashboardRect;\n private lastRow = 1;\n private readonly DEFAULT_ROW_SIZE = 68;\n\n /**\n * The current column size.\n */\n get columnSize() {\n return this.dashboardRect.width / this.columns;\n }\n\n /**\n * The current row size.\n */\n get rowSize() {\n return this.rows === 'auto' ? this.DEFAULT_ROW_SIZE : this.calculateRowSize();\n }\n\n /**\n * Returns all positioning styles. Nasty workaround for that issue:\n * https://github.com/angular/angular/issues/9343\n */\n @HostBinding('attr.style')\n get inlineStyle() {\n return this.sanitizer.bypassSecurityTrustStyle(\n `\n -ms-grid-columns: (1fr)[${this.columns}];\n grid-template-columns: repeat(${this.columns}, 1fr);\n ${this.rows !== 'auto' ? `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)[${\n this.rows === 'auto' ? this.lastRow : this.rows\n }];\n margin: -${this.gap}px;\n `\n );\n }\n\n constructor(private element: ElementRef, private sanitizer: DomSanitizer) {}\n\n ngAfterContentInit(): void {\n this.onResize();\n this.getLastRow();\n }\n\n @HostListener('window:resize')\n onResize() {\n this.updateRectSize();\n }\n\n /**\n * Gets the last row\n * (mainly for IE11 which doesn't support grid-auto-rows CSS property)\n */\n getLastRow() {\n let lastRow = 1;\n this.children.forEach(widget => {\n if (lastRow < widget.y + widget.width) {\n lastRow = widget.y + widget.width;\n }\n });\n this.lastRow = lastRow + 1;\n }\n\n /**\n * Updates the current rect size of the dashboard.\n */\n updateRectSize() {\n const ele = this.element.nativeElement as HTMLElement;\n this.dashboardRect = ele.getBoundingClientRect();\n }\n\n emitChange(widget: DashboardChildComponent) {\n this.dashboardChange.emit({ source: widget, children: this.children.toArray() });\n }\n\n private calculateRowSize() {\n return this.dashboardRect.height / (this.rows as number);\n }\n}\n","import { CdkDragMove } from '@angular/cdk/drag-drop';\nimport { sortBy } from 'lodash-es';\nimport { pipe } from 'rxjs';\nimport { distinctUntilChanged, expand, filter, map, tap } from 'rxjs/operators';\nimport { DashboardComponent } from './dashboard.component';\nimport {\n DashboardChildDimension,\n DashboardChildResizeDimension,\n DashboardChildArrangement\n} from './dashboard.model';\nimport { DashboardChildComponent } from './dashboard-child.component';\n\nexport class DashboardChildChange {\n child: DashboardChildComponent;\n children: DashboardChildComponent[];\n private dashboard: DashboardComponent;\n\n private readonly MIN_WIDTH = 2;\n private MIN_HEIGHT = 1;\n private readonly PIXEL_SIZE_THRESHOLD = 10;\n\n private diffX = 0;\n private diffY = 0;\n\n constructor(childToChange: DashboardChildComponent) {\n this.dashboard = childToChange.dashboard;\n this.children = childToChange.dashboard.children\n ? childToChange.dashboard.children.filter(child => childToChange !== child)\n : [];\n this.child = childToChange;\n }\n\n get resize$() {\n return this.child.dragSource.moved.pipe(\n map(move => this.getPixelSize(move)),\n tap(resizeDimension => this.setPixelSize(resizeDimension)),\n map(resizeDimension => this.getDimensionSize(resizeDimension)),\n distinctUntilChanged(\n (prev, next) => prev.width === next.width && prev.height === next.height\n ),\n map(dimension => this.setDimension(dimension)),\n this.arrangePipe()\n );\n }\n\n get drag$() {\n return this.child.dragSource.moved.pipe(\n map(move => this.getDimensionPosition(move)),\n filter(\n dimension =>\n dimension.x >= 0 &&\n dimension.x <= this.dashboard.columns - this.child.width &&\n dimension.y >= 0\n ),\n distinctUntilChanged((prev, next) => prev.x === next.x && prev.y === next.y),\n this.arrangePipe()\n );\n }\n\n findFreeDimension() {\n let y = -1;\n let x = 0;\n let found = false;\n const { width, height } = this.child;\n if (width > this.dashboard.columns) {\n throw new Error('The child does not fit on the current dashboard.');\n }\n do {\n x = 0;\n y++;\n while (x + width <= this.dashboard.columns) {\n if (this.getCollided({ x, y, width, height }).length === 0) {\n found = true;\n break;\n }\n x++;\n }\n } while (!found);\n return { x, y, width, height } as DashboardChildDimension;\n }\n\n collapseUpAll(): void {\n return sortBy([this.child, ...this.children], ['y']).forEach(w => {\n const ds = new DashboardChildChange(w);\n const newPosition = ds.collapseUp(w);\n ds.setDimension(newPosition);\n });\n }\n\n arrangeAll(arrange: DashboardChildArrangement) {\n const { current, scan, spacing, origin } = arrange;\n const collided = this.getCollided(current, sortBy(scan, ['y']));\n return collided.map(child => {\n const ds = new DashboardChildChange(child);\n ds.setDimension({ ...child, y: spacing });\n return {\n current: child,\n scan: scan.filter(w => w !== child),\n spacing: child.y + child.height,\n origin\n };\n });\n }\n\n private arrangePipe() {\n return pipe(\n map(\n (dimension: DashboardChildDimension) =>\n ({\n current: dimension,\n scan: this.children,\n spacing: dimension.y + dimension.height,\n origin: { ...dimension }\n } as DashboardChildArrangement)\n ),\n expand((dimensions: DashboardChildArrangement) => this.arrangeAll(dimensions)),\n map(({ origin }) => origin),\n map(dimension => this.setDimension(dimension, true)),\n tap(() => this.collapseUpAll()),\n tap(() => this.dashboard.getLastRow())\n );\n }\n\n private collapseUp(dimension: DashboardChildDimension) {\n let { y } = dimension;\n while (y > 0) {\n if (this.getCollided({ ...dimension, y: y - 1 }).length !== 0) {\n break;\n }\n y--;\n }\n return { ...dimension, y };\n }\n\n private setDimension(dimension: DashboardChildDimension, notIfColliding = false) {\n if (notIfColliding && this.getCollided(dimension).length > 0) {\n return;\n }\n\n this.child.x = dimension.x;\n this.child.y = dimension.y;\n if (\n dimension.width >= this.MIN_WIDTH &&\n dimension.x + dimension.width <= this.dashboard.columns\n ) {\n this.child.width = dimension.width;\n } else if (dimension.width < this.MIN_WIDTH) {\n dimension.width = this.MIN_WIDTH;\n } else {\n dimension.width = this.dashboard.columns - dimension.x;\n }\n if (dimension.height >= this.MIN_HEIGHT) {\n this.child.height = dimension.height;\n } else {\n dimension.height = this.MIN_WIDTH;\n }\n return dimension;\n }\n\n private setPixelSize({ width, height }) {\n if (width >= this.dashboard.columnSize * this.MIN_WIDTH - this.dashboard.gap) {\n this.child.pxWidth = width + this.PIXEL_SIZE_THRESHOLD;\n }\n if (height >= this.dashboard.rowSize * this.MIN_HEIGHT - this.dashboard.gap) {\n this.child.pxHeight = height + this.PIXEL_SIZE_THRESHOLD;\n }\n }\n\n private getPixelSize(moveEvent: CdkDragMove) {\n const draggedElement = moveEvent.source.element.nativeElement.parentNode as HTMLElement;\n if (!this.diffX) {\n const rect = draggedElement.getBoundingClientRect();\n this.diffX = rect.left;\n this.diffY = rect.top;\n }\n const { x, y } = moveEvent.pointerPosition;\n const width = Math.round(x - this.diffX);\n const height = Math.round(y - this.diffY);\n return { width, height, pointer: { x, y } } as DashboardChildResizeDimension;\n }\n\n private getDimensionSize(resizePosition: DashboardChildResizeDimension) {\n const { x, y } = this.child;\n const ds = this.dashboard.dashboardRect;\n const column = this.dashboard.columnSize;\n const row = this.dashboard.rowSize + this.dashboard.gap;\n const width =\n Math.round((resizePosition.pointer.x - ds.left + this.dashboard.gap) / column) - x;\n const height = Math.round((resizePosition.pointer.y - ds.top + this.dashboard.gap) / row) - y;\n return { x, y, width, height } as DashboardChildDimension;\n }\n\n private getDimensionPosition(moveEvent: CdkDragMove) {\n const draggedElement = moveEvent.source.element.nativeElement.nextElementSibling;\n if (!this.diffX) {\n const rect = draggedElement.getBoundingClientRect();\n this.diffX = moveEvent.pointerPosition.x - rect.left;\n this.diffY = moveEvent.pointerPosition.y - rect.top;\n }\n\n const left = moveEvent.pointerPosition.x - this.diffX;\n const top = moveEvent.pointerPosition.y - this.diffY;\n const { width, height } = this.child;\n const ds = this.dashboard.dashboardRect;\n const column = this.dashboard.columnSize;\n const row = this.dashboard.rowSize + this.dashboard.gap / 2;\n const x = Math.round((left - ds.left) / column);\n const y = Math.round((top - ds.top) / row);\n return { x, y, width, height } as DashboardChildDimension;\n }\n\n private doesCollide(a: DashboardChildDimension, b: DashboardChildDimension) {\n if (b.x === undefined) {\n return false;\n }\n return !(\n a.y + a.height - 1 < b.y ||\n a.y > b.y + b.height - 1 ||\n a.x + a.width - 1 < b.x ||\n a.x > b.x + b.width - 1\n );\n }\n\n private getCollided(currentDimension: DashboardChildDimension, dimensions = this.children) {\n const collided = dimensions.filter(dimension => this.doesCollide(currentDimension, dimension));\n return collided;\n }\n}\n","import { CdkDrag, CdkDragEnd, CdkDragStart } from '@angular/cdk/drag-drop';\nimport {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n ContentChildren,\n Output,\n EventEmitter,\n ElementRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Subscription } from 'rxjs';\nimport { DashboardComponent } from './dashboard.component';\nimport { DashboardChildDimension, Widget } from './dashboard.model';\nimport { DashboardChildChange } from './dashboard-child-change';\nimport { DashboardChildActionComponent } from './dashboard-child-action.component';\n\n/**\n * A dashboard child allows to position elements\n * correctly on a grid. The user can then resize and\n * rearrange the elements, as long as they are not `frozen`.\n *\n * By setting `c8y-dashboard-child-actions` and\n * `c8y-dashboard-child-title` on the element you can add\n * custom actions or a custom title to the current child.\n *\n * By adding the correct branded classes, you can define\n * the look and feel of the child. By default it is displayed\n * as a card.\n *\n * Example:\n *\n * ```html\n * <c8y-dashboard-child\n * #cpWidget3\n * [isFrozen]=\"isFrozen\"\n * [x]=\"0\"\n * [y]=\"3\"\n * [width]=\"4\"\n * [height]=\"4\"\n * [class]=\"'card-dashboard panel-content-transparent'\"\n * >\n * <c8y-dashboard-child-title *ngIf=\"showTitle\">\n * <span>Transparent!</span>\n * </c8y-dashboard-child-title>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"showTitle = !showTitle; (false)\">\n * <i [c8yIcon]=\"'heading'\"></i> Hide/show title\n * </a>\n * </c8y-dashboard-child-action>\n * <c8y-dashboard-child-action>\n * <a href=\"\" (click)=\"cpWidget3.isFrozen = !cpWidget3.isFrozen; (false)\">\n * <i [c8yIcon]=\"cpWidget3.isFrozen ? 'lock' : 'unlock'\"></i> Toggle freeze\n * </a>\n * </c8y-dashboard-child-action>\n * x: {{ cpWidget3.x }}<br />\n * y: {{ cpWidget3.y }}<br />\n * width: {{ cpWidget3.width }}<br />\n * height: {{ cpWidget3.height }}<br />\n * </c8y-dashboard-child>\n * ```\n */\n@Component({\n selector: 'c8y-dashboard-child',\n templateUrl: './dashboard-child.component.html',\n host: {\n class: 'dashboard-grid-child'\n }\n})\nexport class DashboardChildComponent implements DashboardChildDimension {\n @ContentChildren(DashboardChildActionComponent) actions = [];\n dragSource: CdkDrag;\n isResize = false;\n isDragging = false;\n klasses = {};\n\n _pxWidth = '100%';\n _pxHeight = '100%';\n\n /**\n * The x position of the child.\n */\n @Input() x;\n\n /**\n * The y position of the child.\n */\n @Input() y;\n\n /**\n * The width of the component in grid-columns.\n */\n @Input() width = 1;\n\n /**\n * The height of the component in grid-rows.\n */\n @Input() height = 1;\n\n /**\n * The data object can be used as a dataTransfer object for events of the child.\n */\n @Input() data: Widget | any;\n\n /**\n * The margin of the child in pixel.\n */\n @Input() margin = 12;\n\n /**\n * If a dashboard is frozen, all children cannot be moved\n * or resized.\n */\n @Input() isFrozen = false;\n\n /**\n * The child content is initialized, as soon it is scrolled into viewport\n */\n @Input() useIntersection = false;\n\n /**\n * An event fired if a child change is started (dragging or resizing)\n */\n @Output() changeStart = new EventEmitter<DashboardChildComponent>();\n\n /**\n * An event fired if a child change is ended\n */\n @Output() changeEnd = new EventEmitter<DashboardChildComponent>();\n\n /**\n * All classes added to this child\n */\n @Input()\n class: string[] | { [key: string]: boolean } = {};\n\n /**\n * Updates the pixel width of the child (used for resizing)\n */\n set pxWidth(value) {\n this._pxWidth = `${value}px`;\n }\n\n /**\n * Updates the pixel height of the child (used for resizing)\n */\n set pxHeight(value) {\n this._pxHeight = `${value}px`;\n }\n\n /**\n * An indicator if the child is intersected (that mean visible for the user)\n */\n intersected = false;\n\n /**\n * nasty workaround for that issue:\n * https://github.com/angular/angular/issues/9343\n */\n @HostBinding('attr.style')\n get inlineStyle() {\n 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 order: ${this.getOrder()};\n `);\n }\n\n /**\n * The observable subscription which is listen to\n * on changes (drag or resize).\n */\n changeSubscription: Subscription;\n\n constructor(\n @Inject(forwardRef(() => DashboardComponent)) public dashboard: DashboardComponent,\n private sanitizer: DomSanitizer,\n private element: ElementRef\n ) {}\n\n ngOnChanges(): void {\n this.klasses = {\n card: true,\n 'card-dashboard': true,\n disabled: this.isFrozen,\n 'on-resize': this.isResize,\n ...this.class\n };\n }\n\n ngOnInit(): void {\n if (this.x === undefined || this.y === undefined) {\n setTimeout(() => this.setDynamicDimension());\n }\n if (this.useIntersection && 'IntersectionObserver' in window) {\n const intersectionObserver = new IntersectionObserver(\n event => (this.intersected = this.childInView(event[0], intersectionObserver))\n );\n intersectionObserver.observe(this.element.nativeElement);\n } else {\n this.intersected = true;\n }\n }\n\n setDynamicDimension() {\n const ds = new DashboardChildChange(this);\n const { x, y } = ds.findFreeDimension();\n this.x = x;\n this.y = y;\n }\n\n resizeStarted($event: CdkDragStart) {\n this.isResize = true;\n this.dashboard.updateRectSize();\n this.dragSource = $event.source;\n const positioning = new DashboardChildChange(this);\n this.changeSubscription = positioning.resize$.subscribe();\n this.changeStart.emit(this);\n this.ngOnChanges();\n }\n\n dragStarted($event: CdkDragStart) {\n this.isDragging = true;\n this.dashboard.updateRectSize();\n this.dragSource = $event.source;\n const positioning = new DashboardChildChange(this);\n this.changeSubscription = positioning.drag$.subscribe();\n this.changeStart.emit(this);\n }\n\n reset($event?: CdkDragEnd) {\n this.isResize = false;\n this.isDragging = false;\n this._pxWidth = '100%';\n this._pxHeight = '100%';\n this.ngOnChanges();\n if ($event) {\n $event.source.reset();\n }\n if (this.changeSubscription) {\n this.changeSubscription.unsubscribe();\n this.dashboard.emitChange(this);\n this.changeEnd.emit(this);\n }\n }\n\n private getOrder() {\n return `${Math.round((this.y + (this.x + 1) / 100) * 100)}`;\n }\n\n private childInView(event, observer) {\n if (event.isIntersecting) {\n observer.unobserve(event.target);\n return true;\n }\n return false;\n }\n}\n","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\nimport { DashboardSettings, Widget, WidgetChange, DashboardChange } from './dashboard.model';\nimport { DashboardComponent } from './dashboard.component';\n\n@Component({\n selector: 'c8y-widgets-dashboard',\n templateUrl: './widgets-dashboard.component.html',\n host: {\n style: `\n display: block;\n `,\n class: 'dashboard c8y-grid-dashboard'\n }\n})\nexport class WidgetsDashboardComponent {\n @Input()\n widgets: Widget[];\n\n @Input()\n context: any;\n\n @Input()\n contextDashboard: any;\n\n @Input('settings')\n set _settings(settings: Partial<DashboardSettings>) {\n this.settings = { ...this.settings, ...settings };\n }\n settings: DashboardSettings = {\n isFrozen: false,\n isDisabled: false,\n widgetMargin: 12,\n translateWidgetTitle: false,\n defaultHeight: 4,\n defaultWidth: 4,\n allowFullscreen: false,\n canDelete: true,\n isLoading: false,\n };\n\n @Output()\n onAddWidget: EventEmitter<DashboardComponent> = new EventEmitter();\n\n @Output()\n onEditWidget: EventEmitter<WidgetChange> = new EventEmitter();\n\n @Output()\n onDeleteWidget: EventEmitter<WidgetChange> = new EventEmitter();\n\n @Output()\n onChangeDashboard: EventEmitter<DashboardChange> = new EventEmitter();\n\n @Output()\n onEditDashboard: EventEmitter<DashboardComponent> = new EventEmitter();\n\n @Output()\n onDeleteDashboard: EventEmitter<DashboardComponent> = new EventEmitter();\n\n @Output()\n onFreeze: EventEmitter<DashboardSettings> = new EventEmitter();\n\n @Output()\n onChangeStart: EventEmitter<WidgetChange> = new EventEmitter();\n\n @Output()\n onChangeEnd: EventEmitter<WidgetChange> = new EventEmitter();\n\n toggleFullscreen() {\n const elem = document.body as any;\n const doc = document as any;\n if (!this.fullScreen()) {\n if (elem.requestFullscreen) {\n elem.requestFullscreen();\n } else if (elem.msRequestFullscreen) {\n elem.msRequestFullscreen();\n } else if (elem.mozRequestFullScreen) {\n elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) {\n elem.webkitRequestFullscreen((Element as any).ALLOW_KEYBOARD_INPUT);\n }\n } else if (doc.exitFullscreen) {\n doc.exitFullscreen();\n } else if (doc.msExitFullscreen) {\n doc.msExitFullscreen();\n } else if (doc.mozCancelFullScreen) {\n doc.mozCancelFullScreen();\n } else if (doc.webkitExitFullscreen) {\n doc.webkitExitFullscreen();\n }\n }\n\n fullScreen() {\n const doc: any = document;\n return !!(\n doc.fullscreenElement ||\n doc.mozFullScreenElement ||\n doc.webkitFullscreenElement ||\n doc.msFullscreenElement\n );\n }\n}\n","import { Directive, Input, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[c8y-guide-href]'\n})\nexport class GuideHrefDirective {\n @Input('c8y-guide-href')\n c8yGuideHref;\n\n private htmlAnchor: HTMLAnchorElement;\n\n set baseHref(href) {\n this.htmlAnchor.href = `${href}/${this.c8yGuideHref}`;\n }\n\n constructor(private elementRef: ElementRef) {\n this.htmlAnchor = this.elementRef.nativeElement as HTMLAnchorElement;\n if (!this.htmlAnchor.hasAttribute('target')) {\n this.htmlAnchor.setAttribute('target', '_blank');\n }\n }\n}\n","import {\n Component,\n OnInit,\n ContentChildren,\n QueryList,\n ContentChild,\n AfterContentInit,\n ElementRef,\n Renderer2, OnDestroy\n} from '@angular/core';\nimport { GuideHrefDirective } from './guide-href.directive';\nimport { DocsService } from './docs.service';\nimport { ReplaySubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ForceHtmlTranslateDirective } from '../i18n/force-html-translate.directive';\n\n@Component({\n selector: '[c8y-guide-docs]',\n templateUrl: './guide-docs.component.html'\n})\nexport class GuideDocsComponent implements OnInit, AfterContentInit, OnDestroy {\n baseUrl: string;\n @ContentChildren(GuideHrefDirective, { descendants: true }) links: QueryList<GuideHrefDirective>;\n\n /**\n * Provides access to translate directive, so it is possible to adjust anchor html tags, after\n * content is translated.\n */\n @ContentChild(ForceHtmlTranslateDirective, { static: false }) translateDirective;\n\n private destroyed$: ReplaySubject<boolean> = new ReplaySubject(1);\n\n constructor(private docs: DocsService, private el: ElementRef, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.baseUrl = this.docs.getBaseUrl();\n }\n\n /**\n * After content is initialized we subscribe for translation events, then we are able to modify\n * anchor just as C8yGuideHrefDirective does.\n */\n ngAfterContentInit() {\n if (this.translateDirective) {\n this.translateDirective.htmlUpdateEvent\n .pipe(takeUntil(this.destroyed$))\n .subscribe(() => {\n this.replaceAnchorAttributes();\n });\n } else {\n this.replaceAnchorAttributes();\n }\n }\n\n /**\n * Find and modify anchor elements\n */\n replaceAnchorAttributes() {\n const anchors = this.findGuideAnchors(this.el.nativeElement);\n anchors.forEach(a => {\n const guideHref = `${this.baseUrl}/${a.getAttribute('c8y-guide-href')}`;\n this.renderer.setAttribute(a, 'href', guideHref);\n if (!a.hasAttribute('target')) {\n this.renderer.setAttribute(a, 'target', '_blank');\n }\n });\n }\n\n /**\n * Recursive function, returns array of Anchor elements inside HTMLElement.\n */\n findGuideAnchors(el: HTMLElement): HTMLElement[] {\n const isAnchor = () => el.nodeName === 'A';\n const hasGuideHrefAttr = () => !!el.attributes.getNamedItem('c8y-guide-href');\n const hasChildren = () => el.childNodes && el.childNodes.length > 0;\n\n let result = [];\n\n if (isAnchor() && hasGuideHrefAttr()) {\n result.push(el);\n } else if (hasChildren()) {\n el.childNodes.forEach((node: HTMLElement) => {\n const searchResult = this.findGuideAnchors(node);\n if (searchResult) {\n result = [...result, ...searchResult];\n }\n });\n }\n return result;\n }\n\n ngAfterViewInit(): void {\n this.links.forEach(guide => {\n guide.baseHref = this.baseUrl;\n });\n }\n\n ngOnDestroy() {\n this.destroyed$.next(true);\n this.destroyed$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DocsService } from './docs.service';\nimport { GuideHrefDirective } from './guide-href.directive';\nimport { GuideDocsComponent } from './guide-docs.component';\n\n@NgModule({\n declarations: [\n GuideHrefDirective,\n GuideDocsComponent\n ],\n imports: [CommonModule],\n exports: [\n GuideHrefDirective,\n GuideDocsComponent\n ],\n providers: [DocsService],\n})\nexport class DocsModule {}\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { ActionBarModule } from '../action-bar/action-bar.module';\nimport { CommonModule } from '../common/common.module';\nimport { DynamicComponentModule } from '../dynamic-component/dynamic-component.module';\nimport { DashboardChildActionComponent } from './dashboard-child-action.component';\nimport { DashboardChildTitleComponent } from './dashboard-child-title.component';\nimport { DashboardChildComponent } from './dashboard-child.component';\nimport { DashboardComponent } from './dashboard.component';\nimport { WidgetsDashboardComponent } from './widgets-dashboard.component';\nimport { HeaderModule } from '../header/header.module';\nimport { DocsModule } from '../docs/docs.module';\n\n@NgModule({\n declarations: [\n DashboardChildComponent,\n DashboardComponent,\n DashboardChildTitleComponent,\n DashboardChildActionComponent,\n WidgetsDashboardComponent\n ],\n imports: [\n CommonModule,\n ActionBarModule,\n DynamicComponentModule,\n DragDropModule,\n BsDropdownModule.forRoot(),\n HeaderModule,\n DocsModule\n ],\n exports: [\n DashboardComponent,\n DashboardChildComponent,\n DashboardChildTitleComponent,\n DashboardChildActionComponent,\n WidgetsDashboardComponent\n ]\n})\nexport class DashboardModule {}\n","/* tslint:disable:max-classes-per-file */\n\nimport { Directive, TemplateRef, Type } from '@angular/core';\n\nimport { Column } from '../data-grid.model';\n\nexport interface CellRendererDef {\n template: TemplateRef<any>;\n}\n\nexport interface CellRendererSpec {\n renderer: TemplateRef<CellRendererContext> | Type<any>;\n context: CellRendererContext;\n}\n\nexport class CellRendererContext {\n value: any;\n item?: any;\n property: Column;\n}\n\n@Directive({ selector: '[c8yCellRendererDef]' })\nexport class CellRendererDefDirective implements CellRendererDef {\n constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[c8yHeaderCellRendererDef]' })\nexport class HeaderCellRendererDefDirective implements CellRendererDef {\n constructor(public template: TemplateRef<any>) {}\n}\n","/* tslint:disable:max-classes-per-file */\n\nimport { Directive, TemplateRef, Type } from '@angular/core';\nimport { Column, FilterPredicateFunction } from '../data-grid.model';\n\nexport interface FilteringFormRendererSpec {\n renderer: TemplateRef<FilteringFormRendererContext> | Type<any>;\n context: FilteringFormRendererContext;\n}\n\nexport class FilteringFormRendererContext {\n property: Column;\n applyFilter: (filteringModifier: FilteringModifier) => void;\n resetFilter: () => void;\n}\n\nexport interface FilteringModifier {\n filterPredicate?: string | FilterPredicateFunction;\n externalFilterQuery?: string | object;\n}\n\n@Directive({ selector: '[c8yFilteringFormRendererDef]' })\nexport class FilteringFormRendererDefDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { ContentChild, Directive, Input } from '@angular/core';\n\nimport { CellRendererDefDirective, HeaderCellRendererDefDirective } from './cell-renderer';\nimport { FilteringFormRendererDefDirective } from './filtering-form-renderer';\n\n@Directive({ selector: 'c8y-column' })\nexport class ColumnDirective {\n @Input() name: string;\n\n @ContentChild(CellRendererDefDirective, { static: false })\n cellRendererDef: CellRendererDefDirective;\n\n @ContentChild(HeaderCellRendererDefDirective, { static: false })\n headerCellRendererDef: HeaderCellRendererDefDirective;\n\n @ContentChild(FilteringFormRendererDefDirective, { static: false })\n filteringFormRendererDef: FilteringFormRendererDefDirective;\n}\n","import { Type } from '@angular/core';\nimport { IResultList } from '@c8y/client';\n\n/*\n * For reference: the structure of current device column-related objects.\n * TODO: Can be removed when \"All devices\" is fully migrated.\n *\n * Services involved:\n * - c8yFilteringSortingColumns\n * - c8yFilteringSortingInventoryQueries\n * - c8yDeviceListColumns\n * - c8yFilteringSortingCollections?? -> for other tables in tenant/cell ID usage statistics feature\n *\n * Components involved:\n * - c8yFilteredSortedList -> this needs to be gravely adapted\n *\n * States saved in user preferences:\n * - Columns config (ALL_DEVICES_COLUMNS_CONFIG_USER_PREFERENCES_KEY)\n * - Columns meta (ALL_DEVICES_COLUMNS_META_USER_PREFERENCES_KEY_PREFIX)\n *\n * States saved in dynamic group object:\n * - Columns config (COLUMNS_CONFIG_FRAGMENT)\n * - Columns meta (COLUMNS_META_FRAGMENT)\n * - Query string (QUERY_STRING_FRAGMENT)\n *\n * TO-FUTURE-SELF note:\n * - `col.config.filtering` and `col.config.sorting` (the models) populate\n * `col.filtering` and `col.sorting` (the views).\n * - `getFilter` can return a query object (for server-side filtering) or\n * a filter function (for server-side filtering).\n */\ninterface DeviceColumn {\n name: string;\n header: string;\n config: {\n filtering: object;\n sorting: {\n order: number;\n };\n override: DeviceColumn;\n };\n cell: {\n class: string;\n innerClass: string;\n scopeExtensions: object;\n template: string;\n style: object;\n };\n filtering: {\n form: object[];\n schema: {\n type: string;\n properties: {\n type: string;\n [key: string]: any;\n };\n };\n getFilter(filteringModel: object): object | FilterFunction;\n };\n sorting: {\n path?: string;\n paths?: string;\n };\n meta: {\n custom: boolean;\n key: string;\n headerName: string;\n fragmentPath: string;\n active: boolean;\n filteringMode: 'EQUALITY' | 'EXISTENCE';\n };\n}\n\ntype FilterFunction = (item: object) => boolean;\n\nexport interface DataGrid {\n columns: Column[];\n rows: Row[];\n pagination: Pagination;\n serverSideDataCallback: ServerSideDataCallback;\n selectable: boolean;\n selectionPrimaryKey: string;\n displayOptions: DisplayOptions;\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[];\n}\n\n/*\n * Column\n */\nexport interface Column {\n name: string | SpecialColumnName;\n header?: string;\n path?: string;\n visible?: boolean;\n positionFixed?: boolean;\n\n /*\n * Cosmetics\n */\n dataType?: ColumnDataType;\n gridTrackSize?: string;\n headerCSSClassName?: string | string[];\n cellCSSClassName?: string | string[];\n\n /*\n * Sorting-Filtering\n */\n sortable?: boolean;\n sortOrder?: SortOrder;\n\n filterable?: boolean;\n filterPredicate?: string | FilterPredicateFunction;\n externalFilterQuery?: any;\n\n /*\n * Custom renderer\n */\n cellRendererComponent?: Type<any>;\n headerCellRendererComponent?: Type<any>;\n filteringFormRendererComponent?: Type<any>;\n}\n\nexport const enum SpecialColumnName {\n Checkbox = 'checkbox',\n Actions = 'actions'\n}\n\nexport const enum ColumnDataType {\n Icon = 'icon',\n Numeric = 'numeric',\n TextShort = 'text-short',\n TextLong = 'text-long'\n}\n\nexport const enum ColumnDataRecordClassName {\n Icon = 'data-record-icon',\n Header = 'data-record-header',\n Default = ''\n}\n\nexport const minColumnGridTrackSize = 80;\n\nexport const ratiosByColumnTypes = {\n icon: 1,\n numeric: 1,\n 'text-short': 1.67,\n 'text-long': 3.33\n};\n\nexport type SortOrder = 'asc' | 'desc' | '';\n\nexport type FilterPredicateFunction = (item: object, path: string) => boolean;\n\nexport enum FilteringActionType {\n ApplyFilter = 'APPLY_FILTER',\n ResetFilter = 'RESET_FILTER'\n}\n\nexport interface Row {\n id: string;\n [key: string]: any;\n}\n\nexport interface Pagination {\n currentPage: number;\n nextPage?: number;\n pageSize: number;\n}\n\nexport type ServerSideDataCallback = (\n dataSourceModifier: DataSourceModifier\n) => ServerSideDataResult;\nexport interface DataSourceModifier {\n columns: Column[];\n searchText: string;\n pagination: Pagination;\n selection: {\n enabled: boolean;\n primaryKey: string;\n };\n}\n\n/**\n * Describes result from server with data and additional statistics.\n */\nexport type ServerSideDataResult = IResultList<object> & {\n /** The real grand total number of items (the whole dataset). */\n size: number;\n\n /** The number of items after filtering applied to the whole dataset (subset). */\n filteredSize: number;\n\n /** The list of ids of all filtered items (subset). */\n filteredDataIds?: string[];\n};\n\nexport interface DataSourceStats {\n /** The real grand total number of items (the whole dataset). */\n size: number;\n\n /** The number of items after filtering applied to the whole dataset (subset). */\n filteredSize: number;\n\n /** The number of the current page. */\n currentPage: number;\n\n /** The number of the next page. */\n nextPage?: number;\n\n /** The number of items currently shown in the list view, a.k.a. current page (what the user sees on screen). */\n currentPageSize: number;\n\n /** The number of items on the first page. */\n firstPageSize: number;\n}\n\nexport interface DisplayOptions {\n striped: boolean;\n bordered: boolean;\n gridHeader: boolean;\n}\n\nexport interface ActionControl {\n type: BuiltInActionType | string;\n text?: string;\n icon?: string;\n // tslint:disable-next-line:ban-types\n callback: ((item: Row, reload: () => void) => void) | Function;\n [key: string]: any;\n}\n\nexport interface BulkActionControl extends ActionControl {\n callback(selectedItemIds: string[], reload: () => void): void;\n}\n\nexport const enum BuiltInActionType {\n Edit = 'EDIT',\n Delete = 'DELETE',\n Export = 'EXPORT'\n}\n","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { IResultList } from '@c8y/client';\nimport { chunk, flow, get, isNil, mapValues, omitBy, orderBy, pick } from 'lodash-es';\nimport { BehaviorSubject, defer, from, isObservable, Observable, of, Subject } from 'rxjs';\nimport { catchError, finalize, map, switchMap, tap } from 'rxjs/operators';\nimport { Column, DataSourceStats, ServerSideDataResult } from './data-grid.model';\n\nexport class GridDataSource implements DataSource<object> {\n loading$: Observable<boolean>;\n data$: Observable<object[]>;\n stats$: Observable<DataSourceStats>;\n selection$: Observable<any>;\n resultList$: Observable<IResultList<object>>;\n\n private loadingSubject = new BehaviorSubject<boolean>(false);\n private dataSourceSubject = new BehaviorSubject<object[]>([]);\n private dataStatsSubject = new BehaviorSubject<DataSourceStats>({\n size: 0,\n filteredSize: 0,\n currentPage: 0,\n currentPageSize: 0,\n firstPageSize: 0\n });\n private dataSelectionSubject = new BehaviorSubject<any>({\n filteredDataIds: []\n });\n private resultListSubject = new Subject<IResultList<object>>();\n\n constructor() {\n this.loading$ = this.loadingSubject.asObservable();\n this.data$ = this.dataSourceSubject.asObservable();\n this.stats$ = this.dataStatsSubject.asObservable();\n this.selection$ = this.dataSelectionSubject.asObservable();\n this.resultList$ = this.resultListSubject.asObservable();\n }\n\n connect(collectionViewer: CollectionViewer): Observable<object[]> {\n return this.data$;\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.loadingSubject.complete();\n this.dataSourceSubject.complete();\n this.dataStatsSubject.complete();\n this.dataSelectionSubject.complete();\n }\n\n loadData({\n rows,\n columns,\n pagination,\n searchText,\n serverSideDataCallback,\n selectable,\n selectionPrimaryKey,\n infiniteScroll,\n reload = false\n }) {\n const clientSideData$ = this.toObservable(rows).pipe(\n map(initialData => {\n let filteredSize = 0;\n let filteredDataIds = [];\n\n const transformedData = flow(\n data => this.doClientSideSearch({ data, columns, searchText }),\n data => this.doClientSideFiltering({ data, columns }),\n data => this.doClientSideSorting({ data, columns }),\n data => {\n filteredSize = data.length;\n filteredDataIds = selectable\n ? data.map(item => item[selectionPrimaryKey])\n : filteredDataIds;\n\n return data;\n },\n data => this.doClientSidePagination({ data, pagination })\n )(initialData);\n\n this.dataStatsSubject.next({\n size: initialData.length,\n filteredSize,\n currentPage: pagination.currentPage,\n currentPageSize: transformedData.length,\n firstPageSize: pagination.pageSize\n });\n this.dataSelectionSubject.next({ filteredDataIds });\n\n return transformedData;\n })\n );\n\n const serverSideData$ = defer(() =>\n this.toObservable(\n serverSideDataCallback({\n columns,\n searchText,\n pagination,\n selection: { enabled: selectable, primaryKey: selectionPrimaryKey }\n })\n )\n ).pipe(\n map((result: ServerSideDataResult) => {\n const { data, paging, size, filteredSize, filteredDataIds } = result;\n\n this.dataStatsSubject.next({\n size,\n filteredSize,\n currentPage: paging.currentPage,\n currentPageSize: data.length,\n nextPage: paging.nextPage,\n firstPageSize: paging.pageSize\n });\n this.dataSelectionSubject.next({ filteredDataIds: filteredDataIds || [] });\n this.resultListSubject.next(result);\n\n return data;\n })\n );\n\n const data$ = typeof serverSideDataCallback === 'function' ? serverSideData$ : clientSideData$;\n\n of([])\n .pipe(\n tap(() => this.loadingSubject.next(true)),\n switchMap(() => data$),\n catchError(err => {\n this.dataStatsSubject.next({\n size: 0,\n filteredSize: 0,\n currentPage: 0,\n currentPageSize: 0,\n firstPageSize: 0\n });\n this.dataSelectionSubject.next({ filteredDataIds: [] });\n return of([]);\n }),\n finalize(() => this.loadingSubject.next(false))\n )\n .subscribe(result => {\n const data =\n infiniteScroll && !reload ? [...this.dataSourceSubject.value, ...result] : result;\n this.dataSourceSubject.next(data);\n });\n }\n\n resolveValue(x, path) {\n return get(x, path);\n }\n\n resolveFunction(x) {\n return typeof x === 'function' ? x() : x;\n }\n\n normalizeNil(x) {\n return isNil(x) ? '' : x;\n }\n\n private doClientSideFiltering({ data, columns }) {\n return columns.reduce((result, column) => {\n const { filterPredicate } = column;\n\n if (typeof filterPredicate === 'string') {\n return this.doClientSideSearch({\n data: result,\n columns: [column],\n searchText: filterPredicate\n });\n }\n\n if (typeof filterPredicate === 'function') {\n return result.filter(item => filterPredicate(item, column.path));\n }\n\n return result;\n }, data);\n }\n\n private doClientSideSearch({ data, columns, searchText }) {\n const propPaths = columns.map(({ path }) => path).filter(column => !isNil(column));\n\n const regexSearch = this.createRegexSearch(searchText);\n\n return data.filter(item => {\n const itemWithResolvedValues = flow(\n x => pick(x, propPaths),\n x => mapValues(x, this.resolveFunction),\n x => omitBy(x, isNil)\n )(item);\n\n const cellValues = Object.values(itemWithResolvedValues);\n\n return cellValues.some(cellValue => regexSearch.test(cellValue.toString()));\n });\n }\n\n private doClientSideSorting({ data, columns }) {\n const actives: Column[] = columns.filter(({ sortOrder }: Column) => !!sortOrder);\n\n const sortingState = {\n paths: actives.map(({ path }) => path),\n orders: actives.map(({ sortOrder }) => sortOrder)\n };\n\n return orderBy(data, sortingState.paths, sortingState.orders);\n }\n\n private doClientSidePagination({ data, pagination }) {\n return pagination\n ? get(chunk(data, pagination.pageSize), pagination.currentPage - 1, [])\n : data;\n }\n\n private createRegexSearch(filterValue) {\n return RegExp(escapeRegExpPattern(filterValue), 'i');\n }\n\n private toObservable(x): Observable<any> {\n return isObservable(x) ? x : x instanceof Promise ? from(x) : of(x);\n }\n}\n\n/**\n *\n * @param string pattern Regex pattern.\n * @return string The escaped regex.\n * @see https://stackoverflow.com/a/3561711/2013891\n */\nfunction escapeRegExpPattern(pattern = '') {\n return pattern.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n","import { CdkHeaderCell } from '@angular/cdk/table';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n ContentChildren,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n ViewContainerRef\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IResultList, Paging } from '@c8y/client';\nimport { flow, get, parseInt as _parseInt, union, without } from 'lodash-es';\nimport { combineLatest, Subject } from 'rxjs';\nimport {\n debounceTime,\n distinctUntilChanged,\n first,\n mergeMap,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators';\nimport { LoadMoreComponent } from '../common/load-more.component';\nimport { LoadMoreMode } from '../common/public-api';\nimport { gettext } from '../i18n/gettext';\nimport { CellRendererSpec } from './column/cell-renderer';\nimport { ColumnDirective } from './column/column.directive';\nimport { FilteringFormRendererSpec, FilteringModifier } from './column/filtering-form-renderer';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n Column,\n ColumnDataType,\n DataGrid,\n DataSourceStats,\n DisplayOptions,\n FilteringActionType,\n minColumnGridTrackSize,\n Pagination,\n ratiosByColumnTypes,\n Row,\n ServerSideDataCallback,\n SortOrder,\n SpecialColumnName\n} from './data-grid.model';\nimport { GridDataSource } from './grid-data-source';\n\n@Component({\n selector: 'c8y-data-grid',\n templateUrl: './data-grid.component.html'\n})\nexport class DataGridComponent implements DataGrid, OnChanges, AfterViewInit {\n @Input() title: string = gettext('Items');\n @Input() loadMoreItemsLabel: string = gettext('Load more items');\n @Input() loadingItemsLabel: string = gettext('Loading items…');\n @Input() noMatchingItemsLabel: string = gettext('No matching items.');\n\n columns: Column[];\n @Input('columns')\n set _columns(columns) {\n this.columns = columns || [];\n }\n\n dataSource = new GridDataSource();\n rows: Row[];\n @Input('rows')\n set _rows(rows) {\n this.rows = rows || [];\n }\n\n filteringLabelsParams = {\n filteredItemsCount: 0,\n allItemsCount: 0\n };\n\n pagination: Pagination;\n paginationLabelParams = {\n pageFirstItemIdx: 0,\n pageLastItemIdx: 0,\n itemsTotal: 0\n };\n readonly possiblePageSizes: number[] = [10, 15, 20, 30, 50];\n readonly minPossiblePageSize = Math.min(...this.possiblePageSizes);\n @Input('pagination')\n set _pagination(pagination) {\n this.pagination = pagination;\n const pageSize = get(this.pagination, 'pageSize');\n\n if (\n pageSize &&\n !this.possiblePageSizes.find(possiblePageSize => possiblePageSize === pageSize)\n ) {\n this.pagination = { ...this.pagination, pageSize: 10 };\n }\n }\n\n infiniteScroll: LoadMoreMode;\n @Input('infiniteScroll')\n set _infiniteScroll(infiniteScroll: LoadMoreMode) {\n this.infiniteScroll = infiniteScroll;\n }\n\n serverSideDataCallback: ServerSideDataCallback;\n @Input('serverSideDataCallback')\n set _serverSideDataCallback(serverSideDataCallback) {\n this.serverSideDataCallback = serverSideDataCallback;\n }\n\n selectable = false;\n @Input('selectable')\n set _selectable(selectable) {\n this.selectable = selectable;\n }\n\n selectionPrimaryKey = 'id';\n @Input('selectionPrimaryKey')\n set _selectionPrimaryKey(selectionPrimaryKey) {\n this.selectionPrimaryKey = selectionPrimaryKey;\n }\n\n displayOptions: DisplayOptions = {\n striped: true,\n bordered: false,\n gridHeader: true\n };\n @Input('displayOptions')\n set _displayOptions(displayOptions) {\n this.displayOptions = { ...this.displayOptions, ...displayOptions };\n }\n\n actionControls: ActionControl[];\n @Input('actionControls')\n set _actionControls(actionControls) {\n this.actionControls = actionControls || [];\n }\n\n bulkActionControls: BulkActionControl[];\n @Input('bulkActionControls')\n set _bulkActionControls(bulkActionControls) {\n this.bulkActionControls = bulkActionControls || [];\n }\n\n @Output() rowMouseOver = new EventEmitter<object>();\n @Output() rowMouseLeave = new EventEmitter<object>();\n @Output() rowClick = new EventEmitter<object>();\n\n @Output() itemsSelect = new EventEmitter<string[]>();\n\n @ContentChildren(ColumnDirective) columnRenderers: QueryList<ColumnDirective>;\n\n @ViewChild('scroll', { static: true }) scrollContainer: ElementRef;\n\n @ViewChild('infiniteScrollContainer', { static: false, read: ViewContainerRef })\n infiniteScrollContainer: ViewContainerRef;\n\n loadMoreComponent: LoadMoreComponent;\n\n columnNames = [];\n\n styles = {\n tableCursor: 'auto',\n gridTemplateColumns: undefined,\n gridInfiniteScrollColumn: undefined\n };\n\n searchText$ = new EventEmitter<string>();\n searchText = '';\n filteringApplied = false;\n totalPagesCount = Infinity;\n\n selectedItemIds: string[] = [];\n currentPageSelectionState = {\n allSelected: false,\n allDeselected: true\n };\n\n builtInActionType = {\n Edit: BuiltInActionType.Edit,\n Delete: BuiltInActionType.Delete,\n Export: BuiltInActionType.Export\n };\n\n resizeHandleMouseDown$ = new EventEmitter<any>();\n resizeHandleContainerMouseMove$ = new EventEmitter<any>();\n resizeHandleContainerMouseUp$ = new EventEmitter<any>();\n private headerBeingResized: {\n columnName: string;\n el: HTMLElement;\n };\n @ViewChildren(CdkHeaderCell, { read: ElementRef }) private thRefs: QueryList<ElementRef>;\n private thEls;\n\n private recreateLoadMoreComponent: boolean;\n\n private unsubscribe$ = new Subject<any>();\n\n constructor(\n private sanitizer: DomSanitizer,\n private hostRef: ElementRef,\n private cd: ChangeDetectorRef,\n private cfr: ComponentFactoryResolver\n ) {}\n\n ngOnInit() {\n this.searchText$\n .pipe(\n takeUntil(this.unsubscribe$),\n debounceTime(300),\n distinctUntilChanged(),\n tap(searchText => {\n this.searchText = searchText;\n })\n )\n .subscribe(() => {\n this.reload();\n });\n\n if (this.selectable) {\n combineLatest(this.dataSource.data$, this.itemsSelect.asObservable())\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(([data]) => {\n const currentPageEmpty = data.length === 0;\n\n this.currentPageSelectionState = {\n allSelected: currentPageEmpty ? false : data.every(item => this.isItemSelected(item)),\n allDeselected: currentPageEmpty ? true : data.every(item => !this.isItemSelected(item))\n };\n });\n }\n this.dataSource.stats$.pipe(takeUntil(this.unsubscribe$)).subscribe(stats => {\n this.createLoadMoreComponent(stats);\n this.updateFilteringLabelsParams(stats);\n this.updatePaginationLabelParams(stats);\n });\n }\n\n ngOnChanges() {\n this.updateColumns();\n this.loadData();\n }\n\n ngAfterViewInit() {\n this.updateGridColumnsSize();\n this.thEls = this.thRefs.toArray().map(({ nativeElement }) => nativeElement);\n this.setupResizeHandle();\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n trackByName(index, item) {\n return item.name;\n }\n\n resolveCellValue(row, path) {\n return flow([\n x => this.dataSource.resolveValue(x, path),\n this.dataSource.resolveFunction,\n this.dataSource.normalizeNil\n ])(row);\n }\n\n changeSortOrder(columnName) {\n const column = this.columns.find(({ name }) => name === columnName);\n\n if (column) {\n const { sortOrder } = column;\n\n if (!sortOrder) {\n this.updateSorting([columnName], 'asc');\n } else if (sortOrder === 'asc') {\n this.updateSorting([columnName], 'desc');\n } else {\n this.updateSorting([columnName], '');\n }\n }\n }\n\n updateSorting(columnNames: string[], sortOrder: SortOrder) {\n this.columns = this.columns.map(\n (column): Column => {\n if (columnNames.includes(column.name)) {\n return { ...column, sortOrder };\n }\n\n return column;\n }\n );\n\n this.reload();\n }\n\n applyFilter(columnName, dropdown, filteringModifier) {\n this.updateFiltering([columnName], {\n type: FilteringActionType.ApplyFilter,\n payload: { filteringModifier }\n });\n dropdown.hide();\n }\n\n resetFilter(columnName, dropdown) {\n this.updateFiltering([columnName], { type: FilteringActionType.ResetFilter });\n dropdown.hide();\n }\n\n clearFilters() {\n this.updateFiltering(this.columns.map(({ name }) => name), {\n type: FilteringActionType.ResetFilter\n });\n }\n\n updateFiltering(\n columnNames: string[],\n action: {\n type: FilteringActionType;\n payload?: { filteringModifier: FilteringModifier };\n }\n ) {\n this.columns = this.columns.map(column => {\n if (columnNames.includes(column.name)) {\n return {\n ...column,\n ...(action.type === FilteringActionType.ApplyFilter\n ? action.payload.filteringModifier\n : { filterPredicate: undefined, externalFilterQuery: undefined })\n };\n }\n\n return column;\n });\n\n this.updateFilteringApplied();\n this.reload();\n }\n\n updateFilteringApplied() {\n this.filteringApplied = this.columns.some(this.isColumnFilteringApplied);\n }\n\n isColumnFilteringApplied(column: Column): boolean {\n const { filterable, filterPredicate, externalFilterQuery } = column;\n\n return !!(filterable && (filterPredicate || externalFilterQuery));\n }\n\n updatePagination({ itemsPerPage, page }) {\n this.pagination = { ...this.pagination, pageSize: itemsPerPage, currentPage: page };\n this.loadData();\n }\n\n reload() {\n this.pagination = { ...this.pagination, currentPage: 1 };\n this.recreateLoadMoreComponent = true;\n this.loadData(true);\n this.scrollToTop();\n }\n\n loadNextPage(): Promise<IResultList<object>> {\n this.pagination = { ...this.pagination, currentPage: this.pagination.nextPage };\n\n this.loadData();\n\n return this.dataSource.resultList$\n .pipe(take(1)) // in order for `toPromise` to work, the observable needs to complete\n .toPromise()\n .then(result => {\n return {\n ...result,\n paging: {\n ...result.paging,\n next: this.loadNextPage.bind(this)\n }\n } as IResultList<object>;\n });\n }\n\n getCellRendererSpec({ value, row, columnName }): CellRendererSpec {\n return this._getCellRendererSpec({ type: 'CELL', value, row, columnName });\n }\n\n getHeaderCellRendererSpec({ value, columnName }): CellRendererSpec {\n return this._getCellRendererSpec({ type: 'HEADER', value, row: undefined, columnName });\n }\n\n getFilteringFormRendererSpec({ column, dropdown }): FilteringFormRendererSpec {\n return {\n renderer:\n get(this.getColumnRenderer(column), 'filteringFormRendererDef.template') ||\n column.filteringFormRendererComponent,\n context: {\n property: column,\n applyFilter: this.applyFilter.bind(this, column.name, dropdown),\n resetFilter: this.resetFilter.bind(this, column.name, dropdown)\n }\n };\n }\n\n setAllItemsSelected(selected) {\n this.dataSource.selection$\n .pipe(first())\n .subscribe(({ filteredDataIds }) => this.setItemsSelected(filteredDataIds, selected));\n }\n\n setAllItemsInCurrentPageSelected(selected) {\n this.dataSource.data$.pipe(first()).subscribe(data => this.setItemsSelected(data, selected));\n }\n\n setItemsSelected(items: any[], selected) {\n const itemIds = items.map((item: object | string) =>\n typeof item === 'object' ? item[this.selectionPrimaryKey] : item\n );\n\n this.selectedItemIds = selected\n ? union(this.selectedItemIds, itemIds)\n : without(this.selectedItemIds, ...itemIds);\n\n this.itemsSelect.emit(this.selectedItemIds);\n }\n\n isItemSelected(item) {\n return this.selectedItemIds.includes(item[this.selectionPrimaryKey]);\n }\n\n onColumnDrop({ previousIndex, currentIndex }) {\n const differentIndex = previousIndex !== currentIndex;\n\n if (differentIndex) {\n const column = this.columns.splice(previousIndex, 1);\n this.columns.splice(currentIndex, 0, column[0]);\n }\n\n this.updateColumnNames();\n this.updateGridColumnsSize();\n }\n\n updateGridColumnsSize() {\n this.styles = {\n ...this.styles,\n gridTemplateColumns: this.sanitizer.bypassSecurityTrustStyle(\n this.columns\n .filter(column => column.visible)\n .map(({ gridTrackSize }) => gridTrackSize)\n .join(' ')\n ),\n gridInfiniteScrollColumn: this.sanitizer.bypassSecurityTrustStyle(\n `1 / span ${this.columns.length}`\n )\n };\n }\n\n private updateColumns() {\n const specialColumn = {\n gridTrackSize: '42px',\n sortable: false,\n positionFixed: true\n };\n\n this.columns = [\n this.selectable ? { ...specialColumn, name: SpecialColumnName.Checkbox } : undefined,\n ...this.columns,\n this.actionControls.length > 0\n ? { ...specialColumn, name: SpecialColumnName.Actions }\n : undefined\n ]\n .filter(Boolean)\n .map(this.withColumnDefaults);\n\n this.updateColumnNames();\n this.updateGridColumnsSize();\n this.updateFilteringApplied();\n }\n\n private withColumnDefaults(column): Column {\n const dataType = column.dataType || ColumnDataType.TextShort;\n const { headerCSSClassName, cellCSSClassName } = column;\n\n return {\n visible: true,\n positionFixed: false,\n sortable: true,\n sortOrder: '',\n filterable: false,\n ...column,\n dataType,\n gridTrackSize:\n column.gridTrackSize ||\n `minmax(${minColumnGridTrackSize}px, ${ratiosByColumnTypes[dataType]}fr)`,\n headerCSSClassName:\n (typeof headerCSSClassName === 'string'\n ? headerCSSClassName.split(' ')\n : headerCSSClassName) || [],\n cellCSSClassName:\n (typeof cellCSSClassName === 'string' ? cellCSSClassName.split(' ') : cellCSSClassName) ||\n []\n };\n }\n\n private updateColumnNames() {\n this.columnNames = this.columns.map(({ name }) => name);\n }\n\n private setupResizeHandle() {\n const resizeHandleDrag$ = this.resizeHandleMouseDown$.pipe(\n takeUntil(this.unsubscribe$),\n tap(() => this.clearMouseHighlights()),\n mergeMap(({ event, targetColumnName }) => {\n this.columns = this.columns.map(column => {\n if (column.name === targetColumnName) {\n return {\n ...column,\n headerCSSClassName: union(column.headerCSSClassName, ['header--being-resized'])\n };\n }\n\n return column;\n });\n\n this.headerBeingResized = {\n columnName: targetColumnName,\n el: event.target.parentNode\n };\n\n this.styles = {\n ...this.styles,\n tableCursor: 'col-resize'\n };\n\n return this.resizeHandleContainerMouseMove$.pipe(\n tap(() => this.clearMouseHighlights()),\n takeUntil(this.resizeHandleContainerMouseUp$)\n );\n })\n );\n\n resizeHandleDrag$.subscribe(event => {\n requestAnimationFrame(() => {\n this.columns = this.columns.map((column, i) => {\n if (column.name === this.headerBeingResized.columnName) {\n const wrapper = this.hostRef.nativeElement;\n\n // Read wrapper's offset left relative to the document.\n const horizontalOffset = wrapper.getBoundingClientRect().left;\n\n // Adjust with the wrapper horizontal scroll position.\n const horizontalScrollOffset = wrapper.scrollLeft - horizontalOffset;\n\n // Calculate the desired width.\n const width =\n horizontalScrollOffset + event.clientX - (this.headerBeingResized.el.offsetLeft || 0);\n\n return {\n ...column,\n // Update the column object with the new size value, enforce our minimum size.\n gridTrackSize: `${Math.max(minColumnGridTrackSize, width)}px`\n };\n }\n\n // For the other headers which don't have a set width, fix it to their computed width.\n if (column.gridTrackSize.startsWith('minmax')) {\n return {\n ...column,\n // isn't fixed yet (it would be a px value)\n gridTrackSize: `${_parseInt(this.thEls[i].clientWidth)}px`\n };\n }\n\n return column;\n });\n\n /*\n * Update the column sizes.\n * Note: grid-template-columns sets the width for all columns in one value.\n */\n this.updateGridColumnsSize();\n });\n });\n\n this.resizeHandleContainerMouseUp$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n if (this.headerBeingResized) {\n this.columns = this.columns.map(column => {\n if (column.name === this.headerBeingResized.columnName) {\n return {\n ...column,\n headerCSSClassName: without(column.headerCSSClassName, 'header--being-resized')\n };\n }\n\n return column;\n });\n this.headerBeingResized = undefined;\n\n this.styles = {\n ...this.styles,\n tableCursor: 'auto'\n };\n }\n });\n }\n\n private clearMouseHighlights() {\n if (window.getSelection) {\n window.getSelection().removeAllRanges();\n }\n }\n\n private _getCellRendererSpec({ type, value, row, columnName }): CellRendererSpec {\n const column = this.columns.find(({ name }) => name === columnName);\n const columnRenderer = this.getColumnRenderer(column);\n const rendererTemplate = get(\n columnRenderer,\n `${type === 'HEADER' ? 'headerCellRendererDef' : 'cellRendererDef'}.template`\n );\n\n const { cellRendererComponent, headerCellRendererComponent } = column;\n const rendererComponent =\n type === 'HEADER' ? headerCellRendererComponent : cellRendererComponent;\n\n return {\n renderer: rendererTemplate || rendererComponent,\n context: {\n value,\n item: row,\n property: column\n }\n };\n }\n\n private getColumnRenderer(column): ColumnDirective {\n return this.columnRenderers.toArray().find(({ name }) => name === column.name);\n }\n\n private loadData(reload: boolean = false) {\n const {\n rows,\n columns,\n pagination,\n searchText,\n serverSideDataCallback,\n selectable,\n selectionPrimaryKey,\n infiniteScroll\n } = this;\n\n this.dataSource.loadData({\n rows,\n columns,\n pagination,\n searchText,\n serverSideDataCallback,\n selectable,\n selectionPrimaryKey,\n infiniteScroll,\n reload\n });\n }\n\n private updateFilteringLabelsParams(stats: DataSourceStats) {\n this.filteringLabelsParams = {\n filteredItemsCount: stats.filteredSize,\n allItemsCount: stats.size\n };\n }\n\n private updatePaginationLabelParams(stats: DataSourceStats) {\n this.pagination.nextPage = stats.nextPage;\n const pageFirstItemIdx = (stats.currentPage - 1) * stats.firstPageSize + 1;\n this.paginationLabelParams = {\n pageFirstItemIdx,\n pageLastItemIdx: pageFirstItemIdx + (stats.currentPageSize - 1),\n itemsTotal: stats.filteredSize\n };\n }\n\n private createLoadMoreComponent(stats: DataSourceStats) {\n if (\n this.infiniteScroll &&\n stats &&\n stats.nextPage &&\n (!this.loadMoreComponent || this.recreateLoadMoreComponent)\n ) {\n this.recreateLoadMoreComponent = false;\n this.infiniteScrollContainer.clear();\n const componentFactory: ComponentFactory<any> = this.cfr.resolveComponentFactory(\n LoadMoreComponent\n );\n const componentRef = this.infiniteScrollContainer.createComponent(componentFactory);\n const instance = componentRef.instance as LoadMoreComponent;\n instance.useIntersection = this.infiniteScroll === 'auto' || this.infiniteScroll === 'hidden';\n instance.hidden = this.infiniteScroll === 'hidden';\n instance.paging = {\n nextPage: stats.nextPage,\n next: this.loadNextPage.bind(this)\n } as Paging<any>;\n instance.loadNextLabel = this.loadMoreItemsLabel;\n instance.loadingLabel = this.loadingItemsLabel;\n this.loadMoreComponent = instance;\n } else if (this.loadMoreComponent && !stats.nextPage) {\n this.loadMoreComponent.paging = {\n nextPage: null\n } as Paging<any>;\n }\n }\n\n private scrollToTop() {\n if (this.infiniteScroll) {\n this.scrollContainer.nativeElement.scrollTop = 0;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n Injector,\n Input,\n OnChanges,\n TemplateRef,\n Type\n} from '@angular/core';\n\nimport { CellRendererContext, CellRendererSpec } from './cell-renderer';\n\n@Component({\n selector: 'c8y-cell-renderer',\n templateUrl: './cell-renderer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CellRendererComponent implements OnChanges, DoCheck {\n spec: CellRendererSpec;\n @Input('spec')\n set _spec(spec: CellRendererSpec) {\n this.spec = spec;\n }\n prevSpec: CellRendererSpec;\n\n rendererType: 'TEMPLATE' | 'COMPONENT';\n rendererInjector: Injector;\n\n constructor(private injector: Injector, private cd: ChangeDetectorRef) {}\n\n ngOnChanges() {\n if (!this.prevSpec) {\n this.prevSpec = this.spec;\n }\n\n const { renderer } = this.spec;\n\n if (renderer instanceof TemplateRef) {\n this.rendererType = 'TEMPLATE';\n } else if (renderer instanceof Type) {\n this.rendererType = 'COMPONENT';\n\n this.rendererInjector = Injector.create({\n providers: [{ provide: CellRendererContext, useValue: this.spec.context }],\n parent: this.injector\n });\n }\n }\n\n ngDoCheck() {\n if (!this.spec.context.value === this.prevSpec.context.value) {\n this.prevSpec = this.spec;\n this.cd.markForCheck();\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n Injector,\n Input,\n OnChanges,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { isEqual } from 'lodash-es';\n\nimport { FilteringFormRendererContext, FilteringFormRendererSpec } from './filtering-form-renderer';\n\n@Component({\n selector: 'c8y-filtering-form-renderer',\n templateUrl: './filtering-form-renderer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FilteringFormRendererComponent implements OnChanges {\n spec: FilteringFormRendererSpec;\n @Input('spec')\n set _spec(spec: FilteringFormRendererSpec) {\n this.spec = spec;\n }\n\n rendererType: 'TEMPLATE' | 'COMPONENT';\n rendererInjector: Injector;\n defaultRendererFilterText = '';\n\n constructor(private injector: Injector, private cd: ChangeDetectorRef) {}\n\n ngOnChanges() {\n const { renderer, context } = this.spec;\n\n if (renderer instanceof TemplateRef) {\n this.rendererType = 'TEMPLATE';\n } else if (renderer instanceof Type) {\n this.rendererType = 'COMPONENT';\n\n this.rendererInjector = Injector.create({\n providers: [{ provide: FilteringFormRendererContext, useValue: this.spec.context }],\n parent: this.injector\n });\n }\n\n const { filterPredicate } = context.property;\n if (typeof filterPredicate === 'string') {\n this.defaultRendererFilterText = filterPredicate;\n }\n }\n}\n","import { CdkTableModule } from '@angular/cdk/table';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { PaginationModule } from 'ngx-bootstrap/pagination';\nimport { CommonModule as C8YCommonModule } from '../common/common.module';\nimport { DataGridComponent } from './data-grid.component';\nimport { ColumnDirective } from './column/column.directive';\nimport { CellRendererDefDirective, HeaderCellRendererDefDirective } from './column/cell-renderer';\nimport { CellRendererComponent } from './column/cell-renderer.component';\nimport { FilteringFormRendererDefDirective } from './column/filtering-form-renderer';\nimport { FilteringFormRendererComponent } from './column/filtering-form-renderer.component';\n\n@NgModule({\n imports: [\n CommonModule,\n CdkTableModule,\n DragDropModule,\n FormsModule,\n ReactiveFormsModule,\n C8YCommonModule,\n BsDropdownModule.forRoot(),\n PopoverModule.forRoot(),\n PaginationModule.forRoot()\n ],\n declarations: [\n CellRendererDefDirective,\n HeaderCellRendererDefDirective,\n CellRendererComponent,\n FilteringFormRendererDefDirective,\n FilteringFormRendererComponent,\n ColumnDirective,\n DataGridComponent\n ],\n exports: [\n CellRendererDefDirective,\n HeaderCellRendererDefDirective,\n FilteringFormRendererDefDirective,\n ColumnDirective,\n DataGridComponent\n ],\n entryComponents: [DataGridComponent]\n})\nexport class DataGridModule {}\n","import { gettext } from '../i18n/gettext';\nimport { formatDate } from '@angular/common';\n// TODO remove when c8y-icon will works\n\nexport const deviceAvailabilityIconMap = {\n sendData: {\n AVAILABLE: {\n icon: 'long-arrow-right',\n class: 'statusOk'\n },\n UNAVAILABLE: {\n icon: 'long-arrow-right',\n class: 'statusNok'\n },\n UNKNOWN: {\n icon: 'long-arrow-right',\n class: 'statusUnknown'\n },\n NOT_MONITORED: {\n icon: 'long-arrow-right',\n class: 'statusUnknown'\n }\n },\n push: {\n CONNECTED: {\n icon: 'long-arrow-left',\n class: 'statusOk'\n },\n DISCONNECTED: {\n icon: 'long-arrow-left',\n class: 'statusUnknown'\n },\n UNKNOWN: {\n icon: 'long-arrow-left',\n class: 'statusUnknown'\n },\n MAINTENANCE: {\n icon: 'wrench',\n class: 'statusAlert'\n }\n },\n device: {\n MAINTENANCE: {\n icon: 'wrench',\n class: 'statusAlert'\n }\n }\n};\n\nexport const tooltips = {\n sendStatusConnected: (lastMessage, translateService) => {\n const date = formatDate(new Date(lastMessage), 'medium', translateService.currentLang);\n return translateService.instant(gettext('Device last request:\\n{{date}}'), { date });\n },\n sendStatusDisconnected: gettext('Connection not monitored'),\n pushStatusConnected: gettext('Connection to device established'),\n pushStatusDisconnected: gettext(\n 'Connection to device not established (not supported by device or no connectivity)'\n ),\n maintenance: gettext('Device is under maintenance')\n };\n\nexport enum PushStatusLabels {\n CONNECTED = gettext('Push connection: active'),\n DISCONNECTED = gettext('Push connection: inactive'),\n UNKNOWN = gettext('Push connection: inactive')\n}\n\nexport enum SendStatusLabels {\n AVAILABLE = gettext('Send connection: online'),\n NOT_MONITORED = gettext('Send connection: not monitored'),\n UNAVAILABLE = gettext('Send connection: offline'),\n UNKNOWN = gettext('Send connection status unknown'),\n MAINTENANCE = gettext('Device is under maintenance')\n}\n","import { Component, Input, AfterContentInit, OnChanges } from '@angular/core';\nimport {\n deviceAvailabilityIconMap,\n PushStatusLabels,\n SendStatusLabels,\n tooltips\n} from './device-availability';\nimport { TranslateService } from '@ngx-translate/core';\nimport { get } from 'lodash-es';\n\n@Component({\n selector: 'device-status',\n templateUrl: './device-status.component.html'\n})\nexport class DeviceStatusComponent implements AfterContentInit, OnChanges {\n @Input('mo') set node(value) {\n this._mo = value.mo || value;\n }\n\n private _mo;\n private requiredAvailability;\n private availabilityStatus;\n private pushStatus;\n private sendStatus;\n\n constructor(private translateService: TranslateService) {}\n\n get() {\n return this._mo;\n }\n\n ngOnChanges() {\n this.setStatusProperites();\n }\n\n ngAfterContentInit() {\n this.setStatusProperites();\n }\n\n setStatusProperites() {\n this.requiredAvailability = get(this._mo, 'c8y_RequiredAvailability');\n this.availabilityStatus = get(this._mo, 'c8y_Availability.status');\n\n this.pushStatus = get(this._mo, 'c8y_Connection.status') || 'UNKNOWN';\n this.sendStatus =\n this.availabilityStatus || (this.requiredAvailability ? 'UNKNOWN' : 'NOT_MONITORED');\n }\n\n status() {\n let statuses;\n\n if (this.availabilityStatus === 'MAINTENANCE' || this.pushStatus === 'MAINTENANCE') {\n statuses = this.getMaintenanceStatus();\n } else {\n statuses = this.getSendPushStatus();\n }\n\n return statuses;\n }\n\n getMaintenanceStatus() {\n return {\n sendStatus: false,\n pushStatus: false,\n maintenanceStatus: {\n icon: deviceAvailabilityIconMap.device.MAINTENANCE.icon,\n class: deviceAvailabilityIconMap.device.MAINTENANCE.class,\n tooltip: tooltips.maintenance\n }\n };\n }\n\n private getSendPushStatus() {\n return {\n sendStatus: {\n icon: deviceAvailabilityIconMap.sendData[this.sendStatus].icon,\n class: deviceAvailabilityIconMap.sendData[this.sendStatus].class,\n status: this.sendStatus,\n label: SendStatusLabels[this.sendStatus],\n tooltip: this.getSendStatusTooltip(this._mo)\n },\n pushStatus: {\n icon: deviceAvailabilityIconMap.push[this.pushStatus].icon,\n class: deviceAvailabilityIconMap.push[this.pushStatus].class,\n status: this.pushStatus,\n label: PushStatusLabels[this.pushStatus],\n tooltip: this.getPushStatusTooltip(this.pushStatus === 'CONNECTED')\n },\n maintenanceStatus: false\n };\n }\n\n private getSendStatusTooltip(device) {\n const availability = device && device.c8y_Availability;\n const lastMessage = availability && availability.lastMessage;\n if (lastMessage) {\n return tooltips.sendStatusConnected(lastMessage, this.translateService);\n }\n return tooltips.sendStatusDisconnected;\n }\n\n private getPushStatusTooltip(isActive) {\n return isActive ? tooltips.pushStatusConnected : tooltips.pushStatusDisconnected;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DeviceStatusComponent } from './device-status.component';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { CommonModule } from '../common/common.module';\n/**\n * The angular module definition for a device-status.\n * @exports DeviceStatusComponent\n */\n@NgModule({\n imports: [\n CommonModule,\n TooltipModule\n ],\n exports: [\n DeviceStatusComponent\n ],\n declarations: [\n DeviceStatusComponent\n ]\n})\nexport class DeviceStatusModule { }\n","import {\n Component,\n ViewChild,\n ElementRef,\n Input,\n OnInit,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { some, get, map } from 'lodash-es';\nimport { gettext } from '../i18n/gettext';\n\n@Component({\n selector: 'c8y-drop-area',\n templateUrl: './drop-area.component.html'\n})\nexport class DropAreaComponent implements OnInit {\n @Input() title = gettext('Upload file');\n @Input() message = gettext('Drop file here');\n @Input() icon = 'plus-square';\n @Input() loadingMessage = gettext('Uploading…');\n /** Affects displaying both the drop zone and the list of dropped files. */\n @Input() alwaysShow = false;\n @Input() clickToOpen = true;\n @Input() loading = false;\n @Input() progress = -1; // -1 = spinner\n @Output() dropped: EventEmitter<DroppedFile[]> = new EventEmitter();\n @Input() maxAllowedFiles = Infinity;\n @Input() files: FileList;\n isOver: boolean = false;\n errors: boolean = false;\n errorMessage: string;\n filesNameString: string;\n\n @ViewChild('area', { static: true }) area: ElementRef;\n @ViewChild('zone', { static: false }) zone: ElementRef;\n @ViewChild('picker', { static: false }) picker: ElementRef;\n\n ngOnInit() {\n this.alwaysShow = this.alwaysShow || this.area.nativeElement.children.length === 0;\n if (this.files && this.files.length > 0) {\n this.onFilesSelected(this.files);\n }\n }\n\n toggle($event?) {\n this.zone.nativeElement.style.height = this.area.nativeElement.offsetHeight + 'px';\n this.onOver();\n }\n\n showPicker($event?) {\n this.preventDefault($event);\n this.picker.nativeElement.value = '';\n this.picker.nativeElement.click();\n }\n\n onOver() {\n if (!this.isOver) {\n this.isOver = true;\n document.addEventListener('dragover', this.preventDefault);\n document.addEventListener('drop', this.preventDefault);\n }\n }\n\n onPick($event) {\n this.errors = false;\n this.preventDefault($event);\n this.onFilesSelected($event.target.files);\n }\n\n onDrop($event) {\n this.preventDefault($event);\n this.onFilesSelected($event.dataTransfer.files);\n this.stopDragging();\n }\n\n onFilesSelected(files: FileList) {\n this.files = files;\n this.filesNameString = this.getFilesNamesAsString(files);\n this.errors = false;\n if (!this.isFilesArrayEmpty() && !this.isTooManyFiles()) {\n if (this.hasEmptyFiles()) {\n this.errors = true;\n this.errorMessage = gettext('File must not be empty, select another one.');\n } else {\n this.dropped.emit(this.compose(files));\n }\n } else {\n this.errors = true;\n this.errorMessage = gettext('Too many files selected.');\n }\n }\n\n getFilesNamesAsString(files: FileList): string {\n return map(files, ({ name }) => name).join(', ');\n }\n\n isFilesArrayEmpty() {\n return get(this, 'files.length', 0) === 0;\n }\n\n isTooManyFiles() {\n return get(this, 'files.length', 0) > this.maxAllowedFiles;\n }\n\n hasEmptyFiles() {\n let result = true;\n if (!this.isFilesArrayEmpty()) {\n result = this.isAnyFileEmpty();\n }\n return result;\n }\n\n isAnyFileEmpty(): boolean {\n return some(Array.from(this.files), ['size', 0]);\n }\n\n shouldShowFilesList() {\n return (\n this.alwaysShow &&\n !this.isFilesArrayEmpty() &&\n !this.hasEmptyFiles() &&\n !this.isTooManyFiles()\n );\n }\n\n stopDragging() {\n document.removeEventListener('dragover', this.preventDefault);\n document.removeEventListener('drop', this.preventDefault);\n this.isOver = false;\n }\n\n onDelete() {\n delete this.files;\n delete this.filesNameString;\n this.clearErrors();\n this.dropped.emit(undefined);\n }\n\n clearErrors() {\n delete this.errorMessage;\n this.errors = false;\n }\n\n private preventDefault($event?) {\n if ($event) {\n $event.preventDefault();\n }\n }\n\n private compose(files: FileList) {\n return Array.from(files).map(file => ({\n file,\n readAsJson: async () => JSON.parse(await this.read(file, ReadAsType.TEXT)),\n readAsText: async () => this.read(file, ReadAsType.TEXT),\n readAsArrayBuffer: async () => this.read(file, ReadAsType.ARRAY_BUFFER),\n readAsBinaryString: async () => this.read(file, ReadAsType.BINARY_STRING),\n readAsDataURL: async () => this.read(file, ReadAsType.DATA_URL)\n }));\n }\n\n private async read(file, type: ReadAsType): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n switch (type) {\n case ReadAsType.TEXT: {\n reader.readAsText(file);\n break;\n }\n case ReadAsType.ARRAY_BUFFER: {\n reader.readAsArrayBuffer(file);\n break;\n }\n case ReadAsType.BINARY_STRING: {\n reader.readAsBinaryString(file);\n break;\n }\n case ReadAsType.DATA_URL: {\n reader.readAsDataURL(file);\n break;\n }\n }\n reader.onload = () => this.onLoad(reader, resolve, reject);\n });\n }\n\n private onLoad(reader, resolve, reject) {\n if (reader.readyState !== 2) {\n return;\n }\n if (reader.error) {\n reject(reader.error);\n }\n resolve(reader.result);\n }\n}\n\nexport interface DroppedFile {\n file: File;\n readAsText();\n readAsArrayBuffer();\n readAsBinaryString();\n readAsDataURL();\n readAsJson();\n}\n\nenum ReadAsType {\n TEXT,\n DATA_URL,\n ARRAY_BUFFER,\n BINARY_STRING\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { DropAreaComponent } from './drop-area.component';\n\n/**\n * The angular module definition for a drop-area.\n * @exports DropAreaComponent\n */\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DropAreaComponent,\n ],\n declarations: [\n DropAreaComponent,\n ]\n})\nexport class DropAreaModule { }\n","import { Component, Output, Input, EventEmitter, ViewChild, OnInit } from '@angular/core';\nimport { DroppedFile, DropAreaComponent } from '../drop-area/drop-area.component';\nimport { PickedFiles } from './file-picker.model';\n\n@Component({\n selector: 'c8y-file-picker',\n templateUrl: './file-picker.component.html'\n})\nexport class FilePickerComponent implements OnInit {\n @ViewChild(DropAreaComponent, {static: true}) dropArea: DropAreaComponent;\n @Output() onFilesPicked: EventEmitter<PickedFiles> = new EventEmitter();\n @Input() maxAllowedFiles = Infinity;\n @Input() uploadChoice: 'uploadBinary' | 'uploadUrl' = 'uploadBinary';\n @Input() fileUrl: string;\n @Input() fileBinary: DroppedFile;\n\n droppedFiles: DroppedFile[];\n private fileToSave: PickedFiles;\n\n ngOnInit() {\n if (this.fileBinary) {\n this.droppedFiles = [this.fileBinary];\n }\n }\n\n onFileDropped(droppedFiles: DroppedFile[]) {\n this.onFilesPicked.emit({\n droppedFiles\n });\n }\n\n clearInputFromUrl() {\n delete this.fileUrl;\n this.fileToSave = {\n url: undefined\n };\n this.onFilesPicked.emit(this.fileToSave);\n }\n\n clearSelectedFiles() {\n this.dropArea.onDelete();\n this.fileToSave = {\n droppedFiles: undefined\n };\n this.onFilesPicked.emit(this.fileToSave);\n }\n\n onFileUrlChange(urlStr) {\n this.fileToSave = {\n url: urlStr\n };\n this.onFilesPicked.emit(this.fileToSave);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule as C8yCommonModule } from '../common/common.module';\nimport { FilePickerComponent } from './file-picker.component';\nimport { DropAreaModule } from '../drop-area/drop-area.module';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule as C8yFormsModule } from '../forms/public-api';\n\n/**\n * The angular module definition for a drop-area.\n * @exports FilePickerComponent\n */\n@NgModule({\n imports: [\n C8yFormsModule,\n CommonModule,\n DropAreaModule,\n FormsModule,\n C8yCommonModule\n ],\n exports: [\n FilePickerComponent,\n ],\n declarations: [\n FilePickerComponent,\n ]\n})\nexport class FilePickerModule { }\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-group',\n templateUrl: './list-group.component.html',\n host: {\n class: 'c8y-list__group'\n }\n})\nexport class ListGroupComponent {\n\n}\n","import { Component, Output, Input, ViewChild, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-action, c8y-li-action',\n templateUrl: './list-item-action.component.html'\n})\nexport class ListItemActionComponent {\n @ViewChild('template', { static: false })\n template: any;\n @Input()\n label: string;\n @Input()\n icon: string;\n @Output()\n click = new EventEmitter<any>();\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-collapse, c8y-li-collapse',\n templateUrl: './list-item-collapse.component.html'\n})\nexport class ListItemCollapseComponent {\n\n @Input()\n item: any;\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-footer, c8y-li-footer',\n templateUrl: './list-item-footer.component.html'\n})\nexport class ListItemFooterComponent {\n\n @Input()\n footer: string;\n\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n ContentChildren,\n HostBinding,\n Input,\n Output,\n EventEmitter,\n QueryList\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, filter, tap, delay } from 'rxjs/operators';\nimport { ListItemActionComponent } from './list-item-action.component';\nimport { ListItemCollapseComponent } from './list-item-collapse.component';\nimport { ListItemFooterComponent } from './list-item-footer.component';\n\n@Component({\n selector: 'c8y-list-item, c8y-li',\n templateUrl: './list-item.component.html',\n host: {\n class: 'c8y-list__item'\n }\n})\nexport class ListItemComponent {\n @Input()\n @HostBinding('class.active')\n active: boolean = false;\n @Input()\n collapsed: boolean = true;\n @Output()\n collapsedChange = new EventEmitter<boolean>();\n @ContentChild(ListItemFooterComponent, { static: false })\n itemFooter: ListItemFooterComponent;\n @ContentChildren(ListItemActionComponent)\n itemActions: QueryList<ListItemActionComponent>;\n @ContentChild(ListItemCollapseComponent, { static: false })\n itemCollapse: ListItemCollapseComponent;\n\n showFooter: boolean = false;\n showActions: boolean = false;\n showCollapse: boolean = false;\n actions: ListItemActionComponent[];\n dropdownUp: boolean = false;\n\n private pulse$: Subject<boolean> = new Subject<boolean>();\n private destroy$: Subject<any> = new Subject();\n private readonly ACTION_ITEM_HEIGHT = 40;\n\n constructor(public element: ElementRef) {}\n\n ngOnInit(): void {\n this.pulse$.pipe(filter(apply => !!apply),\n tap(() => this.element.nativeElement.classList.remove('c8y-list--pulse')),\n delay(100),\n tap(() => this.element.nativeElement.classList.add('c8y-list--pulse')),\n takeUntil(this.destroy$)).subscribe();\n }\n\n ngAfterContentChecked(): void {\n this.actions = this.itemActions.toArray();\n this.showFooter = this.itemFooter != null;\n this.showActions = this.itemActions.length > 0;\n this.showCollapse = this.itemCollapse != null;\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n /**\n * A helper function which helps to determine if the dropdown\n * should toggle up.\n */\n showDropdownUp() {\n const rect = this.element.nativeElement.getBoundingClientRect();\n this.dropdownUp =\n rect.bottom + this.itemActions.length * this.ACTION_ITEM_HEIGHT > window.innerHeight;\n }\n\n /**\n * Toggles the collapse state and emits this state as\n * collapsedChange output as boolean.\n */\n toggleCollapsed() {\n this.collapsed = !this.collapsed;\n this.collapsedChange.emit(this.collapsed);\n }\n\n /**\n * Highlights the list-item. This method should be used to show the\n * user that something within this item was changed.\n */\n pulse() {\n this.pulse$.next(true);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-icon, c8y-li-icon',\n templateUrl: './list-item-icon.component.html',\n host: {\n class: 'c8y-list__item__icon'\n }\n})\nexport class ListItemIconComponent {\n @Input()\n icon: string;\n\n @Input()\n status?: 'statusOk' | 'statusUnknown' | 'statusAlert' | 'statusNok' | 'status critical' | 'status warning' | 'status minor' | 'status major';\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-body, c8y-li-body',\n templateUrl: './list-item-body.component.html'\n})\nexport class ListItemBodyComponent {\n\n @Input()\n body: string;\n\n}\n","import { Output, EventEmitter, Component, Input, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-checkbox, c8y-li-checkbox',\n templateUrl: './list-item-checkbox.component.html',\n host: {\n class: 'c8y-list__item__check'\n }\n})\nexport class ListItemCheckboxComponent {\n @Input()\n selected = false;\n @Output()\n onSelect = new EventEmitter<boolean>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selected && !changes.selected.firstChange) {\n this.onSelect.emit(changes.selected.currentValue);\n }\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\n@Component({\n selector: 'c8y-list-item-radio, c8y-li-radio',\n templateUrl: './list-item-radio.component.html',\n host: {\n class: 'c8y-list__item__radio'\n }\n})\nexport class ListItemRadioComponent {\n @ViewChild('radio', { static: true }) radio: ElementRef;\n @Input()\n selected = false;\n @Input()\n name = 'list_item_radio';\n @Input()\n disabled: boolean = false;\n @Output()\n onSelect = new EventEmitter<boolean>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.selected && !changes.selected.firstChange) {\n this.onSelect.emit(changes.selected.currentValue);\n }\n }\n\n reset() {\n this.radio.nativeElement.checked = false;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ListGroupComponent } from './list-group.component';\nimport { ListItemComponent } from './list-item.component';\nimport { CommonModule } from '../common/common.module';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CollapseModule } from 'ngx-bootstrap/collapse';\nimport { ListItemIconComponent } from './list-item-icon.component';\nimport { ListItemBodyComponent } from './list-item-body.component';\nimport { ListItemFooterComponent } from './list-item-footer.component';\nimport { ListItemActionComponent } from './list-item-action.component';\nimport { ListItemCollapseComponent } from './list-item-collapse.component';\nimport { ListItemCheckboxComponent } from './list-item-checkbox.component';\nimport { ListItemRadioComponent } from './list-item-radio.component';\n\n@NgModule({\n imports: [\n CommonModule,\n CollapseModule.forRoot(),\n BsDropdownModule\n ],\n declarations: [\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListItemFooterComponent,\n ListItemActionComponent,\n ListItemCollapseComponent,\n ListItemCheckboxComponent,\n ListItemRadioComponent\n ],\n exports: [\n ListGroupComponent,\n ListItemComponent,\n ListItemIconComponent,\n ListItemBodyComponent,\n ListItemFooterComponent,\n ListItemActionComponent,\n ListItemCollapseComponent,\n ListItemCheckboxComponent,\n ListItemRadioComponent\n ]\n})\nexport class ListGroupModule {}\n","import { Component, Input } from '@angular/core';\nimport { RealtimeService } from './realtime.service';\n\n@Component({\n selector: 'c8y-realtime-btn',\n templateUrl: './realtime-button.component.html'\n})\nexport class RealtimeButtonComponent {\n @Input()\n service: RealtimeService<any>;\n\n get active(): boolean {\n return !!this.service && this.service.active;\n }\n\n toggle() {\n if (this.service) {\n this.active ? this.service.stop() : this.service.start();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '../common/common.module';\nimport { RealtimeButtonComponent } from './realtime-button.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [RealtimeButtonComponent],\n exports: [RealtimeButtonComponent]\n})\nexport class RealtimeModule {}\n","import { IIdentified } from '@c8y/client';\n\nexport interface ISelectModalObject {\n groupId: string | number;\n body: ISelectModalBodyPart[];\n options: ISelectModalOption[];\n additionalInformation?: ISelectModalBodyPart;\n}\n\nexport interface ISelectModalOption {\n body: ISelectModalBodyPart[];\n obj: IIdentified;\n selected?: boolean;\n}\n\nexport interface ISelectModalBodyPart {\n value: string;\n class?: string;\n}\n\nexport interface ModalLabels {\n ok?: string;\n cancel?: string;\n}\n\nexport enum ModalSelectionMode {\n SINGLE = 'single',\n MULTI = 'multi'\n}\n","import { Component, Input, EventEmitter, SimpleChanges, Output } from '@angular/core';\nimport { gettext } from '../i18n/gettext';\nimport { BsModalRef } from 'ngx-bootstrap';\nimport {\n ISelectModalObject,\n ModalSelectionMode,\n ModalLabels\n} from './select-modal.model';\nimport { assign } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { IIdentified } from '@c8y/client';\n\ninterface ISelectModalInternalObject extends ISelectModalObject {\n selectedId: string | number;\n}\n\n@Component({\n selector: 'c8y-select-modal',\n templateUrl: './select-modal.component.html'\n})\nexport class SelectModalComponent {\n @Input() icon: string;\n @Input() title: string;\n @Input() subTitle: string = gettext('Select from the list of items matching the device type');\n @Input() items: ISelectModalInternalObject[];\n @Input() mode: ModalSelectionMode = ModalSelectionMode.MULTI;\n @Input() disableSelected: boolean = true;\n @Input() showFilter: boolean = true;\n @Input() areMoreEntries: boolean = false;\n @Input() set labels(labels: ModalLabels) {\n const { ok = this.labels.ok, cancel = this.labels.cancel } = labels || {};\n this._labels = { ok, cancel };\n }\n get labels(): ModalLabels {\n return this._labels;\n }\n @Output() result: EventEmitter<IIdentified | IIdentified[]> = new EventEmitter<\n IIdentified | IIdentified[]\n >();\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n selected = false;\n filterTerm: string = '';\n listItems = [];\n private debouncer: Subject<string> = new Subject<string>();\n private _labels: ModalLabels = { ok: gettext('Confirm'), cancel: gettext('Cancel') };\n\n constructor(private bsModalRef: BsModalRef) {\n this.debouncer.pipe(debounceTime(500)).subscribe(value => {\n this.search.emit(value);\n });\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n if (changes.items && changes.items.currentValue) {\n const itemsPromise = changes.items.currentValue.map(async item => {\n item.options = await item.options;\n const selected = item.options.find(option => option.selected);\n if (selected) {\n item.selectedId = selected.obj.id;\n if (this.disableSelected) {\n item.options.map(option => assign(option, { disabled: true }));\n }\n }\n return item;\n });\n this.listItems = await Promise.all(itemsPromise);\n }\n }\n\n updatePipe(filterTerm: string) {\n this.debouncer.next(filterTerm);\n this.filterTerm = filterTerm;\n }\n\n updateChoice({ item, id }) {\n if (this.mode === 'single') {\n this.listItems.map(value => (value.selectedId = undefined));\n }\n item.selectedId = id;\n this.selected = true;\n }\n\n dismiss() {\n this.bsModalRef.hide();\n }\n\n select() {\n const outputArray = this.getOutput();\n const output = this.mode === 'single' ? outputArray[0] : outputArray;\n this.result.emit(output);\n this.bsModalRef.hide();\n }\n\n ngOnDestroy() {\n this.debouncer.complete();\n this.result.complete();\n this.search.complete();\n }\n\n private getOutput(): IIdentified | IIdentified[] {\n return this.listItems\n .filter(item => item.selectedId)\n .map(item => item.options.find(option => item.selectedId === option.obj.id))\n .map(selectedOption => selectedOption.obj);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ISelectModalObject } from './select-modal.model';\n\n@Pipe({\n name: 'selectModalFilterPipe',\n})\nexport class SelectModalFilterPipe implements PipeTransform {\n transform(items: ISelectModalObject[], filterTerm: string): any {\n return filterTerm.trim().length === 0\n ? items\n : items.filter((item: ISelectModalObject) => {\n const allValues = this.extractValues(item);\n const filteredValues = allValues.filter((value) => this.filterContainString(value, filterTerm));\n return filteredValues.length > 0;\n });\n }\n\n private filterContainString(value: string, filterTerm: string) {\n const term = filterTerm.toLowerCase().trim();\n return value && value.toLowerCase().indexOf(term) > -1;\n }\n\n private extractValues(item) {\n let values = [];\n if ( item.value ) {\n values.push(item.value);\n }\n Object.keys(item).forEach((key) => {\n if (Array.isArray(item[key])) {\n item[key].forEach( obj => values.concat(this.extractValues(obj)) );\n }\n if (item[key] instanceof Object) {\n values = values.concat(this.extractValues(item[key]));\n }\n });\n return values;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { CommonModule } from '../common/common.module';\nimport { ListGroupModule } from '../list-group/list-group.module';\nimport { FormsModule } from '../forms/forms.module';\nimport { SelectModalComponent } from './select-modal.component';\nimport { SelectModalFilterPipe } from './select-modal-filter.pipe';\nimport { SearchModule } from '../search/search.module';\n\n@NgModule({\n imports: [\n BsDropdownModule.forRoot(),\n CommonModule,\n ListGroupModule,\n SearchModule,\n FormsModule\n ],\n exports: [\n SelectModalComponent,\n SelectModalFilterPipe\n ],\n declarations: [\n SelectModalComponent,\n SelectModalFilterPipe\n ]\n})\nexport class SelectModalModule { }\n","import { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { gettext } from '../i18n/gettext';\nimport {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild\n} from '@angular/core';\n\nexport interface Item {\n name: string;\n _selected?: boolean;\n [key: string]: any;\n}\n\nexport type selectedFunction = (item: Item) => boolean;\nexport type selectedLabelFunction = (items: Item[]) => string;\n\n@Component({\n selector: 'c8y-select',\n templateUrl: './select.component.html'\n})\nexport class SelectComponent implements OnChanges {\n @Input() placeholder: string = gettext('Select item');\n @Input() selectedLabel: string | selectedLabelFunction;\n @Input() applyLabel: string = gettext('Apply');\n @Input() items: Item[];\n @Input() selected: Item[] | selectedFunction;\n @Output() onChange: EventEmitter<Item[]> = new EventEmitter();\n @ViewChild(BsDropdownDirective, { static: false }) dropdown: BsDropdownDirective;\n textFilter = '';\n labelText = '';\n isOpen = false;\n filteredItems: Item[] = [];\n searchFilter = null;\n readonly sizeToShowFilter: number = 5;\n labelsForSelectAll: any = {\n all: gettext('All'),\n allFiltered: gettext('All filtered')\n };\n showAllLabel = false;\n private itemsSelected: Set<Item> = new Set();\n private stopClicks = false;\n\n @HostListener('click', ['$event'])\n preventClick(evt) {\n if (this.stopClicks) {\n evt.stopPropagation();\n }\n this.stopClicks = this.isOpen;\n }\n\n isOpenChange(isOpen: boolean) {\n this.isOpen = isOpen;\n if (isOpen) {\n this.updateSelected();\n this.searchFilter = null;\n } else {\n this.stopClicks = false;\n }\n }\n\n outterSelected(item: Item) {\n const { selected } = this;\n let isSelected: any = () => false;\n if (typeof selected === 'function') {\n isSelected = selected;\n } else if (Array.isArray(selected)) {\n isSelected = (i: Item) => selected.indexOf(i) > -1;\n }\n return isSelected(item);\n }\n\n isSelected(item: Item) {\n return this.itemsSelected.has(item);\n }\n\n isAllItemsSelected() {\n return this.itemsSelected.size === this.items.length;\n }\n\n isAllFilteredSelected() {\n return this.itemsSelected.size === this.filteredItems.length;\n }\n\n applyChanges() {\n const selected = Array.from(this.itemsSelected.values());\n this.onChange.emit(selected);\n this.dropdown.hide();\n }\n\n selectAll(checked: boolean) {\n this.filteredItems.forEach(item => this.onChangeItem(checked, item));\n }\n\n onChangeItem(checked: boolean, item: Item) {\n if (checked) {\n this.itemsSelected.add(item);\n } else {\n this.itemsSelected.delete(item);\n }\n }\n\n updateFiltered(term: string) {\n if (term) {\n const search = new RegExp(term, 'i');\n this.filteredItems = this.items.filter(({ name }) => search.test(name));\n } else {\n this.filteredItems = this.items;\n }\n }\n\n getSelectAllToggleStatus() {\n const label = this.getLabel();\n const checked = this.isAllSelected();\n const indeterminate = !checked && this.itemsSelected.size > 0;\n\n return { label, checked, indeterminate};\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.isOpen) {\n return;\n }\n if (changes.items || changes.selected || changes.applyLabel) {\n this.updateSelected();\n this.updateLabel();\n this.showAllLabel = this.isAllItemsSelected();\n }\n }\n\n private updateLabel() {\n const outterSelected = this.items.filter(i => this.outterSelected(i));\n if (typeof this.selectedLabel === 'string') {\n this.labelText = this.selectedLabel;\n } else if (typeof this.selectedLabel === 'function') {\n this.labelText = this.selectedLabel(outterSelected);\n } else {\n this.labelText = outterSelected.map(({ name }) => name).join(', ');\n }\n }\n\n private updateSelected() {\n const { itemsSelected, items } = this;\n itemsSelected.clear();\n items.forEach(item => {\n if (this.outterSelected(item)) {\n itemsSelected.add(item);\n }\n });\n this.filteredItems = items;\n }\n\n private isAllSelected() {\n if (this.getLabel() === this.labelsForSelectAll.allFiltered) {\n return this.isAllFilteredSelected();\n } else {\n return this.isAllItemsSelected();\n }\n }\n\n private getLabel() {\n return this.searchFilter ? this.labelsForSelectAll.allFiltered : this.labelsForSelectAll.all;\n }\n}\n","import {\n ContentChildren,\n Input,\n Output,\n EventEmitter,\n Component,\n ViewChild,\n ElementRef,\n QueryList,\n forwardRef\n} from '@angular/core';\nimport { NG_VALIDATORS, Validator, AbstractControl } from '@angular/forms';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime, map, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { IIdentified } from '@c8y/client';\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { ListItemComponent } from '../list-group/list-item.component';\nimport { findIndex, get, set } from 'lodash-es';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'c8y-typeahead',\n templateUrl: './typeahead.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => TypeaheadComponent)\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => TypeaheadComponent),\n multi: true\n }\n ]\n})\nexport class TypeaheadComponent implements ControlValueAccessor, Validator {\n @ViewChild('searchControl', { static: false }) searchControl: ElementRef;\n @ViewChild('dropdown', { static: false }) dropdown: BsDropdownDirective;\n @ContentChildren(ListItemComponent) list: QueryList<ListItemComponent>;\n\n @Input()\n required: boolean = false;\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n allowFreeEntries: boolean = true;\n\n @Input()\n placeholder: string;\n\n @Input()\n displayProperty: string = 'name';\n\n @Input()\n name: string = this.displayProperty;\n\n @Input()\n selected: IIdentified = {\n id: null\n };\n\n @Output()\n selectedChange = new EventEmitter<IIdentified>();\n\n @Output()\n onSearch = new EventEmitter<string>();\n\n private subscription: Subscription;\n private onChange: (name) => void;\n private onTouched: () => void;\n\n private readonly KEYCODE_UP = 38;\n private readonly KEYCODE_DOWN = 40;\n private readonly KEYCODE_TAB = 9;\n private readonly KEYCODE_ENTER = 13;\n private readonly KEYCODE_ESC = 27;\n\n writeValue(value) {\n this.selected = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n doBlur() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n\n getDisplayProperty() {\n return get(this.selected, this.displayProperty, '');\n }\n\n onShown() {\n this.searchControl.nativeElement.focus();\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngAfterViewInit(): void {\n this.subscription = fromEvent(this.searchControl.nativeElement, 'keydown')\n .pipe(\n map((e: any) => this.handleKeyboard(e)),\n filter((e: any) => e),\n debounceTime(200),\n map((e: any) => e.target.value),\n distinctUntilChanged()\n )\n .subscribe(value => {\n this.selected = {\n id: null\n };\n set(this.selected, this.displayProperty, value || '');\n\n this.onChange(this.selected);\n this.selectedChange.emit(this.selected);\n this.onSearch.emit(value);\n });\n }\n\n handleKeyboard(event): void {\n const keyCode = event.keyCode;\n if (\n [this.KEYCODE_ENTER, this.KEYCODE_DOWN, this.KEYCODE_TAB, this.KEYCODE_UP].includes(keyCode)\n ) {\n const items = this.list.toArray();\n const index = findIndex(items, item => item.active);\n if (keyCode === this.KEYCODE_ENTER || keyCode === this.KEYCODE_TAB) {\n if (index > -1) {\n event.preventDefault();\n items[index].element.nativeElement.click();\n }\n this.dropdown.hide();\n this.searchControl.nativeElement.blur();\n } else {\n this.dropdown.show();\n const upOrDown = keyCode === this.KEYCODE_DOWN ? 1 : -1;\n if (index > -1) {\n items[index].active = false;\n }\n if (items[index + upOrDown]) {\n items[index + upOrDown].active = true;\n }\n }\n return;\n } else if (keyCode === this.KEYCODE_ESC) {\n event.stopPropagation();\n this.dropdown.hide();\n this.searchControl.nativeElement.blur();\n return;\n } else {\n this.dropdown.show();\n }\n return event;\n }\n\n validate(ctrl: AbstractControl): { [key: string]: any } {\n if (this.required && !this.getDisplayProperty()) {\n return { required: true };\n }\n\n if (!this.allowFreeEntries && this.selected && this.selected.id === null) {\n return { notExisting: true };\n }\n\n return null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { SelectComponent } from './select.component';\nimport { CommonModule } from '../common/common.module';\nimport { TypeaheadComponent } from './typeahead.component';\nimport { ListGroupModule } from '../list-group/list-group.module';\nimport { FormsModule } from '../forms/forms.module';\n\n/**\n * The angular module definition for a select.\n * @exports SelectComponent\n */\n@NgModule({\n imports: [\n BsDropdownModule.forRoot(),\n CommonModule,\n ListGroupModule,\n FormsModule\n ],\n exports: [\n SelectComponent,\n TypeaheadComponent\n ],\n declarations: [\n SelectComponent,\n TypeaheadComponent\n ]\n})\nexport class SelectModule { }\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport { StepState } from '@angular/cdk/stepper';\n\n/**\n * Template to be used to override the icons inside the step header.\n */\n@Directive({\n selector: 'ng-template[c8yStepperIcon]'\n})\nexport class C8yStepperIcon {\n /** Name of the icon to be overridden. */\n @Input('c8yStepperIcon') name: StepState;\n\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import {\n Component,\n TemplateRef,\n Input,\n Output,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n EventEmitter\n} from '@angular/core';\nimport { CdkStepper, StepState, STEP_STATE } from '@angular/cdk/stepper';\nimport { C8yStepperIcon } from './stepper-icon.directive';\nimport { Subject, Subscription } from 'rxjs';\n\n/**\n * C8yStepper extends the CdkStepper. You can use cdk based functionality and inputs.\n * Additional to that you are able to modify the behavior and also the look and feel when\n * using the C8yStepper.\n *\n * The C8yStepper is used to present any step-based process to the user.\n * A stepper, C8yStepper and/or CdkStepper is the parent of cdk-steps.\n * Each cdk-step represents one step in the whole process that you want to provide to the user.\n *\n * The C8yStepper will create, based on the given cdk-steps, a kind of stepper-progress which looks like this:\n * (1)---(2)---(3)---(n)\n * The stepper will handle the state of each step and provides styles for active steps, done-steps or in edit-mode.\n * You are able to override icons for each step in the stepper-progress with a template. You are also able to activate\n * default-icons for states like 'edit' and 'done'.\n *\n * To force users through every provided step, set the stepper to 'linear'.\n * This will disable the possibility to move for example from step one to step three.\n *\n * Whenever it comes to validation try to use formGroups. It is possible to\n * assign a formGroup to a cdk-step input called [stepControl], which automatically respects the\n * validation-rules that you created for this formGroup. If fields are required but not filled or\n * any other validation, like a pattern, is not matched the formGroup will be invalid. In this case\n * stepping in a linear stepper to the next step gets impossible.\n *\n * If there is the need to execute asynchronous code you have at least two possibilities.\n * First: As you learned, a cdk-step works with formGroups and Validators, so you are able to use\n * asyncValidators as well.\n * Second: The C8yStepper provides an event-emitter onStepChange which is called whenever a step-button (1)--(2)--(n)\n * in the stepper-progress is clicked. The event of this emitter holds the index of the step as number. You can\n * use this EventEmitter to call for example a custom navigate-method which performs first any async-call and then moves\n * on to the given step.\n *\n * @example\n * ```\n * <c8y-stepper\n * (onStepChange)=\"navigate($event)\"\n * [disableDefaultIcons]=\"{ edit: true, done: false }\"\n * [customClasses]=\"['m-l-40', 'm-r-40', 'm-t-32']\"\n * linear\n * >\n * <!-- override icons -->\n * <ng-template c8yStepperIcon=\"final\">\n * <span [c8yIcon]=\"'hand-peace-o'\"></span>\n * </ng-template>\n *\n * <cdk-step [stepControl]=\"formGroupStepOne\" label=\"Name of the hero\">\n * <div class=\"m-l-40 m-r-40 m-t-32\">\n * <h4 class=\"p-b-8\" translate>What is the name of your hero?</h4>\n * <c8y-form-group>\n * <div [formGroup]=\"formGroupStepOne\">\n * <input\n * class=\"form-control\"\n * type=\"text\"\n * formControlName=\"name\"\n * placeholder=\"Mister X\"\n * #nameRef\n * required\n * />\n * <c8y-messages>\n * <c8y-message *ngIf=\"!formGroupStepOne.untouched && !nameRef.value\" translate\n * >Enter the name of the Superhero</c8y-message\n * >\n * </c8y-messages>\n * </div>\n * </c8y-form-group>\n * </div>\n * <c8y-stepper-buttons></c8y-stepper-buttons>\n * </cdk-step>\n * <cdk-step>\n * ...\n * </cdk-step state=\"final\">\n * </c8y-stepper>\n * ```\n */\n@Component({\n selector: 'c8y-stepper',\n templateUrl: './stepper.component.html',\n providers: [{ provide: CdkStepper, useExisting: C8yStepper }]\n})\nexport class C8yStepper extends CdkStepper implements AfterContentInit, OnDestroy {\n /**\n * Optional\n * Indicator if icons for edit and done state should be shown in step-header buttons\n */\n @Input() disableDefaultIcons?: { edit: boolean; done: boolean } = { edit: true, done: true };\n /**\n * Optional\n * Possibility to add any kind of custom css classes to the step-header\n */\n @Input() customClasses?: [string];\n /**\n * Will emit the step index number whenever a step-header button was clicked\n * It listens to the stepIndex Subject.\n */\n @Output() onStepChange = new EventEmitter<number>();\n\n /**\n * Holding a QueryList of C8yStepperIcons\n * These are templateRefs which overrides any step-header button icon with matching state of cdk-step\n *\n * @example:\n * ```\n * <!-- override icons -->\n * <ng-template c8yStepperIcon=\"final\">\n * <span [c8yIcon]=\"'hand-peace-o'\"></span>\n * </ng-template>\n *\n * <cdk-step state=\"final\" label=\"Job done!\">\n * <div class=\"m-l-40 m-r-40 m-t-32\">\n * <h4 class=\"p-b-32\" style=\"text-align: center;\" translate>\n * Your Superhero is now ready to save the world!\n * </h4>\n * </div>\n * <c8y-stepper-buttons\n * [hidden]=\"!isModal\"\n * (onBack)=\"close()\"\n * [labels]=\"{ back: 'Got it!' }\"\n * ></c8y-stepper-buttons>\n * <c8y-stepper-buttons [hidden]=\"isModal\"></c8y-stepper-buttons>\n * </cdk-step>\n * ```\n */\n @ContentChildren(C8yStepperIcon, { descendants: true }) _icons: QueryList<C8yStepperIcon>;\n\n /** Consumer-specified template-refs to be used to override the header icons. */\n _iconOverrides: { [key: string]: TemplateRef<any> } = {};\n\n private _stepIndex: Subject<number> = new Subject();\n private _stepIndexSubscription: Subscription;\n\n ngAfterContentInit() {\n this._icons.forEach(({ name, templateRef }) => (this._iconOverrides[name] = templateRef));\n this._stepIndexSubscription = this._stepIndex.subscribe(index => this.onStepChange.emit(index));\n }\n\n ngOnDestroy() {\n if (this._stepIndexSubscription && !this._stepIndexSubscription.closed) {\n this._stepIndexSubscription.unsubscribe();\n }\n }\n\n /**\n * Manipulates the state based on the disabledDefaultIcons Input()\n * Changing edit or done to false will change the icons within step-header buttons\n * @param index step index\n * @param state step state, like 'done', 'edit', 'error'\n */\n getIndicatorType(index: number, state: StepState) {\n const stepState = this._getIndicatorType(index, state);\n let _state = state;\n switch (stepState) {\n case STEP_STATE.EDIT:\n if (!this.disableDefaultIcons.edit) {\n _state = STEP_STATE.EDIT;\n }\n break;\n\n case STEP_STATE.DONE:\n if (!this.disableDefaultIcons.done) {\n _state = STEP_STATE.DONE;\n } else {\n _state = '_done';\n }\n break;\n }\n return _state;\n }\n\n /**\n * Pushs the step index to the subject\n * @param index step index\n */\n setIndex(index: number) {\n this._stepIndex.next(index);\n }\n}\n","import { Component, Input, Output, TemplateRef, EventEmitter } from '@angular/core';\nimport { StepState } from '@angular/cdk/stepper';\n\n@Component({\n selector: 'c8y-stepper-progress',\n templateUrl: './stepper-progress.component.html'\n})\nexport class C8yStepperProgress {\n /** List of overriden icons as TemplateRef. Also default icons could be overriden.\n * The given overriden icons will replace an icon with matching state: StepState\n *\n * <ng-container\n * *ngSwitchCase=\"true\"\n * [ngTemplateOutlet]=\"iconOverrides[state]\"\n * ></ng-container>\n *\n */\n @Input() iconOverrides: { [key: string]: TemplateRef<any> };\n /** The index of the current step */\n @Input() index: number;\n /** Whether the step is cuurently selected or not */\n @Input() selected: boolean;\n /** The current state of the step */\n @Input() state: StepState;\n\n /** Emits the index: number of the step which was clicked */\n @Output() onStepClicked = new EventEmitter<number>();\n\n /** Called on click and emits the step index */\n stepSelected() {\n this.onStepClicked.emit(this.index);\n }\n}\n","import { CdkStep } from '@angular/cdk/stepper';\nimport {\n AfterContentInit,\n Component,\n EventEmitter,\n Host,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { C8yStepper } from './stepper.component';\n\n/**\n * C8yStepperButtons provides a convinient way to have, according to\n * the C8yStepper and each cdk-step, buttons to navigate between steps or to cancel the whole\n * step-process. Buttons rendered with the help of this component will use the branding css.\n *\n * By default all steps with this component in use will render a next button, expect the last step.\n * The other way around, every step using this component will render a back button, expect the first step.\n * To get a cancel button rendered you need to handle the onCancel event.\n * For next and back button you don't need to handle the available events onNext and onBack because default behavior\n * is implemented. The default will just call, according to the button, the stepper.next() or stepper.previous()\n * methods and moves the stepper forth or back. Using the EventEmitter onNext and onBack will emit for you the following\n * object: {stepper: C8yStepper, step: CdkStep}. This is useful if you need to implement custom logic before moving\n * to the next step or sending data to a backend. In this case you need to tell the stepper to move forward or back\n * on your own.\n *\n * With the component input [labels] you can change the label of each button in each step. It takes an object like this:\n * {next?: string, back?: string, cancel?: string}\n *\n * The [pending] input is of type boolean and will enable css animation for the next button when true.\n *\n * If the cdk-step provides a stepControl the component will set the next button disabled when the formGroup\n * behind it is invalid. As long as the [pending] input is true the back and next button is also disabled.\n * This will prevent multiple clicks while running a request or stepping back while a request is ongoing.\n *\n * @example\n * ```\n * <c8y-stepper>\n * <cdk-step>\n * <!--\n * your html code\n * ...\n * ... -->\n * <c8y-stepper-buttons\n * (onNext)=\"save()\"\n * [labels]=\"{ next: 'Save' }\"\n * [pending]=\"pendingStatus\"\n * ></c8y-stepper-buttons>\n * </cdk-step>\n * </c8y-stepper>\n *\n * // in your component:\n * async save() {\n * this.pendingStatus = true;\n * // your async request goes here ...\n * // await something();\n * this.pendingStatus = false;\n * this.stepper.next();\n * }\n * ```\n */\n@Component({\n selector: 'c8y-stepper-buttons',\n templateUrl: './stepper-buttons.component.html'\n})\nexport class C8yStepperButtons implements AfterContentInit, OnDestroy, OnChanges {\n /**\n * Optional\n * Specify custom labels for each button (cancel, back or next)\n */\n @Input() labels?: { cancel?: string; back?: string; next?: string; custom?: string };\n /**\n * Optional\n * Indicates if a request is pending and sets the next button\n * to disabled when true\n */\n @Input() pending?: boolean = false;\n\n /**\n * Disabled state of a button\n */\n @Input() disabled?: boolean = false;\n\n /**\n * EventEmitter which emits when cancel button is clicked\n */\n @Output() onCancel = new EventEmitter();\n /**\n * EventEmitter which emits {stepper: C8yStepper; step: CdkStep} when next button is clicked.\n */\n @Output() onNext = new EventEmitter<{ stepper: C8yStepper; step: CdkStep }>();\n\n /**\n * EventEmitter which emits {stepper: C8yStepper; step: CdkStep} when back button is clicked.\n */\n @Output() onBack = new EventEmitter<{ stepper: C8yStepper; step: CdkStep }>();\n\n /**\n * EventEmitter which emits when the optional custom button is clicked\n */\n @Output() onCustom = new EventEmitter();\n\n /**\n * Indicator which button should be shown.\n * Based on the cdk-steps within the c8y-stepper\n * next and back buttons are rendered.\n */\n showBtns = {\n cancel: false,\n back: false,\n next: false,\n custom: false\n };\n\n private statusChangeSubscription: Subscription;\n\n constructor(@Host() private stepper: C8yStepper, @Host() private step: CdkStep) {}\n\n ngAfterContentInit() {\n this.showBtns.cancel = this.onCancel.observers.length > 0;\n this.showBtns.custom = this.onCustom.observers.length > 0;\n\n if (this.stepper && this.stepper.steps && this.step) {\n this.showBtns.back = this.stepper.steps.first !== this.step;\n this.showBtns.next = this.stepper.steps.last !== this.step;\n }\n\n if (this.step && this.step.stepControl) {\n this.disabled = this.step.stepControl.invalid;\n\n this.statusChangeSubscription = this.step.stepControl.statusChanges.subscribe(status => {\n this.disabled = this.step.stepControl.invalid;\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n /**\n * Disable save/next button while the status is pending\n * This will prevent multiple clicks and therefore multiple requests\n */\n if (changes && changes.pending) {\n this.disabled = changes.pending.currentValue;\n }\n }\n\n ngOnDestroy() {\n if (this.statusChangeSubscription && !this.statusChangeSubscription.closed) {\n this.statusChangeSubscription.unsubscribe();\n }\n }\n\n /**\n * Gets called when cancel button is clicked.\n * It will emit immediate.\n */\n cancel() {\n this.onCancel.emit();\n }\n\n /**\n * Gets called when next button is clicked. When onNext EventEmitter has an observer registered\n * it will emit the following object {stepper: C8yStepper; step: CdkStep}.\n * Otherwise it will call stepper.next() as default.\n */\n next() {\n if (this.onNext.observers.length > 0) {\n this.onNext.emit({ stepper: this.stepper, step: this.step });\n } else {\n this.stepper.next();\n }\n }\n\n /**\n * Gets called when back button is clicked. When onBack EventEmitter has an observer registered\n * it will emit the following object {stepper: C8yStepper; step: CdkStep}.\n * Otherwise it will call stepper.previous() as default.\n */\n back() {\n this.stepper.selected.completed = false;\n if (this.onBack.observers.length > 0) {\n this.onBack.emit({ stepper: this.stepper, step: this.step });\n } else {\n this.stepper.previous();\n }\n }\n\n /**\n * Gets called when the custom button is clicked.\n * It will emit immediately.\n */\n custom() {\n this.onCustom.emit();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CdkStepperModule, CdkStep, STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\nimport { C8yStepper } from './stepper.component';\nimport { CommonModule } from '../common/common.module';\nimport { C8yStepperIcon } from './stepper-icon.directive';\nimport { C8yStepperProgress } from './stepper-progress.component';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { C8yStepperButtons } from './stepper-buttons.component';\n\n/**\n * The angular module definition for c8y-stepper (Wizard).\n * @exports C8yStepper\n * @exports C8yStepperIcon\n * @exports C8yStepperButtons\n * @exports CdkStep\n */\n@NgModule({\n imports: [CommonModule, CdkStepperModule, TooltipModule],\n declarations: [C8yStepper, C8yStepperIcon, C8yStepperProgress, C8yStepperButtons],\n exports: [C8yStepper, CdkStep, C8yStepperIcon, C8yStepperButtons],\n providers: [\n {\n /**\n * This emables additional states, like: edit, done and error\n * These states are used to display custom icons, if needed.\n * Any change in here will most probably result in not showing custom icons anymore\n */\n provide: STEPPER_GLOBAL_OPTIONS,\n useValue: { displayDefaultIndicatorType: false }\n }\n ]\n})\nexport class StepperModule {}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { PickedDates } from './date-picker.model';\n\n@Component({\n selector: 'c8y-date-picker',\n templateUrl: './date-picker.component.html'\n})\nexport class DatePickerComponent implements OnInit {\n @Output() onDateSelected: EventEmitter<PickedDates> = new EventEmitter();\n\n fgDatePicker: FormGroup;\n\n ngOnInit() {\n this.fgDatePicker = new FormGroup({\n dateFrom: new FormControl(),\n dateTo: new FormControl()\n });\n }\n\n filter() {\n this.onDateSelected.emit(this.fgDatePicker.value);\n }\n\n clearFilter() {\n this.fgDatePicker.setValue({\n dateFrom: null,\n dateTo: null\n });\n this.onDateSelected.emit(null);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule as C8yCommonModule } from '../common/common.module';\nimport { DatePickerComponent } from './date-picker.component';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule as C8yFormsModule } from '../forms/public-api';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { BsDatepickerModule } from 'ngx-bootstrap/datepicker';\n\n/**\n * The angular module definition for a date picker - it allows you to pick either one date or a range of two.\n * @exports DatePickerComponent\n */\n@NgModule({\n imports: [\n C8yFormsModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n BsDropdownModule.forRoot(),\n BsDatepickerModule.forRoot(),\n C8yCommonModule\n ],\n exports: [DatePickerComponent],\n declarations: [DatePickerComponent]\n})\nexport class DatePickerModule {}\n","import { NgModule } from '@angular/core';\nimport { ActionBarModule } from './action-bar/action-bar.module';\nimport { ActionModule } from './action/action.module';\nimport { AlertModule } from './alert/alert.module';\nimport { AuditLogModule } from './audit-log/audit-log.module';\nimport { AuthenticationModule } from './authentication/authentication.module';\nimport { BootstrapModule } from './bootstrap/bootstrap.module';\nimport { BreadcrumbModule } from './breadcrumb/breadcrumb.module';\nimport { CommonModule } from './common/common.module';\nimport { DashboardModule } from './dashboard/dashboard.module';\nimport { DataGridModule } from './data-grid/data-grid.module';\nimport { DeviceStatusModule } from './device-status/device-status.module';\nimport { DocsModule } from './docs/docs.module';\nimport { DropAreaModule } from './drop-area/drop-area.module';\nimport { DynamicComponentModule } from './dynamic-component/dynamic-component.module';\nimport { FilePickerModule } from './file-picker/file-picker.module';\nimport { FormsModule as c8yFormsModule } from './forms/forms.module';\nimport { HeaderModule } from './header/header.module';\nimport { ListGroupModule } from './list-group/list-group.module';\nimport { LoginModule } from './login/login.module';\nimport { ModalModule } from './modal/modal.module';\nimport { NavigatorModule } from './navigator/navigator.module';\nimport { RealtimeModule } from './realtime/realtime.module';\nimport { SearchModule } from './search/search.module';\nimport { SelectModalModule } from './select-modal/select-modal.module';\nimport { SelectModule } from './select/select.module';\nimport { StepperModule as c8yStepperModule } from './stepper/stepper.module';\nimport { TabsModule } from './tabs/tabs.module';\nimport { UserModule } from './user/user.module';\nimport { DatePickerModule } from './date-picker/date-picker.module';\n\n@NgModule({\n exports: [\n ActionBarModule,\n ActionModule,\n AlertModule,\n AuditLogModule,\n BootstrapModule,\n BreadcrumbModule,\n CommonModule,\n DataGridModule,\n DropAreaModule,\n HeaderModule,\n LoginModule,\n ModalModule,\n NavigatorModule,\n AuthenticationModule,\n SearchModule,\n SelectModule,\n TabsModule,\n UserModule,\n c8yFormsModule,\n DeviceStatusModule,\n DocsModule,\n c8yStepperModule,\n DynamicComponentModule,\n DashboardModule,\n ListGroupModule,\n SelectModalModule,\n FilePickerModule,\n RealtimeModule,\n DatePickerModule\n ]\n})\nexport class CoreModule {\n static forRoot() {\n return {\n ngModule: CoreModule,\n providers: [...CommonModule.providers(), ...LoginModule.providers()]\n };\n }\n}\n","import { Injector, Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\nimport { from, isObservable, of, Observable } from 'rxjs';\nimport { every, filter, map, mergeMap, toArray, tap, debounceTime } from 'rxjs/operators';\nimport { Tab } from '../tabs/tab.model';\nimport { Route } from './router.models';\n\n@Injectable()\nexport class RouterTabsResolver {\n constructor(private injector: Injector, private router: Router) {}\n\n get routerStateSnapshot() {\n return this.router.routerState.snapshot;\n }\n\n resolve(route: ActivatedRouteSnapshot) {\n const latestChildren = this.router.config.find(r => route.routeConfig.path === r.path).children;\n return from(latestChildren || []).pipe(\n mergeMap((child: Route) =>\n from(this.getGuards(child)).pipe(\n map((guard: CanActivate) => guard.canActivate(route, this.routerStateSnapshot)),\n mergeMap((result: any) => {\n if (isObservable(result)) {\n return result;\n }\n if (result && typeof result.then === 'function') {\n return from(result);\n }\n return of(result);\n }),\n tap(result => {\n if (Array.isArray(result)) {\n child.tabs = result;\n }\n }),\n every(result => !!result),\n filter(result => result),\n mergeMap(() => (Array.isArray(child.tabs) ? from(child.tabs) : of(child as Tab))),\n map(result =>\n result.label\n ? ({\n label: result.label,\n icon: result.icon,\n path: `${route.url.join('/')}/${result.path}`,\n priority: result.priority\n } as Tab)\n : undefined\n )\n )\n ),\n filter(tabs => !!tabs),\n toArray()\n ) as Observable<Tab[]>;\n }\n\n private getGuards(child: Route) {\n const guards = (child.canActivate || []).map(guard => {\n return this.injector.get(guard);\n });\n if (child.data && child.data.showIf) {\n guards.push({ canActivate: child.data.showIf });\n }\n return guards;\n }\n}\n","import { Route as ngRoute } from '@angular/router';\nimport { ExtensionFactory } from '../common/extension-hooks';\nimport { Tab } from '../tabs/tab.model';\n\nexport enum ViewContext {\n Device = 'device/:id',\n Group = 'group/:id',\n User = 'users/:id',\n Application = 'applications/:id',\n SubscribedApplications = 'subscribedApplications/:id',\n Tenant = 'tenants/:id'\n}\n\nexport type Route = Partial<ngRoute> & {\n path: string;\n label?: string;\n icon?: string;\n context?: ViewContext;\n priority?: number;\n\n /**\n * Allow to emit multiple tabs on one context route.\n */\n tabs?: Tab[];\n};\n\nexport type RouteFactory = ExtensionFactory<Route>;\n","import {\n InventoryService,\n UserService,\n ApplicationService,\n TenantService,\n} from '@c8y/client';\nimport { ViewContext } from './router.models';\n\nexport class ViewContextServices {\n static services = new Map<ViewContext, any>([\n [ViewContext.Device, InventoryService],\n [ViewContext.Group, InventoryService],\n [ViewContext.User, UserService],\n [ViewContext.Application, ApplicationService],\n [ViewContext.SubscribedApplications, ApplicationService],\n [ViewContext.Tenant, TenantService],\n ]);\n\n static contextToService(context: ViewContext) {\n return ViewContextServices.services.get(context);\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRoute,\n NavigationEnd,\n PRIMARY_OUTLET,\n Router,\n UrlSegmentGroup,\n UrlTree\n} from '@angular/router';\nimport { ApiService, ApiCall } from '@c8y/ngx-components/api';\nimport { NEVER, Observable, Subject, Subscription } from 'rxjs';\nimport { filter, map, merge, switchMap, tap } from 'rxjs/operators';\nimport { Tab } from '../tabs/tab.model';\nimport { TabsService } from '../tabs/tabs.service';\nimport { RouterTabsResolver } from './router-tabs.resolver';\nimport { ViewContextServices } from './view-context.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ContextRouteService {\n private dataSubscription: Subscription;\n private routerSubscription: Subscription;\n private lastAddedTabs = [];\n private refreshTrigger = new Subject();\n\n constructor(\n private tabsResolver: RouterTabsResolver,\n private tabsService: TabsService,\n private router: Router,\n private apiService: ApiService,\n private injector: Injector\n ) {}\n\n init(route: ActivatedRoute): void {\n this.routerSubscription = this.router.events\n .pipe(filter(e => e instanceof NavigationEnd))\n .subscribe(() => this.redirectToFirstTab());\n\n this.dataSubscription = route.data\n .pipe(\n merge(this.updatedContext(route), this.refreshTrigger),\n switchMap(() => this.tabsResolver.resolve(route.snapshot)),\n )\n .subscribe(tabs => this.updateTabs(tabs));\n }\n\n destroy(): void {\n this.dataSubscription.unsubscribe();\n this.routerSubscription.unsubscribe();\n this.lastAddedTabs.forEach(t => this.tabsService.remove(t));\n }\n\n refreshContext() {\n this.refreshTrigger.next();\n }\n\n updatedContext(route: ActivatedRoute): Observable<ApiCall> {\n const { data } = route.snapshot;\n const serviceInstance = ViewContextServices.contextToService(data.context);\n if (serviceInstance) {\n const service = this.injector.get(serviceInstance);\n const detailsUrlRegex = service.getDetailUrl(data.contextData).replace(/\\d+/g, '?\\\\d*');\n const contextRegex = new RegExp(detailsUrlRegex, 'i');\n const childrenRegex = new RegExp(`${detailsUrlRegex}/child`, 'i');\n const filterResponse = ({ url, method }) => {\n const contextChanged = contextRegex.test(url) && ['POST', 'PUT'].includes(method);\n const childrenAffected = childrenRegex.test(url) && ['POST', 'DELETE'].includes(method);\n return contextChanged || childrenAffected;\n };\n return this.apiService.hookResponse(filterResponse);\n }\n return NEVER;\n }\n\n private updateTabs(tabs = []) {\n this.lastAddedTabs.forEach(t => this.tabsService.remove(t));\n this.lastAddedTabs = tabs;\n tabs.forEach(t => this.tabsService.add(t));\n this.redirectToFirstTab();\n }\n\n private redirectToFirstTab() {\n if (this.needsRedirect()) {\n this.tabsService.firstTab$.subscribe((tab: Tab) => {\n if (tab) {\n this.router.navigateByUrl(tab.path, { replaceUrl: true });\n }\n });\n }\n }\n\n private needsRedirect() {\n const tree: UrlTree = this.router.parseUrl(this.router.url);\n const groups: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n const isContextRoute = groups.segments.length === 2;\n return isContextRoute;\n }\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { fromFactories } from '../common/extension-hooks';\nimport { RouteFactory, Route } from './router.models';\nimport { TabsService } from '../tabs/tabs.service';\nimport { ContextRouteService } from './context-route.service';\n\n/**\n * A hook to use for Multi Provider extension.\n */\nexport const HOOK_ONCE_ROUTE = new InjectionToken('RouteFactory');\n\n/**\n * A service which defines routes\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class RouterService {\n constructor(\n @Optional() @Inject(HOOK_ONCE_ROUTE) factories: RouteFactory[],\n private router: Router,\n public tabsService: TabsService,\n private contextRouteService: ContextRouteService\n ) {\n fromFactories(factories).subscribe((routes: Route[]) => {\n this.addRoute(routes);\n });\n }\n\n /**\n * Refresh the current context\n */\n refresh() {\n this.contextRouteService.refreshContext();\n }\n\n /**\n * Add a new route to the router configuration or a context.\n * @param route The route to add\n */\n addRoute(route: Route | Route[]) {\n this.addRoutes(Array.isArray(route) ? route : [route]);\n }\n\n private addRoutes(routes) {\n const emptyRoute = this.router.config.find(r => r.path === '**');\n this.router.resetConfig(\n [\n ...this.router.config.filter(r => r.path !== '**'),\n ...routes.map((r: Route) => this.convertRoute(this.router.config, r)),\n emptyRoute\n ].filter(Boolean)\n );\n }\n\n private convertRoute(initialConfig, route: Route) {\n if (route.context) {\n initialConfig.forEach((r: Route) => {\n if (r.data && r.data.context === route.context) {\n r.children = [route, ...(r.children || [])];\n }\n });\n return;\n }\n return route;\n }\n}\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ContextRouteService } from './context-route.service';\n\n@Component({\n selector: 'c8y-context-route',\n templateUrl: './context-route.component.html'\n})\nexport class ContextRouteComponent {\n constructor(private route: ActivatedRoute, private contextRouteService: ContextRouteService) {}\n\n ngOnInit(): void {\n this.contextRouteService.init(this.route);\n }\n\n ngOnDestroy(): void {\n this.contextRouteService.destroy();\n }\n\n refreshTabs() {\n this.contextRouteService.refreshContext();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FetchClient, IFetchOptions } from '@c8y/client';\nimport { Subject, Observable } from 'rxjs';\nimport { ApiCall, ApiCallOptions } from './api.model';\nimport { filter } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiService {\n calls: Observable<ApiCall>;\n private callsSubject = new Subject<ApiCall>();\n\n constructor(private client: FetchClient) {\n this.calls = this.callsSubject.asObservable();\n this.hookIntoClientFetch();\n }\n\n hookResponse(hookFilter: (call: ApiCall) => boolean) {\n return this.callsSubject.pipe(\n filter(({ phase }) => phase === 'finish'),\n filter(hookFilter)\n );\n }\n\n hookRequest(hookFilter: (call: ApiCall) => boolean) {\n return this.callsSubject.pipe(\n filter(({ phase }) => phase === 'start'),\n filter(hookFilter)\n );\n }\n\n async onFinish(call: ApiCall) {\n this.callsSubject.next({ phase: 'finish', ...call });\n }\n\n onStart(call: ApiCall) {\n this.callsSubject.next({ phase: 'start', ...call });\n }\n\n async resolveData(call: ApiCall): Promise<any> {\n const { response, method } = call;\n if ('data' in response) {\n return Promise.resolve({ data: response.data, method });\n } else {\n const cb = (data) => ({ data, method});\n return (response as Response).clone().json().then(cb, cb);\n }\n }\n\n private hookIntoClientFetch() {\n const fetch = this.client.fetch.bind(this.client);\n this.client.fetch = async (url, options: ApiCallOptions & IFetchOptions = { method: 'GET'}) => {\n const { method } = options;\n this.onStart({ options, method, url });\n let fetchPromise = fetch(url, options);\n if (typeof options.responseInterceptor === 'function') {\n fetchPromise = fetchPromise.then(options.responseInterceptor);\n }\n fetchPromise.then(\n (response: Response) => this.onFinish({ response, url, options, method }),\n (response: Response) => this.onFinish({ response, url, options, method })\n );\n return fetchPromise;\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BasicAuth, FetchClient, Realtime, CookieAuth } from '@c8y/client';\nimport { ApiService } from './api.service';\nimport * as services from './services';\n\nfunction toProvider(provide) {\n let deps: any[] = [FetchClient, Realtime];\n if (provide === FetchClient) {\n deps = [CookieAuth];\n }\n if (provide === BasicAuth || provide === CookieAuth) {\n deps = [];\n }\n if (provide === Realtime) {\n deps = [FetchClient];\n }\n return {provide, useClass: provide, deps};\n}\n\nconst providers: any[] = (Object.keys(services).map((k) => toProvider(services[k])) as any[])\n .concat([\n { provide: ApiService, useClass: ApiService, deps: [FetchClient] }\n ]);\n// @dynamic\n@NgModule()\nexport class DataModule {\n static providers() {\n return providers;\n }\n static forRoot() {\n return {\n ngModule: DataModule,\n providers\n };\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate } from '@angular/router';\nimport { from, of } from 'rxjs';\nimport { catchError, map, shareReplay, tap } from 'rxjs/operators';\nimport { ViewContextServices } from './view-context.service';\nimport { InventoryService } from '../../api';\n\n@Injectable()\nexport class ContextRouteGuard implements CanActivate {\n private caches = new Map();\n constructor(private injector: Injector) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n const id = route.paramMap.get('id');\n const service = this.service(route);\n this.clearDetailCached(service, id);\n return this.detailCached(service, id).pipe(\n tap(contextData => (route.data = { ...route.data, contextData })),\n map(() => true),\n catchError(ex => of(false))\n );\n }\n\n private service(route) {\n const serviceInstance = ViewContextServices.contextToService(route.data.context);\n return this.injector.get(serviceInstance);\n }\n\n private detailCached(service, id) {\n const cache = this.getCache(service);\n let cached = cache[id];\n if (!cached) {\n const params = service instanceof InventoryService ? { withChildren: false } : undefined;\n cached = from(service.detail(id, params)).pipe(\n map(({ data }) => data),\n shareReplay(1)\n );\n cache[id] = cached;\n }\n return cached;\n }\n\n private clearDetailCached(service, id) {\n const cache: Map<any, any> = this.getCache(service);\n delete cache[id];\n }\n\n private getCache(service) {\n let cache = this.caches.get(service);\n if (!cache) {\n cache = {};\n this.caches.set(service, cache);\n }\n return cache;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({selector: 'empty', template: ''})\nexport class EmptyComponent {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule as NgRouterModule } from '@angular/router';\nimport { RouterService } from './router.service';\nimport { ContextRouteComponent } from './context-route.component';\nimport { HeaderModule } from '../header/header.module';\nimport { CommonModule } from '../common/common.module';\nimport { ContextRouteGuard } from './context-route.guard';\nimport { ViewContext, Route } from './router.models';\nimport { RouterTabsResolver } from './router-tabs.resolver';\nimport { EmptyComponent } from './empty.component';\n\nexport const routes: Route[] = [{\n path: 'users/new',\n component: EmptyComponent\n},\n{\n path: 'tenants/new',\n component: EmptyComponent\n}];\n// tslint:disable-next-line: forin\nfor (const key in ViewContext) {\n const context = ViewContext[key];\n routes.push({\n path: context,\n component: ContextRouteComponent,\n canActivate: [ ContextRouteGuard ],\n data: { context, contextData: {} },\n resolve: {\n tabs: RouterTabsResolver,\n }\n });\n}\n\n@NgModule({\n declarations: [ ContextRouteComponent, EmptyComponent],\n imports: [\n NgRouterModule.forRoot(routes),\n HeaderModule,\n CommonModule\n ],\n entryComponents: [ContextRouteComponent, EmptyComponent]\n})\nexport class RouterModule {\n static providers() {\n return [\n ContextRouteGuard,\n RouterTabsResolver,\n RouterService\n ];\n }\n\n static forRoot() {\n return {\n ngModule: RouterModule,\n providers: RouterModule.providers()\n };\n }\n\n constructor(routerService: RouterService) {\n // Declared but never used is intended: to always have a instance of RouterService.\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { kebabCase } from 'lodash-es';\r\n\r\n@Component({\r\n selector: 'c8y-quick-link',\r\n templateUrl: './quick-link.component.html'\r\n})\r\nexport class QuickLinkComponent implements OnInit {\r\n @Input() icon;\r\n @Input() label;\r\n classes = '';\r\n\r\n ngOnInit(): void {\r\n this.classes = `card-block text-center ${kebabCase(this.label)}`;\r\n }\r\n}\r\n","import { CoreModule } from '../core.module';\r\nimport { NgModule } from '@angular/core';\r\nimport { QuickLinkComponent } from './quick-link.component';\r\n\r\n@NgModule({\r\n declarations: [QuickLinkComponent],\r\n imports: [CoreModule],\r\n exports: [QuickLinkComponent],\r\n providers: []\r\n})\r\nexport class QuickLinkModule {}\r\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { IIdentified, Realtime } from '@c8y/client';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, finalize, map } from 'rxjs/operators';\nimport { RealtimeMessage } from './realtime.model';\n\n/**\n * A wrapper class for handling realtime notifications in RxJS fashion.\n */\nexport abstract class RealtimeService<T> {\n /**\n * A flag displaying if realtime notifications are currently active.\n */\n get active(): boolean {\n return this.isActive;\n }\n\n private subjects$: Map<string, RealtimeSubject<T>> = new Map<string, RealtimeSubject<T>>();\n private isActive: boolean = true;\n\n constructor(protected realtime: Realtime) {}\n\n /**\n * Get an Observable of all realtime notifications.\n *\n * @param {string | number | IIdentified} entityOrId Entity object or id\n *\n * @returns An [[Observable]] of notifications wrapped as [[RealtimeMessage]]\n */\n onAll$(entityOrId?: string | number | IIdentified): Observable<RealtimeMessage<T>> {\n const subject$: RealtimeSubject<T> = this.getSubjectForChannel(entityOrId);\n\n return subject$.pipe(\n finalize(() => {\n if (subject$.observers.length === 1 && subject$.observers[0].closed) {\n subject$.stop();\n this.subjects$.delete(subject$.channel);\n }\n })\n );\n }\n\n /**\n * Subscribes again all realtime channels with active observers.\n */\n start() {\n if (!this.isActive) {\n this.subjects$.forEach(subject$ => {\n subject$.start();\n });\n this.isActive = true;\n }\n }\n\n /**\n * Stops realtime notifications and unsubscribes all realtime channels.\n */\n stop() {\n if (this.isActive) {\n this.subjects$.forEach(subject$ => {\n subject$.stop();\n });\n\n this.isActive = false;\n }\n }\n\n /**\n * Get an Observable of all CREATE realtime notifications.\n *\n * @returns An [[Observable]] of newly created entity objects.\n */\n onCreate$(): Observable<T> {\n return this.onAll$().pipe(\n filter(msg => msg.realtimeAction === 'CREATE'),\n map(msg => msg.data as T)\n );\n }\n\n /**\n * Get an Observable of all UPDATE realtime notifications.\n *\n * @param {string | number | IIdentified} entityOrId Entity object or id\n *\n * @returns An [[Observable]] of updated entity objects.\n */\n onUpdate$(entityOrId?: string | number | IIdentified): Observable<T> {\n return this.onAll$(entityOrId).pipe(\n filter(msg => msg.realtimeAction === 'UPDATE'),\n map(msg => msg.data as T)\n );\n }\n\n /**\n * Get an Observable of all DELETE realtime notifications.\n *\n * @param {string | number | IIdentified} entityOrId Entity object or id\n *\n * @returns An [[Observable]] of deleted entity objects.\n */\n onDelete$(entityOrId?: string | number | IIdentified): Observable<number> {\n return this.onAll$(entityOrId).pipe(\n filter(msg => msg.realtimeAction === 'DELETE'),\n map(msg => coerceNumberProperty(msg.data))\n );\n }\n\n protected getIdString(reference: number | string | IIdentified): string {\n let id: string | number;\n if (typeof reference === 'object') {\n id = reference.id;\n } else {\n id = reference;\n }\n return String(id);\n }\n\n protected getChannel(entityOrId?: string | number | IIdentified) {\n return entityOrId ? this.channel().replace('*', this.getIdString(entityOrId)) : this.channel();\n }\n\n protected abstract channel(): string;\n\n private getSubjectForChannel(entityOrId?: string | number | IIdentified): RealtimeSubject<T> {\n const channel: string = this.getChannel(entityOrId);\n let subject$: RealtimeSubject<T>;\n if (this.subjects$.has(channel)) {\n subject$ = this.subjects$.get(channel);\n } else {\n subject$ = new RealtimeSubject(channel, this.realtime);\n this.subjects$.set(channel, subject$);\n }\n\n return subject$;\n }\n}\n\n// tslint:disable-next-line: max-classes-per-file\nclass RealtimeSubject<T> extends Subject<RealtimeMessage<T>> {\n realtimeSubscription: object;\n get channel(): string {\n return this.realtimeChannel;\n }\n\n constructor(private realtimeChannel: string, private realtime: Realtime) {\n super();\n this.start();\n }\n\n start() {\n if (!this.realtimeSubscription) {\n this.realtimeSubscription = this.realtime.subscribe(this.realtimeChannel, msg => {\n const data: RealtimeMessage<T> = {\n channel: msg.channel,\n data: msg.data.data,\n id: msg.id,\n realtimeAction: msg.data.realtimeAction\n };\n this.next(data);\n });\n }\n }\n\n stop() {\n if (this.realtimeSubscription) {\n this.realtime.unsubscribe(this.realtimeSubscription);\n this.realtimeSubscription = null;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IOperationBulk, Realtime } from '@c8y/client';\nimport { RealtimeService } from './realtime.service';\n\n/**\n * A service for handling bulk operation realtime notifications in RxJS fashion.\n */\n@Injectable()\nexport class OperationBulkRealtimeService extends RealtimeService<IOperationBulk> {\n constructor(realtime: Realtime) {\n super(realtime);\n }\n\n protected channel(): string {\n return '/bulkOperations/*';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { RealtimeService } from './realtime.service';\nimport { IManagedObject, Realtime } from '@c8y/client';\n\n@Injectable()\nexport class ManagedObjectRealtimeService extends RealtimeService<IManagedObject> {\n constructor(realtime: Realtime) {\n super(realtime);\n }\n\n protected channel(): string {\n return '/managedobjects/*';\n }\n}\n","export class RealtimeMessage<T> {\n id: string;\n channel: string;\n realtimeAction: RealtimeAction;\n data: T | number;\n}\n\nexport type RealtimeAction = 'UPDATE' | 'DELETE' | 'CREATE';\n"],"names":["router","filter","NavigationEnd","merge","startWith","switchMap","of","defer","isFunction","combineLatest","map","flatten","sortBy","isObservable","from","race","distinctUntilChanged","InjectionToken","tslib_1.__extends","Subject","BehaviorSubject","shareReplay","Injector","Router","Injectable","camelCase","isUndefined","Optional","Inject","SystemOptionsService","TenantOptionsService","tslib_1.__param","scan","isDevMode","keys","ApplicationService","ApiService","FetchClient","snakeCase","matches","debounceTime","ViewContainerRef","first","TranslateService","Component","formatDate","each","mapValues","TranslateParser","tap","catchError","mapKeys","HttpClient","get","TranslateDefaultParser","EventEmitter","isEqual","ElementRef","ChangeDetectorRef","tslib_1.__decorate","Input","Directive","LOCALE_ID","TranslateLoader","TranslateCompiler","TranslateFakeCompiler","MissingTranslationHandler","TranslateStore","NgxTranslateService","USE_STORE","USE_DEFAULT_LANG","USE_EXTEND","DEFAULT_LANGUAGE","NgModule","TranslateModule","HttpClientModule","registerLocaleData","Pipe","NgDatePipe","Output","HostBinding","pipe","takeUntil","coerceNumberProperty","assign","TemplateRef","ComponentFactoryResolver","find","negate","upperFirst","Renderer2","Status","OperationStatus","UserService","InventoryService","_memoize","property","DataModule","APP_INITIALIZER","NgCommonModule","TooltipModule","ViewChild","BsDropdownModule","CollapseModule","RouterModule","Attribute","ContentChild","AuditService","LoginViews","EMPTY","isString","tslib_1.__read","BasicAuth","CookieAuth","TenantService","Realtime","TenantLoginOptionsService","LocationStrategy","clone","Client","PasswordStrength","take","BsModalService","NG_VALIDATORS","ControlContainer","NgForm","BsModalRef","isEmpty","HostListener","PopoverDirective","BsModalModule","PopoverModule","parsePhoneNumberFromString","ContentChildren","debounce","timer","NgModel","NgControl","NgFormsModule","QRCodeModule","escape","escapeRegExp","FormsModule","includes","orderBy","NgZone","RouterLinkActive","ViewChildren","C8yFormsModule","fromEvent","fromEventPattern","mergeMap","CommonModule","DomSanitizer","forwardRef","ChangeDetectionStrategy","expand","ReplaySubject","DragDropModule","FilteringActionType","flow","finalize","isNil","pick","omitBy","chunk","tslib_1.__assign","union","without","tslib_1.__spread","_parseInt","CdkHeaderCell","Type","CdkTableModule","ReactiveFormsModule","C8YCommonModule","PaginationModule","PushStatusLabels","SendStatusLabels","some","C8yCommonModule","delay","ModalSelectionMode","BsDropdownDirective","set","findIndex","NG_VALUE_ACCESSOR","STEP_STATE","CdkStepper","Host","CdkStep","CdkStepperModule","STEPPER_GLOBAL_OPTIONS","FormGroup","FormControl","BsDatepickerModule","c8yFormsModule","c8yStepperModule","every","toArray","ViewContext","NEVER","PRIMARY_OUTLET","ActivatedRoute","NgRouterModule","kebabCase"],"mappings":"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"}