@c8y/ngx-components 1010.0.15 → 1010.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/c8y-ngx-components-search.umd.js +34 -3
- package/bundles/c8y-ngx-components-search.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-search.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-search.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.js +2 -2
- package/bundles/c8y-ngx-components.umd.js.map +1 -1
- package/bundles/c8y-ngx-components.umd.min.js +1 -1
- package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
- package/c8y-ngx-components.metadata.json +1 -1
- package/core/data-grid/data-grid.model.d.ts +4 -0
- package/esm2015/core/data-grid/data-grid.component.js +2 -2
- package/esm2015/core/data-grid/data-grid.model.js +1 -1
- package/esm2015/core/data-grid/grid-data-source.js +2 -2
- package/esm2015/search/search-grid.component.js +25 -4
- package/esm2015/search/search-results.component.js +12 -2
- package/esm2015/search/search.service.js +1 -1
- package/esm5/core/data-grid/data-grid.component.js +2 -2
- package/esm5/core/data-grid/data-grid.model.js +1 -1
- package/esm5/core/data-grid/grid-data-source.js +2 -2
- package/esm5/search/search-grid.component.js +25 -4
- package/esm5/search/search-results.component.js +13 -2
- package/esm5/search/search.service.js +1 -1
- package/fesm2015/c8y-ngx-components-search.js +35 -5
- package/fesm2015/c8y-ngx-components-search.js.map +1 -1
- package/fesm2015/c8y-ngx-components.js +2 -2
- package/fesm2015/c8y-ngx-components.js.map +1 -1
- package/fesm5/c8y-ngx-components-search.js +36 -5
- package/fesm5/c8y-ngx-components-search.js.map +1 -1
- package/fesm5/c8y-ngx-components.js +2 -2
- package/fesm5/c8y-ngx-components.js.map +1 -1
- package/package.json +2 -2
- package/search/c8y-ngx-components-search.metadata.json +1 -1
- package/search/search-grid.component.d.ts +2 -1
- package/search/search-results.component.d.ts +2 -0
|
@@ -499,7 +499,6 @@
|
|
|
499
499
|
this.selectable = false;
|
|
500
500
|
this.onColumnsChange = new core.EventEmitter();
|
|
501
501
|
this.searchText = '';
|
|
502
|
-
this.columns = this.searchService.getDefaultColumns();
|
|
503
502
|
this.pagination = this.searchService.getDefaultPagination();
|
|
504
503
|
this.bulkActionControls = this.searchService.getDefaultBulkActionControls();
|
|
505
504
|
this.refresh = new core.EventEmitter();
|
|
@@ -553,7 +552,25 @@
|
|
|
553
552
|
enumerable: true,
|
|
554
553
|
configurable: true
|
|
555
554
|
});
|
|
556
|
-
SearchGridComponent.prototype.
|
|
555
|
+
SearchGridComponent.prototype.ngOnInit = function () {
|
|
556
|
+
if (!this.filteringName) {
|
|
557
|
+
this.columns = this.searchService.getDefaultColumns();
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
this.columns = [
|
|
561
|
+
new subAssets.AssetTypeGridColumn({ sortOrder: 'desc' }),
|
|
562
|
+
new deviceGrid.NameDeviceGridColumn({
|
|
563
|
+
sortOrder: 'asc',
|
|
564
|
+
filter: { externalFilterQuery: { names: [this.filteringName] } }
|
|
565
|
+
}),
|
|
566
|
+
new deviceGrid.ModelDeviceGridColumn(),
|
|
567
|
+
new deviceGrid.SerialNumberDeviceGridColumn({ visible: false }),
|
|
568
|
+
new deviceGrid.RegistrationDateDeviceGridColumn({ visible: false }),
|
|
569
|
+
new deviceGrid.SystemIdDeviceGridColumn({ visible: false }),
|
|
570
|
+
new deviceGrid.ImeiDeviceGridColumn({ visible: false }),
|
|
571
|
+
new deviceGrid.AlarmsDeviceGridColumn()
|
|
572
|
+
];
|
|
573
|
+
}
|
|
557
574
|
this.serverSideDataCallback = this.onDataSourceModifier.bind(this);
|
|
558
575
|
this.setActionControls();
|
|
559
576
|
};
|
|
@@ -678,6 +695,9 @@
|
|
|
678
695
|
__decorate([
|
|
679
696
|
core.Input()
|
|
680
697
|
], SearchGridComponent.prototype, "searchText", void 0);
|
|
698
|
+
__decorate([
|
|
699
|
+
core.Input()
|
|
700
|
+
], SearchGridComponent.prototype, "filteringName", void 0);
|
|
681
701
|
__decorate([
|
|
682
702
|
core.ViewChild(ngxComponents.DataGridComponent, { static: true })
|
|
683
703
|
], SearchGridComponent.prototype, "dataGrid", void 0);
|
|
@@ -698,6 +718,14 @@
|
|
|
698
718
|
this.searchTerm = '';
|
|
699
719
|
this.unsubscribe$ = new rxjs.Subject();
|
|
700
720
|
}
|
|
721
|
+
SearchResultsComponent.prototype.ngOnInit = function () {
|
|
722
|
+
var _this = this;
|
|
723
|
+
this.route.queryParams.subscribe(function (params) {
|
|
724
|
+
if (params.filter) {
|
|
725
|
+
_this.filteringName = params.filter;
|
|
726
|
+
}
|
|
727
|
+
});
|
|
728
|
+
};
|
|
701
729
|
SearchResultsComponent.prototype.ngAfterViewInit = function () {
|
|
702
730
|
var _this = this;
|
|
703
731
|
this.route.queryParams
|
|
@@ -747,6 +775,9 @@
|
|
|
747
775
|
if (!this.shouldFilter(filter) && searchTerm) {
|
|
748
776
|
this.search(searchTerm);
|
|
749
777
|
}
|
|
778
|
+
else if (this.shouldFilter(filter) && searchTerm) {
|
|
779
|
+
this.search(searchTerm);
|
|
780
|
+
}
|
|
750
781
|
};
|
|
751
782
|
SearchResultsComponent.prototype.shouldFilter = function (filter) {
|
|
752
783
|
if (!filter) {
|
|
@@ -780,7 +811,7 @@
|
|
|
780
811
|
SearchResultsComponent = __decorate([
|
|
781
812
|
core.Component({
|
|
782
813
|
selector: 'c8y-search-results',
|
|
783
|
-
template: "<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchTerm\"\n [translateParams]=\"{\n searchHint: searchTerm\n }\"\n >searching \"{{ searchHint }}\"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf=\"filter\"\n [translateParams]=\"{\n filterHint: filter\n }\"\n >filtered by \"{{ filterHint }}\"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]=\"searchTerm\"></c8y-search-grid>\n"
|
|
814
|
+
template: "<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchTerm\"\n [translateParams]=\"{\n searchHint: searchTerm\n }\"\n >searching \"{{ searchHint }}\"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf=\"filter\"\n [translateParams]=\"{\n filterHint: filter\n }\"\n >filtered by \"{{ filterHint }}\"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]=\"searchTerm\" [filteringName]=\"filteringName\"></c8y-search-grid>\n"
|
|
784
815
|
})
|
|
785
816
|
], SearchResultsComponent);
|
|
786
817
|
return SearchResultsComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-search.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@c8y/ngx-components/search/search.service.ts","ng://@c8y/ngx-components/search/search-box.component.ts","ng://@c8y/ngx-components/search/search-grid.component.ts","ng://@c8y/ngx-components/search/search-results.component.ts","ng://@c8y/ngx-components/search/search.module.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 { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { Pagination } from '@c8y/ngx-components';\nimport { SubAssetsService } from '@c8y/ngx-components/sub-assets';\nimport { find, get, isUndefined, some } from 'lodash-es';\n\n@Injectable()\nexport class SearchService extends SubAssetsService {\n protected GRID_CONFIG_STORAGE_KEY = 'search-grid-config';\n protected DEFAULT_PAGE_SIZE = 50;\n private readonly FRAGMENTS_FOR_NO_DEVICE = [\n 'c8y_Dashboard',\n 'c8y_Report',\n 'c8y_Kpi',\n 'c8y_ExportConfiguration',\n 'c8y_IsBinary',\n 'c8y_NoDevice',\n 'c8y_IsDeviceGroup',\n 'c8y_Group',\n 'com_cumulocity_model_smartrest_SmartRestTemplate',\n 'com_cumulocity_model_devicesimulator_SensorTemplate',\n '_attachments',\n 'c8y_IsDeviceType',\n 'c8y_objectmapping_ObjectMapping'\n ];\n private readonly TYPES_FOR_NO_DEVICE = [\n 'c8y_ConfigurationDump',\n 'c8y_Firmware',\n 'c8y_SmartRule',\n 'c8y_Software',\n 'impact_object_mapping',\n 'c8y_UserPreference',\n 'c8y_TenantPolicy',\n 'c8y_PrivateSmartRule',\n 'c8y_SmartRest2Template',\n 'c8y_JsonSchema',\n 'c8y_DeviceShellTemplate',\n 'c8y_DemoStatus',\n 'c8y_DataBroker',\n 'c8y_Application_',\n 'brandingVariables',\n 'c8y_DeviceSimulator',\n 'c8y_CertificateMetadata',\n 'lwm2m_post_registration',\n 'c8y_microservice_manifest_',\n 'c8y_CepAgent'\n ];\n private readonly DEVICE_FRAGMENT_TYPE = 'c8y_IsDevice';\n\n /**\n * Will return only valid assets (groups and devices) and filter out\n * none useful inventories (e.g. c8y_JsonSchema).\n * @param data All managed objects that should be filtered.\n */\n filterOnlyAssets(data: IManagedObject[]) {\n return data.filter(mo => mo.c8y_IsDeviceGroup || this.isAnyDevice(mo));\n }\n\n buildCombinedRootQueryFilter(columns, pagination) {\n const rootQuery = {\n __filter: {\n __and: { __not: { __has: `c8y_IsBinary` } }\n }\n };\n const userQuery = this.getQueryObj(columns, pagination);\n const queryPart = this.queriesUtil.addOrderbys(rootQuery, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /**\n * Returns the full-text search results.\n *\n * @param term The search term.\n */\n search(term: string) {\n return this.inventoryService.list({\n text: term,\n withTotalPages: true,\n pageSize: this.DEFAULT_PAGE_SIZE,\n withChildren: false\n });\n }\n\n private isRootDevice(mo) {\n return !!mo[this.DEVICE_FRAGMENT_TYPE];\n }\n\n private isAnyDevice(mo) {\n const isDevice = this.isRootDevice(mo) || !this.hasFragmentOrTypeFromBlacklist(mo);\n return isDevice;\n }\n\n private hasFragmentOrTypeFromBlacklist(mo) {\n return this.hasTypeFromBlacklist(mo) || this.hasFragmentFromBlacklist(mo);\n }\n\n private hasTypeFromBlacklist(mo) {\n const moType = get(mo, 'type', '');\n return some(this.TYPES_FOR_NO_DEVICE, type => moType.includes(type));\n }\n\n private hasFragmentFromBlacklist(mo) {\n return find(this.FRAGMENTS_FOR_NO_DEVICE, f => !isUndefined(mo[f]));\n }\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, Paging } from '@c8y/client';\nimport { TypeaheadComponent } from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { defer, empty, merge, Observable, of, pipe } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { SearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search-box',\n templateUrl: './search-box.component.html'\n})\nexport class SearchBoxComponent {\n term = '';\n selected;\n filterPipe = pipe(\n map((data: IManagedObject[]) => {\n return this.searchService.filterOnlyAssets(data);\n })\n );\n results$: Observable<IResultList<IManagedObject>>;\n recentSearchResults: IManagedObject[] = [];\n recentlyRegisteredResults$: Observable<IResultList<IManagedObject>>;\n isLoading = false;\n noMatch = false;\n\n private readonly RECENT_SEARCH_STORAGE_KEY = 'recent_search_view';\n private readonly MAX_RECENT_SEARCH_RESULTS = 5;\n private readonly DEFAULT_FILTER: object = {\n withTotalPages: true,\n pageSize: 5,\n withChildren: false\n };\n private readonly KEYCODE_ENTER = 13;\n private readonly KEYCODE_ESC = 27;\n\n @ViewChild(TypeaheadComponent, { static: false })\n private typeahead: TypeaheadComponent;\n\n @ViewChild('dropdown', { static: false })\n private dropdown: BsDropdownDirective;\n\n constructor(\n private router: Router,\n private inventory: InventoryService,\n private deviceGridService: DeviceGridService,\n private searchService: SearchService\n ) {}\n\n async ngOnInit() {\n const recentSearchIds = JSON.parse(localStorage.getItem(this.RECENT_SEARCH_STORAGE_KEY));\n if (recentSearchIds && recentSearchIds.length > 0) {\n const { data } = await this.inventory.list({ ids: recentSearchIds.join(',') });\n this.recentSearchResults = data;\n this.recentlyRegisteredResults$ = defer(() =>\n this.inventory.list({\n q: '$orderby=creationTime desc',\n ...this.DEFAULT_FILTER\n })\n );\n }\n }\n\n onOpenChange(isOpen: boolean): void {\n if (isOpen) {\n // needs to request an animation frame as\n // otherwise the typeahead is undefined\n requestAnimationFrame(() => {\n this.subscribeOnSearch();\n this.typeahead.dropdown.show();\n this.typeahead.searchControl.nativeElement.focus();\n });\n }\n }\n\n open(event: Event, mo: IManagedObject) {\n event.stopPropagation();\n const isAlreadyRecent = this.recentSearchResults.find(({ id }) => id === mo.id);\n if (!isAlreadyRecent) {\n this.recentSearchResults.unshift(mo);\n this.recentSearchResults = this.recentSearchResults.slice(0, this.MAX_RECENT_SEARCH_RESULTS);\n }\n const recentSearchIds = this.recentSearchResults.map(({ id }) => id);\n localStorage.setItem(this.RECENT_SEARCH_STORAGE_KEY, JSON.stringify(recentSearchIds));\n this.router.navigateByUrl(this.deviceGridService.getHref(mo, '/'));\n this.dropdown.hide();\n }\n\n reset() {\n this.typeahead.onSearch.emit('');\n this.selected = undefined;\n this.typeahead.searchControl.nativeElement.focus();\n }\n\n keyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n if (keyCode === this.KEYCODE_ENTER) {\n // enter hit can be faster then typeahead debounce,\n // therefore we take the term from the DOM element\n // itself:\n const searchTerm = (event.target as any).value;\n this.navigate(['/assetsearch'], { queryParams: { search: searchTerm } });\n this.dropdown.hide();\n } else if (keyCode === this.KEYCODE_ESC) {\n if (this.term === '') {\n this.dropdown.hide();\n }\n this.reset();\n }\n }\n\n filter(on) {\n this.navigate(['/assetsearch'], { queryParams: { filter: on } });\n this.dropdown.hide();\n }\n\n openSearch() {\n this.router.navigateByUrl('/assetsearch');\n this.dropdown.hide();\n }\n\n private subscribeOnSearch() {\n if (!this.results$) {\n this.results$ = this.typeahead.onSearch.pipe(\n tap(term => this.onTypingStarted(term)),\n switchMap(term => this.mergeRequest(term))\n );\n }\n }\n\n private navigate(commands, extras?) {\n this.router\n .navigateByUrl('/', { skipLocationChange: true })\n .then(() => this.router.navigate(commands, extras));\n }\n\n private mergeRequest(term: string): Observable<IResultList<IManagedObject>> {\n return merge(\n of({ data: [] } as IResultList<IManagedObject>),\n this.queryInventoryService(term).pipe(\n tap(({ data, paging }) => this.onLoadingDone(data, paging))\n )\n );\n }\n\n private queryInventoryService(term: string) {\n if (term) {\n return defer(() => this.searchService.search(term));\n }\n return empty();\n }\n\n private onLoadingDone(data: IManagedObject[], paging: Paging<IManagedObject>) {\n this.isLoading = false;\n this.noMatch =\n paging && paging.nextPage === null && this.searchService.filterOnlyAssets(data).length === 0;\n }\n\n private onTypingStarted(term) {\n this.noMatch = false;\n this.term = term;\n this.isLoading = term.length > 0;\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n gettext,\n Pagination,\n Row,\n ServerSideDataResult\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '@c8y/ngx-components/device-grid';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport { SearchService } from './search.service';\nimport {\n DeleteAssetsModalComponent,\n DeleteModalCheckboxes,\n SubAssetsService\n} from '@c8y/ngx-components/sub-assets';\nimport { BsModalService } from 'ngx-bootstrap/modal';\n\n@Component({\n selector: 'c8y-search-grid',\n templateUrl: './search-grid.component.html'\n})\nexport class SearchGridComponent {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() title: string = '';\n @Input() loadingItemsLabel: string = gettext('Loading results…');\n @Input('columns') set _columns(value: DeviceGridColumn[]) {\n if (value) {\n this.columns = value;\n } else {\n this.columns = this.searchService.getDefaultColumns();\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.searchService.getDefaultPagination();\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.searchService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.searchService.getDefaultBulkActionControls();\n }\n }\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n\n @Input()\n searchText = '';\n\n columns: DeviceGridColumn[] = this.searchService.getDefaultColumns();\n pagination: Pagination = this.searchService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.searchService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n refresh: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n private sizeCount = 0;\n\n constructor(\n public searchService: SearchService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService,\n private subAssetsGridService: SubAssetsService\n ) {}\n\n ngAfterViewInit(): void {\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\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 response;\n if (dataSourceModifier.searchText) {\n response = await this.searchService.search(dataSourceModifier.searchText);\n } else {\n response = await this.searchService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n undefined\n );\n }\n const { res, data, paging } = response;\n const filteredData = this.searchService.filterOnlyAssets(data);\n\n if (paging.currentPage === 1) {\n this.sizeCount = 0;\n }\n this.sizeCount += filteredData.length;\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res,\n data: filteredData,\n paging,\n filteredSize: this.sizeCount,\n size: undefined\n };\n }\n\n setActionControls() {\n const actionControls: ActionControl[] = [];\n const deleteAction: ActionControl = {\n type: BuiltInActionType.Delete,\n callback: (asset: Row) => this.onDeleteAsset(asset as IManagedObject, this.parentGroup)\n };\n actionControls.push(deleteAction);\n if (!this.actionControls) {\n this.actionControls = actionControls;\n }\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) {\n this.searchService.saveConfig(config);\n }\n\n private onDeleteAsset(asset, parentRef) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox:\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n };\n\n const modalRef = this.bsModalService.show(DeleteAssetsModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: DeleteModalCheckboxes) => {\n if (result) {\n await this.subAssetsGridService.deleteAsset(asset, parentRef, result);\n this.refresh.emit();\n }\n });\n }\n}\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SearchGridComponent } from './search-grid.component';\nimport { FilteringActionType, AlertService, Status, gettext, Alert } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-search-results',\n templateUrl: './search-results.component.html'\n})\nexport class SearchResultsComponent implements OnDestroy {\n filter: string = '';\n searchTerm: string = '';\n @ViewChild(SearchGridComponent, { static: true })\n searchGrid: SearchGridComponent;\n\n private unsubscribe$ = new Subject<any>();\n\n constructor(private route: ActivatedRoute, private alert: AlertService) {}\n\n ngAfterViewInit(): void {\n this.route.queryParams\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ filter, search }) => this.onQueryParamsChange(filter, search));\n\n this.searchGrid.dataGrid.searchText$.pipe(takeUntil(this.unsubscribe$)).subscribe(text => {\n if (text) {\n this.resetFilter();\n }\n this.searchTerm = text;\n });\n\n this.searchGrid.dataGrid.onFilter\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.resetSearch());\n\n // to prevent race condition (search empty):\n this.searchTerm = this.route.snapshot.queryParams.search || '';\n }\n\n resetSearch() {\n this.searchTerm = '';\n if (this.searchTerm) {\n this.alert.add({\n text: gettext('Search reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n }\n }\n\n resetFilter() {\n this.filter = '';\n if (this.searchGrid.dataGrid.filteringApplied) {\n this.alert.add({\n text: gettext('Filter reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n this.searchGrid.dataGrid.clearFilters();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n private onQueryParamsChange(filter: string, searchTerm: string) {\n if (!this.shouldFilter(filter) && searchTerm) {\n this.search(searchTerm);\n }\n }\n\n private shouldFilter(filter) {\n if (!filter) {\n return false;\n }\n this.resetSearch();\n this.filter = filter || '';\n this.searchGrid.updateFiltering(['name'], {\n type: FilteringActionType.ApplyFilter,\n payload: {\n filteringModifier: {\n externalFilterQuery: {\n names: [this.filter]\n }\n }\n }\n });\n return true;\n }\n\n private search(searchTerm: string) {\n this.searchTerm = searchTerm || '';\n this.searchGrid.dataGrid.searchText$.next(this.searchTerm);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_ONCE_ROUTE, HOOK_SEARCH, Search } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { SearchBoxComponent } from './search-box.component';\nimport { SearchResultsComponent } from './search-results.component';\nimport { SearchGridComponent } from './search-grid.component';\nimport { SearchService } from './search.service';\n\n@NgModule({\n declarations: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n imports: [CoreModule, DeviceGridModule, BsDropdownModule],\n entryComponents: [SearchResultsComponent, SearchBoxComponent],\n exports: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n providers: [\n SearchService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n path: 'assetsearch',\n component: SearchResultsComponent\n }\n ],\n multi: true\n },\n {\n provide: HOOK_SEARCH,\n useValue: [\n {\n template: SearchBoxComponent\n }\n ] as Search[],\n multi: true\n }\n ]\n})\nexport class SearchModule {}\n"],"names":["tslib_1.__extends","get","some","find","isUndefined","Injectable","SubAssetsService","pipe","map","defer","tap","switchMap","merge","of","empty","Router","InventoryService","DeviceGridService","tslib_1.__decorate","ViewChild","TypeaheadComponent","Component","gettext","EventEmitter","FilteringActionType","DeleteAssetsModalComponent","BsModalService","SmartGroupsService","Input","Output","DataGridComponent","Subject","takeUntil","Status","ActivatedRoute","AlertService","NgModule","CoreModule","DeviceGridModule","BsDropdownModule","HOOK_ONCE_ROUTE","HOOK_SEARCH"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-search.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@c8y/ngx-components/search/search.service.ts","ng://@c8y/ngx-components/search/search-box.component.ts","ng://@c8y/ngx-components/search/search-grid.component.ts","ng://@c8y/ngx-components/search/search-results.component.ts","ng://@c8y/ngx-components/search/search.module.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 { Injectable } from '@angular/core';\nimport { IManagedObject } from '@c8y/client';\nimport { SubAssetsService } from '@c8y/ngx-components/sub-assets';\nimport { find, get, isUndefined, some } from 'lodash-es';\n\n@Injectable()\nexport class SearchService extends SubAssetsService {\n protected GRID_CONFIG_STORAGE_KEY = 'search-grid-config';\n protected DEFAULT_PAGE_SIZE = 50;\n private readonly FRAGMENTS_FOR_NO_DEVICE = [\n 'c8y_Dashboard',\n 'c8y_Report',\n 'c8y_Kpi',\n 'c8y_ExportConfiguration',\n 'c8y_IsBinary',\n 'c8y_NoDevice',\n 'c8y_IsDeviceGroup',\n 'c8y_Group',\n 'com_cumulocity_model_smartrest_SmartRestTemplate',\n 'com_cumulocity_model_devicesimulator_SensorTemplate',\n '_attachments',\n 'c8y_IsDeviceType',\n 'c8y_objectmapping_ObjectMapping'\n ];\n private readonly TYPES_FOR_NO_DEVICE = [\n 'c8y_ConfigurationDump',\n 'c8y_Firmware',\n 'c8y_SmartRule',\n 'c8y_Software',\n 'impact_object_mapping',\n 'c8y_UserPreference',\n 'c8y_TenantPolicy',\n 'c8y_PrivateSmartRule',\n 'c8y_SmartRest2Template',\n 'c8y_JsonSchema',\n 'c8y_DeviceShellTemplate',\n 'c8y_DemoStatus',\n 'c8y_DataBroker',\n 'c8y_Application_',\n 'brandingVariables',\n 'c8y_DeviceSimulator',\n 'c8y_CertificateMetadata',\n 'lwm2m_post_registration',\n 'c8y_microservice_manifest_',\n 'c8y_CepAgent'\n ];\n private readonly DEVICE_FRAGMENT_TYPE = 'c8y_IsDevice';\n\n /**\n * Will return only valid assets (groups and devices) and filter out\n * none useful inventories (e.g. c8y_JsonSchema).\n * @param data All managed objects that should be filtered.\n */\n filterOnlyAssets(data: IManagedObject[]) {\n return data.filter(mo => mo.c8y_IsDeviceGroup || this.isAnyDevice(mo));\n }\n\n buildCombinedRootQueryFilter(columns, pagination) {\n const rootQuery = {\n __filter: {\n __and: { __not: { __has: `c8y_IsBinary` } }\n }\n };\n const userQuery = this.getQueryObj(columns, pagination);\n const queryPart = this.queriesUtil.addOrderbys(rootQuery, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n return this.queriesUtil.buildQuery(fullQuery);\n }\n\n /**\n * Returns the full-text search results.\n *\n * @param term The search term.\n */\n search(term: string) {\n return this.inventoryService.list({\n text: term,\n withTotalPages: true,\n pageSize: this.DEFAULT_PAGE_SIZE,\n withChildren: false\n });\n }\n\n private isRootDevice(mo) {\n return !!mo[this.DEVICE_FRAGMENT_TYPE];\n }\n\n private isAnyDevice(mo) {\n const isDevice = this.isRootDevice(mo) || !this.hasFragmentOrTypeFromBlacklist(mo);\n return isDevice;\n }\n\n private hasFragmentOrTypeFromBlacklist(mo) {\n return this.hasTypeFromBlacklist(mo) || this.hasFragmentFromBlacklist(mo);\n }\n\n private hasTypeFromBlacklist(mo) {\n const moType = get(mo, 'type', '');\n return some(this.TYPES_FOR_NO_DEVICE, type => moType.includes(type));\n }\n\n private hasFragmentFromBlacklist(mo) {\n return find(this.FRAGMENTS_FOR_NO_DEVICE, f => !isUndefined(mo[f]));\n }\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { IManagedObject, InventoryService, IResultList, Paging } from '@c8y/client';\nimport { TypeaheadComponent } from '@c8y/ngx-components';\nimport { DeviceGridService } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\nimport { defer, empty, merge, Observable, of, pipe } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\nimport { SearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search-box',\n templateUrl: './search-box.component.html'\n})\nexport class SearchBoxComponent {\n term = '';\n selected;\n filterPipe = pipe(\n map((data: IManagedObject[]) => {\n return this.searchService.filterOnlyAssets(data);\n })\n );\n results$: Observable<IResultList<IManagedObject>>;\n recentSearchResults: IManagedObject[] = [];\n recentlyRegisteredResults$: Observable<IResultList<IManagedObject>>;\n isLoading = false;\n noMatch = false;\n\n private readonly RECENT_SEARCH_STORAGE_KEY = 'recent_search_view';\n private readonly MAX_RECENT_SEARCH_RESULTS = 5;\n private readonly DEFAULT_FILTER: object = {\n withTotalPages: true,\n pageSize: 5,\n withChildren: false\n };\n private readonly KEYCODE_ENTER = 13;\n private readonly KEYCODE_ESC = 27;\n\n @ViewChild(TypeaheadComponent, { static: false })\n private typeahead: TypeaheadComponent;\n\n @ViewChild('dropdown', { static: false })\n private dropdown: BsDropdownDirective;\n\n constructor(\n private router: Router,\n private inventory: InventoryService,\n private deviceGridService: DeviceGridService,\n private searchService: SearchService\n ) {}\n\n async ngOnInit() {\n const recentSearchIds = JSON.parse(localStorage.getItem(this.RECENT_SEARCH_STORAGE_KEY));\n if (recentSearchIds && recentSearchIds.length > 0) {\n const { data } = await this.inventory.list({ ids: recentSearchIds.join(',') });\n this.recentSearchResults = data;\n this.recentlyRegisteredResults$ = defer(() =>\n this.inventory.list({\n q: '$orderby=creationTime desc',\n ...this.DEFAULT_FILTER\n })\n );\n }\n }\n\n onOpenChange(isOpen: boolean): void {\n if (isOpen) {\n // needs to request an animation frame as\n // otherwise the typeahead is undefined\n requestAnimationFrame(() => {\n this.subscribeOnSearch();\n this.typeahead.dropdown.show();\n this.typeahead.searchControl.nativeElement.focus();\n });\n }\n }\n\n open(event: Event, mo: IManagedObject) {\n event.stopPropagation();\n const isAlreadyRecent = this.recentSearchResults.find(({ id }) => id === mo.id);\n if (!isAlreadyRecent) {\n this.recentSearchResults.unshift(mo);\n this.recentSearchResults = this.recentSearchResults.slice(0, this.MAX_RECENT_SEARCH_RESULTS);\n }\n const recentSearchIds = this.recentSearchResults.map(({ id }) => id);\n localStorage.setItem(this.RECENT_SEARCH_STORAGE_KEY, JSON.stringify(recentSearchIds));\n this.router.navigateByUrl(this.deviceGridService.getHref(mo, '/'));\n this.dropdown.hide();\n }\n\n reset() {\n this.typeahead.onSearch.emit('');\n this.selected = undefined;\n this.typeahead.searchControl.nativeElement.focus();\n }\n\n keyDown(event: KeyboardEvent) {\n const keyCode = event.keyCode;\n if (keyCode === this.KEYCODE_ENTER) {\n // enter hit can be faster then typeahead debounce,\n // therefore we take the term from the DOM element\n // itself:\n const searchTerm = (event.target as any).value;\n this.navigate(['/assetsearch'], { queryParams: { search: searchTerm } });\n this.dropdown.hide();\n } else if (keyCode === this.KEYCODE_ESC) {\n if (this.term === '') {\n this.dropdown.hide();\n }\n this.reset();\n }\n }\n\n filter(on) {\n this.navigate(['/assetsearch'], { queryParams: { filter: on } });\n this.dropdown.hide();\n }\n\n openSearch() {\n this.router.navigateByUrl('/assetsearch');\n this.dropdown.hide();\n }\n\n private subscribeOnSearch() {\n if (!this.results$) {\n this.results$ = this.typeahead.onSearch.pipe(\n tap(term => this.onTypingStarted(term)),\n switchMap(term => this.mergeRequest(term))\n );\n }\n }\n\n private navigate(commands, extras?) {\n this.router\n .navigateByUrl('/', { skipLocationChange: true })\n .then(() => this.router.navigate(commands, extras));\n }\n\n private mergeRequest(term: string): Observable<IResultList<IManagedObject>> {\n return merge(\n of({ data: [] } as IResultList<IManagedObject>),\n this.queryInventoryService(term).pipe(\n tap(({ data, paging }) => this.onLoadingDone(data, paging))\n )\n );\n }\n\n private queryInventoryService(term: string) {\n if (term) {\n return defer(() => this.searchService.search(term));\n }\n return empty();\n }\n\n private onLoadingDone(data: IManagedObject[], paging: Paging<IManagedObject>) {\n this.isLoading = false;\n this.noMatch =\n paging && paging.nextPage === null && this.searchService.filterOnlyAssets(data).length === 0;\n }\n\n private onTypingStarted(term) {\n this.noMatch = false;\n this.term = term;\n this.isLoading = term.length > 0;\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n gettext,\n Pagination,\n Row,\n ServerSideDataResult\n} from '@c8y/ngx-components';\nimport { DeviceGridColumn } from '@c8y/ngx-components/device-grid';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport { SearchService } from './search.service';\nimport {\n AssetTypeGridColumn,\n DeleteAssetsModalComponent,\n DeleteModalCheckboxes,\n SubAssetsService\n} from '@c8y/ngx-components/sub-assets';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport {\n AlarmsDeviceGridColumn,\n DeviceGridService,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\n\n@Component({\n selector: 'c8y-search-grid',\n templateUrl: './search-grid.component.html'\n})\nexport class SearchGridComponent {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() title: string = '';\n @Input() loadingItemsLabel: string = gettext('Loading results…');\n @Input('columns') set _columns(value: DeviceGridColumn[]) {\n if (value) {\n this.columns = value;\n } else {\n this.columns = this.searchService.getDefaultColumns();\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n } else {\n this.pagination = this.searchService.getDefaultPagination();\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.searchService.getDefaultActionControls();\n }\n }\n @Input() selectable: boolean = false;\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.searchService.getDefaultBulkActionControls();\n }\n }\n @Output() onColumnsChange: EventEmitter<DeviceGridColumn[]> = new EventEmitter<\n DeviceGridColumn[]\n >();\n\n @Input()\n searchText = '';\n\n @Input()\n filteringName: string;\n\n columns: DeviceGridColumn[];\n pagination: Pagination = this.searchService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.searchService.getDefaultBulkActionControls();\n serverSideDataCallback: any;\n refresh: EventEmitter<any> = new EventEmitter();\n\n @ViewChild(DataGridComponent, { static: true })\n dataGrid: DataGridComponent;\n\n private sizeCount = 0;\n\n constructor(\n public searchService: SearchService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService,\n private subAssetsGridService: SubAssetsService\n ) {}\n\n ngOnInit(): void {\n if (!this.filteringName) {\n this.columns = this.searchService.getDefaultColumns();\n } else {\n this.columns = [\n new AssetTypeGridColumn({ sortOrder: 'desc' }),\n new NameDeviceGridColumn({\n sortOrder: 'asc',\n filter: { externalFilterQuery: { names: [this.filteringName] } }\n }),\n new ModelDeviceGridColumn(),\n new SerialNumberDeviceGridColumn({ visible: false }),\n new RegistrationDateDeviceGridColumn({ visible: false }),\n new SystemIdDeviceGridColumn({ visible: false }),\n new ImeiDeviceGridColumn({ visible: false }),\n new AlarmsDeviceGridColumn()\n ];\n }\n this.serverSideDataCallback = this.onDataSourceModifier.bind(this);\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 response;\n if (dataSourceModifier.searchText) {\n response = await this.searchService.search(dataSourceModifier.searchText);\n } else {\n response = await this.searchService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n undefined\n );\n }\n const { res, data, paging } = response;\n const filteredData = this.searchService.filterOnlyAssets(data);\n\n if (paging.currentPage === 1) {\n this.sizeCount = 0;\n }\n this.sizeCount += filteredData.length;\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res,\n data: filteredData,\n paging,\n filteredSize: this.sizeCount,\n size: undefined\n };\n }\n\n setActionControls() {\n const actionControls: ActionControl[] = [];\n const deleteAction: ActionControl = {\n type: BuiltInActionType.Delete,\n callback: (asset: Row) => this.onDeleteAsset(asset as IManagedObject, this.parentGroup)\n };\n actionControls.push(deleteAction);\n if (!this.actionControls) {\n this.actionControls = actionControls;\n }\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) {\n this.searchService.saveConfig(config);\n }\n\n private onDeleteAsset(asset, parentRef) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox:\n !this.smartGroupsService.isSmartGroup(asset) &&\n !this.smartGroupsService.isSmartGroupV2(asset)\n };\n\n const modalRef = this.bsModalService.show(DeleteAssetsModalComponent, { initialState });\n\n modalRef.content.closeSubject.subscribe(async (result: DeleteModalCheckboxes) => {\n if (result) {\n await this.subAssetsGridService.deleteAsset(asset, parentRef, result);\n this.refresh.emit();\n }\n });\n }\n}\n","import { Component, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { SearchGridComponent } from './search-grid.component';\nimport { FilteringActionType, AlertService, Status, gettext, Alert } from '@c8y/ngx-components';\n\n@Component({\n selector: 'c8y-search-results',\n templateUrl: './search-results.component.html'\n})\nexport class SearchResultsComponent implements OnDestroy {\n filter: string = '';\n searchTerm: string = '';\n @ViewChild(SearchGridComponent, { static: true })\n searchGrid: SearchGridComponent;\n filteringName: string;\n private unsubscribe$ = new Subject<any>();\n\n constructor(private route: ActivatedRoute, private alert: AlertService) {}\n\n ngOnInit() {\n this.route.queryParams.subscribe(params => {\n if (params.filter) {\n this.filteringName = params.filter;\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.route.queryParams\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(({ filter, search }) => this.onQueryParamsChange(filter, search));\n\n this.searchGrid.dataGrid.searchText$.pipe(takeUntil(this.unsubscribe$)).subscribe(text => {\n if (text) {\n this.resetFilter();\n }\n this.searchTerm = text;\n });\n\n this.searchGrid.dataGrid.onFilter\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => this.resetSearch());\n\n // to prevent race condition (search empty):\n this.searchTerm = this.route.snapshot.queryParams.search || '';\n }\n\n resetSearch() {\n this.searchTerm = '';\n if (this.searchTerm) {\n this.alert.add({\n text: gettext('Search reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n }\n }\n\n resetFilter() {\n this.filter = '';\n if (this.searchGrid.dataGrid.filteringApplied) {\n this.alert.add({\n text: gettext('Filter reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: 5000\n } as Alert);\n this.searchGrid.dataGrid.clearFilters();\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n private onQueryParamsChange(filter: string, searchTerm: string) {\n if (!this.shouldFilter(filter) && searchTerm) {\n this.search(searchTerm);\n } else if (this.shouldFilter(filter) && searchTerm) {\n this.search(searchTerm);\n }\n }\n\n private shouldFilter(filter) {\n if (!filter) {\n return false;\n }\n this.resetSearch();\n this.filter = filter || '';\n this.searchGrid.updateFiltering(['name'], {\n type: FilteringActionType.ApplyFilter,\n payload: {\n filteringModifier: {\n externalFilterQuery: {\n names: [this.filter]\n }\n }\n }\n });\n return true;\n }\n\n private search(searchTerm: string) {\n this.searchTerm = searchTerm || '';\n this.searchGrid.dataGrid.searchText$.next(this.searchTerm);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CoreModule, HOOK_ONCE_ROUTE, HOOK_SEARCH, Search } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\nimport { SearchBoxComponent } from './search-box.component';\nimport { SearchResultsComponent } from './search-results.component';\nimport { SearchGridComponent } from './search-grid.component';\nimport { SearchService } from './search.service';\n\n@NgModule({\n declarations: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n imports: [CoreModule, DeviceGridModule, BsDropdownModule],\n entryComponents: [SearchResultsComponent, SearchBoxComponent],\n exports: [SearchResultsComponent, SearchBoxComponent, SearchGridComponent],\n providers: [\n SearchService,\n {\n provide: HOOK_ONCE_ROUTE,\n useValue: [\n {\n path: 'assetsearch',\n component: SearchResultsComponent\n }\n ],\n multi: true\n },\n {\n provide: HOOK_SEARCH,\n useValue: [\n {\n template: SearchBoxComponent\n }\n ] as Search[],\n multi: true\n }\n ]\n})\nexport class SearchModule {}\n"],"names":["tslib_1.__extends","get","some","find","isUndefined","Injectable","SubAssetsService","pipe","map","defer","tap","switchMap","merge","of","empty","Router","InventoryService","DeviceGridService","tslib_1.__decorate","ViewChild","TypeaheadComponent","Component","gettext","EventEmitter","AssetTypeGridColumn","NameDeviceGridColumn","ModelDeviceGridColumn","SerialNumberDeviceGridColumn","RegistrationDateDeviceGridColumn","SystemIdDeviceGridColumn","ImeiDeviceGridColumn","AlarmsDeviceGridColumn","FilteringActionType","DeleteAssetsModalComponent","BsModalService","SmartGroupsService","Input","Output","DataGridComponent","Subject","takeUntil","Status","ActivatedRoute","AlertService","NgModule","CoreModule","DeviceGridModule","BsDropdownModule","HOOK_ONCE_ROUTE","HOOK_SEARCH"],"mappings":"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"}
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */var h=function(e,t){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function y(e,t,n,r){var i,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,n,o):i(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function f(e,t,n,r){return new(n||(n=Promise))((function(i,s){function o(e){try{c(r.next(e))}catch(e){s(e)}}function a(e){try{c(r.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))}function m(e,t){var n,r,i,s,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,a])}}}var g=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.GRID_CONFIG_STORAGE_KEY="search-grid-config",t.DEFAULT_PAGE_SIZE=50,t.FRAGMENTS_FOR_NO_DEVICE=["c8y_Dashboard","c8y_Report","c8y_Kpi","c8y_ExportConfiguration","c8y_IsBinary","c8y_NoDevice","c8y_IsDeviceGroup","c8y_Group","com_cumulocity_model_smartrest_SmartRestTemplate","com_cumulocity_model_devicesimulator_SensorTemplate","_attachments","c8y_IsDeviceType","c8y_objectmapping_ObjectMapping"],t.TYPES_FOR_NO_DEVICE=["c8y_ConfigurationDump","c8y_Firmware","c8y_SmartRule","c8y_Software","impact_object_mapping","c8y_UserPreference","c8y_TenantPolicy","c8y_PrivateSmartRule","c8y_SmartRest2Template","c8y_JsonSchema","c8y_DeviceShellTemplate","c8y_DemoStatus","c8y_DataBroker","c8y_Application_","brandingVariables","c8y_DeviceSimulator","c8y_CertificateMetadata","lwm2m_post_registration","c8y_microservice_manifest_","c8y_CepAgent"],t.DEVICE_FRAGMENT_TYPE="c8y_IsDevice",t}return function(e,t){function n(){this.constructor=e}h(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(n,e),n.prototype.filterOnlyAssets=function(e){var t=this;return e.filter((function(e){return e.c8y_IsDeviceGroup||t.isAnyDevice(e)}))},n.prototype.buildCombinedRootQueryFilter=function(e,t){var n=this.getQueryObj(e,t),r=this.queriesUtil.addOrderbys({__filter:{__and:{__not:{__has:"c8y_IsBinary"}}}},n.__orderby,"append"),i=this.queriesUtil.addAndFilter(r,n.__filter);return this.queriesUtil.buildQuery(i)},n.prototype.search=function(e){return this.inventoryService.list({text:e,withTotalPages:!0,pageSize:this.DEFAULT_PAGE_SIZE,withChildren:!1})},n.prototype.isRootDevice=function(e){return!!e[this.DEVICE_FRAGMENT_TYPE]},n.prototype.isAnyDevice=function(e){return this.isRootDevice(e)||!this.hasFragmentOrTypeFromBlacklist(e)},n.prototype.hasFragmentOrTypeFromBlacklist=function(e){return this.hasTypeFromBlacklist(e)||this.hasFragmentFromBlacklist(e)},n.prototype.hasTypeFromBlacklist=function(e){var t=r.get(e,"type","");return r.some(this.TYPES_FOR_NO_DEVICE,(function(e){return t.includes(e)}))},n.prototype.hasFragmentFromBlacklist=function(e){return r.find(this.FRAGMENTS_FOR_NO_DEVICE,(function(t){return!r.isUndefined(e[t])}))},n=y([t.Injectable()],n)}(n.SubAssetsService),v=function(){function e(e,t,n,r){var i=this;this.router=e,this.inventory=t,this.deviceGridService=n,this.searchService=r,this.term="",this.filterPipe=c.pipe(l.map((function(e){return i.searchService.filterOnlyAssets(e)}))),this.recentSearchResults=[],this.isLoading=!1,this.noMatch=!1,this.RECENT_SEARCH_STORAGE_KEY="recent_search_view",this.MAX_RECENT_SEARCH_RESULTS=5,this.DEFAULT_FILTER={withTotalPages:!0,pageSize:5,withChildren:!1},this.KEYCODE_ENTER=13,this.KEYCODE_ESC=27}return e.prototype.ngOnInit=function(){return f(this,void 0,void 0,(function(){var e,t,n=this;return m(this,(function(r){switch(r.label){case 0:return(e=JSON.parse(localStorage.getItem(this.RECENT_SEARCH_STORAGE_KEY)))&&e.length>0?[4,this.inventory.list({ids:e.join(",")})]:[3,2];case 1:t=r.sent().data,this.recentSearchResults=t,this.recentlyRegisteredResults$=c.defer((function(){return n.inventory.list(d({q:"$orderby=creationTime desc"},n.DEFAULT_FILTER))})),r.label=2;case 2:return[2]}}))}))},e.prototype.onOpenChange=function(e){var t=this;e&&requestAnimationFrame((function(){t.subscribeOnSearch(),t.typeahead.dropdown.show(),t.typeahead.searchControl.nativeElement.focus()}))},e.prototype.open=function(e,t){e.stopPropagation(),this.recentSearchResults.find((function(e){return e.id===t.id}))||(this.recentSearchResults.unshift(t),this.recentSearchResults=this.recentSearchResults.slice(0,this.MAX_RECENT_SEARCH_RESULTS));var n=this.recentSearchResults.map((function(e){return e.id}));localStorage.setItem(this.RECENT_SEARCH_STORAGE_KEY,JSON.stringify(n)),this.router.navigateByUrl(this.deviceGridService.getHref(t,"/")),this.dropdown.hide()},e.prototype.reset=function(){this.typeahead.onSearch.emit(""),this.selected=void 0,this.typeahead.searchControl.nativeElement.focus()},e.prototype.keyDown=function(e){var t=e.keyCode;if(t===this.KEYCODE_ENTER){var n=e.target.value;this.navigate(["/assetsearch"],{queryParams:{search:n}}),this.dropdown.hide()}else t===this.KEYCODE_ESC&&(""===this.term&&this.dropdown.hide(),this.reset())},e.prototype.filter=function(e){this.navigate(["/assetsearch"],{queryParams:{filter:e}}),this.dropdown.hide()},e.prototype.openSearch=function(){this.router.navigateByUrl("/assetsearch"),this.dropdown.hide()},e.prototype.subscribeOnSearch=function(){var e=this;this.results$||(this.results$=this.typeahead.onSearch.pipe(l.tap((function(t){return e.onTypingStarted(t)})),l.switchMap((function(t){return e.mergeRequest(t)}))))},e.prototype.navigate=function(e,t){var n=this;this.router.navigateByUrl("/",{skipLocationChange:!0}).then((function(){return n.router.navigate(e,t)}))},e.prototype.mergeRequest=function(e){var t=this;return c.merge(c.of({data:[]}),this.queryInventoryService(e).pipe(l.tap((function(e){var n=e.data,r=e.paging;return t.onLoadingDone(n,r)}))))},e.prototype.queryInventoryService=function(e){var t=this;return e?c.defer((function(){return t.searchService.search(e)})):c.empty()},e.prototype.onLoadingDone=function(e,t){this.isLoading=!1,this.noMatch=t&&null===t.nextPage&&0===this.searchService.filterOnlyAssets(e).length},e.prototype.onTypingStarted=function(e){this.noMatch=!1,this.term=e,this.isLoading=e.length>0},e.ctorParameters=function(){return[{type:i.Router},{type:s.InventoryService},{type:a.DeviceGridService},{type:g}]},y([t.ViewChild(o.TypeaheadComponent,{static:!1})],e.prototype,"typeahead",void 0),y([t.ViewChild("dropdown",{static:!1})],e.prototype,"dropdown",void 0),e=y([t.Component({selector:"c8y-search-box",template:'<div\n class="dropdown"\n dropdown\n #dropdown="bs-dropdown"\n [insideClick]="true"\n (isOpenChange)="onOpenChange($event)"\n>\n <button\n class="main-header-button dropdown-toggle c8y-dropdown"\n dropdownToggle\n type="button"\n title="Search"\n aria-controls="searchDropdown"\n >\n <i c8yIcon="search" class="icon-2x"></i>\n </button>\n\n <div\n id="searchDropdown"\n *dropdownMenu\n class="search-header-menu dropdown-menu dropdown-menu-center"\n >\n <form novalidate #searchForm="ngForm" class="c8y-search-form">\n <c8y-typeahead\n [(ngModel)]="selected"\n placeholder="{{ \'Search for groups or assets…\' | translate }}"\n (keydown)="keyDown($event)"\n (onIconClick)="reset()"\n [icon]="term ? \'times\' : \'search\'"\n [allowFreeEntries]="false"\n name="selected"\n >\n \x3c!-- filter buttons --\x3e\n <c8y-li *ngIf="term.length !== 0" class="p-l-16 p-r-16">\n <div class="flex-row">\n <p class="m-r-4 text-muted">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class="btn-group btn-group-sm">\n <button\n class="btn btn-default"\n title="{{ \'Starts with\' | translate }}"\n (click)="filter(term + \'*\')"\n >\n {{ \'Starts with\' | translate }}\n </button>\n <button\n class="btn btn-default"\n title="{{ \'Contains\' | translate }}"\n (click)="filter(\'*\' + term + \'*\')"\n >\n {{ \'Contains\' | translate }}\n </button>\n <button\n class="btn btn-default"\n title="{{ \'Ends with\' | translate }}"\n (click)="filter(\'*\' + term)"\n >\n {{ \'Ends with\' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n \x3c!-- Recent search --\x3e\n <c8y-li\n *ngIf="term.length === 0 && recentSearchResults.length > 0"\n [selectable]="false"\n class="p-l-24 p-r-24"\n >\n <div class="legend form-block">\n <span translate>Recent search results</span>\n </div>\n </c8y-li>\n <c8y-li\n *ngFor="let result of term.length === 0 ? recentSearchResults : []"\n class="c8y-list__item--link m-l-16 m-r-16"\n (click)="open($event, result)"\n >\n <c8y-li-icon>\n <device-status [mo]="result" *ngIf="!result.c8y_IsDeviceGroup"></device-status>\n <i\n [c8yIcon]="\'c8y-group-open\'"\n class="c8y-icon-duocolor"\n *ngIf="result.c8y_IsDeviceGroup"\n ></i>\n </c8y-li-icon>\n {{ result.name || \'--\' }}\n </c8y-li>\n\n \x3c!-- Recently registered devices --\x3e\n <c8y-li\n *ngIf="term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0"\n class="p-l-24 p-r-24"\n [selectable]="false"\n >\n <div class="legend form-block">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor="\n let result of term.length === 0 ? recentlyRegisteredResults$ : { data: [] };\n loadMore: \'none\';\n pipe: filterPipe\n "\n class="c8y-list__item--link m-l-16 m-r-16"\n (click)="open($event, result)"\n >\n <c8y-li-icon>\n <device-status [mo]="result" *ngIf="!result.c8y_IsDeviceGroup"></device-status>\n <i\n [c8yIcon]="\'c8y-group-open\'"\n class="c8y-icon-duocolor"\n *ngIf="result.c8y_IsDeviceGroup"\n ></i>\n </c8y-li-icon>\n {{ result.name || \'--\' }}\n </c8y-li>\n\n \x3c!-- Search results --\x3e\n <c8y-li *ngIf="term.length !== 0" class="p-l-24 p-r-24" [selectable]="false">\n <div class="legend form-block">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor="\n let result of results$;\n loadMore: \'auto\';\n pipe: filterPipe;\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: \'Find more…\'\n "\n class="c8y-list__item--link m-l-16 m-r-16"\n (click)="open($event, result)"\n >\n <c8y-li-icon>\n <device-status [mo]="result" *ngIf="!result.c8y_IsDeviceGroup"></device-status>\n <i\n [c8yIcon]="\'c8y-group-open\'"\n class="c8y-icon-duocolor"\n *ngIf="result.c8y_IsDeviceGroup"\n ></i>\n </c8y-li-icon>\n {{ result.name || \'--\' }}\n </c8y-li>\n\n \x3c!-- No search results found entry --\x3e\n <ng-template #notFoundTemplate>\n <c8y-li *ngIf="noMatch" class="p-16 c8y-empty-state" [selectable]="false">\n <c8y-li-icon [icon]="\'search\'"></c8y-li-icon>\n <p><strong translate>No match found.</strong></p>\n <small translate>\n Use a filter or go to the asset data table to show all devices and groups.\n </small>\n </c8y-li>\n </ng-template>\n\n \x3c!-- loading bar first entries --\x3e\n <c8y-li *ngIf="isLoading" class="p-t-32 p-b-0 p-relative">\n <div class="spinner" style="right:0;">\n <div class="rect1"></div>\n <div class="rect2"></div>\n <div class="rect3"></div>\n <div class="rect4"></div>\n <div class="rect5"></div>\n </div>\n </c8y-li>\n\n \x3c!-- loading bar for loading more entries (inventory roles) --\x3e\n <ng-template #loading>\n <c8y-li class="text-center p-t-32 p-b-0 p-relative">\n <div class="spinner" style="right:0;">\n <div class="rect1"></div>\n <div class="rect2"></div>\n <div class="rect3"></div>\n <div class="rect4"></div>\n <div class="rect5"></div>\n </div>\n </c8y-li>\n </ng-template>\n\n \x3c!-- more filter possibilities --\x3e\n <c8y-li class="m-t-24 bg-gray-lighter p-t-16 p-b-16 p-l-24 p-r-24" [selectable]="false">\n <div class="flex-row">\n <i c8yIcon="info-circle" class="text-info m-r-4"></i>\n <p translate class="m-r-8">Need more filter possibilities?</p>\n <button\n type="button"\n class="m-l-auto btn btn-default btn-sm"\n translate\n (mousedown)="openSearch()"\n >\n Go to the asset data table\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n </div>\n</div>\n'})],e)}(),b=function(){function e(e,n,r,i){this.searchService=e,this.bsModalService=n,this.smartGroupsService=r,this.subAssetsGridService=i,this.title="",this.loadingItemsLabel=o.gettext("Loading results…"),this.selectable=!1,this.onColumnsChange=new t.EventEmitter,this.searchText="",this.columns=this.searchService.getDefaultColumns(),this.pagination=this.searchService.getDefaultPagination(),this.bulkActionControls=this.searchService.getDefaultBulkActionControls(),this.refresh=new t.EventEmitter,this.sizeCount=0}return Object.defineProperty(e.prototype,"_columns",{set:function(e){this.columns=e||this.searchService.getDefaultColumns()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_pagination",{set:function(e){this.pagination=e||this.searchService.getDefaultPagination()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_actionControls",{set:function(e){this.actionControls=e||this.searchService.getDefaultActionControls()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||this.searchService.getDefaultBulkActionControls()},enumerable:!0,configurable:!0}),e.prototype.ngAfterViewInit=function(){this.serverSideDataCallback=this.onDataSourceModifier.bind(this),this.setActionControls()},e.prototype.trackByName=function(e,t){return t.name},e.prototype.onDataSourceModifier=function(e){return f(this,void 0,void 0,(function(){var t,n,r,i,s;return m(this,(function(o){switch(o.label){case 0:return e.searchText?[4,this.searchService.search(e.searchText)]:[3,2];case 1:return t=o.sent(),[3,4];case 2:return[4,this.searchService.getData(e.columns,e.pagination,void 0)];case 3:t=o.sent(),o.label=4;case 4:return n=t.res,r=t.data,i=t.paging,s=this.searchService.filterOnlyAssets(r),1===i.currentPage&&(this.sizeCount=0),this.sizeCount+=s.length,this.onColumnsChange.emit(e.columns),[2,{res:n,data:s,paging:i,filteredSize:this.sizeCount,size:void 0}]}}))}))},e.prototype.setActionControls=function(){var e=this,t=[],n={type:"DELETE",callback:function(t){return e.onDeleteAsset(t,e.parentGroup)}};t.push(n),this.actionControls||(this.actionControls=t)},e.prototype.updateFiltering=function(e,t){t.type===o.FilteringActionType.ResetFilter?this.dataGrid.clearFilters():this.dataGrid.updateFiltering(e,t)},e.prototype.configChange=function(e){this.searchService.saveConfig(e)},e.prototype.onDeleteAsset=function(e,t){var r=this,i={showWithDeviceUserCheckbox:this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(e),asset:e,showWithCascadeCheckbox:!this.smartGroupsService.isSmartGroup(e)&&!this.smartGroupsService.isSmartGroupV2(e)};this.bsModalService.show(n.DeleteAssetsModalComponent,{initialState:i}).content.closeSubject.subscribe((function(n){return f(r,void 0,void 0,(function(){return m(this,(function(r){switch(r.label){case 0:return n?[4,this.subAssetsGridService.deleteAsset(e,t,n)]:[3,2];case 1:r.sent(),this.refresh.emit(),r.label=2;case 2:return[2]}}))}))}))},e.ctorParameters=function(){return[{type:g},{type:p.BsModalService},{type:s.SmartGroupsService},{type:n.SubAssetsService}]},y([t.Input("parent-group")],e.prototype,"parentGroup",void 0),y([t.Input()],e.prototype,"title",void 0),y([t.Input()],e.prototype,"loadingItemsLabel",void 0),y([t.Input("columns")],e.prototype,"_columns",null),y([t.Input("pagination")],e.prototype,"_pagination",null),y([t.Input("actionControls")],e.prototype,"_actionControls",null),y([t.Input()],e.prototype,"selectable",void 0),y([t.Input("bulkActionControls")],e.prototype,"_bulkActionControls",null),y([t.Output()],e.prototype,"onColumnsChange",void 0),y([t.Input()],e.prototype,"searchText",void 0),y([t.ViewChild(o.DataGridComponent,{static:!0})],e.prototype,"dataGrid",void 0),e=y([t.Component({selector:"c8y-search-grid",template:'<div class="card--grid--fullpage">\n <c8y-data-grid\n [title]="\'Search results\' | translate"\n [loadingItemsLabel]="loadingItemsLabel"\n [columns]="columns"\n [pagination]="pagination"\n [actionControls]="actionControls"\n [selectable]="selectable"\n [bulkActionControls]="bulkActionControls"\n [serverSideDataCallback]="serverSideDataCallback"\n [infiniteScroll]="\'auto\'"\n [showSearch]="true"\n [searchText]="searchText"\n [refresh]="refresh"\n (onConfigChange)="configChange($event)"\n class="d-contents"\n >\n <ng-container *ngFor="let column of columns; trackBy: trackByName">\n <c8y-column [name]="column.name"></c8y-column>\n </ng-container>\n <div class="c8y-empty-state">\n <h1 c8yIcon="search"></h1>\n <div>\n <p>\n <strong>{{ \'No items found.\' | translate }}</strong>\n </p>\n <small>{{ \'Change your search or filter criteria.\' | translate }}</small>\n </div>\n </div>\n </c8y-data-grid>\n</div>\n'})],e)}(),_=function(){function e(e,t){this.route=e,this.alert=t,this.filter="",this.searchTerm="",this.unsubscribe$=new c.Subject}return e.prototype.ngAfterViewInit=function(){var e=this;this.route.queryParams.pipe(l.takeUntil(this.unsubscribe$)).subscribe((function(t){var n=t.filter,r=t.search;return e.onQueryParamsChange(n,r)})),this.searchGrid.dataGrid.searchText$.pipe(l.takeUntil(this.unsubscribe$)).subscribe((function(t){t&&e.resetFilter(),e.searchTerm=t})),this.searchGrid.dataGrid.onFilter.pipe(l.takeUntil(this.unsubscribe$)).subscribe((function(){return e.resetSearch()})),this.searchTerm=this.route.snapshot.queryParams.search||""},e.prototype.resetSearch=function(){this.searchTerm="",this.searchTerm&&this.alert.add({text:o.gettext("Search reset. Full text search does not support filtering."),type:o.Status.WARNING,timeout:5e3})},e.prototype.resetFilter=function(){this.filter="",this.searchGrid.dataGrid.filteringApplied&&(this.alert.add({text:o.gettext("Filter reset. Full text search does not support filtering."),type:o.Status.WARNING,timeout:5e3}),this.searchGrid.dataGrid.clearFilters())},e.prototype.ngOnDestroy=function(){this.unsubscribe$.next(),this.unsubscribe$.complete()},e.prototype.onQueryParamsChange=function(e,t){!this.shouldFilter(e)&&t&&this.search(t)},e.prototype.shouldFilter=function(e){return!!e&&(this.resetSearch(),this.filter=e||"",this.searchGrid.updateFiltering(["name"],{type:o.FilteringActionType.ApplyFilter,payload:{filteringModifier:{externalFilterQuery:{names:[this.filter]}}}}),!0)},e.prototype.search=function(e){this.searchTerm=e||"",this.searchGrid.dataGrid.searchText$.next(this.searchTerm)},e.ctorParameters=function(){return[{type:i.ActivatedRoute},{type:o.AlertService}]},y([t.ViewChild(b,{static:!0})],e.prototype,"searchGrid",void 0),e=y([t.Component({selector:"c8y-search-results",template:'<c8y-title>\n <span translate class="p-r-4">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf="searchTerm"\n [translateParams]="{\n searchHint: searchTerm\n }"\n >searching "{{ searchHint }}"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf="filter"\n [translateParams]="{\n filterHint: filter\n }"\n >filtered by "{{ filterHint }}"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]="searchTerm"></c8y-search-grid>\n'})],e)}(),S=[{path:"assetsearch",component:_}],C=[{template:v}],E=function(){function e(){}return e=y([t.NgModule({declarations:[_,v,b],imports:[o.CoreModule,a.DeviceGridModule,u.BsDropdownModule],entryComponents:[_,v],exports:[_,v,b],providers:[g,{provide:o.HOOK_ONCE_ROUTE,useValue:S,multi:!0},{provide:o.HOOK_SEARCH,useValue:C,multi:!0}]})],e)}();e.SearchBoxComponent=v,e.SearchGridComponent=b,e.SearchModule=E,e.SearchResultsComponent=_,e.SearchService=g,e.ɵ0=S,e.ɵ1=C,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
15
|
+
***************************************************************************** */var h=function(e,t){return(h=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var d=function(){return(d=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function y(e,t,n,r){var i,s=arguments.length,o=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,n,o):i(t,n))||o);return s>3&&o&&Object.defineProperty(t,n,o),o}function f(e,t,n,r){return new(n||(n=Promise))((function(i,s){function o(e){try{c(r.next(e))}catch(e){s(e)}}function a(e){try{c(r.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,a)}c((r=r.apply(e,t||[])).next())}))}function m(e,t){var n,r,i,s,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(s){return function(a){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){o.label=s[1];break}if(6===s[0]&&o.label<i[1]){o.label=i[1],i=s;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(s);break}i[2]&&o.ops.pop(),o.trys.pop();continue}s=t.call(e,o)}catch(e){s=[6,e],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,a])}}}var g=function(e){function n(){var t=null!==e&&e.apply(this,arguments)||this;return t.GRID_CONFIG_STORAGE_KEY="search-grid-config",t.DEFAULT_PAGE_SIZE=50,t.FRAGMENTS_FOR_NO_DEVICE=["c8y_Dashboard","c8y_Report","c8y_Kpi","c8y_ExportConfiguration","c8y_IsBinary","c8y_NoDevice","c8y_IsDeviceGroup","c8y_Group","com_cumulocity_model_smartrest_SmartRestTemplate","com_cumulocity_model_devicesimulator_SensorTemplate","_attachments","c8y_IsDeviceType","c8y_objectmapping_ObjectMapping"],t.TYPES_FOR_NO_DEVICE=["c8y_ConfigurationDump","c8y_Firmware","c8y_SmartRule","c8y_Software","impact_object_mapping","c8y_UserPreference","c8y_TenantPolicy","c8y_PrivateSmartRule","c8y_SmartRest2Template","c8y_JsonSchema","c8y_DeviceShellTemplate","c8y_DemoStatus","c8y_DataBroker","c8y_Application_","brandingVariables","c8y_DeviceSimulator","c8y_CertificateMetadata","lwm2m_post_registration","c8y_microservice_manifest_","c8y_CepAgent"],t.DEVICE_FRAGMENT_TYPE="c8y_IsDevice",t}return function(e,t){function n(){this.constructor=e}h(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(n,e),n.prototype.filterOnlyAssets=function(e){var t=this;return e.filter((function(e){return e.c8y_IsDeviceGroup||t.isAnyDevice(e)}))},n.prototype.buildCombinedRootQueryFilter=function(e,t){var n=this.getQueryObj(e,t),r=this.queriesUtil.addOrderbys({__filter:{__and:{__not:{__has:"c8y_IsBinary"}}}},n.__orderby,"append"),i=this.queriesUtil.addAndFilter(r,n.__filter);return this.queriesUtil.buildQuery(i)},n.prototype.search=function(e){return this.inventoryService.list({text:e,withTotalPages:!0,pageSize:this.DEFAULT_PAGE_SIZE,withChildren:!1})},n.prototype.isRootDevice=function(e){return!!e[this.DEVICE_FRAGMENT_TYPE]},n.prototype.isAnyDevice=function(e){return this.isRootDevice(e)||!this.hasFragmentOrTypeFromBlacklist(e)},n.prototype.hasFragmentOrTypeFromBlacklist=function(e){return this.hasTypeFromBlacklist(e)||this.hasFragmentFromBlacklist(e)},n.prototype.hasTypeFromBlacklist=function(e){var t=r.get(e,"type","");return r.some(this.TYPES_FOR_NO_DEVICE,(function(e){return t.includes(e)}))},n.prototype.hasFragmentFromBlacklist=function(e){return r.find(this.FRAGMENTS_FOR_NO_DEVICE,(function(t){return!r.isUndefined(e[t])}))},n=y([t.Injectable()],n)}(n.SubAssetsService),v=function(){function e(e,t,n,r){var i=this;this.router=e,this.inventory=t,this.deviceGridService=n,this.searchService=r,this.term="",this.filterPipe=c.pipe(l.map((function(e){return i.searchService.filterOnlyAssets(e)}))),this.recentSearchResults=[],this.isLoading=!1,this.noMatch=!1,this.RECENT_SEARCH_STORAGE_KEY="recent_search_view",this.MAX_RECENT_SEARCH_RESULTS=5,this.DEFAULT_FILTER={withTotalPages:!0,pageSize:5,withChildren:!1},this.KEYCODE_ENTER=13,this.KEYCODE_ESC=27}return e.prototype.ngOnInit=function(){return f(this,void 0,void 0,(function(){var e,t,n=this;return m(this,(function(r){switch(r.label){case 0:return(e=JSON.parse(localStorage.getItem(this.RECENT_SEARCH_STORAGE_KEY)))&&e.length>0?[4,this.inventory.list({ids:e.join(",")})]:[3,2];case 1:t=r.sent().data,this.recentSearchResults=t,this.recentlyRegisteredResults$=c.defer((function(){return n.inventory.list(d({q:"$orderby=creationTime desc"},n.DEFAULT_FILTER))})),r.label=2;case 2:return[2]}}))}))},e.prototype.onOpenChange=function(e){var t=this;e&&requestAnimationFrame((function(){t.subscribeOnSearch(),t.typeahead.dropdown.show(),t.typeahead.searchControl.nativeElement.focus()}))},e.prototype.open=function(e,t){e.stopPropagation(),this.recentSearchResults.find((function(e){return e.id===t.id}))||(this.recentSearchResults.unshift(t),this.recentSearchResults=this.recentSearchResults.slice(0,this.MAX_RECENT_SEARCH_RESULTS));var n=this.recentSearchResults.map((function(e){return e.id}));localStorage.setItem(this.RECENT_SEARCH_STORAGE_KEY,JSON.stringify(n)),this.router.navigateByUrl(this.deviceGridService.getHref(t,"/")),this.dropdown.hide()},e.prototype.reset=function(){this.typeahead.onSearch.emit(""),this.selected=void 0,this.typeahead.searchControl.nativeElement.focus()},e.prototype.keyDown=function(e){var t=e.keyCode;if(t===this.KEYCODE_ENTER){var n=e.target.value;this.navigate(["/assetsearch"],{queryParams:{search:n}}),this.dropdown.hide()}else t===this.KEYCODE_ESC&&(""===this.term&&this.dropdown.hide(),this.reset())},e.prototype.filter=function(e){this.navigate(["/assetsearch"],{queryParams:{filter:e}}),this.dropdown.hide()},e.prototype.openSearch=function(){this.router.navigateByUrl("/assetsearch"),this.dropdown.hide()},e.prototype.subscribeOnSearch=function(){var e=this;this.results$||(this.results$=this.typeahead.onSearch.pipe(l.tap((function(t){return e.onTypingStarted(t)})),l.switchMap((function(t){return e.mergeRequest(t)}))))},e.prototype.navigate=function(e,t){var n=this;this.router.navigateByUrl("/",{skipLocationChange:!0}).then((function(){return n.router.navigate(e,t)}))},e.prototype.mergeRequest=function(e){var t=this;return c.merge(c.of({data:[]}),this.queryInventoryService(e).pipe(l.tap((function(e){var n=e.data,r=e.paging;return t.onLoadingDone(n,r)}))))},e.prototype.queryInventoryService=function(e){var t=this;return e?c.defer((function(){return t.searchService.search(e)})):c.empty()},e.prototype.onLoadingDone=function(e,t){this.isLoading=!1,this.noMatch=t&&null===t.nextPage&&0===this.searchService.filterOnlyAssets(e).length},e.prototype.onTypingStarted=function(e){this.noMatch=!1,this.term=e,this.isLoading=e.length>0},e.ctorParameters=function(){return[{type:i.Router},{type:s.InventoryService},{type:a.DeviceGridService},{type:g}]},y([t.ViewChild(o.TypeaheadComponent,{static:!1})],e.prototype,"typeahead",void 0),y([t.ViewChild("dropdown",{static:!1})],e.prototype,"dropdown",void 0),e=y([t.Component({selector:"c8y-search-box",template:'<div\n class="dropdown"\n dropdown\n #dropdown="bs-dropdown"\n [insideClick]="true"\n (isOpenChange)="onOpenChange($event)"\n>\n <button\n class="main-header-button dropdown-toggle c8y-dropdown"\n dropdownToggle\n type="button"\n title="Search"\n aria-controls="searchDropdown"\n >\n <i c8yIcon="search" class="icon-2x"></i>\n </button>\n\n <div\n id="searchDropdown"\n *dropdownMenu\n class="search-header-menu dropdown-menu dropdown-menu-center"\n >\n <form novalidate #searchForm="ngForm" class="c8y-search-form">\n <c8y-typeahead\n [(ngModel)]="selected"\n placeholder="{{ \'Search for groups or assets…\' | translate }}"\n (keydown)="keyDown($event)"\n (onIconClick)="reset()"\n [icon]="term ? \'times\' : \'search\'"\n [allowFreeEntries]="false"\n name="selected"\n >\n \x3c!-- filter buttons --\x3e\n <c8y-li *ngIf="term.length !== 0" class="p-l-16 p-r-16">\n <div class="flex-row">\n <p class="m-r-4 text-muted">\n <em translate>Searching by exact match. Click for other search options:</em>\n </p>\n <div class="btn-group btn-group-sm">\n <button\n class="btn btn-default"\n title="{{ \'Starts with\' | translate }}"\n (click)="filter(term + \'*\')"\n >\n {{ \'Starts with\' | translate }}\n </button>\n <button\n class="btn btn-default"\n title="{{ \'Contains\' | translate }}"\n (click)="filter(\'*\' + term + \'*\')"\n >\n {{ \'Contains\' | translate }}\n </button>\n <button\n class="btn btn-default"\n title="{{ \'Ends with\' | translate }}"\n (click)="filter(\'*\' + term)"\n >\n {{ \'Ends with\' | translate }}\n </button>\n </div>\n </div>\n </c8y-li>\n\n \x3c!-- Recent search --\x3e\n <c8y-li\n *ngIf="term.length === 0 && recentSearchResults.length > 0"\n [selectable]="false"\n class="p-l-24 p-r-24"\n >\n <div class="legend form-block">\n <span translate>Recent search results</span>\n </div>\n </c8y-li>\n <c8y-li\n *ngFor="let result of term.length === 0 ? recentSearchResults : []"\n class="c8y-list__item--link m-l-16 m-r-16"\n (click)="open($event, result)"\n >\n <c8y-li-icon>\n <device-status [mo]="result" *ngIf="!result.c8y_IsDeviceGroup"></device-status>\n <i\n [c8yIcon]="\'c8y-group-open\'"\n class="c8y-icon-duocolor"\n *ngIf="result.c8y_IsDeviceGroup"\n ></i>\n </c8y-li-icon>\n {{ result.name || \'--\' }}\n </c8y-li>\n\n \x3c!-- Recently registered devices --\x3e\n <c8y-li\n *ngIf="term.length === 0 && (recentlyRegisteredResults$ | async)?.data?.length > 0"\n class="p-l-24 p-r-24"\n [selectable]="false"\n >\n <div class="legend form-block">\n <span translate>Recently registered devices</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor="\n let result of term.length === 0 ? recentlyRegisteredResults$ : { data: [] };\n loadMore: \'none\';\n pipe: filterPipe\n "\n class="c8y-list__item--link m-l-16 m-r-16"\n (click)="open($event, result)"\n >\n <c8y-li-icon>\n <device-status [mo]="result" *ngIf="!result.c8y_IsDeviceGroup"></device-status>\n <i\n [c8yIcon]="\'c8y-group-open\'"\n class="c8y-icon-duocolor"\n *ngIf="result.c8y_IsDeviceGroup"\n ></i>\n </c8y-li-icon>\n {{ result.name || \'--\' }}\n </c8y-li>\n\n \x3c!-- Search results --\x3e\n <c8y-li *ngIf="term.length !== 0" class="p-l-24 p-r-24" [selectable]="false">\n <div class="legend form-block">\n <span translate>Search results</span>\n </div>\n </c8y-li>\n <c8y-li\n *c8yFor="\n let result of results$;\n loadMore: \'auto\';\n pipe: filterPipe;\n notFound: notFoundTemplate;\n loadingTemplate: loading;\n loadNextLabel: \'Find more…\'\n "\n class="c8y-list__item--link m-l-16 m-r-16"\n (click)="open($event, result)"\n >\n <c8y-li-icon>\n <device-status [mo]="result" *ngIf="!result.c8y_IsDeviceGroup"></device-status>\n <i\n [c8yIcon]="\'c8y-group-open\'"\n class="c8y-icon-duocolor"\n *ngIf="result.c8y_IsDeviceGroup"\n ></i>\n </c8y-li-icon>\n {{ result.name || \'--\' }}\n </c8y-li>\n\n \x3c!-- No search results found entry --\x3e\n <ng-template #notFoundTemplate>\n <c8y-li *ngIf="noMatch" class="p-16 c8y-empty-state" [selectable]="false">\n <c8y-li-icon [icon]="\'search\'"></c8y-li-icon>\n <p><strong translate>No match found.</strong></p>\n <small translate>\n Use a filter or go to the asset data table to show all devices and groups.\n </small>\n </c8y-li>\n </ng-template>\n\n \x3c!-- loading bar first entries --\x3e\n <c8y-li *ngIf="isLoading" class="p-t-32 p-b-0 p-relative">\n <div class="spinner" style="right:0;">\n <div class="rect1"></div>\n <div class="rect2"></div>\n <div class="rect3"></div>\n <div class="rect4"></div>\n <div class="rect5"></div>\n </div>\n </c8y-li>\n\n \x3c!-- loading bar for loading more entries (inventory roles) --\x3e\n <ng-template #loading>\n <c8y-li class="text-center p-t-32 p-b-0 p-relative">\n <div class="spinner" style="right:0;">\n <div class="rect1"></div>\n <div class="rect2"></div>\n <div class="rect3"></div>\n <div class="rect4"></div>\n <div class="rect5"></div>\n </div>\n </c8y-li>\n </ng-template>\n\n \x3c!-- more filter possibilities --\x3e\n <c8y-li class="m-t-24 bg-gray-lighter p-t-16 p-b-16 p-l-24 p-r-24" [selectable]="false">\n <div class="flex-row">\n <i c8yIcon="info-circle" class="text-info m-r-4"></i>\n <p translate class="m-r-8">Need more filter possibilities?</p>\n <button\n type="button"\n class="m-l-auto btn btn-default btn-sm"\n translate\n (mousedown)="openSearch()"\n >\n Go to the asset data table\n </button>\n </div>\n </c8y-li>\n </c8y-typeahead>\n </form>\n </div>\n</div>\n'})],e)}(),b=function(){function e(e,n,r,i){this.searchService=e,this.bsModalService=n,this.smartGroupsService=r,this.subAssetsGridService=i,this.title="",this.loadingItemsLabel=o.gettext("Loading results…"),this.selectable=!1,this.onColumnsChange=new t.EventEmitter,this.searchText="",this.pagination=this.searchService.getDefaultPagination(),this.bulkActionControls=this.searchService.getDefaultBulkActionControls(),this.refresh=new t.EventEmitter,this.sizeCount=0}return Object.defineProperty(e.prototype,"_columns",{set:function(e){this.columns=e||this.searchService.getDefaultColumns()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_pagination",{set:function(e){this.pagination=e||this.searchService.getDefaultPagination()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_actionControls",{set:function(e){this.actionControls=e||this.searchService.getDefaultActionControls()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||this.searchService.getDefaultBulkActionControls()},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.filteringName?this.columns=[new n.AssetTypeGridColumn({sortOrder:"desc"}),new a.NameDeviceGridColumn({sortOrder:"asc",filter:{externalFilterQuery:{names:[this.filteringName]}}}),new a.ModelDeviceGridColumn,new a.SerialNumberDeviceGridColumn({visible:!1}),new a.RegistrationDateDeviceGridColumn({visible:!1}),new a.SystemIdDeviceGridColumn({visible:!1}),new a.ImeiDeviceGridColumn({visible:!1}),new a.AlarmsDeviceGridColumn]:this.columns=this.searchService.getDefaultColumns(),this.serverSideDataCallback=this.onDataSourceModifier.bind(this),this.setActionControls()},e.prototype.trackByName=function(e,t){return t.name},e.prototype.onDataSourceModifier=function(e){return f(this,void 0,void 0,(function(){var t,n,r,i,s;return m(this,(function(o){switch(o.label){case 0:return e.searchText?[4,this.searchService.search(e.searchText)]:[3,2];case 1:return t=o.sent(),[3,4];case 2:return[4,this.searchService.getData(e.columns,e.pagination,void 0)];case 3:t=o.sent(),o.label=4;case 4:return n=t.res,r=t.data,i=t.paging,s=this.searchService.filterOnlyAssets(r),1===i.currentPage&&(this.sizeCount=0),this.sizeCount+=s.length,this.onColumnsChange.emit(e.columns),[2,{res:n,data:s,paging:i,filteredSize:this.sizeCount,size:void 0}]}}))}))},e.prototype.setActionControls=function(){var e=this,t=[],n={type:"DELETE",callback:function(t){return e.onDeleteAsset(t,e.parentGroup)}};t.push(n),this.actionControls||(this.actionControls=t)},e.prototype.updateFiltering=function(e,t){t.type===o.FilteringActionType.ResetFilter?this.dataGrid.clearFilters():this.dataGrid.updateFiltering(e,t)},e.prototype.configChange=function(e){this.searchService.saveConfig(e)},e.prototype.onDeleteAsset=function(e,t){var r=this,i={showWithDeviceUserCheckbox:this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(e),asset:e,showWithCascadeCheckbox:!this.smartGroupsService.isSmartGroup(e)&&!this.smartGroupsService.isSmartGroupV2(e)};this.bsModalService.show(n.DeleteAssetsModalComponent,{initialState:i}).content.closeSubject.subscribe((function(n){return f(r,void 0,void 0,(function(){return m(this,(function(r){switch(r.label){case 0:return n?[4,this.subAssetsGridService.deleteAsset(e,t,n)]:[3,2];case 1:r.sent(),this.refresh.emit(),r.label=2;case 2:return[2]}}))}))}))},e.ctorParameters=function(){return[{type:g},{type:p.BsModalService},{type:s.SmartGroupsService},{type:n.SubAssetsService}]},y([t.Input("parent-group")],e.prototype,"parentGroup",void 0),y([t.Input()],e.prototype,"title",void 0),y([t.Input()],e.prototype,"loadingItemsLabel",void 0),y([t.Input("columns")],e.prototype,"_columns",null),y([t.Input("pagination")],e.prototype,"_pagination",null),y([t.Input("actionControls")],e.prototype,"_actionControls",null),y([t.Input()],e.prototype,"selectable",void 0),y([t.Input("bulkActionControls")],e.prototype,"_bulkActionControls",null),y([t.Output()],e.prototype,"onColumnsChange",void 0),y([t.Input()],e.prototype,"searchText",void 0),y([t.Input()],e.prototype,"filteringName",void 0),y([t.ViewChild(o.DataGridComponent,{static:!0})],e.prototype,"dataGrid",void 0),e=y([t.Component({selector:"c8y-search-grid",template:'<div class="card--grid--fullpage">\n <c8y-data-grid\n [title]="\'Search results\' | translate"\n [loadingItemsLabel]="loadingItemsLabel"\n [columns]="columns"\n [pagination]="pagination"\n [actionControls]="actionControls"\n [selectable]="selectable"\n [bulkActionControls]="bulkActionControls"\n [serverSideDataCallback]="serverSideDataCallback"\n [infiniteScroll]="\'auto\'"\n [showSearch]="true"\n [searchText]="searchText"\n [refresh]="refresh"\n (onConfigChange)="configChange($event)"\n class="d-contents"\n >\n <ng-container *ngFor="let column of columns; trackBy: trackByName">\n <c8y-column [name]="column.name"></c8y-column>\n </ng-container>\n <div class="c8y-empty-state">\n <h1 c8yIcon="search"></h1>\n <div>\n <p>\n <strong>{{ \'No items found.\' | translate }}</strong>\n </p>\n <small>{{ \'Change your search or filter criteria.\' | translate }}</small>\n </div>\n </div>\n </c8y-data-grid>\n</div>\n'})],e)}(),_=function(){function e(e,t){this.route=e,this.alert=t,this.filter="",this.searchTerm="",this.unsubscribe$=new c.Subject}return e.prototype.ngOnInit=function(){var e=this;this.route.queryParams.subscribe((function(t){t.filter&&(e.filteringName=t.filter)}))},e.prototype.ngAfterViewInit=function(){var e=this;this.route.queryParams.pipe(l.takeUntil(this.unsubscribe$)).subscribe((function(t){var n=t.filter,r=t.search;return e.onQueryParamsChange(n,r)})),this.searchGrid.dataGrid.searchText$.pipe(l.takeUntil(this.unsubscribe$)).subscribe((function(t){t&&e.resetFilter(),e.searchTerm=t})),this.searchGrid.dataGrid.onFilter.pipe(l.takeUntil(this.unsubscribe$)).subscribe((function(){return e.resetSearch()})),this.searchTerm=this.route.snapshot.queryParams.search||""},e.prototype.resetSearch=function(){this.searchTerm="",this.searchTerm&&this.alert.add({text:o.gettext("Search reset. Full text search does not support filtering."),type:o.Status.WARNING,timeout:5e3})},e.prototype.resetFilter=function(){this.filter="",this.searchGrid.dataGrid.filteringApplied&&(this.alert.add({text:o.gettext("Filter reset. Full text search does not support filtering."),type:o.Status.WARNING,timeout:5e3}),this.searchGrid.dataGrid.clearFilters())},e.prototype.ngOnDestroy=function(){this.unsubscribe$.next(),this.unsubscribe$.complete()},e.prototype.onQueryParamsChange=function(e,t){(!this.shouldFilter(e)&&t||this.shouldFilter(e)&&t)&&this.search(t)},e.prototype.shouldFilter=function(e){return!!e&&(this.resetSearch(),this.filter=e||"",this.searchGrid.updateFiltering(["name"],{type:o.FilteringActionType.ApplyFilter,payload:{filteringModifier:{externalFilterQuery:{names:[this.filter]}}}}),!0)},e.prototype.search=function(e){this.searchTerm=e||"",this.searchGrid.dataGrid.searchText$.next(this.searchTerm)},e.ctorParameters=function(){return[{type:i.ActivatedRoute},{type:o.AlertService}]},y([t.ViewChild(b,{static:!0})],e.prototype,"searchGrid",void 0),e=y([t.Component({selector:"c8y-search-results",template:'<c8y-title>\n <span translate class="p-r-4">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf="searchTerm"\n [translateParams]="{\n searchHint: searchTerm\n }"\n >searching "{{ searchHint }}"</small\n >\n <small\n ngNonBindable\n translate\n *ngIf="filter"\n [translateParams]="{\n filterHint: filter\n }"\n >filtered by "{{ filterHint }}"</small\n >\n</c8y-title>\n\n<c8y-search-grid [searchText]="searchTerm" [filteringName]="filteringName"></c8y-search-grid>\n'})],e)}(),S=[{path:"assetsearch",component:_}],C=[{template:v}],E=function(){function e(){}return e=y([t.NgModule({declarations:[_,v,b],imports:[o.CoreModule,a.DeviceGridModule,u.BsDropdownModule],entryComponents:[_,v],exports:[_,v,b],providers:[g,{provide:o.HOOK_ONCE_ROUTE,useValue:S,multi:!0},{provide:o.HOOK_SEARCH,useValue:C,multi:!0}]})],e)}();e.SearchBoxComponent=v,e.SearchGridComponent=b,e.SearchModule=E,e.SearchResultsComponent=_,e.SearchService=g,e.ɵ0=S,e.ɵ1=C,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
16
|
//# sourceMappingURL=c8y-ngx-components-search.umd.min.js.map
|