@taiga-ui/kit
Version:
Taiga UI Angular main components kit
53 lines (49 loc) • 2.18 kB
JavaScript
import { __decorate } from 'tslib';
import * as i0 from '@angular/core';
import { inject, Pipe } from '@angular/core';
import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
import { tuiIsFlat } from '@taiga-ui/kit/utils';
class TuiHideSelectedPipe {
constructor() {
this.textfield = inject(TuiTextfieldComponent);
this.handlers = inject(TUI_ITEMS_HANDLERS);
}
transform(items) {
if (!items) {
return null;
}
const value = this.textfield.control?.value || [];
return tuiIsFlat(items)
? this.filter(items, value, this.handlers.identityMatcher())
: this.filter2d(items, value, this.handlers.identityMatcher());
}
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: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, isStandalone: true, name: "tuiHideSelected", pure: false }); }
}
__decorate([
tuiPure
], TuiHideSelectedPipe.prototype, "filter2d", null);
__decorate([
tuiPure
], TuiHideSelectedPipe.prototype, "filter", null);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, decorators: [{
type: Pipe,
args: [{
standalone: true,
name: 'tuiHideSelected',
pure: false,
}]
}], propDecorators: { filter2d: [], filter: [] } });
/**
* Generated bundle index. Do not edit.
*/
export { TuiHideSelectedPipe };
//# sourceMappingURL=taiga-ui-kit-pipes-hide-selected.mjs.map