UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

40 lines 6.23 kB
import { combineLatest } from 'rxjs'; import { filter, map, startWith, switchMap } from 'rxjs/operators'; import { Injectable } from '@angular/core'; import { PluginsResolveService, ServiceRegistry } from '@c8y/ngx-components'; import { sortBy } from 'lodash-es'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/ngx-components"; /** * A service to retrieve custom buttons for the alarm details view. */ export class AlarmDetailsButtonService { constructor(serviceRegistry, pluginsResolver) { this.serviceRegistry = serviceRegistry; this.pluginsResolver = pluginsResolver; } get$(alarm, source) { const providers$ = this.pluginsResolver.allPluginsLoaded$.pipe(filter(Boolean), map(() => { return this.serviceRegistry.get('alarmDetailsButton'); })); return providers$.pipe(switchMap(providers => { const observables$ = providers.map(provider => provider.getAlarmDetailsButton$(alarm, source).pipe(startWith(false))); return combineLatest(observables$); }), map(indicators => { return indicators.filter(Boolean); }), map(indicators => sortBy(indicators, this.byPriority))); } byPriority(item) { if (item.priority === undefined) { return 0; } return -item.priority; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmDetailsButtonService, deps: [{ token: i1.ServiceRegistry }, { token: i1.PluginsResolveService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmDetailsButtonService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlarmDetailsButtonService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.ServiceRegistry }, { type: i1.PluginsResolveService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhcm0tZGV0YWlscy1idXR0b24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2FsYXJtcy9hbGFybS1kZXRhaWxzLWN1c3RvbS1idXR0b24vYWxhcm0tZGV0YWlscy1idXR0b24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFHbkM7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQ1UsZUFBZ0MsRUFDaEMsZUFBc0M7UUFEdEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtJQUM3QyxDQUFDO0lBRUosSUFBSSxDQUFDLEtBQWEsRUFBRSxNQUFzQjtRQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDNUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3BCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDNUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3RFLENBQUM7WUFDRixPQUFPLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDZixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUF5QixDQUFDO1FBQzVELENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVSxDQUFDLElBQXdCO1FBQ3pDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDOytHQWpDVSx5QkFBeUI7bUhBQXpCLHlCQUF5QixjQUpaLE1BQU07OzRGQUluQix5QkFBeUI7a0JBSnJDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFsYXJtLCBJTWFuYWdlZE9iamVjdCB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSwgU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBbGFybURldGFpbHNCdXR0b24gfSBmcm9tICcuLi9hbGFybXMubW9kZWwnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbi8qKlxuICogQSBzZXJ2aWNlIHRvIHJldHJpZXZlIGN1c3RvbSBidXR0b25zIGZvciB0aGUgYWxhcm0gZGV0YWlscyB2aWV3LlxuICovXG5leHBvcnQgY2xhc3MgQWxhcm1EZXRhaWxzQnV0dG9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VydmljZVJlZ2lzdHJ5OiBTZXJ2aWNlUmVnaXN0cnksXG4gICAgcHJpdmF0ZSBwbHVnaW5zUmVzb2x2ZXI6IFBsdWdpbnNSZXNvbHZlU2VydmljZVxuICApIHt9XG5cbiAgZ2V0JChhbGFybTogSUFsYXJtLCBzb3VyY2U6IElNYW5hZ2VkT2JqZWN0KTogT2JzZXJ2YWJsZTxBbGFybURldGFpbHNCdXR0b25bXT4ge1xuICAgIGNvbnN0IHByb3ZpZGVycyQgPSB0aGlzLnBsdWdpbnNSZXNvbHZlci5hbGxQbHVnaW5zTG9hZGVkJC5waXBlKFxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVJlZ2lzdHJ5LmdldCgnYWxhcm1EZXRhaWxzQnV0dG9uJyk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICByZXR1cm4gcHJvdmlkZXJzJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKHByb3ZpZGVycyA9PiB7XG4gICAgICAgIGNvbnN0IG9ic2VydmFibGVzJCA9IHByb3ZpZGVycy5tYXAocHJvdmlkZXIgPT5cbiAgICAgICAgICBwcm92aWRlci5nZXRBbGFybURldGFpbHNCdXR0b24kKGFsYXJtLCBzb3VyY2UpLnBpcGUoc3RhcnRXaXRoKGZhbHNlKSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qob2JzZXJ2YWJsZXMkKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGluZGljYXRvcnMgPT4ge1xuICAgICAgICByZXR1cm4gaW5kaWNhdG9ycy5maWx0ZXIoQm9vbGVhbikgYXMgQWxhcm1EZXRhaWxzQnV0dG9uW107XG4gICAgICB9KSxcbiAgICAgIG1hcChpbmRpY2F0b3JzID0+IHNvcnRCeShpbmRpY2F0b3JzLCB0aGlzLmJ5UHJpb3JpdHkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ5UHJpb3JpdHkoaXRlbTogQWxhcm1EZXRhaWxzQnV0dG9uKSB7XG4gICAgaWYgKGl0ZW0ucHJpb3JpdHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiAtaXRlbS5wcmlvcml0eTtcbiAgfVxufVxuIl19