@c8y/ngx-components 1006.6.36 → 1006.6.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/c8y-ngx-components-connectivity.umd.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-connectivity.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-context-dashboard.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +400 -131
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +2 -2
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.d.ts +90 -87
- package/c8y-ngx-components.metadata.json +1 -1
- package/connectivity/c8y-ngx-components-connectivity.metadata.json +1 -1
- package/context-dashboard/c8y-ngx-components-context-dashboard.metadata.json +1 -1
- package/core/authentication/new-password.component.d.ts +8 -6
- package/core/docs/guide-docs.component.d.ts +25 -3
- package/core/forms/validation-pattern.d.ts +1 -0
- package/core/i18n/force-html-translate.directive.d.ts +32 -0
- package/core/login/change-password.component.d.ts +1 -1
- package/core/login/login.service.d.ts +15 -2
- package/core/login/password-strength-validator.directive.d.ts +9 -0
- package/core/login/strength-validator-service.d.ts +7 -0
- package/core/user/user-edit.component.d.ts +4 -2
- package/esm2015/c8y-ngx-components.js +90 -87
- package/esm2015/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm2015/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm2015/core/authentication/new-password.component.js +15 -20
- package/esm2015/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm2015/core/docs/guide-docs.component.js +69 -4
- package/esm2015/core/forms/validation-pattern.js +2 -1
- package/esm2015/core/i18n/force-html-translate.directive.js +99 -0
- package/esm2015/core/i18n/i18n.module.js +5 -3
- package/esm2015/core/i18n/pattern-messages.data.js +2 -2
- package/esm2015/core/login/change-password.component.js +5 -5
- package/esm2015/core/login/credentials.component.js +2 -2
- package/esm2015/core/login/login.module.js +4 -2
- package/esm2015/core/login/login.service.js +40 -6
- package/esm2015/core/login/password-strength-validator.directive.js +32 -0
- package/esm2015/core/login/strength-validator-service.js +28 -0
- package/esm2015/core/user/user-edit.component.js +10 -5
- package/esm2015/repository/configuration/configuration-list.component.js +2 -2
- package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/esm5/c8y-ngx-components.js +90 -87
- package/esm5/connectivity/impact/impact-provider-settings.component.js +2 -2
- package/esm5/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
- package/esm5/core/authentication/new-password.component.js +21 -25
- package/esm5/core/dashboard/widgets-dashboard.component.js +2 -2
- package/esm5/core/docs/guide-docs.component.js +72 -4
- package/esm5/core/forms/validation-pattern.js +2 -1
- package/esm5/core/i18n/force-html-translate.directive.js +105 -0
- package/esm5/core/i18n/i18n.module.js +5 -3
- package/esm5/core/i18n/pattern-messages.data.js +2 -2
- package/esm5/core/login/change-password.component.js +5 -5
- package/esm5/core/login/credentials.component.js +2 -2
- package/esm5/core/login/login.module.js +4 -2
- package/esm5/core/login/login.service.js +43 -6
- package/esm5/core/login/password-strength-validator.directive.js +38 -0
- package/esm5/core/login/strength-validator-service.js +29 -0
- package/esm5/core/user/user-edit.component.js +19 -9
- package/esm5/repository/configuration/configuration-list.component.js +2 -2
- package/esm5/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/fesm2015/c8y-ngx-components-connectivity.js +1 -1
- package/fesm2015/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm2015/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm2015/c8y-ngx-components-repository.js +1 -1
- package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +281 -40
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js +1 -1
- package/fesm5/c8y-ngx-components-connectivity.js.map +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js +1 -1
- package/fesm5/c8y-ngx-components-context-dashboard.js.map +1 -1
- package/fesm5/c8y-ngx-components-repository.js +1 -1
- package/fesm5/c8y-ngx-components-repository.js.map +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm5/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/fesm5/c8y-ngx-components.js +315 -49
- package/fesm5/c8y-ngx-components.js.map +1 -1
- package/locales/de.po +71 -60
- package/locales/es.po +120 -85
- package/locales/fr.po +107 -72
- package/locales/ja_JP.po +89 -78
- package/locales/ko.po +92 -57
- package/locales/locales.pot +9 -9
- package/locales/nl.po +95 -60
- package/locales/pl.po +88 -53
- package/locales/pt_BR.po +174 -138
- package/locales/ru.po +120 -85
- package/locales/zh_CN.po +87 -52
- package/package.json +2 -2
- package/repository/c8y-ngx-components-repository.metadata.json +1 -1
- package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-context-dashboard.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@c8y/ngx-components/context-dashboard/context-dashboard.model.ts","ng://@c8y/ngx-components/context-dashboard/context-dashboard.service.ts","ng://@c8y/ngx-components/context-dashboard/device-dashboard.guard.ts","ng://@c8y/ngx-components/context-dashboard/dashboard-detail.component.ts","ng://@c8y/ngx-components/context-dashboard/widget.service.ts","ng://@c8y/ngx-components/context-dashboard/widget-config.component.ts","ng://@c8y/ngx-components/context-dashboard/context-dashboard.component.ts","ng://@c8y/ngx-components/context-dashboard/group-dashboard.guard.ts","ng://@c8y/ngx-components/context-dashboard/dashboard-actions.factory.ts","ng://@c8y/ngx-components/context-dashboard/appearance-settings.component.ts","ng://@c8y/ngx-components/context-dashboard/widget-preview.component.ts","ng://@c8y/ngx-components/context-dashboard/context-dashboard.module.ts","ng://@c8y/ngx-components/context-dashboard/cockpit-dashboard.component.ts","ng://@c8y/ngx-components/context-dashboard/welcome/welcome.component.ts","ng://@c8y/ngx-components/context-dashboard/legacy-welcome/legacy-welcome.component.ts","ng://@c8y/ngx-components/context-dashboard/cockpit-dashboard.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 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) : new P(function (resolve) { resolve(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 __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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","import { InjectionToken } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { Widget, DynamicComponentDefinition, Route, gettext } from '@c8y/ngx-components';\n\nexport const CONTEXT_DASHBOARD_CONFIG = new InjectionToken<any>('ContextDashboardConfig');\n\nexport interface ContextDashboardConfig {\n widgetFilter?: (component: DynamicComponentDefinition) => boolean;\n allowFullscreen?: boolean;\n routes?: Route[];\n}\n\nexport interface ContextWidgetConfig {\n /**\n * Settings that define how the default config component is\n * displayed.\n */\n settings?: {\n /**\n * Avoids to show the widget in the \"add widget\" modal\n */\n noNewWidgets?: boolean;\n ng1?: {\n options: {\n /**\n * Set this to false, to hide the device/group selector\n * @deprecated: This is currently only implemented in angularjs and will be exported to a separate component.\n */\n noDeviceTarget?: boolean;\n /**\n * Set this to false to only select devices\n * @deprecated: This is currently only implemented in angularjs and will be exported to a separate component.\n */\n groupsSelectable?: boolean;\n };\n /**\n * The context from the device selector.\n */\n context?: {\n id?: string;\n name?: string;\n };\n };\n /**\n * Any other information you want to pass to the config template\n */\n [key: string]: any;\n };\n /**\n * The selected device or group (note: naming is inconsistent as group was added later\n * but must stay for already implemented widgets)\n */\n device?: {\n id?: string;\n name?: string;\n };\n /**\n * Any other information that should be stored here.\n */\n [key: string]: any;\n}\n\nexport interface ContextDashboardManagedObject extends IManagedObject {\n c8y_Dashboard?: ContextDashboard;\n}\n\nexport interface ContextDashboard {\n icon?: string;\n name?: string;\n priority?: number;\n deviceType?: boolean;\n deviceTypeValue?: string;\n isFrozen?: boolean;\n classes?: { [key: string]: boolean };\n widgetClasses?: { [key: string]: boolean };\n widgetMargin?: number;\n translateWidgetTitle?: boolean;\n global?: boolean;\n children?: {\n [id: string]: Widget;\n };\n}\n\nexport enum ContextDashboardType {\n Device = 'device',\n DeviceType = 'type',\n Group = 'group',\n Named = 'name'\n}\n\nexport const WIDGET_HEADER_CLASSES = [\n {\n label: gettext('Regular`style`'),\n class: 'panel-title-regular',\n description: gettext('The widget has no border between header and content.')\n },\n {\n label: gettext('Border`style`'),\n class: 'panel-title-border',\n description: gettext('The widget has a small separation border between header and content.')\n },\n {\n label: gettext('Overlay`style`'),\n class: 'panel-title-overlay',\n description: gettext('The widget content overlays the header.')\n },\n {\n label: gettext('Hidden`style`'),\n class: 'panel-title-hidden',\n description: gettext('The widget header is not shown.')\n }\n];\n\nexport const WIDGET_CONTENT_CLASSES = [\n {\n label: gettext('Light`style`'),\n class: 'panel-content-light',\n description: gettext('The widget is styled with a light background and has low contrast.')\n },\n {\n label: gettext('Dark`style`'),\n class: 'panel-content-dark',\n description: gettext('The widget is styled with a dark background and has high contrast.')\n },\n {\n label: gettext('Transparent`style`'),\n class: 'panel-content-transparent',\n description: gettext(\n 'The widget is styled with a transparent background and therefore is border-less.'\n )\n },\n {\n label: gettext('Branded`style`'),\n class: 'panel-content-branded',\n description: gettext('The widget is styled with the main brand color.')\n }\n];\n\nexport const DASHBOARD_THEME_CLASSES = [\n {\n label: gettext('Light`theme`'),\n class: 'dashboard-theme-light',\n description: gettext('The dashboard is styled with a light background and has low contrast.')\n },\n {\n label: gettext('Dark`theme`'),\n class: 'dashboard-theme-dark',\n description: gettext('The dashboard is styled with a dark background and has high contrast.')\n },\n {\n label: gettext('Transparent`theme`'),\n class: 'dashboard-theme-transparent',\n description: gettext(\n 'The dashboard is styled with a transparent background and therefore is border-less.'\n )\n },\n {\n label: gettext('Branded`theme`'),\n class: 'dashboard-theme-branded',\n description: gettext('The dashboard is styled with the main brand color.')\n }\n];\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, UserService } from '@c8y/client';\nimport {\n AppStateService,\n getActivatedRoute,\n gettext,\n ModalService,\n Status,\n TabsService,\n ViewContext,\n Widget,\n Permissions\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { assign, pick, some, keys, keyBy, has, get, forEach, cloneDeep } from 'lodash-es';\nimport { from, of } from 'rxjs';\nimport {\n catchError,\n filter,\n map,\n mergeAll,\n mergeMap,\n tap,\n toArray,\n throwIfEmpty\n} from 'rxjs/operators';\nimport {\n ContextDashboard,\n ContextDashboardManagedObject,\n ContextDashboardType\n} from './context-dashboard.model';\n\n@Injectable()\nexport class ContextDashboardService {\n private cache = new Map<string, ContextDashboardManagedObject>();\n private readonly DEFAULT_PAGESIZE = 1000;\n private readonly FRAGMENT_NAME = 'c8y_Dashboard';\n private readonly DASHBOARD_ROUTE_PATH = 'dashboard';\n private readonly INDEX_SPLIT = '!';\n private currentContextRoute: string;\n private _formDisabled = true;\n\n get formDisabled() {\n return this._formDisabled;\n }\n\n set formDisabled(value) {\n this._formDisabled = value;\n }\n\n constructor(\n private inventory: InventoryService,\n private tabs: TabsService,\n private modal: ModalService,\n private translateService: TranslateService,\n private router: Router,\n private user: UserService,\n private appState: AppStateService,\n private permissions: Permissions\n ) {}\n\n async create(dashboardCfg: ContextDashboard, contextOrName: { contextData: any } | string) {\n let id;\n let dashboardType;\n if (typeof contextOrName === 'string') {\n id = contextOrName as string;\n dashboardType = ContextDashboardType.Named;\n } else {\n id = contextOrName.contextData.id as string;\n dashboardType = this.getDashboardTypeFromViewContext(dashboardCfg, contextOrName);\n }\n\n const dashboard: Partial<IManagedObject> = {};\n assign(dashboard, { c8y_Dashboard: dashboardCfg });\n\n const value =\n dashboardType === ContextDashboardType.DeviceType ? dashboardCfg.deviceTypeValue : id;\n\n const fragmentKey = this.createFragmentKey(dashboardType, value);\n dashboard[fragmentKey] = {};\n\n if (this.shouldSetGlobal(dashboard)) {\n assign(dashboard, { c8y_Global: {} });\n }\n const { data } = dashboardType === ContextDashboardType.Group || dashboardType === ContextDashboardType.Device\n ? await this.inventory.childAdditionsCreate(dashboard, id)\n : await this.inventory.create(dashboard);\n return data as ContextDashboardManagedObject;\n }\n\n async detail(dashboardMO: ContextDashboardManagedObject) {\n const { data } = await this.inventory.detail(dashboardMO);\n this.cache.set(dashboardMO.id, data);\n return data;\n }\n\n async update(dashboard: ContextDashboardManagedObject) {\n const cleanedDashboard = this.clean(pick(dashboard, [this.FRAGMENT_NAME, 'id']));\n cleanedDashboard.c8y_Global = this.shouldSetGlobal(dashboard);\n const { data } = await this.inventory.update(cleanedDashboard);\n this.cache.set(dashboard.id, data);\n return data;\n }\n\n async delete(dashboard: ContextDashboardManagedObject) {\n try {\n let msg = gettext(\n `You are about to delete the dashboard \"{{ dashboardName }}\". Do you want to proceed?`\n );\n if (this.isDeviceType(dashboard)) {\n msg = gettext(\n `You are about to delete the dashboard \"{{ dashboardName }}\" from all devices of the type \"{{ deviceType }}\".\n Do you want to proceed?`\n );\n }\n await this.modal.confirm(\n gettext('Delete dashboard'),\n this.translateService.instant(msg, {\n dashboardName: dashboard.c8y_Dashboard.name,\n deviceType: dashboard.c8y_Dashboard.deviceTypeValue\n }),\n Status.DANGER,\n {\n ok: gettext('Delete'),\n cancel: gettext('Cancel')\n }\n );\n await this.inventory.delete(dashboard);\n const tabToRemove = Array.from(this.tabs.state).find(tab =>\n tab.path.endsWith(`${this.DASHBOARD_ROUTE_PATH}/${dashboard.id}`)\n );\n this.tabs.remove(tabToRemove);\n this.tabs.refresh();\n } catch (ex) {\n // intended empty\n }\n }\n\n activateDashboards(route: ActivatedRouteSnapshot, types: ContextDashboardType[]) {\n const { dashboardId } = route.params;\n if (dashboardId) {\n return this.getDashboard$(dashboardId, types, route.parent.data.contextData).pipe(\n tap(dashboard => {\n route.data = { dashboard };\n }),\n map(() => true),\n catchError(() => {\n return of(false);\n })\n );\n }\n\n return this.getTabs$(route.data.contextData, types);\n }\n\n getNamedDashboardOrCreate(name: string, defaultWidgets: Widget[]) {\n const children = this.mapWidgets(defaultWidgets);\n return this.getDashboard$(name, [ContextDashboardType.Named]).pipe(\n throwIfEmpty(),\n catchError(() =>\n from(\n this.create({children}, name)\n )\n )\n );\n }\n\n async refreshTabs(dashboardMO: ContextDashboardManagedObject) {\n if (!this.isNamed(dashboardMO)) {\n const tabToUpdate = Array.from(this.tabs.state).find(tab =>\n tab.path.endsWith(`${this.DASHBOARD_ROUTE_PATH}/${dashboardMO.id}`)\n );\n\n const data = await this.detail(dashboardMO);\n if (tabToUpdate) {\n const { icon, priority, name } = data.c8y_Dashboard;\n tabToUpdate.icon = icon;\n tabToUpdate.priority = priority;\n tabToUpdate.label = name;\n }\n this.tabs.refresh();\n }\n }\n\n async navigateToDashboard(dashboardMO: ContextDashboardManagedObject) {\n if (/dashboard/.test(this.router.url)) {\n this.router.navigate(['..', dashboardMO.id], {\n relativeTo: getActivatedRoute(this.router)\n });\n } else {\n this.router.navigate(['..', 'dashboard', dashboardMO.id], {\n relativeTo: getActivatedRoute(this.router)\n });\n }\n }\n\n canEditDashboard(mo) {\n return this.permissions.canEdit(['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE'], mo);\n }\n\n isNamed(dashboard: Partial<ContextDashboardManagedObject>) {\n return some(keys(dashboard), prop =>\n new RegExp(\n `^${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.Named}${this.INDEX_SPLIT}`\n ).test(prop)\n );\n }\n\n isDeviceType(dashboard: Partial<ContextDashboardManagedObject>) {\n return some(keys(dashboard), prop =>\n new RegExp(\n `^${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.DeviceType}${\n this.INDEX_SPLIT\n }`\n ).test(prop)\n );\n }\n\n getStyling(styleList, styleName, defaultValue) {\n const styling = styleList.find(style => style && new RegExp(styleName, 'i').test(style.class));\n return styling ? styling.class : defaultValue;\n }\n\n mapWidgets(widgets: Widget[]) {\n return keyBy(\n widgets.map(widget => {\n widget.id = String(Math.random()).substr(2);\n return widget;\n }),\n 'id'\n );\n }\n\n private getDashboard$(\n dashboardIdOrName,\n dashboardType: ContextDashboardType[],\n mo?: IManagedObject\n ) {\n const cache = this.cache.get(dashboardIdOrName);\n\n const dashboards = mo\n ? this.getContextDashboards(mo, dashboardType)\n : [this.getNamedDashboard(dashboardIdOrName)];\n\n const cacheRefresh = this.getContextDashboards$(dashboards).pipe(\n tap((dashboard) => this.cacheDashboard(dashboard)),\n filter(\n dashboard =>\n dashboard.id === dashboardIdOrName ||\n has(\n dashboard,\n `${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.Named}${\n this.INDEX_SPLIT\n }${dashboardIdOrName}`\n )\n )\n );\n return cache ? of(cache) : cacheRefresh;\n }\n\n private getTabs$(mo: ContextDashboardManagedObject, dashboardType: ContextDashboardType[]) {\n const dashboards = this.getContextDashboards(mo, dashboardType);\n this.setBaseContextRoute(mo, dashboardType);\n\n return this.getContextDashboards$(dashboards).pipe(\n map(dashboard => this.removeDashboardMoProperty(dashboard)),\n tap(dashboard => this.cacheDashboard(dashboard)),\n map(dashboard => this.createDashboardTab(dashboard)),\n toArray()\n );\n }\n\n private getContextDashboards$(requests: Array<Promise<IResultList<IManagedObject>>>) {\n return from(requests).pipe(\n mergeAll(),\n mergeMap(response => response.data as ContextDashboardManagedObject[]));\n }\n\n private setBaseContextRoute(mo: IManagedObject, dashboardType: ContextDashboardType[]) {\n const type = dashboardType.includes(ContextDashboardType.Device)\n ? ContextDashboardType.Device\n : ContextDashboardType.Group;\n this.currentContextRoute = `${type}/${mo.id}`;\n }\n\n /**\n * Cleans already corrupted dashboards from dashboardMo property.\n * Added to fix dashboards on the cloud instance (eu-latest).\n * @deprecated This is going to be removed after 1007.7.0.\n */\n private removeDashboardMoProperty(\n dashboard: ContextDashboardManagedObject\n ): ContextDashboardManagedObject {\n const dashboardCopy = cloneDeep(dashboard);\n const children = get(dashboardCopy, 'c8y_Dashboard.children');\n let updateDashboard = false;\n\n forEach(children, child => {\n if (get(child, 'componentTransformConfigWithContext')) {\n delete child.componentTransformConfigWithContext;\n updateDashboard = true;\n }\n if (get(child, 'config.dashboardMo')) {\n delete child.config.dashboardMo;\n updateDashboard = true;\n }\n });\n\n if (updateDashboard) {\n this.update(dashboardCopy);\n }\n return dashboardCopy;\n }\n\n private cacheDashboard(dashboard: ContextDashboardManagedObject) {\n this.cache.set(dashboard.id, dashboard);\n }\n\n private createDashboardTab(dashboard: ContextDashboardManagedObject) {\n const { c8y_Dashboard: _dashboard, id } = dashboard;\n return ({\n icon: _dashboard.icon,\n path: `${this.DASHBOARD_ROUTE_PATH}/${id}`,\n label: _dashboard.name,\n priority: _dashboard.priority\n });\n }\n\n private clean(dashboard) {\n const jsonString = JSON.stringify(dashboard, (key, value) => {\n if (key === '$$hashKey' || key === 'klasses') {\n return undefined;\n }\n\n return value;\n });\n return JSON.parse(jsonString);\n }\n\n private getNamedDashboard(name: string) {\n return this.inventory.list({\n fragmentType: `${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.Named}${\n this.INDEX_SPLIT\n }${name}`,\n pageSize: 1\n });\n }\n\n private getContextDashboards(mo: IManagedObject, dashboardType: ContextDashboardType[]) {\n return dashboardType.map((type: ContextDashboardType) =>\n this.inventory.list({\n fragmentType: `${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${type}${this.INDEX_SPLIT}${\n type === ContextDashboardType.DeviceType ? mo.type : mo.id\n }`,\n pageSize: this.DEFAULT_PAGESIZE\n })\n );\n }\n\n private getDashboardTypeFromViewContext(dashboardCfg, context) {\n let dashboardType;\n if (context.context === ViewContext.Device) {\n dashboardType = dashboardCfg.deviceType\n ? ContextDashboardType.DeviceType\n : ContextDashboardType.Device;\n }\n if (context.context === ViewContext.Group) {\n dashboardType = ContextDashboardType.Group;\n }\n return dashboardType;\n }\n\n private createFragmentKey(contextDashboardType: ContextDashboardType, value: string) {\n return [this.FRAGMENT_NAME, contextDashboardType, value].join(this.INDEX_SPLIT);\n }\n\n private shouldSetGlobal(dashboard: Partial<ContextDashboardManagedObject>) {\n if (this.isNamed(dashboard) || this.isDeviceType(dashboard)) {\n return {};\n }\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { ContextDashboardType } from './context-dashboard.model';\nimport { ContextDashboardService } from './context-dashboard.service';\n\n@Injectable()\nexport class DeviceDashboardGuard {\n constructor(\n private contextDashboardService: ContextDashboardService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n return this.contextDashboardService.activateDashboards(route, [\n ContextDashboardType.Device,\n ContextDashboardType.DeviceType\n ]);\n }\n}\n","import { Component, Inject, ViewChild } from '@angular/core';\nimport { ICON_LIST } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport {\n ContextDashboard,\n DASHBOARD_THEME_CLASSES,\n WIDGET_HEADER_CLASSES\n} from './context-dashboard.model';\nimport { clone } from 'lodash-es';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { NgForm } from '@angular/forms';\n\n@Component({\n selector: 'c8y-dashboard-detail',\n templateUrl: './dashboard-detail.component.html'\n})\nexport class DashboardDetailComponent {\n @ViewChild('dashboardDetailForm', { static: true }) dashboardDetailForm: NgForm;\n dashboard: ContextDashboard;\n current: ContextDashboard;\n deviceType: string;\n isNamedDashboard: boolean;\n icons: string[];\n filteredIcons: string[];\n styling = {\n themeClass: 'dashboard-theme-light',\n headerClass: 'panel-title-regular'\n };\n possibleStyling = { DASHBOARD_THEME_CLASSES, WIDGET_HEADER_CLASSES };\n result: Promise<ContextDashboard> = new Promise((resolve, reject) => {\n this._save = resolve;\n this._cancel = reject;\n });\n\n readonly DEFAULT_DASHBOARD_MARGIN = 12;\n readonly DEFAULT_DASHBOARD_ICON = 'th';\n readonly DEFAULT_DASHBOARD_PRIORITY = 10000;\n readonly DEFAULT_DASHBOARD_NAME = 'Dashboard';\n\n private _save;\n private _cancel;\n\n constructor(\n private modal: BsModalRef,\n @Inject(ICON_LIST) iconList: string[],\n private contextDashboardService: ContextDashboardService\n ) {\n this.icons = iconList;\n this.filteredIcons = iconList;\n }\n\n ngAfterContentInit(): void {\n const defaultDashboardCfg = {\n name: this.DEFAULT_DASHBOARD_NAME,\n priority: this.DEFAULT_DASHBOARD_PRIORITY,\n icon: this.DEFAULT_DASHBOARD_ICON,\n deviceTypeValue: this.deviceType\n };\n\n if (this.dashboard) {\n this.current = clone(this.dashboard);\n this.setDashboardStyle();\n } else {\n this.dashboard = defaultDashboardCfg;\n this.dashboardDetailForm.form.markAsDirty();\n }\n }\n\n save() {\n this.dashboard.classes = { [this.styling.themeClass]: true };\n this.dashboard.widgetClasses = { [this.styling.headerClass]: true };\n this._save(this.dashboard);\n }\n\n close() {\n this._cancel();\n this.modal.hide();\n }\n\n getDashboardPreviewStyle() {\n const cssClasses = {};\n cssClasses[this.styling.headerClass] = true;\n cssClasses[this.styling.themeClass] = true;\n return cssClasses;\n }\n\n selectIcon(icon) {\n this.dashboard.icon = icon;\n this.dashboardDetailForm.form.markAsDirty();\n }\n\n updateFiltered(term: string) {\n if (term) {\n const search = new RegExp(term, 'i');\n this.filteredIcons = this.icons.filter(val => search.test(val));\n } else {\n this.filteredIcons = this.icons;\n }\n }\n\n private setDashboardStyle() {\n const allClasses = {\n ...this.dashboard.classes,\n ...this.dashboard.widgetClasses\n };\n\n const styles = Object.keys(allClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n this.styling.themeClass = this.contextDashboardService.getStyling(\n DASHBOARD_THEME_CLASSES,\n styleName,\n this.styling.themeClass\n );\n this.styling.headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n this.styling.headerClass\n );\n });\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { sortBy, cloneDeep } from 'lodash-es';\nimport { DynamicComponentService, DynamicComponentDefinition } from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ContextDashboardConfig, CONTEXT_DASHBOARD_CONFIG } from './context-dashboard.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n constructor(\n private dynamicComponentService: DynamicComponentService,\n private translateService: TranslateService,\n @Inject(CONTEXT_DASHBOARD_CONFIG) public moduleConfig: ContextDashboardConfig\n ) {}\n\n async getWidgetDefinition(componentId): Promise<DynamicComponentDefinition> {\n return this.dynamicComponentService.getById$(componentId).toPromise();\n }\n\n getWidgetDefinitions() {\n const translatedComponents = Array.from(this.dynamicComponentService.state).map(cmp => ({\n ...cmp,\n label: this.translateService.instant(cmp.label)\n }));\n\n return cloneDeep(sortBy(translatedComponents, 'label').filter(this.moduleConfig.widgetFilter));\n }\n}\n","import { Component, OnDestroy } from '@angular/core';\nimport { DynamicComponentDefinition, Widget } from '@c8y/ngx-components';\nimport { clone, cloneDeep, escapeRegExp, get, omit } from 'lodash-es';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { iif, Subject, Subscription, timer } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport {\n ContextDashboardManagedObject,\n WIDGET_CONTENT_CLASSES,\n WIDGET_HEADER_CLASSES,\n ContextWidgetConfig\n} from './context-dashboard.model';\nimport { WidgetService } from './widget.service';\nimport { ContextDashboardService } from './context-dashboard.service';\n\n@Component({\n selector: 'c8y-widget-config',\n templateUrl: './widget-config.component.html'\n})\nexport class WidgetConfigComponent implements OnDestroy {\n mode: 'config' | 'select' | 'style' = 'select';\n searchResult: DynamicComponentDefinition[];\n components: DynamicComponentDefinition[];\n selected: DynamicComponentDefinition;\n searchChange$ = new Subject();\n searchTerm = '';\n context: any;\n componentLabel: string;\n mo: ContextDashboardManagedObject;\n styling = {\n headerClass: 'panel-title-regular',\n contentClass: 'panel-content-light'\n };\n defaultStyling = {\n headerClass: 'panel-title-regular',\n contentClass: 'panel-content-light'\n };\n possibleStyling = { WIDGET_HEADER_CLASSES, WIDGET_CONTENT_CLASSES };\n current: any;\n widgetConfig: ContextWidgetConfig;\n isUpgrade = false;\n\n get isEdit() {\n return !!this.current;\n }\n\n result: Promise<Widget> = new Promise((resolve, reject) => {\n this._save = resolve;\n this._cancel = reject;\n });\n\n private searchSub: Subscription;\n private _save;\n private _cancel;\n\n constructor(\n private widgetService: WidgetService,\n private modal: BsModalRef,\n public contextDashboardService: ContextDashboardService\n ) {}\n\n ngAfterContentInit(): void {\n this.components = this.widgetService.getWidgetDefinitions();\n\n if (this.selected) {\n this.current = clone(this.selected);\n this.select(this.selected, this.isEdit ? 'config' : 'select');\n }\n\n this.searchSub = this.searchChange$\n .pipe(\n switchMap((event: KeyboardEvent) => iif(() => event.which !== 13, timer(200), timer(10)))\n )\n .subscribe(() => {\n this.search();\n });\n\n if (this.mo.c8y_Dashboard.classes) {\n this.styling = this.setDefaultStyle({\n ...this.mo.c8y_Dashboard.classes,\n ...this.mo.c8y_Dashboard.widgetClasses,\n ...(this.isEdit ? this.current.data.classes : {})\n });\n this.defaultStyling = this.setDefaultStyle({\n ...this.mo.c8y_Dashboard.classes,\n ...this.mo.c8y_Dashboard.widgetClasses\n });\n }\n }\n\n save() {\n const { _x, _y, _width, _height } = this.selected.data;\n\n if (this.widgetConfig && this.widgetConfig.device) {\n const { id, name } = this.widgetConfig.device;\n this.widgetConfig.device = { id, name };\n }\n\n const widget = {\n _x,\n _y,\n _width,\n _height,\n config: omit(this.widgetConfig, 'settings'),\n title: this.selected.data.title,\n componentId: this.selected.id,\n id: this.isEdit ? this.current.data.id : String(Math.random()).substr(2),\n classes: this.getStyle(),\n ...(!this.isEdit ? this.widgetConfig.settings.widgetDefaults : {})\n } as Widget;\n\n this._save(widget);\n }\n\n select(cmp, mode: 'select' | 'config' = 'config') {\n cmp.data = cmp.data || {};\n this.selected = cmp;\n\n this.isUpgrade = !!get(cmp, 'data.settings.upgrade');\n this.contextDashboardService.formDisabled = this.isUpgrade;\n\n if (this.isEdit) {\n const { _x, _y, _width, _height, classes, title } = this.current.data;\n this.selected.data = { ...this.selected.data, _x, _y, _width, _height, classes, title };\n }\n\n this.widgetConfig = cloneDeep(this.composeWidgetConfig(this.selected, this.context));\n\n this.selected.data.title = this.selected.data.title || cmp.label;\n this.componentLabel = cmp.label;\n this.mode = mode;\n }\n\n search() {\n if (this.searchTerm.length > 0) {\n this.searchResult = this.components.filter(cmp =>\n new RegExp(escapeRegExp(this.searchTerm.trim()), 'i').test(cmp.label)\n );\n } else {\n this.resetSearch();\n }\n }\n\n resetSearch() {\n this.searchTerm = '';\n this.searchResult = undefined;\n }\n\n changeMode(mode: 'config' | 'select' | 'style') {\n this.mode = mode;\n }\n\n close() {\n this._cancel();\n this.modal.hide();\n }\n\n getStyle(isPreview = false) {\n const cssClasses = {};\n if (isPreview || !this.isDashboardDefaultStyle(this.styling.headerClass)) {\n cssClasses[this.styling.headerClass] = true;\n }\n\n if (isPreview || !this.isDashboardDefaultStyle(this.styling.contentClass)) {\n cssClasses[this.styling.contentClass] = true;\n }\n\n if (isPreview) {\n cssClasses[`dashboard-theme-${this.defaultStyling.contentClass.split('-').pop()}`] = true;\n }\n\n return cssClasses;\n }\n\n ngOnDestroy(): void {\n this.contextDashboardService.formDisabled = true;\n if (this.searchSub) {\n this.searchSub.unsubscribe();\n }\n }\n\n private isDashboardDefaultStyle(className) {\n const allClasses = {\n ...this.mo.c8y_Dashboard.classes,\n ...this.mo.c8y_Dashboard.widgetClasses\n };\n const styles = Object.keys(allClasses).map(cssClass => ({ class: cssClass }));\n const style = this.contextDashboardService.getStyling(\n styles,\n className.split('-').pop(),\n undefined\n );\n return !!style;\n }\n\n private setDefaultStyle(setClasses) {\n let contentClass = this.styling.contentClass;\n let headerClass = this.styling.headerClass;\n\n const styles = Object.keys(setClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n contentClass = this.contextDashboardService.getStyling(\n WIDGET_CONTENT_CLASSES,\n styleName,\n contentClass\n );\n headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n headerClass\n );\n });\n\n return { headerClass, contentClass };\n }\n\n private composeWidgetConfig(selectedComponent, context = {}) {\n const setting = {\n settings: {\n ...selectedComponent.data.settings,\n ...get(selectedComponent.data.settings, 'ng1.options'),\n ...get(selectedComponent.data, 'ng1.options'),\n context,\n dashboardMo: this.mo.c8y_Dashboard\n },\n ...selectedComponent.data.config\n } as ContextWidgetConfig;\n return this.applyTargetIfDeviceDashboard(setting);\n }\n\n private applyTargetIfDeviceDashboard(widgetConfig: ContextWidgetConfig) {\n const isDeviceType = this.contextDashboardService.isDeviceType(this.mo);\n\n if (isDeviceType) {\n widgetConfig.settings.hideTarget = isDeviceType;\n\n const noDeviceTarget = widgetConfig.settings.ng1\n ? widgetConfig.settings.ng1.options.noDeviceTarget\n : widgetConfig.settings.noDeviceTarget;\n\n if (!noDeviceTarget) {\n widgetConfig.device = {\n id: this.context.id,\n name: this.context.name\n };\n }\n }\n return widgetConfig;\n }\n}\n","import { Component, HostBinding, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n AlertService,\n DashboardChildChange,\n DashboardChildComponent,\n DashboardSettings,\n DynamicComponentDefinition,\n gettext,\n Widget,\n WidgetChange\n} from '@c8y/ngx-components';\nimport { cloneDeep, findIndex, get, keyBy, omit, values } from 'lodash-es';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport {\n ContextDashboard,\n ContextDashboardConfig,\n ContextDashboardManagedObject,\n CONTEXT_DASHBOARD_CONFIG,\n WIDGET_HEADER_CLASSES\n} from './context-dashboard.model';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { DashboardDetailComponent } from './dashboard-detail.component';\nimport { WidgetConfigComponent } from './widget-config.component';\nimport { WidgetService } from './widget.service';\n\n/**\n * The context dashboard is a dashboard which resolves it data from the current context (device or group)\n * it is displayed on. It usually uses the route.data for it, but you can pass\n * a different managedObject to the [mo] input parameter to change that behavior.\n */\n@Component({\n selector: 'c8y-context-dashboard',\n templateUrl: './context-dashboard.component.html',\n host: {\n style: `\n display: block;\n `,\n class: 'dashboard c8y-grid-dashboard'\n }\n})\nexport class ContextDashboardComponent implements OnInit, OnDestroy {\n @Input()\n name: string;\n @Input()\n childrenClasses = '';\n @Input()\n context: any;\n @Input()\n setTitle: boolean = false;\n @Input()\n disabled: boolean = false;\n @Input()\n defaultWidgets: Widget[] = [];\n @Input()\n canDelete: boolean = true;\n @Input()\n isLoading: boolean = true;\n\n @HostBinding('class')\n class = '';\n\n widgets: Widget[] = [];\n mo: ContextDashboardManagedObject;\n dashboard: ContextDashboard;\n\n private dataSub: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private contextDashboardService: ContextDashboardService,\n private alert: AlertService,\n private renderer: Renderer2,\n @Inject(CONTEXT_DASHBOARD_CONFIG) public moduleConfig: ContextDashboardConfig,\n private widgetService: WidgetService,\n private bsModal: BsModalService\n ) {}\n\n ngOnInit() {\n if (!this.name) {\n this.loadContextDashboard();\n return;\n }\n this.loadNamedDashboard();\n }\n\n /**\n * Applies the current context to the widget\n * @param widget The widget to apply the context to.\n */\n applyDeviceTarget(widget) {\n if (widget.config.device) {\n widget.config.device = { id: this.context.id, name: this.context.name };\n }\n }\n\n /**\n * Removes the route listener.\n */\n ngOnDestroy(): void {\n if (this.dataSub) {\n this.dataSub.unsubscribe();\n }\n }\n\n /**\n * Restores the dashboard widgets to the default widgets.\n */\n async restore() {\n this.isLoading = true;\n this.mo.c8y_Dashboard.children = this.contextDashboardService.mapWidgets(this.defaultWidgets);\n await this.contextDashboardService.update(this.mo);\n this.onLoad();\n }\n\n /**\n * Updates all dashboards children's. Useful for position changes on the dashboard.\n * @param child The child to change.\n */\n async updateDashboardChildren(child: DashboardChildChange) {\n const { children } = child;\n const dashboardMO: ContextDashboardManagedObject = this.mo;\n const mappedChildren: { [id: string]: Widget } = keyBy(\n children.map(c => this.componentToWidget(c)),\n 'id'\n );\n dashboardMO.c8y_Dashboard.children = mappedChildren;\n return this.contextDashboardService.update(dashboardMO);\n }\n\n /**\n * Remove the complete dashboard and navigate away.\n */\n async deleteDashboard() {\n await this.contextDashboardService.delete(this.mo);\n if (this.route.parent) {\n const route = this.route.parent.snapshot.url.map(segment => segment.path).join('/');\n this.router.navigateByUrl(route);\n }\n }\n\n /**\n * Edits the current dashboard\n */\n async editDashboard() {\n const initialState = {\n dashboard: this.dashboard,\n deviceType: this.context.type,\n isNamedDashboard: this.contextDashboardService.isNamed(this.mo)\n };\n const modal = this.bsModal.show(DashboardDetailComponent, {\n class: 'modal-lg',\n initialState,\n ignoreBackdropClick: true\n }).content as DashboardDetailComponent;\n try {\n const dashboardMO = cloneDeep(this.mo);\n dashboardMO.c8y_Dashboard = await modal.result;\n await this.contextDashboardService.update(dashboardMO);\n await this.contextDashboardService.refreshTabs(dashboardMO);\n this.onLoad();\n modal.close();\n } catch (ex) {\n // intended empty\n }\n }\n\n /**\n * Edits a widget on the dashboard.\n * @param change The widget change event.\n */\n async editWidget(change: WidgetChange) {\n const { x, y, width, height } = change.source;\n const component = await this.widgetService.getWidgetDefinition(\n change.widget.name || change.widget.componentId\n );\n if (!component) {\n this.addWidget();\n return;\n }\n await this.addWidget({\n ...component,\n data: { ...component.data, ...change.widget, _x: x, _y: y, _width: width, _height: height }\n });\n }\n\n /**\n * Adds a widget to the dashboard.\n * @param selected Define a selected component to switch to edit mode directly.\n */\n async addWidget(selected?: DynamicComponentDefinition) {\n const initialState = {\n mo: this.mo,\n context: this.context,\n selected: cloneDeep(selected)\n };\n\n const modal = this.bsModal.show(WidgetConfigComponent, {\n class: 'modal-lg',\n initialState,\n ignoreBackdropClick: true\n }).content as WidgetConfigComponent;\n\n try {\n const newWidget = await modal.result;\n if (!this.mo.c8y_Dashboard.children) {\n this.mo.c8y_Dashboard.children = {};\n }\n this.mo.c8y_Dashboard.children[newWidget.id] = newWidget;\n this.contextDashboardService.update(this.mo);\n newWidget.classes = this.mergeWidgetClasses(newWidget);\n await this.updateWidget(newWidget);\n modal.close();\n } catch (ex) {\n // intended empty\n }\n }\n\n /**\n * Updates a widget or adds a new one if it doesn't exist on\n * the dashboard.\n * @param widget The new widget\n */\n async updateWidget(widget) {\n const index = findIndex(this.widgets, { id: widget.id });\n const isNew = index === -1;\n const mappedWidget = await this.mapLegacy(widget);\n if (isNew) {\n this.widgets.push(mappedWidget);\n } else {\n this.widgets.splice(index, 1, mappedWidget);\n }\n }\n\n /**\n * Removes a widget and rearranges the remaining ones\n * if necessary.\n * @param change The change event.\n */\n deleteWidget(change: WidgetChange) {\n const { widget, source } = change;\n delete this.mo.c8y_Dashboard.children[widget.id];\n const removed = this.widgets.find(({ id }) => id === widget.id);\n this.widgets.splice(this.widgets.indexOf(removed), 1);\n\n // using setTimeout to give the component the chance to remove it.\n setTimeout(() => {\n const child = new DashboardChildChange(source);\n child.collapseUpAll();\n this.updateDashboardChildren(child);\n });\n }\n\n /**\n * This is a workaround to ensure that the dragged-element\n * (which is attached to the body) has the right styling.\n */\n addDashboardClassToBody() {\n this.class.split(' ').forEach(cssClass => {\n this.renderer.addClass(document.body, cssClass);\n });\n }\n\n /**\n * This is a workaround to ensure that the dragged-element\n * (which is attached to the body) has the right styling.\n */\n removeDashboardClassFromBody() {\n this.class.split(' ').forEach(cssClass => {\n this.renderer.removeClass(document.body, cssClass);\n });\n }\n\n /**\n * Changes the dashboard settings to frozen or vice versa.\n * @param settings The current settings of the dashboard.\n */\n async toggleFreeze(settings: DashboardSettings) {\n this.toggleIsFrozenFlag(settings);\n try {\n await this.contextDashboardService.update(this.mo);\n if (this.dashboard.isFrozen) {\n this.alert.success(gettext('Your dashboard is locked now.'));\n } else {\n this.alert.success(gettext('Your dashboard is unlocked now.'));\n }\n } catch (ex) {\n this.alert.addServerFailure(ex);\n this.toggleIsFrozenFlag(settings);\n }\n }\n\n private toggleIsFrozenFlag(settings: DashboardSettings) {\n settings.isFrozen = !settings.isFrozen;\n this.dashboard.isFrozen = settings.isFrozen;\n }\n\n private loadContextDashboard() {\n this.dataSub = this.route.data.subscribe(({ dashboard }) => {\n this.context = this.route.parent.snapshot.data.contextData;\n this.mo = dashboard;\n this.dashboard = this.mo.c8y_Dashboard;\n this.onLoad();\n });\n }\n\n private loadNamedDashboard() {\n this.dataSub = this.contextDashboardService\n .getNamedDashboardOrCreate(this.name, this.defaultWidgets)\n .subscribe(mo => {\n this.context = this.context || {};\n this.mo = mo;\n this.dashboard = this.mo.c8y_Dashboard;\n this.onLoad();\n });\n }\n\n private async onLoad() {\n const canEditDashboard = await this.contextDashboardService.canEditDashboard(this.mo);\n this.disabled = !canEditDashboard;\n const dashboardChildren = cloneDeep(this.mo.c8y_Dashboard.children);\n const isDeviceType = this.contextDashboardService.isDeviceType(this.mo);\n const dashboardClasses = {\n 'c8y-grid-dashboard': true,\n dashboard: true,\n ...this.dashboard.classes\n };\n\n this.widgets = await Promise.all<Widget>(\n values(dashboardChildren).map(widget => {\n widget.classes = this.mergeWidgetClasses(widget);\n if (isDeviceType) {\n this.applyDeviceTarget(widget);\n }\n return this.mapLegacy(widget);\n })\n );\n this.class = Object.keys(dashboardClasses).join(' ');\n this.isLoading = false;\n }\n\n private mergeWidgetClasses(widget) {\n const hasHeaderClass = WIDGET_HEADER_CLASSES.find(\n el => widget.classes && widget.classes[el.class]\n );\n const widgetClasses = hasHeaderClass\n ? { ...widget.classes }\n : { ...this.dashboard.widgetClasses, ...widget.classes };\n return {\n card: true,\n 'card-dashboard': true,\n ...widgetClasses\n };\n }\n\n private componentToWidget(child: DashboardChildComponent) {\n return {\n ...omit(child.data, ['componentTransformConfigWithContext', 'transformConfigWithContext']), // remove legacy\n ...({\n _x: child.x,\n _y: child.y,\n _width: child.width,\n _height: child.height\n } as Widget)\n };\n }\n\n private async mapLegacy(widget): Promise<Widget> {\n const cmp = await this.widgetService.getWidgetDefinition(widget.componentId || widget.name);\n if (get(cmp, 'data.settings.upgrade')) {\n widget.widgetComponent = cmp.data.settings.widgetComponent;\n widget.configComponent = cmp.data.settings.configComponent;\n widget.templateUrl = cmp.data.settings.templateUrl;\n widget.configTemplateUrl = cmp.data.settings.configTemplateUrl;\n widget.transformConfigWithContext =\n cmp.data.settings.componentTransformConfigWithContext ||\n cmp.data.settings.transformConfigWithContext;\n } else {\n delete widget.templateUrl;\n delete widget.configTemplateUrl;\n }\n return widget;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { ContextDashboardType } from './context-dashboard.model';\nimport { ContextDashboardService } from './context-dashboard.service';\n\n@Injectable()\nexport class GroupDashboardGuard {\n constructor(\n private contextDashboardService: ContextDashboardService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n return this.contextDashboardService.activateDashboards(route, [\n ContextDashboardType.Group\n ]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Action, ActionFactory, gettext, ViewContext, Permissions } from '@c8y/ngx-components';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { DashboardDetailComponent } from './dashboard-detail.component';\nimport { ContextDashboardManagedObject } from './context-dashboard.model';\n\n@Injectable()\nexport class DashboardActionsFactory implements ActionFactory {\n constructor(\n private router: Router,\n private contextDashboardService: ContextDashboardService,\n private bsModal: BsModalService,\n private permissions: Permissions\n ) {}\n\n async get(activatedRoute: ActivatedRoute): Promise<Action[]> {\n const context =\n !activatedRoute.parent || activatedRoute.snapshot.data.context\n ? activatedRoute.snapshot.data\n : activatedRoute.parent.snapshot.data;\n const canEditDashboard = await this.isEnabled(context);\n return [\n {\n label: gettext('Add dashboard'),\n priority: 2500,\n action: () => this.addDashboard(context),\n disabled: !canEditDashboard\n }\n ];\n }\n\n async addDashboard(context) {\n let initialState: { deviceType: string };\n\n if (context.context === ViewContext.Device) {\n initialState = {\n deviceType: context.contextData.type\n };\n }\n\n const modal = this.bsModal.show(DashboardDetailComponent, {\n class: 'modal-lg',\n initialState,\n ignoreBackdropClick: true\n }).content as DashboardDetailComponent;\n try {\n const dashboardCfg = await modal.result;\n const dashboardMO: ContextDashboardManagedObject = await this.contextDashboardService.create(\n dashboardCfg,\n context\n );\n await this.contextDashboardService.navigateToDashboard(dashboardMO);\n modal.close();\n } catch (ex) {\n // intended emptys\n }\n }\n\n private async isEnabled(context) {\n if (context.contextData && context.contextData.id) {\n return (\n (await this.permissions.canEdit(\n ['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE'],\n context.contextData\n )) && [ViewContext.Device, ViewContext.Group].includes(context.context)\n );\n }\n return (\n this.permissions.hasAnyRole(['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']) &&\n [ViewContext.Device, ViewContext.Group].includes(context.context)\n );\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { DASHBOARD_THEME_CLASSES, WIDGET_HEADER_CLASSES } from './context-dashboard.model';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n@Component({\n selector: 'c8y-appearance-settings',\n templateUrl: './appearance-settings.component.html',\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\nexport class AppearanceSettingsComponent {\n @Input()\n themeClass: string = 'dashboard-theme-light';\n @Input()\n headerClass: string = 'panel-title-regular';\n @Input()\n defaultThemeClass: string;\n @Input()\n defaultHeaderClass: string;\n @Output()\n themeClassChange = new EventEmitter<string>();\n @Output()\n headerClassChange = new EventEmitter<string>();\n\n @Input()\n possibleStylingTheme = DASHBOARD_THEME_CLASSES;\n\n @Input()\n possibleStylingHeader = WIDGET_HEADER_CLASSES;\n\n themeClassClick(value) {\n value = this.resetToDefault(value, this.themeClass, this.defaultThemeClass);\n this.themeClass = value;\n this.themeClassChange.emit(value);\n }\n\n headerClassClick(value) {\n value = this.resetToDefault(value, this.headerClass, this.defaultHeaderClass);\n this.headerClass = value;\n this.headerClassChange.emit(value);\n }\n\n private resetToDefault(value: string, compareTo: string, defaultValue: string) {\n if (defaultValue && value === compareTo) {\n value = defaultValue;\n }\n return value;\n }\n}\n","import { Input, Component } from '@angular/core';\n\n@Component({\n selector: 'c8y-widget-preview',\n templateUrl: './widget-preview.component.html'\n})\nexport class WidgetPreviewComponent {\n @Input()\n previewClasses: { [key: string]: boolean } = {\n 'dashboard-theme-light': true,\n 'panel-title-regular': true\n };\n\n @Input()\n tab: { name: string; icon: string };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport {\n HOOK_ONCE_ROUTE,\n ViewContext,\n CoreModule,\n HOOK_ACTION\n} from '@c8y/ngx-components';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { DeviceDashboardGuard } from './device-dashboard.guard';\nimport { ContextDashboardComponent } from './context-dashboard.component';\nimport { GroupDashboardGuard } from './group-dashboard.guard';\nimport { CONTEXT_DASHBOARD_CONFIG, ContextDashboardConfig } from './context-dashboard.model';\nimport { DashboardDetailComponent } from './dashboard-detail.component';\nimport { WidgetConfigComponent } from './widget-config.component';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { DashboardActionsFactory } from './dashboard-actions.factory';\nimport { AppearanceSettingsComponent } from './appearance-settings.component';\nimport { WidgetPreviewComponent } from './widget-preview.component';\n\nconst defaultConfig = {\n allowFullscreen: true,\n widgetFilter({ data }) {\n return !(data && data.settings && data.settings.noNewWidgets);\n },\n routes: [\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [DeviceDashboardGuard],\n context: ViewContext.Device\n },\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [GroupDashboardGuard],\n context: ViewContext.Group\n }\n ]\n};\n\n@NgModule({\n declarations: [\n AppearanceSettingsComponent,\n ContextDashboardComponent,\n WidgetConfigComponent,\n WidgetPreviewComponent,\n DashboardDetailComponent\n ],\n imports: [CoreModule, TooltipModule, PopoverModule, BsDropdownModule.forRoot()],\n exports: [ContextDashboardComponent, WidgetConfigComponent],\n entryComponents: [ContextDashboardComponent, WidgetConfigComponent, DashboardDetailComponent]\n})\nexport class ContextDashboardModule {\n static config(config: ContextDashboardConfig = {}): ModuleWithProviders {\n return {\n ngModule: ContextDashboardModule,\n providers: [\n {\n provide: CONTEXT_DASHBOARD_CONFIG,\n useValue: { ...defaultConfig, ...config }\n },\n ContextDashboardService,\n DeviceDashboardGuard,\n GroupDashboardGuard,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: { ...defaultConfig, ...config }.routes,\n multi: true\n },\n {\n provide: HOOK_ACTION,\n useClass: DashboardActionsFactory,\n multi: true\n }\n ]\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { gettext, Widget } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-cockpit-dashboard',\n templateUrl: './cockpit-dashboard.component.html'\n})\nexport class CockpitDashboardComponent {\n DEFAULT_HOME_WIDGETS = [\n {\n name: 'cockpit.welcome.widget',\n title: gettext(''),\n _x: 0,\n _y: 0,\n _height: 5,\n _width: 12,\n classes: { 'panel-title-hidden': true }\n },\n {\n name: 'Asset Alarms',\n title: gettext('Active, critical alarms'),\n _x: 0,\n _y: 5,\n _height: 4,\n _width: 6\n },\n {\n name: 'Recent Alarms',\n title: gettext('Recent alarms'),\n _x: 0,\n _y: 9,\n _height: 4,\n _width: 6\n },\n {\n name: 'Map',\n title: gettext('Map'),\n _x: 6,\n _y: 5,\n _height: 8,\n _width: 6\n }\n ] as Widget[];\n}\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { gettext, DocsService, DocLink, NavigatorService } from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { TenantService, ApplicationService, IApplication } from '@c8y/client';\n\n@Component({\n selector: 'c8y-welcome-to-cockpit',\n templateUrl: './welcome.component.html'\n})\nexport class WelcomeToCockpit implements OnInit, OnDestroy {\n @Input() config;\n welcomeMessage;\n quickLinks = [];\n\n private readonly REPORT_NODE: string = 'Reports';\n private readonly CONFIGURATION_NODE: string = 'Configuration';\n private readonly TRIAL: string = 'TRIAL';\n private tenantType: string;\n private navNodes: any[];\n private links: DocLink[];\n private docsSubscription: Subscription;\n private navSubscription: Subscription;\n\n constructor(\n private tenantService: TenantService,\n private docs: DocsService,\n private router: Router,\n private navigator: NavigatorService,\n private applicationService: ApplicationService\n ) {}\n\n async ngOnInit() {\n this.tenantType = await this.tenantService.currentTenantType();\n this.setMessage();\n this.navSubscription = this.navigator.items$.subscribe(nodes => {\n this.navNodes = nodes;\n });\n this.docsSubscription = this.docs.items$.subscribe(links => {\n this.links = links;\n });\n\n // <---TRIAL & REGULAR TENANT --->\n this.createConnectSmartphoneQuickLink();\n await this.createQuicklinkRegisterDevice();\n\n // <--- TRIAL TENANT --->\n if (this.tenantType === this.TRIAL) {\n this.createQuicklinkUserGuide();\n return;\n }\n\n // <--- REGULAR TENANT --->\n this.createQuicklinkAddGroup();\n this.createQuickLinkReports();\n this.createQuicklinkDataPointLibrary();\n this.createQuicklinkSmartRules();\n }\n\n ngOnDestroy() {\n if (this.docsSubscription && !this.docsSubscription.closed) {\n this.docsSubscription.unsubscribe();\n }\n\n if (this.navSubscription && !this.navSubscription.closed) {\n this.navSubscription.unsubscribe();\n }\n }\n\n private setMessage() {\n if (this.tenantType === this.TRIAL) {\n this.welcomeMessage = gettext(`\n The Cockpit application allows you to build IoT applications in minutes.\n To get started, connect any device to the platform.\n If you do not have an IoT device to hand, you can start by connecting your smartphone.\n Click below to be guided through the process.\n `);\n } else {\n this.welcomeMessage = gettext(`\n The Cockpit application provides you with options to manage\n and monitor Internet of Things assets and data from business perspective.\n `);\n }\n }\n\n private createQuicklinkAddGroup() {\n // comes from angularJS factory c8yQuickLinks\n const addGroup: Partial<DocLink> = this.links.find(link => link.label === 'Add group');\n if (addGroup) {\n this.quickLinks.push(addGroup);\n }\n }\n\n private createConnectSmartphoneQuickLink() {\n // Provider in SensorPhoneModule defines the\n // 'Connect smartphone' quicklink.\n const connectSmartphone = this.links.find(link => link.label === 'Connect smartphone');\n if (connectSmartphone) {\n this.quickLinks.push(connectSmartphone);\n }\n }\n\n private createQuickLinkReports() {\n const reports: Partial<DocLink> = {\n icon: 'c8y-reports',\n label: gettext('Reports'),\n url: '/export'\n };\n\n const reportsNode = this.findNavigatorNode(this.REPORT_NODE);\n if (reportsNode && reportsNode.show) {\n reports.click = () => {\n reportsNode.open = true;\n this.router.navigateByUrl(reports.url);\n };\n this.quickLinks.push(reports);\n }\n }\n\n private createQuicklinkDataPointLibrary() {\n const dataPointLib: Partial<DocLink> = {\n icon: 'c8y-data-points',\n label: gettext('Data point library'),\n url: '/datapointlibrary'\n };\n\n const configurationNode = this.findNavigatorNode(this.CONFIGURATION_NODE);\n if (configurationNode && configurationNode.show) {\n dataPointLib.click = () => {\n configurationNode.open = true;\n this.router.navigateByUrl(dataPointLib.url);\n };\n this.quickLinks.push(dataPointLib);\n }\n }\n\n private createQuicklinkSmartRules() {\n const smartRules: Partial<DocLink> = {\n icon: 'c8y-smart-rules',\n label: gettext('Smart rules'),\n url: '/rules'\n };\n const configurationNode = this.findNavigatorNode(this.CONFIGURATION_NODE);\n if (configurationNode && configurationNode.show) {\n smartRules.click = () => {\n configurationNode.open = true;\n this.router.navigateByUrl(smartRules.url);\n };\n this.quickLinks.push(smartRules);\n }\n }\n\n private async createQuicklinkRegisterDevice() {\n const { data } = await this.applicationService.listByUser();\n if (data) {\n const deviceManagement: IApplication = data.find(\n app => app.contextPath === 'devicemanagement'\n );\n if (deviceManagement) {\n const deviceMgmtUrl = this.applicationService.getHref(deviceManagement);\n const registerDevice: Partial<DocLink> = {\n icon: 'c8y-device-connect',\n label: gettext('Register device'),\n click: () => window.open(`${deviceMgmtUrl}/#/deviceregistration`, '_self')\n };\n this.quickLinks.push(registerDevice);\n }\n }\n }\n\n private createQuicklinkUserGuide() {\n const userGuide: Partial<DocLink> = {\n icon: 'c8y-user',\n label: gettext('User guide'),\n url: '/users-guide/getting-started',\n click: () => {\n const userGuideURL = this.docs.getUserGuideLink(userGuide.url) as string;\n window.open(userGuideURL);\n }\n };\n this.quickLinks.push(userGuide);\n }\n\n private findNavigatorNode(nodeRealName: string) {\n if (this.navNodes && this.navNodes.length > 0) {\n return this.navNodes.find((node: any) => node.realName === nodeRealName);\n }\n return undefined;\n }\n}\n","import { Component, Host } from '@angular/core';\r\nimport { ContextDashboardComponent } from '../context-dashboard.component';\r\n\r\n@Component({\r\n selector: 'c8y-legacy-welcome-widget',\r\n templateUrl: './legacy-welcome.component.html'\r\n})\r\nexport class LegacyWelcomeComponent {\r\n constructor(@Host() private dashboard: ContextDashboardComponent) {}\r\n\r\n restore() {\r\n this.dashboard.restore();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { ContextDashboardModule } from './context-dashboard.module';\nimport { ContextDashboardComponent } from './context-dashboard.component';\nimport { DeviceDashboardGuard } from './device-dashboard.guard';\nimport { GroupDashboardGuard } from './group-dashboard.guard';\nimport {\n ViewContext,\n HOOK_NAVIGATOR_NODES,\n gettext,\n CoreModule,\n HOOK_COMPONENTS,\n DynamicComponentDefinition,\n QuickLinkModule,\n DocsModule\n} from '@c8y/ngx-components';\nimport { CockpitDashboardComponent } from './cockpit-dashboard.component';\nimport { ContextWidgetConfig } from './context-dashboard.model';\nimport { WelcomeToCockpit } from './welcome/welcome.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LegacyWelcomeComponent } from './legacy-welcome/legacy-welcome.component';\n\n// import for the preview img to get into the build.\nlet previewImage = '';\ntry {\n // tslint:disable-next-line: no-var-requires\n previewImage = require('./welcome/img/welcome-widget-pr.png');\n} catch (ex) {\n // intended empty\n}\n\n@NgModule({\n entryComponents: [CockpitDashboardComponent, WelcomeToCockpit, LegacyWelcomeComponent],\n imports: [\n DocsModule,\n CoreModule,\n ContextDashboardModule.config({\n routes: [\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [DeviceDashboardGuard],\n context: ViewContext.Device\n },\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [GroupDashboardGuard],\n context: ViewContext.Group\n },\n {\n path: '',\n component: CockpitDashboardComponent\n }\n ]\n }),\n QuickLinkModule,\n TranslateModule\n ],\n declarations: [CockpitDashboardComponent, WelcomeToCockpit, LegacyWelcomeComponent],\n providers: [\n {\n provide: HOOK_NAVIGATOR_NODES,\n useValue: [{ label: gettext('Home'), icon: 'home', priority: 10000, path: '/' }],\n multi: true\n },\n {\n provide: HOOK_COMPONENTS,\n multi: true,\n useValue: [\n {\n id: 'cockpit.welcome.widget',\n label: gettext('Welcome to Cockpit'),\n description: gettext('Displays a welcome message for Cockpit'),\n component: WelcomeToCockpit,\n previewImage,\n data: {\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 12,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n } as ContextWidgetConfig\n }\n ] as DynamicComponentDefinition[]\n },\n {\n provide: HOOK_COMPONENTS,\n multi: true,\n useValue: [\n {\n id: 'Cockpit Welcome',\n label: gettext('Welcome to Cockpit'),\n description: gettext('Displays a welcome message for Cockpit'),\n component: LegacyWelcomeComponent,\n data: {\n settings: {\n noNewWidgets: true,\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n } as ContextWidgetConfig\n }\n ] as DynamicComponentDefinition[]\n }\n ]\n})\nexport class CockpitDashboardModule {}\n"],"names":["InjectionToken","ContextDashboardType","gettext","assign","pick","Status","tap","map","catchError","of","throwIfEmpty","from","getActivatedRoute","some","keys","keyBy","filter","has","toArray","mergeAll","mergeMap","cloneDeep","get","forEach","ViewContext","InventoryService","TabsService","ModalService","TranslateService","Router","UserService","AppStateService","Permissions","Injectable","clone","BsModalRef","Inject","ICON_LIST","tslib_1.__decorate","ViewChild","Component","tslib_1.__param","sortBy","DynamicComponentService","Subject","switchMap","iif","timer","tslib_1.__assign","omit","escapeRegExp","findIndex","DashboardChildChange","values","ActivatedRoute","AlertService","Renderer2","BsModalService","Input","HostBinding","EventEmitter","Output","ControlContainer","NgForm","HOOK_ONCE_ROUTE","HOOK_ACTION","NgModule","CoreModule","TooltipModule","PopoverModule","BsDropdownModule","TenantService","DocsService","NavigatorService","ApplicationService","Host","DocsModule","QuickLinkModule","TranslateModule","HOOK_NAVIGATOR_NODES","HOOK_COMPONENTS"],"mappings":";;;;;;IAAA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;;AAEF,IAAO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;;AAED,IAAO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AAED,IAAO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;;AAED,IAAO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACvJ,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;;AAED,IAAO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;;AAED,IAAO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;;AAED,IAAO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO;IACX,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,CAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;;AAEF,IAAO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;;AAED,IAAO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;;AAED,IAAO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;;AAEF,IAAO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;;AAED,IAAO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;;QC/LY,wBAAwB,GAAG,IAAIA,mBAAc,CAAM,wBAAwB,CAAC,CAAC;AA+E1F;IAAA,WAAY,oBAAoB;QAC9B,yCAAiB,CAAA;QACjB,2CAAmB,CAAA;QACnB,uCAAe,CAAA;QACf,sCAAc,CAAA;KACf,EALWC,4BAAoB,KAApBA,4BAAoB,QAK/B;AAED,QAAa,qBAAqB,GAAG;QACnC;YACE,KAAK,EAAEC,qBAAO,CAAC,gBAAgB,CAAC;YAChC,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAEA,qBAAO,CAAC,sDAAsD,CAAC;SAC7E;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,eAAe,CAAC;YAC/B,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAEA,qBAAO,CAAC,sEAAsE,CAAC;SAC7F;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,gBAAgB,CAAC;YAChC,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAEA,qBAAO,CAAC,yCAAyC,CAAC;SAChE;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,eAAe,CAAC;YAC/B,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAEA,qBAAO,CAAC,iCAAiC,CAAC;SACxD;KACF,CAAC;AAEF,QAAa,sBAAsB,GAAG;QACpC;YACE,KAAK,EAAEA,qBAAO,CAAC,cAAc,CAAC;YAC9B,KAAK,EAAE,qBAAqB;YAC5B,WAAW,EAAEA,qBAAO,CAAC,oEAAoE,CAAC;SAC3F;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,aAAa,CAAC;YAC7B,KAAK,EAAE,oBAAoB;YAC3B,WAAW,EAAEA,qBAAO,CAAC,oEAAoE,CAAC;SAC3F;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,oBAAoB,CAAC;YACpC,KAAK,EAAE,2BAA2B;YAClC,WAAW,EAAEA,qBAAO,CAClB,kFAAkF,CACnF;SACF;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,gBAAgB,CAAC;YAChC,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAEA,qBAAO,CAAC,iDAAiD,CAAC;SACxE;KACF,CAAC;AAEF,QAAa,uBAAuB,GAAG;QACrC;YACE,KAAK,EAAEA,qBAAO,CAAC,cAAc,CAAC;YAC9B,KAAK,EAAE,uBAAuB;YAC9B,WAAW,EAAEA,qBAAO,CAAC,uEAAuE,CAAC;SAC9F;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,aAAa,CAAC;YAC7B,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAEA,qBAAO,CAAC,uEAAuE,CAAC;SAC9F;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,oBAAoB,CAAC;YACpC,KAAK,EAAE,6BAA6B;YACpC,WAAW,EAAEA,qBAAO,CAClB,qFAAqF,CACtF;SACF;QACD;YACE,KAAK,EAAEA,qBAAO,CAAC,gBAAgB,CAAC;YAChC,KAAK,EAAE,yBAAyB;YAChC,WAAW,EAAEA,qBAAO,CAAC,oDAAoD,CAAC;SAC3E;KACF;;;QC9GC,iCACU,SAA2B,EAC3B,IAAiB,EACjB,KAAmB,EACnB,gBAAkC,EAClC,MAAc,EACd,IAAiB,EACjB,QAAyB,EACzB,WAAwB;YAPxB,cAAS,GAAT,SAAS,CAAkB;YAC3B,SAAI,GAAJ,IAAI,CAAa;YACjB,UAAK,GAAL,KAAK,CAAc;YACnB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAClC,WAAM,GAAN,MAAM,CAAQ;YACd,SAAI,GAAJ,IAAI,CAAa;YACjB,aAAQ,GAAR,QAAQ,CAAiB;YACzB,gBAAW,GAAX,WAAW,CAAa;YAxB1B,UAAK,GAAG,IAAI,GAAG,EAAyC,CAAC;YAChD,qBAAgB,GAAG,IAAI,CAAC;YACxB,kBAAa,GAAG,eAAe,CAAC;YAChC,yBAAoB,GAAG,WAAW,CAAC;YACnC,gBAAW,GAAG,GAAG,CAAC;YAE3B,kBAAa,GAAG,IAAI,CAAC;SAmBzB;QAjBJ,sBAAI,iDAAY;iBAAhB;gBACE,OAAO,IAAI,CAAC,aAAa,CAAC;aAC3B;iBAED,UAAiB,KAAK;gBACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;aAC5B;;;WAJA;QAiBK,wCAAM,GAAZ,UAAa,YAA8B,EAAE,aAA4C;;;;;;4BAGvF,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;gCACrC,EAAE,GAAG,aAAuB,CAAC;gCAC7B,aAAa,GAAGD,4BAAoB,CAAC,KAAK,CAAC;6BAC5C;iCAAM;gCACL,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,EAAY,CAAC;gCAC5C,aAAa,GAAG,IAAI,CAAC,+BAA+B,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;6BACnF;4BAEK,SAAS,GAA4B,EAAE,CAAC;4BAC9CE,eAAM,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;4BAE7C,KAAK,GACT,aAAa,KAAKF,4BAAoB,CAAC,UAAU,GAAG,YAAY,CAAC,eAAe,GAAG,EAAE,CAAC;4BAElF,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;4BACjE,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;4BAE5B,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;gCACnCE,eAAM,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;6BACvC;kCACgB,aAAa,KAAKF,4BAAoB,CAAC,KAAK,IAAI,aAAa,KAAKA,4BAAoB,CAAC,MAAM,CAAA,EAA7F,wBAA6F;4BAC1G,qBAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,CAAC,EAAA;;4BAAxD,KAAA,SAAwD,CAAA;;gCACxD,qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAA;;4BAAtC,KAAA,SAAsC,CAAA;;;4BAFlC,IAAI,GAAK,SAAL;4BAGZ,sBAAO,IAAqC,EAAC;;;;SAC9C;QAEK,wCAAM,GAAZ,UAAa,WAA0C;;;;;gCACpC,qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;4BAAjD,IAAI,GAAK,CAAA,SAAwC,MAA7C;4BACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BACrC,sBAAO,IAAI,EAAC;;;;SACb;QAEK,wCAAM,GAAZ,UAAa,SAAwC;;;;;;4BAC7C,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAACG,aAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;4BACjF,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;4BAC7C,qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAA;;4BAAtD,IAAI,GAAK,CAAA,SAA6C,MAAlD;4BACZ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BACnC,sBAAO,IAAI,EAAC;;;;SACb;QAEK,wCAAM,GAAZ,UAAa,SAAwC;;;;;;;;4BAE7C,GAAG,GAAGF,qBAAO,CACf,wFAAsF,CACvF,CAAC;4BACF,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;gCAChC,GAAG,GAAGA,qBAAO,CACX,sJACyB,CAC1B,CAAC;6BACH;4BACD,qBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CACtBA,qBAAO,CAAC,kBAAkB,CAAC,EAC3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE;oCACjC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,IAAI;oCAC3C,UAAU,EAAE,SAAS,CAAC,aAAa,CAAC,eAAe;iCACpD,CAAC,EACFG,oBAAM,CAAC,MAAM,EACb;oCACE,EAAE,EAAEH,qBAAO,CAAC,QAAQ,CAAC;oCACrB,MAAM,EAAEA,qBAAO,CAAC,QAAQ,CAAC;iCAC1B,CACF,EAAA;;4BAXD,SAWC,CAAC;4BACF,qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,EAAA;;4BAAtC,SAAsC,CAAC;4BACjC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;gCACtD,OAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAI,KAAI,CAAC,oBAAoB,SAAI,SAAS,CAAC,EAAI,CAAC;6BAAA,CAClE,CAAC;4BACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;4BAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;;;;;;;;SAIvB;QAED,oDAAkB,GAAlB,UAAmB,KAA6B,EAAE,KAA6B;YACrE,IAAA,sCAAW,CAAkB;YACrC,IAAI,WAAW,EAAE;gBACf,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/EI,aAAG,CAAC,UAAA,SAAS;oBACX,KAAK,CAAC,IAAI,GAAG,EAAE,SAAS,WAAA,EAAE,CAAC;iBAC5B,CAAC,EACFC,aAAG,CAAC,cAAM,OAAA,IAAI,GAAA,CAAC,EACfC,oBAAU,CAAC;oBACT,OAAOC,OAAE,CAAC,KAAK,CAAC,CAAC;iBAClB,CAAC,CACH,CAAC;aACH;YAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SACrD;QAED,2DAAyB,GAAzB,UAA0B,IAAY,EAAE,cAAwB;YAAhE,iBAUC;YATC,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAACR,4BAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAChES,sBAAY,EAAE,EACdF,oBAAU,CAAC;gBACT,OAAAG,SAAI,CACF,KAAI,CAAC,MAAM,CAAC,EAAC,QAAQ,UAAA,EAAC,EAAE,IAAI,CAAC,CAC9B;aAAA,CACF,CACF,CAAC;SACH;QAEK,6CAAW,GAAjB,UAAkB,WAA0C;;;;;;;iCACtD,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAA1B,wBAA0B;4BACtB,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;gCACtD,OAAA,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAI,KAAI,CAAC,oBAAoB,SAAI,WAAW,CAAC,EAAI,CAAC;6BAAA,CACpE,CAAC;4BAEW,qBAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;4BAArC,IAAI,GAAG,SAA8B;4BAC3C,IAAI,WAAW,EAAE;gCACT,KAA2B,IAAI,CAAC,aAAa,EAA3C,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,gBAAI,CAAwB;gCACpD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;gCACxB,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;gCAChC,WAAW,CAAC,KAAK,GAAG,MAAI,CAAC;6BAC1B;4BACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;;;;;SAEvB;QAEK,qDAAmB,GAAzB,UAA0B,WAA0C;;;oBAClE,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;wBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE;4BAC3C,UAAU,EAAEC,+BAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;yBAC3C,CAAC,CAAC;qBACJ;yBAAM;wBACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE;4BACxD,UAAU,EAAEA,+BAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;yBAC3C,CAAC,CAAC;qBACJ;;;;SACF;QAED,kDAAgB,GAAhB,UAAiB,EAAE;YACjB,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC;SACxF;QAED,yCAAO,GAAP,UAAQ,SAAiD;YAAzD,iBAMC;YALC,OAAOC,aAAI,CAACC,aAAI,CAAC,SAAS,CAAC,EAAE,UAAA,IAAI;gBAC/B,OAAA,IAAI,MAAM,CACR,MAAI,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,WAAW,GAAGb,4BAAoB,CAAC,KAAK,GAAG,KAAI,CAAC,WAAa,CAC5F,CAAC,IAAI,CAAC,IAAI,CAAC;aAAA,CACb,CAAC;SACH;QAED,8CAAY,GAAZ,UAAa,SAAiD;YAA9D,iBAQC;YAPC,OAAOY,aAAI,CAACC,aAAI,CAAC,SAAS,CAAC,EAAE,UAAA,IAAI;gBAC/B,OAAA,IAAI,MAAM,CACR,MAAI,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,WAAW,GAAGb,4BAAoB,CAAC,UAAU,GACzE,KAAI,CAAC,WACL,CACH,CAAC,IAAI,CAAC,IAAI,CAAC;aAAA,CACb,CAAC;SACH;QAED,4CAAU,GAAV,UAAW,SAAS,EAAE,SAAS,EAAE,YAAY;YAC3C,IAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAA,CAAC,CAAC;YAC/F,OAAO,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;SAC/C;QAED,4CAAU,GAAV,UAAW,OAAiB;YAC1B,OAAOc,cAAK,CACV,OAAO,CAAC,GAAG,CAAC,UAAA,MAAM;gBAChB,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5C,OAAO,MAAM,CAAC;aACf,CAAC,EACF,IAAI,CACL,CAAC;SACH;QAEO,+CAAa,GAArB,UACE,iBAAiB,EACjB,aAAqC,EACrC,EAAmB;YAHrB,iBAyBC;YApBC,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAEhD,IAAM,UAAU,GAAG,EAAE;kBACjB,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC;kBAC5C,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAEhD,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,IAAI,CAC9DT,aAAG,CAAC,UAAC,SAAS,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAA,CAAC,EAClDU,gBAAM,CACJ,UAAA,SAAS;gBACP,OAAA,SAAS,CAAC,EAAE,KAAK,iBAAiB;oBAClCC,YAAG,CACD,SAAS,EACT,KAAG,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,WAAW,GAAGhB,4BAAoB,CAAC,KAAK,GACnE,KAAI,CAAC,WAAW,GACf,iBAAmB,CACvB;aAAA,CACJ,CACF,CAAC;YACF,OAAO,KAAK,GAAGQ,OAAE,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;SACzC;QAEO,0CAAQ,GAAhB,UAAiB,EAAiC,EAAE,aAAqC;YAAzF,iBAUC;YATC,IAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YAChE,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YAE5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,IAAI,CAChDF,aAAG,CAAC,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,GAAA,CAAC,EAC3DD,aAAG,CAAC,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAA,CAAC,EAChDC,aAAG,CAAC,UAAA,SAAS,IAAI,OAAA,KAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAA,CAAC,EACpDW,iBAAO,EAAE,CACV,CAAC;SACH;QAEO,uDAAqB,GAA7B,UAA8B,QAAqD;YACjF,OAAOP,SAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CACxBQ,kBAAQ,EAAE,EACVC,kBAAQ,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,IAAuC,GAAA,CAAC,CAAC,CAAC;SAC3E;QAEO,qDAAmB,GAA3B,UAA4B,EAAkB,EAAE,aAAqC;YACnF,IAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAACnB,4BAAoB,CAAC,MAAM,CAAC;kBAC5DA,4BAAoB,CAAC,MAAM;kBAC3BA,4BAAoB,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,mBAAmB,GAAM,IAAI,SAAI,EAAE,CAAC,EAAI,CAAC;SAC/C;;;;;;QAOO,2DAAyB,GAAjC,UACE,SAAwC;YAExC,IAAM,aAAa,GAAGoB,kBAAS,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAM,QAAQ,GAAGC,YAAG,CAAC,aAAa,EAAE,wBAAwB,CAAC,CAAC;YAC9D,IAAI,eAAe,GAAG,KAAK,CAAC;YAE5BC,gBAAO,CAAC,QAAQ,EAAE,UAAA,KAAK;gBACrB,IAAID,YAAG,CAAC,KAAK,EAAE,qCAAqC,CAAC,EAAE;oBACrD,OAAO,KAAK,CAAC,mCAAmC,CAAC;oBACjD,eAAe,GAAG,IAAI,CAAC;iBACxB;gBACD,IAAIA,YAAG,CAAC,KAAK,EAAE,oBAAoB,CAAC,EAAE;oBACpC,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;oBAChC,eAAe,GAAG,IAAI,CAAC;iBACxB;aACF,CAAC,CAAC;YAEH,IAAI,eAAe,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;aAC5B;YACD,OAAO,aAAa,CAAC;SACtB;QAEO,gDAAc,GAAtB,UAAuB,SAAwC;YAC7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SACzC;QAEO,oDAAkB,GAA1B,UAA2B,SAAwC;YACzD,IAAA,oCAAyB,EAAE,iBAAE,CAAe;YACpD,QAAQ;gBACN,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAK,IAAI,CAAC,oBAAoB,SAAI,EAAI;gBAC1C,KAAK,EAAE,UAAU,CAAC,IAAI;gBACtB,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,EAAE;SACJ;QAEO,uCAAK,GAAb,UAAc,SAAS;YACrB,IAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAC,GAAG,EAAE,KAAK;gBACtD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,SAAS,EAAE;oBAC5C,OAAO,SAAS,CAAC;iBAClB;gBAED,OAAO,KAAK,CAAC;aACd,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SAC/B;QAEO,mDAAiB,GAAzB,UAA0B,IAAY;YACpC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBACzB,YAAY,EAAE,KAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAGrB,4BAAoB,CAAC,KAAK,GACjF,IAAI,CAAC,WAAW,GACf,IAAM;gBACT,QAAQ,EAAE,CAAC;aACZ,CAAC,CAAC;SACJ;QAEO,sDAAoB,GAA5B,UAA6B,EAAkB,EAAE,aAAqC;YAAtF,iBASC;YARC,OAAO,aAAa,CAAC,GAAG,CAAC,UAAC,IAA0B;gBAClD,OAAA,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC;oBAClB,YAAY,EAAE,KAAG,KAAI,CAAC,aAAa,GAAG,KAAI,CAAC,WAAW,GAAG,IAAI,GAAG,KAAI,CAAC,WAAW,IAC9E,IAAI,KAAKA,4BAAoB,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,CAC1D;oBACF,QAAQ,EAAE,KAAI,CAAC,gBAAgB;iBAChC,CAAC;aAAA,CACH,CAAC;SACH;QAEO,iEAA+B,GAAvC,UAAwC,YAAY,EAAE,OAAO;YAC3D,IAAI,aAAa,CAAC;YAClB,IAAI,OAAO,CAAC,OAAO,KAAKuB,yBAAW,CAAC,MAAM,EAAE;gBAC1C,aAAa,GAAG,YAAY,CAAC,UAAU;sBACnCvB,4BAAoB,CAAC,UAAU;sBAC/BA,4BAAoB,CAAC,MAAM,CAAC;aACjC;YACD,IAAI,OAAO,CAAC,OAAO,KAAKuB,yBAAW,CAAC,KAAK,EAAE;gBACzC,aAAa,GAAGvB,4BAAoB,CAAC,KAAK,CAAC;aAC5C;YACD,OAAO,aAAa,CAAC;SACtB;QAEO,mDAAiB,GAAzB,UAA0B,oBAA0C,EAAE,KAAa;YACjF,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACjF;QAEO,iDAAe,GAAvB,UAAwB,SAAiD;YACvE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;gBAC3D,OAAO,EAAE,CAAC;aACX;YACD,OAAO,IAAI,CAAC;SACb;;oBA1UoBwB,uBAAgB;oBACrBC,yBAAW;oBACVC,0BAAY;oBACDC,uBAAgB;oBAC1BC,aAAM;oBACRC,kBAAW;oBACPC,6BAAe;oBACZC,yBAAW;;QAzBvB,uBAAuB;YADnCC,eAAU,EAAE;WACA,uBAAuB,CA6VnC;QAAD,8BAAC;KA7VD;;;QC3BE,8BACU,uBAAgD;YAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;SACtD;QAEJ,0CAAW,GAAX,UAAY,KAA6B;YACvC,OAAO,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,KAAK,EAAE;gBAC5DhC,4BAAoB,CAAC,MAAM;gBAC3BA,4BAAoB,CAAC,UAAU;aAChC,CAAC,CAAC;SACJ;;oBARkC,uBAAuB;;QAF/C,oBAAoB;YADhCgC,eAAU,EAAE;WACA,oBAAoB,CAWhC;QAAD,2BAAC;KAXD;;;QCoCE,kCACU,KAAiB,EACN,QAAkB,EAC7B,uBAAgD;YAH1D,iBAOC;YANS,UAAK,GAAL,KAAK,CAAY;YAEjB,4BAAuB,GAAvB,uBAAuB,CAAyB;YArB1D,YAAO,GAAG;gBACR,UAAU,EAAE,uBAAuB;gBACnC,WAAW,EAAE,qBAAqB;aACnC,CAAC;YACF,oBAAe,GAAG,EAAE,uBAAuB,yBAAA,EAAE,qBAAqB,uBAAA,EAAE,CAAC;YACrE,WAAM,GAA8B,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBAC9D,KAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,KAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aACvB,CAAC,CAAC;YAEM,6BAAwB,GAAG,EAAE,CAAC;YAC9B,2BAAsB,GAAG,IAAI,CAAC;YAC9B,+BAA0B,GAAG,KAAK,CAAC;YACnC,2BAAsB,GAAG,WAAW,CAAC;YAU5C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;SAC/B;QAED,qDAAkB,GAAlB;YACE,IAAM,mBAAmB,GAAG;gBAC1B,IAAI,EAAE,IAAI,CAAC,sBAAsB;gBACjC,QAAQ,EAAE,IAAI,CAAC,0BAA0B;gBACzC,IAAI,EAAE,IAAI,CAAC,sBAAsB;gBACjC,eAAe,EAAE,IAAI,CAAC,UAAU;aACjC,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,OAAO,GAAGC,cAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC1B;iBAAM;gBACL,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;gBACrC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;aAC7C;SACF;QAED,uCAAI,GAAJ;;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,aAAK,GAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAG,IAAI,KAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,aAAa,aAAK,GAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAG,IAAI,KAAE,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC5B;QAED,wCAAK,GAAL;YACE,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACnB;QAED,2DAAwB,GAAxB;YACE,IAAM,UAAU,GAAG,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;YAC5C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC3C,OAAO,UAAU,CAAC;SACnB;QAED,6CAAU,GAAV,UAAW,IAAI;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SAC7C;QAED,iDAAc,GAAd,UAAe,IAAY;YACzB,IAAI,IAAI,EAAE;gBACR,IAAM,QAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,QAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAA,CAAC,CAAC;aACjE;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;aACjC;SACF;QAEO,oDAAiB,GAAzB;YAAA,iBAmBC;YAlBC,IAAM,UAAU,gBACX,IAAI,CAAC,SAAS,CAAC,OAAO,EACtB,IAAI,CAAC,SAAS,CAAC,aAAa,CAChC,CAAC;YAEF,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAA,CAAC,CAAC;YACpE,MAAM,CAAC,OAAO,CAAC,UAAA,SAAS;gBACtB,KAAI,CAAC,OAAO,CAAC,UAAU,GAAG,KAAI,CAAC,uBAAuB,CAAC,UAAU,CAC/D,uBAAuB,EACvB,SAAS,EACT,KAAI,CAAC,OAAO,CAAC,UAAU,CACxB,CAAC;gBACF,KAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAI,CAAC,uBAAuB,CAAC,UAAU,CAChE,qBAAqB,EACrB,SAAS,EACT,KAAI,CAAC,OAAO,CAAC,WAAW,CACzB,CAAC;aACH,CAAC,CAAC;SACJ;;oBA5EgBC,gBAAU;gDACxBC,WAAM,SAACC,uBAAS;oBACgB,uBAAuB;;QA5BNC;YAAnDC,cAAS,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;6EAA6B;QADrE,wBAAwB;YAJpCC,cAAS,CAAC;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,kyOAAgD;aACjD,CAAC;YA6BGC,WAAAL,WAAM,CAACC,uBAAS,CAAC,CAAA;WA5BT,wBAAwB,CAwGpC;QAAD,+BAAC;KAxGD;;;QCNE,uBACU,uBAAgD,EAChD,gBAAkC,EACD,YAAoC;YAFrE,4BAAuB,GAAvB,uBAAuB,CAAyB;YAChD,qBAAgB,GAAhB,gBAAgB,CAAkB;YACD,iBAAY,GAAZ,YAAY,CAAwB;SAC3E;QAEE,2CAAmB,GAAzB,UAA0B,WAAW;;;oBACnC,sBAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,EAAC;;;SACvE;QAED,4CAAoB,GAApB;YAAA,iBAOC;YANC,IAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,qBAClF,GAAG,IACN,KAAK,EAAE,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAC/C,CAAC,CAAC;YAEJ,OAAOhB,kBAAS,CAACqB,eAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;SAChG;;oBAhBkCC,qCAAuB;oBAC9Bf,uBAAgB;oDACzCQ,WAAM,SAAC,wBAAwB;;;QAJvB,aAAa;YAHzBH,eAAU,CAAC;gBACV,UAAU,EAAE,MAAM;aACnB,CAAC;YAKGQ,WAAAL,WAAM,CAAC,wBAAwB,CAAC,CAAA;WAJxB,aAAa,CAmBzB;4BA5BD;KASA;;;QC8CE,+BACU,aAA4B,EAC5B,KAAiB,EAClB,uBAAgD;YAHzD,iBAII;YAHM,kBAAa,GAAb,aAAa,CAAe;YAC5B,UAAK,GAAL,KAAK,CAAY;YAClB,4BAAuB,GAAvB,uBAAuB,CAAyB;YAtCzD,SAAI,GAAkC,QAAQ,CAAC;YAI/C,kBAAa,GAAG,IAAIQ,YAAO,EAAE,CAAC;YAC9B,eAAU,GAAG,EAAE,CAAC;YAIhB,YAAO,GAAG;gBACR,WAAW,EAAE,qBAAqB;gBAClC,YAAY,EAAE,qBAAqB;aACpC,CAAC;YACF,mBAAc,GAAG;gBACf,WAAW,EAAE,qBAAqB;gBAClC,YAAY,EAAE,qBAAqB;aACpC,CAAC;YACF,oBAAe,GAAG,EAAE,qBAAqB,uBAAA,EAAE,sBAAsB,wBAAA,EAAE,CAAC;YAGpE,cAAS,GAAG,KAAK,CAAC;YAMlB,WAAM,GAAoB,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACpD,KAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,KAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aACvB,CAAC,CAAC;SAUC;QAjBJ,sBAAI,yCAAM;iBAAV;gBACE,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;aACvB;;;WAAA;QAiBD,kDAAkB,GAAlB;YAAA,iBA2BC;YA1BC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,CAAC;YAE5D,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,OAAO,GAAGV,cAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;aAC/D;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa;iBAChC,IAAI,CACHW,mBAAS,CAAC,UAAC,KAAoB,IAAK,OAAAC,QAAG,CAAC,cAAM,OAAA,KAAK,CAAC,KAAK,KAAK,EAAE,GAAA,EAAEC,UAAK,CAAC,GAAG,CAAC,EAAEA,UAAK,CAAC,EAAE,CAAC,CAAC,GAAA,CAAC,CAC1F;iBACA,SAAS,CAAC;gBACT,KAAI,CAAC,MAAM,EAAE,CAAC;aACf,CAAC,CAAC;YAEL,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE;gBACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,cAC9B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAC7B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,GAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,GAChD,CAAC;gBACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,cACrC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAC7B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,EACtC,CAAC;aACJ;SACF;QAED,oCAAI,GAAJ;YACQ,IAAA,uBAAgD,EAA9C,UAAE,EAAE,UAAE,EAAE,kBAAM,EAAE,oBAA8B,CAAC;YAEvD,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC3C,IAAA,6BAAuC,EAArC,UAAE,EAAE,gBAAiC,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE,IAAA,EAAE,IAAI,QAAA,EAAE,CAAC;aACzC;YAED,IAAM,MAAM,GAAGC,WACb,EAAE,IAAA;gBACF,EAAE,IAAA;gBACF,MAAM,QAAA;gBACN,OAAO,SAAA,EACP,MAAM,EAAEC,aAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAC3C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAC/B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAC7B,EAAE,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACxE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,KACpB,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,GAAG,EAAE,EACxD,CAAC;YAEZ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACpB;QAED,sCAAM,GAAN,UAAO,GAAG,EAAE,IAAoC;YAApC,qBAAA,EAAA,eAAoC;YAC9C,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YAEpB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC3B,YAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;YACrD,IAAI,CAAC,uBAAuB,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YAE3D,IAAI,IAAI,CAAC,MAAM,EAAE;gBACT,IAAA,sBAA+D,EAA7D,UAAE,EAAE,UAAE,EAAE,kBAAM,EAAE,oBAAO,EAAE,oBAAO,EAAE,gBAA2B,CAAC;gBACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAE,EAAE,IAAA,EAAE,EAAE,IAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,OAAO,SAAA,EAAE,KAAK,OAAA,GAAE,CAAC;aACzF;YAED,IAAI,CAAC,YAAY,GAAGD,kBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAErF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC;YACjE,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,sCAAM,GAAN;YAAA,iBAQC;YAPC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,GAAG;oBAC5C,OAAA,IAAI,MAAM,CAAC6B,qBAAY,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;iBAAA,CACtE,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;QAED,2CAAW,GAAX;YACE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;SAC/B;QAED,0CAAU,GAAV,UAAW,IAAmC;YAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;QAED,qCAAK,GAAL;YACE,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACnB;QAED,wCAAQ,GAAR,UAAS,SAAiB;YAAjB,0BAAA,EAAA,iBAAiB;YACxB,IAAM,UAAU,GAAG,EAAE,CAAC;YACtB,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBACxE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;aAC7C;YAED,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACzE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;aAC9C;YAED,IAAI,SAAS,EAAE;gBACb,UAAU,CAAC,qBAAmB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAI,CAAC,GAAG,IAAI,CAAC;aAC3F;YAED,OAAO,UAAU,CAAC;SACnB;QAED,2CAAW,GAAX;YACE,IAAI,CAAC,uBAAuB,CAAC,YAAY,GAAG,IAAI,CAAC;YACjD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;aAC9B;SACF;QAEO,uDAAuB,GAA/B,UAAgC,SAAS;YACvC,IAAM,UAAU,gBACX,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAC7B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CACvC,CAAC;YACF,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAA,QAAQ,IAAI,QAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAC,CAAC,CAAC;YAC9E,IAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CACnD,MAAM,EACN,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAC1B,SAAS,CACV,CAAC;YACF,OAAO,CAAC,CAAC,KAAK,CAAC;SAChB;QAEO,+CAAe,GAAvB,UAAwB,UAAU;YAAlC,iBAmBC;YAlBC,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC7C,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAE3C,IAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAA,CAAC,CAAC;YACpE,MAAM,CAAC,OAAO,CAAC,UAAA,SAAS;gBACtB,YAAY,GAAG,KAAI,CAAC,uBAAuB,CAAC,UAAU,CACpD,sBAAsB,EACtB,SAAS,EACT,YAAY,CACb,CAAC;gBACF,WAAW,GAAG,KAAI,CAAC,uBAAuB,CAAC,UAAU,CACnD,qBAAqB,EACrB,SAAS,EACT,WAAW,CACZ,CAAC;aACH,CAAC,CAAC;YAEH,OAAO,EAAE,WAAW,aAAA,EAAE,YAAY,cAAA,EAAE,CAAC;SACtC;QAEO,mDAAmB,GAA3B,UAA4B,iBAAiB,EAAE,OAAY;YAAZ,wBAAA,EAAA,YAAY;YACzD,IAAM,OAAO,GAAGF,WACd,QAAQ,eACH,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAC/B1B,YAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EACnDA,YAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,IAC7C,OAAO,SAAA,EACP,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,OAEjC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CACV,CAAC;YACzB,OAAO,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;SACnD;QAEO,4DAA4B,GAApC,UAAqC,YAAiC;YACpE,IAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAExE,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAC;gBAEhD,IAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG;sBAC5C,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc;sBAChD,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAEzC,IAAI,CAAC,cAAc,EAAE;oBACnB,YAAY,CAAC,MAAM,GAAG;wBACpB,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;wBACnB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;qBACxB,CAAC;iBACH;aACF;YACD,OAAO,YAAY,CAAC;SACrB;;oBAhMwB,aAAa;oBACrBa,gBAAU;oBACO,uBAAuB;;QAvC9C,qBAAqB;YAJjCK,cAAS,CAAC;gBACT,QAAQ,EAAE,mBAAmB;gBAC7B,40PAA6C;aAC9C,CAAC;WACW,qBAAqB,CAsOjC;QAAD,4BAAC;KAtOD;;ICQA;;;;;AAeA;QA2BE,mCACU,KAAqB,EACrB,MAAc,EACd,uBAAgD,EAChD,KAAmB,EACnB,QAAmB,EACc,YAAoC,EACrE,aAA4B,EAC5B,OAAuB;YAPvB,UAAK,GAAL,KAAK,CAAgB;YACrB,WAAM,GAAN,MAAM,CAAQ;YACd,4BAAuB,GAAvB,uBAAuB,CAAyB;YAChD,UAAK,GAAL,KAAK,CAAc;YACnB,aAAQ,GAAR,QAAQ,CAAW;YACc,iBAAY,GAAZ,YAAY,CAAwB;YACrE,kBAAa,GAAb,aAAa,CAAe;YAC5B,YAAO,GAAP,OAAO,CAAgB;YA/BjC,oBAAe,GAAG,EAAE,CAAC;YAIrB,aAAQ,GAAY,KAAK,CAAC;YAE1B,aAAQ,GAAY,KAAK,CAAC;YAE1B,mBAAc,GAAa,EAAE,CAAC;YAE9B,cAAS,GAAY,IAAI,CAAC;YAE1B,cAAS,GAAY,IAAI,CAAC;YAG1B,UAAK,GAAG,EAAE,CAAC;YAEX,YAAO,GAAa,EAAE,CAAC;SAenB;QAEJ,4CAAQ,GAAR;YACE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO;aACR;YACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;;;;;QAMD,qDAAiB,GAAjB,UAAkB,MAAM;YACtB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBACxB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACzE;SACF;;;;QAKD,+CAAW,GAAX;YACE,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;aAC5B;SACF;;;;QAKK,2CAAO,GAAb;;;;;4BACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;4BACtB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;4BAC9F,qBAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;4BAAlD,SAAkD,CAAC;4BACnD,IAAI,CAAC,MAAM,EAAE,CAAC;;;;;SACf;;;;;QAMK,2DAAuB,GAA7B,UAA8B,KAA2B;;;;;oBAC/C,QAAQ,GAAK,KAAK,SAAV,CAAW;oBACrB,WAAW,GAAkC,IAAI,CAAC,EAAE,CAAC;oBACrD,cAAc,GAA6BzB,cAAK,CACpD,QAAQ,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAA,CAAC,EAC5C,IAAI,CACL,CAAC;oBACF,WAAW,CAAC,aAAa,CAAC,QAAQ,GAAG,cAAc,CAAC;oBACpD,sBAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAC;;;SACzD;;;;QAKK,mDAAe,GAArB;;;;;gCACE,qBAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;4BAAlD,SAAkD,CAAC;4BACnD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gCACf,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,IAAI,GAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACpF,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;6BAClC;;;;;SACF;;;;QAKK,iDAAa,GAAnB;;;;;;4BACQ,YAAY,GAAG;gCACnB,SAAS,EAAE,IAAI,CAAC,SAAS;gCACzB,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gCAC7B,gBAAgB,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;6BAChE,CAAC;4BACI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE;gCACxD,KAAK,EAAE,UAAU;gCACjB,YAAY,cAAA;gCACZ,mBAAmB,EAAE,IAAI;6BAC1B,CAAC,CAAC,OAAmC,CAAC;;;;4BAE/B,WAAW,GAAGM,kBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BACvC,KAAA,WAAW,CAAA;4BAAiB,qBAAM,KAAK,CAAC,MAAM,EAAA;;4BAA9C,GAAY,aAAa,GAAG,SAAkB,CAAC;4BAC/C,qBAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;4BAAtD,SAAsD,CAAC;4BACvD,qBAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,EAAA;;4BAA3D,SAA2D,CAAC;4BAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;4BACd,KAAK,CAAC,KAAK,EAAE,CAAC;;;;;;;;;SAIjB;;;;;QAMK,8CAAU,GAAhB,UAAiB,MAAoB;;;;;;4BAC7B,KAA0B,MAAM,CAAC,MAAM,EAArC,CAAC,OAAA,EAAE,CAAC,OAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,CAAmB;4BAC5B,qBAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAC5D,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAChD,EAAA;;4BAFK,SAAS,GAAG,SAEjB;4BACD,IAAI,CAAC,SAAS,EAAE;gCACd,IAAI,CAAC,SAAS,EAAE,CAAC;gCACjB,sBAAO;6BACR;4BACD,qBAAM,IAAI,CAAC,SAAS,cACf,SAAS,IACZ,IAAI,eAAO,SAAS,CAAC,IAAI,EAAK,MAAM,CAAC,MAAM,IAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OACzF,EAAA;;4BAHF,SAGE,CAAC;;;;;SACJ;;;;;QAMK,6CAAS,GAAf,UAAgB,QAAqC;;;;;;4BAC7C,YAAY,GAAG;gCACnB,EAAE,EAAE,IAAI,CAAC,EAAE;gCACX,OAAO,EAAE,IAAI,CAAC,OAAO;gCACrB,QAAQ,EAAEA,kBAAS,CAAC,QAAQ,CAAC;6BAC9B,CAAC;4BAEI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE;gCACrD,KAAK,EAAE,UAAU;gCACjB,YAAY,cAAA;gCACZ,mBAAmB,EAAE,IAAI;6BAC1B,CAAC,CAAC,OAAgC,CAAC;;;;4BAGhB,qBAAM,KAAK,CAAC,MAAM,EAAA;;4BAA9B,SAAS,GAAG,SAAkB;4BACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE;gCACnC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,GAAG,EAAE,CAAC;6BACrC;4BACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;4BACzD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC7C,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;4BACvD,qBAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAA;;4BAAlC,SAAkC,CAAC;4BACnC,KAAK,CAAC,KAAK,EAAE,CAAC;;;;;;;;;SAIjB;;;;;;QAOK,gDAAY,GAAlB,UAAmB,MAAM;;;;;;4BACjB,KAAK,GAAG8B,kBAAS,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;4BACnD,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC;4BACN,qBAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAA;;4BAA3C,YAAY,GAAG,SAA4B;4BACjD,IAAI,KAAK,EAAE;gCACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;6BACjC;iCAAM;gCACL,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;6BAC7C;;;;;SACF;;;;;;QAOD,gDAAY,GAAZ,UAAa,MAAoB;YAAjC,iBAYC;YAXS,IAAA,sBAAM,EAAE,sBAAM,CAAY;YAClC,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjD,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAC,EAAM;oBAAJ,UAAE;gBAAO,OAAA,EAAE,KAAK,MAAM,CAAC,EAAE;aAAA,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;;YAGtD,UAAU,CAAC;gBACT,IAAM,KAAK,GAAG,IAAIC,kCAAoB,CAAC,MAAM,CAAC,CAAC;gBAC/C,KAAK,CAAC,aAAa,EAAE,CAAC;gBACtB,KAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;aACrC,CAAC,CAAC;SACJ;;;;;QAMD,2DAAuB,GAAvB;YAAA,iBAIC;YAHC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAA,QAAQ;gBACpC,KAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACjD,CAAC,CAAC;SACJ;;;;;QAMD,gEAA4B,GAA5B;YAAA,iBAIC;YAHC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAA,QAAQ;gBACpC,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;aACpD,CAAC,CAAC;SACJ;;;;;QAMK,gDAAY,GAAlB,UAAmB,QAA2B;;;;;;4BAC5C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;;;;4BAEhC,qBAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;4BAAlD,SAAkD,CAAC;4BACnD,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;gCAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAClD,qBAAO,CAAC,+BAA+B,CAAC,CAAC,CAAC;6BAC9D;iCAAM;gCACL,IAAI,CAAC,KAAK,CAAC,OAAO,CAACA,qBAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;6BAChE;;;;4BAED,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAE,CAAC,CAAC;4BAChC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;;;;;;SAErC;QAEO,sDAAkB,GAA1B,UAA2B,QAA2B;YACpD,QAAQ,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;SAC7C;QAEO,wDAAoB,GAA5B;YAAA,iBAOC;YANC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAC,EAAa;oBAAX,wBAAS;gBACnD,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC3D,KAAI,CAAC,EAAE,GAAG,SAAS,CAAC;gBACpB,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC;gBACvC,KAAI,CAAC,MAAM,EAAE,CAAC;aACf,CAAC,CAAC;SACJ;QAEO,sDAAkB,GAA1B;YAAA,iBASC;YARC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,uBAAuB;iBACxC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;iBACzD,SAAS,CAAC,UAAA,EAAE;gBACX,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClC,KAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC;gBACvC,KAAI,CAAC,MAAM,EAAE,CAAC;aACf,CAAC,CAAC;SACN;QAEa,0CAAM,GAApB;;;;;;gCAC2B,qBAAM,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA;;4BAA/E,gBAAgB,GAAG,SAA4D;4BACrF,IAAI,CAAC,QAAQ,GAAG,CAAC,gBAAgB,CAAC;4BAC5B,iBAAiB,GAAGmB,kBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;4BAC9D,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAClE,gBAAgB,cACpB,oBAAoB,EAAE,IAAI,EAC1B,SAAS,EAAE,IAAI,IACZ,IAAI,CAAC,SAAS,CAAC,OAAO,CAC1B,CAAC;4BAEF,KAAA,IAAI,CAAA;4BAAW,qBAAM,OAAO,CAAC,GAAG,CAC9BgC,eAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM;oCAClC,MAAM,CAAC,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;oCACjD,IAAI,YAAY,EAAE;wCAChB,KAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;qCAChC;oCACD,OAAO,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;iCAC/B,CAAC,CACH,EAAA;;4BARD,GAAK,OAAO,GAAG,SAQd,CAAC;4BACF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACrD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;;;;;SACxB;QAEO,sDAAkB,GAA1B,UAA2B,MAAM;YAC/B,IAAM,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAC/C,UAAA,EAAE,IAAI,OAAA,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAA,CACjD,CAAC;YACF,IAAM,aAAa,GAAG,cAAc;+BAC3B,MAAM,CAAC,OAAO,iBACd,IAAI,CAAC,SAAS,CAAC,aAAa,EAAK,MAAM,CAAC,OAAO,CAAE,CAAC;YAC3D,kBACE,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,IAAI,IACnB,aAAa,EAChB;SACH;QAEO,qDAAiB,GAAzB,UAA0B,KAA8B;YACtD,oBACKJ,aAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,qCAAqC,EAAE,4BAA4B,CAAC,CAAC,EACtF;gBACF,EAAE,EAAE,KAAK,CAAC,CAAC;gBACX,EAAE,EAAE,KAAK,CAAC,CAAC;gBACX,MAAM,EAAE,KAAK,CAAC,KAAK;gBACnB,OAAO,EAAE,KAAK,CAAC,MAAM;aACX,EACZ;SACH;QAEa,6CAAS,GAAvB,UAAwB,MAAM;;;;;gCAChB,qBAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,EAAA;;4BAArF,GAAG,GAAG,SAA+E;4BAC3F,IAAI3B,YAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAAE;gCACrC,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;gCAC3D,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;gCAC3D,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;gCACnD,MAAM,CAAC,iBAAiB,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gCAC/D,MAAM,CAAC,0BAA0B;oCAC/B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAmC;wCACrD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC;6BAChD;iCAAM;gCACL,OAAO,MAAM,CAAC,WAAW,CAAC;gCAC1B,OAAO,MAAM,CAAC,iBAAiB,CAAC;6BACjC;4BACD,sBAAO,MAAM,EAAC;;;;SACf;;oBA1TgBgC,qBAAc;oBACbzB,aAAM;oBACW,uBAAuB;oBACzC0B,0BAAY;oBACTC,cAAS;oDAC1BpB,WAAM,SAAC,wBAAwB;oBACT,aAAa;oBACnBqB,oBAAc;;QAjCjCnB;YADCoB,UAAK,EAAE;+DACK;QAEbpB;YADCoB,UAAK,EAAE;0EACa;QAErBpB;YADCoB,UAAK,EAAE;kEACK;QAEbpB;YADCoB,UAAK,EAAE;mEACkB;QAE1BpB;YADCoB,UAAK,EAAE;mEACkB;QAE1BpB;YADCoB,UAAK,EAAE;yEACsB;QAE9BpB;YADCoB,UAAK,EAAE;oEACkB;QAE1BpB;YADCoB,UAAK,EAAE;oEACkB;QAG1BpB;YADCqB,gBAAW,CAAC,OAAO,CAAC;gEACV;QAnBA,yBAAyB;YAVrCnB,cAAS,CAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,6pCAAiD;gBACjD,IAAI,EAAE;oBACJ,KAAK,EAAE,+BAEN;oBACD,KAAK,EAAE,8BAA8B;iBACtC;aACF,CAAC;YAkCGC,WAAAL,WAAM,CAAC,wBAAwB,CAAC,CAAA;WAjCxB,yBAAyB,CAuVrC;QAAD,gCAAC;KAvVD;;;QCnCE,6BACU,uBAAgD;YAAhD,4BAAuB,GAAvB,uBAAuB,CAAyB;SACtD;QAEJ,yCAAW,GAAX,UAAY,KAA6B;YACvC,OAAO,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,KAAK,EAAE;gBAC5DnC,4BAAoB,CAAC,KAAK;aAC3B,CAAC,CAAC;SACJ;;oBAPkC,uBAAuB;;QAF/C,mBAAmB;YAD/BgC,eAAU,EAAE;WACA,mBAAmB,CAU/B;QAAD,0BAAC;KAVD;;;QCIE,iCACU,MAAc,EACd,uBAAgD,EAChD,OAAuB,EACvB,WAAwB;YAHxB,WAAM,GAAN,MAAM,CAAQ;YACd,4BAAuB,GAAvB,uBAAuB,CAAyB;YAChD,YAAO,GAAP,OAAO,CAAgB;YACvB,gBAAW,GAAX,WAAW,CAAa;SAC9B;QAEE,qCAAG,GAAT,UAAU,cAA8B;;;;;;;4BAChC,OAAO,GACX,CAAC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO;kCAC1D,cAAc,CAAC,QAAQ,CAAC,IAAI;kCAC5B,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;4BACjB,qBAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAA;;4BAAhD,gBAAgB,GAAG,SAA6B;4BACtD,sBAAO;oCACL;wCACE,KAAK,EAAE/B,qBAAO,CAAC,eAAe,CAAC;wCAC/B,QAAQ,EAAE,IAAI;wCACd,MAAM,EAAE,cAAM,OAAA,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAA;wCACxC,QAAQ,EAAE,CAAC,gBAAgB;qCAC5B;iCACF,EAAC;;;;SACH;QAEK,8CAAY,GAAlB,UAAmB,OAAO;;;;;;4BAGxB,IAAI,OAAO,CAAC,OAAO,KAAKsB,yBAAW,CAAC,MAAM,EAAE;gCAC1C,YAAY,GAAG;oCACb,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI;iCACrC,CAAC;6BACH;4BAEK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE;gCACxD,KAAK,EAAE,UAAU;gCACjB,YAAY,cAAA;gCACZ,mBAAmB,EAAE,IAAI;6BAC1B,CAAC,CAAC,OAAmC,CAAC;;;;4BAEhB,qBAAM,KAAK,CAAC,MAAM,EAAA;;4BAAjC,YAAY,GAAG,SAAkB;4BACY,qBAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAC1F,YAAY,EACZ,OAAO,CACR,EAAA;;4BAHK,WAAW,GAAkC,SAGlD;4BACD,qBAAM,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAA;;4BAAnE,SAAmE,CAAC;4BACpE,KAAK,CAAC,KAAK,EAAE,CAAC;;;;;;;;;SAIjB;QAEa,2CAAS,GAAvB,UAAwB,OAAO;;;;;kCACzB,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAA,EAA7C,wBAA6C;4BAE5C,qBAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAC7B,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,EACjD,OAAO,CAAC,WAAW,CACpB,EAAA;gCAJH,uBACE,CAAC,SAGA,KAAK,CAACA,yBAAW,CAAC,MAAM,EAAEA,yBAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GACvE;gCAEJ,uBACE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAC;gCAC9E,CAACA,yBAAW,CAAC,MAAM,EAAEA,yBAAW,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GACjE;;;;SACH;;oBA9DiBK,aAAM;oBACW,uBAAuB;oBACvC4B,oBAAc;oBACVzB,yBAAW;;QALvB,uBAAuB;YADnCC,eAAU,EAAE;WACA,uBAAuB,CAiEnC;QAAD,8BAAC;KAjED;;;QCLA;YAOE,eAAU,GAAW,uBAAuB,CAAC;YAE7C,gBAAW,GAAW,qBAAqB,CAAC;YAM5C,qBAAgB,GAAG,IAAI2B,iBAAY,EAAU,CAAC;YAE9C,sBAAiB,GAAG,IAAIA,iBAAY,EAAU,CAAC;YAG/C,yBAAoB,GAAG,uBAAuB,CAAC;YAG/C,0BAAqB,GAAG,qBAAqB,CAAC;SAoB/C;QAlBC,qDAAe,GAAf,UAAgB,KAAK;YACnB,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC5E,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnC;QAED,sDAAgB,GAAhB,UAAiB,KAAK;YACpB,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9E,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpC;QAEO,oDAAc,GAAtB,UAAuB,KAAa,EAAE,SAAiB,EAAE,YAAoB;YAC3E,IAAI,YAAY,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvC,KAAK,GAAG,YAAY,CAAC;aACtB;YACD,OAAO,KAAK,CAAC;SACd;QAnCDtB;YADCoB,UAAK,EAAE;uEACqC;QAE7CpB;YADCoB,UAAK,EAAE;wEACoC;QAE5CpB;YADCoB,UAAK,EAAE;8EACkB;QAE1BpB;YADCoB,UAAK,EAAE;+EACmB;QAE3BpB;YADCuB,WAAM,EAAE;6EACqC;QAE9CvB;YADCuB,WAAM,EAAE;8EACsC;QAG/CvB;YADCoB,UAAK,EAAE;iFACuC;QAG/CpB;YADCoB,UAAK,EAAE;kFACsC;QAlBnC,2BAA2B;YALvClB,cAAS,CAAC;gBACT,QAAQ,EAAE,yBAAyB;gBACnC,4lGAAmD;gBACnD,aAAa,EAAE,CAAE,EAAE,OAAO,EAAEsB,sBAAgB,EAAE,WAAW,EAAEC,YAAM,EAAE,CAAE;aACtE,CAAC;WACW,2BAA2B,CAsCvC;QAAD,kCAAC;KAtCD;;;QCPA;YAME,mBAAc,GAA+B;gBAC3C,uBAAuB,EAAE,IAAI;gBAC7B,qBAAqB,EAAE,IAAI;aAC5B,CAAC;SAIH;QAPCzB;YADCoB,UAAK,EAAE;sEAIN;QAGFpB;YADCoB,UAAK,EAAE;2DAC4B;QARzB,sBAAsB;YAJlClB,cAAS,CAAC;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,+gDAA8C;aAC/C,CAAC;WACW,sBAAsB,CASlC;QAAD,6BAAC;KATD;;ICeA,IAAM,aAAa,GAAG;QACpB,eAAe,EAAE,IAAI;QACrB,YAAY,YAAC,EAAQ;gBAAN,cAAI;YACjB,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;SAC/D;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,yBAAyB;gBACpC,WAAW,EAAE,CAAC,oBAAoB,CAAC;gBACnC,OAAO,EAAEhB,yBAAW,CAAC,MAAM;aAC5B;YACD;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,SAAS,EAAE,yBAAyB;gBACpC,WAAW,EAAE,CAAC,mBAAmB,CAAC;gBAClC,OAAO,EAAEA,yBAAW,CAAC,KAAK;aAC3B;SACF;KACF,CAAC;AAcF;QAAA;SAyBC;mCAzBY,sBAAsB;QAC1B,6BAAM,GAAb,UAAc,MAAmC;YAAnC,uBAAA,EAAA,WAAmC;YAC/C,OAAO;gBACL,QAAQ,EAAE,wBAAsB;gBAChC,SAAS,EAAE;oBACT;wBACE,OAAO,EAAE,wBAAwB;wBACjC,QAAQ,eAAO,aAAa,EAAK,MAAM,CAAE;qBAC1C;oBACD,uBAAuB;oBACvB,oBAAoB;oBACpB,mBAAmB;oBACnB;wBACE,OAAO,EAAEwC,6BAAe;wBACxB,QAAQ,EAAEhB,aAAK,aAAa,EAAK,MAAM,EAAG,MAAM;wBAChD,KAAK,EAAE,IAAI;qBACZ;oBACD;wBACE,OAAO,EAAEiB,yBAAW;wBACpB,QAAQ,EAAE,uBAAuB;wBACjC,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF,CAAC;SACH;;QAxBU,sBAAsB;YAZlCC,aAAQ,CAAC;gBACR,YAAY,EAAE;oBACZ,2BAA2B;oBAC3B,yBAAyB;oBACzB,qBAAqB;oBACrB,sBAAsB;oBACtB,wBAAwB;iBACzB;gBACD,OAAO,EAAE,CAACC,wBAAU,EAAEC,qBAAa,EAAEC,qBAAa,EAAEC,yBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC/E,OAAO,EAAE,CAAC,yBAAyB,EAAE,qBAAqB,CAAC;gBAC3D,eAAe,EAAE,CAAC,yBAAyB,EAAE,qBAAqB,EAAE,wBAAwB,CAAC;aAC9F,CAAC;WACW,sBAAsB,CAyBlC;QAAD,6BAAC;KAzBD;;;QCnDA;YAKE,yBAAoB,GAAG;gBACrB;oBACE,IAAI,EAAE,wBAAwB;oBAC9B,KAAK,EAAEpE,qBAAO,CAAC,EAAE,CAAC;oBAClB,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,EAAE;oBACV,OAAO,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;iBACxC;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAEA,qBAAO,CAAC,yBAAyB,CAAC;oBACzC,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,CAAC;iBACV;gBACD;oBACE,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAEA,qBAAO,CAAC,eAAe,CAAC;oBAC/B,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,CAAC;iBACV;gBACD;oBACE,IAAI,EAAE,KAAK;oBACX,KAAK,EAAEA,qBAAO,CAAC,KAAK,CAAC;oBACrB,EAAE,EAAE,CAAC;oBACL,EAAE,EAAE,CAAC;oBACL,OAAO,EAAE,CAAC;oBACV,MAAM,EAAE,CAAC;iBACV;aACU,CAAC;SACf;QApCY,yBAAyB;YAJrCsC,cAAS,CAAC;gBACT,QAAQ,EAAE,uBAAuB;gBACjC,yMAAiD;aAClD,CAAC;WACW,yBAAyB,CAoCrC;QAAD,gCAAC;KApCD;;;QCiBE,0BACU,aAA4B,EAC5B,IAAiB,EACjB,MAAc,EACd,SAA2B,EAC3B,kBAAsC;YAJtC,kBAAa,GAAb,aAAa,CAAe;YAC5B,SAAI,GAAJ,IAAI,CAAa;YACjB,WAAM,GAAN,MAAM,CAAQ;YACd,cAAS,GAAT,SAAS,CAAkB;YAC3B,uBAAkB,GAAlB,kBAAkB,CAAoB;YAhBhD,eAAU,GAAG,EAAE,CAAC;YAEC,gBAAW,GAAW,SAAS,CAAC;YAChC,uBAAkB,GAAW,eAAe,CAAC;YAC7C,UAAK,GAAW,OAAO,CAAC;SAarC;QAEE,mCAAQ,GAAd;;;;;;;4BACE,KAAA,IAAI,CAAA;4BAAc,qBAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAA;;4BAA9D,GAAK,UAAU,GAAG,SAA4C,CAAC;4BAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;4BAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,UAAA,KAAK;gCAC1D,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;6BACvB,CAAC,CAAC;4BACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAA,KAAK;gCACtD,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;6BACpB,CAAC,CAAC;;4BAGH,IAAI,CAAC,gCAAgC,EAAE,CAAC;4BACxC,qBAAM,IAAI,CAAC,6BAA6B,EAAE,EAAA;;4BAA1C,SAA0C,CAAC;;4BAG3C,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,EAAE;gCAClC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gCAChC,sBAAO;6BACR;;4BAGD,IAAI,CAAC,uBAAuB,EAAE,CAAC;4BAC/B,IAAI,CAAC,sBAAsB,EAAE,CAAC;4BAC9B,IAAI,CAAC,+BAA+B,EAAE,CAAC;4BACvC,IAAI,CAAC,yBAAyB,EAAE,CAAC;;;;;SAClC;QAED,sCAAW,GAAX;YACE,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;gBAC1D,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;aACrC;YAED,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBACxD,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;aACpC;SACF;QAEO,qCAAU,GAAlB;YACE,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,EAAE;gBAClC,IAAI,CAAC,cAAc,GAAGtC,qBAAO,CAAC,gTAK7B,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,cAAc,GAAGA,qBAAO,CAAC,kKAG7B,CAAC,CAAC;aACJ;SACF;QAEO,kDAAuB,GAA/B;;YAEE,IAAM,QAAQ,GAAqB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,WAAW,GAAA,CAAC,CAAC;YACvF,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAChC;SACF;QAEO,2DAAgC,GAAxC;;;YAGE,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,oBAAoB,GAAA,CAAC,CAAC;YACvF,IAAI,iBAAiB,EAAE;gBACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;aACzC;SACF;QAEO,iDAAsB,GAA9B;YAAA,iBAeC;YAdC,IAAM,OAAO,GAAqB;gBAChC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAEA,qBAAO,CAAC,SAAS,CAAC;gBACzB,GAAG,EAAE,SAAS;aACf,CAAC;YAEF,IAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7D,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;gBACnC,OAAO,CAAC,KAAK,GAAG;oBACd,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;oBACxB,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBACxC,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC/B;SACF;QAEO,0DAA+B,GAAvC;YAAA,iBAeC;YAdC,IAAM,YAAY,GAAqB;gBACrC,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAEA,qBAAO,CAAC,oBAAoB,CAAC;gBACpC,GAAG,EAAE,mBAAmB;aACzB,CAAC;YAEF,IAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1E,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE;gBAC/C,YAAY,CAAC,KAAK,GAAG;oBACnB,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC9B,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;iBAC7C,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACpC;SACF;QAEO,oDAAyB,GAAjC;YAAA,iBAcC;YAbC,IAAM,UAAU,GAAqB;gBACnC,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAEA,qBAAO,CAAC,aAAa,CAAC;gBAC7B,GAAG,EAAE,QAAQ;aACd,CAAC;YACF,IAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1E,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,EAAE;gBAC/C,UAAU,CAAC,KAAK,GAAG;oBACjB,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;oBAC9B,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBAC3C,CAAC;gBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAClC;SACF;QAEa,wDAA6B,GAA3C;;;;;gCACmB,qBAAM,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,EAAA;;4BAAnD,IAAI,GAAK,CAAA,SAA0C,MAA/C;4BACZ,IAAI,IAAI,EAAE;gCACF,gBAAgB,GAAiB,IAAI,CAAC,IAAI,CAC9C,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,WAAW,KAAK,kBAAkB,GAAA,CAC9C,CAAC;gCACF,IAAI,gBAAgB,EAAE;oCACd,kBAAgB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;oCAClE,cAAc,GAAqB;wCACvC,IAAI,EAAE,oBAAoB;wCAC1B,KAAK,EAAEA,qBAAO,CAAC,iBAAiB,CAAC;wCACjC,KAAK,EAAE,cAAM,OAAA,MAAM,CAAC,IAAI,CAAI,eAAa,0BAAuB,EAAE,OAAO,CAAC,GAAA;qCAC3E,CAAC;oCACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iCACtC;6BACF;;;;;SACF;QAEO,mDAAwB,GAAhC;YAAA,iBAWC;YAVC,IAAM,SAAS,GAAqB;gBAClC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAEA,qBAAO,CAAC,YAAY,CAAC;gBAC5B,GAAG,EAAE,8BAA8B;gBACnC,KAAK,EAAE;oBACL,IAAM,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAW,CAAC;oBACzE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBAC3B;aACF,CAAC;YACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjC;QAEO,4CAAiB,GAAzB,UAA0B,YAAoB;YAC5C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,QAAQ,KAAK,YAAY,GAAA,CAAC,CAAC;aAC1E;YACD,OAAO,SAAS,CAAC;SAClB;;oBAnKwBqE,oBAAa;oBACtBC,yBAAW;oBACT3C,aAAM;oBACH4C,8BAAgB;oBACPC,yBAAkB;;QAlBvCpC;YAARoB,UAAK,EAAE;wDAAQ;QADL,gBAAgB;YAJ5BlB,cAAS,CAAC;gBACT,QAAQ,EAAE,wBAAwB;gBAClC,m2BAAuC;aACxC,CAAC;WACW,gBAAgB,CAmL5B;QAAD,uBAAC;KAnLD;;;QCFE,gCAA4B,SAAoC;YAApC,cAAS,GAAT,SAAS,CAA2B;SAAI;QAEpE,wCAAO,GAAP;YACE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC1B;;oBAJsC,yBAAyB,uBAAnDmC,SAAI;;QADN,sBAAsB;YAJlCnC,cAAS,CAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,0lBAA8C;aAC/C,CAAC;YAEaC,WAAAkC,SAAI,EAAE,CAAA;WADR,sBAAsB,CAMlC;QAAD,6BAAC;KAND;;ICcA;IACA,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI;;QAEF,YAAY,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC;KAC/D;IAAC,OAAO,EAAE,EAAE;;KAEZ;aAkCe,CAAC,EAAE,KAAK,EAAEzE,qBAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,OAMtE;QACR;YACE,EAAE,EAAE,wBAAwB;YAC5B,KAAK,EAAEA,qBAAO,CAAC,oBAAoB,CAAC;YACpC,WAAW,EAAEA,qBAAO,CAAC,wCAAwC,CAAC;YAC9D,SAAS,EAAE,gBAAgB;YAC3B,YAAY,cAAA;YACZ,IAAI,EAAE;gBACJ,QAAQ,EAAE;oBACR,YAAY,EAAE,KAAK;oBACnB,cAAc,EAAE;wBACd,MAAM,EAAE,EAAE;wBACV,OAAO,EAAE,CAAC;qBACX;oBACD,GAAG,EAAE;wBACH,OAAO,EAAE;4BACP,cAAc,EAAE,IAAI;4BACpB,gBAAgB,EAAE,KAAK;yBACxB;qBACF;iBACF;aACqB;SACzB;KAC8B,OAKvB;QACR;YACE,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAEA,qBAAO,CAAC,oBAAoB,CAAC;YACpC,WAAW,EAAEA,qBAAO,CAAC,wCAAwC,CAAC;YAC9D,SAAS,EAAE,sBAAsB;YACjC,IAAI,EAAE;gBACJ,QAAQ,EAAE;oBACR,YAAY,EAAE,IAAI;oBAClB,GAAG,EAAE;wBACH,OAAO,EAAE;4BACP,cAAc,EAAE,IAAI;4BACpB,gBAAgB,EAAE,KAAK;yBACxB;qBACF;iBACF;aACqB;SACzB;KAC8B;AAIvC;QAAA;SAAsC;QAAzB,sBAAsB;YAxFlCgE,aAAQ,CAAC;gBACR,eAAe,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC;gBACtF,OAAO,EAAE;oBACPU,wBAAU;oBACVT,wBAAU;oBACV,sBAAsB,CAAC,MAAM,CAAC;wBAC5B,MAAM,EAAE;4BACN;gCACE,IAAI,EAAE,wBAAwB;gCAC9B,SAAS,EAAE,yBAAyB;gCACpC,WAAW,EAAE,CAAC,oBAAoB,CAAC;gCACnC,OAAO,EAAE3C,yBAAW,CAAC,MAAM;6BAC5B;4BACD;gCACE,IAAI,EAAE,wBAAwB;gCAC9B,SAAS,EAAE,yBAAyB;gCACpC,WAAW,EAAE,CAAC,mBAAmB,CAAC;gCAClC,OAAO,EAAEA,yBAAW,CAAC,KAAK;6BAC3B;4BACD;gCACE,IAAI,EAAE,EAAE;gCACR,SAAS,EAAE,yBAAyB;6BACrC;yBACF;qBACF,CAAC;oBACFqD,6BAAe;oBACfC,sBAAe;iBAChB;gBACD,YAAY,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,sBAAsB,CAAC;gBACnF,SAAS,EAAE;oBACT;wBACE,OAAO,EAAEC,kCAAoB;wBAC7B,QAAQ,IAAwE;wBAChF,KAAK,EAAE,IAAI;qBACZ;oBACD;wBACE,OAAO,EAAEC,6BAAe;wBACxB,KAAK,EAAE,IAAI;wBACX,QAAQ,IAuByB;qBAClC;oBACD;wBACE,OAAO,EAAEA,6BAAe;wBACxB,KAAK,EAAE,IAAI;wBACX,QAAQ,IAkByB;qBAClC;iBACF;aACF,CAAC;WACW,sBAAsB,CAAG;QAAD,6BAAC;KAAtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-context-dashboard.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@c8y/ngx-components/context-dashboard/context-dashboard.model.ts","ng://@c8y/ngx-components/context-dashboard/context-dashboard.service.ts","ng://@c8y/ngx-components/context-dashboard/device-dashboard.guard.ts","ng://@c8y/ngx-components/context-dashboard/dashboard-detail.component.ts","ng://@c8y/ngx-components/context-dashboard/widget.service.ts","ng://@c8y/ngx-components/context-dashboard/widget-config.component.ts","ng://@c8y/ngx-components/context-dashboard/context-dashboard.component.ts","ng://@c8y/ngx-components/context-dashboard/group-dashboard.guard.ts","ng://@c8y/ngx-components/context-dashboard/dashboard-actions.factory.ts","ng://@c8y/ngx-components/context-dashboard/appearance-settings.component.ts","ng://@c8y/ngx-components/context-dashboard/widget-preview.component.ts","ng://@c8y/ngx-components/context-dashboard/context-dashboard.module.ts","ng://@c8y/ngx-components/context-dashboard/cockpit-dashboard.component.ts","ng://@c8y/ngx-components/context-dashboard/welcome/welcome.component.ts","ng://@c8y/ngx-components/context-dashboard/legacy-welcome/legacy-welcome.component.ts","ng://@c8y/ngx-components/context-dashboard/cockpit-dashboard.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 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) : new P(function (resolve) { resolve(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 __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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","import { InjectionToken } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { Widget, DynamicComponentDefinition, Route, gettext } from '@c8y/ngx-components';\n\nexport const CONTEXT_DASHBOARD_CONFIG = new InjectionToken<any>('ContextDashboardConfig');\n\nexport interface ContextDashboardConfig {\n widgetFilter?: (component: DynamicComponentDefinition) => boolean;\n allowFullscreen?: boolean;\n routes?: Route[];\n}\n\nexport interface ContextWidgetConfig {\n /**\n * Settings that define how the default config component is\n * displayed.\n */\n settings?: {\n /**\n * Avoids to show the widget in the \"add widget\" modal\n */\n noNewWidgets?: boolean;\n ng1?: {\n options: {\n /**\n * Set this to false, to hide the device/group selector\n * @deprecated: This is currently only implemented in angularjs and will be exported to a separate component.\n */\n noDeviceTarget?: boolean;\n /**\n * Set this to false to only select devices\n * @deprecated: This is currently only implemented in angularjs and will be exported to a separate component.\n */\n groupsSelectable?: boolean;\n };\n /**\n * The context from the device selector.\n */\n context?: {\n id?: string;\n name?: string;\n };\n };\n /**\n * Any other information you want to pass to the config template\n */\n [key: string]: any;\n };\n /**\n * The selected device or group (note: naming is inconsistent as group was added later\n * but must stay for already implemented widgets)\n */\n device?: {\n id?: string;\n name?: string;\n };\n /**\n * Any other information that should be stored here.\n */\n [key: string]: any;\n}\n\nexport interface ContextDashboardManagedObject extends IManagedObject {\n c8y_Dashboard?: ContextDashboard;\n}\n\nexport interface ContextDashboard {\n icon?: string;\n name?: string;\n priority?: number;\n deviceType?: boolean;\n deviceTypeValue?: string;\n isFrozen?: boolean;\n classes?: { [key: string]: boolean };\n widgetClasses?: { [key: string]: boolean };\n widgetMargin?: number;\n translateWidgetTitle?: boolean;\n global?: boolean;\n children?: {\n [id: string]: Widget;\n };\n}\n\nexport enum ContextDashboardType {\n Device = 'device',\n DeviceType = 'type',\n Group = 'group',\n Named = 'name'\n}\n\nexport const WIDGET_HEADER_CLASSES = [\n {\n label: gettext('Regular`style`'),\n class: 'panel-title-regular',\n description: gettext('The widget has no border between header and content.')\n },\n {\n label: gettext('Border`style`'),\n class: 'panel-title-border',\n description: gettext('The widget has a small separation border between header and content.')\n },\n {\n label: gettext('Overlay`style`'),\n class: 'panel-title-overlay',\n description: gettext('The widget content overlays the header.')\n },\n {\n label: gettext('Hidden`style`'),\n class: 'panel-title-hidden',\n description: gettext('The widget header is not shown.')\n }\n];\n\nexport const WIDGET_CONTENT_CLASSES = [\n {\n label: gettext('Light`style`'),\n class: 'panel-content-light',\n description: gettext('The widget is styled with a light background and has low contrast.')\n },\n {\n label: gettext('Dark`style`'),\n class: 'panel-content-dark',\n description: gettext('The widget is styled with a dark background and has high contrast.')\n },\n {\n label: gettext('Transparent`style`'),\n class: 'panel-content-transparent',\n description: gettext(\n 'The widget is styled with a transparent background and therefore is border-less.'\n )\n },\n {\n label: gettext('Branded`style`'),\n class: 'panel-content-branded',\n description: gettext('The widget is styled with the main brand color.')\n }\n];\n\nexport const DASHBOARD_THEME_CLASSES = [\n {\n label: gettext('Light`theme`'),\n class: 'dashboard-theme-light',\n description: gettext('The dashboard is styled with a light background and has low contrast.')\n },\n {\n label: gettext('Dark`theme`'),\n class: 'dashboard-theme-dark',\n description: gettext('The dashboard is styled with a dark background and has high contrast.')\n },\n {\n label: gettext('Transparent`theme`'),\n class: 'dashboard-theme-transparent',\n description: gettext(\n 'The dashboard is styled with a transparent background and therefore is border-less.'\n )\n },\n {\n label: gettext('Branded`theme`'),\n class: 'dashboard-theme-branded',\n description: gettext('The dashboard is styled with the main brand color.')\n }\n];\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, UserService } from '@c8y/client';\nimport {\n AppStateService,\n getActivatedRoute,\n gettext,\n ModalService,\n Status,\n TabsService,\n ViewContext,\n Widget,\n Permissions\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { assign, pick, some, keys, keyBy, has, get, forEach, cloneDeep } from 'lodash-es';\nimport { from, of } from 'rxjs';\nimport {\n catchError,\n filter,\n map,\n mergeAll,\n mergeMap,\n tap,\n toArray,\n throwIfEmpty\n} from 'rxjs/operators';\nimport {\n ContextDashboard,\n ContextDashboardManagedObject,\n ContextDashboardType\n} from './context-dashboard.model';\n\n@Injectable()\nexport class ContextDashboardService {\n private cache = new Map<string, ContextDashboardManagedObject>();\n private readonly DEFAULT_PAGESIZE = 1000;\n private readonly FRAGMENT_NAME = 'c8y_Dashboard';\n private readonly DASHBOARD_ROUTE_PATH = 'dashboard';\n private readonly INDEX_SPLIT = '!';\n private currentContextRoute: string;\n private _formDisabled = true;\n\n get formDisabled() {\n return this._formDisabled;\n }\n\n set formDisabled(value) {\n this._formDisabled = value;\n }\n\n constructor(\n private inventory: InventoryService,\n private tabs: TabsService,\n private modal: ModalService,\n private translateService: TranslateService,\n private router: Router,\n private user: UserService,\n private appState: AppStateService,\n private permissions: Permissions\n ) {}\n\n async create(dashboardCfg: ContextDashboard, contextOrName: { contextData: any } | string) {\n let id;\n let dashboardType;\n if (typeof contextOrName === 'string') {\n id = contextOrName as string;\n dashboardType = ContextDashboardType.Named;\n } else {\n id = contextOrName.contextData.id as string;\n dashboardType = this.getDashboardTypeFromViewContext(dashboardCfg, contextOrName);\n }\n\n const dashboard: Partial<IManagedObject> = {};\n assign(dashboard, { c8y_Dashboard: dashboardCfg });\n\n const value =\n dashboardType === ContextDashboardType.DeviceType ? dashboardCfg.deviceTypeValue : id;\n\n const fragmentKey = this.createFragmentKey(dashboardType, value);\n dashboard[fragmentKey] = {};\n\n if (this.shouldSetGlobal(dashboard)) {\n assign(dashboard, { c8y_Global: {} });\n }\n const { data } = dashboardType === ContextDashboardType.Group || dashboardType === ContextDashboardType.Device\n ? await this.inventory.childAdditionsCreate(dashboard, id)\n : await this.inventory.create(dashboard);\n return data as ContextDashboardManagedObject;\n }\n\n async detail(dashboardMO: ContextDashboardManagedObject) {\n const { data } = await this.inventory.detail(dashboardMO);\n this.cache.set(dashboardMO.id, data);\n return data;\n }\n\n async update(dashboard: ContextDashboardManagedObject) {\n const cleanedDashboard = this.clean(pick(dashboard, [this.FRAGMENT_NAME, 'id']));\n cleanedDashboard.c8y_Global = this.shouldSetGlobal(dashboard);\n const { data } = await this.inventory.update(cleanedDashboard);\n this.cache.set(dashboard.id, data);\n return data;\n }\n\n async delete(dashboard: ContextDashboardManagedObject) {\n try {\n let msg = gettext(\n `You are about to delete the dashboard \"{{ dashboardName }}\". Do you want to proceed?`\n );\n if (this.isDeviceType(dashboard)) {\n msg = gettext(\n `You are about to delete the dashboard \"{{ dashboardName }}\" from all devices of the type \"{{ deviceType }}\".\n Do you want to proceed?`\n );\n }\n await this.modal.confirm(\n gettext('Delete dashboard'),\n this.translateService.instant(msg, {\n dashboardName: dashboard.c8y_Dashboard.name,\n deviceType: dashboard.c8y_Dashboard.deviceTypeValue\n }),\n Status.DANGER,\n {\n ok: gettext('Delete'),\n cancel: gettext('Cancel')\n }\n );\n await this.inventory.delete(dashboard);\n const tabToRemove = Array.from(this.tabs.state).find(tab =>\n tab.path.endsWith(`${this.DASHBOARD_ROUTE_PATH}/${dashboard.id}`)\n );\n this.tabs.remove(tabToRemove);\n this.tabs.refresh();\n } catch (ex) {\n // intended empty\n }\n }\n\n activateDashboards(route: ActivatedRouteSnapshot, types: ContextDashboardType[]) {\n const { dashboardId } = route.params;\n if (dashboardId) {\n return this.getDashboard$(dashboardId, types, route.parent.data.contextData).pipe(\n tap(dashboard => {\n route.data = { dashboard };\n }),\n map(() => true),\n catchError(() => {\n return of(false);\n })\n );\n }\n\n return this.getTabs$(route.data.contextData, types);\n }\n\n getNamedDashboardOrCreate(name: string, defaultWidgets: Widget[]) {\n const children = this.mapWidgets(defaultWidgets);\n return this.getDashboard$(name, [ContextDashboardType.Named]).pipe(\n throwIfEmpty(),\n catchError(() =>\n from(\n this.create({children}, name)\n )\n )\n );\n }\n\n async refreshTabs(dashboardMO: ContextDashboardManagedObject) {\n if (!this.isNamed(dashboardMO)) {\n const tabToUpdate = Array.from(this.tabs.state).find(tab =>\n tab.path.endsWith(`${this.DASHBOARD_ROUTE_PATH}/${dashboardMO.id}`)\n );\n\n const data = await this.detail(dashboardMO);\n if (tabToUpdate) {\n const { icon, priority, name } = data.c8y_Dashboard;\n tabToUpdate.icon = icon;\n tabToUpdate.priority = priority;\n tabToUpdate.label = name;\n }\n this.tabs.refresh();\n }\n }\n\n async navigateToDashboard(dashboardMO: ContextDashboardManagedObject) {\n if (/dashboard/.test(this.router.url)) {\n this.router.navigate(['..', dashboardMO.id], {\n relativeTo: getActivatedRoute(this.router)\n });\n } else {\n this.router.navigate(['..', 'dashboard', dashboardMO.id], {\n relativeTo: getActivatedRoute(this.router)\n });\n }\n }\n\n canEditDashboard(mo) {\n return this.permissions.canEdit(['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE'], mo);\n }\n\n isNamed(dashboard: Partial<ContextDashboardManagedObject>) {\n return some(keys(dashboard), prop =>\n new RegExp(\n `^${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.Named}${this.INDEX_SPLIT}`\n ).test(prop)\n );\n }\n\n isDeviceType(dashboard: Partial<ContextDashboardManagedObject>) {\n return some(keys(dashboard), prop =>\n new RegExp(\n `^${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.DeviceType}${\n this.INDEX_SPLIT\n }`\n ).test(prop)\n );\n }\n\n getStyling(styleList, styleName, defaultValue) {\n const styling = styleList.find(style => style && new RegExp(styleName, 'i').test(style.class));\n return styling ? styling.class : defaultValue;\n }\n\n mapWidgets(widgets: Widget[]) {\n return keyBy(\n widgets.map(widget => {\n widget.id = String(Math.random()).substr(2);\n return widget;\n }),\n 'id'\n );\n }\n\n private getDashboard$(\n dashboardIdOrName,\n dashboardType: ContextDashboardType[],\n mo?: IManagedObject\n ) {\n const cache = this.cache.get(dashboardIdOrName);\n\n const dashboards = mo\n ? this.getContextDashboards(mo, dashboardType)\n : [this.getNamedDashboard(dashboardIdOrName)];\n\n const cacheRefresh = this.getContextDashboards$(dashboards).pipe(\n tap((dashboard) => this.cacheDashboard(dashboard)),\n filter(\n dashboard =>\n dashboard.id === dashboardIdOrName ||\n has(\n dashboard,\n `${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.Named}${\n this.INDEX_SPLIT\n }${dashboardIdOrName}`\n )\n )\n );\n return cache ? of(cache) : cacheRefresh;\n }\n\n private getTabs$(mo: ContextDashboardManagedObject, dashboardType: ContextDashboardType[]) {\n const dashboards = this.getContextDashboards(mo, dashboardType);\n this.setBaseContextRoute(mo, dashboardType);\n\n return this.getContextDashboards$(dashboards).pipe(\n map(dashboard => this.removeDashboardMoProperty(dashboard)),\n tap(dashboard => this.cacheDashboard(dashboard)),\n map(dashboard => this.createDashboardTab(dashboard)),\n toArray()\n );\n }\n\n private getContextDashboards$(requests: Array<Promise<IResultList<IManagedObject>>>) {\n return from(requests).pipe(\n mergeAll(),\n mergeMap(response => response.data as ContextDashboardManagedObject[]));\n }\n\n private setBaseContextRoute(mo: IManagedObject, dashboardType: ContextDashboardType[]) {\n const type = dashboardType.includes(ContextDashboardType.Device)\n ? ContextDashboardType.Device\n : ContextDashboardType.Group;\n this.currentContextRoute = `${type}/${mo.id}`;\n }\n\n /**\n * Cleans already corrupted dashboards from dashboardMo property.\n * Added to fix dashboards on the cloud instance (eu-latest).\n * @deprecated This is going to be removed after 1007.7.0.\n */\n private removeDashboardMoProperty(\n dashboard: ContextDashboardManagedObject\n ): ContextDashboardManagedObject {\n const dashboardCopy = cloneDeep(dashboard);\n const children = get(dashboardCopy, 'c8y_Dashboard.children');\n let updateDashboard = false;\n\n forEach(children, child => {\n if (get(child, 'componentTransformConfigWithContext')) {\n delete child.componentTransformConfigWithContext;\n updateDashboard = true;\n }\n if (get(child, 'config.dashboardMo')) {\n delete child.config.dashboardMo;\n updateDashboard = true;\n }\n });\n\n if (updateDashboard) {\n this.update(dashboardCopy);\n }\n return dashboardCopy;\n }\n\n private cacheDashboard(dashboard: ContextDashboardManagedObject) {\n this.cache.set(dashboard.id, dashboard);\n }\n\n private createDashboardTab(dashboard: ContextDashboardManagedObject) {\n const { c8y_Dashboard: _dashboard, id } = dashboard;\n return ({\n icon: _dashboard.icon,\n path: `${this.DASHBOARD_ROUTE_PATH}/${id}`,\n label: _dashboard.name,\n priority: _dashboard.priority\n });\n }\n\n private clean(dashboard) {\n const jsonString = JSON.stringify(dashboard, (key, value) => {\n if (key === '$$hashKey' || key === 'klasses') {\n return undefined;\n }\n\n return value;\n });\n return JSON.parse(jsonString);\n }\n\n private getNamedDashboard(name: string) {\n return this.inventory.list({\n fragmentType: `${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${ContextDashboardType.Named}${\n this.INDEX_SPLIT\n }${name}`,\n pageSize: 1\n });\n }\n\n private getContextDashboards(mo: IManagedObject, dashboardType: ContextDashboardType[]) {\n return dashboardType.map((type: ContextDashboardType) =>\n this.inventory.list({\n fragmentType: `${this.FRAGMENT_NAME}${this.INDEX_SPLIT}${type}${this.INDEX_SPLIT}${\n type === ContextDashboardType.DeviceType ? mo.type : mo.id\n }`,\n pageSize: this.DEFAULT_PAGESIZE\n })\n );\n }\n\n private getDashboardTypeFromViewContext(dashboardCfg, context) {\n let dashboardType;\n if (context.context === ViewContext.Device) {\n dashboardType = dashboardCfg.deviceType\n ? ContextDashboardType.DeviceType\n : ContextDashboardType.Device;\n }\n if (context.context === ViewContext.Group) {\n dashboardType = ContextDashboardType.Group;\n }\n return dashboardType;\n }\n\n private createFragmentKey(contextDashboardType: ContextDashboardType, value: string) {\n return [this.FRAGMENT_NAME, contextDashboardType, value].join(this.INDEX_SPLIT);\n }\n\n private shouldSetGlobal(dashboard: Partial<ContextDashboardManagedObject>) {\n if (this.isNamed(dashboard) || this.isDeviceType(dashboard)) {\n return {};\n }\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { ContextDashboardType } from './context-dashboard.model';\nimport { ContextDashboardService } from './context-dashboard.service';\n\n@Injectable()\nexport class DeviceDashboardGuard {\n constructor(\n private contextDashboardService: ContextDashboardService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n return this.contextDashboardService.activateDashboards(route, [\n ContextDashboardType.Device,\n ContextDashboardType.DeviceType\n ]);\n }\n}\n","import { Component, Inject, ViewChild } from '@angular/core';\nimport { ICON_LIST } from '@c8y/ngx-components';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport {\n ContextDashboard,\n DASHBOARD_THEME_CLASSES,\n WIDGET_HEADER_CLASSES\n} from './context-dashboard.model';\nimport { clone } from 'lodash-es';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { NgForm } from '@angular/forms';\n\n@Component({\n selector: 'c8y-dashboard-detail',\n templateUrl: './dashboard-detail.component.html'\n})\nexport class DashboardDetailComponent {\n @ViewChild('dashboardDetailForm', { static: true }) dashboardDetailForm: NgForm;\n dashboard: ContextDashboard;\n current: ContextDashboard;\n deviceType: string;\n isNamedDashboard: boolean;\n icons: string[];\n filteredIcons: string[];\n styling = {\n themeClass: 'dashboard-theme-light',\n headerClass: 'panel-title-regular'\n };\n possibleStyling = { DASHBOARD_THEME_CLASSES, WIDGET_HEADER_CLASSES };\n result: Promise<ContextDashboard> = new Promise((resolve, reject) => {\n this._save = resolve;\n this._cancel = reject;\n });\n\n readonly DEFAULT_DASHBOARD_MARGIN = 12;\n readonly DEFAULT_DASHBOARD_ICON = 'th';\n readonly DEFAULT_DASHBOARD_PRIORITY = 10000;\n readonly DEFAULT_DASHBOARD_NAME = 'Dashboard';\n\n private _save;\n private _cancel;\n\n constructor(\n private modal: BsModalRef,\n @Inject(ICON_LIST) iconList: string[],\n private contextDashboardService: ContextDashboardService\n ) {\n this.icons = iconList;\n this.filteredIcons = iconList;\n }\n\n ngAfterContentInit(): void {\n const defaultDashboardCfg = {\n name: this.DEFAULT_DASHBOARD_NAME,\n priority: this.DEFAULT_DASHBOARD_PRIORITY,\n icon: this.DEFAULT_DASHBOARD_ICON,\n deviceTypeValue: this.deviceType\n };\n\n if (this.dashboard) {\n this.current = clone(this.dashboard);\n this.setDashboardStyle();\n } else {\n this.dashboard = defaultDashboardCfg;\n this.dashboardDetailForm.form.markAsDirty();\n }\n }\n\n save() {\n this.dashboard.classes = { [this.styling.themeClass]: true };\n this.dashboard.widgetClasses = { [this.styling.headerClass]: true };\n this._save(this.dashboard);\n }\n\n close() {\n this._cancel();\n this.modal.hide();\n }\n\n getDashboardPreviewStyle() {\n const cssClasses = {};\n cssClasses[this.styling.headerClass] = true;\n cssClasses[this.styling.themeClass] = true;\n return cssClasses;\n }\n\n selectIcon(icon) {\n this.dashboard.icon = icon;\n this.dashboardDetailForm.form.markAsDirty();\n }\n\n updateFiltered(term: string) {\n if (term) {\n const search = new RegExp(term, 'i');\n this.filteredIcons = this.icons.filter(val => search.test(val));\n } else {\n this.filteredIcons = this.icons;\n }\n }\n\n private setDashboardStyle() {\n const allClasses = {\n ...this.dashboard.classes,\n ...this.dashboard.widgetClasses\n };\n\n const styles = Object.keys(allClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n this.styling.themeClass = this.contextDashboardService.getStyling(\n DASHBOARD_THEME_CLASSES,\n styleName,\n this.styling.themeClass\n );\n this.styling.headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n this.styling.headerClass\n );\n });\n }\n}\n","import { Injectable, Inject } from '@angular/core';\nimport { sortBy, cloneDeep } from 'lodash-es';\nimport { DynamicComponentService, DynamicComponentDefinition } from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ContextDashboardConfig, CONTEXT_DASHBOARD_CONFIG } from './context-dashboard.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n constructor(\n private dynamicComponentService: DynamicComponentService,\n private translateService: TranslateService,\n @Inject(CONTEXT_DASHBOARD_CONFIG) public moduleConfig: ContextDashboardConfig\n ) {}\n\n async getWidgetDefinition(componentId): Promise<DynamicComponentDefinition> {\n return this.dynamicComponentService.getById$(componentId).toPromise();\n }\n\n getWidgetDefinitions() {\n const translatedComponents = Array.from(this.dynamicComponentService.state).map(cmp => ({\n ...cmp,\n label: this.translateService.instant(cmp.label)\n }));\n\n return cloneDeep(sortBy(translatedComponents, 'label').filter(this.moduleConfig.widgetFilter));\n }\n}\n","import { Component, OnDestroy } from '@angular/core';\nimport { DynamicComponentDefinition, Widget } from '@c8y/ngx-components';\nimport { clone, cloneDeep, escapeRegExp, get, omit } from 'lodash-es';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { iif, Subject, Subscription, timer } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport {\n ContextDashboardManagedObject,\n WIDGET_CONTENT_CLASSES,\n WIDGET_HEADER_CLASSES,\n ContextWidgetConfig\n} from './context-dashboard.model';\nimport { WidgetService } from './widget.service';\nimport { ContextDashboardService } from './context-dashboard.service';\n\n@Component({\n selector: 'c8y-widget-config',\n templateUrl: './widget-config.component.html'\n})\nexport class WidgetConfigComponent implements OnDestroy {\n mode: 'config' | 'select' | 'style' = 'select';\n searchResult: DynamicComponentDefinition[];\n components: DynamicComponentDefinition[];\n selected: DynamicComponentDefinition;\n searchChange$ = new Subject();\n searchTerm = '';\n context: any;\n componentLabel: string;\n mo: ContextDashboardManagedObject;\n styling = {\n headerClass: 'panel-title-regular',\n contentClass: 'panel-content-light'\n };\n defaultStyling = {\n headerClass: 'panel-title-regular',\n contentClass: 'panel-content-light'\n };\n possibleStyling = { WIDGET_HEADER_CLASSES, WIDGET_CONTENT_CLASSES };\n current: any;\n widgetConfig: ContextWidgetConfig;\n isUpgrade = false;\n\n get isEdit() {\n return !!this.current;\n }\n\n result: Promise<Widget> = new Promise((resolve, reject) => {\n this._save = resolve;\n this._cancel = reject;\n });\n\n private searchSub: Subscription;\n private _save;\n private _cancel;\n\n constructor(\n private widgetService: WidgetService,\n private modal: BsModalRef,\n public contextDashboardService: ContextDashboardService\n ) {}\n\n ngAfterContentInit(): void {\n this.components = this.widgetService.getWidgetDefinitions();\n\n if (this.selected) {\n this.current = clone(this.selected);\n this.select(this.selected, this.isEdit ? 'config' : 'select');\n }\n\n this.searchSub = this.searchChange$\n .pipe(\n switchMap((event: KeyboardEvent) => iif(() => event.which !== 13, timer(200), timer(10)))\n )\n .subscribe(() => {\n this.search();\n });\n\n if (this.mo.c8y_Dashboard.classes) {\n this.styling = this.setDefaultStyle({\n ...this.mo.c8y_Dashboard.classes,\n ...this.mo.c8y_Dashboard.widgetClasses,\n ...(this.isEdit ? this.current.data.classes : {})\n });\n this.defaultStyling = this.setDefaultStyle({\n ...this.mo.c8y_Dashboard.classes,\n ...this.mo.c8y_Dashboard.widgetClasses\n });\n }\n }\n\n save() {\n const { _x, _y, _width, _height } = this.selected.data;\n\n if (this.widgetConfig && this.widgetConfig.device) {\n const { id, name } = this.widgetConfig.device;\n this.widgetConfig.device = { id, name };\n }\n\n const widget = {\n _x,\n _y,\n _width,\n _height,\n config: omit(this.widgetConfig, 'settings'),\n title: this.selected.data.title,\n componentId: this.selected.id,\n id: this.isEdit ? this.current.data.id : String(Math.random()).substr(2),\n classes: this.getStyle(),\n ...(!this.isEdit ? this.widgetConfig.settings.widgetDefaults : {})\n } as Widget;\n\n this._save(widget);\n }\n\n select(cmp, mode: 'select' | 'config' = 'config') {\n cmp.data = cmp.data || {};\n this.selected = cmp;\n\n this.isUpgrade = !!get(cmp, 'data.settings.upgrade');\n this.contextDashboardService.formDisabled = this.isUpgrade;\n\n if (this.isEdit) {\n const { _x, _y, _width, _height, classes, title } = this.current.data;\n this.selected.data = { ...this.selected.data, _x, _y, _width, _height, classes, title };\n }\n\n this.widgetConfig = cloneDeep(this.composeWidgetConfig(this.selected, this.context));\n\n this.selected.data.title = this.selected.data.title || cmp.label;\n this.componentLabel = cmp.label;\n this.mode = mode;\n }\n\n search() {\n if (this.searchTerm.length > 0) {\n this.searchResult = this.components.filter(cmp =>\n new RegExp(escapeRegExp(this.searchTerm.trim()), 'i').test(cmp.label)\n );\n } else {\n this.resetSearch();\n }\n }\n\n resetSearch() {\n this.searchTerm = '';\n this.searchResult = undefined;\n }\n\n changeMode(mode: 'config' | 'select' | 'style') {\n this.mode = mode;\n }\n\n close() {\n this._cancel();\n this.modal.hide();\n }\n\n getStyle(isPreview = false) {\n const cssClasses = {};\n if (isPreview || !this.isDashboardDefaultStyle(this.styling.headerClass)) {\n cssClasses[this.styling.headerClass] = true;\n }\n\n if (isPreview || !this.isDashboardDefaultStyle(this.styling.contentClass)) {\n cssClasses[this.styling.contentClass] = true;\n }\n\n if (isPreview) {\n cssClasses[`dashboard-theme-${this.defaultStyling.contentClass.split('-').pop()}`] = true;\n }\n\n return cssClasses;\n }\n\n ngOnDestroy(): void {\n this.contextDashboardService.formDisabled = true;\n if (this.searchSub) {\n this.searchSub.unsubscribe();\n }\n }\n\n private isDashboardDefaultStyle(className) {\n const allClasses = {\n ...this.mo.c8y_Dashboard.classes,\n ...this.mo.c8y_Dashboard.widgetClasses\n };\n const styles = Object.keys(allClasses).map(cssClass => ({ class: cssClass }));\n const style = this.contextDashboardService.getStyling(\n styles,\n className.split('-').pop(),\n undefined\n );\n return !!style;\n }\n\n private setDefaultStyle(setClasses) {\n let contentClass = this.styling.contentClass;\n let headerClass = this.styling.headerClass;\n\n const styles = Object.keys(setClasses).map(c => c.split('-').pop());\n styles.forEach(styleName => {\n contentClass = this.contextDashboardService.getStyling(\n WIDGET_CONTENT_CLASSES,\n styleName,\n contentClass\n );\n headerClass = this.contextDashboardService.getStyling(\n WIDGET_HEADER_CLASSES,\n styleName,\n headerClass\n );\n });\n\n return { headerClass, contentClass };\n }\n\n private composeWidgetConfig(selectedComponent, context = {}) {\n const setting = {\n settings: {\n ...selectedComponent.data.settings,\n ...get(selectedComponent.data.settings, 'ng1.options'),\n ...get(selectedComponent.data, 'ng1.options'),\n context,\n dashboardMo: this.mo.c8y_Dashboard\n },\n ...selectedComponent.data.config\n } as ContextWidgetConfig;\n return this.applyTargetIfDeviceDashboard(setting);\n }\n\n private applyTargetIfDeviceDashboard(widgetConfig: ContextWidgetConfig) {\n const isDeviceType = this.contextDashboardService.isDeviceType(this.mo);\n\n if (isDeviceType) {\n widgetConfig.settings.hideTarget = isDeviceType;\n\n const noDeviceTarget = widgetConfig.settings.ng1\n ? widgetConfig.settings.ng1.options.noDeviceTarget\n : widgetConfig.settings.noDeviceTarget;\n\n if (!noDeviceTarget) {\n widgetConfig.device = {\n id: this.context.id,\n name: this.context.name\n };\n }\n }\n return widgetConfig;\n }\n}\n","import { Component, HostBinding, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n AlertService,\n DashboardChildChange,\n DashboardChildComponent,\n DashboardSettings,\n DynamicComponentDefinition,\n gettext,\n Widget,\n WidgetChange\n} from '@c8y/ngx-components';\nimport { cloneDeep, findIndex, get, keyBy, omit, values } from 'lodash-es';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Subscription } from 'rxjs';\nimport {\n ContextDashboard,\n ContextDashboardConfig,\n ContextDashboardManagedObject,\n CONTEXT_DASHBOARD_CONFIG,\n WIDGET_HEADER_CLASSES\n} from './context-dashboard.model';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { DashboardDetailComponent } from './dashboard-detail.component';\nimport { WidgetConfigComponent } from './widget-config.component';\nimport { WidgetService } from './widget.service';\n\n/**\n * The context dashboard is a dashboard which resolves it data from the current context (device or group)\n * it is displayed on. It usually uses the route.data for it, but you can pass\n * a different managedObject to the [mo] input parameter to change that behavior.\n */\n@Component({\n selector: 'c8y-context-dashboard',\n templateUrl: './context-dashboard.component.html',\n host: {\n style: `\n display: block;\n `,\n class: 'dashboard c8y-grid-dashboard'\n }\n})\nexport class ContextDashboardComponent implements OnInit, OnDestroy {\n @Input()\n name: string;\n @Input()\n childrenClasses = '';\n @Input()\n context: any;\n @Input()\n setTitle: boolean = false;\n @Input()\n disabled: boolean = false;\n @Input()\n defaultWidgets: Widget[] = [];\n @Input()\n canDelete: boolean = true;\n @Input()\n isLoading: boolean = true;\n\n @HostBinding('class')\n class = '';\n\n widgets: Widget[] = [];\n mo: ContextDashboardManagedObject;\n dashboard: ContextDashboard;\n\n private dataSub: Subscription;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private contextDashboardService: ContextDashboardService,\n private alert: AlertService,\n private renderer: Renderer2,\n @Inject(CONTEXT_DASHBOARD_CONFIG) public moduleConfig: ContextDashboardConfig,\n private widgetService: WidgetService,\n private bsModal: BsModalService\n ) {}\n\n ngOnInit() {\n if (!this.name) {\n this.loadContextDashboard();\n return;\n }\n this.loadNamedDashboard();\n }\n\n /**\n * Applies the current context to the widget\n * @param widget The widget to apply the context to.\n */\n applyDeviceTarget(widget) {\n if (widget.config.device) {\n widget.config.device = { id: this.context.id, name: this.context.name };\n }\n }\n\n /**\n * Removes the route listener.\n */\n ngOnDestroy(): void {\n if (this.dataSub) {\n this.dataSub.unsubscribe();\n }\n }\n\n /**\n * Restores the dashboard widgets to the default widgets.\n */\n async restore() {\n this.isLoading = true;\n this.mo.c8y_Dashboard.children = this.contextDashboardService.mapWidgets(this.defaultWidgets);\n await this.contextDashboardService.update(this.mo);\n this.onLoad();\n }\n\n /**\n * Updates all dashboards children's. Useful for position changes on the dashboard.\n * @param child The child to change.\n */\n async updateDashboardChildren(child: DashboardChildChange) {\n const { children } = child;\n const dashboardMO: ContextDashboardManagedObject = this.mo;\n const mappedChildren: { [id: string]: Widget } = keyBy(\n children.map(c => this.componentToWidget(c)),\n 'id'\n );\n dashboardMO.c8y_Dashboard.children = mappedChildren;\n return this.contextDashboardService.update(dashboardMO);\n }\n\n /**\n * Remove the complete dashboard and navigate away.\n */\n async deleteDashboard() {\n await this.contextDashboardService.delete(this.mo);\n if (this.route.parent) {\n const route = this.route.parent.snapshot.url.map(segment => segment.path).join('/');\n this.router.navigateByUrl(route);\n }\n }\n\n /**\n * Edits the current dashboard\n */\n async editDashboard() {\n const initialState = {\n dashboard: this.dashboard,\n deviceType: this.context.type,\n isNamedDashboard: this.contextDashboardService.isNamed(this.mo)\n };\n const modal = this.bsModal.show(DashboardDetailComponent, {\n class: 'modal-lg',\n initialState,\n ignoreBackdropClick: true\n }).content as DashboardDetailComponent;\n try {\n const dashboardMO = cloneDeep(this.mo);\n dashboardMO.c8y_Dashboard = await modal.result;\n await this.contextDashboardService.update(dashboardMO);\n await this.contextDashboardService.refreshTabs(dashboardMO);\n this.onLoad();\n modal.close();\n } catch (ex) {\n // intended empty\n }\n }\n\n /**\n * Edits a widget on the dashboard.\n * @param change The widget change event.\n */\n async editWidget(change: WidgetChange) {\n const { x, y, width, height } = change.source;\n const component = await this.widgetService.getWidgetDefinition(\n change.widget.name || change.widget.componentId\n );\n if (!component) {\n this.addWidget();\n return;\n }\n await this.addWidget({\n ...component,\n data: { ...component.data, ...change.widget, _x: x, _y: y, _width: width, _height: height }\n });\n }\n\n /**\n * Adds a widget to the dashboard.\n * @param selected Define a selected component to switch to edit mode directly.\n */\n async addWidget(selected?: DynamicComponentDefinition) {\n const initialState = {\n mo: this.mo,\n context: this.context,\n selected: cloneDeep(selected)\n };\n\n const modal = this.bsModal.show(WidgetConfigComponent, {\n class: 'modal-lg',\n initialState,\n ignoreBackdropClick: true\n }).content as WidgetConfigComponent;\n\n try {\n const newWidget = await modal.result;\n if (!this.mo.c8y_Dashboard.children) {\n this.mo.c8y_Dashboard.children = {};\n }\n this.mo.c8y_Dashboard.children[newWidget.id] = newWidget;\n this.contextDashboardService.update(this.mo);\n newWidget.classes = this.mergeWidgetClasses(newWidget);\n await this.updateWidget(newWidget);\n modal.close();\n } catch (ex) {\n // intended empty\n }\n }\n\n /**\n * Updates a widget or adds a new one if it doesn't exist on\n * the dashboard.\n * @param widget The new widget\n */\n async updateWidget(widget) {\n const index = findIndex(this.widgets, { id: widget.id });\n const isNew = index === -1;\n const mappedWidget = await this.mapLegacy(widget);\n if (isNew) {\n this.widgets.push(mappedWidget);\n } else {\n this.widgets.splice(index, 1, mappedWidget);\n }\n }\n\n /**\n * Removes a widget and rearranges the remaining ones\n * if necessary.\n * @param change The change event.\n */\n deleteWidget(change: WidgetChange) {\n const { widget, source } = change;\n delete this.mo.c8y_Dashboard.children[widget.id];\n const removed = this.widgets.find(({ id }) => id === widget.id);\n this.widgets.splice(this.widgets.indexOf(removed), 1);\n\n // using setTimeout to give the component the chance to remove it.\n setTimeout(() => {\n const child = new DashboardChildChange(source);\n child.collapseUpAll();\n this.updateDashboardChildren(child);\n });\n }\n\n /**\n * This is a workaround to ensure that the dragged-element\n * (which is attached to the body) has the right styling.\n */\n addDashboardClassToBody() {\n this.class.split(' ').forEach(cssClass => {\n this.renderer.addClass(document.body, cssClass);\n });\n }\n\n /**\n * This is a workaround to ensure that the dragged-element\n * (which is attached to the body) has the right styling.\n */\n removeDashboardClassFromBody() {\n this.class.split(' ').forEach(cssClass => {\n this.renderer.removeClass(document.body, cssClass);\n });\n }\n\n /**\n * Changes the dashboard settings to frozen or vice versa.\n * @param settings The current settings of the dashboard.\n */\n async toggleFreeze(settings: DashboardSettings) {\n this.toggleIsFrozenFlag(settings);\n try {\n await this.contextDashboardService.update(this.mo);\n if (this.dashboard.isFrozen) {\n this.alert.success(gettext('Your dashboard is locked now.'));\n } else {\n this.alert.success(gettext('Your dashboard is unlocked now.'));\n }\n } catch (ex) {\n this.alert.addServerFailure(ex);\n this.toggleIsFrozenFlag(settings);\n }\n }\n\n private toggleIsFrozenFlag(settings: DashboardSettings) {\n settings.isFrozen = !settings.isFrozen;\n this.dashboard.isFrozen = settings.isFrozen;\n }\n\n private loadContextDashboard() {\n this.dataSub = this.route.data.subscribe(({ dashboard }) => {\n this.context = this.route.parent.snapshot.data.contextData;\n this.mo = dashboard;\n this.dashboard = this.mo.c8y_Dashboard;\n this.onLoad();\n });\n }\n\n private loadNamedDashboard() {\n this.dataSub = this.contextDashboardService\n .getNamedDashboardOrCreate(this.name, this.defaultWidgets)\n .subscribe(mo => {\n this.context = this.context || {};\n this.mo = mo;\n this.dashboard = this.mo.c8y_Dashboard;\n this.onLoad();\n });\n }\n\n private async onLoad() {\n const canEditDashboard = await this.contextDashboardService.canEditDashboard(this.mo);\n this.disabled = !canEditDashboard;\n const dashboardChildren = cloneDeep(this.mo.c8y_Dashboard.children);\n const isDeviceType = this.contextDashboardService.isDeviceType(this.mo);\n const dashboardClasses = {\n 'c8y-grid-dashboard': true,\n dashboard: true,\n ...this.dashboard.classes\n };\n\n this.widgets = await Promise.all<Widget>(\n values(dashboardChildren).map(widget => {\n widget.classes = this.mergeWidgetClasses(widget);\n if (isDeviceType) {\n this.applyDeviceTarget(widget);\n }\n return this.mapLegacy(widget);\n })\n );\n this.class = Object.keys(dashboardClasses).join(' ');\n this.isLoading = false;\n }\n\n private mergeWidgetClasses(widget) {\n const hasHeaderClass = WIDGET_HEADER_CLASSES.find(\n el => widget.classes && widget.classes[el.class]\n );\n const widgetClasses = hasHeaderClass\n ? { ...widget.classes }\n : { ...this.dashboard.widgetClasses, ...widget.classes };\n return {\n card: true,\n 'card-dashboard': true,\n ...widgetClasses\n };\n }\n\n private componentToWidget(child: DashboardChildComponent) {\n return {\n ...omit(child.data, ['componentTransformConfigWithContext', 'transformConfigWithContext']), // remove legacy\n ...({\n _x: child.x,\n _y: child.y,\n _width: child.width,\n _height: child.height\n } as Widget)\n };\n }\n\n private async mapLegacy(widget): Promise<Widget> {\n const cmp = await this.widgetService.getWidgetDefinition(widget.componentId || widget.name);\n if (get(cmp, 'data.settings.upgrade')) {\n widget.widgetComponent = cmp.data.settings.widgetComponent;\n widget.configComponent = cmp.data.settings.configComponent;\n widget.templateUrl = cmp.data.settings.templateUrl;\n widget.configTemplateUrl = cmp.data.settings.configTemplateUrl;\n widget.transformConfigWithContext =\n cmp.data.settings.componentTransformConfigWithContext ||\n cmp.data.settings.transformConfigWithContext;\n } else {\n delete widget.templateUrl;\n delete widget.configTemplateUrl;\n }\n return widget;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { ContextDashboardType } from './context-dashboard.model';\nimport { ContextDashboardService } from './context-dashboard.service';\n\n@Injectable()\nexport class GroupDashboardGuard {\n constructor(\n private contextDashboardService: ContextDashboardService\n ) {}\n\n canActivate(route: ActivatedRouteSnapshot) {\n return this.contextDashboardService.activateDashboards(route, [\n ContextDashboardType.Group\n ]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Action, ActionFactory, gettext, ViewContext, Permissions } from '@c8y/ngx-components';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { DashboardDetailComponent } from './dashboard-detail.component';\nimport { ContextDashboardManagedObject } from './context-dashboard.model';\n\n@Injectable()\nexport class DashboardActionsFactory implements ActionFactory {\n constructor(\n private router: Router,\n private contextDashboardService: ContextDashboardService,\n private bsModal: BsModalService,\n private permissions: Permissions\n ) {}\n\n async get(activatedRoute: ActivatedRoute): Promise<Action[]> {\n const context =\n !activatedRoute.parent || activatedRoute.snapshot.data.context\n ? activatedRoute.snapshot.data\n : activatedRoute.parent.snapshot.data;\n const canEditDashboard = await this.isEnabled(context);\n return [\n {\n label: gettext('Add dashboard'),\n priority: 2500,\n action: () => this.addDashboard(context),\n disabled: !canEditDashboard\n }\n ];\n }\n\n async addDashboard(context) {\n let initialState: { deviceType: string };\n\n if (context.context === ViewContext.Device) {\n initialState = {\n deviceType: context.contextData.type\n };\n }\n\n const modal = this.bsModal.show(DashboardDetailComponent, {\n class: 'modal-lg',\n initialState,\n ignoreBackdropClick: true\n }).content as DashboardDetailComponent;\n try {\n const dashboardCfg = await modal.result;\n const dashboardMO: ContextDashboardManagedObject = await this.contextDashboardService.create(\n dashboardCfg,\n context\n );\n await this.contextDashboardService.navigateToDashboard(dashboardMO);\n modal.close();\n } catch (ex) {\n // intended emptys\n }\n }\n\n private async isEnabled(context) {\n if (context.contextData && context.contextData.id) {\n return (\n (await this.permissions.canEdit(\n ['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE'],\n context.contextData\n )) && [ViewContext.Device, ViewContext.Group].includes(context.context)\n );\n }\n return (\n this.permissions.hasAnyRole(['ROLE_INVENTORY_ADMIN', 'ROLE_INVENTORY_CREATE']) &&\n [ViewContext.Device, ViewContext.Group].includes(context.context)\n );\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { DASHBOARD_THEME_CLASSES, WIDGET_HEADER_CLASSES } from './context-dashboard.model';\nimport { ControlContainer, NgForm } from '@angular/forms';\n\n@Component({\n selector: 'c8y-appearance-settings',\n templateUrl: './appearance-settings.component.html',\n viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ]\n})\nexport class AppearanceSettingsComponent {\n @Input()\n themeClass: string = 'dashboard-theme-light';\n @Input()\n headerClass: string = 'panel-title-regular';\n @Input()\n defaultThemeClass: string;\n @Input()\n defaultHeaderClass: string;\n @Output()\n themeClassChange = new EventEmitter<string>();\n @Output()\n headerClassChange = new EventEmitter<string>();\n\n @Input()\n possibleStylingTheme = DASHBOARD_THEME_CLASSES;\n\n @Input()\n possibleStylingHeader = WIDGET_HEADER_CLASSES;\n\n themeClassClick(value) {\n value = this.resetToDefault(value, this.themeClass, this.defaultThemeClass);\n this.themeClass = value;\n this.themeClassChange.emit(value);\n }\n\n headerClassClick(value) {\n value = this.resetToDefault(value, this.headerClass, this.defaultHeaderClass);\n this.headerClass = value;\n this.headerClassChange.emit(value);\n }\n\n private resetToDefault(value: string, compareTo: string, defaultValue: string) {\n if (defaultValue && value === compareTo) {\n value = defaultValue;\n }\n return value;\n }\n}\n","import { Input, Component } from '@angular/core';\n\n@Component({\n selector: 'c8y-widget-preview',\n templateUrl: './widget-preview.component.html'\n})\nexport class WidgetPreviewComponent {\n @Input()\n previewClasses: { [key: string]: boolean } = {\n 'dashboard-theme-light': true,\n 'panel-title-regular': true\n };\n\n @Input()\n tab: { name: string; icon: string };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport {\n HOOK_ONCE_ROUTE,\n ViewContext,\n CoreModule,\n HOOK_ACTION\n} from '@c8y/ngx-components';\nimport { ContextDashboardService } from './context-dashboard.service';\nimport { DeviceDashboardGuard } from './device-dashboard.guard';\nimport { ContextDashboardComponent } from './context-dashboard.component';\nimport { GroupDashboardGuard } from './group-dashboard.guard';\nimport { CONTEXT_DASHBOARD_CONFIG, ContextDashboardConfig } from './context-dashboard.model';\nimport { DashboardDetailComponent } from './dashboard-detail.component';\nimport { WidgetConfigComponent } from './widget-config.component';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport { PopoverModule } from 'ngx-bootstrap/popover';\nimport { DashboardActionsFactory } from './dashboard-actions.factory';\nimport { AppearanceSettingsComponent } from './appearance-settings.component';\nimport { WidgetPreviewComponent } from './widget-preview.component';\n\nconst defaultConfig = {\n allowFullscreen: true,\n widgetFilter({ data }) {\n return !(data && data.settings && data.settings.noNewWidgets);\n },\n routes: [\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [DeviceDashboardGuard],\n context: ViewContext.Device\n },\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [GroupDashboardGuard],\n context: ViewContext.Group\n }\n ]\n};\n\n@NgModule({\n declarations: [\n AppearanceSettingsComponent,\n ContextDashboardComponent,\n WidgetConfigComponent,\n WidgetPreviewComponent,\n DashboardDetailComponent\n ],\n imports: [CoreModule, TooltipModule, PopoverModule, BsDropdownModule.forRoot()],\n exports: [ContextDashboardComponent, WidgetConfigComponent],\n entryComponents: [ContextDashboardComponent, WidgetConfigComponent, DashboardDetailComponent]\n})\nexport class ContextDashboardModule {\n static config(config: ContextDashboardConfig = {}): ModuleWithProviders {\n return {\n ngModule: ContextDashboardModule,\n providers: [\n {\n provide: CONTEXT_DASHBOARD_CONFIG,\n useValue: { ...defaultConfig, ...config }\n },\n ContextDashboardService,\n DeviceDashboardGuard,\n GroupDashboardGuard,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: { ...defaultConfig, ...config }.routes,\n multi: true\n },\n {\n provide: HOOK_ACTION,\n useClass: DashboardActionsFactory,\n multi: true\n }\n ]\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { gettext, Widget } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-cockpit-dashboard',\n templateUrl: './cockpit-dashboard.component.html'\n})\nexport class CockpitDashboardComponent {\n DEFAULT_HOME_WIDGETS = [\n {\n name: 'cockpit.welcome.widget',\n title: gettext(''),\n _x: 0,\n _y: 0,\n _height: 5,\n _width: 12,\n classes: { 'panel-title-hidden': true }\n },\n {\n name: 'Asset Alarms',\n title: gettext('Active, critical alarms'),\n _x: 0,\n _y: 5,\n _height: 4,\n _width: 6\n },\n {\n name: 'Recent Alarms',\n title: gettext('Recent alarms'),\n _x: 0,\n _y: 9,\n _height: 4,\n _width: 6\n },\n {\n name: 'Map',\n title: gettext('Map'),\n _x: 6,\n _y: 5,\n _height: 8,\n _width: 6\n }\n ] as Widget[];\n}\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { gettext, DocsService, DocLink, NavigatorService } from '@c8y/ngx-components';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { TenantService, ApplicationService, IApplication } from '@c8y/client';\n\n@Component({\n selector: 'c8y-welcome-to-cockpit',\n templateUrl: './welcome.component.html'\n})\nexport class WelcomeToCockpit implements OnInit, OnDestroy {\n @Input() config;\n welcomeMessage;\n quickLinks = [];\n\n private readonly REPORT_NODE: string = 'Reports';\n private readonly CONFIGURATION_NODE: string = 'Configuration';\n private readonly TRIAL: string = 'TRIAL';\n private tenantType: string;\n private navNodes: any[];\n private links: DocLink[];\n private docsSubscription: Subscription;\n private navSubscription: Subscription;\n\n constructor(\n private tenantService: TenantService,\n private docs: DocsService,\n private router: Router,\n private navigator: NavigatorService,\n private applicationService: ApplicationService\n ) {}\n\n async ngOnInit() {\n this.tenantType = await this.tenantService.currentTenantType();\n this.setMessage();\n this.navSubscription = this.navigator.items$.subscribe(nodes => {\n this.navNodes = nodes;\n });\n this.docsSubscription = this.docs.items$.subscribe(links => {\n this.links = links;\n });\n\n // <---TRIAL & REGULAR TENANT --->\n this.createConnectSmartphoneQuickLink();\n await this.createQuicklinkRegisterDevice();\n\n // <--- TRIAL TENANT --->\n if (this.tenantType === this.TRIAL) {\n this.createQuicklinkUserGuide();\n return;\n }\n\n // <--- REGULAR TENANT --->\n this.createQuicklinkAddGroup();\n this.createQuickLinkReports();\n this.createQuicklinkDataPointLibrary();\n this.createQuicklinkSmartRules();\n }\n\n ngOnDestroy() {\n if (this.docsSubscription && !this.docsSubscription.closed) {\n this.docsSubscription.unsubscribe();\n }\n\n if (this.navSubscription && !this.navSubscription.closed) {\n this.navSubscription.unsubscribe();\n }\n }\n\n private setMessage() {\n if (this.tenantType === this.TRIAL) {\n this.welcomeMessage = gettext(`\n The Cockpit application allows you to build IoT applications in minutes.\n To get started, connect any device to the platform.\n If you do not have an IoT device to hand, you can start by connecting your smartphone.\n Click below to be guided through the process.\n `);\n } else {\n this.welcomeMessage = gettext(`\n The Cockpit application provides you with options to manage\n and monitor Internet of Things assets and data from business perspective.\n `);\n }\n }\n\n private createQuicklinkAddGroup() {\n // comes from angularJS factory c8yQuickLinks\n const addGroup: Partial<DocLink> = this.links.find(link => link.label === 'Add group');\n if (addGroup) {\n this.quickLinks.push(addGroup);\n }\n }\n\n private createConnectSmartphoneQuickLink() {\n // Provider in SensorPhoneModule defines the\n // 'Connect smartphone' quicklink.\n const connectSmartphone = this.links.find(link => link.label === 'Connect smartphone');\n if (connectSmartphone) {\n this.quickLinks.push(connectSmartphone);\n }\n }\n\n private createQuickLinkReports() {\n const reports: Partial<DocLink> = {\n icon: 'c8y-reports',\n label: gettext('Reports'),\n url: '/export'\n };\n\n const reportsNode = this.findNavigatorNode(this.REPORT_NODE);\n if (reportsNode && reportsNode.show) {\n reports.click = () => {\n reportsNode.open = true;\n this.router.navigateByUrl(reports.url);\n };\n this.quickLinks.push(reports);\n }\n }\n\n private createQuicklinkDataPointLibrary() {\n const dataPointLib: Partial<DocLink> = {\n icon: 'c8y-data-points',\n label: gettext('Data point library'),\n url: '/datapointlibrary'\n };\n\n const configurationNode = this.findNavigatorNode(this.CONFIGURATION_NODE);\n if (configurationNode && configurationNode.show) {\n dataPointLib.click = () => {\n configurationNode.open = true;\n this.router.navigateByUrl(dataPointLib.url);\n };\n this.quickLinks.push(dataPointLib);\n }\n }\n\n private createQuicklinkSmartRules() {\n const smartRules: Partial<DocLink> = {\n icon: 'c8y-smart-rules',\n label: gettext('Smart rules'),\n url: '/rules'\n };\n const configurationNode = this.findNavigatorNode(this.CONFIGURATION_NODE);\n if (configurationNode && configurationNode.show) {\n smartRules.click = () => {\n configurationNode.open = true;\n this.router.navigateByUrl(smartRules.url);\n };\n this.quickLinks.push(smartRules);\n }\n }\n\n private async createQuicklinkRegisterDevice() {\n const { data } = await this.applicationService.listByUser();\n if (data) {\n const deviceManagement: IApplication = data.find(\n app => app.contextPath === 'devicemanagement'\n );\n if (deviceManagement) {\n const deviceMgmtUrl = this.applicationService.getHref(deviceManagement);\n const registerDevice: Partial<DocLink> = {\n icon: 'c8y-device-connect',\n label: gettext('Register device'),\n click: () => window.open(`${deviceMgmtUrl}/#/deviceregistration`, '_self')\n };\n this.quickLinks.push(registerDevice);\n }\n }\n }\n\n private createQuicklinkUserGuide() {\n const userGuide: Partial<DocLink> = {\n icon: 'c8y-user',\n label: gettext('User guide'),\n url: '/users-guide/getting-started',\n click: () => {\n const userGuideURL = this.docs.getUserGuideLink(userGuide.url) as string;\n window.open(userGuideURL);\n }\n };\n this.quickLinks.push(userGuide);\n }\n\n private findNavigatorNode(nodeRealName: string) {\n if (this.navNodes && this.navNodes.length > 0) {\n return this.navNodes.find((node: any) => node.realName === nodeRealName);\n }\n return undefined;\n }\n}\n","import { Component, Host } from '@angular/core';\r\nimport { ContextDashboardComponent } from '../context-dashboard.component';\r\n\r\n@Component({\r\n selector: 'c8y-legacy-welcome-widget',\r\n templateUrl: './legacy-welcome.component.html'\r\n})\r\nexport class LegacyWelcomeComponent {\r\n constructor(@Host() private dashboard: ContextDashboardComponent) {}\r\n\r\n restore() {\r\n this.dashboard.restore();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { ContextDashboardModule } from './context-dashboard.module';\nimport { ContextDashboardComponent } from './context-dashboard.component';\nimport { DeviceDashboardGuard } from './device-dashboard.guard';\nimport { GroupDashboardGuard } from './group-dashboard.guard';\nimport {\n ViewContext,\n HOOK_NAVIGATOR_NODES,\n gettext,\n CoreModule,\n HOOK_COMPONENTS,\n DynamicComponentDefinition,\n QuickLinkModule,\n DocsModule\n} from '@c8y/ngx-components';\nimport { CockpitDashboardComponent } from './cockpit-dashboard.component';\nimport { ContextWidgetConfig } from './context-dashboard.model';\nimport { WelcomeToCockpit } from './welcome/welcome.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LegacyWelcomeComponent } from './legacy-welcome/legacy-welcome.component';\n\n// import for the preview img to get into the build.\nlet previewImage = '';\ntry {\n // tslint:disable-next-line: no-var-requires\n previewImage = require('./welcome/img/welcome-widget-pr.png');\n} catch (ex) {\n // intended empty\n}\n\n@NgModule({\n entryComponents: [CockpitDashboardComponent, WelcomeToCockpit, LegacyWelcomeComponent],\n imports: [\n DocsModule,\n CoreModule,\n ContextDashboardModule.config({\n routes: [\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [DeviceDashboardGuard],\n context: ViewContext.Device\n },\n {\n path: 'dashboard/:dashboardId',\n component: ContextDashboardComponent,\n canActivate: [GroupDashboardGuard],\n context: ViewContext.Group\n },\n {\n path: '',\n component: CockpitDashboardComponent\n }\n ]\n }),\n QuickLinkModule,\n TranslateModule\n ],\n declarations: [CockpitDashboardComponent, WelcomeToCockpit, LegacyWelcomeComponent],\n providers: [\n {\n provide: HOOK_NAVIGATOR_NODES,\n useValue: [{ label: gettext('Home'), icon: 'home', priority: 10000, path: '/' }],\n multi: true\n },\n {\n provide: HOOK_COMPONENTS,\n multi: true,\n useValue: [\n {\n id: 'cockpit.welcome.widget',\n label: gettext('Welcome to Cockpit'),\n description: gettext('Displays a welcome message for Cockpit'),\n component: WelcomeToCockpit,\n previewImage,\n data: {\n settings: {\n noNewWidgets: false,\n widgetDefaults: {\n _width: 12,\n _height: 6\n },\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n } as ContextWidgetConfig\n }\n ] as DynamicComponentDefinition[]\n },\n {\n provide: HOOK_COMPONENTS,\n multi: true,\n useValue: [\n {\n id: 'Cockpit Welcome',\n label: gettext('Welcome to Cockpit'),\n description: gettext('Displays a welcome message for Cockpit'),\n component: LegacyWelcomeComponent,\n data: {\n settings: {\n noNewWidgets: true,\n ng1: {\n options: {\n noDeviceTarget: true,\n groupsSelectable: false\n }\n }\n }\n } as ContextWidgetConfig\n }\n ] as DynamicComponentDefinition[]\n }\n ]\n})\nexport class CockpitDashboardModule {}\n"],"names":["InjectionToken","ContextDashboardType","gettext","assign","pick","Status","tap","map","catchError","of","throwIfEmpty","from","getActivatedRoute","some","keys","keyBy","filter","has","toArray","mergeAll","mergeMap","cloneDeep","get","forEach","ViewContext","InventoryService","TabsService","ModalService","TranslateService","Router","UserService","AppStateService","Permissions","Injectable","clone","BsModalRef","Inject","ICON_LIST","tslib_1.__decorate","ViewChild","Component","tslib_1.__param","sortBy","DynamicComponentService","Subject","switchMap","iif","timer","tslib_1.__assign","omit","escapeRegExp","findIndex","DashboardChildChange","values","ActivatedRoute","AlertService","Renderer2","BsModalService","Input","HostBinding","EventEmitter","Output","ControlContainer","NgForm","HOOK_ONCE_ROUTE","HOOK_ACTION","NgModule","CoreModule","TooltipModule","PopoverModule","BsDropdownModule","TenantService","DocsService","NavigatorService","ApplicationService","Host","DocsModule","QuickLinkModule","TranslateModule","HOOK_NAVIGATOR_NODES","HOOK_COMPONENTS"],"mappings":"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"}
|