UNPKG

@taiga-ui/addon-table

Version:

A library to display tabled data with filters, search, group actions, etc.

51 lines 6.42 kB
import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { Directive, forwardRef, inject, Input } from '@angular/core'; import { TuiTableTh } from '../th/th.component'; import { TuiTableSortBy } from './sort-by.directive'; import { TuiTableDirective } from './table.directive'; import * as i0 from "@angular/core"; class TuiTableSortable { constructor() { this.table = inject((TuiTableDirective)); this.th = inject((TuiTableTh)); this.sortBy = inject(forwardRef(() => TuiTableSortBy)); this.sorter = () => 0; } get key() { return this.th.key; } ngOnChanges() { if (this.sortable) { this.sorter = this.match ? this.table.sorter : this.sorter; this.th.sorter = this.sorter; } else { this.th.sorter = null; } } check() { if (this.match && this.table.sorter !== this.sorter) { this.table.updateSorter(this.sorter); } } get match() { return this.sortBy.tuiSortBy === this.key; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTableSortable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: TuiTableSortable, isStandalone: true, selector: "th[tuiTh][tuiSortable]", inputs: { sortable: ["tuiSortable", "sortable", coerceBooleanProperty] }, usesOnChanges: true, ngImport: i0 }); } } export { TuiTableSortable }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTableSortable, decorators: [{ type: Directive, args: [{ standalone: true, selector: 'th[tuiTh][tuiSortable]', }] }], propDecorators: { sortable: [{ type: Input, args: [{ alias: 'tuiSortable', transform: coerceBooleanProperty, }] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tdGFibGUvY29tcG9uZW50cy90YWJsZS9kaXJlY3RpdmVzL3NvcnRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR25FLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELE1BSWEsZ0JBQWdCO0lBSjdCO1FBT3FCLFVBQUssR0FBeUIsTUFBTSxDQUFDLENBQUEsaUJBQW9CLENBQUEsQ0FBQyxDQUFDO1FBQzNELE9BQUUsR0FBa0IsTUFBTSxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztRQUMxQyxXQUFNLEdBQUcsTUFBTSxDQUFvQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQVkvRSxXQUFNLEdBQXFCLEdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQW9CckQ7SUF4QkcsSUFBVyxHQUFHO1FBQ1YsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBSU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNoQzthQUFNO1lBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVNLEtBQUs7UUFDUixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEM7SUFDTCxDQUFDO0lBRUQsSUFBWSxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzlDLENBQUM7K0dBcENRLGdCQUFnQjttR0FBaEIsZ0JBQWdCLDBHQVNWLHFCQUFxQjs7U0FUM0IsZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSx3QkFBd0I7aUJBQ3JDOzhCQVlVLFFBQVE7c0JBSmQsS0FBSzt1QkFBQzt3QkFDSCxLQUFLLEVBQUUsYUFBYTt3QkFDcEIsU0FBUyxFQUFFLHFCQUFxQjtxQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7Qm9vbGVhbklucHV0fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgdHlwZSB7T25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlDb21wYXJhdG9yfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tdGFibGUvdHlwZXMnO1xuXG5pbXBvcnQge1R1aVRhYmxlVGh9IGZyb20gJy4uL3RoL3RoLmNvbXBvbmVudCc7XG5pbXBvcnQge1R1aVRhYmxlU29ydEJ5fSBmcm9tICcuL3NvcnQtYnkuZGlyZWN0aXZlJztcbmltcG9ydCB7VHVpVGFibGVEaXJlY3RpdmV9IGZyb20gJy4vdGFibGUuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3RoW3R1aVRoXVt0dWlTb3J0YWJsZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlUYWJsZVNvcnRhYmxlPFQgZXh0ZW5kcyBQYXJ0aWFsPFJlY29yZDxrZXlvZiBULCBhbnk+Pj5cbiAgICBpbXBsZW1lbnRzIE9uQ2hhbmdlc1xue1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFibGU6IFR1aVRhYmxlRGlyZWN0aXZlPFQ+ID0gaW5qZWN0KFR1aVRhYmxlRGlyZWN0aXZlPFQ+KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRoOiBUdWlUYWJsZVRoPFQ+ID0gaW5qZWN0KFR1aVRhYmxlVGg8VD4pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc29ydEJ5ID0gaW5qZWN0PFR1aVRhYmxlU29ydEJ5PFQ+Pihmb3J3YXJkUmVmKCgpID0+IFR1aVRhYmxlU29ydEJ5KSk7XG5cbiAgICBASW5wdXQoe1xuICAgICAgICBhbGlhczogJ3R1aVNvcnRhYmxlJyxcbiAgICAgICAgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHksXG4gICAgfSlcbiAgICBwdWJsaWMgc29ydGFibGU6IEJvb2xlYW5JbnB1dDtcblxuICAgIHB1YmxpYyBnZXQga2V5KCk6IGtleW9mIFQge1xuICAgICAgICByZXR1cm4gdGhpcy50aC5rZXk7XG4gICAgfVxuXG4gICAgcHVibGljIHNvcnRlcjogVHVpQ29tcGFyYXRvcjxUPiA9ICgpOiBudW1iZXIgPT4gMDtcblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc29ydGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuc29ydGVyID0gdGhpcy5tYXRjaCA/IHRoaXMudGFibGUuc29ydGVyIDogdGhpcy5zb3J0ZXI7XG4gICAgICAgICAgICB0aGlzLnRoLnNvcnRlciA9IHRoaXMuc29ydGVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50aC5zb3J0ZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tYXRjaCAmJiB0aGlzLnRhYmxlLnNvcnRlciAhPT0gdGhpcy5zb3J0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGUudXBkYXRlU29ydGVyKHRoaXMuc29ydGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG1hdGNoKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0QnkudHVpU29ydEJ5ID09PSB0aGlzLmtleTtcbiAgICB9XG59XG4iXX0=