@c8y/ngx-components 1021.7.0 → 1021.13.3
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/alarms/alarms-date-filter.component.d.ts +34 -0
- package/alarms/alarms-date-filter.component.d.ts.map +1 -0
- package/alarms/alarms-filter.component.d.ts +2 -1
- package/alarms/alarms-filter.component.d.ts.map +1 -1
- package/alarms/alarms-view.service.d.ts +4 -2
- package/alarms/alarms-view.service.d.ts.map +1 -1
- package/alarms/alarms.component.d.ts +3 -1
- package/alarms/alarms.component.d.ts.map +1 -1
- package/alarms/alarms.model.d.ts +17 -1
- package/alarms/alarms.model.d.ts.map +1 -1
- package/alarms/alarms.module.d.ts +15 -13
- package/alarms/alarms.module.d.ts.map +1 -1
- package/branding/shared/data/store-branding.service.d.ts +5 -0
- package/branding/shared/data/store-branding.service.d.ts.map +1 -1
- package/branding/shared/lazy/branding/branding.component.d.ts.map +1 -1
- package/cockpit-config/cockpit-config.model.d.ts +1 -0
- package/cockpit-config/cockpit-config.model.d.ts.map +1 -1
- package/context-dashboard/dashboard-manager/dashboard-manager.module.d.ts.map +1 -1
- package/core/common/options.service.d.ts +1 -1
- package/core/common/options.service.d.ts.map +1 -1
- package/core/dashboard/dashboard.module.d.ts +19 -19
- package/core/dashboard/widget-change-event.model.d.ts +1 -1
- package/core/dashboard/widget-change-event.model.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts +2 -1
- package/core/dashboard/wiget-time-context/widget-time-context-helper.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context-query.service.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts +2 -1
- package/core/dashboard/wiget-time-context/widget-time-context.component.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts +1 -14
- package/core/dashboard/wiget-time-context/widget-time-context.model.d.ts.map +1 -1
- package/core/date-time-picker/date-time-picker.component.d.ts.map +1 -1
- package/core/forms/validation-pattern.d.ts +4 -0
- package/core/forms/validation-pattern.d.ts.map +1 -1
- package/core/plugins/plugins.service.d.ts +1 -1
- package/core/plugins/plugins.service.d.ts.map +1 -1
- package/esm2022/alarm-event-selector/alarm-event-selection-list/alarm-event-selection-list.component.mjs +4 -4
- package/esm2022/alarm-event-selector/alarm-event-selector-list-item/alarm-event-selector-list-item.component.mjs +3 -3
- package/esm2022/alarms/alarms-date-filter.component.mjs +139 -0
- package/esm2022/alarms/alarms-filter.component.mjs +11 -5
- package/esm2022/alarms/alarms-type-filter.component.mjs +3 -3
- package/esm2022/alarms/alarms-view.service.mjs +15 -2
- package/esm2022/alarms/alarms.component.mjs +12 -6
- package/esm2022/alarms/alarms.model.mjs +17 -1
- package/esm2022/alarms/alarms.module.mjs +11 -4
- package/esm2022/assets-navigator/asset-selector/asset-selector-node.component.mjs +3 -3
- package/esm2022/branding/shared/data/store-branding.service.mjs +24 -1
- package/esm2022/branding/shared/lazy/branding/branding.component.mjs +3 -1
- package/esm2022/cockpit-config/cockpit-config.model.mjs +3 -2
- package/esm2022/cockpit-config/feature-config.component.mjs +3 -3
- package/esm2022/context-dashboard/dashboard-manager/dashboard-manager.module.mjs +5 -3
- package/esm2022/core/action-bar/action-bar.component.mjs +3 -3
- package/esm2022/core/common/options.service.mjs +3 -3
- package/esm2022/core/dashboard/dashboard.module.mjs +5 -4
- package/esm2022/core/dashboard/widget-change-event.model.mjs +1 -1
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-helper.service.mjs +3 -2
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context-query.service.mjs +1 -1
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.component.mjs +6 -5
- package/esm2022/core/dashboard/wiget-time-context/widget-time-context.model.mjs +3 -47
- package/esm2022/core/date-time-picker/date-time-picker.component.mjs +7 -1
- package/esm2022/core/docs/defaults.items.mjs +2 -2
- package/esm2022/core/forms/validation-pattern.mjs +5 -1
- package/esm2022/core/list-display-switch/list-display-switch.component.mjs +3 -3
- package/esm2022/core/plugins/plugins.service.mjs +3 -3
- package/esm2022/core/router/context-route.guard.mjs +2 -2
- package/esm2022/core/search/search-input.component.mjs +3 -3
- package/esm2022/interval-picker/c8y-ngx-components-interval-picker.mjs +5 -0
- package/esm2022/interval-picker/index.mjs +3 -0
- package/esm2022/interval-picker/interval-picker.component.mjs +68 -0
- package/esm2022/interval-picker/interval-picker.model.mjs +47 -0
- package/esm2022/operations/bulk-operation-scheduler/operation-scheduler.component.mjs +7 -5
- package/esm2022/search/search-action.component.mjs +3 -3
- package/esm2022/tenants/custom-properties/custom-properties.component.mjs +90 -0
- package/esm2022/tenants/custom-properties/custom-properties.service.mjs +76 -0
- package/esm2022/tenants/custom-properties/custom-property-field/custom-property-field.component.mjs +29 -0
- package/esm2022/tenants/index.mjs +2 -1
- package/esm2022/tenants/tenant-limits/tenant-limits-definitions.mjs +92 -0
- package/esm2022/tenants/tenant-limits/tenant-limits.component.mjs +124 -0
- package/esm2022/tenants/tenants.module.mjs +42 -4
- package/esm2022/widgets/implementations/help-and-service-widget/help-and-service-view/help-and-service-view.component.mjs +2 -2
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +5 -5
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +184 -16
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +2 -2
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +23 -0
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +2 -0
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +4 -3
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +4 -2
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-interval-picker.mjs +120 -0
- package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -0
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +6 -4
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +2 -2
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +416 -11
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +292 -372
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/interval-picker/c8y-ngx-components-interval-picker.d.ts.map +1 -0
- package/interval-picker/index.d.ts +3 -0
- package/interval-picker/index.d.ts.map +1 -0
- package/{core/dashboard/wiget-time-context/interval-picker → interval-picker}/interval-picker.component.d.ts +10 -2
- package/interval-picker/interval-picker.component.d.ts.map +1 -0
- package/interval-picker/interval-picker.model.d.ts +15 -0
- package/interval-picker/interval-picker.model.d.ts.map +1 -0
- package/locales/de.po +4 -1
- package/locales/en.po +3 -0
- package/locales/en_US.po +3 -0
- package/locales/es.po +3 -0
- package/locales/fr.po +3 -0
- package/locales/ja_JP.po +3 -0
- package/locales/locales.pot +47 -3
- package/locales/nl.po +3 -0
- package/locales/pl.po +3 -0
- package/locales/pt_BR.po +3 -0
- package/operations/bulk-operation-scheduler/operation-scheduler.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/tenants/custom-properties/custom-properties.component.d.ts +26 -0
- package/tenants/custom-properties/custom-properties.component.d.ts.map +1 -0
- package/tenants/custom-properties/custom-properties.service.d.ts +26 -0
- package/tenants/custom-properties/custom-properties.service.d.ts.map +1 -0
- package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts +10 -0
- package/tenants/custom-properties/custom-property-field/custom-property-field.component.d.ts.map +1 -0
- package/tenants/index.d.ts +1 -0
- package/tenants/index.d.ts.map +1 -1
- package/tenants/tenant-limits/tenant-limits-definitions.d.ts +117 -0
- package/tenants/tenant-limits/tenant-limits-definitions.d.ts.map +1 -0
- package/tenants/tenant-limits/tenant-limits.component.d.ts +39 -0
- package/tenants/tenant-limits/tenant-limits.component.d.ts.map +1 -0
- package/tenants/tenants.module.d.ts.map +1 -1
- package/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.d.ts.map +0 -1
- package/esm2022/core/dashboard/wiget-time-context/interval-picker/interval-picker.component.mjs +0 -55
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-search.mjs","sources":["../../search/search.service.ts","../../search/columns/asset-type-search-grid-column.ts","../../search/search-config.model.ts","../../search/search-grid.component.ts","../../search/search-grid.component.html","../../search/search-results.component.ts","../../search/search-results.component.html","../../search/search-custom-filters.component.ts","../../search/search-custom-filters.component.html","../../search/search-action.component.ts","../../search/search-action.component.html","../../search/search.module.ts","../../search/c8y-ngx-components-search.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { QueriesUtil } from '@c8y/client';\nimport {\n ActionControl,\n BulkActionControl,\n Column,\n Pagination,\n SearchFilters\n} from '@c8y/ngx-components';\nimport { AssetNodeService } from '@c8y/ngx-components/assets-navigator';\nimport {\n AlarmsDeviceGridColumn,\n DeviceGridService,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport { BehaviorSubject } from 'rxjs';\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetSearchService {\n GRID_CONFIG_STORAGE_KEY = 'search-grid-config';\n DEFAULT_PAGE_SIZE = 50;\n getGlobalSearchData = this.getSearchData.bind(this);\n appliedFilters$: BehaviorSubject<{\n [SearchFilters.ALL_FILTERS]: boolean;\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: boolean;\n [SearchFilters.ONLY_DEVICES]: boolean;\n }> = new BehaviorSubject({\n allFilters: true,\n onlyDevices: true,\n onlyGroupsAndAssets: true\n });\n private queriesUtil: QueriesUtil;\n constructor(\n private deviceGridService: DeviceGridService,\n private assetNodeService: AssetNodeService\n ) {\n this.queriesUtil = new QueriesUtil();\n }\n\n /**\n * Resets the status of applied filters, used during the search.\n * Applies only to filters: 'All', 'Show only devices', 'Show only groups and assets'.\n */\n resetAppliedFilters() {\n this.appliedFilters$.next({\n allFilters: true,\n onlyDevices: true,\n onlyGroupsAndAssets: true\n });\n }\n\n buildCombinedRootQueryFilter(columns: Column[], pagination: Pagination) {\n const rootQuery = {\n __filter: {\n __and: { __not: { __has: `c8y_IsBinary` } }\n }\n };\n\n const { onlyDevices, onlyGroupsAndAssets } = this.appliedFilters$.value;\n const searchQuery = this.buildSearchQuery({ onlyDevices, onlyGroupsAndAssets });\n\n const userQuery = this.deviceGridService.getQueryObj(columns, pagination);\n const queryPart = this.queriesUtil.addOrderbys(rootQuery, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n const queryWithSearch = this.queriesUtil.addAndFilter(fullQuery, searchQuery);\n return this.queriesUtil.buildQuery(queryWithSearch);\n }\n\n async getData(columns: Column[], pagination: Pagination, text?: string) {\n const query = this.buildCombinedRootQueryFilter(columns, pagination);\n return this.assetNodeService.getAllInventories({ ...pagination, query, text });\n }\n\n getDefaultColumns(): Column[] {\n const defaultColumns = [\n new NameDeviceGridColumn({ sortOrder: 'asc' }),\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 return defaultColumns;\n }\n\n getDefaultActionControls(): ActionControl[] {\n return [];\n }\n\n getDefaultBulkActionControls(): BulkActionControl[] {\n return [];\n }\n\n getDefaultPagination(): Pagination {\n return {\n pageSize: 25,\n currentPage: 1\n };\n }\n\n private buildSearchQuery(model) {\n const filter: any = {};\n const ors = [];\n if (model.types?.length) {\n ors.push({ type: { __in: model.types } });\n }\n if (model.onlyDevices) {\n ors.push({ __has: 'c8y_IsDevice' });\n }\n if (model.onlyGroupsAndAssets) {\n ors.push({ __has: 'c8y_IsDynamicGroup' });\n ors.push({ __has: 'c8y_IsDeviceGroup' });\n }\n if (ors.length) {\n filter.__or = ors;\n }\n return filter;\n }\n\n private async getSearchData(\n text: string,\n pagination: Pagination = { currentPage: 1, pageSize: this.DEFAULT_PAGE_SIZE }\n ) {\n const { onlyDevices, onlyGroupsAndAssets } = this.appliedFilters$.value;\n const query = this.buildSearchQuery({ onlyDevices, onlyGroupsAndAssets });\n const queryString = this.queriesUtil.buildQuery(query);\n\n return this.assetNodeService.getAllInventories({ ...pagination, query: queryString, text });\n }\n}\n","import {\n ColumnConfig,\n getBasicInputArrayFormFieldConfig,\n gettext,\n SearchFilters\n} from '@c8y/ngx-components';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { AssetSearchService } from '../search.service';\nimport { AssetTypeGridColumn } from '@c8y/ngx-components/data-grid-columns/asset-type';\n\nexport class AssetTypeSearchGridColumn extends AssetTypeGridColumn {\n constructor(\n hideExtendedFilters: boolean,\n initialColumnConfig?: ColumnConfig,\n assetSearchService?: AssetSearchService,\n customPlaceholder?: string\n ) {\n super(initialColumnConfig);\n\n this.filterable = true;\n this.filteringConfig = this.getFilteringConfig(\n hideExtendedFilters,\n assetSearchService,\n customPlaceholder\n );\n }\n\n private getFilteringConfig(\n hideExtendedFilters: boolean,\n assetSearchService: AssetSearchService,\n customPlaceholder?: string\n ) {\n return {\n fields: [\n ...getBasicInputArrayFormFieldConfig({\n key: 'types',\n label: gettext('Show items with type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: customPlaceholder ? customPlaceholder : gettext('building`e.g. house`'),\n optional: !hideExtendedFilters\n }),\n {\n key: SearchFilters.ALL_FILTERS,\n type: 'checkbox',\n hide: hideExtendedFilters,\n props: {\n indeterminate: false,\n disabled: false,\n label: gettext('All'),\n click: (field, clickEvent) => {\n const { checked } = clickEvent.target;\n\n // Handle checked state\n if (checked) {\n field.form.get(SearchFilters.ONLY_DEVICES).setValue(true);\n field.form.get(SearchFilters.ONLY_GROUPS_AND_ASSETS).setValue(true);\n\n // Emit new state\n assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: checked,\n [SearchFilters.ONLY_DEVICES]: true,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: true\n });\n }\n }\n },\n expressionProperties: {\n 'props.indeterminate': (model: any, formState: any, field: FormlyFieldConfig) => {\n // Do nothing\n if (field.form.get(SearchFilters.ALL_FILTERS).value === true) {\n return;\n }\n // Set indeterminate state\n if (\n !field.form.get(SearchFilters.ONLY_DEVICES).value ||\n !field.form.get(SearchFilters.ONLY_GROUPS_AND_ASSETS).value\n ) {\n field.form.get(SearchFilters.ALL_FILTERS).setValue(null);\n return true;\n }\n return false;\n },\n 'props.disabled': (model: any, formState: any, field: FormlyFieldConfig) => {\n if (field.form.get(SearchFilters.ALL_FILTERS).value === true) {\n return true;\n }\n return false;\n }\n },\n hooks: {\n onInit: field => {\n // Get initial state\n const { allFilters } = assetSearchService?.appliedFilters$?.value;\n field.formControl.setValue(allFilters);\n }\n }\n },\n {\n key: SearchFilters.ONLY_DEVICES,\n type: 'checkbox',\n hide: hideExtendedFilters,\n props: {\n indeterminate: false,\n label: gettext('Show only devices'),\n click: (field, clickEvent) => {\n const oldFilterValue = assetSearchService.appliedFilters$.value;\n const { checked } = clickEvent.target;\n\n // Handle checked state\n if (checked) {\n field.form.get(SearchFilters.ALL_FILTERS).setValue(true);\n // Emit new state\n assetSearchService.appliedFilters$.next({\n ...oldFilterValue,\n [SearchFilters.ALL_FILTERS]: true,\n [SearchFilters.ONLY_DEVICES]: checked\n });\n return;\n }\n // Handle unchecked state\n field.form.get(SearchFilters.ALL_FILTERS).setValue(null); // Trigger indeterminate state\n field.form.get(SearchFilters.ONLY_GROUPS_AND_ASSETS).setValue(true);\n\n // Emit new state\n assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: null,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: true,\n [SearchFilters.ONLY_DEVICES]: checked\n });\n }\n },\n hooks: {\n onInit: field => {\n // Get initial state\n const { onlyDevices } = assetSearchService?.appliedFilters$?.value;\n field.formControl.setValue(onlyDevices);\n }\n }\n },\n {\n key: SearchFilters.ONLY_GROUPS_AND_ASSETS,\n type: 'checkbox',\n hide: hideExtendedFilters,\n props: {\n indeterminate: false,\n label: gettext('Show only groups and assets'),\n click: (field, clickEvent) => {\n const oldFilterValue = assetSearchService.appliedFilters$.value;\n const { checked } = clickEvent.target;\n\n // Handle checked state\n if (checked) {\n field.form.get(SearchFilters.ALL_FILTERS).setValue(true);\n // Emit new state\n assetSearchService.appliedFilters$.next({\n ...oldFilterValue,\n [SearchFilters.ALL_FILTERS]: true,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: checked\n });\n return;\n }\n // Handle unchecked state\n field.form.get(SearchFilters.ALL_FILTERS).setValue(null); // Trigger indeterminate state\n field.form.get(SearchFilters.ONLY_DEVICES).setValue(true);\n\n // Emit new state\n assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: null,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: checked,\n [SearchFilters.ONLY_DEVICES]: true\n });\n }\n },\n hooks: {\n onInit: field => {\n // Get initial state\n const { onlyGroupsAndAssets } = assetSearchService?.appliedFilters$?.value;\n field.formControl.setValue(onlyGroupsAndAssets);\n }\n }\n }\n ],\n /**\n * Adding devices and groups to a filter is already handled in {@link AssetSearchService#buildSearchQuery}\n * */\n getFilter(model: any): any {\n const filter: any = {};\n const ors = [];\n if (model.types?.length) {\n ors.push({ type: { __in: model.types } });\n }\n if (ors.length) {\n filter.__or = ors;\n }\n return filter;\n }\n };\n }\n}\n","import { InjectionToken } from '@angular/core';\nexport const SEARCH_CONFIG = new InjectionToken<SearchConfig>('SearchConfig');\n\n/**\n * Configuration object of the SearchModule.\n */\nexport interface SearchConfig {\n /**\n * Allows to enable advanced filters.\n * Default value: true.\n */\n showAdvancedFilters?: boolean;\n /**\n * Allows a custom placeholder.\n * Default value: ''\n */\n placeholder?: string;\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n Column,\n DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n DATA_GRID_CONFIGURATION_STRATEGY,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n GridConfigContextProvider,\n Pagination,\n Row,\n SearchFilters,\n ServerSideDataResult,\n UserPreferencesConfigurationStrategy,\n UserPreferencesGridConfigContext,\n gettext\n} from '@c8y/ngx-components';\nimport {\n AlarmsDeviceGridColumn,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport {\n DeleteAssetsModalComponent,\n DeleteModalCheckboxes,\n SubAssetsService\n} from '@c8y/ngx-components/sub-assets';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { AssetTypeSearchGridColumn } from './columns/asset-type-search-grid-column';\nimport { SEARCH_CONFIG, SearchConfig } from './search-config.model';\nimport { AssetSearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search-grid',\n templateUrl: './search-grid.component.html',\n providers: [\n {\n provide: DATA_GRID_CONFIGURATION_STRATEGY,\n useClass: UserPreferencesConfigurationStrategy\n },\n {\n provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n useExisting: SearchGridComponent\n }\n ]\n})\nexport class SearchGridComponent implements GridConfigContextProvider {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() title = '';\n @Input() loadingItemsLabel: string = gettext('Loading results…');\n @Input('columns') set _columns(value: Column[]) {\n if (value) {\n this.columns = value;\n } else {\n this.columns = this.assetSearchService.getDefaultColumns();\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.assetSearchService.getDefaultActionControls();\n }\n }\n @Input() selectable = false;\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.assetSearchService.getDefaultBulkActionControls();\n }\n }\n @Output() onColumnsChange: EventEmitter<Column[]> = new EventEmitter<Column[]>();\n\n @Input()\n searchText = '';\n\n @Input()\n filteringName: string;\n\n /** The name of the key where columns configuration will be stored. */\n @Input() columnsConfigKey: string;\n\n columns: Column[];\n pagination: Pagination = this.assetSearchService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.assetSearchService.getDefaultBulkActionControls();\n showAdvancedFilters: boolean;\n customPlaceholder: string;\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 assetSearchService: AssetSearchService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService,\n private subAssetsGridService: SubAssetsService,\n @Optional() @Inject(SEARCH_CONFIG) public moduleConfig: SearchConfig\n ) {\n this.showAdvancedFilters = moduleConfig?.showAdvancedFilters ?? false;\n this.customPlaceholder = moduleConfig?.placeholder ?? undefined;\n }\n\n getGridConfigContext(): UserPreferencesGridConfigContext {\n return { key: this.columnsConfigKey || this.assetSearchService.GRID_CONFIG_STORAGE_KEY };\n }\n\n ngOnInit(): void {\n if (!this.filteringName) {\n this.columns = [\n new AssetTypeSearchGridColumn(\n this.showAdvancedFilters,\n { sortOrder: 'desc' },\n this.assetSearchService,\n this.customPlaceholder\n ),\n ...this.assetSearchService.getDefaultColumns()\n ];\n } else {\n this.columns = [\n new AssetTypeSearchGridColumn(\n this.showAdvancedFilters,\n { sortOrder: 'desc' },\n this.assetSearchService\n ),\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 ngAfterViewInit() {\n this.setInitialFilterForTypeColumn();\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const response = await this.assetSearchService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n );\n const { res, data, paging } = response;\n\n if (paging.currentPage === 1) {\n this.sizeCount = 0;\n }\n this.sizeCount += data.length;\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res,\n data,\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 /**\n * TODO: find better solution. After new changes from DM team, we're running into race condition where\n * this.dataGrid.updateFiltering is executed before this.configurationStrategy.getConfig$() value is emitted.\n * Columns setter sets columns after this.dataGrid.updateFiltering executes its logic. Value of this.columns in\n * dataGrid.updateFiltering is just not yet set.\n */\n setTimeout(() => {\n this.dataGrid.updateFiltering(columnNames, action, false);\n }, 500);\n }\n }\n\n onColumnFilterReset(column: Column) {\n if (column.name === 'type') {\n this.assetSearchService.resetAppliedFilters();\n }\n }\n\n private onDeleteAsset(asset, parentRef) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox: !this.smartGroupsService.isSmartGroup(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 private setInitialFilterForTypeColumn() {\n const checkboxes = this.assetSearchService.appliedFilters$.value;\n // Set filter only when all checkboxes are not selected\n if (\n checkboxes[SearchFilters.ONLY_DEVICES] !== checkboxes[SearchFilters.ONLY_GROUPS_AND_ASSETS]\n ) {\n const externalFilterQuery = {\n [SearchFilters.ONLY_DEVICES]: checkboxes[SearchFilters.ONLY_DEVICES],\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: checkboxes[SearchFilters.ONLY_GROUPS_AND_ASSETS]\n };\n this.updateFiltering(['type'], {\n type: FilteringActionType.ApplyFilter,\n payload: {\n filteringModifier: {\n externalFilterQuery\n }\n }\n });\n }\n }\n}\n","<div class=\"card--grid--fullpage border-top border-bottom\">\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 (onColumnFilterReset)=\"onColumnFilterReset($event)\"\n >\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n</div>","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 = '';\n searchText = '';\n @ViewChild(SearchGridComponent, { static: true })\n searchGrid: SearchGridComponent;\n filteringName: string;\n\n private readonly WARNING_TIMEOUT_TIME = 3000;\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n private route: ActivatedRoute,\n private alert: AlertService\n ) {}\n\n ngOnInit() {\n this.route.queryParams.pipe(takeUntil(this.unsubscribe$)).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\n resetSearch() {\n if (this.searchGrid.dataGrid.searchText) {\n this.alert.add({\n text: gettext('Search reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: this.WARNING_TIMEOUT_TIME\n } as Alert);\n this.searchText = '';\n this.searchGrid.dataGrid.searchText = '';\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: this.WARNING_TIMEOUT_TIME\n } as Alert);\n this.searchGrid.dataGrid.clearFilters(false);\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.searchText = 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","<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchText\"\n [translateParams]=\"{\n searchHint: searchText\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]=\"searchText\" [filteringName]=\"filteringName\"></c8y-search-grid>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { gettext, SearchFilters } from '@c8y/ngx-components';\nimport { AssetSearchService } from './search.service';\n\nexport type Checkbox = {\n label: string;\n name: string;\n value: boolean;\n indeterminate?: boolean;\n isDisabled?: boolean;\n};\n\n@Component({\n selector: 'c8y-search-custom-filters',\n templateUrl: 'search-custom-filters.component.html'\n})\nexport class SearchCustomFiltersComponent implements OnInit {\n @Output() customDataQuery = new EventEmitter();\n @Output() refresh = new EventEmitter();\n\n checkboxesState: Array<Checkbox> = [\n {\n label: gettext('All'),\n name: SearchFilters.ALL_FILTERS,\n value: true,\n indeterminate: false,\n isDisabled: true\n },\n { label: gettext('Show only devices'), name: SearchFilters.ONLY_DEVICES, value: true },\n {\n label: gettext('Show only groups and assets'),\n name: SearchFilters.ONLY_GROUPS_AND_ASSETS,\n value: true\n }\n ];\n constructor(private assetSearchService: AssetSearchService) {}\n\n ngOnInit() {\n this.customDataQuery.next(this.assetSearchService.getGlobalSearchData);\n }\n\n onCheckboxChange(event: Event, checkbox: Checkbox): void {\n const { checked } = event.target as HTMLInputElement;\n\n if (checked == undefined) {\n return;\n }\n\n switch (checkbox.name) {\n case SearchFilters.ALL_FILTERS:\n this.onSelectAll(checkbox, checked);\n break;\n case SearchFilters.ONLY_DEVICES:\n this.onAllDevices(checkbox, checked);\n break;\n case SearchFilters.ONLY_GROUPS_AND_ASSETS:\n this.onGroupsAndAssets(checkbox, checked);\n break;\n }\n\n // Handle allFilters checkbox when ONLY_GROUPS_AND_ASSETS and ONLY_DEVICES are selected\n if (\n this.getCheckbox(SearchFilters.ONLY_DEVICES).value &&\n this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS).value\n ) {\n Object.assign(this.getCheckbox(SearchFilters.ALL_FILTERS), {\n indeterminate: false,\n isDisabled: true,\n value: true\n });\n }\n\n this.assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: this.getCheckbox(SearchFilters.ALL_FILTERS).value,\n [SearchFilters.ONLY_DEVICES]: this.getCheckbox(SearchFilters.ONLY_DEVICES).value,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS)\n .value\n });\n this.refresh.next(null);\n }\n\n private saveCheckboxValue(checkbox, value) {\n checkbox.value = value;\n }\n\n private onSelectAll(currentCheckbox: Checkbox, checked: boolean) {\n // Block unchecked state\n if (checked) {\n this.saveCheckboxValue(currentCheckbox, checked);\n }\n this.getCheckbox(SearchFilters.ALL_FILTERS).isDisabled = true;\n this.getCheckbox(SearchFilters.ONLY_DEVICES).value = true;\n this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS).value = true;\n }\n\n private onAllDevices(currentCheckbox: Checkbox, checked: boolean) {\n this.saveCheckboxValue(currentCheckbox, checked);\n\n Object.assign(this.getCheckbox(SearchFilters.ALL_FILTERS), {\n indeterminate: true,\n isDisabled: false,\n value: null\n });\n\n this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS).value = true;\n }\n\n private onGroupsAndAssets(currentCheckbox: Checkbox, checked: boolean) {\n this.saveCheckboxValue(currentCheckbox, checked);\n\n Object.assign(this.getCheckbox(SearchFilters.ALL_FILTERS), {\n indeterminate: true,\n isDisabled: false,\n value: null\n });\n\n this.getCheckbox(SearchFilters.ONLY_DEVICES).value = true;\n }\n\n private getCheckbox(checkboxName: SearchFilters): Checkbox {\n return this.checkboxesState.find(checkbox => checkbox.name === checkboxName);\n }\n}\n","<label class=\"c8y-checkbox\" *ngFor=\"let checkbox of checkboxesState\">\n <input\n type=\"checkbox\"\n [checked]=\"checkbox.value\"\n [indeterminate]=\"checkbox.indeterminate\"\n (click)=\"onCheckboxChange($event, checkbox)\"\n [attr.disabled]=\"checkbox.isDisabled ? true : null\"\n />\n <span></span>\n <span>{{ checkbox.label | translate }}</span>\n</label>\n","import { Component, EventEmitter, Inject, Optional } from '@angular/core';\nimport { IManagedObject, IResultList } from '@c8y/client';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { RouterService as C8yRouter } from '@c8y/ngx-components';\nimport { Observable, UnaryFunction } from 'rxjs';\nimport { SearchConfig, SEARCH_CONFIG } from './search-config.model';\n\n@Component({\n selector: 'c8y-search-action',\n templateUrl: './search-action.component.html'\n})\nexport class SearchActionComponent {\n showAdvancedFilters: boolean;\n customPlaceholder: string;\n customQuery: UnaryFunction<string, Observable<IResultList<IManagedObject>>>;\n typeaheadReload = new EventEmitter();\n\n constructor(\n private c8yRouter: C8yRouter,\n private router: Router,\n @Optional() @Inject(SEARCH_CONFIG) public moduleConfig: SearchConfig\n ) {\n this.showAdvancedFilters = moduleConfig?.showAdvancedFilters ?? true;\n this.customPlaceholder = moduleConfig?.placeholder;\n }\n\n triggerDataLoad() {\n this.typeaheadReload.next(null);\n }\n\n onSearch(on: string) {\n this.navigate(['/assetsearch'], {\n queryParams: { search: on },\n replaceUrl: true\n });\n }\n\n onFilter(on: string) {\n this.navigate(['/assetsearch'], {\n queryParams: { filter: on },\n replaceUrl: true\n });\n }\n\n onClick(mo: IManagedObject) {\n this.router.navigateByUrl(this.c8yRouter.getHref(mo, '/'));\n }\n\n private navigate(commands: any[], extras?: NavigationExtras) {\n this.router\n .navigateByUrl('/', { skipLocationChange: true })\n .then(() => this.router.navigate(commands, extras));\n }\n}\n","<c8y-search-input\n (filter)=\"onFilter($event)\"\n (search)=\"onSearch($event)\"\n (onClick)=\"onClick($event)\"\n [enableCustomTemplatePlaceholder]=\"true\"\n [customPlaceholder]=\"customPlaceholder\"\n [customDataQuery]=\"customQuery\"\n [externalTerm]=\"typeaheadReload\"\n>\n <c8y-search-custom-filters\n *ngIf=\"showAdvancedFilters\"\n class=\"d-flex gap-16 p-l-4\"\n (refresh)=\"triggerDataLoad()\"\n (customDataQuery)=\"customQuery = $event\"\n ></c8y-search-custom-filters>\n</c8y-search-input>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CoreModule, hookSearch, hookRoute, CoreSearchModule } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { SearchResultsComponent } from './search-results.component';\nimport { SearchGridComponent } from './search-grid.component';\nimport { SearchActionComponent } from './search-action.component';\nimport { AssetSearchService } from './search.service';\nimport { SearchCustomFiltersComponent } from './search-custom-filters.component';\nimport { SearchConfig, SEARCH_CONFIG } from './search-config.model';\nimport { AssetTypeCellRendererComponent } from '@c8y/ngx-components/data-grid-columns/asset-type';\n\n@NgModule({\n declarations: [\n SearchResultsComponent,\n SearchGridComponent,\n SearchActionComponent,\n SearchCustomFiltersComponent\n ],\n imports: [CoreModule, DeviceGridModule, CoreSearchModule, AssetTypeCellRendererComponent],\n exports: [SearchResultsComponent, SearchGridComponent],\n providers: [\n AssetSearchService,\n hookRoute({\n path: 'assetsearch',\n component: SearchResultsComponent\n }),\n hookSearch({\n template: SearchActionComponent,\n onSearch: undefined\n })\n ]\n})\nexport class SearchModule {\n static config(config: SearchConfig = {}): ModuleWithProviders<SearchModule> {\n return {\n ngModule: SearchModule,\n providers: [\n {\n provide: SEARCH_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6","i1","i2","i3","i4.SearchGridComponent","i1.AssetSearchService","i4.SearchCustomFiltersComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-search.mjs","sources":["../../search/search.service.ts","../../search/columns/asset-type-search-grid-column.ts","../../search/search-config.model.ts","../../search/search-grid.component.ts","../../search/search-grid.component.html","../../search/search-results.component.ts","../../search/search-results.component.html","../../search/search-custom-filters.component.ts","../../search/search-custom-filters.component.html","../../search/search-action.component.ts","../../search/search-action.component.html","../../search/search.module.ts","../../search/c8y-ngx-components-search.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { QueriesUtil } from '@c8y/client';\nimport {\n ActionControl,\n BulkActionControl,\n Column,\n Pagination,\n SearchFilters\n} from '@c8y/ngx-components';\nimport { AssetNodeService } from '@c8y/ngx-components/assets-navigator';\nimport {\n AlarmsDeviceGridColumn,\n DeviceGridService,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport { BehaviorSubject } from 'rxjs';\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetSearchService {\n GRID_CONFIG_STORAGE_KEY = 'search-grid-config';\n DEFAULT_PAGE_SIZE = 50;\n getGlobalSearchData = this.getSearchData.bind(this);\n appliedFilters$: BehaviorSubject<{\n [SearchFilters.ALL_FILTERS]: boolean;\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: boolean;\n [SearchFilters.ONLY_DEVICES]: boolean;\n }> = new BehaviorSubject({\n allFilters: true,\n onlyDevices: true,\n onlyGroupsAndAssets: true\n });\n private queriesUtil: QueriesUtil;\n constructor(\n private deviceGridService: DeviceGridService,\n private assetNodeService: AssetNodeService\n ) {\n this.queriesUtil = new QueriesUtil();\n }\n\n /**\n * Resets the status of applied filters, used during the search.\n * Applies only to filters: 'All', 'Show only devices', 'Show only groups and assets'.\n */\n resetAppliedFilters() {\n this.appliedFilters$.next({\n allFilters: true,\n onlyDevices: true,\n onlyGroupsAndAssets: true\n });\n }\n\n buildCombinedRootQueryFilter(columns: Column[], pagination: Pagination) {\n const rootQuery = {\n __filter: {\n __and: { __not: { __has: `c8y_IsBinary` } }\n }\n };\n\n const { onlyDevices, onlyGroupsAndAssets } = this.appliedFilters$.value;\n const searchQuery = this.buildSearchQuery({ onlyDevices, onlyGroupsAndAssets });\n\n const userQuery = this.deviceGridService.getQueryObj(columns, pagination);\n const queryPart = this.queriesUtil.addOrderbys(rootQuery, userQuery.__orderby, 'append');\n const fullQuery = this.queriesUtil.addAndFilter(queryPart, userQuery.__filter);\n const queryWithSearch = this.queriesUtil.addAndFilter(fullQuery, searchQuery);\n return this.queriesUtil.buildQuery(queryWithSearch);\n }\n\n async getData(columns: Column[], pagination: Pagination, text?: string) {\n const query = this.buildCombinedRootQueryFilter(columns, pagination);\n return this.assetNodeService.getAllInventories({ ...pagination, query, text });\n }\n\n getDefaultColumns(): Column[] {\n const defaultColumns = [\n new NameDeviceGridColumn({ sortOrder: 'asc' }),\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 return defaultColumns;\n }\n\n getDefaultActionControls(): ActionControl[] {\n return [];\n }\n\n getDefaultBulkActionControls(): BulkActionControl[] {\n return [];\n }\n\n getDefaultPagination(): Pagination {\n return {\n pageSize: 25,\n currentPage: 1\n };\n }\n\n private buildSearchQuery(model) {\n const filter: any = {};\n const ors = [];\n if (model.types?.length) {\n ors.push({ type: { __in: model.types } });\n }\n if (model.onlyDevices) {\n ors.push({ __has: 'c8y_IsDevice' });\n }\n if (model.onlyGroupsAndAssets) {\n ors.push({ __has: 'c8y_IsDynamicGroup' });\n ors.push({ __has: 'c8y_IsDeviceGroup' });\n }\n if (ors.length) {\n filter.__or = ors;\n }\n return filter;\n }\n\n private async getSearchData(\n text: string,\n pagination: Pagination = { currentPage: 1, pageSize: this.DEFAULT_PAGE_SIZE }\n ) {\n const { onlyDevices, onlyGroupsAndAssets } = this.appliedFilters$.value;\n const query = this.buildSearchQuery({ onlyDevices, onlyGroupsAndAssets });\n const queryString = this.queriesUtil.buildQuery(query);\n\n return this.assetNodeService.getAllInventories({ ...pagination, query: queryString, text });\n }\n}\n","import {\n ColumnConfig,\n getBasicInputArrayFormFieldConfig,\n gettext,\n SearchFilters\n} from '@c8y/ngx-components';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { AssetSearchService } from '../search.service';\nimport { AssetTypeGridColumn } from '@c8y/ngx-components/data-grid-columns/asset-type';\n\nexport class AssetTypeSearchGridColumn extends AssetTypeGridColumn {\n constructor(\n hideExtendedFilters: boolean,\n initialColumnConfig?: ColumnConfig,\n assetSearchService?: AssetSearchService,\n customPlaceholder?: string\n ) {\n super(initialColumnConfig);\n\n this.filterable = true;\n this.filteringConfig = this.getFilteringConfig(\n hideExtendedFilters,\n assetSearchService,\n customPlaceholder\n );\n }\n\n private getFilteringConfig(\n hideExtendedFilters: boolean,\n assetSearchService: AssetSearchService,\n customPlaceholder?: string\n ) {\n return {\n fields: [\n ...getBasicInputArrayFormFieldConfig({\n key: 'types',\n label: gettext('Show items with type'),\n addText: gettext('Add next`type`'),\n tooltip: gettext('Use * as a wildcard character'),\n placeholder: customPlaceholder ? customPlaceholder : gettext('building`e.g. house`'),\n optional: !hideExtendedFilters\n }),\n {\n key: SearchFilters.ALL_FILTERS,\n type: 'checkbox',\n hide: hideExtendedFilters,\n props: {\n indeterminate: false,\n disabled: false,\n label: gettext('All'),\n click: (field, clickEvent) => {\n const { checked } = clickEvent.target;\n\n // Handle checked state\n if (checked) {\n field.form.get(SearchFilters.ONLY_DEVICES).setValue(true);\n field.form.get(SearchFilters.ONLY_GROUPS_AND_ASSETS).setValue(true);\n\n // Emit new state\n assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: checked,\n [SearchFilters.ONLY_DEVICES]: true,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: true\n });\n }\n }\n },\n expressionProperties: {\n 'props.indeterminate': (model: any, formState: any, field: FormlyFieldConfig) => {\n // Do nothing\n if (field.form.get(SearchFilters.ALL_FILTERS).value === true) {\n return;\n }\n // Set indeterminate state\n if (\n !field.form.get(SearchFilters.ONLY_DEVICES).value ||\n !field.form.get(SearchFilters.ONLY_GROUPS_AND_ASSETS).value\n ) {\n field.form.get(SearchFilters.ALL_FILTERS).setValue(null);\n return true;\n }\n return false;\n },\n 'props.disabled': (model: any, formState: any, field: FormlyFieldConfig) => {\n if (field.form.get(SearchFilters.ALL_FILTERS).value === true) {\n return true;\n }\n return false;\n }\n },\n hooks: {\n onInit: field => {\n // Get initial state\n const { allFilters } = assetSearchService?.appliedFilters$?.value;\n field.formControl.setValue(allFilters);\n }\n }\n },\n {\n key: SearchFilters.ONLY_DEVICES,\n type: 'checkbox',\n hide: hideExtendedFilters,\n props: {\n indeterminate: false,\n label: gettext('Show only devices'),\n click: (field, clickEvent) => {\n const oldFilterValue = assetSearchService.appliedFilters$.value;\n const { checked } = clickEvent.target;\n\n // Handle checked state\n if (checked) {\n field.form.get(SearchFilters.ALL_FILTERS).setValue(true);\n // Emit new state\n assetSearchService.appliedFilters$.next({\n ...oldFilterValue,\n [SearchFilters.ALL_FILTERS]: true,\n [SearchFilters.ONLY_DEVICES]: checked\n });\n return;\n }\n // Handle unchecked state\n field.form.get(SearchFilters.ALL_FILTERS).setValue(null); // Trigger indeterminate state\n field.form.get(SearchFilters.ONLY_GROUPS_AND_ASSETS).setValue(true);\n\n // Emit new state\n assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: null,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: true,\n [SearchFilters.ONLY_DEVICES]: checked\n });\n }\n },\n hooks: {\n onInit: field => {\n // Get initial state\n const { onlyDevices } = assetSearchService?.appliedFilters$?.value;\n field.formControl.setValue(onlyDevices);\n }\n }\n },\n {\n key: SearchFilters.ONLY_GROUPS_AND_ASSETS,\n type: 'checkbox',\n hide: hideExtendedFilters,\n props: {\n indeterminate: false,\n label: gettext('Show only groups and assets'),\n click: (field, clickEvent) => {\n const oldFilterValue = assetSearchService.appliedFilters$.value;\n const { checked } = clickEvent.target;\n\n // Handle checked state\n if (checked) {\n field.form.get(SearchFilters.ALL_FILTERS).setValue(true);\n // Emit new state\n assetSearchService.appliedFilters$.next({\n ...oldFilterValue,\n [SearchFilters.ALL_FILTERS]: true,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: checked\n });\n return;\n }\n // Handle unchecked state\n field.form.get(SearchFilters.ALL_FILTERS).setValue(null); // Trigger indeterminate state\n field.form.get(SearchFilters.ONLY_DEVICES).setValue(true);\n\n // Emit new state\n assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: null,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: checked,\n [SearchFilters.ONLY_DEVICES]: true\n });\n }\n },\n hooks: {\n onInit: field => {\n // Get initial state\n const { onlyGroupsAndAssets } = assetSearchService?.appliedFilters$?.value;\n field.formControl.setValue(onlyGroupsAndAssets);\n }\n }\n }\n ],\n /**\n * Adding devices and groups to a filter is already handled in {@link AssetSearchService#buildSearchQuery}\n * */\n getFilter(model: any): any {\n const filter: any = {};\n const ors = [];\n if (model.types?.length) {\n ors.push({ type: { __in: model.types } });\n }\n if (ors.length) {\n filter.__or = ors;\n }\n return filter;\n }\n };\n }\n}\n","import { InjectionToken } from '@angular/core';\nexport const SEARCH_CONFIG = new InjectionToken<SearchConfig>('SearchConfig');\n\n/**\n * Configuration object of the SearchModule.\n */\nexport interface SearchConfig {\n /**\n * Allows to enable advanced filters.\n * Default value: true.\n */\n showAdvancedFilters?: boolean;\n /**\n * Allows a custom placeholder.\n * Default value: ''\n */\n placeholder?: string;\n}\n","import { Component, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';\nimport { IManagedObject, SmartGroupsService } from '@c8y/client';\nimport {\n ActionControl,\n BuiltInActionType,\n BulkActionControl,\n Column,\n DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n DATA_GRID_CONFIGURATION_STRATEGY,\n DataGridComponent,\n DataSourceModifier,\n FilteringActionType,\n FilteringModifier,\n GridConfigContextProvider,\n Pagination,\n Row,\n SearchFilters,\n ServerSideDataResult,\n UserPreferencesConfigurationStrategy,\n UserPreferencesGridConfigContext,\n gettext\n} from '@c8y/ngx-components';\nimport {\n AlarmsDeviceGridColumn,\n ImeiDeviceGridColumn,\n ModelDeviceGridColumn,\n NameDeviceGridColumn,\n RegistrationDateDeviceGridColumn,\n SerialNumberDeviceGridColumn,\n SystemIdDeviceGridColumn\n} from '@c8y/ngx-components/device-grid';\nimport {\n DeleteAssetsModalComponent,\n DeleteModalCheckboxes,\n SubAssetsService\n} from '@c8y/ngx-components/sub-assets';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { AssetTypeSearchGridColumn } from './columns/asset-type-search-grid-column';\nimport { SEARCH_CONFIG, SearchConfig } from './search-config.model';\nimport { AssetSearchService } from './search.service';\n\n@Component({\n selector: 'c8y-search-grid',\n templateUrl: './search-grid.component.html',\n providers: [\n {\n provide: DATA_GRID_CONFIGURATION_STRATEGY,\n useClass: UserPreferencesConfigurationStrategy\n },\n {\n provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,\n useExisting: SearchGridComponent\n }\n ]\n})\nexport class SearchGridComponent implements GridConfigContextProvider {\n @Input('parent-group') parentGroup: IManagedObject;\n @Input() title = '';\n @Input() loadingItemsLabel: string = gettext('Loading results…');\n @Input('columns') set _columns(value: Column[]) {\n if (value) {\n this.columns = value;\n } else {\n this.columns = this.assetSearchService.getDefaultColumns();\n }\n }\n @Input('pagination') set _pagination(value: Pagination) {\n if (value) {\n this.pagination = value;\n }\n }\n @Input('actionControls') set _actionControls(value: ActionControl[]) {\n if (value) {\n this.actionControls = value;\n } else {\n this.actionControls = this.assetSearchService.getDefaultActionControls();\n }\n }\n @Input() selectable = false;\n @Input('bulkActionControls') set _bulkActionControls(value: BulkActionControl[]) {\n if (value) {\n this.bulkActionControls = value;\n } else {\n this.bulkActionControls = this.assetSearchService.getDefaultBulkActionControls();\n }\n }\n @Output() onColumnsChange: EventEmitter<Column[]> = new EventEmitter<Column[]>();\n\n @Input()\n searchText = '';\n\n @Input()\n filteringName: string;\n\n /** The name of the key where columns configuration will be stored. */\n @Input() columnsConfigKey: string;\n\n columns: Column[];\n pagination: Pagination = this.assetSearchService.getDefaultPagination();\n actionControls: ActionControl[];\n bulkActionControls: BulkActionControl[] = this.assetSearchService.getDefaultBulkActionControls();\n showAdvancedFilters: boolean;\n customPlaceholder: string;\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 assetSearchService: AssetSearchService,\n private bsModalService: BsModalService,\n private smartGroupsService: SmartGroupsService,\n private subAssetsGridService: SubAssetsService,\n @Optional() @Inject(SEARCH_CONFIG) public moduleConfig: SearchConfig\n ) {\n this.showAdvancedFilters = moduleConfig?.showAdvancedFilters ?? false;\n this.customPlaceholder = moduleConfig?.placeholder ?? undefined;\n }\n\n getGridConfigContext(): UserPreferencesGridConfigContext {\n return { key: this.columnsConfigKey || this.assetSearchService.GRID_CONFIG_STORAGE_KEY };\n }\n\n ngOnInit(): void {\n if (!this.filteringName) {\n this.columns = [\n new AssetTypeSearchGridColumn(\n this.showAdvancedFilters,\n { sortOrder: 'desc' },\n this.assetSearchService,\n this.customPlaceholder\n ),\n ...this.assetSearchService.getDefaultColumns()\n ];\n } else {\n this.columns = [\n new AssetTypeSearchGridColumn(\n this.showAdvancedFilters,\n { sortOrder: 'desc' },\n this.assetSearchService\n ),\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 ngAfterViewInit() {\n this.setInitialFilterForTypeColumn();\n }\n\n trackByName(_index, column: Column): string {\n return column.name;\n }\n\n async onDataSourceModifier(\n dataSourceModifier: DataSourceModifier\n ): Promise<ServerSideDataResult> {\n const response = await this.assetSearchService.getData(\n dataSourceModifier.columns,\n dataSourceModifier.pagination,\n dataSourceModifier.searchText\n );\n const { res, data, paging } = response;\n\n if (paging.currentPage === 1) {\n this.sizeCount = 0;\n }\n this.sizeCount += data.length;\n this.onColumnsChange.emit(dataSourceModifier.columns);\n\n return {\n res,\n data,\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 /**\n * TODO: find better solution. After new changes from DM team, we're running into race condition where\n * this.dataGrid.updateFiltering is executed before this.configurationStrategy.getConfig$() value is emitted.\n * Columns setter sets columns after this.dataGrid.updateFiltering executes its logic. Value of this.columns in\n * dataGrid.updateFiltering is just not yet set.\n */\n setTimeout(() => {\n this.dataGrid.updateFiltering(columnNames, action, false);\n }, 500);\n }\n }\n\n onColumnFilterReset(column: Column) {\n if (column.name === 'type') {\n this.assetSearchService.resetAppliedFilters();\n }\n }\n\n private onDeleteAsset(asset, parentRef) {\n const initialState = {\n showWithDeviceUserCheckbox: this.subAssetsGridService.shouldShowWithDeviceUserCheckbox(asset),\n asset,\n showWithCascadeCheckbox: !this.smartGroupsService.isSmartGroup(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 private setInitialFilterForTypeColumn() {\n const checkboxes = this.assetSearchService.appliedFilters$.value;\n // Set filter only when all checkboxes are not selected\n if (\n checkboxes[SearchFilters.ONLY_DEVICES] !== checkboxes[SearchFilters.ONLY_GROUPS_AND_ASSETS]\n ) {\n const externalFilterQuery = {\n [SearchFilters.ONLY_DEVICES]: checkboxes[SearchFilters.ONLY_DEVICES],\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: checkboxes[SearchFilters.ONLY_GROUPS_AND_ASSETS]\n };\n this.updateFiltering(['type'], {\n type: FilteringActionType.ApplyFilter,\n payload: {\n filteringModifier: {\n externalFilterQuery\n }\n }\n });\n }\n }\n}\n","<div class=\"card--grid--fullpage border-top border-bottom\">\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 (onColumnFilterReset)=\"onColumnFilterReset($event)\"\n >\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n\n <c8y-ui-empty-state\n [icon]=\"'search'\"\n [title]=\"'No results to display.' | translate\"\n [subtitle]=\"'Refine your search terms or check your spelling.' | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n </c8y-data-grid>\n</div>","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 = '';\n searchText = '';\n @ViewChild(SearchGridComponent, { static: true })\n searchGrid: SearchGridComponent;\n filteringName: string;\n\n private readonly WARNING_TIMEOUT_TIME = 3000;\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n private route: ActivatedRoute,\n private alert: AlertService\n ) {}\n\n ngOnInit() {\n this.route.queryParams.pipe(takeUntil(this.unsubscribe$)).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\n resetSearch() {\n if (this.searchGrid.dataGrid.searchText) {\n this.alert.add({\n text: gettext('Search reset. Full text search does not support filtering.'),\n type: Status.WARNING,\n timeout: this.WARNING_TIMEOUT_TIME\n } as Alert);\n this.searchText = '';\n this.searchGrid.dataGrid.searchText = '';\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: this.WARNING_TIMEOUT_TIME\n } as Alert);\n this.searchGrid.dataGrid.clearFilters(false);\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.searchText = 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","<c8y-title>\n <span translate class=\"p-r-4\">Search</span>\n <small\n ngNonBindable\n translate\n *ngIf=\"searchText\"\n [translateParams]=\"{\n searchHint: searchText\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]=\"searchText\" [filteringName]=\"filteringName\"></c8y-search-grid>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { gettext, SearchFilters } from '@c8y/ngx-components';\nimport { AssetSearchService } from './search.service';\n\nexport type Checkbox = {\n label: string;\n name: string;\n value: boolean;\n indeterminate?: boolean;\n isDisabled?: boolean;\n};\n\n@Component({\n selector: 'c8y-search-custom-filters',\n templateUrl: 'search-custom-filters.component.html'\n})\nexport class SearchCustomFiltersComponent implements OnInit {\n @Output() customDataQuery = new EventEmitter();\n @Output() refresh = new EventEmitter();\n\n checkboxesState: Array<Checkbox> = [\n {\n label: gettext('All'),\n name: SearchFilters.ALL_FILTERS,\n value: true,\n indeterminate: false,\n isDisabled: true\n },\n { label: gettext('Show only devices'), name: SearchFilters.ONLY_DEVICES, value: true },\n {\n label: gettext('Show only groups and assets'),\n name: SearchFilters.ONLY_GROUPS_AND_ASSETS,\n value: true\n }\n ];\n constructor(private assetSearchService: AssetSearchService) {}\n\n ngOnInit() {\n this.customDataQuery.next(this.assetSearchService.getGlobalSearchData);\n }\n\n onCheckboxChange(event: Event, checkbox: Checkbox): void {\n const { checked } = event.target as HTMLInputElement;\n\n if (checked == undefined) {\n return;\n }\n\n switch (checkbox.name) {\n case SearchFilters.ALL_FILTERS:\n this.onSelectAll(checkbox, checked);\n break;\n case SearchFilters.ONLY_DEVICES:\n this.onAllDevices(checkbox, checked);\n break;\n case SearchFilters.ONLY_GROUPS_AND_ASSETS:\n this.onGroupsAndAssets(checkbox, checked);\n break;\n }\n\n // Handle allFilters checkbox when ONLY_GROUPS_AND_ASSETS and ONLY_DEVICES are selected\n if (\n this.getCheckbox(SearchFilters.ONLY_DEVICES).value &&\n this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS).value\n ) {\n Object.assign(this.getCheckbox(SearchFilters.ALL_FILTERS), {\n indeterminate: false,\n isDisabled: true,\n value: true\n });\n }\n\n this.assetSearchService.appliedFilters$.next({\n [SearchFilters.ALL_FILTERS]: this.getCheckbox(SearchFilters.ALL_FILTERS).value,\n [SearchFilters.ONLY_DEVICES]: this.getCheckbox(SearchFilters.ONLY_DEVICES).value,\n [SearchFilters.ONLY_GROUPS_AND_ASSETS]: this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS)\n .value\n });\n this.refresh.next(null);\n }\n\n private saveCheckboxValue(checkbox, value) {\n checkbox.value = value;\n }\n\n private onSelectAll(currentCheckbox: Checkbox, checked: boolean) {\n // Block unchecked state\n if (checked) {\n this.saveCheckboxValue(currentCheckbox, checked);\n }\n this.getCheckbox(SearchFilters.ALL_FILTERS).isDisabled = true;\n this.getCheckbox(SearchFilters.ONLY_DEVICES).value = true;\n this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS).value = true;\n }\n\n private onAllDevices(currentCheckbox: Checkbox, checked: boolean) {\n this.saveCheckboxValue(currentCheckbox, checked);\n\n Object.assign(this.getCheckbox(SearchFilters.ALL_FILTERS), {\n indeterminate: true,\n isDisabled: false,\n value: null\n });\n\n this.getCheckbox(SearchFilters.ONLY_GROUPS_AND_ASSETS).value = true;\n }\n\n private onGroupsAndAssets(currentCheckbox: Checkbox, checked: boolean) {\n this.saveCheckboxValue(currentCheckbox, checked);\n\n Object.assign(this.getCheckbox(SearchFilters.ALL_FILTERS), {\n indeterminate: true,\n isDisabled: false,\n value: null\n });\n\n this.getCheckbox(SearchFilters.ONLY_DEVICES).value = true;\n }\n\n private getCheckbox(checkboxName: SearchFilters): Checkbox {\n return this.checkboxesState.find(checkbox => checkbox.name === checkboxName);\n }\n}\n","<label class=\"c8y-checkbox\" *ngFor=\"let checkbox of checkboxesState\">\n <input\n type=\"checkbox\"\n [checked]=\"checkbox.value\"\n [indeterminate]=\"checkbox.indeterminate\"\n (click)=\"onCheckboxChange($event, checkbox)\"\n [attr.disabled]=\"checkbox.isDisabled ? true : null\"\n />\n <span></span>\n <span>{{ checkbox.label | translate }}</span>\n</label>\n","import { Component, EventEmitter, Inject, Optional } from '@angular/core';\nimport { IManagedObject, IResultList } from '@c8y/client';\nimport { NavigationExtras, Router } from '@angular/router';\nimport { RouterService as C8yRouter } from '@c8y/ngx-components';\nimport { Observable, UnaryFunction } from 'rxjs';\nimport { SearchConfig, SEARCH_CONFIG } from './search-config.model';\n\n@Component({\n selector: 'c8y-search-action',\n templateUrl: './search-action.component.html'\n})\nexport class SearchActionComponent {\n showAdvancedFilters: boolean;\n customPlaceholder: string;\n customQuery: UnaryFunction<string, Observable<IResultList<IManagedObject>>>;\n typeaheadReload = new EventEmitter();\n\n constructor(\n private c8yRouter: C8yRouter,\n private router: Router,\n @Optional() @Inject(SEARCH_CONFIG) public moduleConfig: SearchConfig\n ) {\n this.showAdvancedFilters = moduleConfig?.showAdvancedFilters ?? true;\n this.customPlaceholder = moduleConfig?.placeholder;\n }\n\n triggerDataLoad() {\n this.typeaheadReload.next(null);\n }\n\n onSearch(on: string) {\n this.navigate(['/assetsearch'], {\n queryParams: { search: on },\n replaceUrl: true\n });\n }\n\n onFilter(on: string) {\n this.navigate(['/assetsearch'], {\n queryParams: { filter: on },\n replaceUrl: true\n });\n }\n\n onClick(mo: IManagedObject) {\n this.router.navigateByUrl(this.c8yRouter.getHref(mo, '/'));\n }\n\n private navigate(commands: any[], extras?: NavigationExtras) {\n this.router\n .navigateByUrl('/', { skipLocationChange: true })\n .then(() => this.router.navigate(commands, extras));\n }\n}\n","<c8y-search-input\n (filter)=\"onFilter($event)\"\n (search)=\"onSearch($event)\"\n (onClick)=\"onClick($event)\"\n [enableCustomTemplatePlaceholder]=\"true\"\n [customPlaceholder]=\"customPlaceholder\"\n [customDataQuery]=\"customQuery\"\n [externalTerm]=\"typeaheadReload\"\n>\n <c8y-search-custom-filters\n *ngIf=\"showAdvancedFilters\"\n class=\"d-flex gap-16 p-l-4 p-l-24 p-r-24\"\n (refresh)=\"triggerDataLoad()\"\n (customDataQuery)=\"customQuery = $event\"\n ></c8y-search-custom-filters>\n</c8y-search-input>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CoreModule, hookSearch, hookRoute, CoreSearchModule } from '@c8y/ngx-components';\nimport { DeviceGridModule } from '@c8y/ngx-components/device-grid';\nimport { SearchResultsComponent } from './search-results.component';\nimport { SearchGridComponent } from './search-grid.component';\nimport { SearchActionComponent } from './search-action.component';\nimport { AssetSearchService } from './search.service';\nimport { SearchCustomFiltersComponent } from './search-custom-filters.component';\nimport { SearchConfig, SEARCH_CONFIG } from './search-config.model';\nimport { AssetTypeCellRendererComponent } from '@c8y/ngx-components/data-grid-columns/asset-type';\n\n@NgModule({\n declarations: [\n SearchResultsComponent,\n SearchGridComponent,\n SearchActionComponent,\n SearchCustomFiltersComponent\n ],\n imports: [CoreModule, DeviceGridModule, CoreSearchModule, AssetTypeCellRendererComponent],\n exports: [SearchResultsComponent, SearchGridComponent],\n providers: [\n AssetSearchService,\n hookRoute({\n path: 'assetsearch',\n component: SearchResultsComponent\n }),\n hookSearch({\n template: SearchActionComponent,\n onSearch: undefined\n })\n ]\n})\nexport class SearchModule {\n static config(config: SearchConfig = {}): ModuleWithProviders<SearchModule> {\n return {\n ngModule: SearchModule,\n providers: [\n {\n provide: SEARCH_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i6","i1","i2","i3","i4.SearchGridComponent","i1.AssetSearchService","i4.SearchCustomFiltersComponent"],"mappings":"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"}
|