@taiga-ui/kit
Version:
Taiga UI Angular main components kit
56 lines • 8.28 kB
JavaScript
import { Directive, effect, inject } from '@angular/core';
import { tuiAsControl, TuiControl } from '@taiga-ui/cdk/classes';
import { TUI_ALLOW_SIGNAL_WRITES } from '@taiga-ui/cdk/constants';
import { tuiIsPresent } from '@taiga-ui/cdk/utils/miscellaneous';
import { tuiAsOptionContent } from '@taiga-ui/core/components/data-list';
import { tuiAsTextfieldAccessor, TuiSelectLike, TuiTextfieldDirective, TuiWithTextfield, } from '@taiga-ui/core/components/textfield';
import { tuiDropdownEnabled, tuiDropdownOpen } from '@taiga-ui/core/directives/dropdown';
import { TUI_ITEMS_HANDLERS, } from '@taiga-ui/core/directives/items-handlers';
import { TuiSelectOption } from './select-option/select-option.component';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/components/textfield";
class TuiSelectDirective extends TuiControl {
constructor() {
super(...arguments);
this.textfield = inject(TuiTextfieldDirective);
this.open = tuiDropdownOpen();
this.itemsHandlers = inject(TUI_ITEMS_HANDLERS);
this.dropdownEnabled = tuiDropdownEnabled(this.interactive);
this.valueEffect = effect(() => {
const value = this.value();
const string = tuiIsPresent(value) ? this.itemsHandlers.stringify()(value) : '';
this.textfield.value.set(string);
}, TUI_ALLOW_SIGNAL_WRITES);
}
setValue(value) {
this.onChange(value);
if (!value) {
this.open.set(true);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiSelectDirective, isStandalone: true, selector: "input[tuiSelect]", host: { listeners: { "input": "$event.inputType?.includes(\"delete\") && setValue(null)" }, properties: { "disabled": "disabled()" } }, providers: [
tuiAsOptionContent(TuiSelectOption),
tuiAsTextfieldAccessor(TuiSelectDirective),
tuiAsControl(TuiSelectDirective),
], usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithTextfield }, { directive: i1.TuiSelectLike }], ngImport: i0 }); }
}
export { TuiSelectDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiSelectDirective, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: 'input[tuiSelect]',
providers: [
tuiAsOptionContent(TuiSelectOption),
tuiAsTextfieldAccessor(TuiSelectDirective),
tuiAsControl(TuiSelectDirective),
],
hostDirectives: [TuiWithTextfield, TuiSelectLike],
host: {
'[disabled]': 'disabled()',
'(input)': '$event.inputType?.includes("delete") && setValue(null)',
},
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLGFBQWEsRUFFYixxQkFBcUIsRUFDckIsZ0JBQWdCLEdBQ25CLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFFLGVBQWUsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZGLE9BQU8sRUFDSCxrQkFBa0IsR0FFckIsTUFBTSwwQ0FBMEMsQ0FBQztBQUVsRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUNBQXlDLENBQUM7OztBQUV4RSxNQWNhLGtCQUNULFNBQVEsVUFBb0I7SUFmaEM7O1FBa0JxQixjQUFTLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDMUMsU0FBSSxHQUFHLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLGtCQUFhLEdBQXdCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTlELG9CQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELGdCQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFaEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0tBUy9CO0lBUFUsUUFBUSxDQUFDLEtBQWU7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7SUFDTCxDQUFDOytHQXRCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQix1TUFYaEI7WUFDUCxrQkFBa0IsQ0FBQyxlQUFlLENBQUM7WUFDbkMsc0JBQXNCLENBQUMsa0JBQWtCLENBQUM7WUFDMUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDO1NBQ25DOztTQU9RLGtCQUFrQjs0RkFBbEIsa0JBQWtCO2tCQWQ5QixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixTQUFTLEVBQUU7d0JBQ1Asa0JBQWtCLENBQUMsZUFBZSxDQUFDO3dCQUNuQyxzQkFBc0Isb0JBQW9CO3dCQUMxQyxZQUFZLG9CQUFvQjtxQkFDbkM7b0JBQ0QsY0FBYyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO29CQUNqRCxJQUFJLEVBQUU7d0JBQ0YsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFNBQVMsRUFBRSx3REFBd0Q7cUJBQ3RFO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpQXNDb250cm9sLCBUdWlDb250cm9sfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NsYXNzZXMnO1xuaW1wb3J0IHtUVUlfQUxMT1dfU0lHTkFMX1dSSVRFU30gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHt0dWlJc1ByZXNlbnR9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMvbWlzY2VsbGFuZW91cyc7XG5pbXBvcnQge3R1aUFzT3B0aW9uQ29udGVudH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9kYXRhLWxpc3QnO1xuaW1wb3J0IHtcbiAgICB0dWlBc1RleHRmaWVsZEFjY2Vzc29yLFxuICAgIFR1aVNlbGVjdExpa2UsXG4gICAgdHlwZSBUdWlUZXh0ZmllbGRBY2Nlc3NvcixcbiAgICBUdWlUZXh0ZmllbGREaXJlY3RpdmUsXG4gICAgVHVpV2l0aFRleHRmaWVsZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHt0dWlEcm9wZG93bkVuYWJsZWQsIHR1aURyb3Bkb3duT3Blbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvZGlyZWN0aXZlcy9kcm9wZG93bic7XG5pbXBvcnQge1xuICAgIFRVSV9JVEVNU19IQU5ETEVSUyxcbiAgICB0eXBlIFR1aUl0ZW1zSGFuZGxlcnMsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvaXRlbXMtaGFuZGxlcnMnO1xuXG5pbXBvcnQge1R1aVNlbGVjdE9wdGlvbn0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uL3NlbGVjdC1vcHRpb24uY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aVNlbGVjdF0nLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc09wdGlvbkNvbnRlbnQoVHVpU2VsZWN0T3B0aW9uKSxcbiAgICAgICAgdHVpQXNUZXh0ZmllbGRBY2Nlc3NvcihUdWlTZWxlY3REaXJlY3RpdmUpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpU2VsZWN0RGlyZWN0aXZlKSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpV2l0aFRleHRmaWVsZCwgVHVpU2VsZWN0TGlrZV0sXG4gICAgaG9zdDoge1xuICAgICAgICAnW2Rpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnJGV2ZW50LmlucHV0VHlwZT8uaW5jbHVkZXMoXCJkZWxldGVcIikgJiYgc2V0VmFsdWUobnVsbCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVNlbGVjdERpcmVjdGl2ZTxUPlxuICAgIGV4dGVuZHMgVHVpQ29udHJvbDxUIHwgbnVsbD5cbiAgICBpbXBsZW1lbnRzIFR1aVRleHRmaWVsZEFjY2Vzc29yPFQ+XG57XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0ZmllbGQgPSBpbmplY3QoVHVpVGV4dGZpZWxkRGlyZWN0aXZlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9wZW4gPSB0dWlEcm9wZG93bk9wZW4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zSGFuZGxlcnM6IFR1aUl0ZW1zSGFuZGxlcnM8VD4gPSBpbmplY3QoVFVJX0lURU1TX0hBTkRMRVJTKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBkcm9wZG93bkVuYWJsZWQgPSB0dWlEcm9wZG93bkVuYWJsZWQodGhpcy5pbnRlcmFjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHN0cmluZyA9IHR1aUlzUHJlc2VudCh2YWx1ZSkgPyB0aGlzLml0ZW1zSGFuZGxlcnMuc3RyaW5naWZ5KCkodmFsdWUpIDogJyc7XG5cbiAgICAgICAgdGhpcy50ZXh0ZmllbGQudmFsdWUuc2V0KHN0cmluZyk7XG4gICAgfSwgVFVJX0FMTE9XX1NJR05BTF9XUklURVMpO1xuXG4gICAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBUIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4uc2V0KHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19