@taiga-ui/kit
Version:
Taiga UI Angular main components kit
46 lines • 5.11 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtd2l0aC1tb3JlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2l0ZW1zLXdpdGgtbW9yZS9pdGVtcy13aXRoLW1vcmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQUU3QixNQU9hLHlCQUF5QjtJQVB0QztRQVFxQixPQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUdsQyxlQUFVLEdBQUcsUUFBUSxDQUFDO1FBR3RCLGFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUdkLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFHZixTQUFJLEdBQW9CLEtBQUssQ0FBQztRQUVyQyx1REFBdUQ7UUFDdkMsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0FhakQ7SUFYRyxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25ELENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsUUFBUTtRQUNkLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFDLFdBQVcsRUFBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7K0dBNUJRLHlCQUF5QjttR0FBekIseUJBQXlCOztTQUF6Qix5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFQckMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLG9CQUFvQixFQUFFLGdCQUFnQjt3QkFDdEMsMEJBQTBCLEVBQUUsWUFBWTtxQkFDM0M7aUJBQ0o7OEJBS1UsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXQsIHR5cGUgT25DaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpSW5qZWN0RWxlbWVudH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9kb20nO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuX211bHRpbGluZV0nOiAnbGluZXNMaW1pdCA+IDEnLFxuICAgICAgICAnW3N0eWxlLi0tdC1taW4td2lkdGgucHhdJzogJ21heFdpZHRoKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUl0ZW1zV2l0aE1vcmVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWwgPSB0dWlJbmplY3RFbGVtZW50KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpdGVtc0xpbWl0ID0gSW5maW5pdHk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXF1aXJlZCA9IC0xO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGluZXNMaW1pdCA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaWRlOiAnZW5kJyB8ICdzdGFydCcgPSAnZW5kJztcblxuICAgIC8vIFRPRE86IHJlZmFjdG9yIHRvIHNpZ25hbCBpbnB1dHMgYWZ0ZXIgQW5ndWxhciB1cGRhdGVcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXB1dGVkU2lkZSgpOiAnZW5kJyB8ICdzdGFydCcge1xuICAgICAgICByZXR1cm4gdGhpcy5saW5lc0xpbWl0ID4gMSA/ICdlbmQnIDogdGhpcy5zaWRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2UkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbWF4V2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KC4uLkFycmF5LmZyb20odGhpcy5lbC5jaGlsZHJlbiwgKHtjbGllbnRXaWR0aH0pID0+IGNsaWVudFdpZHRoKSk7XG4gICAgfVxufVxuIl19