@taiga-ui/kit
Version:
Taiga UI Angular main components kit
57 lines • 7.12 kB
JavaScript
import { Directive, EventEmitter, Input, Output } from '@angular/core';
import { tuiIsPresent, tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous';
import { TUI_TREE_ACCESSOR, TUI_TREE_CONTROLLER } from '../misc/tree.tokens';
import * as i0 from "@angular/core";
class TuiTreeControllerDirective {
constructor() {
this.items = new Map();
this.fallback = true;
this.map = new Map();
this.toggled = new EventEmitter();
}
register(item, value) {
this.items.set(item, value);
}
unregister(item) {
this.items.delete(item);
}
isExpanded(item) {
const value = this.items.get(item);
return (value && this.map.get(value)) ?? this.fallback;
}
toggle(item) {
const value = this.items.get(item);
const expanded = this.isExpanded(item);
if (!tuiIsPresent(value)) {
return;
}
this.toggled.emit(value);
this.map.set(value, !expanded);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTreeControllerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiTreeControllerDirective, isStandalone: true, selector: "[tuiTreeController][map]", inputs: { fallback: ["tuiTreeController", "fallback"], map: "map" }, outputs: { toggled: "toggled" }, providers: [
tuiProvide(TUI_TREE_ACCESSOR, TuiTreeControllerDirective),
tuiProvide(TUI_TREE_CONTROLLER, TuiTreeControllerDirective),
], exportAs: ["tuiTreeController"], ngImport: i0 }); }
}
export { TuiTreeControllerDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiTreeControllerDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiTreeController][map]',
providers: [
tuiProvide(TUI_TREE_ACCESSOR, TuiTreeControllerDirective),
tuiProvide(TUI_TREE_CONTROLLER, TuiTreeControllerDirective),
],
exportAs: 'tuiTreeController',
}]
}], propDecorators: { fallback: [{
type: Input,
args: ['tuiTreeController']
}], map: [{
type: Input
}], toggled: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1jb250cm9sbGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3RyZWUvZGlyZWN0aXZlcy90cmVlLWNvbnRyb2xsZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUkzRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFM0UsTUFTYSwwQkFBMEI7SUFUdkM7UUFZdUIsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBRzlDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHaEIsUUFBRyxHQUFHLElBQUksR0FBRyxFQUFjLENBQUM7UUFHbkIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7S0EyQm5EO0lBekJVLFFBQVEsQ0FBQyxJQUFpQixFQUFFLEtBQVE7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBaUI7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFpQjtRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMzRCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQWlCO1FBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXRDUSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw2S0FOeEI7WUFDUCxVQUFVLENBQUMsaUJBQWlCLEVBQUUsMEJBQTBCLENBQUM7WUFDekQsVUFBVSxDQUFDLG1CQUFtQixFQUFFLDBCQUEwQixDQUFDO1NBQzlEOztTQUdRLDBCQUEwQjs0RkFBMUIsMEJBQTBCO2tCQVR0QyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxTQUFTLEVBQUU7d0JBQ1AsVUFBVSxDQUFDLGlCQUFpQiw2QkFBNkI7d0JBQ3pELFVBQVUsQ0FBQyxtQkFBbUIsNkJBQTZCO3FCQUM5RDtvQkFDRCxRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQzs4QkFPVSxRQUFRO3NCQURkLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUluQixHQUFHO3NCQURULEtBQUs7Z0JBSVUsT0FBTztzQkFEdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlJc1ByZXNlbnQsIHR1aVByb3ZpZGV9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5cbmltcG9ydCB7dHlwZSBUdWlUcmVlSXRlbX0gZnJvbSAnLi4vY29tcG9uZW50cy90cmVlLWl0ZW0vdHJlZS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge3R5cGUgVHVpVHJlZUFjY2Vzc29yLCB0eXBlIFR1aVRyZWVDb250cm9sbGVyfSBmcm9tICcuLi9taXNjL3RyZWUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9UUkVFX0FDQ0VTU09SLCBUVUlfVFJFRV9DT05UUk9MTEVSfSBmcm9tICcuLi9taXNjL3RyZWUudG9rZW5zJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ1t0dWlUcmVlQ29udHJvbGxlcl1bbWFwXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aVByb3ZpZGUoVFVJX1RSRUVfQUNDRVNTT1IsIFR1aVRyZWVDb250cm9sbGVyRGlyZWN0aXZlKSxcbiAgICAgICAgdHVpUHJvdmlkZShUVUlfVFJFRV9DT05UUk9MTEVSLCBUdWlUcmVlQ29udHJvbGxlckRpcmVjdGl2ZSksXG4gICAgXSxcbiAgICBleHBvcnRBczogJ3R1aVRyZWVDb250cm9sbGVyJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpVHJlZUNvbnRyb2xsZXJEaXJlY3RpdmU8VD5cbiAgICBpbXBsZW1lbnRzIFR1aVRyZWVDb250cm9sbGVyLCBUdWlUcmVlQWNjZXNzb3I8VD5cbntcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXRlbXMgPSBuZXcgTWFwPFR1aVRyZWVJdGVtLCBUPigpO1xuXG4gICAgQElucHV0KCd0dWlUcmVlQ29udHJvbGxlcicpXG4gICAgcHVibGljIGZhbGxiYWNrID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1hcCA9IG5ldyBNYXA8VCwgYm9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSB0b2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgcHVibGljIHJlZ2lzdGVyKGl0ZW06IFR1aVRyZWVJdGVtLCB2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1zLnNldChpdGVtLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVucmVnaXN0ZXIoaXRlbTogVHVpVHJlZUl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtcy5kZWxldGUoaXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXhwYW5kZWQoaXRlbTogVHVpVHJlZUl0ZW0pOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLml0ZW1zLmdldChpdGVtKTtcblxuICAgICAgICByZXR1cm4gKHZhbHVlICYmIHRoaXMubWFwLmdldCh2YWx1ZSkpID8/IHRoaXMuZmFsbGJhY2s7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZShpdGVtOiBUdWlUcmVlSXRlbSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaXRlbXMuZ2V0KGl0ZW0pO1xuICAgICAgICBjb25zdCBleHBhbmRlZCA9IHRoaXMuaXNFeHBhbmRlZChpdGVtKTtcblxuICAgICAgICBpZiAoIXR1aUlzUHJlc2VudCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9nZ2xlZC5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5tYXAuc2V0KHZhbHVlLCAhZXhwYW5kZWQpO1xuICAgIH1cbn1cbiJdfQ==