@taiga-ui/kit
Version:
Taiga UI Angular main components kit
68 lines • 12.1 kB
JavaScript
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