UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

31 lines 6 kB
import { Pipe } from '@angular/core'; import { groupBy, values } from 'lodash-es'; import { defer, forkJoin, map, mergeMap, of } from 'rxjs'; import { toObservable } from '../common/extension-hooks'; import * as i0 from "@angular/core"; export class VisibleControlsPipe { transform(actionControls, arg) { return defer(() => of(actionControls ?? [])).pipe(mergeMap(controls => forkJoin(controls.map(control => toObservable(!control.showIf || control.showIf(arg)).pipe(map(visible => ({ control, visible }))))).pipe(map(evaluatedControls => evaluatedControls.filter(ec => ec.visible).map(ec => ec.control)))), map(visible => values(groupBy(visible, 'type')) .map((actionControls) => { if (actionControls?.length === 1) { return actionControls[0]; } else { return (actionControls || []) .sort(this.sortByPriority) .find(actionControl => !!actionControl.showIf); } }) .sort(this.sortByPriority))); } sortByPriority(a, b) { return (b?.priority ?? 0) - (a?.priority ?? 0); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VisibleControlsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: VisibleControlsPipe, name: "visibleControls" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VisibleControlsPipe, decorators: [{ type: Pipe, args: [{ name: 'visibleControls' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaWJsZS1jb250cm9scy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9kYXRhLWdyaWQvdmlzaWJsZS1jb250cm9scy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFJekQsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixTQUFTLENBQUMsY0FBK0IsRUFBRSxHQUFvQjtRQUM3RCxPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDbEIsUUFBUSxDQUNOLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDckIsWUFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2RCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FDdkMsQ0FDRixDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUMzRixDQUNGLEVBQ0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDN0IsR0FBRyxDQUFDLENBQUMsY0FBK0IsRUFBRSxFQUFFO1lBQ3ZDLElBQUksY0FBYyxFQUFFLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakMsT0FBTyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO3FCQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztxQkFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FDN0IsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxDQUFnQixFQUFFLENBQWdCO1FBQ3ZELE9BQU8sQ0FBQyxDQUFDLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQWhDVSxtQkFBbUI7NkdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdyb3VwQnksIHZhbHVlcyB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkZWZlciwgZm9ya0pvaW4sIG1hcCwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUgfSBmcm9tICcuLi9jb21tb24vZXh0ZW5zaW9uLWhvb2tzJztcbmltcG9ydCB7IEFjdGlvbkNvbnRyb2wsIFJvdyB9IGZyb20gJy4vZGF0YS1ncmlkLm1vZGVsJztcblxuQFBpcGUoeyBuYW1lOiAndmlzaWJsZUNvbnRyb2xzJyB9KVxuZXhwb3J0IGNsYXNzIFZpc2libGVDb250cm9sc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW10sIGFyZz86IFJvdyAmIHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxBY3Rpb25Db250cm9sW10+IHtcbiAgICByZXR1cm4gZGVmZXIoKCkgPT4gb2YoYWN0aW9uQ29udHJvbHMgPz8gW10pKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoY29udHJvbHMgPT5cbiAgICAgICAgZm9ya0pvaW4oXG4gICAgICAgICAgY29udHJvbHMubWFwKGNvbnRyb2wgPT5cbiAgICAgICAgICAgIHRvT2JzZXJ2YWJsZSghY29udHJvbC5zaG93SWYgfHwgY29udHJvbC5zaG93SWYoYXJnKSkucGlwZShcbiAgICAgICAgICAgICAgbWFwKHZpc2libGUgPT4gKHsgY29udHJvbCwgdmlzaWJsZSB9KSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICApXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBtYXAoZXZhbHVhdGVkQ29udHJvbHMgPT4gZXZhbHVhdGVkQ29udHJvbHMuZmlsdGVyKGVjID0+IGVjLnZpc2libGUpLm1hcChlYyA9PiBlYy5jb250cm9sKSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIG1hcCh2aXNpYmxlID0+XG4gICAgICAgIHZhbHVlcyhncm91cEJ5KHZpc2libGUsICd0eXBlJykpXG4gICAgICAgICAgLm1hcCgoYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvbkNvbnRyb2xzPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbkNvbnRyb2xzWzBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIChhY3Rpb25Db250cm9scyB8fCBbXSlcbiAgICAgICAgICAgICAgICAuc29ydCh0aGlzLnNvcnRCeVByaW9yaXR5KVxuICAgICAgICAgICAgICAgIC5maW5kKGFjdGlvbkNvbnRyb2wgPT4gISFhY3Rpb25Db250cm9sLnNob3dJZik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuc29ydCh0aGlzLnNvcnRCeVByaW9yaXR5KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNvcnRCeVByaW9yaXR5KGE6IEFjdGlvbkNvbnRyb2wsIGI6IEFjdGlvbkNvbnRyb2wpOiBudW1iZXIge1xuICAgIHJldHVybiAoYj8ucHJpb3JpdHkgPz8gMCkgLSAoYT8ucHJpb3JpdHkgPz8gMCk7XG4gIH1cbn1cbiJdfQ==