UNPKG

design-angular-kit

Version:

Un toolkit Angular conforme alle linee guida di design per i servizi web della PA

70 lines 10.6 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject, distinctUntilChanged, map, of } from 'rxjs'; import reducers from './transfer.reducers'; import * as i0 from "@angular/core"; export class TransferStore { constructor() { this._state = new BehaviorSubject(reducers.initialStateFn()); this.sourceItems = this._state.pipe(map(state => state.current.source)); this.targetItems = this._state.pipe(map(state => state.current.target)); this.valueChanged = this._state.pipe(map(state => state.current.target), distinctUntilChanged()); this.selectItems = (sourceType) => { if (sourceType === 'source') { return this.sourceItems; } if (sourceType === 'target') { return this.targetItems; } return of([]); }; this.selectSelectedItems = (sourceType) => { if (sourceType === 'source') { return this._state.pipe(map(state => state.selections.source)); } if (sourceType === 'target') { return this._state.pipe(map(state => state.selections.target)); } return of(new Set()); }; this.transferEnabled = this._state.pipe(map(state => state.operationsEnabled.transfer)); this.backtransferEnabled = this._state.pipe(map(state => state.operationsEnabled.backtransfer)); this.resetEnabled = this._state.pipe(map(state => state.operationsEnabled.reset)); } init({ source, target }) { this.updateState(reducers.initFn({ source, target })); } transfer() { this.updateState(reducers.transferFn()); } backtransfer() { this.updateState(reducers.backtransferFn()); } reset() { this.updateState(reducers.resetFn()); } checkboxSelection(item, sourceType) { if (sourceType === 'source') { this.updateState(reducers.selectionItemSourceFn({ item })); } if (sourceType === 'target') { this.updateState(reducers.selectionItemTargetFn({ item })); } } selectAllSelection(checked, sourceType) { if (sourceType === 'source') { this.updateState(reducers.selectAllSourceFn({ checked })); } if (sourceType === 'target') { this.updateState(reducers.selectAllTargetFn({ checked })); } } updateState(reducerFn) { this._state.next(reducerFn(this._state.value)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TransferStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TransferStore }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TransferStore, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tYW5ndWxhci1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vdHJhbnNmZXIvc3RvcmUvdHJhbnNmZXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxRQUFRLE1BQU0scUJBQXFCLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRW1CLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUVsRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUUzRSxpQkFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN0QyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUNsQyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1FBRU8sZ0JBQVcsR0FBRyxDQUFDLFVBQXNCLEVBQUUsRUFBRTtZQUNoRCxJQUFJLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsT0FBTyxJQUFJLENB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Q0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLFNBQXdDO1FBQzFELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQzs4R0EvRVUsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU291cmNlVHlwZSwgVHJhbnNmZXJJdGVtIH0gZnJvbSAnLi4vdHJhbnNmZXIubW9kZWwnO1xuaW1wb3J0IHJlZHVjZXJzIGZyb20gJy4vdHJhbnNmZXIucmVkdWNlcnMnO1xuaW1wb3J0IHsgU2VsZWN0aW9uU3RhdGUsIFN0YXRlIH0gZnJvbSAnLi90cmFuc2Zlci5zdGF0ZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2ZlclN0b3JlPFQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXRlPFQ+PihyZWR1Y2Vycy5pbml0aWFsU3RhdGVGbigpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNvdXJjZUl0ZW1zID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuY3VycmVudC5zb3VyY2UpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRhcmdldEl0ZW1zID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuY3VycmVudC50YXJnZXQpKTtcblxuICByZWFkb25seSB2YWx1ZUNoYW5nZWQgPSB0aGlzLl9zdGF0ZS5waXBlKFxuICAgIG1hcChzdGF0ZSA9PiBzdGF0ZS5jdXJyZW50LnRhcmdldCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdEl0ZW1zID0gKHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUpID0+IHtcbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3NvdXJjZScpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvdXJjZUl0ZW1zO1xuICAgIH1cblxuICAgIGlmIChzb3VyY2VUeXBlID09PSAndGFyZ2V0Jykge1xuICAgICAgcmV0dXJuIHRoaXMudGFyZ2V0SXRlbXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mPFRyYW5zZmVySXRlbTxUPltdPihbXSk7XG4gIH07XG5cbiAgcmVhZG9ubHkgc2VsZWN0U2VsZWN0ZWRJdGVtcyA9IChzb3VyY2VUeXBlOiBTb3VyY2VUeXBlKSA9PiB7XG4gICAgaWYgKHNvdXJjZVR5cGUgPT09ICdzb3VyY2UnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUuc2VsZWN0aW9ucy5zb3VyY2UpKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3RhcmdldCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zdGF0ZS5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS5zZWxlY3Rpb25zLnRhcmdldCkpO1xuICAgIH1cblxuICAgIHJldHVybiBvZihuZXcgU2V0PFRyYW5zZmVySXRlbTxUPj4oKSk7XG4gIH07XG5cbiAgcmVhZG9ubHkgdHJhbnNmZXJFbmFibGVkID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUub3BlcmF0aW9uc0VuYWJsZWQudHJhbnNmZXIpKTtcblxuICByZWFkb25seSBiYWNrdHJhbnNmZXJFbmFibGVkID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUub3BlcmF0aW9uc0VuYWJsZWQuYmFja3RyYW5zZmVyKSk7XG5cbiAgcmVhZG9ubHkgcmVzZXRFbmFibGVkID0gdGhpcy5fc3RhdGUucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUub3BlcmF0aW9uc0VuYWJsZWQucmVzZXQpKTtcblxuICBpbml0KHsgc291cmNlLCB0YXJnZXQgfTogU2VsZWN0aW9uU3RhdGU8VD4pIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHJlZHVjZXJzLmluaXRGbih7IHNvdXJjZSwgdGFyZ2V0IH0pKTtcbiAgfVxuXG4gIHRyYW5zZmVyKCkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMudHJhbnNmZXJGbigpKTtcbiAgfVxuICBiYWNrdHJhbnNmZXIoKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShyZWR1Y2Vycy5iYWNrdHJhbnNmZXJGbigpKTtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMucmVzZXRGbigpKTtcbiAgfVxuXG4gIGNoZWNrYm94U2VsZWN0aW9uKGl0ZW06IFRyYW5zZmVySXRlbTxUPiwgc291cmNlVHlwZTogU291cmNlVHlwZSkge1xuICAgIGlmIChzb3VyY2VUeXBlID09PSAnc291cmNlJykge1xuICAgICAgdGhpcy51cGRhdGVTdGF0ZShyZWR1Y2Vycy5zZWxlY3Rpb25JdGVtU291cmNlRm4oeyBpdGVtIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3RhcmdldCcpIHtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMuc2VsZWN0aW9uSXRlbVRhcmdldEZuKHsgaXRlbSB9KSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0QWxsU2VsZWN0aW9uKGNoZWNrZWQ6IGJvb2xlYW4sIHNvdXJjZVR5cGU6IFNvdXJjZVR5cGUpIHtcbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3NvdXJjZScpIHtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMuc2VsZWN0QWxsU291cmNlRm4oeyBjaGVja2VkIH0pKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlVHlwZSA9PT0gJ3RhcmdldCcpIHtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUocmVkdWNlcnMuc2VsZWN0QWxsVGFyZ2V0Rm4oeyBjaGVja2VkIH0pKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0YXRlKHJlZHVjZXJGbjogKHN0YXRlOiBTdGF0ZTxUPikgPT4gU3RhdGU8VD4pIHtcbiAgICB0aGlzLl9zdGF0ZS5uZXh0KHJlZHVjZXJGbih0aGlzLl9zdGF0ZS52YWx1ZSkpO1xuICB9XG59XG4iXX0=