@taiga-ui/kit
Version:
Taiga UI Angular main components kit
46 lines • 5.15 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
class TuiItemsWithMoreDirective {
constructor() {
this.el = tuiInjectElement();
this.itemsLimit = Infinity;
this.required = -1;
this.linesLimit = 1;
this.side = 'end';
// TODO: refactor to signal inputs after Angular update
this.change$ = new Subject();
}
get computedSide() {
return this.linesLimit > 1 ? 'end' : this.side;
}
ngOnChanges() {
this.change$.next();
}
maxWidth() {
return Math.max(...Array.from(this.el.children, ({ clientWidth }) => clientWidth));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiItemsWithMoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiItemsWithMoreDirective, isStandalone: true, inputs: { itemsLimit: "itemsLimit", required: "required", linesLimit: "linesLimit", side: "side" }, host: { properties: { "class._multiline": "linesLimit > 1", "style.--t-min-width.px": "maxWidth()" } }, usesOnChanges: true, ngImport: i0 }); }
}
export { TuiItemsWithMoreDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiItemsWithMoreDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
host: {
'[class._multiline]': 'linesLimit > 1',
'[style.--t-min-width.px]': 'maxWidth()',
},
}]
}], propDecorators: { itemsLimit: [{
type: Input
}], required: [{
type: Input
}], linesLimit: [{
type: Input
}], side: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtd2l0aC1tb3JlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2l0ZW1zLXdpdGgtbW9yZS9pdGVtcy13aXRoLW1vcmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBRTdCLE1BT2EseUJBQXlCO0lBUHRDO1FBUXFCLE9BQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBR2xDLGVBQVUsR0FBRyxRQUFRLENBQUM7UUFHdEIsYUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBR2QsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUdmLFNBQUksR0FBb0IsS0FBSyxDQUFDO1FBRXJDLHVEQUF1RDtRQUN2QyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztLQWFqRDtJQVhHLElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFUyxRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUMsV0FBVyxFQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQzsrR0E1QlEseUJBQXlCO21HQUF6Qix5QkFBeUI7O1NBQXpCLHlCQUF5Qjs0RkFBekIseUJBQXlCO2tCQVByQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0Ysb0JBQW9CLEVBQUUsZ0JBQWdCO3dCQUN0QywwQkFBMEIsRUFBRSxZQUFZO3FCQUMzQztpQkFDSjs4QkFLVSxVQUFVO3NCQURoQixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuX211bHRpbGluZV0nOiAnbGluZXNMaW1pdCA+IDEnLFxuICAgICAgICAnW3N0eWxlLi0tdC1taW4td2lkdGgucHhdJzogJ21heFdpZHRoKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUl0ZW1zV2l0aE1vcmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtc0xpbWl0ID0gSW5maW5pdHk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXF1aXJlZCA9IC0xO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGluZXNMaW1pdCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaWRlOiAnZW5kJyB8ICdzdGFydCcgPSAnZW5kJztcblxuICAgIC8vIFRPRE86IHJlZmFjdG9yIHRvIHNpZ25hbCBpbnB1dHMgYWZ0ZXIgQW5ndWxhciB1cGRhdGVcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXB1dGVkU2lkZSgpOiAnZW5kJyB8ICdzdGFydCcge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lc0xpbWl0ID4gMSA/ICdlbmQnIDogdGhpcy5zaWRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbWF4V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLkFycmF5LmZyb20odGhpcy5lbC5jaGlsZHJlbiwgKHtjbGllbnRXaWR0aH0pID0+IGNsaWVudFdpZHRoKSk7XG4gICAgfVxufVxuIl19