UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

49 lines (45 loc) 2.1 kB
import * as i0 from '@angular/core'; import { inject, signal, computed, untracked, Pipe } from '@angular/core'; import { tuiIsFlat } from '@taiga-ui/cdk/utils/miscellaneous'; import { TuiTextfieldMultiComponent } from '@taiga-ui/core/components/textfield'; import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers'; class TuiHideSelectedPipe { constructor() { this.textfield = inject(TuiTextfieldMultiComponent); this.handlers = inject(TUI_ITEMS_HANDLERS); this.items = signal([]); this.filtered = computed(() => { const items = this.items(); const value = this.textfield.cva()?.value() || []; if (!items) { return null; } return tuiIsFlat(items) ? this.filter(items, value, this.handlers.identityMatcher()) : this.filter2d(items, value, this.handlers.identityMatcher()); }); } transform(items) { untracked(() => { this.items.set(items); }); return this.filtered(); } filter2d(items, value, matcher) { return items.map((subItems) => this.filter(subItems, value, matcher)); } filter(items, value, matcher) { return items.filter((item) => value.every((selected) => !matcher(selected, item))); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiHideSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: TuiHideSelectedPipe, isStandalone: true, name: "tuiHideSelected", pure: false }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: TuiHideSelectedPipe, decorators: [{ type: Pipe, args: [{ name: 'tuiHideSelected', pure: false }] }] }); /** * Generated bundle index. Do not edit. */ export { TuiHideSelectedPipe }; //# sourceMappingURL=taiga-ui-kit-pipes-hide-selected.mjs.map