@c8y/ngx-components 1011.0.23 → 1011.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/c8y-ngx-components-search.umd.js +1 -1
- 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/esm2015/search/search.service.js +2 -2
- package/fesm2015/c8y-ngx-components-search.js +1 -1
- package/fesm2015/c8y-ngx-components-search.js.map +1 -1
- package/package.json +2 -2
|
@@ -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';\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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"}
|
|
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.currentPage || 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,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})}));
|
|
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.currentPage||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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","__read","o","m","r","i","ar","error","__spread","arguments","concat","SearchService","_this","_super","GRID_CONFIG_STORAGE_KEY","DEFAULT_PAGE_SIZE","FRAGMENTS_FOR_NO_DEVICE","TYPES_FOR_NO_DEVICE","DEVICE_FRAGMENT_TYPE","__","constructor","prototype","create","__extends","filterOnlyAssets","data","filter","mo","c8y_IsDeviceGroup","isAnyDevice","buildCombinedRootQueryFilter","columns","pagination","userQuery","getQueryObj","queryPart","queriesUtil","addOrderbys","__filter","__and","__not","__has","__orderby","fullQuery","addAndFilter","buildQuery","search","term","currentPage","pageSize","inventoryService","list","text","withTotalPages","withChildren","nextPage","isRootDevice","hasFragmentOrTypeFromBlacklist","hasTypeFromBlacklist","hasFragmentFromBlacklist","moType","get","some","type","includes","find","isUndefined","SubAssetsService","Injectable","SearchBoxComponent","router","inventory","deviceGridService","searchService","filterPipe","pipe","map","recentSearchResults","isLoading","noMatch","RECENT_SEARCH_STORAGE_KEY","MAX_RECENT_SEARCH_RESULTS","DEFAULT_FILTER","KEYCODE_ENTER","KEYCODE_ESC","ngOnInit","recentSearchIds","JSON","parse","localStorage","getItem","ids","join","_a","recentlyRegisteredResults$","defer","assign","q","onOpenChange","isOpen","requestAnimationFrame","subscribeOnSearch","typeahead","dropdown","show","searchControl","nativeElement","focus","open","event","stopPropagation","id","unshift","slice","setItem","stringify","navigateByUrl","getHref","hide","reset","onSearch","emit","selected","undefined","keyDown","keyCode","searchTerm","target","navigate","queryParams","on","openSearch","results$","tap","onTypingStarted","switchMap","mergeRequest","commands","extras","skipLocationChange","merge","of","queryInventoryService","paging","onLoadingDone","empty","Component","args","selector","template","Router","InventoryService","DeviceGridService","ViewChild","TypeaheadComponent","static","SearchGridComponent","bsModalService","smartGroupsService","subAssetsGridService","title","loadingItemsLabel","gettext","selectable","onColumnsChange","EventEmitter","searchText","getDefaultPagination","bulkActionControls","getDefaultBulkActionControls","refresh","sizeCount","defineProperty","getDefaultColumns","actionControls","getDefaultActionControls","filteringName","AssetTypeGridColumn","sortOrder","NameDeviceGridColumn","externalFilterQuery","names","ModelDeviceGridColumn","SerialNumberDeviceGridColumn","visible","RegistrationDateDeviceGridColumn","SystemIdDeviceGridColumn","ImeiDeviceGridColumn","AlarmsDeviceGridColumn","serverSideDataCallback","onDataSourceModifier","bind","setActionControls","trackByName","_index","column","name","dataSourceModifier","response","getData","res","filteredData","filteredSize","size","deleteAction","callback","asset","onDeleteAsset","parentGroup","updateFiltering","columnNames","action","FilteringActionType","ResetFilter","dataGrid","clearFilters","configChange","config","saveConfig","parentRef","initialState","showWithDeviceUserCheckbox","shouldShowWithDeviceUserCheckbox","showWithCascadeCheckbox","isSmartGroup","isSmartGroupV2","DeleteAssetsModalComponent","content","closeSubject","subscribe","deleteAsset","BsModalService","SmartGroupsService","Input","Output","DataGridComponent","SearchResultsComponent","route","alert","unsubscribe$","Subject","params","ngAfterViewInit","takeUntil","onQueryParamsChange","searchGrid","searchText$","resetFilter","onFilter","resetSearch","snapshot","add","Status","WARNING","timeout","filteringApplied","ngOnDestroy","complete","shouldFilter","ApplyFilter","payload","filteringModifier","ActivatedRoute","AlertService","path","component","ɵ1","NgModule","declarations","imports","CoreModule","DeviceGridModule","BsDropdownModule","entryComponents","exports","providers","provide","HOOK_ONCE_ROUTE","useValue","ɵ0","multi","HOOK_SEARCH"],"mappings":"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","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"]}
|
|
1
|
+
{"version":3,"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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","pop","length","push","__read","o","m","r","i","ar","error","__spread","arguments","concat","SearchService","_this","_super","GRID_CONFIG_STORAGE_KEY","DEFAULT_PAGE_SIZE","FRAGMENTS_FOR_NO_DEVICE","TYPES_FOR_NO_DEVICE","DEVICE_FRAGMENT_TYPE","__","constructor","prototype","create","__extends","filterOnlyAssets","data","filter","mo","c8y_IsDeviceGroup","isAnyDevice","buildCombinedRootQueryFilter","columns","pagination","userQuery","getQueryObj","queryPart","queriesUtil","addOrderbys","__filter","__and","__not","__has","__orderby","fullQuery","addAndFilter","buildQuery","search","term","currentPage","pageSize","inventoryService","list","text","withTotalPages","withChildren","isRootDevice","hasFragmentOrTypeFromBlacklist","hasTypeFromBlacklist","hasFragmentFromBlacklist","moType","get","some","type","includes","find","isUndefined","SubAssetsService","Injectable","SearchBoxComponent","router","inventory","deviceGridService","searchService","filterPipe","pipe","map","recentSearchResults","isLoading","noMatch","RECENT_SEARCH_STORAGE_KEY","MAX_RECENT_SEARCH_RESULTS","DEFAULT_FILTER","KEYCODE_ENTER","KEYCODE_ESC","ngOnInit","recentSearchIds","JSON","parse","localStorage","getItem","ids","join","_a","recentlyRegisteredResults$","defer","assign","q","onOpenChange","isOpen","requestAnimationFrame","subscribeOnSearch","typeahead","dropdown","show","searchControl","nativeElement","focus","open","event","stopPropagation","id","unshift","slice","setItem","stringify","navigateByUrl","getHref","hide","reset","onSearch","emit","selected","undefined","keyDown","keyCode","searchTerm","target","navigate","queryParams","on","openSearch","results$","tap","onTypingStarted","switchMap","mergeRequest","commands","extras","skipLocationChange","merge","of","queryInventoryService","paging","onLoadingDone","empty","nextPage","Component","args","selector","template","Router","InventoryService","DeviceGridService","ViewChild","TypeaheadComponent","static","SearchGridComponent","bsModalService","smartGroupsService","subAssetsGridService","title","loadingItemsLabel","gettext","selectable","onColumnsChange","EventEmitter","searchText","getDefaultPagination","bulkActionControls","getDefaultBulkActionControls","refresh","sizeCount","defineProperty","getDefaultColumns","actionControls","getDefaultActionControls","filteringName","AssetTypeGridColumn","sortOrder","NameDeviceGridColumn","externalFilterQuery","names","ModelDeviceGridColumn","SerialNumberDeviceGridColumn","visible","RegistrationDateDeviceGridColumn","SystemIdDeviceGridColumn","ImeiDeviceGridColumn","AlarmsDeviceGridColumn","serverSideDataCallback","onDataSourceModifier","bind","setActionControls","trackByName","_index","column","name","dataSourceModifier","response","getData","res","filteredData","filteredSize","size","deleteAction","callback","asset","onDeleteAsset","parentGroup","updateFiltering","columnNames","action","FilteringActionType","ResetFilter","dataGrid","clearFilters","configChange","config","saveConfig","parentRef","initialState","showWithDeviceUserCheckbox","shouldShowWithDeviceUserCheckbox","showWithCascadeCheckbox","isSmartGroup","isSmartGroupV2","DeleteAssetsModalComponent","content","closeSubject","subscribe","deleteAsset","BsModalService","SmartGroupsService","Input","Output","DataGridComponent","SearchResultsComponent","route","alert","unsubscribe$","Subject","params","ngAfterViewInit","takeUntil","onQueryParamsChange","searchGrid","searchText$","resetFilter","onFilter","resetSearch","snapshot","add","Status","WARNING","timeout","filteringApplied","ngOnDestroy","complete","shouldFilter","ApplyFilter","payload","filteringModifier","ActivatedRoute","AlertService","path","component","ɵ1","NgModule","declarations","imports","CoreModule","DeviceGridModule","BsDropdownModule","entryComponents","exports","providers","provide","HOOK_ONCE_ROUTE","useValue","ɵ0","multi","HOOK_SEARCH"],"mappings":"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","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.currentPage || 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"]}
|
|
@@ -76,7 +76,7 @@ export class SearchService extends SubAssetsService {
|
|
|
76
76
|
withTotalPages: true,
|
|
77
77
|
pageSize: pagination.pageSize,
|
|
78
78
|
withChildren: false,
|
|
79
|
-
currentPage: pagination.
|
|
79
|
+
currentPage: pagination.currentPage || 1
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
isRootDevice(mo) {
|
|
@@ -100,4 +100,4 @@ export class SearchService extends SubAssetsService {
|
|
|
100
100
|
SearchService.decorators = [
|
|
101
101
|
{ type: Injectable }
|
|
102
102
|
];
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSXpELE1BQU0sT0FBTyxhQUFjLFNBQVEsZ0JBQWdCO0lBRG5EOztRQUVZLDRCQUF1QixHQUFHLG9CQUFvQixDQUFDO1FBQy9DLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUNoQiw0QkFBdUIsR0FBRztZQUN6QyxlQUFlO1lBQ2YsWUFBWTtZQUNaLFNBQVM7WUFDVCx5QkFBeUI7WUFDekIsY0FBYztZQUNkLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLGtEQUFrRDtZQUNsRCxxREFBcUQ7WUFDckQsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixpQ0FBaUM7U0FDbEMsQ0FBQztRQUNlLHdCQUFtQixHQUFHO1lBQ3JDLHVCQUF1QjtZQUN2QixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCx1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLGdCQUFnQjtZQUNoQix5QkFBeUI7WUFDekIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLDRCQUE0QjtZQUM1QixjQUFjO1NBQ2YsQ0FBQztRQUNlLHlCQUFvQixHQUFHLGNBQWMsQ0FBQztJQStEekQsQ0FBQztJQTdEQzs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBc0I7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsNEJBQTRCLENBQUMsT0FBTyxFQUFFLFVBQVU7UUFDOUMsTUFBTSxTQUFTLEdBQUc7WUFDaEIsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRTthQUM1QztTQUNGLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN6RixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUNKLElBQVksRUFDWixhQUF5QixFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtRQUU3RSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUk7WUFDVixjQUFjLEVBQUUsSUFBSTtZQUNwQixRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7WUFDN0IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxXQUFXLElBQUksQ0FBQztTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLEVBQUU7UUFDckIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTyxXQUFXLENBQUMsRUFBRTtRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sb0JBQW9CLENBQUMsRUFBRTtRQUM3QixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLHdCQUF3QixDQUFDLEVBQUU7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDOzs7WUF2R0YsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0IH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgU3ViQXNzZXRzU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvc3ViLWFzc2V0cyc7XG5pbXBvcnQgeyBmaW5kLCBnZXQsIGlzVW5kZWZpbmVkLCBzb21lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlYXJjaFNlcnZpY2UgZXh0ZW5kcyBTdWJBc3NldHNTZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIEdSSURfQ09ORklHX1NUT1JBR0VfS0VZID0gJ3NlYXJjaC1ncmlkLWNvbmZpZyc7XG4gIHByb3RlY3RlZCBERUZBVUxUX1BBR0VfU0laRSA9IDUwO1xuICBwcml2YXRlIHJlYWRvbmx5IEZSQUdNRU5UU19GT1JfTk9fREVWSUNFID0gW1xuICAgICdjOHlfRGFzaGJvYXJkJyxcbiAgICAnYzh5X1JlcG9ydCcsXG4gICAgJ2M4eV9LcGknLFxuICAgICdjOHlfRXhwb3J0Q29uZmlndXJhdGlvbicsXG4gICAgJ2M4eV9Jc0JpbmFyeScsXG4gICAgJ2M4eV9Ob0RldmljZScsXG4gICAgJ2M4eV9Jc0RldmljZUdyb3VwJyxcbiAgICAnYzh5X0dyb3VwJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfc21hcnRyZXN0X1NtYXJ0UmVzdFRlbXBsYXRlJyxcbiAgICAnY29tX2N1bXVsb2NpdHlfbW9kZWxfZGV2aWNlc2ltdWxhdG9yX1NlbnNvclRlbXBsYXRlJyxcbiAgICAnX2F0dGFjaG1lbnRzJyxcbiAgICAnYzh5X0lzRGV2aWNlVHlwZScsXG4gICAgJ2M4eV9vYmplY3RtYXBwaW5nX09iamVjdE1hcHBpbmcnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgVFlQRVNfRk9SX05PX0RFVklDRSA9IFtcbiAgICAnYzh5X0NvbmZpZ3VyYXRpb25EdW1wJyxcbiAgICAnYzh5X0Zpcm13YXJlJyxcbiAgICAnYzh5X1NtYXJ0UnVsZScsXG4gICAgJ2M4eV9Tb2Z0d2FyZScsXG4gICAgJ2ltcGFjdF9vYmplY3RfbWFwcGluZycsXG4gICAgJ2M4eV9Vc2VyUHJlZmVyZW5jZScsXG4gICAgJ2M4eV9UZW5hbnRQb2xpY3knLFxuICAgICdjOHlfUHJpdmF0ZVNtYXJ0UnVsZScsXG4gICAgJ2M4eV9TbWFydFJlc3QyVGVtcGxhdGUnLFxuICAgICdjOHlfSnNvblNjaGVtYScsXG4gICAgJ2M4eV9EZXZpY2VTaGVsbFRlbXBsYXRlJyxcbiAgICAnYzh5X0RlbW9TdGF0dXMnLFxuICAgICdjOHlfRGF0YUJyb2tlcicsXG4gICAgJ2M4eV9BcHBsaWNhdGlvbl8nLFxuICAgICdicmFuZGluZ1ZhcmlhYmxlcycsXG4gICAgJ2M4eV9EZXZpY2VTaW11bGF0b3InLFxuICAgICdjOHlfQ2VydGlmaWNhdGVNZXRhZGF0YScsXG4gICAgJ2x3bTJtX3Bvc3RfcmVnaXN0cmF0aW9uJyxcbiAgICAnYzh5X21pY3Jvc2VydmljZV9tYW5pZmVzdF8nLFxuICAgICdjOHlfQ2VwQWdlbnQnXG4gIF07XG4gIHByaXZhdGUgcmVhZG9ubHkgREVWSUNFX0ZSQUdNRU5UX1RZUEUgPSAnYzh5X0lzRGV2aWNlJztcblxuICAvKipcbiAgICogV2lsbCByZXR1cm4gb25seSB2YWxpZCBhc3NldHMgKGdyb3VwcyBhbmQgZGV2aWNlcykgYW5kIGZpbHRlciBvdXRcbiAgICogbm9uZSB1c2VmdWwgaW52ZW50b3JpZXMgKGUuZy4gYzh5X0pzb25TY2hlbWEpLlxuICAgKiBAcGFyYW0gZGF0YSBBbGwgbWFuYWdlZCBvYmplY3RzIHRoYXQgc2hvdWxkIGJlIGZpbHRlcmVkLlxuICAgKi9cbiAgZmlsdGVyT25seUFzc2V0cyhkYXRhOiBJTWFuYWdlZE9iamVjdFtdKSB7XG4gICAgcmV0dXJuIGRhdGEuZmlsdGVyKG1vID0+IG1vLmM4eV9Jc0RldmljZUdyb3VwIHx8IHRoaXMuaXNBbnlEZXZpY2UobW8pKTtcbiAgfVxuXG4gIGJ1aWxkQ29tYmluZWRSb290UXVlcnlGaWx0ZXIoY29sdW1ucywgcGFnaW5hdGlvbikge1xuICAgIGNvbnN0IHJvb3RRdWVyeSA9IHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIF9fYW5kOiB7IF9fbm90OiB7IF9faGFzOiBgYzh5X0lzQmluYXJ5YCB9IH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHVzZXJRdWVyeSA9IHRoaXMuZ2V0UXVlcnlPYmooY29sdW1ucywgcGFnaW5hdGlvbik7XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gdGhpcy5xdWVyaWVzVXRpbC5hZGRPcmRlcmJ5cyhyb290UXVlcnksIHVzZXJRdWVyeS5fX29yZGVyYnksICdhcHBlbmQnKTtcbiAgICBjb25zdCBmdWxsUXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcihxdWVyeVBhcnQsIHVzZXJRdWVyeS5fX2ZpbHRlcik7XG4gICAgcmV0dXJuIHRoaXMucXVlcmllc1V0aWwuYnVpbGRRdWVyeShmdWxsUXVlcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZ1bGwtdGV4dCBzZWFyY2ggcmVzdWx0cy5cbiAgICpcbiAgICogQHBhcmFtIHRlcm0gVGhlIHNlYXJjaCB0ZXJtLlxuICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBUaGUgY3VycmVudGx5IHVzZWQgcGFnaW5hdGlvbi5cbiAgICovXG4gIHNlYXJjaChcbiAgICB0ZXJtOiBzdHJpbmcsXG4gICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHsgY3VycmVudFBhZ2U6IDEsIHBhZ2VTaXplOiB0aGlzLkRFRkFVTFRfUEFHRV9TSVpFIH1cbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuaW52ZW50b3J5U2VydmljZS5saXN0KHtcbiAgICAgIHRleHQ6IHRlcm0sXG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHBhZ2VTaXplOiBwYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIGN1cnJlbnRQYWdlOiBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlIHx8IDFcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSb290RGV2aWNlKG1vKSB7XG4gICAgcmV0dXJuICEhbW9bdGhpcy5ERVZJQ0VfRlJBR01FTlRfVFlQRV07XG4gIH1cblxuICBwcml2YXRlIGlzQW55RGV2aWNlKG1vKSB7XG4gICAgY29uc3QgaXNEZXZpY2UgPSB0aGlzLmlzUm9vdERldmljZShtbykgfHwgIXRoaXMuaGFzRnJhZ21lbnRPclR5cGVGcm9tQmxhY2tsaXN0KG1vKTtcbiAgICByZXR1cm4gaXNEZXZpY2U7XG4gIH1cblxuICBwcml2YXRlIGhhc0ZyYWdtZW50T3JUeXBlRnJvbUJsYWNrbGlzdChtbykge1xuICAgIHJldHVybiB0aGlzLmhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB8fCB0aGlzLmhhc0ZyYWdtZW50RnJvbUJsYWNrbGlzdChtbyk7XG4gIH1cblxuICBwcml2YXRlIGhhc1R5cGVGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgY29uc3QgbW9UeXBlID0gZ2V0KG1vLCAndHlwZScsICcnKTtcbiAgICByZXR1cm4gc29tZSh0aGlzLlRZUEVTX0ZPUl9OT19ERVZJQ0UsIHR5cGUgPT4gbW9UeXBlLmluY2x1ZGVzKHR5cGUpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRnJhZ21lbnRGcm9tQmxhY2tsaXN0KG1vKSB7XG4gICAgcmV0dXJuIGZpbmQodGhpcy5GUkFHTUVOVFNfRk9SX05PX0RFVklDRSwgZiA9PiAhaXNVbmRlZmluZWQobW9bZl0pKTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-search.js","sources":["../../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":["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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-search.js","sources":["../../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":["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.currentPage || 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":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c8y/ngx-components",
|
|
3
|
-
"version": "1011.0.
|
|
3
|
+
"version": "1011.0.24",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"author": "Cumulocity",
|
|
6
6
|
"description": "Angular modules for Cumulocity IoT applications",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"rxjs": "~6.6.3"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@c8y/client": "1011.0.
|
|
26
|
+
"@c8y/client": "1011.0.24",
|
|
27
27
|
"@ngx-translate/core": "13.0.0",
|
|
28
28
|
"@ngx-translate/http-loader": "4.0.0",
|
|
29
29
|
"@ngx-formly/core": "5.10.6",
|