UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

68 lines 12.1 kB
import { __decorate } from "tslib"; import { inject, Pipe } from '@angular/core'; import { TUI_DEFAULT_MATCHER } from '@taiga-ui/cdk/constants'; import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous'; import { TUI_DATA_LIST_HOST } from '@taiga-ui/core/components/data-list'; 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'; import * as i0 from "@angular/core"; // TODO: Consider replacing TuiTextfieldComponent with proper token once we refactor textfields class TuiFilterByInputPipe { constructor() { // TODO: Remove optional after legacy controls are dropped this.textfield = inject(TuiTextfieldComponent, { optional: true }); this.host = inject(TUI_DATA_LIST_HOST); this.itemsHandlers = inject(TUI_ITEMS_HANDLERS); } transform(items, matcher = TUI_DEFAULT_MATCHER) { return this.filter(items, matcher, (this.textfield ? this.itemsHandlers.stringify() : // TODO(v5): delete backward compatibility this.host.stringify) || String, this.textfield?.value() || this.host.nativeFocusableElement?.value || ''); } filter(items, matcher, stringify, query) { if (!items) { return null; } return tuiIsFlat(items) ? this.filterFlat(items, matcher, stringify, query) : this.filter2d(items, matcher, stringify, query); } filterFlat(items, matcher, stringify, query) { const match = this.getMatch(items, stringify, query); return match != null ? items : items.filter((item) => matcher(item, query, stringify)); } filter2d(items, matcher, stringify, query) { const match = items.find((item) => this.getMatch(item, stringify, query) != null); return match != null ? items : items.map((inner) => this.filterFlat(inner, matcher, stringify, query)); } getMatch(items, stringify, query) { // TODO: Refactor when tui-textfield[multi] is ready if (this.host.tagValidator) { return undefined; } return items.find((item) => stringify(item).toLocaleLowerCase() === query.toLocaleLowerCase()); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFilterByInputPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiFilterByInputPipe, isStandalone: true, name: "tuiFilterByInput", pure: false }); } } __decorate([ tuiPure ], TuiFilterByInputPipe.prototype, "filter", null); export { TuiFilterByInputPipe }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFilterByInputPipe, decorators: [{ type: Pipe, args: [{ standalone: true, name: 'tuiFilterByInput', pure: false, }] }], propDecorators: { filter: [] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ5LWlucHV0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvcGlwZXMvZmlsdGVyLWJ5LWlucHV0L2ZpbHRlci1ieS1pbnB1dC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDMUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDOztBQUU5QywrRkFBK0Y7QUFDL0YsTUFLYSxvQkFBb0I7SUFMakM7UUFNSSwwREFBMEQ7UUFDekMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQzVELFNBQUksR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUMxQixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQXdGbEM7SUF6RVUsU0FBUyxDQUNaLEtBQXdELEVBQ3hELFVBQStCLG1CQUFtQjtRQUVsRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2QsS0FBSyxFQUNMLE9BQU8sRUFDUCxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFO1lBQ2hDLENBQUMsQ0FBQywwQ0FBMEM7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksTUFBTSxFQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBWSxDQUFDLHNCQUFzQixFQUFFLEtBQUs7WUFDaEQsRUFBRSxDQUNULENBQUM7SUFDTixDQUFDO0lBR08sTUFBTSxDQUNWLEtBQXdELEVBQ3hELE9BQTRCLEVBQzVCLFNBQThCLEVBQzlCLEtBQWE7UUFFYixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUVELE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUM7WUFDbkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLFVBQVUsQ0FDZCxLQUFtQixFQUNuQixPQUE0QixFQUM1QixTQUE4QixFQUM5QixLQUFhO1FBRWIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJELE9BQU8sS0FBSyxJQUFJLElBQUk7WUFDaEIsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sUUFBUSxDQUNaLEtBQWtDLEVBQ2xDLE9BQTRCLEVBQzVCLFNBQThCLEVBQzlCLEtBQWE7UUFFYixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFFbEYsT0FBTyxLQUFLLElBQUksSUFBSTtZQUNoQixDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVPLFFBQVEsQ0FDWixLQUFtQixFQUNuQixTQUE4QixFQUM5QixLQUFhO1FBRWIsb0RBQW9EO1FBQ3BELElBQUssSUFBSSxDQUFDLElBQVksQ0FBQyxZQUFZLEVBQUU7WUFDakMsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUM5RSxDQUFDO0lBQ04sQ0FBQzsrR0E1RlEsb0JBQW9COzZHQUFwQixvQkFBb0I7O0FBc0NyQjtJQURQLE9BQU87a0RBY1A7U0FuRFEsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBTGhDLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLElBQUksRUFBRSxLQUFLO2lCQUNkOzhCQXVDVyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1BpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpbmplY3QsIFBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUVUlfREVGQVVMVF9NQVRDSEVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7VHVpU3RyaW5nSGFuZGxlciwgVHVpU3RyaW5nTWF0Y2hlcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90eXBlcyc7XG5pbXBvcnQge3R1aVB1cmV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge1RVSV9EQVRBX0xJU1RfSE9TVH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtUdWlUZXh0ZmllbGRDb21wb25lbnR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcbmltcG9ydCB0eXBlIHtUdWlJdGVtc0hhbmRsZXJzfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7VFVJX0lURU1TX0hBTkRMRVJTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9kaXJlY3RpdmVzL2l0ZW1zLWhhbmRsZXJzJztcbmltcG9ydCB7dHVpSXNGbGF0fSBmcm9tICdAdGFpZ2EtdWkva2l0L3V0aWxzJztcblxuLy8gVE9ETzogQ29uc2lkZXIgcmVwbGFjaW5nIFR1aVRleHRmaWVsZENvbXBvbmVudCB3aXRoIHByb3BlciB0b2tlbiBvbmNlIHdlIHJlZmFjdG9yIHRleHRmaWVsZHNcbkBQaXBlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIG5hbWU6ICd0dWlGaWx0ZXJCeUlucHV0JyxcbiAgICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRmlsdGVyQnlJbnB1dFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvLyBUT0RPOiBSZW1vdmUgb3B0aW9uYWwgYWZ0ZXIgbGVnYWN5IGNvbnRyb2xzIGFyZSBkcm9wcGVkXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkQ29tcG9uZW50LCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3QgPSBpbmplY3QoVFVJX0RBVEFfTElTVF9IT1NUKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zSGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8dW5rbm93bj4gPVxuICAgICAgICBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcblxuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4sXG4gICAgICAgIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPjtcbiAgICBwdWJsaWMgdHJhbnNmb3JtPFQ+KGl0ZW1zOiByZWFkb25seSBUW10sIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+KTogcmVhZG9ubHkgVFtdO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCBudWxsLFxuICAgICAgICBtYXRjaGVyPzogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCBudWxsO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiByZWFkb25seSBUW10gfCBudWxsLFxuICAgICAgICBtYXRjaGVyPzogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICApOiByZWFkb25seSBUW10gfCBudWxsO1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsLFxuICAgICAgICBtYXRjaGVyOiBUdWlTdHJpbmdNYXRjaGVyPFQ+ID0gVFVJX0RFRkFVTFRfTUFUQ0hFUixcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyPFQ+KFxuICAgICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgICBtYXRjaGVyLFxuICAgICAgICAgICAgKHRoaXMudGV4dGZpZWxkXG4gICAgICAgICAgICAgICAgPyB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5KClcbiAgICAgICAgICAgICAgICA6IC8vIFRPRE8odjUpOiBkZWxldGUgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAgICAgICAgICAgICAgdGhpcy5ob3N0LnN0cmluZ2lmeSkgfHwgU3RyaW5nLFxuICAgICAgICAgICAgdGhpcy50ZXh0ZmllbGQ/LnZhbHVlKCkgfHxcbiAgICAgICAgICAgICAgICAodGhpcy5ob3N0IGFzIGFueSkubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8udmFsdWUgfHxcbiAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAdHVpUHVyZVxuICAgIHByaXZhdGUgZmlsdGVyPFQ+KFxuICAgICAgICBpdGVtczogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUW10+IHwgcmVhZG9ubHkgVFtdIHwgbnVsbCxcbiAgICAgICAgbWF0Y2hlcjogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICAgICAgc3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPFQ+LFxuICAgICAgICBxdWVyeTogc3RyaW5nLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IHJlYWRvbmx5IFRbXSB8IG51bGwge1xuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0dWlJc0ZsYXQoaXRlbXMpXG4gICAgICAgICAgICA/IHRoaXMuZmlsdGVyRmxhdChpdGVtcywgbWF0Y2hlciwgc3RyaW5naWZ5LCBxdWVyeSlcbiAgICAgICAgICAgIDogdGhpcy5maWx0ZXIyZChpdGVtcywgbWF0Y2hlciwgc3RyaW5naWZ5LCBxdWVyeSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJGbGF0PFQ+KFxuICAgICAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgICAgICBtYXRjaGVyOiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sXG4gICAgICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgKTogcmVhZG9ubHkgVFtdIHtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSB0aGlzLmdldE1hdGNoKGl0ZW1zLCBzdHJpbmdpZnksIHF1ZXJ5KTtcblxuICAgICAgICByZXR1cm4gbWF0Y2ggIT0gbnVsbFxuICAgICAgICAgICAgPyBpdGVtc1xuICAgICAgICAgICAgOiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+IG1hdGNoZXIoaXRlbSwgcXVlcnksIHN0cmluZ2lmeSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyMmQ8VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4sXG4gICAgICAgIG1hdGNoZXI6IFR1aVN0cmluZ01hdGNoZXI8VD4sXG4gICAgICAgIHN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxUPixcbiAgICAgICAgcXVlcnk6IHN0cmluZyxcbiAgICApOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4ge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IHRoaXMuZ2V0TWF0Y2goaXRlbSwgc3RyaW5naWZ5LCBxdWVyeSkgIT0gbnVsbCk7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoICE9IG51bGxcbiAgICAgICAgICAgID8gaXRlbXNcbiAgICAgICAgICAgIDogaXRlbXMubWFwKChpbm5lcikgPT4gdGhpcy5maWx0ZXJGbGF0KGlubmVyLCBtYXRjaGVyLCBzdHJpbmdpZnksIHF1ZXJ5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXRjaDxUPihcbiAgICAgICAgaXRlbXM6IHJlYWRvbmx5IFRbXSxcbiAgICAgICAgc3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPFQ+LFxuICAgICAgICBxdWVyeTogc3RyaW5nLFxuICAgICk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBUT0RPOiBSZWZhY3RvciB3aGVuIHR1aS10ZXh0ZmllbGRbbXVsdGldIGlzIHJlYWR5XG4gICAgICAgIGlmICgodGhpcy5ob3N0IGFzIGFueSkudGFnVmFsaWRhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbmQoXG4gICAgICAgICAgICAoaXRlbSkgPT4gc3RyaW5naWZ5KGl0ZW0pLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IHF1ZXJ5LnRvTG9jYWxlTG93ZXJDYXNlKCksXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19