@c8y/ngx-components 1011.0.19 → 1011.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/assets-navigator/asset-node.service.d.ts +7 -3
  2. package/assets-navigator/c8y-ngx-components-assets-navigator.metadata.json +1 -1
  3. package/bundles/c8y-ngx-components-assets-navigator.umd.js +7 -2
  4. package/bundles/c8y-ngx-components-assets-navigator.umd.js.map +1 -1
  5. package/bundles/c8y-ngx-components-assets-navigator.umd.min.js +1 -1
  6. package/bundles/c8y-ngx-components-assets-navigator.umd.min.js.map +1 -1
  7. package/bundles/c8y-ngx-components-child-devices.umd.js +416 -0
  8. package/bundles/c8y-ngx-components-child-devices.umd.js.map +1 -0
  9. package/bundles/c8y-ngx-components-child-devices.umd.min.js +16 -0
  10. package/bundles/c8y-ngx-components-child-devices.umd.min.js.map +1 -0
  11. package/bundles/c8y-ngx-components-device-grid.umd.js +169 -36
  12. package/bundles/c8y-ngx-components-device-grid.umd.js.map +1 -1
  13. package/bundles/c8y-ngx-components-device-grid.umd.min.js +2 -2
  14. package/bundles/c8y-ngx-components-device-grid.umd.min.js.map +1 -1
  15. package/bundles/c8y-ngx-components-sub-assets.umd.js +5 -3
  16. package/bundles/c8y-ngx-components-sub-assets.umd.js.map +1 -1
  17. package/bundles/c8y-ngx-components-sub-assets.umd.min.js +1 -1
  18. package/bundles/c8y-ngx-components-sub-assets.umd.min.js.map +1 -1
  19. package/child-devices/c8y-ngx-components-child-devices.d.ts +5 -0
  20. package/child-devices/c8y-ngx-components-child-devices.metadata.json +1 -0
  21. package/child-devices/child-devices.component.d.ts +9 -0
  22. package/child-devices/child-devices.guard.d.ts +7 -0
  23. package/child-devices/child-devices.module.d.ts +2 -0
  24. package/child-devices/index.d.ts +2 -0
  25. package/child-devices/package.json +11 -0
  26. package/device-grid/c8y-ngx-components-device-grid.metadata.json +1 -1
  27. package/device-grid/device-grid.component.d.ts +18 -4
  28. package/device-grid/device-grid.service.d.ts +8 -3
  29. package/esm2015/assets-navigator/asset-node.service.js +8 -3
  30. package/esm2015/child-devices/c8y-ngx-components-child-devices.js +6 -0
  31. package/esm2015/child-devices/child-devices.component.js +30 -0
  32. package/esm2015/child-devices/child-devices.guard.js +30 -0
  33. package/esm2015/child-devices/child-devices.module.js +36 -0
  34. package/esm2015/child-devices/index.js +3 -0
  35. package/esm2015/device-grid/device-grid.component.js +62 -15
  36. package/esm2015/device-grid/device-grid.service.js +59 -22
  37. package/esm2015/sub-assets/sub-assets.service.js +7 -5
  38. package/fesm2015/c8y-ngx-components-assets-navigator.js +7 -2
  39. package/fesm2015/c8y-ngx-components-assets-navigator.js.map +1 -1
  40. package/fesm2015/c8y-ngx-components-child-devices.js +96 -0
  41. package/fesm2015/c8y-ngx-components-child-devices.js.map +1 -0
  42. package/fesm2015/c8y-ngx-components-device-grid.js +118 -35
  43. package/fesm2015/c8y-ngx-components-device-grid.js.map +1 -1
  44. package/fesm2015/c8y-ngx-components-sub-assets.js +6 -4
  45. package/fesm2015/c8y-ngx-components-sub-assets.js.map +1 -1
  46. package/locales/locales.pot +6 -0
  47. package/package.json +2 -2
  48. package/sub-assets/c8y-ngx-components-sub-assets.metadata.json +1 -1
  49. package/sub-assets/sub-assets.service.d.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"c8y-ngx-components-device-grid.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../device-grid/schema-form.component.ts","../../device-grid/columns/base.filtering-form-renderer.component.ts","../../device-grid/columns/base.device-grid-column.ts","../../device-grid/columns/alarms.cell-renderer.component.ts","../../device-grid/columns/alarms.device-grid-column.ts","../../device-grid/columns/group.cell-renderer.component.ts","../../device-grid/columns/group.filtering-form-renderer.component.ts","../../device-grid/columns/group.device-grid-column.ts","../../device-grid/columns/imei.device-grid-column.ts","../../device-grid/columns/model.cell-renderer.component.ts","../../device-grid/columns/model.device-grid-column.ts","../../device-grid/columns/name.cell-renderer.component.ts","../../device-grid/columns/name.device-grid-column.ts","../../device-grid/columns/registration-date.cell-renderer.component.ts","../../device-grid/columns/registration-date.device-grid-column.ts","../../device-grid/columns/serial-number.cell-renderer.component.ts","../../device-grid/columns/serial-number.device-grid-column.ts","../../device-grid/columns/status.cell-renderer.component.ts","../../device-grid/columns/status.device-grid-column.ts","../../device-grid/columns/system-id.device-grid-column.ts","../../device-grid/device-grid.service.ts","../../device-grid/device-grid.component.ts","../../device-grid/device-grid.module.ts","../../device-grid/columns/custom.device-grid-column.ts","../../device-grid/columns/type.device-grid-column.ts","../../device-grid/c8y-ngx-components-device-grid.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Directive, ElementRef, Injector, Input } from '@angular/core';\nimport { UpgradeComponent } from '@angular/upgrade/static';\n\n// TODO: MTM-31785: find replacement for schema-form ng1 library\n@Directive({\n selector: 'c8y-schema-form'\n})\nexport class SchemaFormComponent extends UpgradeComponent {\n @Input() schema: any;\n @Input() model: any;\n @Input('form') inputForm?: any;\n @Input('options') inputOptions?: any;\n\n constructor(elementRef: ElementRef, injector: Injector) {\n super('c8ySchemaForm', elementRef, injector);\n }\n}\n","import { Component, forwardRef, OnInit, ViewChild, HostListener, ElementRef } from '@angular/core';\nimport { get, cloneDeep } from 'lodash-es';\nimport { FilteringFormRendererContext } from '@c8y/ngx-components';\nimport { SchemaFormComponent } from '../schema-form.component';\nimport { DeviceGridColumn } from '../device-grid.models';\n\n@Component({\n templateUrl: './base.filtering-form-renderer.component.html'\n})\nexport class BaseFilteringFormRendererComponent implements OnInit {\n @ViewChild(forwardRef(() => SchemaFormComponent), { static: false })\n schemaFormComponent: any;\n schema;\n form;\n model;\n options;\n\n constructor(public context: FilteringFormRendererContext) {}\n\n @HostListener('keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.applyFilter();\n }\n @HostListener('keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.resetFilter();\n }\n\n ngOnInit() {\n const column: DeviceGridColumn = this.context.property;\n this.schema = cloneDeep(column.filteringConfig.schema);\n this.form = cloneDeep(column.filteringConfig.form);\n this.model = cloneDeep(column.externalFilterQuery || {});\n this.options = { formDefaults: { ngModelOptions: { debounce: 100 } } };\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n try {\n this.schemaFormComponent.elementRef.nativeElement.querySelector('input').focus();\n } catch (e) {\n // intended empty\n }\n }, 10);\n }\n\n canApply() {\n return get(this.schemaFormComponent, '$componentScope.vm.ngForm.$invalid');\n }\n\n applyFilter() {\n this.context.applyFilter({\n externalFilterQuery: this.model\n });\n }\n\n resetFilter() {\n this.context.resetFilter();\n }\n}\n","import { Type } from '@angular/core';\nimport { ColumnDataType, SortOrder, FilterPredicateFunction, ColumnConfig } from '@c8y/ngx-components';\nimport {\n DeviceGridColumn,\n DeviceGridColumnFilteringConfig,\n DeviceGridColumnSortingConfig\n} from '../device-grid.models';\nimport { BaseFilteringFormRendererComponent } from './base.filtering-form-renderer.component';\n\nexport class BaseDeviceGridColumn implements DeviceGridColumn {\n name: string;\n path?: string;\n header?: string;\n dataType?: ColumnDataType;\n\n visible?: boolean;\n positionFixed?: boolean;\n gridTrackSize?: string;\n\n headerCSSClassName?: string | string[];\n headerCellRendererComponent?: Type<any>;\n\n cellCSSClassName?: string | string[];\n cellRendererComponent?: Type<any>;\n\n sortable?: boolean;\n sortingConfig?: DeviceGridColumnSortingConfig;\n sortOrder?: SortOrder;\n\n filterable?: boolean;\n filteringConfig?: DeviceGridColumnFilteringConfig;\n filteringFormRendererComponent?: Type<any>;\n filterPredicate?: string | FilterPredicateFunction;\n externalFilterQuery?: string | object;\n\n constructor(config: ColumnConfig = {}) {\n this.filteringFormRendererComponent = BaseFilteringFormRendererComponent;\n Object.assign(this, config);\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n templateUrl: './alarms.cell-renderer.component.html'\n})\nexport class AlarmsCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { AlarmsCellRendererComponent } from './alarms.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\nimport { map } from 'lodash-es';\n\nexport class AlarmsDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'alarms';\n this.header = gettext('Alarms');\n this.cellRendererComponent = AlarmsCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n critical: {\n type: 'boolean'\n },\n major: {\n type: 'boolean'\n },\n minor: {\n type: 'boolean'\n },\n warning: {\n type: 'boolean'\n },\n none: {\n type: 'boolean'\n }\n }\n },\n form: [\n {\n type: 'template',\n template: `<label><span translate>${gettext('Show devices with active')}</span>:</label>`\n },\n {\n key: 'critical',\n title: gettext('Critical alarms')\n },\n {\n key: 'major',\n title: gettext('Major alarms')\n },\n {\n key: 'minor',\n title: gettext('Minor alarms')\n },\n {\n key: 'warning',\n title: gettext('Warnings')\n },\n {\n key: 'none',\n title: gettext('No alarms')\n }\n ],\n getFilter(model) {\n const filter: any = {};\n const ors = [];\n if (model.critical) {\n ors.push({ 'c8y_ActiveAlarmsStatus.critical': { __gt: 0 } });\n }\n if (model.major) {\n ors.push({ 'c8y_ActiveAlarmsStatus.major': { __gt: 0 } });\n }\n if (model.minor) {\n ors.push({ 'c8y_ActiveAlarmsStatus.minor': { __gt: 0 } });\n }\n if (model.warning) {\n ors.push({ 'c8y_ActiveAlarmsStatus.warning': { __gt: 0 } });\n }\n if (model.none) {\n ors.push({ __not: { __has: 'c8y_ActiveAlarmsStatus' } });\n ors.push({\n __and: map(['critical', 'major', 'minor', 'warning'], sev => {\n const zero = {};\n const has = { __not: { __has: undefined } };\n const key = `c8y_ActiveAlarmsStatus.${sev}`;\n zero[key] = 0;\n has.__not.__has = key;\n return { __or: [zero, has] };\n })\n });\n }\n if (ors.length) {\n filter.__or = ors;\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [\n { path: 'c8y_ActiveAlarmsStatus.critical' },\n { path: 'c8y_ActiveAlarmsStatus.major' },\n { path: 'c8y_ActiveAlarmsStatus.minor' },\n { path: 'c8y_ActiveAlarmsStatus.warning' }\n ]\n };\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n templateUrl: './group.cell-renderer.component.html'\n})\nexport class GroupCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { FilteringFormRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '../device-grid.models';\n\n@Component({\n templateUrl: './group.filtering-form-renderer.component.html'\n})\nexport class GroupFilteringFormRendererComponent implements OnInit {\n @ViewChild('assetSelector', { static: false, read: ElementRef }) assetSelector: ElementRef;\n model: any;\n preselected: string[] = [];\n\n constructor(public context: FilteringFormRendererContext) {}\n\n @HostListener('keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.applyFilter();\n }\n @HostListener('keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.resetFilter();\n }\n\n ngOnInit() {\n const column: DeviceGridColumn = this.context.property;\n this.model = cloneDeep(column.externalFilterQuery || {});\n this.preselected = this.model.selectedNodes || [];\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n try {\n this.assetSelector.nativeElement.querySelector('input').focus();\n } catch (ex) {\n // intended empty\n }\n }, 250);\n }\n\n applyFilter() {\n this.context.applyFilter({\n externalFilterQuery: this.model\n });\n }\n\n resetFilter() {\n this.context.resetFilter();\n }\n\n selectionChanged(nodes) {\n this.model.selectedNodes = nodes;\n }\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { GroupCellRendererComponent } from './group.cell-renderer.component';\nimport { GroupFilteringFormRendererComponent } from './group.filtering-form-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\nimport { IManagedObject } from '@c8y/client';\n\nexport class GroupDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'group';\n this.header = gettext('Group');\n this.cellRendererComponent = GroupCellRendererComponent;\n this.filteringFormRendererComponent = GroupFilteringFormRendererComponent;\n this.filterable = true;\n this.filteringConfig = {\n getFilter(model) {\n const filter: any = {};\n if (model.selectedNodes) {\n filter.__or = model.selectedNodes.map((mo: IManagedObject) => {\n if (mo.c8y_DeviceQueryString) {\n return { __useFilterQueryString: mo.c8y_DeviceQueryString };\n }\n return { __bygroupid: mo.id };\n });\n }\n return filter;\n }\n };\n this.sortable = false;\n }\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class ImeiDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n\n this.path = 'c8y_Mobile.imei';\n this.name = 'imei';\n this.header = gettext('IMEI');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n imeis: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'imeis',\n title: gettext('Show devices with IMEI'),\n add: gettext('Or'),\n items: [\n {\n key: 'imeis[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. 46543432321, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.imeis.length) {\n filter[self.path] = { __in: model.imeis };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n template: `\n {{ deviceGridService.getModel(context.item) }}\n `\n})\nexport class ModelCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { ModelCellRendererComponent } from './model.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class ModelDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const hardwareModelPath = 'c8y_Hardware.model';\n const vendingModelPath = 'com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.model';\n\n this.name = 'model';\n this.header = gettext('Model');\n this.cellRendererComponent = ModelCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n models: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'models',\n title: gettext('Show devices with model'),\n add: gettext('Or'),\n items: [\n {\n key: 'models[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. ModelName, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.models.length) {\n filter.__or = {\n [hardwareModelPath]: { __in: model.models },\n [vendingModelPath]: { __in: model.models }\n };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: hardwareModelPath }, { path: vendingModelPath }]\n };\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n template: `\n <a\n [href]=\"deviceGridService.getHref(context.item)\"\n title=\"{{ deviceGridService.getProperName(context.item) }}\"\n class=\"interact\"\n >\n {{ deviceGridService.getProperName(context.item) }}\n </a>\n `\n})\nexport class NameCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { NameCellRendererComponent } from './name.cell-renderer.component';\nimport { ColumnDataRecordClassName, gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class NameDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'name';\n this.path = 'name';\n this.header = gettext('Name');\n this.cellCSSClassName = ColumnDataRecordClassName.Header;\n this.cellRendererComponent = NameCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n names: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'names',\n title: gettext('Show devices with name'),\n add: gettext('Or'),\n items: [\n {\n key: 'names[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. My Device, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.names.length) {\n filter.name = { __in: model.names };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\n\n@Component({\n template: `\n {{ context.value | c8yDate }}\n `\n})\nexport class RegistrationDateCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { RegistrationDateCellRendererComponent } from './registration-date.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class RegistrationDateDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n\n this.path = 'creationTime';\n this.name = 'registrationDate';\n this.header = gettext('Registration date');\n this.cellRendererComponent = RegistrationDateCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n registrationDate: {\n type: 'object',\n properties: {\n after: {\n type: 'string',\n format: 'datetime'\n },\n before: {\n type: 'string',\n format: 'datetime'\n }\n }\n }\n }\n },\n form: [\n {\n key: 'registrationDate.after',\n title: gettext('Show devices registered after'),\n maxDateKey: 'registrationDate.before'\n },\n {\n key: 'registrationDate.before',\n title: gettext('And before`date`'),\n minDateKey: 'registrationDate.after'\n }\n ],\n getFilter(model) {\n const filter: any = {};\n const dates = model && model.registrationDate;\n if (dates && (dates.after || dates.before)) {\n filter.__and = [];\n if (dates.after) {\n const after = self.formatDate(dates.after);\n filter.__and.push({\n __or: {\n [self.path]: { __gt: after },\n [`${self.path}.date`]: { __gt: after }\n }\n });\n }\n if (dates.before) {\n const before = self.formatDate(dates.before);\n filter.__and.push({\n __or: {\n [self.path]: { __lt: before },\n [`${self.path}.date`]: { __lt: before }\n }\n });\n }\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `${this.path}.date` }, { path: this.path }]\n };\n }\n\n protected formatDate(dateToFormat: string): string {\n return new Date(dateToFormat).toISOString();\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n template: `\n {{ deviceGridService.getSerialNumber(context.item) }}\n `\n})\nexport class SerialNumberCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { SerialNumberCellRendererComponent } from './serial-number.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class SerialNumberDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const hardwareSerialNumberPath = 'c8y_Hardware.serialNumber';\n const vendingSerialNumberPath =\n 'com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.serial';\n\n this.name = 'serialNumber';\n this.header = gettext('Serial number');\n this.cellRendererComponent = SerialNumberCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n serialNumbers: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'serialNumbers',\n title: gettext('Show devices with serial number'),\n add: gettext('Or'),\n items: [\n {\n key: 'serialNumbers[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. 54321-123, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.serialNumbers.length) {\n filter.__or = {\n [hardwareSerialNumberPath]: { __in: model.serialNumbers },\n [vendingSerialNumberPath]: { __in: model.serialNumbers }\n };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: hardwareSerialNumberPath }, { path: vendingSerialNumberPath }]\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\n\n@Component({\n template: `\n <device-status [mo]=\"context.item\"></device-status>\n `\n})\nexport class StatusCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { StatusCellRendererComponent } from './status.cell-renderer.component';\nimport { ColumnDataType, PushStatus, SendStatus, gettext } from '@c8y/ngx-components';\n\nexport class StatusDeviceGridColumn extends BaseDeviceGridColumn {\n constructor() {\n super();\n\n const responseIntervalPath = 'c8y_RequiredAvailability.responseInterval';\n const responseIntervalLessThanOrEqualTo0 = { [responseIntervalPath]: { __le: 0 } };\n const responseIntervalNotDefined = { __not: { __has: responseIntervalPath } };\n\n const availabilityStatusPath = 'c8y_Availability.status';\n const availabilityStatusAvailable = { [availabilityStatusPath]: SendStatus.AVAILABLE };\n const availabilityStatusUnavailable = { [availabilityStatusPath]: SendStatus.UNAVAILABLE };\n const availabilityStatusMaintenance = { [availabilityStatusPath]: SendStatus.MAINTENANCE };\n const availabilityStatusNotDefined = { __not: { __has: availabilityStatusPath } };\n\n const connectionStatusPath = 'c8y_Connection.status';\n const connectionStatusConnected = { [connectionStatusPath]: PushStatus.CONNECTED };\n const connectionStatusDisconnected = { [connectionStatusPath]: PushStatus.DISCONNECTED };\n const connectionStatusMaintenance = { [connectionStatusPath]: PushStatus.MAINTENANCE };\n\n const deviceUnderMaintenance = {\n __or: [\n responseIntervalLessThanOrEqualTo0,\n availabilityStatusMaintenance,\n connectionStatusMaintenance\n ]\n };\n const deviceNotUnderMaintenance = {\n // using __and of __nots because backend does not support __not with __ors\n __and: [\n { __not: responseIntervalLessThanOrEqualTo0 },\n { __not: availabilityStatusMaintenance },\n { __not: connectionStatusMaintenance }\n ]\n };\n\n this.name = 'status';\n this.header = gettext('Status');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = StatusCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n sendOnline: {\n type: 'boolean'\n },\n sendOffline: {\n type: 'boolean'\n },\n sendUnknown: {\n type: 'boolean'\n },\n sendNotMonitored: {\n type: 'boolean'\n },\n pushOnline: {\n type: 'boolean'\n },\n pushOffline: {\n type: 'boolean'\n },\n pushNotMonitored: {\n type: 'boolean'\n },\n maintenance: {\n type: 'boolean'\n }\n }\n },\n form: [\n {\n type: 'template',\n template: `<label><span translate>${gettext(\n 'Show devices with send status'\n )}</span>:</label>`\n },\n {\n key: 'sendOnline',\n title: gettext('Online')\n },\n {\n key: 'sendOffline',\n title: gettext('Offline')\n },\n {\n key: 'sendUnknown',\n title: gettext('Unknown')\n },\n {\n key: 'sendNotMonitored',\n title: gettext('Not monitored')\n },\n {\n type: 'template',\n template: `<label><span translate>${gettext(\n 'Show devices with push status'\n )}</span>:</label>`\n },\n {\n key: 'pushOnline',\n title: gettext('Online')\n },\n {\n key: 'pushOffline',\n title: gettext('Offline')\n },\n {\n key: 'pushNotMonitored',\n title: gettext('Not monitored')\n },\n {\n type: 'template',\n template: `<label><span translate>${gettext(\n 'Show devices with maintenance status'\n )}</span>:</label>`\n },\n {\n key: 'maintenance',\n title: gettext('Device is under maintenance')\n }\n ],\n getFilter(model) {\n const filter: any = {};\n const ors = [];\n\n if (model) {\n if (model.sendOnline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, availabilityStatusAvailable]\n });\n }\n if (model.sendOffline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, availabilityStatusUnavailable]\n });\n }\n if (model.sendUnknown) {\n ors.push({\n __and: [deviceNotUnderMaintenance, availabilityStatusNotDefined]\n });\n }\n if (model.sendNotMonitored || model.pushNotMonitored) {\n ors.push(responseIntervalNotDefined);\n }\n if (model.pushOnline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, connectionStatusConnected]\n });\n }\n if (model.pushOffline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, connectionStatusDisconnected]\n });\n }\n if (model.maintenance) {\n ors.push(deviceUnderMaintenance);\n }\n\n if (ors.length) {\n filter.__or = ors;\n }\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: availabilityStatusPath }]\n };\n }\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class SystemIdDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n this.path = 'id';\n this.name = 'systemId';\n this.header = gettext('System ID');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'ids',\n title: gettext('Show devices with system ID'),\n add: gettext('Or'),\n items: [\n {\n key: 'ids[]',\n notitle: true,\n placeholder: gettext('e.g. 10300, you can use an asterisk (*) as wildcard character')\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.ids.length) {\n filter[self.path] = { __in: model.ids };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, QueriesUtil } from '@c8y/client';\nimport {\n ActionControl,\n BulkActionControl,\n Pagination,\n Row,\n GridConfig,\n Column\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { assign, forEach, get, identity, map, remove, sortBy, transform } from 'lodash-es';\nimport { AlarmsDeviceGridColumn } from './columns/alarms.device-grid-column';\nimport { GroupDeviceGridColumn } from './columns/group.device-grid-column';\nimport { ImeiDeviceGridColumn } from './columns/imei.device-grid-column';\nimport { ModelDeviceGridColumn } from './columns/model.device-grid-column';\nimport { NameDeviceGridColumn } from './columns/name.device-grid-column';\nimport { RegistrationDateDeviceGridColumn } from './columns/registration-date.device-grid-column';\nimport { SerialNumberDeviceGridColumn } from './columns/serial-number.device-grid-column';\nimport { StatusDeviceGridColumn } from './columns/status.device-grid-column';\nimport { SystemIdDeviceGridColumn } from './columns/system-id.device-grid-column';\nimport { DeviceGridActionType, DeviceGridColumn } from './device-grid.models';\n\n@Injectable()\nexport class DeviceGridService {\n protected queriesUtil: QueriesUtil;\n protected GRID_CONFIG_DEFAULT_STORAGE_KEY = 'device-grid-config';\n protected DEFAULT_PAGE_SIZE = 20;\n\n constructor(\n protected inventoryService: InventoryService,\n protected translateService: TranslateService\n ) {\n this.queriesUtil = new QueriesUtil();\n }\n\n getDefaultColumns(): DeviceGridColumn[] {\n const defaultColumns = [\n new StatusDeviceGridColumn(),\n new NameDeviceGridColumn(),\n new ModelDeviceGridColumn(),\n new SerialNumberDeviceGridColumn(),\n new GroupDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn(),\n new SystemIdDeviceGridColumn(),\n new ImeiDeviceGridColumn(),\n new AlarmsDeviceGridColumn()\n ];\n\n return defaultColumns;\n }\n\n getDefaultPagination(): Pagination {\n return {\n pageSize: 10,\n currentPage: 1\n };\n }\n\n getInfiniteScrollPagination(): Pagination {\n return {\n pageSize: 50,\n currentPage: 1\n };\n }\n\n getDefaultActionControls(): ActionControl[] {\n return [\n {\n type: DeviceGridActionType.Delete,\n callback: (item: Row) => this.delete(item as IManagedObject)\n }\n ];\n }\n\n getDefaultBulkActionControls(): BulkActionControl[] {\n return [];\n }\n\n getProperName(device: IManagedObject): string {\n const { id, name } = device;\n return name ? name : this.translateService.instant('Device {{id}}', { id });\n }\n\n getModel(device: IManagedObject): string {\n const hardware = this.getHardware(device);\n return hardware && hardware.model;\n }\n\n getSerialNumber(device: IManagedObject): string {\n const hardware = this.getHardware(device);\n const serialPropertyName = this.isVendme(device) ? 'serial' : 'serialNumber';\n return hardware && hardware[serialPropertyName];\n }\n\n getParentsNames(device: IManagedObject, featuredParentId?: string | number): string {\n const assetParentsReferences = device.assetParents.references;\n const assetParents = map(assetParentsReferences, 'managedObject');\n const sortedByName = sortBy(assetParents, ['name']);\n const featuredItems = remove(sortedByName, { id: featuredParentId });\n const items = featuredItems.concat(sortedByName);\n const names = map(items, 'name');\n return names.join(', ');\n }\n\n getHref(groupOrDevice: IManagedObject, prefix = '#/'): string {\n if (groupOrDevice.c8y_IsDeviceGroup || groupOrDevice.c8y_IsDynamicGroup) {\n return `${prefix}group/${groupOrDevice.id}`;\n }\n return `${prefix}device/${groupOrDevice.id}`;\n }\n\n getAlarmsHref(device: IManagedObject): string {\n return `${this.getHref(device)}/alarms`;\n }\n\n getUserConfiguredColumns(columns: Column[]) {\n const config = this.getConfig();\n if (config.columns.length > 0) {\n const reOrderedColumns = [];\n let noConfigColumns = [];\n try {\n noConfigColumns = columns.filter(col => !config.columns.includes(col));\n config.columns.forEach(({ visible, name, sortOrder }) => {\n const columnToReorder = columns.find(col => col.name === name);\n if (columnToReorder) {\n columnToReorder.visible = visible;\n columnToReorder.sortOrder = sortOrder;\n reOrderedColumns.push(columnToReorder);\n }\n });\n } catch (ex) {\n this.clearConfig();\n }\n return [...reOrderedColumns, ...noConfigColumns];\n }\n return columns;\n }\n\n delete(device: IManagedObject) {\n console.log('should delete', device);\n }\n\n async getData(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n query: any = {},\n withChildren: boolean = false\n ) {\n const filters = {\n ...this.getDevicesFilters(columns, pagination, query),\n withParents: true,\n withChildren\n };\n return this.inventoryService.list(filters);\n }\n\n async getCount(columns: DeviceGridColumn[], pagination: Pagination, query: any = {}) {\n const filters = {\n ...this.getDevicesFilters(columns, pagination, query),\n pageSize: 1,\n currentPage: 1\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n async getTotal(query: any = {}): Promise<number> {\n const filters = {\n q: this.queriesUtil.buildQuery(query),\n pageSize: 1,\n withTotalPages: true\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n getDeviceQueryString(columns: DeviceGridColumn[], query: any): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, query);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n getQueryObj(columns: DeviceGridColumn[], defaultFilter = {}): any {\n return transform(columns, (query, column) => this.extendQueryByColumn(query, column), {\n __filter: {},\n __orderby: [],\n ...defaultFilter\n });\n }\n\n getConfig(key: string = this.GRID_CONFIG_DEFAULT_STORAGE_KEY): GridConfig {\n const config = JSON.parse(localStorage.getItem(key));\n if (config === null) {\n return { columns: [], pagination: { pageSize: this.DEFAULT_PAGE_SIZE, currentPage: 1 } };\n }\n return config as GridConfig;\n }\n\n saveConfig(config: GridConfig, key: string = this.GRID_CONFIG_DEFAULT_STORAGE_KEY) {\n localStorage.setItem(key, JSON.stringify(config));\n }\n\n clearConfig(key: string = this.GRID_CONFIG_DEFAULT_STORAGE_KEY) {\n localStorage.removeItem(key);\n }\n\n private getHardware(device: IManagedObject): any {\n const hardwarePropertyName = this.isVendme(device)\n ? 'com_nsn_startups_vendme_fragments_VendingMachineTypeInfo'\n : 'c8y_Hardware';\n return device && device[hardwarePropertyName];\n }\n\n private isVendme(device: IManagedObject) {\n return device.type === 'com_nsn_startups_vendme_VendingMachine';\n }\n\n private getDevicesFilters(columns: DeviceGridColumn[], pagination: Pagination, query: any) {\n return {\n q: this.getDeviceQueryString(columns, query),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true\n };\n }\n\n private extendQueryByColumn(query: any, column: DeviceGridColumn): void {\n if (column.filterable && column.externalFilterQuery) {\n const getFilter = column.filteringConfig.getFilter || identity;\n const queryObj = getFilter(column.externalFilterQuery);\n\n if (queryObj.__or) {\n query.__filter.__and = query.__filter.__and || [];\n query.__filter.__and.push(queryObj);\n } else if (queryObj.__and && get(query, '__filter.__and')) {\n queryObj.__and.map(obj => query.__filter.__and.push(obj));\n } else {\n assign(query.__filter, queryObj);\n }\n }\n\n if (column.sortable && column.sortOrder) {\n const cs = {};\n forEach(column.sortingConfig.pathSortingConfigs, pathSortingConfig => {\n cs[pathSortingConfig.path] =\n (column.sortOrder === 'asc' ? 1 : -1) * (pathSortingConfig.sortOrderModifier || 1);\n });\n query.__orderby.push(cs);\n }\n return query;\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n ActionControl,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n gettext,\n LoadMoreMode,\n Pagination,\n ServerSideDataResult,\n GridConfig\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn, DataCallback } from './device-grid.models';\nimport { DeviceGridService } from './device-grid.service';\n\n@Component({\n selector: 'c8y-device-grid',\n templateUrl: './device-grid.component.html'\n})\nexport class DeviceGridComponent {\n @Input() dataCallback: DataCallback;\n @Input() refresh: EventEmitter<any>;\n @Input() title: string = gettext('Devices');\n @Input() loadMoreItemsLabel = gettext('Load more devices');\n @Input() loadingItemsLabel: string = gettext('Loading devices…');\n @Input('columns') set _columns(value: DeviceGridColumn[]) {\n if (value) {\n this.columns = this.deviceGridService.getUserConfiguredColumns(value);\n } else {\n this.columns = this.deviceGridService.getUserConfiguredColumns(\n this.deviceGridService.getDefaultColumns()\n );\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.deviceGridService.getDefaultPagination();\n }\n }\n infiniteScroll: LoadMoreMode;\n @Input('infiniteScroll') set _infiniteScroll(infiniteScroll: LoadMoreMode) {\n this.infiniteScroll = infiniteScroll;\n this.pagination = this.deviceGridService.getInfiniteScrollPagination();\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.deviceGridService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input() baseQuery: any = {};\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.deviceGridService.getDefaultBulkActionControls();\n }\n }\n @Input() showChildDevices: any = {};\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n @Output() onDeviceQueryStringChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() itemsSelect = new EventEmitter<string[]>();\n @Output() onChildDevices = new EventEmitter<boolean>();\n\n columns: DeviceGridColumn[] = this.deviceGridService.getDefaultColumns();\n pagination: Pagination = this.deviceGridService.getDefaultPagination();\n actionControls: ActionControl[] = this.deviceGridService.getDefaultActionControls();\n bulkActionControls: BulkActionControl[] = this.deviceGridService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n withChildren: boolean = false;\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n constructor(public deviceGridService: DeviceGridService) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n trackByName(_index, column: DeviceGridColumn): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n let serverSideDataResult: ServerSideDataResult;\n const { res, data, paging } = await this.deviceGridService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.baseQuery,\n this.withChildren\n );\n\n const filteredSize: number = await this.deviceGridService.getCount(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.baseQuery\n );\n const size: number = await this.deviceGridService.getTotal(this.baseQuery);\n\n this.onColumnsChange.emit(dataSourceModifier.columns);\n this.onDeviceQueryStringChange.emit(\n this.deviceGridService.getDeviceQueryString(dataSourceModifier.columns, this.baseQuery)\n );\n\n serverSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size\n };\n\n if (this.dataCallback) {\n serverSideDataResult = this.dataCallback(serverSideDataResult);\n }\n\n return serverSideDataResult;\n }\n\n updateFiltering(\n columnNames: string[],\n action: {\n type: FilteringActionType;\n payload?: { filteringModifier: FilteringModifier };\n }\n ) {\n const { type } = action;\n if (type === FilteringActionType.ResetFilter) {\n this.dataGrid.clearFilters();\n } else {\n this.dataGrid.updateFiltering(columnNames, action);\n }\n }\n\n configChange(config: GridConfig) {\n this.deviceGridService.saveConfig(config);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DataGridModule, DeviceStatusModule, FormsModule } from '@c8y/ngx-components';\nimport { AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';\nimport { DeviceGridComponent } from './device-grid.component';\nimport { DeviceGridService } from './device-grid.service';\n\nimport { BaseFilteringFormRendererComponent } from './columns/base.filtering-form-renderer.component';\nimport { GroupFilteringFormRendererComponent } from './columns/group.filtering-form-renderer.component';\n\nimport { StatusCellRendererComponent } from './columns/status.cell-renderer.component';\nimport { NameCellRendererComponent } from './columns/name.cell-renderer.component';\nimport { ModelCellRendererComponent } from './columns/model.cell-renderer.component';\nimport { SerialNumberCellRendererComponent } from './columns/serial-number.cell-renderer.component';\nimport { GroupCellRendererComponent } from './columns/group.cell-renderer.component';\nimport { RegistrationDateCellRendererComponent } from './columns/registration-date.cell-renderer.component';\nimport { AlarmsCellRendererComponent } from './columns/alarms.cell-renderer.component';\nimport { SchemaFormComponent } from './schema-form.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DeviceStatusModule, DataGridModule, AssetSelectorModule],\n declarations: [\n DeviceGridComponent,\n BaseFilteringFormRendererComponent,\n GroupFilteringFormRendererComponent,\n StatusCellRendererComponent,\n NameCellRendererComponent,\n ModelCellRendererComponent,\n SerialNumberCellRendererComponent,\n GroupCellRendererComponent,\n RegistrationDateCellRendererComponent,\n AlarmsCellRendererComponent,\n SchemaFormComponent\n ],\n exports: [\n DeviceGridComponent,\n BaseFilteringFormRendererComponent,\n GroupFilteringFormRendererComponent,\n StatusCellRendererComponent,\n NameCellRendererComponent,\n ModelCellRendererComponent,\n SerialNumberCellRendererComponent,\n GroupCellRendererComponent,\n RegistrationDateCellRendererComponent,\n AlarmsCellRendererComponent,\n SchemaFormComponent\n ],\n entryComponents: [\n DeviceGridComponent,\n BaseFilteringFormRendererComponent,\n GroupFilteringFormRendererComponent,\n StatusCellRendererComponent,\n NameCellRendererComponent,\n ModelCellRendererComponent,\n SerialNumberCellRendererComponent,\n GroupCellRendererComponent,\n RegistrationDateCellRendererComponent,\n AlarmsCellRendererComponent\n ],\n providers: [DeviceGridService]\n})\nexport class DeviceGridModule {}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class CustomDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n\n this.name = 'custom';\n this.header = gettext('Custom');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n exists: {\n type: 'boolean',\n default: false,\n title: gettext('Only rows where value is defined')\n },\n equals: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'exists'\n },\n {\n key: 'equals',\n title: gettext('Only rows where value equals to:'),\n add: gettext('Or'),\n items: [\n {\n key: 'equals[]',\n notitle: true,\n placeholder: gettext('e.g. value, you can use an asterisk (*) as wildcard character')\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.exists) {\n filter.__has = self.path;\n }\n if (model.equals) {\n filter[self.path] = { __in: model.equals };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { gettext, ColumnConfig } from '@c8y/ngx-components';\nimport { BaseDeviceGridColumn } from './base.device-grid-column';\n\nexport class TypeDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n this.name = 'type';\n this.path = 'type';\n this.header = gettext('Type');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n types: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'types',\n title: gettext('Show devices with type'),\n add: gettext('Or'),\n items: [\n {\n key: 'types[]',\n notitle: true,\n placeholder: gettext('e.g. MyType, you can use an asterisk (*) as wildcard character')\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.types.length) {\n filter.type = { __in: model.types };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = { pathSortingConfigs: [{ path: 'type' }] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {AlarmsCellRendererComponent as ɵi} from './columns/alarms.cell-renderer.component';\nexport {BaseFilteringFormRendererComponent as ɵa} from './columns/base.filtering-form-renderer.component';\nexport {GroupCellRendererComponent as ɵg} from './columns/group.cell-renderer.component';\nexport {GroupFilteringFormRendererComponent as ɵb} from './columns/group.filtering-form-renderer.component';\nexport {ModelCellRendererComponent as ɵe} from './columns/model.cell-renderer.component';\nexport {NameCellRendererComponent as ɵd} from './columns/name.cell-renderer.component';\nexport {RegistrationDateCellRendererComponent as ɵh} from './columns/registration-date.cell-renderer.component';\nexport {SerialNumberCellRendererComponent as ɵf} from './columns/serial-number.cell-renderer.component';\nexport {StatusCellRendererComponent as ɵc} from './columns/status.cell-renderer.component';"],"names":["UpgradeComponent","Directive","ElementRef","Injector","Input","cloneDeep","get","Component","FilteringFormRendererContext","ViewChild","forwardRef","HostListener","CellRendererContext","Inject","gettext","map","SendStatus","PushStatus","QueriesUtil","sortBy","remove","transform","identity","assign","forEach","Injectable","InventoryService","TranslateService","EventEmitter","FilteringActionType","Output","DataGridComponent","NgModule","CommonModule","FormsModule","DeviceStatusModule","DataGridModule","AssetSelectorModule"],"mappings":"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"}
1
+ {"version":3,"file":"c8y-ngx-components-device-grid.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../device-grid/schema-form.component.ts","../../device-grid/columns/base.filtering-form-renderer.component.ts","../../device-grid/columns/base.device-grid-column.ts","../../device-grid/columns/alarms.cell-renderer.component.ts","../../device-grid/columns/alarms.device-grid-column.ts","../../device-grid/columns/group.cell-renderer.component.ts","../../device-grid/columns/group.filtering-form-renderer.component.ts","../../device-grid/columns/group.device-grid-column.ts","../../device-grid/columns/imei.device-grid-column.ts","../../device-grid/columns/model.cell-renderer.component.ts","../../device-grid/columns/model.device-grid-column.ts","../../device-grid/columns/name.cell-renderer.component.ts","../../device-grid/columns/name.device-grid-column.ts","../../device-grid/columns/registration-date.cell-renderer.component.ts","../../device-grid/columns/registration-date.device-grid-column.ts","../../device-grid/columns/serial-number.cell-renderer.component.ts","../../device-grid/columns/serial-number.device-grid-column.ts","../../device-grid/columns/status.cell-renderer.component.ts","../../device-grid/columns/status.device-grid-column.ts","../../device-grid/columns/system-id.device-grid-column.ts","../../device-grid/device-grid.service.ts","../../device-grid/device-grid.component.ts","../../device-grid/device-grid.module.ts","../../device-grid/columns/custom.device-grid-column.ts","../../device-grid/columns/type.device-grid-column.ts","../../device-grid/c8y-ngx-components-device-grid.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Directive, ElementRef, Injector, Input } from '@angular/core';\nimport { UpgradeComponent } from '@angular/upgrade/static';\n\n// TODO: MTM-31785: find replacement for schema-form ng1 library\n@Directive({\n selector: 'c8y-schema-form'\n})\nexport class SchemaFormComponent extends UpgradeComponent {\n @Input() schema: any;\n @Input() model: any;\n @Input('form') inputForm?: any;\n @Input('options') inputOptions?: any;\n\n constructor(elementRef: ElementRef, injector: Injector) {\n super('c8ySchemaForm', elementRef, injector);\n }\n}\n","import { Component, forwardRef, OnInit, ViewChild, HostListener, ElementRef } from '@angular/core';\nimport { get, cloneDeep } from 'lodash-es';\nimport { FilteringFormRendererContext } from '@c8y/ngx-components';\nimport { SchemaFormComponent } from '../schema-form.component';\nimport { DeviceGridColumn } from '../device-grid.models';\n\n@Component({\n templateUrl: './base.filtering-form-renderer.component.html'\n})\nexport class BaseFilteringFormRendererComponent implements OnInit {\n @ViewChild(forwardRef(() => SchemaFormComponent), { static: false })\n schemaFormComponent: any;\n schema;\n form;\n model;\n options;\n\n constructor(public context: FilteringFormRendererContext) {}\n\n @HostListener('keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.applyFilter();\n }\n @HostListener('keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.resetFilter();\n }\n\n ngOnInit() {\n const column: DeviceGridColumn = this.context.property;\n this.schema = cloneDeep(column.filteringConfig.schema);\n this.form = cloneDeep(column.filteringConfig.form);\n this.model = cloneDeep(column.externalFilterQuery || {});\n this.options = { formDefaults: { ngModelOptions: { debounce: 100 } } };\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n try {\n this.schemaFormComponent.elementRef.nativeElement.querySelector('input').focus();\n } catch (e) {\n // intended empty\n }\n }, 10);\n }\n\n canApply() {\n return get(this.schemaFormComponent, '$componentScope.vm.ngForm.$invalid');\n }\n\n applyFilter() {\n this.context.applyFilter({\n externalFilterQuery: this.model\n });\n }\n\n resetFilter() {\n this.context.resetFilter();\n }\n}\n","import { Type } from '@angular/core';\nimport { ColumnDataType, SortOrder, FilterPredicateFunction, ColumnConfig } from '@c8y/ngx-components';\nimport {\n DeviceGridColumn,\n DeviceGridColumnFilteringConfig,\n DeviceGridColumnSortingConfig\n} from '../device-grid.models';\nimport { BaseFilteringFormRendererComponent } from './base.filtering-form-renderer.component';\n\nexport class BaseDeviceGridColumn implements DeviceGridColumn {\n name: string;\n path?: string;\n header?: string;\n dataType?: ColumnDataType;\n\n visible?: boolean;\n positionFixed?: boolean;\n gridTrackSize?: string;\n\n headerCSSClassName?: string | string[];\n headerCellRendererComponent?: Type<any>;\n\n cellCSSClassName?: string | string[];\n cellRendererComponent?: Type<any>;\n\n sortable?: boolean;\n sortingConfig?: DeviceGridColumnSortingConfig;\n sortOrder?: SortOrder;\n\n filterable?: boolean;\n filteringConfig?: DeviceGridColumnFilteringConfig;\n filteringFormRendererComponent?: Type<any>;\n filterPredicate?: string | FilterPredicateFunction;\n externalFilterQuery?: string | object;\n\n constructor(config: ColumnConfig = {}) {\n this.filteringFormRendererComponent = BaseFilteringFormRendererComponent;\n Object.assign(this, config);\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n templateUrl: './alarms.cell-renderer.component.html'\n})\nexport class AlarmsCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { AlarmsCellRendererComponent } from './alarms.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\nimport { map } from 'lodash-es';\n\nexport class AlarmsDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'alarms';\n this.header = gettext('Alarms');\n this.cellRendererComponent = AlarmsCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n critical: {\n type: 'boolean'\n },\n major: {\n type: 'boolean'\n },\n minor: {\n type: 'boolean'\n },\n warning: {\n type: 'boolean'\n },\n none: {\n type: 'boolean'\n }\n }\n },\n form: [\n {\n type: 'template',\n template: `<label><span translate>${gettext('Show devices with active')}</span>:</label>`\n },\n {\n key: 'critical',\n title: gettext('Critical alarms')\n },\n {\n key: 'major',\n title: gettext('Major alarms')\n },\n {\n key: 'minor',\n title: gettext('Minor alarms')\n },\n {\n key: 'warning',\n title: gettext('Warnings')\n },\n {\n key: 'none',\n title: gettext('No alarms')\n }\n ],\n getFilter(model) {\n const filter: any = {};\n const ors = [];\n if (model.critical) {\n ors.push({ 'c8y_ActiveAlarmsStatus.critical': { __gt: 0 } });\n }\n if (model.major) {\n ors.push({ 'c8y_ActiveAlarmsStatus.major': { __gt: 0 } });\n }\n if (model.minor) {\n ors.push({ 'c8y_ActiveAlarmsStatus.minor': { __gt: 0 } });\n }\n if (model.warning) {\n ors.push({ 'c8y_ActiveAlarmsStatus.warning': { __gt: 0 } });\n }\n if (model.none) {\n ors.push({ __not: { __has: 'c8y_ActiveAlarmsStatus' } });\n ors.push({\n __and: map(['critical', 'major', 'minor', 'warning'], sev => {\n const zero = {};\n const has = { __not: { __has: undefined } };\n const key = `c8y_ActiveAlarmsStatus.${sev}`;\n zero[key] = 0;\n has.__not.__has = key;\n return { __or: [zero, has] };\n })\n });\n }\n if (ors.length) {\n filter.__or = ors;\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [\n { path: 'c8y_ActiveAlarmsStatus.critical' },\n { path: 'c8y_ActiveAlarmsStatus.major' },\n { path: 'c8y_ActiveAlarmsStatus.minor' },\n { path: 'c8y_ActiveAlarmsStatus.warning' }\n ]\n };\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n templateUrl: './group.cell-renderer.component.html'\n})\nexport class GroupCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { FilteringFormRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '../device-grid.models';\n\n@Component({\n templateUrl: './group.filtering-form-renderer.component.html'\n})\nexport class GroupFilteringFormRendererComponent implements OnInit {\n @ViewChild('assetSelector', { static: false, read: ElementRef }) assetSelector: ElementRef;\n model: any;\n preselected: string[] = [];\n\n constructor(public context: FilteringFormRendererContext) {}\n\n @HostListener('keydown.enter', ['$event']) onEnterKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.applyFilter();\n }\n @HostListener('keydown.escape', ['$event']) onEscapeKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n this.resetFilter();\n }\n\n ngOnInit() {\n const column: DeviceGridColumn = this.context.property;\n this.model = cloneDeep(column.externalFilterQuery || {});\n this.preselected = this.model.selectedNodes || [];\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n try {\n this.assetSelector.nativeElement.querySelector('input').focus();\n } catch (ex) {\n // intended empty\n }\n }, 250);\n }\n\n applyFilter() {\n this.context.applyFilter({\n externalFilterQuery: this.model\n });\n }\n\n resetFilter() {\n this.context.resetFilter();\n }\n\n selectionChanged(nodes) {\n this.model.selectedNodes = nodes;\n }\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { GroupCellRendererComponent } from './group.cell-renderer.component';\nimport { GroupFilteringFormRendererComponent } from './group.filtering-form-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\nimport { IManagedObject } from '@c8y/client';\n\nexport class GroupDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'group';\n this.header = gettext('Group');\n this.cellRendererComponent = GroupCellRendererComponent;\n this.filteringFormRendererComponent = GroupFilteringFormRendererComponent;\n this.filterable = true;\n this.filteringConfig = {\n getFilter(model) {\n const filter: any = {};\n if (model.selectedNodes) {\n filter.__or = model.selectedNodes.map((mo: IManagedObject) => {\n if (mo.c8y_DeviceQueryString) {\n return { __useFilterQueryString: mo.c8y_DeviceQueryString };\n }\n return { __bygroupid: mo.id };\n });\n }\n return filter;\n }\n };\n this.sortable = false;\n }\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class ImeiDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n\n this.path = 'c8y_Mobile.imei';\n this.name = 'imei';\n this.header = gettext('IMEI');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n imeis: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'imeis',\n title: gettext('Show devices with IMEI'),\n add: gettext('Or'),\n items: [\n {\n key: 'imeis[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. 46543432321, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.imeis.length) {\n filter[self.path] = { __in: model.imeis };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n template: `\n {{ deviceGridService.getModel(context.item) }}\n `\n})\nexport class ModelCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { ModelCellRendererComponent } from './model.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class ModelDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const hardwareModelPath = 'c8y_Hardware.model';\n const vendingModelPath = 'com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.model';\n\n this.name = 'model';\n this.header = gettext('Model');\n this.cellRendererComponent = ModelCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n models: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'models',\n title: gettext('Show devices with model'),\n add: gettext('Or'),\n items: [\n {\n key: 'models[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. ModelName, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.models.length) {\n filter.__or = {\n [hardwareModelPath]: { __in: model.models },\n [vendingModelPath]: { __in: model.models }\n };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: hardwareModelPath }, { path: vendingModelPath }]\n };\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n template: `\n <a\n [href]=\"deviceGridService.getHref(context.item)\"\n title=\"{{ deviceGridService.getProperName(context.item) }}\"\n class=\"interact\"\n >\n {{ deviceGridService.getProperName(context.item) }}\n </a>\n `\n})\nexport class NameCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { NameCellRendererComponent } from './name.cell-renderer.component';\nimport { ColumnDataRecordClassName, gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class NameDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n this.name = 'name';\n this.path = 'name';\n this.header = gettext('Name');\n this.cellCSSClassName = ColumnDataRecordClassName.Header;\n this.cellRendererComponent = NameCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n names: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'names',\n title: gettext('Show devices with name'),\n add: gettext('Or'),\n items: [\n {\n key: 'names[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. My Device, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.names.length) {\n filter.name = { __in: model.names };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\n\n@Component({\n template: `\n {{ context.value | c8yDate }}\n `\n})\nexport class RegistrationDateCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { RegistrationDateCellRendererComponent } from './registration-date.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class RegistrationDateDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n\n this.path = 'creationTime';\n this.name = 'registrationDate';\n this.header = gettext('Registration date');\n this.cellRendererComponent = RegistrationDateCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n registrationDate: {\n type: 'object',\n properties: {\n after: {\n type: 'string',\n format: 'datetime'\n },\n before: {\n type: 'string',\n format: 'datetime'\n }\n }\n }\n }\n },\n form: [\n {\n key: 'registrationDate.after',\n title: gettext('Show devices registered after'),\n maxDateKey: 'registrationDate.before'\n },\n {\n key: 'registrationDate.before',\n title: gettext('And before`date`'),\n minDateKey: 'registrationDate.after'\n }\n ],\n getFilter(model) {\n const filter: any = {};\n const dates = model && model.registrationDate;\n if (dates && (dates.after || dates.before)) {\n filter.__and = [];\n if (dates.after) {\n const after = self.formatDate(dates.after);\n filter.__and.push({\n __or: {\n [self.path]: { __gt: after },\n [`${self.path}.date`]: { __gt: after }\n }\n });\n }\n if (dates.before) {\n const before = self.formatDate(dates.before);\n filter.__and.push({\n __or: {\n [self.path]: { __lt: before },\n [`${self.path}.date`]: { __lt: before }\n }\n });\n }\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: `${this.path}.date` }, { path: this.path }]\n };\n }\n\n protected formatDate(dateToFormat: string): string {\n return new Date(dateToFormat).toISOString();\n }\n}\n","import { Component, forwardRef, Inject } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\nimport { DeviceGridService } from '../device-grid.service';\n\n@Component({\n template: `\n {{ deviceGridService.getSerialNumber(context.item) }}\n `\n})\nexport class SerialNumberCellRendererComponent {\n constructor(\n public context: CellRendererContext,\n @Inject(forwardRef(() => DeviceGridService)) public deviceGridService: DeviceGridService\n ) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { SerialNumberCellRendererComponent } from './serial-number.cell-renderer.component';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class SerialNumberDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const hardwareSerialNumberPath = 'c8y_Hardware.serialNumber';\n const vendingSerialNumberPath =\n 'com_nsn_startups_vendme_fragments_VendingMachineTypeInfo.serial';\n\n this.name = 'serialNumber';\n this.header = gettext('Serial number');\n this.cellRendererComponent = SerialNumberCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n serialNumbers: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'serialNumbers',\n title: gettext('Show devices with serial number'),\n add: gettext('Or'),\n items: [\n {\n key: 'serialNumbers[]',\n notitle: true,\n placeholder: gettext(\n 'e.g. 54321-123, you can use an asterisk (*) as wildcard character'\n )\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.serialNumbers.length) {\n filter.__or = {\n [hardwareSerialNumberPath]: { __in: model.serialNumbers },\n [vendingSerialNumberPath]: { __in: model.serialNumbers }\n };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: hardwareSerialNumberPath }, { path: vendingSerialNumberPath }]\n };\n }\n}\n","import { Component } from '@angular/core';\nimport { CellRendererContext } from '@c8y/ngx-components';\n\n@Component({\n template: `\n <device-status [mo]=\"context.item\"></device-status>\n `\n})\nexport class StatusCellRendererComponent {\n constructor(public context: CellRendererContext) {}\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { StatusCellRendererComponent } from './status.cell-renderer.component';\nimport { ColumnDataType, PushStatus, SendStatus, gettext } from '@c8y/ngx-components';\n\nexport class StatusDeviceGridColumn extends BaseDeviceGridColumn {\n constructor() {\n super();\n\n const responseIntervalPath = 'c8y_RequiredAvailability.responseInterval';\n const responseIntervalLessThanOrEqualTo0 = { [responseIntervalPath]: { __le: 0 } };\n const responseIntervalNotDefined = { __not: { __has: responseIntervalPath } };\n\n const availabilityStatusPath = 'c8y_Availability.status';\n const availabilityStatusAvailable = { [availabilityStatusPath]: SendStatus.AVAILABLE };\n const availabilityStatusUnavailable = { [availabilityStatusPath]: SendStatus.UNAVAILABLE };\n const availabilityStatusMaintenance = { [availabilityStatusPath]: SendStatus.MAINTENANCE };\n const availabilityStatusNotDefined = { __not: { __has: availabilityStatusPath } };\n\n const connectionStatusPath = 'c8y_Connection.status';\n const connectionStatusConnected = { [connectionStatusPath]: PushStatus.CONNECTED };\n const connectionStatusDisconnected = { [connectionStatusPath]: PushStatus.DISCONNECTED };\n const connectionStatusMaintenance = { [connectionStatusPath]: PushStatus.MAINTENANCE };\n\n const deviceUnderMaintenance = {\n __or: [\n responseIntervalLessThanOrEqualTo0,\n availabilityStatusMaintenance,\n connectionStatusMaintenance\n ]\n };\n const deviceNotUnderMaintenance = {\n // using __and of __nots because backend does not support __not with __ors\n __and: [\n { __not: responseIntervalLessThanOrEqualTo0 },\n { __not: availabilityStatusMaintenance },\n { __not: connectionStatusMaintenance }\n ]\n };\n\n this.name = 'status';\n this.header = gettext('Status');\n this.dataType = ColumnDataType.Icon;\n this.cellRendererComponent = StatusCellRendererComponent;\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n sendOnline: {\n type: 'boolean'\n },\n sendOffline: {\n type: 'boolean'\n },\n sendUnknown: {\n type: 'boolean'\n },\n sendNotMonitored: {\n type: 'boolean'\n },\n pushOnline: {\n type: 'boolean'\n },\n pushOffline: {\n type: 'boolean'\n },\n pushNotMonitored: {\n type: 'boolean'\n },\n maintenance: {\n type: 'boolean'\n }\n }\n },\n form: [\n {\n type: 'template',\n template: `<label><span translate>${gettext(\n 'Show devices with send status'\n )}</span>:</label>`\n },\n {\n key: 'sendOnline',\n title: gettext('Online')\n },\n {\n key: 'sendOffline',\n title: gettext('Offline')\n },\n {\n key: 'sendUnknown',\n title: gettext('Unknown')\n },\n {\n key: 'sendNotMonitored',\n title: gettext('Not monitored')\n },\n {\n type: 'template',\n template: `<label><span translate>${gettext(\n 'Show devices with push status'\n )}</span>:</label>`\n },\n {\n key: 'pushOnline',\n title: gettext('Online')\n },\n {\n key: 'pushOffline',\n title: gettext('Offline')\n },\n {\n key: 'pushNotMonitored',\n title: gettext('Not monitored')\n },\n {\n type: 'template',\n template: `<label><span translate>${gettext(\n 'Show devices with maintenance status'\n )}</span>:</label>`\n },\n {\n key: 'maintenance',\n title: gettext('Device is under maintenance')\n }\n ],\n getFilter(model) {\n const filter: any = {};\n const ors = [];\n\n if (model) {\n if (model.sendOnline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, availabilityStatusAvailable]\n });\n }\n if (model.sendOffline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, availabilityStatusUnavailable]\n });\n }\n if (model.sendUnknown) {\n ors.push({\n __and: [deviceNotUnderMaintenance, availabilityStatusNotDefined]\n });\n }\n if (model.sendNotMonitored || model.pushNotMonitored) {\n ors.push(responseIntervalNotDefined);\n }\n if (model.pushOnline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, connectionStatusConnected]\n });\n }\n if (model.pushOffline) {\n ors.push({\n __and: [deviceNotUnderMaintenance, connectionStatusDisconnected]\n });\n }\n if (model.maintenance) {\n ors.push(deviceUnderMaintenance);\n }\n\n if (ors.length) {\n filter.__or = ors;\n }\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: availabilityStatusPath }]\n };\n }\n}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class SystemIdDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n this.path = 'id';\n this.name = 'systemId';\n this.header = gettext('System ID');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n ids: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'ids',\n title: gettext('Show devices with system ID'),\n add: gettext('Or'),\n items: [\n {\n key: 'ids[]',\n notitle: true,\n placeholder: gettext('e.g. 10300, you can use an asterisk (*) as wildcard character')\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.ids.length) {\n filter[self.path] = { __in: model.ids };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { IManagedObject, InventoryService, QueriesUtil } from '@c8y/client';\nimport {\n ActionControl,\n BulkActionControl,\n Column,\n GridConfig,\n AlertService,\n ModalService,\n Status,\n gettext,\n Pagination,\n Row,\n} from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { assign, forEach, get, identity, map, remove, sortBy, transform } from 'lodash-es';\nimport { AlarmsDeviceGridColumn } from './columns/alarms.device-grid-column';\nimport { GroupDeviceGridColumn } from './columns/group.device-grid-column';\nimport { ImeiDeviceGridColumn } from './columns/imei.device-grid-column';\nimport { ModelDeviceGridColumn } from './columns/model.device-grid-column';\nimport { NameDeviceGridColumn } from './columns/name.device-grid-column';\nimport { RegistrationDateDeviceGridColumn } from './columns/registration-date.device-grid-column';\nimport { SerialNumberDeviceGridColumn } from './columns/serial-number.device-grid-column';\nimport { StatusDeviceGridColumn } from './columns/status.device-grid-column';\nimport { SystemIdDeviceGridColumn } from './columns/system-id.device-grid-column';\nimport { DeviceGridActionType, DeviceGridColumn } from './device-grid.models';\n\n@Injectable()\nexport class DeviceGridService {\n protected queriesUtil: QueriesUtil;\n protected GRID_CONFIG_DEFAULT_STORAGE_KEY = 'device-grid-config';\n protected DEFAULT_PAGE_SIZE = 20;\n\n constructor(\n protected inventoryService: InventoryService,\n protected translateService: TranslateService,\n protected alertService: AlertService,\n protected modal: ModalService\n ) {\n this.queriesUtil = new QueriesUtil();\n }\n\n getDefaultColumns(): DeviceGridColumn[] {\n const defaultColumns = [\n new StatusDeviceGridColumn(),\n new NameDeviceGridColumn(),\n new ModelDeviceGridColumn(),\n new SerialNumberDeviceGridColumn(),\n new GroupDeviceGridColumn(),\n new RegistrationDateDeviceGridColumn(),\n new SystemIdDeviceGridColumn(),\n new ImeiDeviceGridColumn(),\n new AlarmsDeviceGridColumn(),\n ];\n\n return defaultColumns;\n }\n\n getDefaultPagination(): Pagination {\n return {\n pageSize: 10,\n currentPage: 1,\n };\n }\n\n getInfiniteScrollPagination(): Pagination {\n return {\n pageSize: 50,\n currentPage: 1,\n };\n }\n\n getDefaultActionControls(): ActionControl[] {\n return [\n {\n type: DeviceGridActionType.Delete,\n callback: (item: Row) => this.delete(item as IManagedObject),\n },\n ];\n }\n\n getDefaultBulkActionControls(): BulkActionControl[] {\n return [];\n }\n\n getProperName(device: IManagedObject): string {\n const { id, name } = device;\n return name ? name : this.translateService.instant('Device {{id}}', { id });\n }\n\n getModel(device: IManagedObject): string {\n const hardware = this.getHardware(device);\n return hardware && hardware.model;\n }\n\n getSerialNumber(device: IManagedObject): string {\n const hardware = this.getHardware(device);\n const serialPropertyName = this.isVendme(device) ? 'serial' : 'serialNumber';\n return hardware && hardware[serialPropertyName];\n }\n\n getParentsNames(device: IManagedObject, featuredParentId?: string | number): string {\n const assetParentsReferences = device.assetParents.references;\n const assetParents = map(assetParentsReferences, 'managedObject');\n const sortedByName = sortBy(assetParents, ['name']);\n const featuredItems = remove(sortedByName, { id: featuredParentId });\n const items = featuredItems.concat(sortedByName);\n const names = map(items, 'name');\n return names.join(', ');\n }\n\n getHref(groupOrDevice: IManagedObject, prefix = '#/'): string {\n if (groupOrDevice.c8y_IsDeviceGroup || groupOrDevice.c8y_IsDynamicGroup) {\n return `${prefix}group/${groupOrDevice.id}`;\n }\n return `${prefix}device/${groupOrDevice.id}`;\n }\n\n getAlarmsHref(device: IManagedObject): string {\n return `${this.getHref(device)}/alarms`;\n }\n\n getUserConfiguredColumns(columns: Column[]) {\n const config = this.getConfig();\n if (config.columns.length > 0) {\n const reOrderedColumns = [];\n let noConfigColumns = [];\n try {\n noConfigColumns = columns.filter((col) => !config.columns.includes(col));\n config.columns.forEach(({ visible, name, sortOrder }) => {\n const columnToReorder = columns.find((col) => col.name === name);\n if (columnToReorder) {\n columnToReorder.visible = visible;\n columnToReorder.sortOrder = sortOrder;\n reOrderedColumns.push(columnToReorder);\n }\n });\n } catch (ex) {\n this.clearConfig();\n }\n return [...reOrderedColumns, ...noConfigColumns];\n }\n return columns;\n }\n\n async delete(device: IManagedObject) {\n try {\n await this.modal.confirm(\n gettext('Delete device'),\n this.translateService.instant(\n gettext(`You are about to delete device: \"{{ name }}\". Do you want to proceed?`),\n { name: device.name }\n ),\n Status.DANGER,\n { ok: gettext('Delete'), cancel: gettext('Cancel') }\n );\n await this.inventoryService.delete(device);\n this.alertService.success(gettext('Device deleted.'));\n } catch (ex) {\n // only if not cancel from modal\n\n if (ex) {\n this.alertService.addServerFailure(ex);\n }\n }\n }\n\n async getData(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n query: any = {},\n withChildren: boolean = false\n ) {\n const filters = {\n ...this.getDevicesFilters(columns, pagination, query),\n withParents: true,\n withChildren,\n };\n return this.inventoryService.list(filters);\n }\n\n async getChildDeviceData(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n query: any = {},\n withChildren: boolean = false,\n id: string\n ) {\n const childDeviceFilters = true;\n const filters = {\n ...this.getDevicesFilters(columns, pagination, query, childDeviceFilters),\n withParents: true,\n withChildren,\n };\n return this.inventoryService.childDevicesList(id, filters);\n }\n\n async getCount(columns: DeviceGridColumn[], pagination: Pagination, query: any = {}) {\n const filters = {\n ...this.getDevicesFilters(columns, pagination, query),\n pageSize: 1,\n currentPage: 1,\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n async getCountChildDevices(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n query: any = {},\n id: string\n ) {\n const childDeviceFilters = true;\n const filters = {\n ...this.getDevicesFilters(columns, pagination, query, childDeviceFilters),\n pageSize: 1,\n currentPage: 1,\n };\n return (await this.inventoryService.childDevicesList(id, filters)).paging.totalPages;\n }\n\n async getTotalChildDevices(query: any = {}, id: string): Promise<number> {\n const filters = {\n q: this.queriesUtil.buildQuery(query),\n pageSize: 1,\n withTotalPages: true,\n };\n return (await this.inventoryService.childDevicesList(id, filters)).paging.totalPages;\n }\n\n async getTotal(query: any = {}): Promise<number> {\n const filters = {\n q: this.queriesUtil.buildQuery(query),\n pageSize: 1,\n withTotalPages: true,\n };\n return (await this.inventoryService.list(filters)).paging.totalPages;\n }\n\n getDeviceQueryString(columns: DeviceGridColumn[], query: any): string {\n let fullQuery = this.getQueryObj(columns);\n fullQuery = this.queriesUtil.addAndFilter(fullQuery, query);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n getQueryObj(columns: DeviceGridColumn[], defaultFilter = {}): any {\n return transform(columns, (query, column) => this.extendQueryByColumn(query, column), {\n __filter: {},\n __orderby: [],\n ...defaultFilter,\n });\n }\n\n getConfig(key: string = this.GRID_CONFIG_DEFAULT_STORAGE_KEY): GridConfig {\n const config = JSON.parse(localStorage.getItem(key));\n if (config === null) {\n return { columns: [], pagination: { pageSize: this.DEFAULT_PAGE_SIZE, currentPage: 1 } };\n }\n return config as GridConfig;\n }\n\n saveConfig(config: GridConfig, key: string = this.GRID_CONFIG_DEFAULT_STORAGE_KEY) {\n localStorage.setItem(key, JSON.stringify(config));\n }\n\n clearConfig(key: string = this.GRID_CONFIG_DEFAULT_STORAGE_KEY) {\n localStorage.removeItem(key);\n }\n\n private getHardware(device: IManagedObject): any {\n const hardwarePropertyName = this.isVendme(device)\n ? 'com_nsn_startups_vendme_fragments_VendingMachineTypeInfo'\n : 'c8y_Hardware';\n return device && device[hardwarePropertyName];\n }\n\n private isVendme(device: IManagedObject) {\n return device.type === 'com_nsn_startups_vendme_VendingMachine';\n }\n\n private getDevicesFilters(\n columns: DeviceGridColumn[],\n pagination: Pagination,\n query: any,\n childDeviceFilters?: boolean\n ) {\n return {\n ...(childDeviceFilters\n ? { query: this.getDeviceQueryString(columns, query) }\n : { q: this.getDeviceQueryString(columns, query) }),\n pageSize: pagination.pageSize,\n currentPage: pagination.currentPage,\n withChildren: false,\n withTotalPages: true,\n };\n }\n\n private extendQueryByColumn(query: any, column: DeviceGridColumn): void {\n if (column.filterable && column.externalFilterQuery) {\n const getFilter = column.filteringConfig.getFilter || identity;\n const queryObj = getFilter(column.externalFilterQuery);\n\n if (queryObj.__or) {\n query.__filter.__and = query.__filter.__and || [];\n query.__filter.__and.push(queryObj);\n } else if (queryObj.__and && get(query, '__filter.__and')) {\n queryObj.__and.map((obj) => query.__filter.__and.push(obj));\n } else {\n assign(query.__filter, queryObj);\n }\n }\n\n if (column.sortable && column.sortOrder) {\n const cs = {};\n forEach(column.sortingConfig.pathSortingConfigs, (pathSortingConfig) => {\n cs[pathSortingConfig.path] =\n (column.sortOrder === 'asc' ? 1 : -1) * (pathSortingConfig.sortOrderModifier || 1);\n });\n query.__orderby.push(cs);\n }\n return query;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport {\n ActionControl,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n gettext,\n LoadMoreMode,\n Pagination,\n ServerSideDataResult,\n GridConfig,\n BuiltInActionType,\n Row,\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn, DataCallback } from './device-grid.models';\nimport { DeviceGridService } from './device-grid.service';\n\n@Component({\n selector: 'c8y-device-grid',\n templateUrl: './device-grid.component.html',\n})\nexport class DeviceGridComponent implements OnInit {\n /** Optional callback function that allows to modify server side data result before it's rendered. */\n @Input() dataCallback: DataCallback;\n @Input() refresh: EventEmitter<any>;\n @Input() title: string = gettext('Devices');\n @Input() loadMoreItemsLabel = gettext('Load more devices');\n @Input() loadingItemsLabel: string = gettext('Loading devices…');\n @Input('columns') set _columns(value: DeviceGridColumn[]) {\n if (value) {\n this.columns = this.deviceGridService.getUserConfiguredColumns(value);\n } else {\n this.columns = this.deviceGridService.getUserConfiguredColumns(\n this.deviceGridService.getDefaultColumns()\n );\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.deviceGridService.getDefaultPagination();\n }\n }\n infiniteScroll: LoadMoreMode;\n @Input('infiniteScroll') set _infiniteScroll(infiniteScroll: LoadMoreMode) {\n this.infiniteScroll = infiniteScroll;\n this.pagination = this.deviceGridService.getInfiniteScrollPagination();\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.deviceGridService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input() baseQuery: any = {};\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.deviceGridService.getDefaultBulkActionControls();\n }\n }\n @Input() childDeviceGrid: boolean = false;\n @Input() parentDeviceId: string;\n /**\n * Determines if additional \"Show child devices\" toggle should be shown and in what state it should be.\n * @deprecated It's going to be replaced with a generic hook allowing to easily add custom actions in the grid header.\n */\n @Input() showChildDevices: { show: boolean; value: boolean } = { show: false, value: false };\n /** Emits an event when columns configuration changes. */\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n @Output() onDeviceQueryStringChange: EventEmitter<string> = new EventEmitter<string>();\n @Output() itemsSelect = new EventEmitter<string[]>();\n @Output() onChildDevices = new EventEmitter<boolean>();\n\n actionControls: ActionControl[] = [];\n columns: DeviceGridColumn[] = this.deviceGridService.getDefaultColumns();\n pagination: Pagination = this.deviceGridService.getDefaultPagination();\n bulkActionControls: BulkActionControl[] = this.deviceGridService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n withChildren: boolean = false;\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n constructor(public deviceGridService: DeviceGridService) {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\n }\n\n ngOnInit() {\n this.setActionControls();\n }\n\n trackByName(_index, column: DeviceGridColumn): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n let serverSideDataResult: ServerSideDataResult;\n let filteredSize: number;\n let size: number;\n if (this.childDeviceGrid) {\n const { res, data, paging } = await this.deviceGridService.getChildDeviceData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.baseQuery,\n this.withChildren,\n this.parentDeviceId\n );\n\n filteredSize = await this.deviceGridService.getCountChildDevices(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.baseQuery,\n this.parentDeviceId\n );\n size = await this.deviceGridService.getTotalChildDevices(this.baseQuery, this.parentDeviceId);\n\n serverSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size,\n };\n } else {\n const { res, data, paging } = await this.deviceGridService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.baseQuery,\n this.withChildren\n );\n\n filteredSize = await this.deviceGridService.getCount(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n this.baseQuery\n );\n size = await this.deviceGridService.getTotal(this.baseQuery);\n\n serverSideDataResult = {\n res,\n data,\n paging,\n filteredSize,\n size,\n };\n }\n\n this.onColumnsChange.emit(dataSourceModifier.columns);\n this.onDeviceQueryStringChange.emit(\n this.deviceGridService.getDeviceQueryString(dataSourceModifier.columns, this.baseQuery)\n );\n\n if (this.dataCallback) {\n serverSideDataResult = this.dataCallback(serverSideDataResult);\n }\n\n return serverSideDataResult;\n }\n\n async setActionControls() {\n if (this.childDeviceGrid) {\n const deleteAction: ActionControl = {\n type: BuiltInActionType.Delete,\n callback: (device: Row) => this.onDeleteDevice(device as IManagedObject),\n };\n this.actionControls.push(deleteAction);\n } else {\n this.actionControls = this.deviceGridService.getDefaultActionControls();\n }\n }\n\n async onDeleteDevice(device) {\n await this.deviceGridService.delete(device);\n this.refresh.emit();\n }\n\n updateFiltering(\n columnNames: string[],\n action: {\n type: FilteringActionType;\n payload?: { filteringModifier: FilteringModifier };\n }\n ) {\n const { type } = action;\n if (type === FilteringActionType.ResetFilter) {\n this.dataGrid.clearFilters();\n } else {\n this.dataGrid.updateFiltering(columnNames, action);\n }\n }\n\n configChange(config: GridConfig) {\n this.deviceGridService.saveConfig(config);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule, DataGridModule, DeviceStatusModule, FormsModule } from '@c8y/ngx-components';\nimport { AssetSelectorModule } from '@c8y/ngx-components/assets-navigator';\nimport { DeviceGridComponent } from './device-grid.component';\nimport { DeviceGridService } from './device-grid.service';\n\nimport { BaseFilteringFormRendererComponent } from './columns/base.filtering-form-renderer.component';\nimport { GroupFilteringFormRendererComponent } from './columns/group.filtering-form-renderer.component';\n\nimport { StatusCellRendererComponent } from './columns/status.cell-renderer.component';\nimport { NameCellRendererComponent } from './columns/name.cell-renderer.component';\nimport { ModelCellRendererComponent } from './columns/model.cell-renderer.component';\nimport { SerialNumberCellRendererComponent } from './columns/serial-number.cell-renderer.component';\nimport { GroupCellRendererComponent } from './columns/group.cell-renderer.component';\nimport { RegistrationDateCellRendererComponent } from './columns/registration-date.cell-renderer.component';\nimport { AlarmsCellRendererComponent } from './columns/alarms.cell-renderer.component';\nimport { SchemaFormComponent } from './schema-form.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, DeviceStatusModule, DataGridModule, AssetSelectorModule],\n declarations: [\n DeviceGridComponent,\n BaseFilteringFormRendererComponent,\n GroupFilteringFormRendererComponent,\n StatusCellRendererComponent,\n NameCellRendererComponent,\n ModelCellRendererComponent,\n SerialNumberCellRendererComponent,\n GroupCellRendererComponent,\n RegistrationDateCellRendererComponent,\n AlarmsCellRendererComponent,\n SchemaFormComponent\n ],\n exports: [\n DeviceGridComponent,\n BaseFilteringFormRendererComponent,\n GroupFilteringFormRendererComponent,\n StatusCellRendererComponent,\n NameCellRendererComponent,\n ModelCellRendererComponent,\n SerialNumberCellRendererComponent,\n GroupCellRendererComponent,\n RegistrationDateCellRendererComponent,\n AlarmsCellRendererComponent,\n SchemaFormComponent\n ],\n entryComponents: [\n DeviceGridComponent,\n BaseFilteringFormRendererComponent,\n GroupFilteringFormRendererComponent,\n StatusCellRendererComponent,\n NameCellRendererComponent,\n ModelCellRendererComponent,\n SerialNumberCellRendererComponent,\n GroupCellRendererComponent,\n RegistrationDateCellRendererComponent,\n AlarmsCellRendererComponent\n ],\n providers: [DeviceGridService]\n})\nexport class DeviceGridModule {}\n","import { BaseDeviceGridColumn } from './base.device-grid-column';\nimport { gettext, ColumnConfig } from '@c8y/ngx-components';\n\nexport class CustomDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n const self = this;\n\n this.name = 'custom';\n this.header = gettext('Custom');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n exists: {\n type: 'boolean',\n default: false,\n title: gettext('Only rows where value is defined')\n },\n equals: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'exists'\n },\n {\n key: 'equals',\n title: gettext('Only rows where value equals to:'),\n add: gettext('Or'),\n items: [\n {\n key: 'equals[]',\n notitle: true,\n placeholder: gettext('e.g. value, you can use an asterisk (*) as wildcard character')\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.exists) {\n filter.__has = self.path;\n }\n if (model.equals) {\n filter[self.path] = { __in: model.equals };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = {\n pathSortingConfigs: [{ path: this.path }]\n };\n }\n}\n","import { gettext, ColumnConfig } from '@c8y/ngx-components';\nimport { BaseDeviceGridColumn } from './base.device-grid-column';\n\nexport class TypeDeviceGridColumn extends BaseDeviceGridColumn {\n constructor(initialColumnConfig?: ColumnConfig) {\n super(initialColumnConfig);\n\n this.name = 'type';\n this.path = 'type';\n this.header = gettext('Type');\n\n this.filterable = true;\n this.filteringConfig = {\n schema: {\n type: 'object',\n properties: {\n types: {\n type: 'array',\n items: {\n type: 'string'\n }\n }\n }\n },\n form: [\n {\n key: 'types',\n title: gettext('Show devices with type'),\n add: gettext('Or'),\n items: [\n {\n key: 'types[]',\n notitle: true,\n placeholder: gettext('e.g. MyType, you can use an asterisk (*) as wildcard character')\n }\n ]\n }\n ],\n getFilter(model: any): any {\n const filter: any = {};\n if (model.types.length) {\n filter.type = { __in: model.types };\n }\n return filter;\n }\n };\n\n this.sortable = true;\n this.sortingConfig = { pathSortingConfigs: [{ path: 'type' }] };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {AlarmsCellRendererComponent as ɵi} from './columns/alarms.cell-renderer.component';\nexport {BaseFilteringFormRendererComponent as ɵa} from './columns/base.filtering-form-renderer.component';\nexport {GroupCellRendererComponent as ɵg} from './columns/group.cell-renderer.component';\nexport {GroupFilteringFormRendererComponent as ɵb} from './columns/group.filtering-form-renderer.component';\nexport {ModelCellRendererComponent as ɵe} from './columns/model.cell-renderer.component';\nexport {NameCellRendererComponent as ɵd} from './columns/name.cell-renderer.component';\nexport {RegistrationDateCellRendererComponent as ɵh} from './columns/registration-date.cell-renderer.component';\nexport {SerialNumberCellRendererComponent as ɵf} from './columns/serial-number.cell-renderer.component';\nexport {StatusCellRendererComponent as ɵc} from './columns/status.cell-renderer.component';"],"names":["UpgradeComponent","Directive","ElementRef","Injector","Input","cloneDeep","get","Component","FilteringFormRendererContext","ViewChild","forwardRef","HostListener","CellRendererContext","Inject","gettext","map","SendStatus","PushStatus","QueriesUtil","sortBy","remove","Status","transform","identity","assign","forEach","Injectable","InventoryService","TranslateService","AlertService","ModalService","EventEmitter","FilteringActionType","Output","DataGridComponent","NgModule","CommonModule","FormsModule","DeviceStatusModule","DataGridModule","AssetSelectorModule"],"mappings":"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"}