UNPKG

@taiga-ui/addon-table

Version:

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

51 lines 6.34 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGFibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWRkb24tdGFibGUvY29tcG9uZW50cy90YWJsZS9kaXJlY3RpdmVzL3NvcnRhYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0UsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHbkYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFcEQsTUFJYSxnQkFBZ0I7SUFKN0I7UUFPcUIsVUFBSyxHQUF5QixNQUFNLENBQUMsQ0FBQSxpQkFBb0IsQ0FBQSxDQUFDLENBQUM7UUFDM0QsT0FBRSxHQUFrQixNQUFNLENBQUMsQ0FBQSxVQUFhLENBQUEsQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxNQUFNLENBQW9CLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBWS9FLFdBQU0sR0FBcUIsR0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBb0JyRDtJQXhCRyxJQUFXLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFJTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMzRCxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ2hDO2FBQU07WUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztJQUNMLENBQUM7SUFFRCxJQUFZLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDOUMsQ0FBQzsrR0FwQ1EsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMEdBU1YscUJBQXFCOztTQVQzQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtpQkFDckM7OEJBWVUsUUFBUTtzQkFKZCxLQUFLO3VCQUFDO3dCQUNILEtBQUssRUFBRSxhQUFhO3dCQUNwQixTQUFTLEVBQUUscUJBQXFCO3FCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHlwZSBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7RGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBpbmplY3QsIElucHV0LCB0eXBlIE9uQ2hhbmdlc30gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3R5cGUgVHVpQ29tcGFyYXRvcn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLXRhYmxlL3R5cGVzJztcblxuaW1wb3J0IHtUdWlUYWJsZVRofSBmcm9tICcuLi90aC90aC5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlUYWJsZVNvcnRCeX0gZnJvbSAnLi9zb3J0LWJ5LmRpcmVjdGl2ZSc7XG5pbXBvcnQge1R1aVRhYmxlRGlyZWN0aXZlfSBmcm9tICcuL3RhYmxlLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0aFt0dWlUaF1bdHVpU29ydGFibGVdJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVGFibGVTb3J0YWJsZTxcbiAgICBUIGV4dGVuZHMgUGFydGlhbDxSZWNvcmQ8a2V5b2YgVCwgdW5rbm93bj4+LFxuPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0YWJsZTogVHVpVGFibGVEaXJlY3RpdmU8VD4gPSBpbmplY3QoVHVpVGFibGVEaXJlY3RpdmU8VD4pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGg6IFR1aVRhYmxlVGg8VD4gPSBpbmplY3QoVHVpVGFibGVUaDxUPik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3J0QnkgPSBpbmplY3Q8VHVpVGFibGVTb3J0Qnk8VD4+KGZvcndhcmRSZWYoKCkgPT4gVHVpVGFibGVTb3J0QnkpKTtcblxuICAgIEBJbnB1dCh7XG4gICAgICAgIGFsaWFzOiAndHVpU29ydGFibGUnLFxuICAgICAgICB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSxcbiAgICB9KVxuICAgIHB1YmxpYyBzb3J0YWJsZTogQm9vbGVhbklucHV0O1xuXG4gICAgcHVibGljIGdldCBrZXkoKToga2V5b2YgVCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoLmtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydGVyOiBUdWlDb21wYXJhdG9yPFQ+ID0gKCk6IG51bWJlciA9PiAwO1xuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zb3J0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5zb3J0ZXIgPSB0aGlzLm1hdGNoID8gdGhpcy50YWJsZS5zb3J0ZXIgOiB0aGlzLnNvcnRlcjtcbiAgICAgICAgICAgIHRoaXMudGguc29ydGVyID0gdGhpcy5zb3J0ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRoLnNvcnRlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2hlY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1hdGNoICYmIHRoaXMudGFibGUuc29ydGVyICE9PSB0aGlzLnNvcnRlcikge1xuICAgICAgICAgICAgdGhpcy50YWJsZS51cGRhdGVTb3J0ZXIodGhpcy5zb3J0ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgbWF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRCeS50dWlTb3J0QnkgPT09IHRoaXMua2V5O1xuICAgIH1cbn1cbiJdfQ==