UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

69 lines 12.4 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.multi = this.textfield?.el.matches('[multi]'); 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 || this.multi) { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWJ5LWlucHV0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvcGlwZXMvZmlsdGVyLWJ5LWlucHV0L2ZpbHRlci1ieS1pbnB1dC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFDSCxrQkFBa0IsR0FFckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7O0FBRTlDLCtGQUErRjtBQUMvRixNQUthLG9CQUFvQjtJQUxqQztRQU1JLDBEQUEwRDtRQUN6QyxjQUFTLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDNUQsVUFBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxTQUFJLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDbEMsa0JBQWEsR0FDMUIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0F3RmxDO0lBekVVLFNBQVMsQ0FDWixLQUF3RCxFQUN4RCxVQUErQixtQkFBbUI7UUFFbEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNkLEtBQUssRUFDTCxPQUFPLEVBQ1AsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRTtZQUNoQyxDQUFDLENBQUMsMENBQTBDO2dCQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE1BQU0sRUFDcEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUU7WUFDbEIsSUFBSSxDQUFDLElBQVksQ0FBQyxzQkFBc0IsRUFBRSxLQUFLO1lBQ2hELEVBQUUsQ0FDVCxDQUFDO0lBQ04sQ0FBQztJQUdPLE1BQU0sQ0FDVixLQUF3RCxFQUN4RCxPQUE0QixFQUM1QixTQUE4QixFQUM5QixLQUFhO1FBRWIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxPQUFPLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTyxVQUFVLENBQ2QsS0FBbUIsRUFDbkIsT0FBNEIsRUFDNUIsU0FBOEIsRUFDOUIsS0FBYTtRQUViLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVyRCxPQUFPLEtBQUssSUFBSSxJQUFJO1lBQ2hCLENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLFFBQVEsQ0FDWixLQUFrQyxFQUNsQyxPQUE0QixFQUM1QixTQUE4QixFQUM5QixLQUFhO1FBRWIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBRWxGLE9BQU8sS0FBSyxJQUFJLElBQUk7WUFDaEIsQ0FBQyxDQUFDLEtBQUs7WUFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTyxRQUFRLENBQ1osS0FBbUIsRUFDbkIsU0FBOEIsRUFDOUIsS0FBYTtRQUViLG9EQUFvRDtRQUNwRCxJQUFLLElBQUksQ0FBQyxJQUFZLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDL0MsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUM5RSxDQUFDO0lBQ04sQ0FBQzsrR0E3RlEsb0JBQW9COzZHQUFwQixvQkFBb0I7O0FBdUNyQjtJQURQLE9BQU87a0RBY1A7U0FwRFEsb0JBQW9COzRGQUFwQixvQkFBb0I7a0JBTGhDLElBQUk7bUJBQUM7b0JBQ0YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLElBQUksRUFBRSxLQUFLO2lCQUNkOzhCQXdDVyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIFBpcGUsIHR5cGUgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9ERUZBVUxUX01BVENIRVJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY29uc3RhbnRzJztcbmltcG9ydCB7dHlwZSBUdWlTdHJpbmdIYW5kbGVyLCB0eXBlIFR1aVN0cmluZ01hdGNoZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlQdXJlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtUVUlfREFUQV9MSVNUX0hPU1R9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvZGF0YS1saXN0JztcbmltcG9ydCB7VHVpVGV4dGZpZWxkQ29tcG9uZW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1xuICAgIFRVSV9JVEVNU19IQU5ETEVSUyxcbiAgICB0eXBlIFR1aUl0ZW1zSGFuZGxlcnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuaW1wb3J0IHt0dWlJc0ZsYXR9IGZyb20gJ0B0YWlnYS11aS9raXQvdXRpbHMnO1xuXG4vLyBUT0RPOiBDb25zaWRlciByZXBsYWNpbmcgVHVpVGV4dGZpZWxkQ29tcG9uZW50IHdpdGggcHJvcGVyIHRva2VuIG9uY2Ugd2UgcmVmYWN0b3IgdGV4dGZpZWxkc1xuQFBpcGUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgbmFtZTogJ3R1aUZpbHRlckJ5SW5wdXQnLFxuICAgIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlGaWx0ZXJCeUlucHV0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8vIFRPRE86IFJlbW92ZSBvcHRpb25hbCBhZnRlciBsZWdhY3kgY29udHJvbHMgYXJlIGRyb3BwZWRcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRmaWVsZCA9IGluamVjdChUdWlUZXh0ZmllbGRDb21wb25lbnQsIHtvcHRpb25hbDogdHJ1ZX0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbXVsdGkgPSB0aGlzLnRleHRmaWVsZD8uZWwubWF0Y2hlcygnW211bHRpXScpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdCA9IGluamVjdChUVUlfREFUQV9MSVNUX0hPU1QpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXRlbXNIYW5kbGVyczogVHVpSXRlbXNIYW5kbGVyczx1bmtub3duPiA9XG4gICAgICAgIGluamVjdChUVUlfSVRFTVNfSEFORExFUlMpO1xuXG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPixcbiAgICAgICAgbWF0Y2hlcj86IFR1aVN0cmluZ01hdGNoZXI8VD4sXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUW10+O1xuICAgIHB1YmxpYyB0cmFuc2Zvcm08VD4oaXRlbXM6IHJlYWRvbmx5IFRbXSwgbWF0Y2hlcj86IFR1aVN0cmluZ01hdGNoZXI8VD4pOiByZWFkb25seSBUW107XG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IG51bGwsXG4gICAgICAgIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IHJlYWRvbmx5IFRbXSB8IG51bGwsXG4gICAgICAgIG1hdGNoZXI/OiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICk6IHJlYWRvbmx5IFRbXSB8IG51bGw7XG4gICAgcHVibGljIHRyYW5zZm9ybTxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IHJlYWRvbmx5IFRbXSB8IG51bGwsXG4gICAgICAgIG1hdGNoZXI6IFR1aVN0cmluZ01hdGNoZXI8VD4gPSBUVUlfREVGQVVMVF9NQVRDSEVSLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB8IHJlYWRvbmx5IFRbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXI8VD4oXG4gICAgICAgICAgICBpdGVtcyxcbiAgICAgICAgICAgIG1hdGNoZXIsXG4gICAgICAgICAgICAodGhpcy50ZXh0ZmllbGRcbiAgICAgICAgICAgICAgICA/IHRoaXMuaXRlbXNIYW5kbGVycy5zdHJpbmdpZnkoKVxuICAgICAgICAgICAgICAgIDogLy8gVE9ETyh2NSk6IGRlbGV0ZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICAgICAgICAgICAgICB0aGlzLmhvc3Quc3RyaW5naWZ5KSB8fCBTdHJpbmcsXG4gICAgICAgICAgICB0aGlzLnRleHRmaWVsZD8udmFsdWUoKSB8fFxuICAgICAgICAgICAgICAgICh0aGlzLmhvc3QgYXMgYW55KS5uYXRpdmVGb2N1c2FibGVFbGVtZW50Py52YWx1ZSB8fFxuICAgICAgICAgICAgICAgICcnLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBmaWx0ZXI8VD4oXG4gICAgICAgIGl0ZW1zOiBSZWFkb25seUFycmF5PHJlYWRvbmx5IFRbXT4gfCByZWFkb25seSBUW10gfCBudWxsLFxuICAgICAgICBtYXRjaGVyOiBUdWlTdHJpbmdNYXRjaGVyPFQ+LFxuICAgICAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sXG4gICAgICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgKTogUmVhZG9ubHlBcnJheTxyZWFkb25seSBUW10+IHwgcmVhZG9ubHkgVFtdIHwgbnVsbCB7XG4gICAgICAgIGlmICghaXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHR1aUlzRmxhdChpdGVtcylcbiAgICAgICAgICAgID8gdGhpcy5maWx0ZXJGbGF0KGl0ZW1zLCBtYXRjaGVyLCBzdHJpbmdpZnksIHF1ZXJ5KVxuICAgICAgICAgICAgOiB0aGlzLmZpbHRlcjJkKGl0ZW1zLCBtYXRjaGVyLCBzdHJpbmdpZnksIHF1ZXJ5KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckZsYXQ8VD4oXG4gICAgICAgIGl0ZW1zOiByZWFkb25seSBUW10sXG4gICAgICAgIG1hdGNoZXI6IFR1aVN0cmluZ01hdGNoZXI8VD4sXG4gICAgICAgIHN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxUPixcbiAgICAgICAgcXVlcnk6IHN0cmluZyxcbiAgICApOiByZWFkb25seSBUW10ge1xuICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMuZ2V0TWF0Y2goaXRlbXMsIHN0cmluZ2lmeSwgcXVlcnkpO1xuXG4gICAgICAgIHJldHVybiBtYXRjaCAhPSBudWxsXG4gICAgICAgICAgICA/IGl0ZW1zXG4gICAgICAgICAgICA6IGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gbWF0Y2hlcihpdGVtLCBxdWVyeSwgc3RyaW5naWZ5KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXIyZDxUPihcbiAgICAgICAgaXRlbXM6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPixcbiAgICAgICAgbWF0Y2hlcjogVHVpU3RyaW5nTWF0Y2hlcjxUPixcbiAgICAgICAgc3RyaW5naWZ5OiBUdWlTdHJpbmdIYW5kbGVyPFQ+LFxuICAgICAgICBxdWVyeTogc3RyaW5nLFxuICAgICk6IFJlYWRvbmx5QXJyYXk8cmVhZG9ubHkgVFtdPiB7XG4gICAgICAgIGNvbnN0IG1hdGNoID0gaXRlbXMuZmluZCgoaXRlbSkgPT4gdGhpcy5nZXRNYXRjaChpdGVtLCBzdHJpbmdpZnksIHF1ZXJ5KSAhPSBudWxsKTtcblxuICAgICAgICByZXR1cm4gbWF0Y2ggIT0gbnVsbFxuICAgICAgICAgICAgPyBpdGVtc1xuICAgICAgICAgICAgOiBpdGVtcy5tYXAoKGlubmVyKSA9PiB0aGlzLmZpbHRlckZsYXQoaW5uZXIsIG1hdGNoZXIsIHN0cmluZ2lmeSwgcXVlcnkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1hdGNoPFQ+KFxuICAgICAgICBpdGVtczogcmVhZG9ubHkgVFtdLFxuICAgICAgICBzdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8VD4sXG4gICAgICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8vIFRPRE86IFJlZmFjdG9yIHdoZW4gdHVpLXRleHRmaWVsZFttdWx0aV0gaXMgcmVhZHlcbiAgICAgICAgaWYgKCh0aGlzLmhvc3QgYXMgYW55KS50YWdWYWxpZGF0b3IgfHwgdGhpcy5tdWx0aSkge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpdGVtcy5maW5kKFxuICAgICAgICAgICAgKGl0ZW0pID0+IHN0cmluZ2lmeShpdGVtKS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBxdWVyeS50b0xvY2FsZUxvd2VyQ2FzZSgpLFxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==