UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

89 lines 12.9 kB
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { DATA_GRID_CONFIGURATION_CONTEXT, DATA_GRID_CONFIGURATION_STRATEGY, FilteringActionType, UserPreferencesConfigurationStrategy } from '@c8y/ngx-components'; import { AlarmsDeviceGridColumn, DeviceGridComponent, GroupDeviceGridColumn, ModelDeviceGridColumn, NameDeviceGridColumn, RegistrationDateDeviceGridColumn, StatusDeviceGridColumn, TypeDeviceGridColumn } from '@c8y/ngx-components/device-grid'; import { Observable, Subject } from 'rxjs'; import { distinctUntilChanged, takeUntil } from 'rxjs/operators'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/ngx-components"; import * as i2 from "@c8y/ngx-components/device-grid"; const GRID_CONFIG_KEY = 'device-grid-bulk'; export class DeviceSelectorComponent { constructor() { this.typeColumn = new TypeDeviceGridColumn(); this.onDeviceQueryStringChange = new EventEmitter(); this.columns = [ new StatusDeviceGridColumn(), new NameDeviceGridColumn(), this.typeColumn, new ModelDeviceGridColumn(), new GroupDeviceGridColumn(), new RegistrationDateDeviceGridColumn(), new AlarmsDeviceGridColumn() ]; this.unsubscribe$ = new Subject(); } static { this.GRID_CONFIG_CONTEXT = { key: GRID_CONFIG_KEY, configFilter: { filter: false } }; } ngOnInit() { if (this.deviceTypes) { this.deviceTypes .pipe(distinctUntilChanged(), takeUntil(this.unsubscribe$)) .subscribe((types) => { this.deviceGrid.updateFiltering([this.typeColumn.name], { type: types && types.length ? FilteringActionType.ApplyFilter : FilteringActionType.ResetFilter, payload: types ? { filteringModifier: { externalFilterQuery: { types } } } : undefined }); }); } } ngOnDestroy() { this.unsubscribe$.next(true); this.unsubscribe$.complete(); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DeviceSelectorComponent, selector: "c8y-device-selector", inputs: { deviceTypes: "deviceTypes" }, outputs: { onDeviceQueryStringChange: "onDeviceQueryStringChange" }, providers: [ { provide: DATA_GRID_CONFIGURATION_STRATEGY, useClass: UserPreferencesConfigurationStrategy }, { provide: DATA_GRID_CONFIGURATION_CONTEXT, useValue: DeviceSelectorComponent.GRID_CONFIG_CONTEXT } ], viewQueries: [{ propertyName: "deviceGrid", first: true, predicate: DeviceGridComponent, descendants: true, static: true }], ngImport: i0, template: "<c8y-device-grid\n [title]=\"'Target devices' | translate\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [showSearch]=\"false\"\n (onDeviceQueryStringChange)=\"onDeviceQueryStringChange.emit($event)\"\n c8yProductExperience\n [actionName]=\"'bulkOperations'\"\n></c8y-device-grid>\n", dependencies: [{ kind: "directive", type: i1.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "component", type: i2.DeviceGridComponent, selector: "c8y-device-grid", inputs: ["dataCallback", "refresh", "title", "loadMoreItemsLabel", "loadingItemsLabel", "legacyConfigKey", "legacyFilterKey", "columns", "pagination", "infiniteScroll", "actionControls", "selectable", "singleSelection", "baseQuery", "bulkActionControls", "headerActionControls", "childDeviceGrid", "parentDeviceId", "withChildren", "showSearch", "activeClassName"], outputs: ["onColumnsChange", "onFilterChange", "onDeviceQueryStringChange", "itemsSelect"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceSelectorComponent, decorators: [{ type: Component, args: [{ selector: 'c8y-device-selector', providers: [ { provide: DATA_GRID_CONFIGURATION_STRATEGY, useClass: UserPreferencesConfigurationStrategy }, { provide: DATA_GRID_CONFIGURATION_CONTEXT, useValue: DeviceSelectorComponent.GRID_CONFIG_CONTEXT } ], template: "<c8y-device-grid\n [title]=\"'Target devices' | translate\"\n [columns]=\"columns\"\n [infiniteScroll]=\"'auto'\"\n [showSearch]=\"false\"\n (onDeviceQueryStringChange)=\"onDeviceQueryStringChange.emit($event)\"\n c8yProductExperience\n [actionName]=\"'bulkOperations'\"\n></c8y-device-grid>\n" }] }], propDecorators: { deviceGrid: [{ type: ViewChild, args: [DeviceGridComponent, { static: true }] }], deviceTypes: [{ type: Input }], onDeviceQueryStringChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL29wZXJhdGlvbnMvZGV2aWNlLXNlbGVjdG9yL2RldmljZS1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL2RldmljZS1zZWxlY3Rvci9kZXZpY2Utc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsbUJBQW1CLEVBQ25CLG9DQUFvQyxFQUVyQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGdDQUFnQyxFQUNoQyxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRWpFLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDO0FBZTNDLE1BQU0sT0FBTyx1QkFBdUI7SUFkcEM7UUE0QkUsZUFBVSxHQUFXLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUdoRCw4QkFBeUIsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU3RSxZQUFPLEdBQWE7WUFDbEIsSUFBSSxzQkFBc0IsRUFBRTtZQUM1QixJQUFJLG9CQUFvQixFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVO1lBQ2YsSUFBSSxxQkFBcUIsRUFBRTtZQUMzQixJQUFJLHFCQUFxQixFQUFFO1lBQzNCLElBQUksZ0NBQWdDLEVBQUU7WUFDdEMsSUFBSSxzQkFBc0IsRUFBRTtTQUM3QixDQUFDO1FBRU0saUJBQVksR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztLQThCeEQ7YUExRGlCLHdCQUFtQixHQUFxQztRQUN0RSxHQUFHLEVBQUUsZUFBZTtRQUNwQixZQUFZLEVBQUU7WUFDWixNQUFNLEVBQUUsS0FBSztTQUNkO0tBQ0YsQUFMa0MsQ0FLakM7SUF5QkYsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXO2lCQUNiLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQzFELFNBQVMsQ0FBQyxDQUFDLEtBQWUsRUFBRSxFQUFFO2dCQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3RELElBQUksRUFDRixLQUFLLElBQUksS0FBSyxDQUFDLE1BQU07d0JBQ25CLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXO3dCQUNqQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsV0FBVztvQkFDckMsT0FBTyxFQUFFLEtBQUs7d0JBQ1osQ0FBQyxDQUFDOzRCQUNFLGlCQUFpQixFQUFFO2dDQUNqQixtQkFBbUIsRUFBRTtvQ0FDbkIsS0FBSztpQ0FDTjs2QkFDRjt5QkFDRjt3QkFDSCxDQUFDLENBQUMsU0FBUztpQkFDZCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzsrR0ExRFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkpBWHZCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGdDQUFnQztnQkFDekMsUUFBUSxFQUFFLG9DQUFvQzthQUMvQztZQUNEO2dCQUNFLE9BQU8sRUFBRSwrQkFBK0I7Z0JBQ3hDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxtQkFBbUI7YUFDdEQ7U0FDRixzRUFVVSxtQkFBbUIsOERDckRoQyw4U0FTQTs7NEZEb0NhLHVCQUF1QjtrQkFkbkMsU0FBUzsrQkFDRSxxQkFBcUIsYUFFcEI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLG9DQUFvQzt5QkFDL0M7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLCtCQUErQjs0QkFDeEMsUUFBUSxFQUFFLHdCQUF3QixtQkFBbUI7eUJBQ3REO3FCQUNGOzhCQVdELFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWhELFdBQVc7c0JBRFYsS0FBSztnQkFNTix5QkFBeUI7c0JBRHhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENvbHVtbixcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fQ09OVEVYVCxcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fU1RSQVRFR1ksXG4gIEZpbHRlcmluZ0FjdGlvblR5cGUsXG4gIFVzZXJQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb25TdHJhdGVneSxcbiAgVXNlclByZWZlcmVuY2VzR3JpZENvbmZpZ0NvbnRleHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBBbGFybXNEZXZpY2VHcmlkQ29sdW1uLFxuICBEZXZpY2VHcmlkQ29tcG9uZW50LFxuICBHcm91cERldmljZUdyaWRDb2x1bW4sXG4gIE1vZGVsRGV2aWNlR3JpZENvbHVtbixcbiAgTmFtZURldmljZUdyaWRDb2x1bW4sXG4gIFJlZ2lzdHJhdGlvbkRhdGVEZXZpY2VHcmlkQ29sdW1uLFxuICBTdGF0dXNEZXZpY2VHcmlkQ29sdW1uLFxuICBUeXBlRGV2aWNlR3JpZENvbHVtblxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2RldmljZS1ncmlkJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IEdSSURfQ09ORklHX0tFWSA9ICdkZXZpY2UtZ3JpZC1idWxrJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXZpY2Utc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJ2RldmljZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IERBVEFfR1JJRF9DT05GSUdVUkFUSU9OX1NUUkFURUdZLFxuICAgICAgdXNlQ2xhc3M6IFVzZXJQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb25TdHJhdGVneVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogREFUQV9HUklEX0NPTkZJR1VSQVRJT05fQ09OVEVYVCxcbiAgICAgIHVzZVZhbHVlOiBEZXZpY2VTZWxlY3RvckNvbXBvbmVudC5HUklEX0NPTkZJR19DT05URVhUXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERldmljZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0aWMgcmVhZG9ubHkgR1JJRF9DT05GSUdfQ09OVEVYVDogVXNlclByZWZlcmVuY2VzR3JpZENvbmZpZ0NvbnRleHQgPSB7XG4gICAga2V5OiBHUklEX0NPTkZJR19LRVksXG4gICAgY29uZmlnRmlsdGVyOiB7XG4gICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgfVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoRGV2aWNlR3JpZENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgZGV2aWNlR3JpZDogRGV2aWNlR3JpZENvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBkZXZpY2VUeXBlczogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG5cbiAgdHlwZUNvbHVtbjogQ29sdW1uID0gbmV3IFR5cGVEZXZpY2VHcmlkQ29sdW1uKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRGV2aWNlUXVlcnlTdHJpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgY29sdW1uczogQ29sdW1uW10gPSBbXG4gICAgbmV3IFN0YXR1c0RldmljZUdyaWRDb2x1bW4oKSxcbiAgICBuZXcgTmFtZURldmljZUdyaWRDb2x1bW4oKSxcbiAgICB0aGlzLnR5cGVDb2x1bW4sXG4gICAgbmV3IE1vZGVsRGV2aWNlR3JpZENvbHVtbigpLFxuICAgIG5ldyBHcm91cERldmljZUdyaWRDb2x1bW4oKSxcbiAgICBuZXcgUmVnaXN0cmF0aW9uRGF0ZURldmljZUdyaWRDb2x1bW4oKSxcbiAgICBuZXcgQWxhcm1zRGV2aWNlR3JpZENvbHVtbigpXG4gIF07XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRldmljZVR5cGVzKSB7XG4gICAgICB0aGlzLmRldmljZVR5cGVzXG4gICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHR5cGVzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgIHRoaXMuZGV2aWNlR3JpZC51cGRhdGVGaWx0ZXJpbmcoW3RoaXMudHlwZUNvbHVtbi5uYW1lXSwge1xuICAgICAgICAgICAgdHlwZTpcbiAgICAgICAgICAgICAgdHlwZXMgJiYgdHlwZXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgPyBGaWx0ZXJpbmdBY3Rpb25UeXBlLkFwcGx5RmlsdGVyXG4gICAgICAgICAgICAgICAgOiBGaWx0ZXJpbmdBY3Rpb25UeXBlLlJlc2V0RmlsdGVyLFxuICAgICAgICAgICAgcGF5bG9hZDogdHlwZXNcbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJpbmdNb2RpZmllcjoge1xuICAgICAgICAgICAgICAgICAgICBleHRlcm5hbEZpbHRlclF1ZXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZXNcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCh0cnVlKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8Yzh5LWRldmljZS1ncmlkXG4gIFt0aXRsZV09XCInVGFyZ2V0IGRldmljZXMnIHwgdHJhbnNsYXRlXCJcbiAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gIFtpbmZpbml0ZVNjcm9sbF09XCInYXV0bydcIlxuICBbc2hvd1NlYXJjaF09XCJmYWxzZVwiXG4gIChvbkRldmljZVF1ZXJ5U3RyaW5nQ2hhbmdlKT1cIm9uRGV2aWNlUXVlcnlTdHJpbmdDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgW2FjdGlvbk5hbWVdPVwiJ2J1bGtPcGVyYXRpb25zJ1wiXG4+PC9jOHktZGV2aWNlLWdyaWQ+XG4iXX0=