UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

79 lines 9.19 kB
import { Injectable } from '@angular/core'; import { InventoryService, QueriesUtil } from '@c8y/client'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; export class InventorySearchService { constructor(inventoryService) { this.inventoryService = inventoryService; this.DEFAULT_PAGE_SIZE = 50; this.queriesUtil = new QueriesUtil(); } /** * Returns the full-text search results. * * @param term The search term. * @param pagination The currently used pagination. */ search(term, pagination = { currentPage: 1, pageSize: this.DEFAULT_PAGE_SIZE }) { const searchFilterQuery = this.getDefaultSearchQuery(); return this.inventoryService.listQuery(searchFilterQuery, { withTotalPages: true, text: term, pageSize: pagination.pageSize, withChildren: false, currentPage: pagination.currentPage || 1 }); } /** * Returns group search results by name. * * @param term The search term - name of group. * @param pagination The currently used pagination. */ searchGroups(term, pagination = { currentPage: 1, pageSize: this.DEFAULT_PAGE_SIZE }) { const searchFilterQuery = this.getGroupsSearchFilterQuery(); const query = this.queriesUtil.addAndFilter(searchFilterQuery, { name: `*${term}*` }); return this.inventoryService.listQuery(query, { withTotalPages: true, pageSize: pagination.pageSize, withChildren: false, currentPage: pagination.currentPage || 1 }); } /** * Will return only valid group assets and filter out * none useful inventories (e.g. c8y_JsonSchema). * @param data All managed objects that should be filtered. */ filterOnlyGroups(data) { return data.filter(mo => mo.c8y_IsDeviceGroup || mo.c8y_IsDynamicGroup); } getGroupsSearchFilterQuery() { return { __filter: { __and: [ { __not: { __has: 'c8y_IsDynamicGroup.invisible' } }, { __or: [{ __has: 'c8y_IsDeviceGroup' }, { __has: 'c8y_IsDynamicGroup' }] } ] } }; } getDefaultSearchQuery() { return { __filter: { __or: [{ __has: 'c8y_IsDeviceGroup' }, { __has: 'c8y_IsDevice' }, { __has: 'c8y_IsAsset' }] } }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InventorySearchService, deps: [{ token: i1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InventorySearchService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InventorySearchService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.InventoryService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52ZW50b3J5LXNlYXJjaC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9zZWFyY2gvaW52ZW50b3J5LXNlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFrQixnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQU01RSxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRjVDLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUcvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUNKLElBQVksRUFDWixhQUF5QixFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtRQUU3RSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRTtZQUN4RCxjQUFjLEVBQUUsSUFBSTtZQUNwQixJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM3QixZQUFZLEVBQUUsS0FBSztZQUNuQixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsSUFBSSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFlBQVksQ0FDVixJQUFZLEVBQ1osYUFBeUIsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFFN0UsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUV0RixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVDLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM3QixZQUFZLEVBQUUsS0FBSztZQUNuQixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsSUFBSSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBc0I7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTywwQkFBMEI7UUFDaEMsT0FBTztZQUNMLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUU7b0JBQ0wsRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsOEJBQThCLEVBQUUsRUFBRTtvQkFDcEQ7d0JBQ0UsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDO3FCQUN4RTtpQkFDRjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsT0FBTztZQUNMLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxDQUFDO2FBQzVGO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBNUVVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgSW52ZW50b3J5U2VydmljZSwgUXVlcmllc1V0aWwgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vZGF0YS1ncmlkJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW52ZW50b3J5U2VhcmNoU2VydmljZSB7XG4gIHByb3RlY3RlZCBERUZBVUxUX1BBR0VfU0laRSA9IDUwO1xuICBwcml2YXRlIHF1ZXJpZXNVdGlsOiBRdWVyaWVzVXRpbDtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlKSB7XG4gICAgdGhpcy5xdWVyaWVzVXRpbCA9IG5ldyBRdWVyaWVzVXRpbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZ1bGwtdGV4dCBzZWFyY2ggcmVzdWx0cy5cbiAgICpcbiAgICogQHBhcmFtIHRlcm0gVGhlIHNlYXJjaCB0ZXJtLlxuICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBUaGUgY3VycmVudGx5IHVzZWQgcGFnaW5hdGlvbi5cbiAgICovXG4gIHNlYXJjaChcbiAgICB0ZXJtOiBzdHJpbmcsXG4gICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHsgY3VycmVudFBhZ2U6IDEsIHBhZ2VTaXplOiB0aGlzLkRFRkFVTFRfUEFHRV9TSVpFIH1cbiAgKSB7XG4gICAgY29uc3Qgc2VhcmNoRmlsdGVyUXVlcnkgPSB0aGlzLmdldERlZmF1bHRTZWFyY2hRdWVyeSgpO1xuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdFF1ZXJ5KHNlYXJjaEZpbHRlclF1ZXJ5LCB7XG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHRleHQ6IHRlcm0sXG4gICAgICBwYWdlU2l6ZTogcGFnaW5hdGlvbi5wYWdlU2l6ZSxcbiAgICAgIHdpdGhDaGlsZHJlbjogZmFsc2UsXG4gICAgICBjdXJyZW50UGFnZTogcGFnaW5hdGlvbi5jdXJyZW50UGFnZSB8fCAxXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBncm91cCBzZWFyY2ggcmVzdWx0cyBieSBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gdGVybSBUaGUgc2VhcmNoIHRlcm0gLSBuYW1lIG9mIGdyb3VwLlxuICAgKiBAcGFyYW0gcGFnaW5hdGlvbiBUaGUgY3VycmVudGx5IHVzZWQgcGFnaW5hdGlvbi5cbiAgICovXG4gIHNlYXJjaEdyb3VwcyhcbiAgICB0ZXJtOiBzdHJpbmcsXG4gICAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHsgY3VycmVudFBhZ2U6IDEsIHBhZ2VTaXplOiB0aGlzLkRFRkFVTFRfUEFHRV9TSVpFIH1cbiAgKSB7XG4gICAgY29uc3Qgc2VhcmNoRmlsdGVyUXVlcnkgPSB0aGlzLmdldEdyb3Vwc1NlYXJjaEZpbHRlclF1ZXJ5KCk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLnF1ZXJpZXNVdGlsLmFkZEFuZEZpbHRlcihzZWFyY2hGaWx0ZXJRdWVyeSwgeyBuYW1lOiBgKiR7dGVybX0qYCB9KTtcblxuICAgIHJldHVybiB0aGlzLmludmVudG9yeVNlcnZpY2UubGlzdFF1ZXJ5KHF1ZXJ5LCB7XG4gICAgICB3aXRoVG90YWxQYWdlczogdHJ1ZSxcbiAgICAgIHBhZ2VTaXplOiBwYWdpbmF0aW9uLnBhZ2VTaXplLFxuICAgICAgd2l0aENoaWxkcmVuOiBmYWxzZSxcbiAgICAgIGN1cnJlbnRQYWdlOiBwYWdpbmF0aW9uLmN1cnJlbnRQYWdlIHx8IDFcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaWxsIHJldHVybiBvbmx5IHZhbGlkIGdyb3VwIGFzc2V0cyBhbmQgZmlsdGVyIG91dFxuICAgKiBub25lIHVzZWZ1bCBpbnZlbnRvcmllcyAoZS5nLiBjOHlfSnNvblNjaGVtYSkuXG4gICAqIEBwYXJhbSBkYXRhIEFsbCBtYW5hZ2VkIG9iamVjdHMgdGhhdCBzaG91bGQgYmUgZmlsdGVyZWQuXG4gICAqL1xuICBmaWx0ZXJPbmx5R3JvdXBzKGRhdGE6IElNYW5hZ2VkT2JqZWN0W10pOiBJTWFuYWdlZE9iamVjdFtdIHtcbiAgICByZXR1cm4gZGF0YS5maWx0ZXIobW8gPT4gbW8uYzh5X0lzRGV2aWNlR3JvdXAgfHwgbW8uYzh5X0lzRHluYW1pY0dyb3VwKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0R3JvdXBzU2VhcmNoRmlsdGVyUXVlcnkoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9fZmlsdGVyOiB7XG4gICAgICAgIF9fYW5kOiBbXG4gICAgICAgICAgeyBfX25vdDogeyBfX2hhczogJ2M4eV9Jc0R5bmFtaWNHcm91cC5pbnZpc2libGUnIH0gfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBfX29yOiBbeyBfX2hhczogJ2M4eV9Jc0RldmljZUdyb3VwJyB9LCB7IF9faGFzOiAnYzh5X0lzRHluYW1pY0dyb3VwJyB9XVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRTZWFyY2hRdWVyeSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgX19maWx0ZXI6IHtcbiAgICAgICAgX19vcjogW3sgX19oYXM6ICdjOHlfSXNEZXZpY2VHcm91cCcgfSwgeyBfX2hhczogJ2M4eV9Jc0RldmljZScgfSwgeyBfX2hhczogJ2M4eV9Jc0Fzc2V0JyB9XVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==