@c8y/ngx-components 1011.0.22 → 1011.0.23
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-repository.umd.js +2 -1
- package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
- package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
- package/bundles/c8y-ngx-components-search.umd.js +7 -4
- 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-sensor-phone.umd.js +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +2 -2
- package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
- package/esm2015/repository/configuration/configuration-detail.component.js +7 -2
- package/esm2015/search/search-grid.component.js +2 -2
- package/esm2015/search/search.service.js +6 -4
- package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
- package/fesm2015/c8y-ngx-components-repository.js +6 -1
- package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
- package/fesm2015/c8y-ngx-components-search.js +6 -4
- package/fesm2015/c8y-ngx-components-search.js.map +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
- package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
- package/locales/locales.pot +13 -6
- package/package.json +2 -2
- package/repository/c8y-ngx-components-repository.metadata.json +1 -1
- package/repository/configuration/configuration-detail.component.d.ts +1 -0
- package/search/c8y-ngx-components-search.metadata.json +1 -1
- package/search/search.service.d.ts +3 -1
- package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
|
@@ -366,13 +366,16 @@
|
|
|
366
366
|
* Returns the full-text search results.
|
|
367
367
|
*
|
|
368
368
|
* @param term The search term.
|
|
369
|
+
* @param pagination The currently used pagination.
|
|
369
370
|
*/
|
|
370
|
-
SearchService.prototype.search = function (term) {
|
|
371
|
+
SearchService.prototype.search = function (term, pagination) {
|
|
372
|
+
if (pagination === void 0) { pagination = { currentPage: 1, pageSize: this.DEFAULT_PAGE_SIZE }; }
|
|
371
373
|
return this.inventoryService.list({
|
|
372
374
|
text: term,
|
|
373
375
|
withTotalPages: true,
|
|
374
|
-
pageSize:
|
|
375
|
-
withChildren: false
|
|
376
|
+
pageSize: pagination.pageSize,
|
|
377
|
+
withChildren: false,
|
|
378
|
+
currentPage: pagination.nextPage || 1
|
|
376
379
|
});
|
|
377
380
|
};
|
|
378
381
|
SearchService.prototype.isRootDevice = function (mo) {
|
|
@@ -653,7 +656,7 @@
|
|
|
653
656
|
switch (_a.label) {
|
|
654
657
|
case 0:
|
|
655
658
|
if (!dataSourceModifier.searchText) return [3 /*break*/, 2];
|
|
656
|
-
return [4 /*yield*/, this.searchService.search(dataSourceModifier.searchText)];
|
|
659
|
+
return [4 /*yield*/, this.searchService.search(dataSourceModifier.searchText, dataSourceModifier.pagination)];
|
|
657
660
|
case 1:
|
|
658
661
|
response = _a.sent();
|
|
659
662
|
return [3 /*break*/, 4];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-search.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../search/search.service.ts","../../search/search-box.component.ts","../../search/search-grid.component.ts","../../search/search-results.component.ts","../../search/search.module.ts","../../search/c8y-ngx-components-search.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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["get","some","find","isUndefined","SubAssetsService","Injectable","pipe","map","defer","tap","switchMap","merge","of","empty","Component","Router","InventoryService","DeviceGridService","ViewChild","TypeaheadComponent","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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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-search.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../search/search.service.ts","../../search/search-box.component.ts","../../search/search-grid.component.ts","../../search/search-results.component.ts","../../search/search.module.ts","../../search/c8y-ngx-components-search.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';\nimport { Pagination } from '@c8y/ngx-components';\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 * @param pagination The currently used pagination.\n */\n search(\n term: string,\n pagination: Pagination = { currentPage: 1, pageSize: this.DEFAULT_PAGE_SIZE }\n ) {\n return this.inventoryService.list({\n text: term,\n withTotalPages: true,\n pageSize: pagination.pageSize,\n withChildren: false,\n currentPage: pagination.nextPage || 1\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(\n dataSourceModifier.searchText,\n dataSourceModifier.pagination\n );\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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["get","some","find","isUndefined","SubAssetsService","Injectable","pipe","map","defer","tap","switchMap","merge","of","empty","Component","Router","InventoryService","DeviceGridService","ViewChild","TypeaheadComponent","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)};function d(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 y(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])}}}function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)o.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(i)throw i.error}}return o}function m(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(f(arguments[t]));return e}var g=function(e){function t(){var t=e.apply(this,m(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)}(t,e),t.prototype.filterOnlyAssets=function(e){var t=this;return e.filter((function(e){return e.c8y_IsDeviceGroup||t.isAnyDevice(e)}))},t.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)},t.prototype.search=function(e){return this.inventoryService.list({text:e,withTotalPages:!0,pageSize:this.DEFAULT_PAGE_SIZE,withChildren:!1})},t.prototype.isRootDevice=function(e){return!!e[this.DEVICE_FRAGMENT_TYPE]},t.prototype.isAnyDevice=function(e){return this.isRootDevice(e)||!this.hasFragmentOrTypeFromBlacklist(e)},t.prototype.hasFragmentOrTypeFromBlacklist=function(e){return this.hasTypeFromBlacklist(e)||this.hasFragmentFromBlacklist(e)},t.prototype.hasTypeFromBlacklist=function(e){var t=r.get(e,"type","");return r.some(this.TYPES_FOR_NO_DEVICE,(function(e){return t.includes(e)}))},t.prototype.hasFragmentFromBlacklist=function(e){return r.find(this.FRAGMENTS_FOR_NO_DEVICE,(function(t){return!r.isUndefined(e[t])}))},t}(n.SubAssetsService);g.decorators=[{type:t.Injectable}];var 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 d(this,void 0,void 0,(function(){var e,t,n=this;return y(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(Object.assign({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}();v.decorators=[{type:t.Component,args:[{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'}]}],v.ctorParameters=function(){return[{type:i.Router},{type:s.InventoryService},{type:a.DeviceGridService},{type:g}]},v.propDecorators={typeahead:[{type:t.ViewChild,args:[o.TypeaheadComponent,{static:!1}]}],dropdown:[{type:t.ViewChild,args:["dropdown",{static:!1}]}]};var 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:!1,configurable:!0}),Object.defineProperty(e.prototype,"_pagination",{set:function(e){this.pagination=e||this.searchService.getDefaultPagination()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_actionControls",{set:function(e){this.actionControls=e||this.searchService.getDefaultActionControls()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||this.searchService.getDefaultBulkActionControls()},enumerable:!1,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 d(this,void 0,void 0,(function(){var t,n,r,i,s;return y(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 d(r,void 0,void 0,(function(){return y(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}();b.decorators=[{type:t.Component,args:[{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'}]}],b.ctorParameters=function(){return[{type:g},{type:p.BsModalService},{type:s.SmartGroupsService},{type:n.SubAssetsService}]},b.propDecorators={parentGroup:[{type:t.Input,args:["parent-group"]}],title:[{type:t.Input}],loadingItemsLabel:[{type:t.Input}],_columns:[{type:t.Input,args:["columns"]}],_pagination:[{type:t.Input,args:["pagination"]}],_actionControls:[{type:t.Input,args:["actionControls"]}],selectable:[{type:t.Input}],_bulkActionControls:[{type:t.Input,args:["bulkActionControls"]}],onColumnsChange:[{type:t.Output}],searchText:[{type:t.Input}],filteringName:[{type:t.Input}],dataGrid:[{type:t.ViewChild,args:[o.DataGridComponent,{static:!0}]}]};var _=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}();_.decorators=[{type:t.Component,args:[{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'}]}],_.ctorParameters=function(){return[{type:i.ActivatedRoute},{type:o.AlertService}]},_.propDecorators={searchGrid:[{type:t.ViewChild,args:[b,{static:!0}]}]};var S=[{path:"assetsearch",component:_}],C=[{template:v}],E=function(){};E.decorators=[{type:t.NgModule,args:[{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.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)};function d(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 y(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])}}}function f(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,s=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(r=s.next()).done;)o.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=s.return)&&n.call(s)}finally{if(i)throw i.error}}return o}function m(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(f(arguments[t]));return e}var g=function(e){function t(){var t=e.apply(this,m(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)}(t,e),t.prototype.filterOnlyAssets=function(e){var t=this;return e.filter((function(e){return e.c8y_IsDeviceGroup||t.isAnyDevice(e)}))},t.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)},t.prototype.search=function(e,t){return void 0===t&&(t={currentPage:1,pageSize:this.DEFAULT_PAGE_SIZE}),this.inventoryService.list({text:e,withTotalPages:!0,pageSize:t.pageSize,withChildren:!1,currentPage:t.nextPage||1})},t.prototype.isRootDevice=function(e){return!!e[this.DEVICE_FRAGMENT_TYPE]},t.prototype.isAnyDevice=function(e){return this.isRootDevice(e)||!this.hasFragmentOrTypeFromBlacklist(e)},t.prototype.hasFragmentOrTypeFromBlacklist=function(e){return this.hasTypeFromBlacklist(e)||this.hasFragmentFromBlacklist(e)},t.prototype.hasTypeFromBlacklist=function(e){var t=r.get(e,"type","");return r.some(this.TYPES_FOR_NO_DEVICE,(function(e){return t.includes(e)}))},t.prototype.hasFragmentFromBlacklist=function(e){return r.find(this.FRAGMENTS_FOR_NO_DEVICE,(function(t){return!r.isUndefined(e[t])}))},t}(n.SubAssetsService);g.decorators=[{type:t.Injectable}];var 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 d(this,void 0,void 0,(function(){var e,t,n=this;return y(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(Object.assign({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}();v.decorators=[{type:t.Component,args:[{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'}]}],v.ctorParameters=function(){return[{type:i.Router},{type:s.InventoryService},{type:a.DeviceGridService},{type:g}]},v.propDecorators={typeahead:[{type:t.ViewChild,args:[o.TypeaheadComponent,{static:!1}]}],dropdown:[{type:t.ViewChild,args:["dropdown",{static:!1}]}]};var 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:!1,configurable:!0}),Object.defineProperty(e.prototype,"_pagination",{set:function(e){this.pagination=e||this.searchService.getDefaultPagination()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_actionControls",{set:function(e){this.actionControls=e||this.searchService.getDefaultActionControls()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"_bulkActionControls",{set:function(e){this.bulkActionControls=e||this.searchService.getDefaultBulkActionControls()},enumerable:!1,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 d(this,void 0,void 0,(function(){var t,n,r,i,s;return y(this,(function(o){switch(o.label){case 0:return e.searchText?[4,this.searchService.search(e.searchText,e.pagination)]:[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 d(r,void 0,void 0,(function(){return y(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}();b.decorators=[{type:t.Component,args:[{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'}]}],b.ctorParameters=function(){return[{type:g},{type:p.BsModalService},{type:s.SmartGroupsService},{type:n.SubAssetsService}]},b.propDecorators={parentGroup:[{type:t.Input,args:["parent-group"]}],title:[{type:t.Input}],loadingItemsLabel:[{type:t.Input}],_columns:[{type:t.Input,args:["columns"]}],_pagination:[{type:t.Input,args:["pagination"]}],_actionControls:[{type:t.Input,args:["actionControls"]}],selectable:[{type:t.Input}],_bulkActionControls:[{type:t.Input,args:["bulkActionControls"]}],onColumnsChange:[{type:t.Output}],searchText:[{type:t.Input}],filteringName:[{type:t.Input}],dataGrid:[{type:t.ViewChild,args:[o.DataGridComponent,{static:!0}]}]};var _=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}();_.decorators=[{type:t.Component,args:[{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'}]}],_.ctorParameters=function(){return[{type:i.ActivatedRoute},{type:o.AlertService}]},_.propDecorators={searchGrid:[{type:t.ViewChild,args:[b,{static:!0}]}]};var S=[{path:"assetsearch",component:_}],C=[{template:v}],E=function(){};E.decorators=[{type:t.NgModule,args:[{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.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
|